usr
/
include
/
Go to Home Directory
+
Upload
Create File
root@0UT1S:~$
Execute
By Order of Mr.0UT1S
[DIR] ..
N/A
[DIR] GL
N/A
[DIR] X11
N/A
[DIR] apache2
N/A
[DIR] arpa
N/A
[DIR] asm
N/A
[DIR] asm-generic
N/A
[DIR] bind9
N/A
[DIR] bits
N/A
[DIR] bsock
N/A
[DIR] c++
N/A
[DIR] criu
N/A
[DIR] curl
N/A
[DIR] drm
N/A
[DIR] e2p
N/A
[DIR] et
N/A
[DIR] event2
N/A
[DIR] ext2fs
N/A
[DIR] finclude
N/A
[DIR] fontconfig
N/A
[DIR] freetype2
N/A
[DIR] fstrm
N/A
[DIR] gdb
N/A
[DIR] gdbm
N/A
[DIR] gnu
N/A
[DIR] google
N/A
[DIR] gssapi
N/A
[DIR] gssrpc
N/A
[DIR] json-c
N/A
[DIR] kadm5
N/A
[DIR] krb5
N/A
[DIR] libdb
N/A
[DIR] libexslt
N/A
[DIR] libltdl
N/A
[DIR] libpng16
N/A
[DIR] libxml2
N/A
[DIR] libxslt
N/A
[DIR] linux
N/A
[DIR] lua-5.1
N/A
[DIR] lzma
N/A
[DIR] misc
N/A
[DIR] mtd
N/A
[DIR] mysql
N/A
[DIR] ncurses
N/A
[DIR] ncursesw
N/A
[DIR] net
N/A
[DIR] netash
N/A
[DIR] netatalk
N/A
[DIR] netax25
N/A
[DIR] neteconet
N/A
[DIR] netinet
N/A
[DIR] netipx
N/A
[DIR] netiucv
N/A
[DIR] netpacket
N/A
[DIR] netrom
N/A
[DIR] netrose
N/A
[DIR] nfs
N/A
[DIR] openssl
N/A
[DIR] perf
N/A
[DIR] protobuf-c
N/A
[DIR] protocols
N/A
[DIR] python2.7
N/A
[DIR] python3.6m
N/A
[DIR] python3.8
N/A
[DIR] rdma
N/A
[DIR] rpc
N/A
[DIR] sasl
N/A
[DIR] scsi
N/A
[DIR] security
N/A
[DIR] selinux
N/A
[DIR] sepol
N/A
[DIR] sound
N/A
[DIR] sys
N/A
[DIR] uuid
N/A
[DIR] video
N/A
[DIR] webp
N/A
[DIR] xcb
N/A
[DIR] xen
N/A
FlexLexer.h
6.73 KB
Rename
Delete
a.out.h
4.25 KB
Rename
Delete
aio.h
7.28 KB
Rename
Delete
aliases.h
1.98 KB
Rename
Delete
alloca.h
1.17 KB
Rename
Delete
ar.h
1.69 KB
Rename
Delete
argp.h
24.82 KB
Rename
Delete
argz.h
5.91 KB
Rename
Delete
assert.h
4.45 KB
Rename
Delete
autosprintf.h
2.33 KB
Rename
Delete
byteswap.h
1.37 KB
Rename
Delete
bzlib.h
6.10 KB
Rename
Delete
com_err.h
2.07 KB
Rename
Delete
complex.h
7.00 KB
Rename
Delete
cpio.h
2.21 KB
Rename
Delete
cpuidle.h
844 bytes
Rename
Delete
crypt.h
8.90 KB
Rename
Delete
ctype.h
10.71 KB
Rename
Delete
curses.h
97.29 KB
Rename
Delete
cursesapp.h
6.62 KB
Rename
Delete
cursesf.h
27.20 KB
Rename
Delete
cursesm.h
19.22 KB
Rename
Delete
cursesp.h
8.40 KB
Rename
Delete
cursesw.h
48.55 KB
Rename
Delete
cursslk.h
7.13 KB
Rename
Delete
db.h
120.22 KB
Rename
Delete
db_185.h
5.84 KB
Rename
Delete
dbm.h
1.38 KB
Rename
Delete
dirent.h
12.19 KB
Rename
Delete
dlfcn.h
7.07 KB
Rename
Delete
elf.h
170.73 KB
Rename
Delete
endian.h
3.11 KB
Rename
Delete
entities.h
4.81 KB
Rename
Delete
envz.h
2.80 KB
Rename
Delete
err.h
2.16 KB
Rename
Delete
errno.h
1.64 KB
Rename
Delete
error.h
1.99 KB
Rename
Delete
eti.h
2.82 KB
Rename
Delete
etip.h
9.47 KB
Rename
Delete
evdns.h
1.97 KB
Rename
Delete
event.h
2.68 KB
Rename
Delete
evhttp.h
1.99 KB
Rename
Delete
evrpc.h
1.97 KB
Rename
Delete
evutil.h
1.74 KB
Rename
Delete
execinfo.h
1.49 KB
Rename
Delete
expat.h
42.66 KB
Rename
Delete
expat_config.h
3.43 KB
Rename
Delete
expat_external.h
5.40 KB
Rename
Delete
fcntl.h
10.70 KB
Rename
Delete
features.h
15.69 KB
Rename
Delete
fenv.h
5.72 KB
Rename
Delete
fmtmsg.h
3.16 KB
Rename
Delete
fnmatch.h
2.24 KB
Rename
Delete
form.h
18.17 KB
Rename
Delete
fpu_control.h
3.50 KB
Rename
Delete
fstab.h
3.04 KB
Rename
Delete
fstrm.h
12.71 KB
Rename
Delete
fts.h
8.18 KB
Rename
Delete
ftw.h
5.13 KB
Rename
Delete
gconv.h
4.31 KB
Rename
Delete
gcrypt.h
68.71 KB
Rename
Delete
gd.h
56.42 KB
Rename
Delete
gd_color_map.h
478 bytes
Rename
Delete
gd_errors.h
1.47 KB
Rename
Delete
gd_io.h
3.05 KB
Rename
Delete
gdbm.h
10.10 KB
Rename
Delete
gdcache.h
2.83 KB
Rename
Delete
gdfontg.h
553 bytes
Rename
Delete
gdfontl.h
551 bytes
Rename
Delete
gdfontmb.h
519 bytes
Rename
Delete
gdfonts.h
515 bytes
Rename
Delete
gdfontt.h
546 bytes
Rename
Delete
gdfx.h
497 bytes
Rename
Delete
gdpp.h
50.94 KB
Rename
Delete
getopt.h
1.43 KB
Rename
Delete
gettext-po.h
15.17 KB
Rename
Delete
glob.h
6.46 KB
Rename
Delete
gnu-versions.h
2.29 KB
Rename
Delete
gnumake.h
2.84 KB
Rename
Delete
gpg-error.h
66.29 KB
Rename
Delete
gpgrt.h
66.29 KB
Rename
Delete
grp.h
6.53 KB
Rename
Delete
gshadow.h
4.42 KB
Rename
Delete
gssapi.h
181 bytes
Rename
Delete
iconv.h
1.81 KB
Rename
Delete
idn-free.h
2.41 KB
Rename
Delete
idn-int.h
20 bytes
Rename
Delete
idna.h
3.48 KB
Rename
Delete
ieee754.h
4.79 KB
Rename
Delete
ifaddrs.h
2.77 KB
Rename
Delete
inttypes.h
11.61 KB
Rename
Delete
jconfig-64.h
2.17 KB
Rename
Delete
jconfig.h
246 bytes
Rename
Delete
jerror.h
14.73 KB
Rename
Delete
jmorecfg.h
14.70 KB
Rename
Delete
jpegint.h
15.22 KB
Rename
Delete
jpeglib.h
48.71 KB
Rename
Delete
kdb.h
67.66 KB
Rename
Delete
keyutils.h
7.52 KB
Rename
Delete
krad.h
8.72 KB
Rename
Delete
krb5.h
402 bytes
Rename
Delete
langinfo.h
17.43 KB
Rename
Delete
lastlog.h
126 bytes
Rename
Delete
lber.h
14.95 KB
Rename
Delete
lber_types.h
1.43 KB
Rename
Delete
ldap.h
63.57 KB
Rename
Delete
ldap_cdefs.h
9.24 KB
Rename
Delete
ldap_features.h
1.77 KB
Rename
Delete
ldap_schema.h
9.23 KB
Rename
Delete
ldap_utf8.h
3.39 KB
Rename
Delete
ldif.h
4.58 KB
Rename
Delete
libaio.h
8.73 KB
Rename
Delete
libgen.h
1.35 KB
Rename
Delete
libintl.h
4.47 KB
Rename
Delete
limits.h
5.29 KB
Rename
Delete
link.h
7.05 KB
Rename
Delete
locale.h
7.49 KB
Rename
Delete
ltdl.h
5.58 KB
Rename
Delete
lzma.h
9.59 KB
Rename
Delete
magic.h
5.46 KB
Rename
Delete
malloc.h
5.96 KB
Rename
Delete
math.h
52.07 KB
Rename
Delete
mcheck.h
2.38 KB
Rename
Delete
memory.h
955 bytes
Rename
Delete
menu.h
11.91 KB
Rename
Delete
mntent.h
3.28 KB
Rename
Delete
monetary.h
1.76 KB
Rename
Delete
mqueue.h
3.67 KB
Rename
Delete
nc_tparm.h
4.10 KB
Rename
Delete
ncurses.h
97.29 KB
Rename
Delete
ncurses_dll.h
4.18 KB
Rename
Delete
ndbm.h
2.40 KB
Rename
Delete
netdb.h
27.44 KB
Rename
Delete
nl_types.h
1.71 KB
Rename
Delete
nss.h
1.83 KB
Rename
Delete
obstack.h
20.81 KB
Rename
Delete
panel.h
4.03 KB
Rename
Delete
paths.h
2.91 KB
Rename
Delete
pcre.h
30.97 KB
Rename
Delete
pcre2.h
43.75 KB
Rename
Delete
pcre2posix.h
5.67 KB
Rename
Delete
pcre_scanner.h
6.45 KB
Rename
Delete
pcre_stringpiece.h
6.16 KB
Rename
Delete
pcrecpp.h
25.91 KB
Rename
Delete
pcrecpparg.h
6.62 KB
Rename
Delete
pcreposix.h
5.32 KB
Rename
Delete
png.h
140.77 KB
Rename
Delete
pngconf.h
22.31 KB
Rename
Delete
pnglibconf.h
7.39 KB
Rename
Delete
poll.h
22 bytes
Rename
Delete
pr29.h
2.07 KB
Rename
Delete
printf.h
6.64 KB
Rename
Delete
proc_service.h
3.39 KB
Rename
Delete
profile.h
11.87 KB
Rename
Delete
pthread.h
40.30 KB
Rename
Delete
pty.h
1.53 KB
Rename
Delete
punycode.h
9.16 KB
Rename
Delete
pwd.h
6.01 KB
Rename
Delete
re_comp.h
962 bytes
Rename
Delete
regex.h
24.14 KB
Rename
Delete
regexp.h
1.41 KB
Rename
Delete
resolv.h
11.79 KB
Rename
Delete
sched.h
4.62 KB
Rename
Delete
search.h
5.10 KB
Rename
Delete
semaphore.h
2.34 KB
Rename
Delete
setjmp.h
3.58 KB
Rename
Delete
sgtty.h
1.31 KB
Rename
Delete
shadow.h
5.34 KB
Rename
Delete
signal.h
11.96 KB
Rename
Delete
slapi-plugin.h
37.45 KB
Rename
Delete
spawn.h
6.53 KB
Rename
Delete
stab.h
264 bytes
Rename
Delete
stdc-predef.h
2.24 KB
Rename
Delete
stdint.h
8.27 KB
Rename
Delete
stdio.h
29.46 KB
Rename
Delete
stdio_ext.h
2.73 KB
Rename
Delete
stdlib.h
34.82 KB
Rename
Delete
string.h
17.17 KB
Rename
Delete
stringprep.h
8.03 KB
Rename
Delete
strings.h
4.64 KB
Rename
Delete
syscall.h
25 bytes
Rename
Delete
sysexits.h
5.11 KB
Rename
Delete
syslog.h
24 bytes
Rename
Delete
tar.h
3.70 KB
Rename
Delete
term.h
40.22 KB
Rename
Delete
term_entry.h
8.55 KB
Rename
Delete
termcap.h
3.39 KB
Rename
Delete
termio.h
214 bytes
Rename
Delete
termios.h
3.51 KB
Rename
Delete
tgmath.h
30.75 KB
Rename
Delete
thread_db.h
15.65 KB
Rename
Delete
threads.h
6.50 KB
Rename
Delete
tic.h
13.32 KB
Rename
Delete
tiff.h
35.14 KB
Rename
Delete
tiffconf-64.h
3.35 KB
Rename
Delete
tiffconf.h
250 bytes
Rename
Delete
tiffio.h
22.68 KB
Rename
Delete
tiffio.hxx
1.66 KB
Rename
Delete
tiffvers.h
410 bytes
Rename
Delete
time.h
10.12 KB
Rename
Delete
tld.h
4.54 KB
Rename
Delete
ttyent.h
2.44 KB
Rename
Delete
uchar.h
1.95 KB
Rename
Delete
ucontext.h
1.99 KB
Rename
Delete
ulimit.h
1.55 KB
Rename
Delete
unctrl.h
3.03 KB
Rename
Delete
unistd.h
41.74 KB
Rename
Delete
utime.h
1.47 KB
Rename
Delete
utmp.h
3.15 KB
Rename
Delete
utmpx.h
4.00 KB
Rename
Delete
values.h
1.91 KB
Rename
Delete
verto-module.h
6.48 KB
Rename
Delete
verto.h
18.98 KB
Rename
Delete
wait.h
22 bytes
Rename
Delete
wchar.h
30.38 KB
Rename
Delete
wctype.h
5.42 KB
Rename
Delete
wordexp.h
2.44 KB
Rename
Delete
zconf.h
15.88 KB
Rename
Delete
zlib.h
94.00 KB
Rename
Delete
/* * jmorecfg.h * * This file was part of the Independent JPEG Group's software: * Copyright (C) 1991-1997, Thomas G. Lane. * Modified 1997-2009 by Guido Vollbeding. * libjpeg-turbo Modifications: * Copyright (C) 2009, 2011, 2014-2015, D. R. Commander. * For conditions of distribution and use, see the accompanying README.ijg * file. * * This file contains additional configuration options that customize the * JPEG software for special applications or support machine-dependent * optimizations. Most users will not need to touch this file. */ /* * Maximum number of components (color channels) allowed in JPEG image. * To meet the letter of the JPEG spec, set this to 255. However, darn * few applications need more than 4 channels (maybe 5 for CMYK + alpha * mask). We recommend 10 as a reasonable compromise; use 4 if you are * really short on memory. (Each allowed component costs a hundred or so * bytes of storage, whether actually used in an image or not.) */ #define MAX_COMPONENTS 10 /* maximum number of image components */ /* * Basic data types. * You may need to change these if you have a machine with unusual data * type sizes; for example, "char" not 8 bits, "short" not 16 bits, * or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits, * but it had better be at least 16. */ /* Representation of a single sample (pixel element value). * We frequently allocate large arrays of these, so it's important to keep * them small. But if you have memory to burn and access to char or short * arrays is very slow on your hardware, you might want to change these. */ #if BITS_IN_JSAMPLE == 8 /* JSAMPLE should be the smallest type that will hold the values 0..255. * You can use a signed char by having GETJSAMPLE mask it with 0xFF. */ #ifdef HAVE_UNSIGNED_CHAR typedef unsigned char JSAMPLE; #define GETJSAMPLE(value) ((int) (value)) #else /* not HAVE_UNSIGNED_CHAR */ typedef char JSAMPLE; #ifdef __CHAR_UNSIGNED__ #define GETJSAMPLE(value) ((int) (value)) #else #define GETJSAMPLE(value) ((int) (value) & 0xFF) #endif /* __CHAR_UNSIGNED__ */ #endif /* HAVE_UNSIGNED_CHAR */ #define MAXJSAMPLE 255 #define CENTERJSAMPLE 128 #endif /* BITS_IN_JSAMPLE == 8 */ #if BITS_IN_JSAMPLE == 12 /* JSAMPLE should be the smallest type that will hold the values 0..4095. * On nearly all machines "short" will do nicely. */ typedef short JSAMPLE; #define GETJSAMPLE(value) ((int) (value)) #define MAXJSAMPLE 4095 #define CENTERJSAMPLE 2048 #endif /* BITS_IN_JSAMPLE == 12 */ /* Representation of a DCT frequency coefficient. * This should be a signed value of at least 16 bits; "short" is usually OK. * Again, we allocate large arrays of these, but you can change to int * if you have memory to burn and "short" is really slow. */ typedef short JCOEF; /* Compressed datastreams are represented as arrays of JOCTET. * These must be EXACTLY 8 bits wide, at least once they are written to * external storage. Note that when using the stdio data source/destination * managers, this is also the data type passed to fread/fwrite. */ #ifdef HAVE_UNSIGNED_CHAR typedef unsigned char JOCTET; #define GETJOCTET(value) (value) #else /* not HAVE_UNSIGNED_CHAR */ typedef char JOCTET; #ifdef __CHAR_UNSIGNED__ #define GETJOCTET(value) (value) #else #define GETJOCTET(value) ((value) & 0xFF) #endif /* __CHAR_UNSIGNED__ */ #endif /* HAVE_UNSIGNED_CHAR */ /* These typedefs are used for various table entries and so forth. * They must be at least as wide as specified; but making them too big * won't cost a huge amount of memory, so we don't provide special * extraction code like we did for JSAMPLE. (In other words, these * typedefs live at a different point on the speed/space tradeoff curve.) */ /* UINT8 must hold at least the values 0..255. */ #ifdef HAVE_UNSIGNED_CHAR typedef unsigned char UINT8; #else /* not HAVE_UNSIGNED_CHAR */ #ifdef __CHAR_UNSIGNED__ typedef char UINT8; #else /* not __CHAR_UNSIGNED__ */ typedef short UINT8; #endif /* __CHAR_UNSIGNED__ */ #endif /* HAVE_UNSIGNED_CHAR */ /* UINT16 must hold at least the values 0..65535. */ #ifdef HAVE_UNSIGNED_SHORT typedef unsigned short UINT16; #else /* not HAVE_UNSIGNED_SHORT */ typedef unsigned int UINT16; #endif /* HAVE_UNSIGNED_SHORT */ /* INT16 must hold at least the values -32768..32767. */ #ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ typedef short INT16; #endif /* INT32 must hold at least signed 32-bit values. * * NOTE: The INT32 typedef dates back to libjpeg v5 (1994.) Integers were * sometimes 16-bit back then (MS-DOS), which is why INT32 is typedef'd to * long. It also wasn't common (or at least as common) in 1994 for INT32 to be * defined by platform headers. Since then, however, INT32 is defined in * several other common places: * * Xmd.h (X11 header) typedefs INT32 to int on 64-bit platforms and long on * 32-bit platforms (i.e always a 32-bit signed type.) * * basetsd.h (Win32 header) typedefs INT32 to int (always a 32-bit signed type * on modern platforms.) * * qglobal.h (Qt header) typedefs INT32 to int (always a 32-bit signed type on * modern platforms.) * * This is a recipe for conflict, since "long" and "int" aren't always * compatible types. Since the definition of INT32 has technically been part * of the libjpeg API for more than 20 years, we can't remove it, but we do not * use it internally any longer. We instead define a separate type (JLONG) * for internal use, which ensures that internal behavior will always be the * same regardless of any external headers that may be included. */ #ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ #ifndef _BASETSD_H_ /* Microsoft defines it in basetsd.h */ #ifndef _BASETSD_H /* MinGW is slightly different */ #ifndef QGLOBAL_H /* Qt defines it in qglobal.h */ typedef long INT32; #endif #endif #endif #endif /* Datatype used for image dimensions. The JPEG standard only supports * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore * "unsigned int" is sufficient on all machines. However, if you need to * handle larger images and you don't mind deviating from the spec, you * can change this datatype. (Note that changing this datatype will * potentially require modifying the SIMD code. The x86-64 SIMD extensions, * in particular, assume a 32-bit JDIMENSION.) */ typedef unsigned int JDIMENSION; #define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */ /* These macros are used in all function definitions and extern declarations. * You could modify them if you need to change function linkage conventions; * in particular, you'll need to do that to make the library a Windows DLL. * Another application is to make all functions global for use with debuggers * or code profilers that require it. */ /* a function called through method pointers: */ #define METHODDEF(type) static type /* a function used only in its module: */ #define LOCAL(type) static type /* a function referenced thru EXTERNs: */ #define GLOBAL(type) type /* a reference to a GLOBAL function: */ #define EXTERN(type) extern type /* Originally, this macro was used as a way of defining function prototypes * for both modern compilers as well as older compilers that did not support * prototype parameters. libjpeg-turbo has never supported these older, * non-ANSI compilers, but the macro is still included because there is some * software out there that uses it. */ #define JMETHOD(type,methodname,arglist) type (*methodname) arglist /* libjpeg-turbo no longer supports platforms that have far symbols (MS-DOS), * but again, some software relies on this macro. */ #undef FAR #define FAR /* * On a few systems, type boolean and/or its values FALSE, TRUE may appear * in standard header files. Or you may have conflicts with application- * specific header files that you want to include together with these files. * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. */ #ifndef HAVE_BOOLEAN typedef int boolean; #endif #ifndef FALSE /* in case these macros already exist */ #define FALSE 0 /* values of boolean */ #endif #ifndef TRUE #define TRUE 1 #endif /* * The remaining options affect code selection within the JPEG library, * but they don't need to be visible to most applications using the library. * To minimize application namespace pollution, the symbols won't be * defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined. */ #ifdef JPEG_INTERNALS #define JPEG_INTERNAL_OPTIONS #endif #ifdef JPEG_INTERNAL_OPTIONS /* * These defines indicate whether to include various optional functions. * Undefining some of these symbols will produce a smaller but less capable * library. Note that you can leave certain source files out of the * compilation/linking process if you've #undef'd the corresponding symbols. * (You may HAVE to do that if your compiler doesn't like null source files.) */ /* Capability options common to encoder and decoder: */ #define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */ #define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */ #define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */ /* Encoder capability options: */ #define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ #define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ #define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */ /* Note: if you selected 12-bit data precision, it is dangerous to turn off * ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit * precision, so jchuff.c normally uses entropy optimization to compute * usable tables for higher precision. If you don't want to do optimization, * you'll have to supply different default Huffman tables. * The exact same statements apply for progressive JPEG: the default tables * don't work for progressive mode. (This may get fixed, however.) */ #define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */ /* Decoder capability options: */ #define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ #define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ #define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */ #define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */ #define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */ #undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */ #define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */ #define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */ #define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */ /* more capability options later, no doubt */ /* * The RGB_RED, RGB_GREEN, RGB_BLUE, and RGB_PIXELSIZE macros are a vestigial * feature of libjpeg. The idea was that, if an application developer needed * to compress from/decompress to a BGR/BGRX/RGBX/XBGR/XRGB buffer, they could * change these macros, rebuild libjpeg, and link their application statically * with it. In reality, few people ever did this, because there were some * severe restrictions involved (cjpeg and djpeg no longer worked properly, * compressing/decompressing RGB JPEGs no longer worked properly, and the color * quantizer wouldn't work with pixel sizes other than 3.) Further, since all * of the O/S-supplied versions of libjpeg were built with the default values * of RGB_RED, RGB_GREEN, RGB_BLUE, and RGB_PIXELSIZE, many applications have * come to regard these values as immutable. * * The libjpeg-turbo colorspace extensions provide a much cleaner way of * compressing from/decompressing to buffers with arbitrary component orders * and pixel sizes. Thus, we do not support changing the values of RGB_RED, * RGB_GREEN, RGB_BLUE, or RGB_PIXELSIZE. In addition to the restrictions * listed above, changing these values will also break the SIMD extensions and * the regression tests. */ #define RGB_RED 0 /* Offset of Red in an RGB scanline element */ #define RGB_GREEN 1 /* Offset of Green */ #define RGB_BLUE 2 /* Offset of Blue */ #define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */ #define JPEG_NUMCS 17 #define EXT_RGB_RED 0 #define EXT_RGB_GREEN 1 #define EXT_RGB_BLUE 2 #define EXT_RGB_PIXELSIZE 3 #define EXT_RGBX_RED 0 #define EXT_RGBX_GREEN 1 #define EXT_RGBX_BLUE 2 #define EXT_RGBX_PIXELSIZE 4 #define EXT_BGR_RED 2 #define EXT_BGR_GREEN 1 #define EXT_BGR_BLUE 0 #define EXT_BGR_PIXELSIZE 3 #define EXT_BGRX_RED 2 #define EXT_BGRX_GREEN 1 #define EXT_BGRX_BLUE 0 #define EXT_BGRX_PIXELSIZE 4 #define EXT_XBGR_RED 3 #define EXT_XBGR_GREEN 2 #define EXT_XBGR_BLUE 1 #define EXT_XBGR_PIXELSIZE 4 #define EXT_XRGB_RED 1 #define EXT_XRGB_GREEN 2 #define EXT_XRGB_BLUE 3 #define EXT_XRGB_PIXELSIZE 4 static const int rgb_red[JPEG_NUMCS] = { -1, -1, RGB_RED, -1, -1, -1, EXT_RGB_RED, EXT_RGBX_RED, EXT_BGR_RED, EXT_BGRX_RED, EXT_XBGR_RED, EXT_XRGB_RED, EXT_RGBX_RED, EXT_BGRX_RED, EXT_XBGR_RED, EXT_XRGB_RED, -1 }; static const int rgb_green[JPEG_NUMCS] = { -1, -1, RGB_GREEN, -1, -1, -1, EXT_RGB_GREEN, EXT_RGBX_GREEN, EXT_BGR_GREEN, EXT_BGRX_GREEN, EXT_XBGR_GREEN, EXT_XRGB_GREEN, EXT_RGBX_GREEN, EXT_BGRX_GREEN, EXT_XBGR_GREEN, EXT_XRGB_GREEN, -1 }; static const int rgb_blue[JPEG_NUMCS] = { -1, -1, RGB_BLUE, -1, -1, -1, EXT_RGB_BLUE, EXT_RGBX_BLUE, EXT_BGR_BLUE, EXT_BGRX_BLUE, EXT_XBGR_BLUE, EXT_XRGB_BLUE, EXT_RGBX_BLUE, EXT_BGRX_BLUE, EXT_XBGR_BLUE, EXT_XRGB_BLUE, -1 }; static const int rgb_pixelsize[JPEG_NUMCS] = { -1, -1, RGB_PIXELSIZE, -1, -1, -1, EXT_RGB_PIXELSIZE, EXT_RGBX_PIXELSIZE, EXT_BGR_PIXELSIZE, EXT_BGRX_PIXELSIZE, EXT_XBGR_PIXELSIZE, EXT_XRGB_PIXELSIZE, EXT_RGBX_PIXELSIZE, EXT_BGRX_PIXELSIZE, EXT_XBGR_PIXELSIZE, EXT_XRGB_PIXELSIZE, -1 }; /* Definitions for speed-related optimizations. */ /* On some machines (notably 68000 series) "int" is 32 bits, but multiplying * two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER * as short on such a machine. MULTIPLIER must be at least 16 bits wide. */ #ifndef MULTIPLIER #ifndef WITH_SIMD #define MULTIPLIER int /* type for fastest integer multiply */ #else #define MULTIPLIER short /* prefer 16-bit with SIMD for parellelism */ #endif #endif /* FAST_FLOAT should be either float or double, whichever is done faster * by your compiler. (Note that this type is only used in the floating point * DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.) */ #ifndef FAST_FLOAT #define FAST_FLOAT float #endif #endif /* JPEG_INTERNAL_OPTIONS */
Save