isbn 2.0.4 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/{README → README.md} +5 -11
- data/Rakefile +20 -14
- data/isbn.gemspec +23 -0
- data/lib/isbn.rb +2 -0
- data/test/isbn_spec.rb +1 -1
- metadata +29 -316
- data/VERSION +0 -1
- data/src/gocr-0.48/.cvsignore +0 -6
- data/src/gocr-0.48/AUTHORS +0 -7
- data/src/gocr-0.48/BUGS +0 -55
- data/src/gocr-0.48/CREDITS +0 -17
- data/src/gocr-0.48/HISTORY +0 -243
- data/src/gocr-0.48/INSTALL +0 -83
- data/src/gocr-0.48/Makefile +0 -193
- data/src/gocr-0.48/Makefile.in +0 -193
- data/src/gocr-0.48/README +0 -165
- data/src/gocr-0.48/READMEde.txt +0 -80
- data/src/gocr-0.48/REMARK.txt +0 -18
- data/src/gocr-0.48/REVIEW +0 -538
- data/src/gocr-0.48/TODO +0 -65
- data/src/gocr-0.48/bin/.cvsignore +0 -2
- data/src/gocr-0.48/bin/create_db +0 -38
- data/src/gocr-0.48/bin/gocr.tcl +0 -527
- data/src/gocr-0.48/bin/gocr_chk.sh +0 -44
- data/src/gocr-0.48/configure +0 -4689
- data/src/gocr-0.48/configure.in +0 -71
- data/src/gocr-0.48/doc/.#Makefile.1.6 +0 -39
- data/src/gocr-0.48/doc/.cvsignore +0 -2
- data/src/gocr-0.48/doc/Makefile +0 -39
- data/src/gocr-0.48/doc/Makefile.in +0 -39
- data/src/gocr-0.48/doc/example.dtd +0 -53
- data/src/gocr-0.48/doc/example.xml +0 -21
- data/src/gocr-0.48/doc/examples.txt +0 -67
- data/src/gocr-0.48/doc/gocr.html +0 -578
- data/src/gocr-0.48/doc/unicode.txt +0 -57
- data/src/gocr-0.48/examples/.#Makefile.1.22 +0 -166
- data/src/gocr-0.48/examples/4x6.png +0 -0
- data/src/gocr-0.48/examples/4x6.txt +0 -2
- data/src/gocr-0.48/examples/5x7.png +0 -0
- data/src/gocr-0.48/examples/5x7.png.txt +0 -2
- data/src/gocr-0.48/examples/5x8.png +0 -0
- data/src/gocr-0.48/examples/5x8.png.txt +0 -2
- data/src/gocr-0.48/examples/Makefile +0 -166
- data/src/gocr-0.48/examples/color.fig +0 -20
- data/src/gocr-0.48/examples/ex.fig +0 -16
- data/src/gocr-0.48/examples/font.tex +0 -22
- data/src/gocr-0.48/examples/font1.tex +0 -46
- data/src/gocr-0.48/examples/font2.fig +0 -27
- data/src/gocr-0.48/examples/font_nw.tex +0 -24
- data/src/gocr-0.48/examples/handwrt1.jpg +0 -0
- data/src/gocr-0.48/examples/handwrt1.txt +0 -10
- data/src/gocr-0.48/examples/inverse.fig +0 -20
- data/src/gocr-0.48/examples/matrix.jpg +0 -0
- data/src/gocr-0.48/examples/ocr-a-subset.png +0 -0
- data/src/gocr-0.48/examples/ocr-a-subset.png.txt +0 -4
- data/src/gocr-0.48/examples/ocr-a.png +0 -0
- data/src/gocr-0.48/examples/ocr-a.txt +0 -6
- data/src/gocr-0.48/examples/ocr-b.png +0 -0
- data/src/gocr-0.48/examples/ocr-b.png.txt +0 -4
- data/src/gocr-0.48/examples/polish.tex +0 -28
- data/src/gocr-0.48/examples/rotate45.fig +0 -14
- data/src/gocr-0.48/examples/score +0 -36
- data/src/gocr-0.48/examples/text.tex +0 -28
- data/src/gocr-0.48/gpl.html +0 -537
- data/src/gocr-0.48/include/.cvsignore +0 -2
- data/src/gocr-0.48/include/config.h +0 -36
- data/src/gocr-0.48/include/config.h.in +0 -36
- data/src/gocr-0.48/include/version.h +0 -2
- data/src/gocr-0.48/install-sh +0 -3
- data/src/gocr-0.48/make.bat +0 -57
- data/src/gocr-0.48/man/.cvsignore +0 -2
- data/src/gocr-0.48/man/Makefile +0 -29
- data/src/gocr-0.48/man/Makefile.in +0 -29
- data/src/gocr-0.48/man/man1/gocr.1 +0 -166
- data/src/gocr-0.48/src/.cvsignore +0 -4
- data/src/gocr-0.48/src/Makefile +0 -132
- data/src/gocr-0.48/src/Makefile.in +0 -132
- data/src/gocr-0.48/src/amiga.h +0 -31
- data/src/gocr-0.48/src/barcode.c +0 -846
- data/src/gocr-0.48/src/barcode.c.orig +0 -593
- data/src/gocr-0.48/src/barcode.h +0 -11
- data/src/gocr-0.48/src/box.c +0 -372
- data/src/gocr-0.48/src/database.c +0 -462
- data/src/gocr-0.48/src/detect.c +0 -943
- data/src/gocr-0.48/src/gocr.c +0 -373
- data/src/gocr-0.48/src/gocr.h +0 -288
- data/src/gocr-0.48/src/jconv.c +0 -168
- data/src/gocr-0.48/src/job.c +0 -84
- data/src/gocr-0.48/src/lines.c +0 -350
- data/src/gocr-0.48/src/list.c +0 -334
- data/src/gocr-0.48/src/list.h +0 -90
- data/src/gocr-0.48/src/ocr0.c +0 -6756
- data/src/gocr-0.48/src/ocr0.h +0 -63
- data/src/gocr-0.48/src/ocr0n.c +0 -1475
- data/src/gocr-0.48/src/ocr1.c +0 -85
- data/src/gocr-0.48/src/ocr1.h +0 -3
- data/src/gocr-0.48/src/otsu.c +0 -289
- data/src/gocr-0.48/src/otsu.h +0 -23
- data/src/gocr-0.48/src/output.c +0 -289
- data/src/gocr-0.48/src/output.h +0 -37
- data/src/gocr-0.48/src/pcx.c +0 -153
- data/src/gocr-0.48/src/pcx.h +0 -9
- data/src/gocr-0.48/src/pgm2asc.c +0 -2893
- data/src/gocr-0.48/src/pgm2asc.h +0 -105
- data/src/gocr-0.48/src/pixel.c +0 -537
- data/src/gocr-0.48/src/pnm.c +0 -533
- data/src/gocr-0.48/src/pnm.h +0 -35
- data/src/gocr-0.48/src/progress.c +0 -87
- data/src/gocr-0.48/src/progress.h +0 -42
- data/src/gocr-0.48/src/remove.c +0 -703
- data/src/gocr-0.48/src/tga.c +0 -87
- data/src/gocr-0.48/src/tga.h +0 -6
- data/src/gocr-0.48/src/unicode.c +0 -1314
- data/src/gocr-0.48/src/unicode.h +0 -1257
- data/src/jpeg-7/Makefile.am +0 -133
- data/src/jpeg-7/Makefile.in +0 -1089
- data/src/jpeg-7/README +0 -322
- data/src/jpeg-7/aclocal.m4 +0 -8990
- data/src/jpeg-7/ansi2knr.1 +0 -36
- data/src/jpeg-7/ansi2knr.c +0 -739
- data/src/jpeg-7/cderror.h +0 -132
- data/src/jpeg-7/cdjpeg.c +0 -181
- data/src/jpeg-7/cdjpeg.h +0 -187
- data/src/jpeg-7/change.log +0 -270
- data/src/jpeg-7/cjpeg.1 +0 -325
- data/src/jpeg-7/cjpeg.c +0 -616
- data/src/jpeg-7/ckconfig.c +0 -402
- data/src/jpeg-7/coderules.txt +0 -118
- data/src/jpeg-7/config.guess +0 -1561
- data/src/jpeg-7/config.sub +0 -1686
- data/src/jpeg-7/configure +0 -17139
- data/src/jpeg-7/configure.ac +0 -317
- data/src/jpeg-7/depcomp +0 -630
- data/src/jpeg-7/djpeg.1 +0 -251
- data/src/jpeg-7/djpeg.c +0 -617
- data/src/jpeg-7/example.c +0 -433
- data/src/jpeg-7/filelist.txt +0 -215
- data/src/jpeg-7/install-sh +0 -520
- data/src/jpeg-7/install.txt +0 -1097
- data/src/jpeg-7/jaricom.c +0 -148
- data/src/jpeg-7/jcapimin.c +0 -282
- data/src/jpeg-7/jcapistd.c +0 -161
- data/src/jpeg-7/jcarith.c +0 -921
- data/src/jpeg-7/jccoefct.c +0 -453
- data/src/jpeg-7/jccolor.c +0 -459
- data/src/jpeg-7/jcdctmgr.c +0 -482
- data/src/jpeg-7/jchuff.c +0 -1612
- data/src/jpeg-7/jcinit.c +0 -65
- data/src/jpeg-7/jcmainct.c +0 -293
- data/src/jpeg-7/jcmarker.c +0 -667
- data/src/jpeg-7/jcmaster.c +0 -770
- data/src/jpeg-7/jcomapi.c +0 -106
- data/src/jpeg-7/jconfig.bcc +0 -48
- data/src/jpeg-7/jconfig.cfg +0 -45
- data/src/jpeg-7/jconfig.dj +0 -38
- data/src/jpeg-7/jconfig.mac +0 -43
- data/src/jpeg-7/jconfig.manx +0 -43
- data/src/jpeg-7/jconfig.mc6 +0 -52
- data/src/jpeg-7/jconfig.sas +0 -43
- data/src/jpeg-7/jconfig.st +0 -42
- data/src/jpeg-7/jconfig.txt +0 -155
- data/src/jpeg-7/jconfig.vc +0 -45
- data/src/jpeg-7/jconfig.vms +0 -37
- data/src/jpeg-7/jconfig.wat +0 -38
- data/src/jpeg-7/jcparam.c +0 -632
- data/src/jpeg-7/jcprepct.c +0 -358
- data/src/jpeg-7/jcsample.c +0 -545
- data/src/jpeg-7/jctrans.c +0 -381
- data/src/jpeg-7/jdapimin.c +0 -396
- data/src/jpeg-7/jdapistd.c +0 -275
- data/src/jpeg-7/jdarith.c +0 -762
- data/src/jpeg-7/jdatadst.c +0 -151
- data/src/jpeg-7/jdatasrc.c +0 -212
- data/src/jpeg-7/jdcoefct.c +0 -736
- data/src/jpeg-7/jdcolor.c +0 -396
- data/src/jpeg-7/jdct.h +0 -393
- data/src/jpeg-7/jddctmgr.c +0 -382
- data/src/jpeg-7/jdhuff.c +0 -1309
- data/src/jpeg-7/jdinput.c +0 -384
- data/src/jpeg-7/jdmainct.c +0 -512
- data/src/jpeg-7/jdmarker.c +0 -1360
- data/src/jpeg-7/jdmaster.c +0 -663
- data/src/jpeg-7/jdmerge.c +0 -400
- data/src/jpeg-7/jdpostct.c +0 -290
- data/src/jpeg-7/jdsample.c +0 -361
- data/src/jpeg-7/jdtrans.c +0 -136
- data/src/jpeg-7/jerror.c +0 -252
- data/src/jpeg-7/jerror.h +0 -304
- data/src/jpeg-7/jfdctflt.c +0 -174
- data/src/jpeg-7/jfdctfst.c +0 -230
- data/src/jpeg-7/jfdctint.c +0 -4348
- data/src/jpeg-7/jidctflt.c +0 -242
- data/src/jpeg-7/jidctfst.c +0 -368
- data/src/jpeg-7/jidctint.c +0 -5137
- data/src/jpeg-7/jinclude.h +0 -91
- data/src/jpeg-7/jmemansi.c +0 -167
- data/src/jpeg-7/jmemdos.c +0 -638
- data/src/jpeg-7/jmemdosa.asm +0 -379
- data/src/jpeg-7/jmemmac.c +0 -289
- data/src/jpeg-7/jmemmgr.c +0 -1118
- data/src/jpeg-7/jmemname.c +0 -276
- data/src/jpeg-7/jmemnobs.c +0 -109
- data/src/jpeg-7/jmemsys.h +0 -198
- data/src/jpeg-7/jmorecfg.h +0 -369
- data/src/jpeg-7/jpegint.h +0 -395
- data/src/jpeg-7/jpeglib.h +0 -1135
- data/src/jpeg-7/jpegtran.1 +0 -272
- data/src/jpeg-7/jpegtran.c +0 -546
- data/src/jpeg-7/jquant1.c +0 -856
- data/src/jpeg-7/jquant2.c +0 -1310
- data/src/jpeg-7/jutils.c +0 -179
- data/src/jpeg-7/jversion.h +0 -14
- data/src/jpeg-7/libjpeg.map +0 -4
- data/src/jpeg-7/libjpeg.txt +0 -3067
- data/src/jpeg-7/ltmain.sh +0 -8406
- data/src/jpeg-7/makcjpeg.st +0 -36
- data/src/jpeg-7/makdjpeg.st +0 -36
- data/src/jpeg-7/makeadsw.vc6 +0 -77
- data/src/jpeg-7/makeasln.vc9 +0 -33
- data/src/jpeg-7/makecdep.vc6 +0 -82
- data/src/jpeg-7/makecdsp.vc6 +0 -130
- data/src/jpeg-7/makecmak.vc6 +0 -159
- data/src/jpeg-7/makecvcp.vc9 +0 -186
- data/src/jpeg-7/makeddep.vc6 +0 -82
- data/src/jpeg-7/makeddsp.vc6 +0 -130
- data/src/jpeg-7/makedmak.vc6 +0 -159
- data/src/jpeg-7/makedvcp.vc9 +0 -186
- data/src/jpeg-7/makefile.ansi +0 -220
- data/src/jpeg-7/makefile.bcc +0 -291
- data/src/jpeg-7/makefile.dj +0 -226
- data/src/jpeg-7/makefile.manx +0 -220
- data/src/jpeg-7/makefile.mc6 +0 -255
- data/src/jpeg-7/makefile.mms +0 -224
- data/src/jpeg-7/makefile.sas +0 -258
- data/src/jpeg-7/makefile.unix +0 -234
- data/src/jpeg-7/makefile.vc +0 -217
- data/src/jpeg-7/makefile.vms +0 -142
- data/src/jpeg-7/makefile.wat +0 -239
- data/src/jpeg-7/makejdep.vc6 +0 -423
- data/src/jpeg-7/makejdsp.vc6 +0 -285
- data/src/jpeg-7/makejdsw.vc6 +0 -29
- data/src/jpeg-7/makejmak.vc6 +0 -425
- data/src/jpeg-7/makejsln.vc9 +0 -17
- data/src/jpeg-7/makejvcp.vc9 +0 -328
- data/src/jpeg-7/makeproj.mac +0 -213
- data/src/jpeg-7/makerdep.vc6 +0 -6
- data/src/jpeg-7/makerdsp.vc6 +0 -78
- data/src/jpeg-7/makermak.vc6 +0 -110
- data/src/jpeg-7/makervcp.vc9 +0 -133
- data/src/jpeg-7/maketdep.vc6 +0 -43
- data/src/jpeg-7/maketdsp.vc6 +0 -122
- data/src/jpeg-7/maketmak.vc6 +0 -131
- data/src/jpeg-7/maketvcp.vc9 +0 -178
- data/src/jpeg-7/makewdep.vc6 +0 -6
- data/src/jpeg-7/makewdsp.vc6 +0 -78
- data/src/jpeg-7/makewmak.vc6 +0 -110
- data/src/jpeg-7/makewvcp.vc9 +0 -133
- data/src/jpeg-7/makljpeg.st +0 -68
- data/src/jpeg-7/maktjpeg.st +0 -30
- data/src/jpeg-7/makvms.opt +0 -4
- data/src/jpeg-7/missing +0 -376
- data/src/jpeg-7/rdbmp.c +0 -439
- data/src/jpeg-7/rdcolmap.c +0 -253
- data/src/jpeg-7/rdgif.c +0 -38
- data/src/jpeg-7/rdjpgcom.1 +0 -63
- data/src/jpeg-7/rdjpgcom.c +0 -515
- data/src/jpeg-7/rdppm.c +0 -459
- data/src/jpeg-7/rdrle.c +0 -387
- data/src/jpeg-7/rdswitch.c +0 -365
- data/src/jpeg-7/rdtarga.c +0 -500
- data/src/jpeg-7/structure.txt +0 -945
- data/src/jpeg-7/testimg.bmp +0 -0
- data/src/jpeg-7/testimg.jpg +0 -0
- data/src/jpeg-7/testimg.ppm +0 -4
- data/src/jpeg-7/testimgp.jpg +0 -0
- data/src/jpeg-7/testorig.jpg +0 -0
- data/src/jpeg-7/testprog.jpg +0 -0
- data/src/jpeg-7/transupp.c +0 -1533
- data/src/jpeg-7/transupp.h +0 -205
- data/src/jpeg-7/usage.txt +0 -605
- data/src/jpeg-7/wizard.txt +0 -211
- data/src/jpeg-7/wrbmp.c +0 -442
- data/src/jpeg-7/wrgif.c +0 -399
- data/src/jpeg-7/wrjpgcom.1 +0 -103
- data/src/jpeg-7/wrjpgcom.c +0 -583
- data/src/jpeg-7/wrppm.c +0 -269
- data/src/jpeg-7/wrrle.c +0 -305
- data/src/jpeg-7/wrtarga.c +0 -253
data/src/jpeg-7/jmorecfg.h
DELETED
|
@@ -1,369 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* jmorecfg.h
|
|
3
|
-
*
|
|
4
|
-
* Copyright (C) 1991-1997, Thomas G. Lane.
|
|
5
|
-
* Modified 1997-2009 by Guido Vollbeding.
|
|
6
|
-
* This file is part of the Independent JPEG Group's software.
|
|
7
|
-
* For conditions of distribution and use, see the accompanying README file.
|
|
8
|
-
*
|
|
9
|
-
* This file contains additional configuration options that customize the
|
|
10
|
-
* JPEG software for special applications or support machine-dependent
|
|
11
|
-
* optimizations. Most users will not need to touch this file.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/*
|
|
16
|
-
* Define BITS_IN_JSAMPLE as either
|
|
17
|
-
* 8 for 8-bit sample values (the usual setting)
|
|
18
|
-
* 12 for 12-bit sample values
|
|
19
|
-
* Only 8 and 12 are legal data precisions for lossy JPEG according to the
|
|
20
|
-
* JPEG standard, and the IJG code does not support anything else!
|
|
21
|
-
* We do not support run-time selection of data precision, sorry.
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
#define BITS_IN_JSAMPLE 8 /* use 8 or 12 */
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/*
|
|
28
|
-
* Maximum number of components (color channels) allowed in JPEG image.
|
|
29
|
-
* To meet the letter of the JPEG spec, set this to 255. However, darn
|
|
30
|
-
* few applications need more than 4 channels (maybe 5 for CMYK + alpha
|
|
31
|
-
* mask). We recommend 10 as a reasonable compromise; use 4 if you are
|
|
32
|
-
* really short on memory. (Each allowed component costs a hundred or so
|
|
33
|
-
* bytes of storage, whether actually used in an image or not.)
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
#define MAX_COMPONENTS 10 /* maximum number of image components */
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
/*
|
|
40
|
-
* Basic data types.
|
|
41
|
-
* You may need to change these if you have a machine with unusual data
|
|
42
|
-
* type sizes; for example, "char" not 8 bits, "short" not 16 bits,
|
|
43
|
-
* or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits,
|
|
44
|
-
* but it had better be at least 16.
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
/* Representation of a single sample (pixel element value).
|
|
48
|
-
* We frequently allocate large arrays of these, so it's important to keep
|
|
49
|
-
* them small. But if you have memory to burn and access to char or short
|
|
50
|
-
* arrays is very slow on your hardware, you might want to change these.
|
|
51
|
-
*/
|
|
52
|
-
|
|
53
|
-
#if BITS_IN_JSAMPLE == 8
|
|
54
|
-
/* JSAMPLE should be the smallest type that will hold the values 0..255.
|
|
55
|
-
* You can use a signed char by having GETJSAMPLE mask it with 0xFF.
|
|
56
|
-
*/
|
|
57
|
-
|
|
58
|
-
#ifdef HAVE_UNSIGNED_CHAR
|
|
59
|
-
|
|
60
|
-
typedef unsigned char JSAMPLE;
|
|
61
|
-
#define GETJSAMPLE(value) ((int) (value))
|
|
62
|
-
|
|
63
|
-
#else /* not HAVE_UNSIGNED_CHAR */
|
|
64
|
-
|
|
65
|
-
typedef char JSAMPLE;
|
|
66
|
-
#ifdef CHAR_IS_UNSIGNED
|
|
67
|
-
#define GETJSAMPLE(value) ((int) (value))
|
|
68
|
-
#else
|
|
69
|
-
#define GETJSAMPLE(value) ((int) (value) & 0xFF)
|
|
70
|
-
#endif /* CHAR_IS_UNSIGNED */
|
|
71
|
-
|
|
72
|
-
#endif /* HAVE_UNSIGNED_CHAR */
|
|
73
|
-
|
|
74
|
-
#define MAXJSAMPLE 255
|
|
75
|
-
#define CENTERJSAMPLE 128
|
|
76
|
-
|
|
77
|
-
#endif /* BITS_IN_JSAMPLE == 8 */
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
#if BITS_IN_JSAMPLE == 12
|
|
81
|
-
/* JSAMPLE should be the smallest type that will hold the values 0..4095.
|
|
82
|
-
* On nearly all machines "short" will do nicely.
|
|
83
|
-
*/
|
|
84
|
-
|
|
85
|
-
typedef short JSAMPLE;
|
|
86
|
-
#define GETJSAMPLE(value) ((int) (value))
|
|
87
|
-
|
|
88
|
-
#define MAXJSAMPLE 4095
|
|
89
|
-
#define CENTERJSAMPLE 2048
|
|
90
|
-
|
|
91
|
-
#endif /* BITS_IN_JSAMPLE == 12 */
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
/* Representation of a DCT frequency coefficient.
|
|
95
|
-
* This should be a signed value of at least 16 bits; "short" is usually OK.
|
|
96
|
-
* Again, we allocate large arrays of these, but you can change to int
|
|
97
|
-
* if you have memory to burn and "short" is really slow.
|
|
98
|
-
*/
|
|
99
|
-
|
|
100
|
-
typedef short JCOEF;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
/* Compressed datastreams are represented as arrays of JOCTET.
|
|
104
|
-
* These must be EXACTLY 8 bits wide, at least once they are written to
|
|
105
|
-
* external storage. Note that when using the stdio data source/destination
|
|
106
|
-
* managers, this is also the data type passed to fread/fwrite.
|
|
107
|
-
*/
|
|
108
|
-
|
|
109
|
-
#ifdef HAVE_UNSIGNED_CHAR
|
|
110
|
-
|
|
111
|
-
typedef unsigned char JOCTET;
|
|
112
|
-
#define GETJOCTET(value) (value)
|
|
113
|
-
|
|
114
|
-
#else /* not HAVE_UNSIGNED_CHAR */
|
|
115
|
-
|
|
116
|
-
typedef char JOCTET;
|
|
117
|
-
#ifdef CHAR_IS_UNSIGNED
|
|
118
|
-
#define GETJOCTET(value) (value)
|
|
119
|
-
#else
|
|
120
|
-
#define GETJOCTET(value) ((value) & 0xFF)
|
|
121
|
-
#endif /* CHAR_IS_UNSIGNED */
|
|
122
|
-
|
|
123
|
-
#endif /* HAVE_UNSIGNED_CHAR */
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
/* These typedefs are used for various table entries and so forth.
|
|
127
|
-
* They must be at least as wide as specified; but making them too big
|
|
128
|
-
* won't cost a huge amount of memory, so we don't provide special
|
|
129
|
-
* extraction code like we did for JSAMPLE. (In other words, these
|
|
130
|
-
* typedefs live at a different point on the speed/space tradeoff curve.)
|
|
131
|
-
*/
|
|
132
|
-
|
|
133
|
-
/* UINT8 must hold at least the values 0..255. */
|
|
134
|
-
|
|
135
|
-
#ifdef HAVE_UNSIGNED_CHAR
|
|
136
|
-
typedef unsigned char UINT8;
|
|
137
|
-
#else /* not HAVE_UNSIGNED_CHAR */
|
|
138
|
-
#ifdef CHAR_IS_UNSIGNED
|
|
139
|
-
typedef char UINT8;
|
|
140
|
-
#else /* not CHAR_IS_UNSIGNED */
|
|
141
|
-
typedef short UINT8;
|
|
142
|
-
#endif /* CHAR_IS_UNSIGNED */
|
|
143
|
-
#endif /* HAVE_UNSIGNED_CHAR */
|
|
144
|
-
|
|
145
|
-
/* UINT16 must hold at least the values 0..65535. */
|
|
146
|
-
|
|
147
|
-
#ifdef HAVE_UNSIGNED_SHORT
|
|
148
|
-
typedef unsigned short UINT16;
|
|
149
|
-
#else /* not HAVE_UNSIGNED_SHORT */
|
|
150
|
-
typedef unsigned int UINT16;
|
|
151
|
-
#endif /* HAVE_UNSIGNED_SHORT */
|
|
152
|
-
|
|
153
|
-
/* INT16 must hold at least the values -32768..32767. */
|
|
154
|
-
|
|
155
|
-
#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */
|
|
156
|
-
typedef short INT16;
|
|
157
|
-
#endif
|
|
158
|
-
|
|
159
|
-
/* INT32 must hold at least signed 32-bit values. */
|
|
160
|
-
|
|
161
|
-
#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */
|
|
162
|
-
#ifndef _BASETSD_H_ /* Microsoft defines it in basetsd.h */
|
|
163
|
-
#ifndef QGLOBAL_H /* Qt defines it in qglobal.h */
|
|
164
|
-
typedef long INT32;
|
|
165
|
-
#endif
|
|
166
|
-
#endif
|
|
167
|
-
#endif
|
|
168
|
-
|
|
169
|
-
/* Datatype used for image dimensions. The JPEG standard only supports
|
|
170
|
-
* images up to 64K*64K due to 16-bit fields in SOF markers. Therefore
|
|
171
|
-
* "unsigned int" is sufficient on all machines. However, if you need to
|
|
172
|
-
* handle larger images and you don't mind deviating from the spec, you
|
|
173
|
-
* can change this datatype.
|
|
174
|
-
*/
|
|
175
|
-
|
|
176
|
-
typedef unsigned int JDIMENSION;
|
|
177
|
-
|
|
178
|
-
#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
/* These macros are used in all function definitions and extern declarations.
|
|
182
|
-
* You could modify them if you need to change function linkage conventions;
|
|
183
|
-
* in particular, you'll need to do that to make the library a Windows DLL.
|
|
184
|
-
* Another application is to make all functions global for use with debuggers
|
|
185
|
-
* or code profilers that require it.
|
|
186
|
-
*/
|
|
187
|
-
|
|
188
|
-
/* a function called through method pointers: */
|
|
189
|
-
#define METHODDEF(type) static type
|
|
190
|
-
/* a function used only in its module: */
|
|
191
|
-
#define LOCAL(type) static type
|
|
192
|
-
/* a function referenced thru EXTERNs: */
|
|
193
|
-
#define GLOBAL(type) type
|
|
194
|
-
/* a reference to a GLOBAL function: */
|
|
195
|
-
#define EXTERN(type) extern type
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
/* This macro is used to declare a "method", that is, a function pointer.
|
|
199
|
-
* We want to supply prototype parameters if the compiler can cope.
|
|
200
|
-
* Note that the arglist parameter must be parenthesized!
|
|
201
|
-
* Again, you can customize this if you need special linkage keywords.
|
|
202
|
-
*/
|
|
203
|
-
|
|
204
|
-
#ifdef HAVE_PROTOTYPES
|
|
205
|
-
#define JMETHOD(type,methodname,arglist) type (*methodname) arglist
|
|
206
|
-
#else
|
|
207
|
-
#define JMETHOD(type,methodname,arglist) type (*methodname) ()
|
|
208
|
-
#endif
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
/* Here is the pseudo-keyword for declaring pointers that must be "far"
|
|
212
|
-
* on 80x86 machines. Most of the specialized coding for 80x86 is handled
|
|
213
|
-
* by just saying "FAR *" where such a pointer is needed. In a few places
|
|
214
|
-
* explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol.
|
|
215
|
-
*/
|
|
216
|
-
|
|
217
|
-
#ifndef FAR
|
|
218
|
-
#ifdef NEED_FAR_POINTERS
|
|
219
|
-
#define FAR far
|
|
220
|
-
#else
|
|
221
|
-
#define FAR
|
|
222
|
-
#endif
|
|
223
|
-
#endif
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
/*
|
|
227
|
-
* On a few systems, type boolean and/or its values FALSE, TRUE may appear
|
|
228
|
-
* in standard header files. Or you may have conflicts with application-
|
|
229
|
-
* specific header files that you want to include together with these files.
|
|
230
|
-
* Defining HAVE_BOOLEAN before including jpeglib.h should make it work.
|
|
231
|
-
*/
|
|
232
|
-
|
|
233
|
-
#ifndef HAVE_BOOLEAN
|
|
234
|
-
typedef int boolean;
|
|
235
|
-
#endif
|
|
236
|
-
#ifndef FALSE /* in case these macros already exist */
|
|
237
|
-
#define FALSE 0 /* values of boolean */
|
|
238
|
-
#endif
|
|
239
|
-
#ifndef TRUE
|
|
240
|
-
#define TRUE 1
|
|
241
|
-
#endif
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
/*
|
|
245
|
-
* The remaining options affect code selection within the JPEG library,
|
|
246
|
-
* but they don't need to be visible to most applications using the library.
|
|
247
|
-
* To minimize application namespace pollution, the symbols won't be
|
|
248
|
-
* defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined.
|
|
249
|
-
*/
|
|
250
|
-
|
|
251
|
-
#ifdef JPEG_INTERNALS
|
|
252
|
-
#define JPEG_INTERNAL_OPTIONS
|
|
253
|
-
#endif
|
|
254
|
-
|
|
255
|
-
#ifdef JPEG_INTERNAL_OPTIONS
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
/*
|
|
259
|
-
* These defines indicate whether to include various optional functions.
|
|
260
|
-
* Undefining some of these symbols will produce a smaller but less capable
|
|
261
|
-
* library. Note that you can leave certain source files out of the
|
|
262
|
-
* compilation/linking process if you've #undef'd the corresponding symbols.
|
|
263
|
-
* (You may HAVE to do that if your compiler doesn't like null source files.)
|
|
264
|
-
*/
|
|
265
|
-
|
|
266
|
-
/* Capability options common to encoder and decoder: */
|
|
267
|
-
|
|
268
|
-
#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */
|
|
269
|
-
#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */
|
|
270
|
-
#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */
|
|
271
|
-
|
|
272
|
-
/* Encoder capability options: */
|
|
273
|
-
|
|
274
|
-
#define C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
|
|
275
|
-
#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
|
|
276
|
-
#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
|
|
277
|
-
#define DCT_SCALING_SUPPORTED /* Input rescaling via DCT? (Requires DCT_ISLOW)*/
|
|
278
|
-
#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */
|
|
279
|
-
/* Note: if you selected 12-bit data precision, it is dangerous to turn off
|
|
280
|
-
* ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit
|
|
281
|
-
* precision, so jchuff.c normally uses entropy optimization to compute
|
|
282
|
-
* usable tables for higher precision. If you don't want to do optimization,
|
|
283
|
-
* you'll have to supply different default Huffman tables.
|
|
284
|
-
* The exact same statements apply for progressive JPEG: the default tables
|
|
285
|
-
* don't work for progressive mode. (This may get fixed, however.)
|
|
286
|
-
*/
|
|
287
|
-
#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */
|
|
288
|
-
|
|
289
|
-
/* Decoder capability options: */
|
|
290
|
-
|
|
291
|
-
#define D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */
|
|
292
|
-
#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */
|
|
293
|
-
#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/
|
|
294
|
-
#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */
|
|
295
|
-
#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */
|
|
296
|
-
#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */
|
|
297
|
-
#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */
|
|
298
|
-
#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */
|
|
299
|
-
#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */
|
|
300
|
-
#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */
|
|
301
|
-
|
|
302
|
-
/* more capability options later, no doubt */
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
/*
|
|
306
|
-
* Ordering of RGB data in scanlines passed to or from the application.
|
|
307
|
-
* If your application wants to deal with data in the order B,G,R, just
|
|
308
|
-
* change these macros. You can also deal with formats such as R,G,B,X
|
|
309
|
-
* (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing
|
|
310
|
-
* the offsets will also change the order in which colormap data is organized.
|
|
311
|
-
* RESTRICTIONS:
|
|
312
|
-
* 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats.
|
|
313
|
-
* 2. These macros only affect RGB<=>YCbCr color conversion, so they are not
|
|
314
|
-
* useful if you are using JPEG color spaces other than YCbCr or grayscale.
|
|
315
|
-
* 3. The color quantizer modules will not behave desirably if RGB_PIXELSIZE
|
|
316
|
-
* is not 3 (they don't understand about dummy color components!). So you
|
|
317
|
-
* can't use color quantization if you change that value.
|
|
318
|
-
*/
|
|
319
|
-
|
|
320
|
-
#define RGB_RED 0 /* Offset of Red in an RGB scanline element */
|
|
321
|
-
#define RGB_GREEN 1 /* Offset of Green */
|
|
322
|
-
#define RGB_BLUE 2 /* Offset of Blue */
|
|
323
|
-
#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
/* Definitions for speed-related optimizations. */
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
/* If your compiler supports inline functions, define INLINE
|
|
330
|
-
* as the inline keyword; otherwise define it as empty.
|
|
331
|
-
*/
|
|
332
|
-
|
|
333
|
-
#ifndef INLINE
|
|
334
|
-
#ifdef __GNUC__ /* for instance, GNU C knows about inline */
|
|
335
|
-
#define INLINE __inline__
|
|
336
|
-
#endif
|
|
337
|
-
#ifndef INLINE
|
|
338
|
-
#define INLINE /* default is to define it as empty */
|
|
339
|
-
#endif
|
|
340
|
-
#endif
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying
|
|
344
|
-
* two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER
|
|
345
|
-
* as short on such a machine. MULTIPLIER must be at least 16 bits wide.
|
|
346
|
-
*/
|
|
347
|
-
|
|
348
|
-
#ifndef MULTIPLIER
|
|
349
|
-
#define MULTIPLIER int /* type for fastest integer multiply */
|
|
350
|
-
#endif
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
/* FAST_FLOAT should be either float or double, whichever is done faster
|
|
354
|
-
* by your compiler. (Note that this type is only used in the floating point
|
|
355
|
-
* DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.)
|
|
356
|
-
* Typically, float is faster in ANSI C compilers, while double is faster in
|
|
357
|
-
* pre-ANSI compilers (because they insist on converting to double anyway).
|
|
358
|
-
* The code below therefore chooses float if we have ANSI-style prototypes.
|
|
359
|
-
*/
|
|
360
|
-
|
|
361
|
-
#ifndef FAST_FLOAT
|
|
362
|
-
#ifdef HAVE_PROTOTYPES
|
|
363
|
-
#define FAST_FLOAT float
|
|
364
|
-
#else
|
|
365
|
-
#define FAST_FLOAT double
|
|
366
|
-
#endif
|
|
367
|
-
#endif
|
|
368
|
-
|
|
369
|
-
#endif /* JPEG_INTERNAL_OPTIONS */
|
data/src/jpeg-7/jpegint.h
DELETED
|
@@ -1,395 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* jpegint.h
|
|
3
|
-
*
|
|
4
|
-
* Copyright (C) 1991-1997, Thomas G. Lane.
|
|
5
|
-
* Modified 1997-2009 by Guido Vollbeding.
|
|
6
|
-
* This file is part of the Independent JPEG Group's software.
|
|
7
|
-
* For conditions of distribution and use, see the accompanying README file.
|
|
8
|
-
*
|
|
9
|
-
* This file provides common declarations for the various JPEG modules.
|
|
10
|
-
* These declarations are considered internal to the JPEG library; most
|
|
11
|
-
* applications using the library shouldn't need to include this file.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/* Declarations for both compression & decompression */
|
|
16
|
-
|
|
17
|
-
typedef enum { /* Operating modes for buffer controllers */
|
|
18
|
-
JBUF_PASS_THRU, /* Plain stripwise operation */
|
|
19
|
-
/* Remaining modes require a full-image buffer to have been created */
|
|
20
|
-
JBUF_SAVE_SOURCE, /* Run source subobject only, save output */
|
|
21
|
-
JBUF_CRANK_DEST, /* Run dest subobject only, using saved data */
|
|
22
|
-
JBUF_SAVE_AND_PASS /* Run both subobjects, save output */
|
|
23
|
-
} J_BUF_MODE;
|
|
24
|
-
|
|
25
|
-
/* Values of global_state field (jdapi.c has some dependencies on ordering!) */
|
|
26
|
-
#define CSTATE_START 100 /* after create_compress */
|
|
27
|
-
#define CSTATE_SCANNING 101 /* start_compress done, write_scanlines OK */
|
|
28
|
-
#define CSTATE_RAW_OK 102 /* start_compress done, write_raw_data OK */
|
|
29
|
-
#define CSTATE_WRCOEFS 103 /* jpeg_write_coefficients done */
|
|
30
|
-
#define DSTATE_START 200 /* after create_decompress */
|
|
31
|
-
#define DSTATE_INHEADER 201 /* reading header markers, no SOS yet */
|
|
32
|
-
#define DSTATE_READY 202 /* found SOS, ready for start_decompress */
|
|
33
|
-
#define DSTATE_PRELOAD 203 /* reading multiscan file in start_decompress*/
|
|
34
|
-
#define DSTATE_PRESCAN 204 /* performing dummy pass for 2-pass quant */
|
|
35
|
-
#define DSTATE_SCANNING 205 /* start_decompress done, read_scanlines OK */
|
|
36
|
-
#define DSTATE_RAW_OK 206 /* start_decompress done, read_raw_data OK */
|
|
37
|
-
#define DSTATE_BUFIMAGE 207 /* expecting jpeg_start_output */
|
|
38
|
-
#define DSTATE_BUFPOST 208 /* looking for SOS/EOI in jpeg_finish_output */
|
|
39
|
-
#define DSTATE_RDCOEFS 209 /* reading file in jpeg_read_coefficients */
|
|
40
|
-
#define DSTATE_STOPPING 210 /* looking for EOI in jpeg_finish_decompress */
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
/* Declarations for compression modules */
|
|
44
|
-
|
|
45
|
-
/* Master control module */
|
|
46
|
-
struct jpeg_comp_master {
|
|
47
|
-
JMETHOD(void, prepare_for_pass, (j_compress_ptr cinfo));
|
|
48
|
-
JMETHOD(void, pass_startup, (j_compress_ptr cinfo));
|
|
49
|
-
JMETHOD(void, finish_pass, (j_compress_ptr cinfo));
|
|
50
|
-
|
|
51
|
-
/* State variables made visible to other modules */
|
|
52
|
-
boolean call_pass_startup; /* True if pass_startup must be called */
|
|
53
|
-
boolean is_last_pass; /* True during last pass */
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
/* Main buffer control (downsampled-data buffer) */
|
|
57
|
-
struct jpeg_c_main_controller {
|
|
58
|
-
JMETHOD(void, start_pass, (j_compress_ptr cinfo, J_BUF_MODE pass_mode));
|
|
59
|
-
JMETHOD(void, process_data, (j_compress_ptr cinfo,
|
|
60
|
-
JSAMPARRAY input_buf, JDIMENSION *in_row_ctr,
|
|
61
|
-
JDIMENSION in_rows_avail));
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
/* Compression preprocessing (downsampling input buffer control) */
|
|
65
|
-
struct jpeg_c_prep_controller {
|
|
66
|
-
JMETHOD(void, start_pass, (j_compress_ptr cinfo, J_BUF_MODE pass_mode));
|
|
67
|
-
JMETHOD(void, pre_process_data, (j_compress_ptr cinfo,
|
|
68
|
-
JSAMPARRAY input_buf,
|
|
69
|
-
JDIMENSION *in_row_ctr,
|
|
70
|
-
JDIMENSION in_rows_avail,
|
|
71
|
-
JSAMPIMAGE output_buf,
|
|
72
|
-
JDIMENSION *out_row_group_ctr,
|
|
73
|
-
JDIMENSION out_row_groups_avail));
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
/* Coefficient buffer control */
|
|
77
|
-
struct jpeg_c_coef_controller {
|
|
78
|
-
JMETHOD(void, start_pass, (j_compress_ptr cinfo, J_BUF_MODE pass_mode));
|
|
79
|
-
JMETHOD(boolean, compress_data, (j_compress_ptr cinfo,
|
|
80
|
-
JSAMPIMAGE input_buf));
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
/* Colorspace conversion */
|
|
84
|
-
struct jpeg_color_converter {
|
|
85
|
-
JMETHOD(void, start_pass, (j_compress_ptr cinfo));
|
|
86
|
-
JMETHOD(void, color_convert, (j_compress_ptr cinfo,
|
|
87
|
-
JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
|
|
88
|
-
JDIMENSION output_row, int num_rows));
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/* Downsampling */
|
|
92
|
-
struct jpeg_downsampler {
|
|
93
|
-
JMETHOD(void, start_pass, (j_compress_ptr cinfo));
|
|
94
|
-
JMETHOD(void, downsample, (j_compress_ptr cinfo,
|
|
95
|
-
JSAMPIMAGE input_buf, JDIMENSION in_row_index,
|
|
96
|
-
JSAMPIMAGE output_buf,
|
|
97
|
-
JDIMENSION out_row_group_index));
|
|
98
|
-
|
|
99
|
-
boolean need_context_rows; /* TRUE if need rows above & below */
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
/* Forward DCT (also controls coefficient quantization) */
|
|
103
|
-
typedef JMETHOD(void, forward_DCT_ptr,
|
|
104
|
-
(j_compress_ptr cinfo, jpeg_component_info * compptr,
|
|
105
|
-
JSAMPARRAY sample_data, JBLOCKROW coef_blocks,
|
|
106
|
-
JDIMENSION start_row, JDIMENSION start_col,
|
|
107
|
-
JDIMENSION num_blocks));
|
|
108
|
-
|
|
109
|
-
struct jpeg_forward_dct {
|
|
110
|
-
JMETHOD(void, start_pass, (j_compress_ptr cinfo));
|
|
111
|
-
/* It is useful to allow each component to have a separate FDCT method. */
|
|
112
|
-
forward_DCT_ptr forward_DCT[MAX_COMPONENTS];
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
/* Entropy encoding */
|
|
116
|
-
struct jpeg_entropy_encoder {
|
|
117
|
-
JMETHOD(void, start_pass, (j_compress_ptr cinfo, boolean gather_statistics));
|
|
118
|
-
JMETHOD(boolean, encode_mcu, (j_compress_ptr cinfo, JBLOCKROW *MCU_data));
|
|
119
|
-
JMETHOD(void, finish_pass, (j_compress_ptr cinfo));
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
/* Marker writing */
|
|
123
|
-
struct jpeg_marker_writer {
|
|
124
|
-
JMETHOD(void, write_file_header, (j_compress_ptr cinfo));
|
|
125
|
-
JMETHOD(void, write_frame_header, (j_compress_ptr cinfo));
|
|
126
|
-
JMETHOD(void, write_scan_header, (j_compress_ptr cinfo));
|
|
127
|
-
JMETHOD(void, write_file_trailer, (j_compress_ptr cinfo));
|
|
128
|
-
JMETHOD(void, write_tables_only, (j_compress_ptr cinfo));
|
|
129
|
-
/* These routines are exported to allow insertion of extra markers */
|
|
130
|
-
/* Probably only COM and APPn markers should be written this way */
|
|
131
|
-
JMETHOD(void, write_marker_header, (j_compress_ptr cinfo, int marker,
|
|
132
|
-
unsigned int datalen));
|
|
133
|
-
JMETHOD(void, write_marker_byte, (j_compress_ptr cinfo, int val));
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
/* Declarations for decompression modules */
|
|
138
|
-
|
|
139
|
-
/* Master control module */
|
|
140
|
-
struct jpeg_decomp_master {
|
|
141
|
-
JMETHOD(void, prepare_for_output_pass, (j_decompress_ptr cinfo));
|
|
142
|
-
JMETHOD(void, finish_output_pass, (j_decompress_ptr cinfo));
|
|
143
|
-
|
|
144
|
-
/* State variables made visible to other modules */
|
|
145
|
-
boolean is_dummy_pass; /* True during 1st pass for 2-pass quant */
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
/* Input control module */
|
|
149
|
-
struct jpeg_input_controller {
|
|
150
|
-
JMETHOD(int, consume_input, (j_decompress_ptr cinfo));
|
|
151
|
-
JMETHOD(void, reset_input_controller, (j_decompress_ptr cinfo));
|
|
152
|
-
JMETHOD(void, start_input_pass, (j_decompress_ptr cinfo));
|
|
153
|
-
JMETHOD(void, finish_input_pass, (j_decompress_ptr cinfo));
|
|
154
|
-
|
|
155
|
-
/* State variables made visible to other modules */
|
|
156
|
-
boolean has_multiple_scans; /* True if file has multiple scans */
|
|
157
|
-
boolean eoi_reached; /* True when EOI has been consumed */
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
/* Main buffer control (downsampled-data buffer) */
|
|
161
|
-
struct jpeg_d_main_controller {
|
|
162
|
-
JMETHOD(void, start_pass, (j_decompress_ptr cinfo, J_BUF_MODE pass_mode));
|
|
163
|
-
JMETHOD(void, process_data, (j_decompress_ptr cinfo,
|
|
164
|
-
JSAMPARRAY output_buf, JDIMENSION *out_row_ctr,
|
|
165
|
-
JDIMENSION out_rows_avail));
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
/* Coefficient buffer control */
|
|
169
|
-
struct jpeg_d_coef_controller {
|
|
170
|
-
JMETHOD(void, start_input_pass, (j_decompress_ptr cinfo));
|
|
171
|
-
JMETHOD(int, consume_data, (j_decompress_ptr cinfo));
|
|
172
|
-
JMETHOD(void, start_output_pass, (j_decompress_ptr cinfo));
|
|
173
|
-
JMETHOD(int, decompress_data, (j_decompress_ptr cinfo,
|
|
174
|
-
JSAMPIMAGE output_buf));
|
|
175
|
-
/* Pointer to array of coefficient virtual arrays, or NULL if none */
|
|
176
|
-
jvirt_barray_ptr *coef_arrays;
|
|
177
|
-
};
|
|
178
|
-
|
|
179
|
-
/* Decompression postprocessing (color quantization buffer control) */
|
|
180
|
-
struct jpeg_d_post_controller {
|
|
181
|
-
JMETHOD(void, start_pass, (j_decompress_ptr cinfo, J_BUF_MODE pass_mode));
|
|
182
|
-
JMETHOD(void, post_process_data, (j_decompress_ptr cinfo,
|
|
183
|
-
JSAMPIMAGE input_buf,
|
|
184
|
-
JDIMENSION *in_row_group_ctr,
|
|
185
|
-
JDIMENSION in_row_groups_avail,
|
|
186
|
-
JSAMPARRAY output_buf,
|
|
187
|
-
JDIMENSION *out_row_ctr,
|
|
188
|
-
JDIMENSION out_rows_avail));
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
/* Marker reading & parsing */
|
|
192
|
-
struct jpeg_marker_reader {
|
|
193
|
-
JMETHOD(void, reset_marker_reader, (j_decompress_ptr cinfo));
|
|
194
|
-
/* Read markers until SOS or EOI.
|
|
195
|
-
* Returns same codes as are defined for jpeg_consume_input:
|
|
196
|
-
* JPEG_SUSPENDED, JPEG_REACHED_SOS, or JPEG_REACHED_EOI.
|
|
197
|
-
*/
|
|
198
|
-
JMETHOD(int, read_markers, (j_decompress_ptr cinfo));
|
|
199
|
-
/* Read a restart marker --- exported for use by entropy decoder only */
|
|
200
|
-
jpeg_marker_parser_method read_restart_marker;
|
|
201
|
-
|
|
202
|
-
/* State of marker reader --- nominally internal, but applications
|
|
203
|
-
* supplying COM or APPn handlers might like to know the state.
|
|
204
|
-
*/
|
|
205
|
-
boolean saw_SOI; /* found SOI? */
|
|
206
|
-
boolean saw_SOF; /* found SOF? */
|
|
207
|
-
int next_restart_num; /* next restart number expected (0-7) */
|
|
208
|
-
unsigned int discarded_bytes; /* # of bytes skipped looking for a marker */
|
|
209
|
-
};
|
|
210
|
-
|
|
211
|
-
/* Entropy decoding */
|
|
212
|
-
struct jpeg_entropy_decoder {
|
|
213
|
-
JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
|
|
214
|
-
JMETHOD(boolean, decode_mcu, (j_decompress_ptr cinfo,
|
|
215
|
-
JBLOCKROW *MCU_data));
|
|
216
|
-
|
|
217
|
-
/* This is here to share code between baseline and progressive decoders; */
|
|
218
|
-
/* other modules probably should not use it */
|
|
219
|
-
boolean insufficient_data; /* set TRUE after emitting warning */
|
|
220
|
-
};
|
|
221
|
-
|
|
222
|
-
/* Inverse DCT (also performs dequantization) */
|
|
223
|
-
typedef JMETHOD(void, inverse_DCT_method_ptr,
|
|
224
|
-
(j_decompress_ptr cinfo, jpeg_component_info * compptr,
|
|
225
|
-
JCOEFPTR coef_block,
|
|
226
|
-
JSAMPARRAY output_buf, JDIMENSION output_col));
|
|
227
|
-
|
|
228
|
-
struct jpeg_inverse_dct {
|
|
229
|
-
JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
|
|
230
|
-
/* It is useful to allow each component to have a separate IDCT method. */
|
|
231
|
-
inverse_DCT_method_ptr inverse_DCT[MAX_COMPONENTS];
|
|
232
|
-
};
|
|
233
|
-
|
|
234
|
-
/* Upsampling (note that upsampler must also call color converter) */
|
|
235
|
-
struct jpeg_upsampler {
|
|
236
|
-
JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
|
|
237
|
-
JMETHOD(void, upsample, (j_decompress_ptr cinfo,
|
|
238
|
-
JSAMPIMAGE input_buf,
|
|
239
|
-
JDIMENSION *in_row_group_ctr,
|
|
240
|
-
JDIMENSION in_row_groups_avail,
|
|
241
|
-
JSAMPARRAY output_buf,
|
|
242
|
-
JDIMENSION *out_row_ctr,
|
|
243
|
-
JDIMENSION out_rows_avail));
|
|
244
|
-
|
|
245
|
-
boolean need_context_rows; /* TRUE if need rows above & below */
|
|
246
|
-
};
|
|
247
|
-
|
|
248
|
-
/* Colorspace conversion */
|
|
249
|
-
struct jpeg_color_deconverter {
|
|
250
|
-
JMETHOD(void, start_pass, (j_decompress_ptr cinfo));
|
|
251
|
-
JMETHOD(void, color_convert, (j_decompress_ptr cinfo,
|
|
252
|
-
JSAMPIMAGE input_buf, JDIMENSION input_row,
|
|
253
|
-
JSAMPARRAY output_buf, int num_rows));
|
|
254
|
-
};
|
|
255
|
-
|
|
256
|
-
/* Color quantization or color precision reduction */
|
|
257
|
-
struct jpeg_color_quantizer {
|
|
258
|
-
JMETHOD(void, start_pass, (j_decompress_ptr cinfo, boolean is_pre_scan));
|
|
259
|
-
JMETHOD(void, color_quantize, (j_decompress_ptr cinfo,
|
|
260
|
-
JSAMPARRAY input_buf, JSAMPARRAY output_buf,
|
|
261
|
-
int num_rows));
|
|
262
|
-
JMETHOD(void, finish_pass, (j_decompress_ptr cinfo));
|
|
263
|
-
JMETHOD(void, new_color_map, (j_decompress_ptr cinfo));
|
|
264
|
-
};
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
/* Miscellaneous useful macros */
|
|
268
|
-
|
|
269
|
-
#undef MAX
|
|
270
|
-
#define MAX(a,b) ((a) > (b) ? (a) : (b))
|
|
271
|
-
#undef MIN
|
|
272
|
-
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
/* We assume that right shift corresponds to signed division by 2 with
|
|
276
|
-
* rounding towards minus infinity. This is correct for typical "arithmetic
|
|
277
|
-
* shift" instructions that shift in copies of the sign bit. But some
|
|
278
|
-
* C compilers implement >> with an unsigned shift. For these machines you
|
|
279
|
-
* must define RIGHT_SHIFT_IS_UNSIGNED.
|
|
280
|
-
* RIGHT_SHIFT provides a proper signed right shift of an INT32 quantity.
|
|
281
|
-
* It is only applied with constant shift counts. SHIFT_TEMPS must be
|
|
282
|
-
* included in the variables of any routine using RIGHT_SHIFT.
|
|
283
|
-
*/
|
|
284
|
-
|
|
285
|
-
#ifdef RIGHT_SHIFT_IS_UNSIGNED
|
|
286
|
-
#define SHIFT_TEMPS INT32 shift_temp;
|
|
287
|
-
#define RIGHT_SHIFT(x,shft) \
|
|
288
|
-
((shift_temp = (x)) < 0 ? \
|
|
289
|
-
(shift_temp >> (shft)) | ((~((INT32) 0)) << (32-(shft))) : \
|
|
290
|
-
(shift_temp >> (shft)))
|
|
291
|
-
#else
|
|
292
|
-
#define SHIFT_TEMPS
|
|
293
|
-
#define RIGHT_SHIFT(x,shft) ((x) >> (shft))
|
|
294
|
-
#endif
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
/* Short forms of external names for systems with brain-damaged linkers. */
|
|
298
|
-
|
|
299
|
-
#ifdef NEED_SHORT_EXTERNAL_NAMES
|
|
300
|
-
#define jinit_compress_master jICompress
|
|
301
|
-
#define jinit_c_master_control jICMaster
|
|
302
|
-
#define jinit_c_main_controller jICMainC
|
|
303
|
-
#define jinit_c_prep_controller jICPrepC
|
|
304
|
-
#define jinit_c_coef_controller jICCoefC
|
|
305
|
-
#define jinit_color_converter jICColor
|
|
306
|
-
#define jinit_downsampler jIDownsampler
|
|
307
|
-
#define jinit_forward_dct jIFDCT
|
|
308
|
-
#define jinit_huff_encoder jIHEncoder
|
|
309
|
-
#define jinit_arith_encoder jIAEncoder
|
|
310
|
-
#define jinit_marker_writer jIMWriter
|
|
311
|
-
#define jinit_master_decompress jIDMaster
|
|
312
|
-
#define jinit_d_main_controller jIDMainC
|
|
313
|
-
#define jinit_d_coef_controller jIDCoefC
|
|
314
|
-
#define jinit_d_post_controller jIDPostC
|
|
315
|
-
#define jinit_input_controller jIInCtlr
|
|
316
|
-
#define jinit_marker_reader jIMReader
|
|
317
|
-
#define jinit_huff_decoder jIHDecoder
|
|
318
|
-
#define jinit_arith_decoder jIADecoder
|
|
319
|
-
#define jinit_inverse_dct jIIDCT
|
|
320
|
-
#define jinit_upsampler jIUpsampler
|
|
321
|
-
#define jinit_color_deconverter jIDColor
|
|
322
|
-
#define jinit_1pass_quantizer jI1Quant
|
|
323
|
-
#define jinit_2pass_quantizer jI2Quant
|
|
324
|
-
#define jinit_merged_upsampler jIMUpsampler
|
|
325
|
-
#define jinit_memory_mgr jIMemMgr
|
|
326
|
-
#define jdiv_round_up jDivRound
|
|
327
|
-
#define jround_up jRound
|
|
328
|
-
#define jcopy_sample_rows jCopySamples
|
|
329
|
-
#define jcopy_block_row jCopyBlocks
|
|
330
|
-
#define jzero_far jZeroFar
|
|
331
|
-
#define jpeg_zigzag_order jZIGTable
|
|
332
|
-
#define jpeg_natural_order jZAGTable
|
|
333
|
-
#endif /* NEED_SHORT_EXTERNAL_NAMES */
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
/* Compression module initialization routines */
|
|
337
|
-
EXTERN(void) jinit_compress_master JPP((j_compress_ptr cinfo));
|
|
338
|
-
EXTERN(void) jinit_c_master_control JPP((j_compress_ptr cinfo,
|
|
339
|
-
boolean transcode_only));
|
|
340
|
-
EXTERN(void) jinit_c_main_controller JPP((j_compress_ptr cinfo,
|
|
341
|
-
boolean need_full_buffer));
|
|
342
|
-
EXTERN(void) jinit_c_prep_controller JPP((j_compress_ptr cinfo,
|
|
343
|
-
boolean need_full_buffer));
|
|
344
|
-
EXTERN(void) jinit_c_coef_controller JPP((j_compress_ptr cinfo,
|
|
345
|
-
boolean need_full_buffer));
|
|
346
|
-
EXTERN(void) jinit_color_converter JPP((j_compress_ptr cinfo));
|
|
347
|
-
EXTERN(void) jinit_downsampler JPP((j_compress_ptr cinfo));
|
|
348
|
-
EXTERN(void) jinit_forward_dct JPP((j_compress_ptr cinfo));
|
|
349
|
-
EXTERN(void) jinit_huff_encoder JPP((j_compress_ptr cinfo));
|
|
350
|
-
EXTERN(void) jinit_arith_encoder JPP((j_compress_ptr cinfo));
|
|
351
|
-
EXTERN(void) jinit_marker_writer JPP((j_compress_ptr cinfo));
|
|
352
|
-
/* Decompression module initialization routines */
|
|
353
|
-
EXTERN(void) jinit_master_decompress JPP((j_decompress_ptr cinfo));
|
|
354
|
-
EXTERN(void) jinit_d_main_controller JPP((j_decompress_ptr cinfo,
|
|
355
|
-
boolean need_full_buffer));
|
|
356
|
-
EXTERN(void) jinit_d_coef_controller JPP((j_decompress_ptr cinfo,
|
|
357
|
-
boolean need_full_buffer));
|
|
358
|
-
EXTERN(void) jinit_d_post_controller JPP((j_decompress_ptr cinfo,
|
|
359
|
-
boolean need_full_buffer));
|
|
360
|
-
EXTERN(void) jinit_input_controller JPP((j_decompress_ptr cinfo));
|
|
361
|
-
EXTERN(void) jinit_marker_reader JPP((j_decompress_ptr cinfo));
|
|
362
|
-
EXTERN(void) jinit_huff_decoder JPP((j_decompress_ptr cinfo));
|
|
363
|
-
EXTERN(void) jinit_arith_decoder JPP((j_decompress_ptr cinfo));
|
|
364
|
-
EXTERN(void) jinit_inverse_dct JPP((j_decompress_ptr cinfo));
|
|
365
|
-
EXTERN(void) jinit_upsampler JPP((j_decompress_ptr cinfo));
|
|
366
|
-
EXTERN(void) jinit_color_deconverter JPP((j_decompress_ptr cinfo));
|
|
367
|
-
EXTERN(void) jinit_1pass_quantizer JPP((j_decompress_ptr cinfo));
|
|
368
|
-
EXTERN(void) jinit_2pass_quantizer JPP((j_decompress_ptr cinfo));
|
|
369
|
-
EXTERN(void) jinit_merged_upsampler JPP((j_decompress_ptr cinfo));
|
|
370
|
-
/* Memory manager initialization */
|
|
371
|
-
EXTERN(void) jinit_memory_mgr JPP((j_common_ptr cinfo));
|
|
372
|
-
|
|
373
|
-
/* Utility routines in jutils.c */
|
|
374
|
-
EXTERN(long) jdiv_round_up JPP((long a, long b));
|
|
375
|
-
EXTERN(long) jround_up JPP((long a, long b));
|
|
376
|
-
EXTERN(void) jcopy_sample_rows JPP((JSAMPARRAY input_array, int source_row,
|
|
377
|
-
JSAMPARRAY output_array, int dest_row,
|
|
378
|
-
int num_rows, JDIMENSION num_cols));
|
|
379
|
-
EXTERN(void) jcopy_block_row JPP((JBLOCKROW input_row, JBLOCKROW output_row,
|
|
380
|
-
JDIMENSION num_blocks));
|
|
381
|
-
EXTERN(void) jzero_far JPP((void FAR * target, size_t bytestozero));
|
|
382
|
-
/* Constant tables in jutils.c */
|
|
383
|
-
#if 0 /* This table is not actually needed in v6a */
|
|
384
|
-
extern const int jpeg_zigzag_order[]; /* natural coef order to zigzag order */
|
|
385
|
-
#endif
|
|
386
|
-
extern const int jpeg_natural_order[]; /* zigzag coef order to natural order */
|
|
387
|
-
|
|
388
|
-
/* Suppress undefined-structure complaints if necessary. */
|
|
389
|
-
|
|
390
|
-
#ifdef INCOMPLETE_TYPES_BROKEN
|
|
391
|
-
#ifndef AM_MEMORY_MANAGER /* only jmemmgr.c defines these */
|
|
392
|
-
struct jvirt_sarray_control { long dummy; };
|
|
393
|
-
struct jvirt_barray_control { long dummy; };
|
|
394
|
-
#endif
|
|
395
|
-
#endif /* INCOMPLETE_TYPES_BROKEN */
|