OXIESEC PANEL
- Current Dir:
/
/
usr
/
include
Server IP: 103.185.75.71
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/12/2026 01:54:05 PM
rwxr-xr-x
📄
FlexLexer.h
6.73 KB
01/30/2022 08:23:38 AM
rw-r--r--
📁
GL
-
08/27/2025 09:39:54 AM
rwxr-xr-x
📁
X11
-
08/27/2025 09:40:27 AM
rwxr-xr-x
📄
a.out.h
4.25 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
aio.h
7.56 KB
11/05/2025 09:30:55 AM
rw-r--r--
📄
aliases.h
1.98 KB
11/05/2025 09:31:15 AM
rw-r--r--
📄
alloca.h
1.17 KB
11/05/2025 09:30:54 AM
rw-r--r--
📁
apache2
-
12/27/2025 09:19:40 AM
rwxr-xr-x
📄
ar.h
1.69 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
argp.h
24.95 KB
11/05/2025 09:31:15 AM
rw-r--r--
📄
argz.h
5.91 KB
11/05/2025 09:30:56 AM
rw-r--r--
📁
arpa
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
asm
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📁
asm-generic
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📄
assert.h
4.46 KB
11/05/2025 09:30:53 AM
rw-r--r--
📄
autosprintf.h
2.36 KB
09/27/2023 06:51:52 AM
rw-r--r--
📁
bind9
-
11/10/2025 03:35:42 AM
rwxr-xr-x
📁
bits
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
blkid
-
08/27/2025 09:38:10 AM
rwxr-xr-x
📁
brotli
-
08/27/2025 09:37:05 AM
rwxr-xr-x
📁
bsock
-
08/31/2025 03:45:09 PM
rwxr-xr-x
📄
byteswap.h
1.42 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
bzlib.h
6.09 KB
07/13/2019 05:50:05 PM
rw-r--r--
📁
c++
-
02/12/2025 01:06:55 PM
rwxr-xr-x
📄
com_err.h
2.07 KB
12/30/2021 05:54:33 AM
rw-r--r--
📄
complex.h
7.95 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
cpio.h
2.21 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
cpuidle.h
931 bytes
11/11/2025 03:33:32 PM
rw-r--r--
📄
crypt.h
10.9 KB
02/10/2022 04:05:00 AM
rw-r--r--
📄
ctype.h
10.71 KB
11/05/2025 09:30:53 AM
rw-r--r--
📄
curses.h
96.82 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
cursesapp.h
7.06 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
cursesf.h
27.37 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
cursesm.h
19.44 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
cursesp.h
8.55 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
cursesw.h
49.13 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
cursslk.h
7.15 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
db.h
120.22 KB
06/24/2025 02:13:10 PM
r--r--r--
📄
db_185.h
5.84 KB
06/24/2025 02:13:10 PM
r--r--r--
📄
dbm.h
1.37 KB
01/02/2022 08:34:10 AM
rw-r--r--
📄
dirent.h
12.32 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
dlfcn.h
7.52 KB
11/05/2025 09:30:55 AM
rw-r--r--
📁
drm
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📁
e2p
-
08/27/2025 09:41:09 AM
rwxr-xr-x
📄
elf.h
178.26 KB
11/05/2025 09:31:17 AM
rw-r--r--
📄
endian.h
2.25 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
entities.h
4.81 KB
01/12/2021 12:09:45 AM
rw-r--r--
📄
envz.h
2.8 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
err.h
2.29 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
errno.h
1.64 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
error.h
2.36 KB
11/05/2025 09:30:57 AM
rw-r--r--
📁
et
-
08/27/2025 09:37:04 AM
rwxr-xr-x
📄
eti.h
2.9 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
etip.h
9.61 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
evdns.h
1.97 KB
01/26/2019 09:53:41 AM
rw-r--r--
📄
event.h
2.68 KB
01/26/2019 09:53:41 AM
rw-r--r--
📁
event2
-
08/28/2025 07:00:57 PM
rwxr-xr-x
📄
evhttp.h
1.99 KB
01/26/2019 09:53:41 AM
rw-r--r--
📄
evrpc.h
1.97 KB
01/26/2019 09:53:41 AM
rw-r--r--
📄
evutil.h
1.74 KB
01/26/2019 09:53:41 AM
rw-r--r--
📄
execinfo.h
1.49 KB
11/05/2025 09:31:15 AM
rw-r--r--
📄
expat.h
42.75 KB
05/13/2025 05:53:28 PM
rw-r--r--
📄
expat_config.h
3.82 KB
05/13/2025 05:53:38 PM
rw-r--r--
📄
expat_external.h
5.89 KB
10/25/2022 03:08:13 PM
rw-r--r--
📁
ext2fs
-
08/27/2025 09:41:09 AM
rwxr-xr-x
📄
fcntl.h
11.17 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
features-time64.h
1.37 KB
11/05/2025 09:30:51 AM
rw-r--r--
📄
features.h
17.69 KB
11/05/2025 09:30:51 AM
rw-r--r--
📄
fenv.h
5.65 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
ffi-x86_64.h
13.88 KB
09/25/2023 07:54:23 PM
rw-r--r--
📄
ffi.h
556 bytes
09/25/2023 07:54:23 PM
rw-r--r--
📄
ffitarget-x86_64.h
4.63 KB
09/25/2023 07:54:23 PM
rw-r--r--
📄
ffitarget.h
616 bytes
09/25/2023 07:54:23 PM
rw-r--r--
📁
finclude
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📄
fmtmsg.h
3.16 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
fnmatch.h
2.24 KB
11/05/2025 09:30:56 AM
rw-r--r--
📁
fontconfig
-
12/12/2023 08:34:23 AM
rwxr-xr-x
📄
form.h
18.46 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
fpu_control.h
3.5 KB
11/05/2025 09:30:54 AM
rw-r--r--
📁
freetype2
-
08/27/2025 09:38:37 AM
rwxr-xr-x
📄
fstab.h
3.04 KB
11/05/2025 09:30:57 AM
rw-r--r--
📁
fstrm
-
12/12/2023 08:34:12 AM
rwxr-xr-x
📄
fstrm.h
12.71 KB
03/11/2019 08:58:34 PM
rw-r--r--
📄
fts.h
9.35 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
ftw.h
6.19 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
gconv.h
4.11 KB
11/05/2025 09:30:51 AM
rw-r--r--
📄
gd.h
58.25 KB
03/06/2021 06:21:36 PM
rw-r--r--
📄
gd_color_map.h
478 bytes
01/12/2021 12:09:45 AM
rw-r--r--
📄
gd_errors.h
1.47 KB
01/12/2021 12:09:45 AM
rw-r--r--
📄
gd_io.h
2.93 KB
03/03/2021 07:15:02 AM
rw-r--r--
📁
gdbm
-
08/27/2025 09:41:09 AM
rwxr-xr-x
📄
gdbm.h
11.9 KB
10/02/2024 09:50:44 PM
rw-r--r--
📄
gdcache.h
2.92 KB
03/03/2021 07:15:02 AM
rw-r--r--
📄
gdfontg.h
553 bytes
01/12/2021 12:09:45 AM
rw-r--r--
📄
gdfontl.h
551 bytes
01/12/2021 12:09:45 AM
rw-r--r--
📄
gdfontmb.h
519 bytes
01/12/2021 12:09:45 AM
rw-r--r--
📄
gdfonts.h
515 bytes
01/12/2021 12:09:45 AM
rw-r--r--
📄
gdfontt.h
546 bytes
01/12/2021 12:09:45 AM
rw-r--r--
📄
gdfx.h
496 bytes
02/21/2021 05:23:01 PM
rw-r--r--
📄
gdpp.h
50.73 KB
03/03/2021 07:15:02 AM
rw-r--r--
📄
getopt.h
1.43 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
gettext-po.h
15.18 KB
09/27/2023 06:52:05 AM
rw-r--r--
📁
gio-unix-2.0
-
11/04/2025 11:52:50 AM
rwxr-xr-x
📁
glib-2.0
-
12/27/2025 09:20:25 AM
rwxr-xr-x
📄
glob.h
7.13 KB
11/05/2025 09:30:56 AM
rw-r--r--
📁
gnu
-
12/27/2025 09:19:37 AM
rwxr-xr-x
📄
gnu-versions.h
2.29 KB
11/05/2025 09:30:51 AM
rw-r--r--
📄
gnumake.h
2.84 KB
01/03/2020 07:11:27 AM
rw-r--r--
📁
google
-
12/12/2023 08:34:07 AM
rwxr-xr-x
📄
gpg-error.h
71.92 KB
02/09/2022 11:24:26 PM
rw-r--r--
📄
gpgrt.h
71.92 KB
02/09/2022 11:24:26 PM
rw-r--r--
📁
graphite2
-
12/12/2023 08:34:21 AM
rwxr-xr-x
📄
grp.h
6.53 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
gshadow.h
4.42 KB
11/05/2025 09:31:14 AM
rw-r--r--
📁
gssapi
-
08/27/2025 09:38:11 AM
rwxr-xr-x
📄
gssapi.h
181 bytes
07/10/2023 08:58:20 PM
rw-r--r--
📁
gssrpc
-
08/27/2025 09:38:11 AM
rwxr-xr-x
📁
harfbuzz
-
08/27/2025 09:38:37 AM
rwxr-xr-x
📄
iconv.h
1.81 KB
11/05/2025 09:30:51 AM
rw-r--r--
📄
idn-free.h
2.56 KB
07/22/2021 01:31:59 PM
rw-r--r--
📄
idn-int.h
20 bytes
02/14/2022 03:33:00 PM
rw-r--r--
📄
idna.h
3.89 KB
07/22/2021 01:31:59 PM
rw-r--r--
📄
ieee754.h
4.8 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
ifaddrs.h
2.77 KB
11/05/2025 09:31:15 AM
rw-r--r--
📄
inttypes.h
8.14 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
jconfig-64.h
1.98 KB
04/01/2024 07:06:20 PM
rw-r--r--
📄
jconfig.h
246 bytes
04/01/2024 07:06:30 PM
rw-r--r--
📄
jerror.h
15.35 KB
11/25/2020 03:56:19 AM
rw-r--r--
📄
jmorecfg.h
13.98 KB
11/25/2020 03:56:19 AM
rw-r--r--
📄
jpegint.h
15.25 KB
11/25/2020 03:56:19 AM
rw-r--r--
📄
jpeglib.h
49.1 KB
11/25/2020 03:56:19 AM
rw-r--r--
📁
json-c
-
12/12/2023 08:34:12 AM
rwxr-xr-x
📁
kadm5
-
08/27/2025 09:38:11 AM
rwxr-xr-x
📄
kdb.h
62.83 KB
06/24/2025 12:42:45 PM
rw-r--r--
📄
keyutils.h
11.52 KB
04/05/2023 07:15:53 PM
rw-r--r--
📄
krad.h
8.72 KB
07/10/2023 08:58:20 PM
rw-r--r--
📁
krb5
-
08/27/2025 09:38:11 AM
rwxr-xr-x
📄
krb5.h
402 bytes
07/10/2023 08:58:20 PM
rw-r--r--
📄
langinfo.h
17.43 KB
11/05/2025 09:30:51 AM
rw-r--r--
📄
lastlog.h
126 bytes
11/05/2025 09:31:16 AM
rw-r--r--
📄
lber.h
15.12 KB
05/21/2024 05:19:11 PM
rw-r--r--
📄
lber_types.h
1.43 KB
03/13/2025 12:28:31 PM
rw-r--r--
📄
ldap.h
72.36 KB
05/21/2024 05:19:11 PM
rw-r--r--
📄
ldap_cdefs.h
9.24 KB
05/21/2024 05:19:11 PM
rw-r--r--
📄
ldap_features.h
1.55 KB
03/13/2025 12:28:31 PM
rw-r--r--
📄
ldap_schema.h
9.23 KB
05/21/2024 05:19:11 PM
rw-r--r--
📄
ldap_utf8.h
3.39 KB
05/21/2024 05:19:11 PM
rw-r--r--
📄
ldif.h
4.68 KB
05/21/2024 05:19:11 PM
rw-r--r--
📄
libaio.h
8.75 KB
02/09/2022 07:07:19 PM
rw-r--r--
📁
libdb
-
08/27/2025 09:37:07 AM
rwxr-xr-x
📁
libexslt
-
08/27/2025 09:41:09 AM
rwxr-xr-x
📄
libgen.h
1.35 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
libintl.h
4.47 KB
11/05/2025 09:30:53 AM
rw-r--r--
📄
liblsapi-sha1.h
569 bytes
12/17/2025 11:53:03 PM
rw-r--r--
📁
libltdl
-
08/27/2025 09:41:09 AM
rwxr-xr-x
📁
libmount
-
08/27/2025 09:38:11 AM
rwxr-xr-x
📁
libpng16
-
12/12/2023 08:34:06 AM
rwxr-xr-x
📁
libxml2
-
08/07/2025 03:49:19 PM
rwxr-xr-x
📁
libxslt
-
08/27/2025 09:41:09 AM
rwxr-xr-x
📄
limits.h
5.57 KB
11/05/2025 09:30:51 AM
rw-r--r--
📄
link.h
7.05 KB
11/05/2025 09:31:17 AM
rw-r--r--
📁
linux
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📄
lmdb.h
72.28 KB
03/16/2021 04:41:19 PM
rw-r--r--
📄
locale.h
7.5 KB
11/05/2025 09:30:51 AM
rw-r--r--
📄
lsapidef.h
4.77 KB
12/17/2025 11:53:03 PM
rw-r--r--
📄
lscapi.h
24.64 KB
12/17/2025 11:53:03 PM
rw-r--r--
📄
lscapi_config.h
599 bytes
12/17/2025 11:53:03 PM
rw-r--r--
📄
ltdl.h
5.58 KB
10/01/2024 05:49:19 PM
rw-r--r--
📁
lve
-
08/31/2025 03:21:56 PM
rwxr-xr-x
📁
lzma
-
12/12/2023 08:34:15 AM
rwxr-xr-x
📄
lzma.h
9.63 KB
03/17/2020 02:28:50 PM
rw-r--r--
📄
malloc.h
5.77 KB
11/05/2025 09:30:55 AM
rw-r--r--
📄
math.h
47.63 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
maxminddb.h
8.34 KB
02/18/2021 05:04:22 PM
rw-r--r--
📄
maxminddb_config-64.h
504 bytes
10/01/2024 04:54:45 PM
rw-r--r--
📄
maxminddb_config.h
178 bytes
10/01/2024 04:54:47 PM
rw-r--r--
📄
mcheck.h
2.38 KB
11/05/2025 09:30:55 AM
rw-r--r--
📄
memory.h
956 bytes
11/05/2025 09:30:56 AM
rw-r--r--
📄
menu.h
11.6 KB
08/05/2025 09:45:53 AM
rw-r--r--
📁
misc
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📄
mntent.h
3.28 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
monetary.h
1.92 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
mqueue.h
4.5 KB
11/05/2025 09:30:55 AM
rw-r--r--
📁
mtd
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📁
mysql
-
12/27/2025 09:20:24 AM
rwxr-xr-x
📄
nc_tparm.h
4.67 KB
08/05/2025 09:45:53 AM
rw-r--r--
📁
ncurses
-
08/27/2025 09:41:09 AM
rwxr-xr-x
📄
ncurses.h
96.82 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
ncurses_dll.h
3.95 KB
08/05/2025 09:45:53 AM
rw-r--r--
📁
ncursesw
-
08/27/2025 09:41:09 AM
rwxr-xr-x
📄
ndbm.h
2.39 KB
01/02/2022 08:34:10 AM
rw-r--r--
📁
net
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
netash
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
netatalk
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
netax25
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📄
netdb.h
27.79 KB
11/05/2025 09:31:16 AM
rw-r--r--
📁
neteconet
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
netinet
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
netipx
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
netiucv
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
netpacket
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
netrom
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
netrose
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
nfs
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📄
nl_types.h
1.71 KB
11/05/2025 09:30:53 AM
rw-r--r--
📄
nss.h
14.07 KB
11/05/2025 09:31:16 AM
rw-r--r--
📄
obstack.h
20.81 KB
11/05/2025 09:30:55 AM
rw-r--r--
📄
openldap.h
964 bytes
05/21/2024 05:19:11 PM
rw-r--r--
📁
openssl
-
08/27/2025 09:37:24 AM
rwxr-xr-x
📄
panel.h
4.41 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
paths.h
2.91 KB
11/05/2025 09:30:57 AM
rw-r--r--
📁
pcp
-
08/27/2025 09:39:54 AM
rwxr-xr-x
📄
pcre.h
30.97 KB
10/02/2024 09:53:31 PM
rw-r--r--
📄
pcre2.h
46.15 KB
10/02/2024 09:57:27 PM
rw-r--r--
📄
pcre2posix.h
6.52 KB
08/20/2021 04:51:28 PM
rw-r--r--
📄
pcre_scanner.h
6.45 KB
01/31/2014 02:32:09 PM
rw-r--r--
📄
pcre_stringpiece.h
6.16 KB
10/02/2024 09:53:31 PM
rw-r--r--
📄
pcrecpp.h
25.91 KB
01/31/2014 02:32:11 PM
rw-r--r--
📄
pcrecpparg.h
6.62 KB
10/02/2024 09:53:31 PM
rw-r--r--
📄
pcreposix.h
5.74 KB
10/02/2024 09:53:20 PM
rw-r--r--
📄
png.h
139.51 KB
04/14/2019 06:10:32 PM
rw-r--r--
📄
pngconf.h
22.31 KB
04/14/2019 06:10:32 PM
rw-r--r--
📄
pnglibconf.h
7.43 KB
02/10/2022 02:35:52 AM
rw-r--r--
📄
poll.h
22 bytes
11/05/2025 09:30:56 AM
rw-r--r--
📄
powercap.h
1.62 KB
11/11/2025 03:33:32 PM
rw-r--r--
📄
pr29.h
2.19 KB
07/22/2021 01:31:59 PM
rw-r--r--
📄
printf.h
6.71 KB
11/05/2025 09:30:55 AM
rw-r--r--
📄
proc_service.h
3.4 KB
11/05/2025 09:31:15 AM
rw-r--r--
📄
profile.h
11.87 KB
06/24/2025 12:43:12 PM
rw-r--r--
📁
protobuf-c
-
12/12/2023 08:34:07 AM
rwxr-xr-x
📁
protocols
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📄
pthread.h
47.39 KB
11/05/2025 09:30:55 AM
rw-r--r--
📄
pty.h
1.53 KB
11/05/2025 09:31:16 AM
rw-r--r--
📄
punycode.h
9.3 KB
07/22/2021 01:31:59 PM
rw-r--r--
📄
pwd.h
6.17 KB
11/05/2025 09:30:56 AM
rw-r--r--
📁
python3.9
-
09/06/2025 10:23:30 AM
rwxr-xr-x
📁
rdma
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📄
re_comp.h
963 bytes
11/05/2025 09:30:56 AM
rw-r--r--
📄
regex.h
25.3 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
regexp.h
1.41 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
resolv.h
12.1 KB
11/05/2025 09:31:16 AM
rw-r--r--
📁
rpc
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📁
sasl
-
12/13/2023 06:13:33 AM
rwxr-xr-x
📄
sched.h
4.92 KB
11/05/2025 09:30:56 AM
rw-r--r--
📁
scsi
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📄
search.h
5.32 KB
11/05/2025 09:30:57 AM
rw-r--r--
📁
security
-
09/06/2025 10:23:26 AM
rwxr-xr-x
📁
selinux
-
08/27/2025 09:37:11 AM
rwxr-xr-x
📄
semaphore.h
3.38 KB
11/05/2025 09:30:55 AM
rw-r--r--
📁
sepol
-
08/27/2025 09:37:07 AM
rwxr-xr-x
📄
setjmp.h
3.12 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
sgtty.h
1.31 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
shadow.h
5.34 KB
11/05/2025 09:31:14 AM
rw-r--r--
📄
signal.h
12.73 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
slapi-plugin.h
37.45 KB
05/21/2024 05:19:11 PM
rw-r--r--
📁
sound
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📄
spawn.h
7.84 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
stab.h
264 bytes
11/05/2025 09:30:57 AM
rw-r--r--
📄
stdc-predef.h
2.24 KB
11/05/2025 09:30:51 AM
rw-r--r--
📄
stdint.h
8.28 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
stdio.h
30.67 KB
11/05/2025 09:30:55 AM
rw-r--r--
📄
stdio_ext.h
2.73 KB
11/05/2025 09:30:55 AM
rw-r--r--
📄
stdlib.h
35.46 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
string.h
18.33 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
stringprep.h
9.53 KB
07/22/2021 01:44:13 PM
rw-r--r--
📄
strings.h
4.64 KB
11/05/2025 09:30:56 AM
rw-r--r--
📁
sys
-
12/27/2025 09:18:10 AM
rwxr-xr-x
📄
syscall.h
25 bytes
11/05/2025 09:30:57 AM
rw-r--r--
📄
sysexits.h
5.11 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
syslog.h
24 bytes
11/05/2025 09:30:57 AM
rw-r--r--
📁
sysprof-4
-
12/12/2023 08:34:16 AM
rwxr-xr-x
📄
tar.h
3.7 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
term.h
40.95 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
term_entry.h
8.9 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
termcap.h
3.39 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
termio.h
214 bytes
11/05/2025 09:30:57 AM
rw-r--r--
📄
termios.h
3.51 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
tgmath.h
39.24 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
thread_db.h
15.65 KB
11/05/2025 09:31:15 AM
rw-r--r--
📄
threads.h
7.51 KB
11/05/2025 09:30:55 AM
rw-r--r--
📄
tic.h
14.48 KB
08/05/2025 09:45:53 AM
rw-r--r--
📄
tiff.h
46.33 KB
04/22/2022 04:51:48 PM
rw-r--r--
📄
tiffconf-64.h
3.19 KB
10/28/2025 03:43:54 AM
rw-r--r--
📄
tiffconf.h
250 bytes
10/28/2025 03:44:07 AM
rw-r--r--
📄
tiffio.h
24.13 KB
05/20/2022 03:32:31 PM
rw-r--r--
📄
tiffio.hxx
1.62 KB
02/19/2022 03:33:55 PM
rw-r--r--
📄
tiffvers.h
410 bytes
05/20/2022 04:12:45 PM
rw-r--r--
📄
time.h
14.49 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
tld.h
4.85 KB
07/22/2021 01:31:59 PM
rw-r--r--
📄
ttyent.h
2.44 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
uchar.h
1.96 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
ucontext.h
1.99 KB
11/05/2025 09:30:54 AM
rw-r--r--
📄
ulimit.h
1.55 KB
11/05/2025 09:30:57 AM
rw-r--r--
📄
unctrl.h
3.1 KB
08/05/2025 09:45:53 AM
rw-r--r--
📁
unicode
-
08/27/2025 09:37:07 AM
rwxr-xr-x
📄
unistd.h
43.45 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
utime.h
1.86 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
utmp.h
3.15 KB
11/05/2025 09:31:16 AM
rw-r--r--
📄
utmpx.h
4 KB
11/05/2025 09:31:16 AM
rw-r--r--
📄
values.h
1.91 KB
11/05/2025 09:30:51 AM
rw-r--r--
📄
verto-module.h
6.48 KB
02/10/2022 04:33:39 AM
rw-r--r--
📄
verto.h
18.98 KB
02/10/2022 04:33:39 AM
rw-r--r--
📁
video
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📄
wait.h
22 bytes
11/05/2025 09:30:56 AM
rw-r--r--
📄
wchar.h
31.39 KB
11/05/2025 09:30:56 AM
rw-r--r--
📄
wctype.h
5.42 KB
11/05/2025 09:30:57 AM
rw-r--r--
📁
webp
-
12/12/2023 08:34:18 AM
rwxr-xr-x
📄
wordexp.h
2.44 KB
11/05/2025 09:30:56 AM
rw-r--r--
📁
xcb
-
12/12/2023 08:34:07 AM
rwxr-xr-x
📁
xen
-
12/27/2025 09:18:40 AM
rwxr-xr-x
📄
zconf.h
15.88 KB
09/26/2023 09:22:15 AM
rw-r--r--
📄
zlib.h
94 KB
09/26/2023 09:22:15 AM
rw-r--r--
Editing: jpeglib.h
Close
/* * jpeglib.h * * This file was part of the Independent JPEG Group's software: * Copyright (C) 1991-1998, Thomas G. Lane. * Modified 2002-2009 by Guido Vollbeding. * libjpeg-turbo Modifications: * Copyright (C) 2009-2011, 2013-2014, 2016-2017, 2020, D. R. Commander. * Copyright (C) 2015, Google, Inc. * For conditions of distribution and use, see the accompanying README.ijg * file. * * This file defines the application interface for the JPEG library. * Most applications using the library need only include this file, * and perhaps jerror.h if they want to know the exact error codes. */ #ifndef JPEGLIB_H #define JPEGLIB_H /* * First we include the configuration files that record how this * installation of the JPEG library is set up. jconfig.h can be * generated automatically for many systems. jmorecfg.h contains * manual configuration options that most people need not worry about. */ #ifndef JCONFIG_INCLUDED /* in case jinclude.h already did */ #include "jconfig.h" /* widely used configuration options */ #endif #include "jmorecfg.h" /* seldom changed options */ #ifdef __cplusplus #ifndef DONT_USE_EXTERN_C extern "C" { #endif #endif /* Various constants determining the sizes of things. * All of these are specified by the JPEG standard, so don't change them * if you want to be compatible. */ #define DCTSIZE 8 /* The basic DCT block is 8x8 samples */ #define DCTSIZE2 64 /* DCTSIZE squared; # of elements in a block */ #define NUM_QUANT_TBLS 4 /* Quantization tables are numbered 0..3 */ #define NUM_HUFF_TBLS 4 /* Huffman tables are numbered 0..3 */ #define NUM_ARITH_TBLS 16 /* Arith-coding tables are numbered 0..15 */ #define MAX_COMPS_IN_SCAN 4 /* JPEG limit on # of components in one scan */ #define MAX_SAMP_FACTOR 4 /* JPEG limit on sampling factors */ /* Unfortunately, some bozo at Adobe saw no reason to be bound by the standard; * the PostScript DCT filter can emit files with many more than 10 blocks/MCU. * If you happen to run across such a file, you can up D_MAX_BLOCKS_IN_MCU * to handle it. We even let you do this from the jconfig.h file. However, * we strongly discourage changing C_MAX_BLOCKS_IN_MCU; just because Adobe * sometimes emits noncompliant files doesn't mean you should too. */ #define C_MAX_BLOCKS_IN_MCU 10 /* compressor's limit on blocks per MCU */ #ifndef D_MAX_BLOCKS_IN_MCU #define D_MAX_BLOCKS_IN_MCU 10 /* decompressor's limit on blocks per MCU */ #endif /* Data structures for images (arrays of samples and of DCT coefficients). */ typedef JSAMPLE *JSAMPROW; /* ptr to one image row of pixel samples. */ typedef JSAMPROW *JSAMPARRAY; /* ptr to some rows (a 2-D sample array) */ typedef JSAMPARRAY *JSAMPIMAGE; /* a 3-D sample array: top index is color */ typedef JCOEF JBLOCK[DCTSIZE2]; /* one block of coefficients */ typedef JBLOCK *JBLOCKROW; /* pointer to one row of coefficient blocks */ typedef JBLOCKROW *JBLOCKARRAY; /* a 2-D array of coefficient blocks */ typedef JBLOCKARRAY *JBLOCKIMAGE; /* a 3-D array of coefficient blocks */ typedef JCOEF *JCOEFPTR; /* useful in a couple of places */ /* Types for JPEG compression parameters and working tables. */ /* DCT coefficient quantization tables. */ typedef struct { /* This array gives the coefficient quantizers in natural array order * (not the zigzag order in which they are stored in a JPEG DQT marker). * CAUTION: IJG versions prior to v6a kept this array in zigzag order. */ UINT16 quantval[DCTSIZE2]; /* quantization step for each coefficient */ /* This field is used only during compression. It's initialized FALSE when * the table is created, and set TRUE when it's been output to the file. * You could suppress output of a table by setting this to TRUE. * (See jpeg_suppress_tables for an example.) */ boolean sent_table; /* TRUE when table has been output */ } JQUANT_TBL; /* Huffman coding tables. */ typedef struct { /* These two fields directly represent the contents of a JPEG DHT marker */ UINT8 bits[17]; /* bits[k] = # of symbols with codes of */ /* length k bits; bits[0] is unused */ UINT8 huffval[256]; /* The symbols, in order of incr code length */ /* This field is used only during compression. It's initialized FALSE when * the table is created, and set TRUE when it's been output to the file. * You could suppress output of a table by setting this to TRUE. * (See jpeg_suppress_tables for an example.) */ boolean sent_table; /* TRUE when table has been output */ } JHUFF_TBL; /* Basic info about one component (color channel). */ typedef struct { /* These values are fixed over the whole image. */ /* For compression, they must be supplied by parameter setup; */ /* for decompression, they are read from the SOF marker. */ int component_id; /* identifier for this component (0..255) */ int component_index; /* its index in SOF or cinfo->comp_info[] */ int h_samp_factor; /* horizontal sampling factor (1..4) */ int v_samp_factor; /* vertical sampling factor (1..4) */ int quant_tbl_no; /* quantization table selector (0..3) */ /* These values may vary between scans. */ /* For compression, they must be supplied by parameter setup; */ /* for decompression, they are read from the SOS marker. */ /* The decompressor output side may not use these variables. */ int dc_tbl_no; /* DC entropy table selector (0..3) */ int ac_tbl_no; /* AC entropy table selector (0..3) */ /* Remaining fields should be treated as private by applications. */ /* These values are computed during compression or decompression startup: */ /* Component's size in DCT blocks. * Any dummy blocks added to complete an MCU are not counted; therefore * these values do not depend on whether a scan is interleaved or not. */ JDIMENSION width_in_blocks; JDIMENSION height_in_blocks; /* Size of a DCT block in samples. Always DCTSIZE for compression. * For decompression this is the size of the output from one DCT block, * reflecting any scaling we choose to apply during the IDCT step. * Values from 1 to 16 are supported. * Note that different components may receive different IDCT scalings. */ #if JPEG_LIB_VERSION >= 70 int DCT_h_scaled_size; int DCT_v_scaled_size; #else int DCT_scaled_size; #endif /* The downsampled dimensions are the component's actual, unpadded number * of samples at the main buffer (preprocessing/compression interface), thus * downsampled_width = ceil(image_width * Hi/Hmax) * and similarly for height. For decompression, IDCT scaling is included, so * downsampled_width = ceil(image_width * Hi/Hmax * DCT_[h_]scaled_size/DCTSIZE) */ JDIMENSION downsampled_width; /* actual width in samples */ JDIMENSION downsampled_height; /* actual height in samples */ /* This flag is used only for decompression. In cases where some of the * components will be ignored (eg grayscale output from YCbCr image), * we can skip most computations for the unused components. */ boolean component_needed; /* do we need the value of this component? */ /* These values are computed before starting a scan of the component. */ /* The decompressor output side may not use these variables. */ int MCU_width; /* number of blocks per MCU, horizontally */ int MCU_height; /* number of blocks per MCU, vertically */ int MCU_blocks; /* MCU_width * MCU_height */ int MCU_sample_width; /* MCU width in samples, MCU_width*DCT_[h_]scaled_size */ int last_col_width; /* # of non-dummy blocks across in last MCU */ int last_row_height; /* # of non-dummy blocks down in last MCU */ /* Saved quantization table for component; NULL if none yet saved. * See jdinput.c comments about the need for this information. * This field is currently used only for decompression. */ JQUANT_TBL *quant_table; /* Private per-component storage for DCT or IDCT subsystem. */ void *dct_table; } jpeg_component_info; /* The script for encoding a multiple-scan file is an array of these: */ typedef struct { int comps_in_scan; /* number of components encoded in this scan */ int component_index[MAX_COMPS_IN_SCAN]; /* their SOF/comp_info[] indexes */ int Ss, Se; /* progressive JPEG spectral selection parms */ int Ah, Al; /* progressive JPEG successive approx. parms */ } jpeg_scan_info; /* The decompressor can save APPn and COM markers in a list of these: */ typedef struct jpeg_marker_struct *jpeg_saved_marker_ptr; struct jpeg_marker_struct { jpeg_saved_marker_ptr next; /* next in list, or NULL */ UINT8 marker; /* marker code: JPEG_COM, or JPEG_APP0+n */ unsigned int original_length; /* # bytes of data in the file */ unsigned int data_length; /* # bytes of data saved at data[] */ JOCTET *data; /* the data contained in the marker */ /* the marker length word is not counted in data_length or original_length */ }; /* Known color spaces. */ #define JCS_EXTENSIONS 1 #define JCS_ALPHA_EXTENSIONS 1 typedef enum { JCS_UNKNOWN, /* error/unspecified */ JCS_GRAYSCALE, /* monochrome */ JCS_RGB, /* red/green/blue as specified by the RGB_RED, RGB_GREEN, RGB_BLUE, and RGB_PIXELSIZE macros */ JCS_YCbCr, /* Y/Cb/Cr (also known as YUV) */ JCS_CMYK, /* C/M/Y/K */ JCS_YCCK, /* Y/Cb/Cr/K */ JCS_EXT_RGB, /* red/green/blue */ JCS_EXT_RGBX, /* red/green/blue/x */ JCS_EXT_BGR, /* blue/green/red */ JCS_EXT_BGRX, /* blue/green/red/x */ JCS_EXT_XBGR, /* x/blue/green/red */ JCS_EXT_XRGB, /* x/red/green/blue */ /* When out_color_space it set to JCS_EXT_RGBX, JCS_EXT_BGRX, JCS_EXT_XBGR, or JCS_EXT_XRGB during decompression, the X byte is undefined, and in order to ensure the best performance, libjpeg-turbo can set that byte to whatever value it wishes. Use the following colorspace constants to ensure that the X byte is set to 0xFF, so that it can be interpreted as an opaque alpha channel. */ JCS_EXT_RGBA, /* red/green/blue/alpha */ JCS_EXT_BGRA, /* blue/green/red/alpha */ JCS_EXT_ABGR, /* alpha/blue/green/red */ JCS_EXT_ARGB, /* alpha/red/green/blue */ JCS_RGB565 /* 5-bit red/6-bit green/5-bit blue */ } J_COLOR_SPACE; /* DCT/IDCT algorithm options. */ typedef enum { JDCT_ISLOW, /* accurate integer method */ JDCT_IFAST, /* less accurate integer method [legacy feature] */ JDCT_FLOAT /* floating-point method [legacy feature] */ } J_DCT_METHOD; #ifndef JDCT_DEFAULT /* may be overridden in jconfig.h */ #define JDCT_DEFAULT JDCT_ISLOW #endif #ifndef JDCT_FASTEST /* may be overridden in jconfig.h */ #define JDCT_FASTEST JDCT_IFAST #endif /* Dithering options for decompression. */ typedef enum { JDITHER_NONE, /* no dithering */ JDITHER_ORDERED, /* simple ordered dither */ JDITHER_FS /* Floyd-Steinberg error diffusion dither */ } J_DITHER_MODE; /* Common fields between JPEG compression and decompression master structs. */ #define jpeg_common_fields \ struct jpeg_error_mgr *err; /* Error handler module */ \ struct jpeg_memory_mgr *mem; /* Memory manager module */ \ struct jpeg_progress_mgr *progress; /* Progress monitor, or NULL if none */ \ void *client_data; /* Available for use by application */ \ boolean is_decompressor; /* So common code can tell which is which */ \ int global_state /* For checking call sequence validity */ /* Routines that are to be used by both halves of the library are declared * to receive a pointer to this structure. There are no actual instances of * jpeg_common_struct, only of jpeg_compress_struct and jpeg_decompress_struct. */ struct jpeg_common_struct { jpeg_common_fields; /* Fields common to both master struct types */ /* Additional fields follow in an actual jpeg_compress_struct or * jpeg_decompress_struct. All three structs must agree on these * initial fields! (This would be a lot cleaner in C++.) */ }; typedef struct jpeg_common_struct *j_common_ptr; typedef struct jpeg_compress_struct *j_compress_ptr; typedef struct jpeg_decompress_struct *j_decompress_ptr; /* Master record for a compression instance */ struct jpeg_compress_struct { jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */ /* Destination for compressed data */ struct jpeg_destination_mgr *dest; /* Description of source image --- these fields must be filled in by * outer application before starting compression. in_color_space must * be correct before you can even call jpeg_set_defaults(). */ JDIMENSION image_width; /* input image width */ JDIMENSION image_height; /* input image height */ int input_components; /* # of color components in input image */ J_COLOR_SPACE in_color_space; /* colorspace of input image */ double input_gamma; /* image gamma of input image */ /* Compression parameters --- these fields must be set before calling * jpeg_start_compress(). We recommend calling jpeg_set_defaults() to * initialize everything to reasonable defaults, then changing anything * the application specifically wants to change. That way you won't get * burnt when new parameters are added. Also note that there are several * helper routines to simplify changing parameters. */ #if JPEG_LIB_VERSION >= 70 unsigned int scale_num, scale_denom; /* fraction by which to scale image */ JDIMENSION jpeg_width; /* scaled JPEG image width */ JDIMENSION jpeg_height; /* scaled JPEG image height */ /* Dimensions of actual JPEG image that will be written to file, * derived from input dimensions by scaling factors above. * These fields are computed by jpeg_start_compress(). * You can also use jpeg_calc_jpeg_dimensions() to determine these values * in advance of calling jpeg_start_compress(). */ #endif int data_precision; /* bits of precision in image data */ int num_components; /* # of color components in JPEG image */ J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ jpeg_component_info *comp_info; /* comp_info[i] describes component that appears i'th in SOF */ JQUANT_TBL *quant_tbl_ptrs[NUM_QUANT_TBLS]; #if JPEG_LIB_VERSION >= 70 int q_scale_factor[NUM_QUANT_TBLS]; #endif /* ptrs to coefficient quantization tables, or NULL if not defined, * and corresponding scale factors (percentage, initialized 100). */ JHUFF_TBL *dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; JHUFF_TBL *ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; /* ptrs to Huffman coding tables, or NULL if not defined */ UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ int num_scans; /* # of entries in scan_info array */ const jpeg_scan_info *scan_info; /* script for multi-scan file, or NULL */ /* The default value of scan_info is NULL, which causes a single-scan * sequential JPEG file to be emitted. To create a multi-scan file, * set num_scans and scan_info to point to an array of scan definitions. */ boolean raw_data_in; /* TRUE=caller supplies downsampled data */ boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ boolean optimize_coding; /* TRUE=optimize entropy encoding parms */ boolean CCIR601_sampling; /* TRUE=first samples are cosited */ #if JPEG_LIB_VERSION >= 70 boolean do_fancy_downsampling; /* TRUE=apply fancy downsampling */ #endif int smoothing_factor; /* 1..100, or 0 for no input smoothing */ J_DCT_METHOD dct_method; /* DCT algorithm selector */ /* The restart interval can be specified in absolute MCUs by setting * restart_interval, or in MCU rows by setting restart_in_rows * (in which case the correct restart_interval will be figured * for each scan). */ unsigned int restart_interval; /* MCUs per restart, or 0 for no restart */ int restart_in_rows; /* if > 0, MCU rows per restart interval */ /* Parameters controlling emission of special markers. */ boolean write_JFIF_header; /* should a JFIF marker be written? */ UINT8 JFIF_major_version; /* What to write for the JFIF version number */ UINT8 JFIF_minor_version; /* These three values are not used by the JPEG code, merely copied */ /* into the JFIF APP0 marker. density_unit can be 0 for unknown, */ /* 1 for dots/inch, or 2 for dots/cm. Note that the pixel aspect */ /* ratio is defined by X_density/Y_density even when density_unit=0. */ UINT8 density_unit; /* JFIF code for pixel size units */ UINT16 X_density; /* Horizontal pixel density */ UINT16 Y_density; /* Vertical pixel density */ boolean write_Adobe_marker; /* should an Adobe marker be written? */ /* State variable: index of next scanline to be written to * jpeg_write_scanlines(). Application may use this to control its * processing loop, e.g., "while (next_scanline < image_height)". */ JDIMENSION next_scanline; /* 0 .. image_height-1 */ /* Remaining fields are known throughout compressor, but generally * should not be touched by a surrounding application. */ /* * These fields are computed during compression startup */ boolean progressive_mode; /* TRUE if scan script uses progressive mode */ int max_h_samp_factor; /* largest h_samp_factor */ int max_v_samp_factor; /* largest v_samp_factor */ #if JPEG_LIB_VERSION >= 70 int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */ int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */ #endif JDIMENSION total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */ /* The coefficient controller receives data in units of MCU rows as defined * for fully interleaved scans (whether the JPEG file is interleaved or not). * There are v_samp_factor * DCTSIZE sample rows of each component in an * "iMCU" (interleaved MCU) row. */ /* * These fields are valid during any one scan. * They describe the components and MCUs actually appearing in the scan. */ int comps_in_scan; /* # of JPEG components in this scan */ jpeg_component_info *cur_comp_info[MAX_COMPS_IN_SCAN]; /* *cur_comp_info[i] describes component that appears i'th in SOS */ JDIMENSION MCUs_per_row; /* # of MCUs across the image */ JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ int blocks_in_MCU; /* # of DCT blocks per MCU */ int MCU_membership[C_MAX_BLOCKS_IN_MCU]; /* MCU_membership[i] is index in cur_comp_info of component owning */ /* i'th block in an MCU */ int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ #if JPEG_LIB_VERSION >= 80 int block_size; /* the basic DCT block size: 1..16 */ const int *natural_order; /* natural-order position array */ int lim_Se; /* min( Se, DCTSIZE2-1 ) */ #endif /* * Links to compression subobjects (methods and private variables of modules) */ struct jpeg_comp_master *master; struct jpeg_c_main_controller *main; struct jpeg_c_prep_controller *prep; struct jpeg_c_coef_controller *coef; struct jpeg_marker_writer *marker; struct jpeg_color_converter *cconvert; struct jpeg_downsampler *downsample; struct jpeg_forward_dct *fdct; struct jpeg_entropy_encoder *entropy; jpeg_scan_info *script_space; /* workspace for jpeg_simple_progression */ int script_space_size; }; /* Master record for a decompression instance */ struct jpeg_decompress_struct { jpeg_common_fields; /* Fields shared with jpeg_compress_struct */ /* Source of compressed data */ struct jpeg_source_mgr *src; /* Basic description of image --- filled in by jpeg_read_header(). */ /* Application may inspect these values to decide how to process image. */ JDIMENSION image_width; /* nominal image width (from SOF marker) */ JDIMENSION image_height; /* nominal image height */ int num_components; /* # of color components in JPEG image */ J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ /* Decompression processing parameters --- these fields must be set before * calling jpeg_start_decompress(). Note that jpeg_read_header() initializes * them to default values. */ J_COLOR_SPACE out_color_space; /* colorspace for output */ unsigned int scale_num, scale_denom; /* fraction by which to scale image */ double output_gamma; /* image gamma wanted in output */ boolean buffered_image; /* TRUE=multiple output passes */ boolean raw_data_out; /* TRUE=downsampled data wanted */ J_DCT_METHOD dct_method; /* IDCT algorithm selector */ boolean do_fancy_upsampling; /* TRUE=apply fancy upsampling */ boolean do_block_smoothing; /* TRUE=apply interblock smoothing */ boolean quantize_colors; /* TRUE=colormapped output wanted */ /* the following are ignored if not quantize_colors: */ J_DITHER_MODE dither_mode; /* type of color dithering to use */ boolean two_pass_quantize; /* TRUE=use two-pass color quantization */ int desired_number_of_colors; /* max # colors to use in created colormap */ /* these are significant only in buffered-image mode: */ boolean enable_1pass_quant; /* enable future use of 1-pass quantizer */ boolean enable_external_quant;/* enable future use of external colormap */ boolean enable_2pass_quant; /* enable future use of 2-pass quantizer */ /* Description of actual output image that will be returned to application. * These fields are computed by jpeg_start_decompress(). * You can also use jpeg_calc_output_dimensions() to determine these values * in advance of calling jpeg_start_decompress(). */ JDIMENSION output_width; /* scaled image width */ JDIMENSION output_height; /* scaled image height */ int out_color_components; /* # of color components in out_color_space */ int output_components; /* # of color components returned */ /* output_components is 1 (a colormap index) when quantizing colors; * otherwise it equals out_color_components. */ int rec_outbuf_height; /* min recommended height of scanline buffer */ /* If the buffer passed to jpeg_read_scanlines() is less than this many rows * high, space and time will be wasted due to unnecessary data copying. * Usually rec_outbuf_height will be 1 or 2, at most 4. */ /* When quantizing colors, the output colormap is described by these fields. * The application can supply a colormap by setting colormap non-NULL before * calling jpeg_start_decompress; otherwise a colormap is created during * jpeg_start_decompress or jpeg_start_output. * The map has out_color_components rows and actual_number_of_colors columns. */ int actual_number_of_colors; /* number of entries in use */ JSAMPARRAY colormap; /* The color map as a 2-D pixel array */ /* State variables: these variables indicate the progress of decompression. * The application may examine these but must not modify them. */ /* Row index of next scanline to be read from jpeg_read_scanlines(). * Application may use this to control its processing loop, e.g., * "while (output_scanline < output_height)". */ JDIMENSION output_scanline; /* 0 .. output_height-1 */ /* Current input scan number and number of iMCU rows completed in scan. * These indicate the progress of the decompressor input side. */ int input_scan_number; /* Number of SOS markers seen so far */ JDIMENSION input_iMCU_row; /* Number of iMCU rows completed */ /* The "output scan number" is the notional scan being displayed by the * output side. The decompressor will not allow output scan/row number * to get ahead of input scan/row, but it can fall arbitrarily far behind. */ int output_scan_number; /* Nominal scan number being displayed */ JDIMENSION output_iMCU_row; /* Number of iMCU rows read */ /* Current progression status. coef_bits[c][i] indicates the precision * with which component c's DCT coefficient i (in zigzag order) is known. * It is -1 when no data has yet been received, otherwise it is the point * transform (shift) value for the most recent scan of the coefficient * (thus, 0 at completion of the progression). * This pointer is NULL when reading a non-progressive file. */ int (*coef_bits)[DCTSIZE2]; /* -1 or current Al value for each coef */ /* Internal JPEG parameters --- the application usually need not look at * these fields. Note that the decompressor output side may not use * any parameters that can change between scans. */ /* Quantization and Huffman tables are carried forward across input * datastreams when processing abbreviated JPEG datastreams. */ JQUANT_TBL *quant_tbl_ptrs[NUM_QUANT_TBLS]; /* ptrs to coefficient quantization tables, or NULL if not defined */ JHUFF_TBL *dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; JHUFF_TBL *ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; /* ptrs to Huffman coding tables, or NULL if not defined */ /* These parameters are never carried across datastreams, since they * are given in SOF/SOS markers or defined to be reset by SOI. */ int data_precision; /* bits of precision in image data */ jpeg_component_info *comp_info; /* comp_info[i] describes component that appears i'th in SOF */ #if JPEG_LIB_VERSION >= 80 boolean is_baseline; /* TRUE if Baseline SOF0 encountered */ #endif boolean progressive_mode; /* TRUE if SOFn specifies progressive mode */ boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ unsigned int restart_interval; /* MCUs per restart interval, or 0 for no restart */ /* These fields record data obtained from optional markers recognized by * the JPEG library. */ boolean saw_JFIF_marker; /* TRUE iff a JFIF APP0 marker was found */ /* Data copied from JFIF marker; only valid if saw_JFIF_marker is TRUE: */ UINT8 JFIF_major_version; /* JFIF version number */ UINT8 JFIF_minor_version; UINT8 density_unit; /* JFIF code for pixel size units */ UINT16 X_density; /* Horizontal pixel density */ UINT16 Y_density; /* Vertical pixel density */ boolean saw_Adobe_marker; /* TRUE iff an Adobe APP14 marker was found */ UINT8 Adobe_transform; /* Color transform code from Adobe marker */ boolean CCIR601_sampling; /* TRUE=first samples are cosited */ /* Aside from the specific data retained from APPn markers known to the * library, the uninterpreted contents of any or all APPn and COM markers * can be saved in a list for examination by the application. */ jpeg_saved_marker_ptr marker_list; /* Head of list of saved markers */ /* Remaining fields are known throughout decompressor, but generally * should not be touched by a surrounding application. */ /* * These fields are computed during decompression startup */ int max_h_samp_factor; /* largest h_samp_factor */ int max_v_samp_factor; /* largest v_samp_factor */ #if JPEG_LIB_VERSION >= 70 int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */ int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */ #else int min_DCT_scaled_size; /* smallest DCT_scaled_size of any component */ #endif JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */ /* The coefficient controller's input and output progress is measured in * units of "iMCU" (interleaved MCU) rows. These are the same as MCU rows * in fully interleaved JPEG scans, but are used whether the scan is * interleaved or not. We define an iMCU row as v_samp_factor DCT block * rows of each component. Therefore, the IDCT output contains * v_samp_factor*DCT_[v_]scaled_size sample rows of a component per iMCU row. */ JSAMPLE *sample_range_limit; /* table for fast range-limiting */ /* * These fields are valid during any one scan. * They describe the components and MCUs actually appearing in the scan. * Note that the decompressor output side must not use these fields. */ int comps_in_scan; /* # of JPEG components in this scan */ jpeg_component_info *cur_comp_info[MAX_COMPS_IN_SCAN]; /* *cur_comp_info[i] describes component that appears i'th in SOS */ JDIMENSION MCUs_per_row; /* # of MCUs across the image */ JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ int blocks_in_MCU; /* # of DCT blocks per MCU */ int MCU_membership[D_MAX_BLOCKS_IN_MCU]; /* MCU_membership[i] is index in cur_comp_info of component owning */ /* i'th block in an MCU */ int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ #if JPEG_LIB_VERSION >= 80 /* These fields are derived from Se of first SOS marker. */ int block_size; /* the basic DCT block size: 1..16 */ const int *natural_order; /* natural-order position array for entropy decode */ int lim_Se; /* min( Se, DCTSIZE2-1 ) for entropy decode */ #endif /* This field is shared between entropy decoder and marker parser. * It is either zero or the code of a JPEG marker that has been * read from the data source, but has not yet been processed. */ int unread_marker; /* * Links to decompression subobjects (methods, private variables of modules) */ struct jpeg_decomp_master *master; struct jpeg_d_main_controller *main; struct jpeg_d_coef_controller *coef; struct jpeg_d_post_controller *post; struct jpeg_input_controller *inputctl; struct jpeg_marker_reader *marker; struct jpeg_entropy_decoder *entropy; struct jpeg_inverse_dct *idct; struct jpeg_upsampler *upsample; struct jpeg_color_deconverter *cconvert; struct jpeg_color_quantizer *cquantize; }; /* "Object" declarations for JPEG modules that may be supplied or called * directly by the surrounding application. * As with all objects in the JPEG library, these structs only define the * publicly visible methods and state variables of a module. Additional * private fields may exist after the public ones. */ /* Error handler object */ struct jpeg_error_mgr { /* Error exit handler: does not return to caller */ void (*error_exit) (j_common_ptr cinfo); /* Conditionally emit a trace or warning message */ void (*emit_message) (j_common_ptr cinfo, int msg_level); /* Routine that actually outputs a trace or error message */ void (*output_message) (j_common_ptr cinfo); /* Format a message string for the most recent JPEG error or message */ void (*format_message) (j_common_ptr cinfo, char *buffer); #define JMSG_LENGTH_MAX 200 /* recommended size of format_message buffer */ /* Reset error state variables at start of a new image */ void (*reset_error_mgr) (j_common_ptr cinfo); /* The message ID code and any parameters are saved here. * A message can have one string parameter or up to 8 int parameters. */ int msg_code; #define JMSG_STR_PARM_MAX 80 union { int i[8]; char s[JMSG_STR_PARM_MAX]; } msg_parm; /* Standard state variables for error facility */ int trace_level; /* max msg_level that will be displayed */ /* For recoverable corrupt-data errors, we emit a warning message, * but keep going unless emit_message chooses to abort. emit_message * should count warnings in num_warnings. The surrounding application * can check for bad data by seeing if num_warnings is nonzero at the * end of processing. */ long num_warnings; /* number of corrupt-data warnings */ /* These fields point to the table(s) of error message strings. * An application can change the table pointer to switch to a different * message list (typically, to change the language in which errors are * reported). Some applications may wish to add additional error codes * that will be handled by the JPEG library error mechanism; the second * table pointer is used for this purpose. * * First table includes all errors generated by JPEG library itself. * Error code 0 is reserved for a "no such error string" message. */ const char * const *jpeg_message_table; /* Library errors */ int last_jpeg_message; /* Table contains strings 0..last_jpeg_message */ /* Second table can be added by application (see cjpeg/djpeg for example). * It contains strings numbered first_addon_message..last_addon_message. */ const char * const *addon_message_table; /* Non-library errors */ int first_addon_message; /* code for first string in addon table */ int last_addon_message; /* code for last string in addon table */ }; /* Progress monitor object */ struct jpeg_progress_mgr { void (*progress_monitor) (j_common_ptr cinfo); long pass_counter; /* work units completed in this pass */ long pass_limit; /* total number of work units in this pass */ int completed_passes; /* passes completed so far */ int total_passes; /* total number of passes expected */ }; /* Data destination object for compression */ struct jpeg_destination_mgr { JOCTET *next_output_byte; /* => next byte to write in buffer */ size_t free_in_buffer; /* # of byte spaces remaining in buffer */ void (*init_destination) (j_compress_ptr cinfo); boolean (*empty_output_buffer) (j_compress_ptr cinfo); void (*term_destination) (j_compress_ptr cinfo); }; /* Data source object for decompression */ struct jpeg_source_mgr { const JOCTET *next_input_byte; /* => next byte to read from buffer */ size_t bytes_in_buffer; /* # of bytes remaining in buffer */ void (*init_source) (j_decompress_ptr cinfo); boolean (*fill_input_buffer) (j_decompress_ptr cinfo); void (*skip_input_data) (j_decompress_ptr cinfo, long num_bytes); boolean (*resync_to_restart) (j_decompress_ptr cinfo, int desired); void (*term_source) (j_decompress_ptr cinfo); }; /* Memory manager object. * Allocates "small" objects (a few K total), "large" objects (tens of K), * and "really big" objects (virtual arrays with backing store if needed). * The memory manager does not allow individual objects to be freed; rather, * each created object is assigned to a pool, and whole pools can be freed * at once. This is faster and more convenient than remembering exactly what * to free, especially where malloc()/free() are not too speedy. * NB: alloc routines never return NULL. They exit to error_exit if not * successful. */ #define JPOOL_PERMANENT 0 /* lasts until master record is destroyed */ #define JPOOL_IMAGE 1 /* lasts until done with image/datastream */ #define JPOOL_NUMPOOLS 2 typedef struct jvirt_sarray_control *jvirt_sarray_ptr; typedef struct jvirt_barray_control *jvirt_barray_ptr; struct jpeg_memory_mgr { /* Method pointers */ void *(*alloc_small) (j_common_ptr cinfo, int pool_id, size_t sizeofobject); void *(*alloc_large) (j_common_ptr cinfo, int pool_id, size_t sizeofobject); JSAMPARRAY (*alloc_sarray) (j_common_ptr cinfo, int pool_id, JDIMENSION samplesperrow, JDIMENSION numrows); JBLOCKARRAY (*alloc_barray) (j_common_ptr cinfo, int pool_id, JDIMENSION blocksperrow, JDIMENSION numrows); jvirt_sarray_ptr (*request_virt_sarray) (j_common_ptr cinfo, int pool_id, boolean pre_zero, JDIMENSION samplesperrow, JDIMENSION numrows, JDIMENSION maxaccess); jvirt_barray_ptr (*request_virt_barray) (j_common_ptr cinfo, int pool_id, boolean pre_zero, JDIMENSION blocksperrow, JDIMENSION numrows, JDIMENSION maxaccess); void (*realize_virt_arrays) (j_common_ptr cinfo); JSAMPARRAY (*access_virt_sarray) (j_common_ptr cinfo, jvirt_sarray_ptr ptr, JDIMENSION start_row, JDIMENSION num_rows, boolean writable); JBLOCKARRAY (*access_virt_barray) (j_common_ptr cinfo, jvirt_barray_ptr ptr, JDIMENSION start_row, JDIMENSION num_rows, boolean writable); void (*free_pool) (j_common_ptr cinfo, int pool_id); void (*self_destruct) (j_common_ptr cinfo); /* Limit on memory allocation for this JPEG object. (Note that this is * merely advisory, not a guaranteed maximum; it only affects the space * used for virtual-array buffers.) May be changed by outer application * after creating the JPEG object. */ long max_memory_to_use; /* Maximum allocation request accepted by alloc_large. */ long max_alloc_chunk; }; /* Routine signature for application-supplied marker processing methods. * Need not pass marker code since it is stored in cinfo->unread_marker. */ typedef boolean (*jpeg_marker_parser_method) (j_decompress_ptr cinfo); /* 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 JPP(arglist) arglist /* Default error-management setup */ EXTERN(struct jpeg_error_mgr *) jpeg_std_error(struct jpeg_error_mgr *err); /* Initialization of JPEG compression objects. * jpeg_create_compress() and jpeg_create_decompress() are the exported * names that applications should call. These expand to calls on * jpeg_CreateCompress and jpeg_CreateDecompress with additional information * passed for version mismatch checking. * NB: you must set up the error-manager BEFORE calling jpeg_create_xxx. */ #define jpeg_create_compress(cinfo) \ jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \ (size_t)sizeof(struct jpeg_compress_struct)) #define jpeg_create_decompress(cinfo) \ jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \ (size_t)sizeof(struct jpeg_decompress_struct)) EXTERN(void) jpeg_CreateCompress(j_compress_ptr cinfo, int version, size_t structsize); EXTERN(void) jpeg_CreateDecompress(j_decompress_ptr cinfo, int version, size_t structsize); /* Destruction of JPEG compression objects */ EXTERN(void) jpeg_destroy_compress(j_compress_ptr cinfo); EXTERN(void) jpeg_destroy_decompress(j_decompress_ptr cinfo); /* Standard data source and destination managers: stdio streams. */ /* Caller is responsible for opening the file before and closing after. */ EXTERN(void) jpeg_stdio_dest(j_compress_ptr cinfo, FILE *outfile); EXTERN(void) jpeg_stdio_src(j_decompress_ptr cinfo, FILE *infile); #if JPEG_LIB_VERSION >= 80 || defined(MEM_SRCDST_SUPPORTED) /* Data source and destination managers: memory buffers. */ EXTERN(void) jpeg_mem_dest(j_compress_ptr cinfo, unsigned char **outbuffer, unsigned long *outsize); EXTERN(void) jpeg_mem_src(j_decompress_ptr cinfo, const unsigned char *inbuffer, unsigned long insize); #endif /* Default parameter setup for compression */ EXTERN(void) jpeg_set_defaults(j_compress_ptr cinfo); /* Compression parameter setup aids */ EXTERN(void) jpeg_set_colorspace(j_compress_ptr cinfo, J_COLOR_SPACE colorspace); EXTERN(void) jpeg_default_colorspace(j_compress_ptr cinfo); EXTERN(void) jpeg_set_quality(j_compress_ptr cinfo, int quality, boolean force_baseline); EXTERN(void) jpeg_set_linear_quality(j_compress_ptr cinfo, int scale_factor, boolean force_baseline); #if JPEG_LIB_VERSION >= 70 EXTERN(void) jpeg_default_qtables(j_compress_ptr cinfo, boolean force_baseline); #endif EXTERN(void) jpeg_add_quant_table(j_compress_ptr cinfo, int which_tbl, const unsigned int *basic_table, int scale_factor, boolean force_baseline); EXTERN(int) jpeg_quality_scaling(int quality); EXTERN(void) jpeg_simple_progression(j_compress_ptr cinfo); EXTERN(void) jpeg_suppress_tables(j_compress_ptr cinfo, boolean suppress); EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table(j_common_ptr cinfo); EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table(j_common_ptr cinfo); /* Main entry points for compression */ EXTERN(void) jpeg_start_compress(j_compress_ptr cinfo, boolean write_all_tables); EXTERN(JDIMENSION) jpeg_write_scanlines(j_compress_ptr cinfo, JSAMPARRAY scanlines, JDIMENSION num_lines); EXTERN(void) jpeg_finish_compress(j_compress_ptr cinfo); #if JPEG_LIB_VERSION >= 70 /* Precalculate JPEG dimensions for current compression parameters. */ EXTERN(void) jpeg_calc_jpeg_dimensions(j_compress_ptr cinfo); #endif /* Replaces jpeg_write_scanlines when writing raw downsampled data. */ EXTERN(JDIMENSION) jpeg_write_raw_data(j_compress_ptr cinfo, JSAMPIMAGE data, JDIMENSION num_lines); /* Write a special marker. See libjpeg.txt concerning safe usage. */ EXTERN(void) jpeg_write_marker(j_compress_ptr cinfo, int marker, const JOCTET *dataptr, unsigned int datalen); /* Same, but piecemeal. */ EXTERN(void) jpeg_write_m_header(j_compress_ptr cinfo, int marker, unsigned int datalen); EXTERN(void) jpeg_write_m_byte(j_compress_ptr cinfo, int val); /* Alternate compression function: just write an abbreviated table file */ EXTERN(void) jpeg_write_tables(j_compress_ptr cinfo); /* Write ICC profile. See libjpeg.txt for usage information. */ EXTERN(void) jpeg_write_icc_profile(j_compress_ptr cinfo, const JOCTET *icc_data_ptr, unsigned int icc_data_len); /* Decompression startup: read start of JPEG datastream to see what's there */ EXTERN(int) jpeg_read_header(j_decompress_ptr cinfo, boolean require_image); /* Return value is one of: */ #define JPEG_SUSPENDED 0 /* Suspended due to lack of input data */ #define JPEG_HEADER_OK 1 /* Found valid image datastream */ #define JPEG_HEADER_TABLES_ONLY 2 /* Found valid table-specs-only datastream */ /* If you pass require_image = TRUE (normal case), you need not check for * a TABLES_ONLY return code; an abbreviated file will cause an error exit. * JPEG_SUSPENDED is only possible if you use a data source module that can * give a suspension return (the stdio source module doesn't). */ /* Main entry points for decompression */ EXTERN(boolean) jpeg_start_decompress(j_decompress_ptr cinfo); EXTERN(JDIMENSION) jpeg_read_scanlines(j_decompress_ptr cinfo, JSAMPARRAY scanlines, JDIMENSION max_lines); EXTERN(JDIMENSION) jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines); EXTERN(void) jpeg_crop_scanline(j_decompress_ptr cinfo, JDIMENSION *xoffset, JDIMENSION *width); EXTERN(boolean) jpeg_finish_decompress(j_decompress_ptr cinfo); /* Replaces jpeg_read_scanlines when reading raw downsampled data. */ EXTERN(JDIMENSION) jpeg_read_raw_data(j_decompress_ptr cinfo, JSAMPIMAGE data, JDIMENSION max_lines); /* Additional entry points for buffered-image mode. */ EXTERN(boolean) jpeg_has_multiple_scans(j_decompress_ptr cinfo); EXTERN(boolean) jpeg_start_output(j_decompress_ptr cinfo, int scan_number); EXTERN(boolean) jpeg_finish_output(j_decompress_ptr cinfo); EXTERN(boolean) jpeg_input_complete(j_decompress_ptr cinfo); EXTERN(void) jpeg_new_colormap(j_decompress_ptr cinfo); EXTERN(int) jpeg_consume_input(j_decompress_ptr cinfo); /* Return value is one of: */ /* #define JPEG_SUSPENDED 0 Suspended due to lack of input data */ #define JPEG_REACHED_SOS 1 /* Reached start of new scan */ #define JPEG_REACHED_EOI 2 /* Reached end of image */ #define JPEG_ROW_COMPLETED 3 /* Completed one iMCU row */ #define JPEG_SCAN_COMPLETED 4 /* Completed last iMCU row of a scan */ /* Precalculate output dimensions for current decompression parameters. */ #if JPEG_LIB_VERSION >= 80 EXTERN(void) jpeg_core_output_dimensions(j_decompress_ptr cinfo); #endif EXTERN(void) jpeg_calc_output_dimensions(j_decompress_ptr cinfo); /* Control saving of COM and APPn markers into marker_list. */ EXTERN(void) jpeg_save_markers(j_decompress_ptr cinfo, int marker_code, unsigned int length_limit); /* Install a special processing method for COM or APPn markers. */ EXTERN(void) jpeg_set_marker_processor(j_decompress_ptr cinfo, int marker_code, jpeg_marker_parser_method routine); /* Read or write raw DCT coefficients --- useful for lossless transcoding. */ EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients(j_decompress_ptr cinfo); EXTERN(void) jpeg_write_coefficients(j_compress_ptr cinfo, jvirt_barray_ptr *coef_arrays); EXTERN(void) jpeg_copy_critical_parameters(j_decompress_ptr srcinfo, j_compress_ptr dstinfo); /* If you choose to abort compression or decompression before completing * jpeg_finish_(de)compress, then you need to clean up to release memory, * temporary files, etc. You can just call jpeg_destroy_(de)compress * if you're done with the JPEG object, but if you want to clean it up and * reuse it, call this: */ EXTERN(void) jpeg_abort_compress(j_compress_ptr cinfo); EXTERN(void) jpeg_abort_decompress(j_decompress_ptr cinfo); /* Generic versions of jpeg_abort and jpeg_destroy that work on either * flavor of JPEG object. These may be more convenient in some places. */ EXTERN(void) jpeg_abort(j_common_ptr cinfo); EXTERN(void) jpeg_destroy(j_common_ptr cinfo); /* Default restart-marker-resync procedure for use by data source modules */ EXTERN(boolean) jpeg_resync_to_restart(j_decompress_ptr cinfo, int desired); /* Read ICC profile. See libjpeg.txt for usage information. */ EXTERN(boolean) jpeg_read_icc_profile(j_decompress_ptr cinfo, JOCTET **icc_data_ptr, unsigned int *icc_data_len); /* These marker codes are exported since applications and data source modules * are likely to want to use them. */ #define JPEG_RST0 0xD0 /* RST0 marker code */ #define JPEG_EOI 0xD9 /* EOI marker code */ #define JPEG_APP0 0xE0 /* APP0 marker code */ #define JPEG_COM 0xFE /* COM marker code */ /* If we have a brain-damaged compiler that emits warnings (or worse, errors) * for structure definitions that are never filled in, keep it quiet by * supplying dummy definitions for the various substructures. */ #ifdef INCOMPLETE_TYPES_BROKEN #ifndef JPEG_INTERNALS /* will be defined in jpegint.h */ struct jvirt_sarray_control { long dummy; }; struct jvirt_barray_control { long dummy; }; struct jpeg_comp_master { long dummy; }; struct jpeg_c_main_controller { long dummy; }; struct jpeg_c_prep_controller { long dummy; }; struct jpeg_c_coef_controller { long dummy; }; struct jpeg_marker_writer { long dummy; }; struct jpeg_color_converter { long dummy; }; struct jpeg_downsampler { long dummy; }; struct jpeg_forward_dct { long dummy; }; struct jpeg_entropy_encoder { long dummy; }; struct jpeg_decomp_master { long dummy; }; struct jpeg_d_main_controller { long dummy; }; struct jpeg_d_coef_controller { long dummy; }; struct jpeg_d_post_controller { long dummy; }; struct jpeg_input_controller { long dummy; }; struct jpeg_marker_reader { long dummy; }; struct jpeg_entropy_decoder { long dummy; }; struct jpeg_inverse_dct { long dummy; }; struct jpeg_upsampler { long dummy; }; struct jpeg_color_deconverter { long dummy; }; struct jpeg_color_quantizer { long dummy; }; #endif /* JPEG_INTERNALS */ #endif /* INCOMPLETE_TYPES_BROKEN */ /* * The JPEG library modules define JPEG_INTERNALS before including this file. * The internal structure declarations are read only when that is true. * Applications using the library should not include jpegint.h, but may wish * to include jerror.h. */ #ifdef JPEG_INTERNALS #include "jpegint.h" /* fetch private declarations */ #include "jerror.h" /* fetch error codes too */ #endif #ifdef __cplusplus #ifndef DONT_USE_EXTERN_C } #endif #endif #endif /* JPEGLIB_H */