Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: third_party/libjpeg_turbo/turbojpeg.h

Issue 4134011: Adds libjpeg-turbo to deps... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « third_party/libjpeg_turbo/transupp.c ('k') | third_party/libjpeg_turbo/turbojpegl.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /* Copyright (C)2004 Landmark Graphics Corporation
2 * Copyright (C)2005, 2006 Sun Microsystems, Inc.
3 * Copyright (C)2009 D. R. Commander
4 *
5 * This library is free software and may be redistributed and/or modified under
6 * the terms of the wxWindows Library License, Version 3.1 or (at your option)
7 * any later version. The full license is in the LICENSE.txt file included
8 * with this distribution.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * wxWindows Library License for more details.
14 */
15
16 #if (defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__)) && define d(_WIN32) && defined(DLLDEFINE)
17 #define DLLEXPORT __declspec(dllexport)
18 #else
19 #define DLLEXPORT
20 #endif
21
22 #define DLLCALL
23
24 /* Subsampling */
25 #define NUMSUBOPT 4
26
27 enum {TJ_444=0, TJ_422, TJ_420, TJ_GRAYSCALE};
28 #define TJ_411 TJ_420 /* for backward compatibility with VirtualGL <= 2.1.x,
29 TurboVNC <= 0.6, and TurboJPEG/IPP */
30
31 /* Flags */
32 #define TJ_BGR 1
33 /* The components of each pixel in the source/destination bitmap are stored
34 in B,G,R order, not R,G,B */
35 #define TJ_BOTTOMUP 2
36 /* The source/destination bitmap is stored in bottom-up (Windows, OpenGL)
37 order, not top-down (X11) order */
38 #define TJ_FORCEMMX 8
39 /* Turn off CPU auto-detection and force TurboJPEG to use MMX code
40 (IPP and 32-bit libjpeg-turbo versions only) */
41 #define TJ_FORCESSE 16
42 /* Turn off CPU auto-detection and force TurboJPEG to use SSE code
43 (32-bit IPP and 32-bit libjpeg-turbo versions only) */
44 #define TJ_FORCESSE2 32
45 /* Turn off CPU auto-detection and force TurboJPEG to use SSE2 code
46 (32-bit IPP and 32-bit libjpeg-turbo versions only) */
47 #define TJ_ALPHAFIRST 64
48 /* If the source/destination bitmap is 32 bpp, assume that each pixel is
49 ARGB/XRGB (or ABGR/XBGR if TJ_BGR is also specified) */
50 #define TJ_FORCESSE3 128
51 /* Turn off CPU auto-detection and force TurboJPEG to use SSE3 code
52 (64-bit IPP version only) */
53 #define TJ_FASTUPSAMPLE 256
54 /* Use fast, inaccurate 4:2:2 and 4:2:0 YUV upsampling routines
55 (libjpeg version only) */
56 typedef void* tjhandle;
57
58 #define TJPAD(p) (((p)+3)&(~3))
59 #ifndef max
60 #define max(a,b) ((a)>(b)?(a):(b))
61 #endif
62
63 #ifdef __cplusplus
64 extern "C" {
65 #endif
66
67 /* API follows */
68
69
70 /*
71 tjhandle tjInitCompress(void)
72
73 Creates a new JPEG compressor instance, allocates memory for the structures,
74 and returns a handle to the instance. Most applications will only
75 need to call this once at the beginning of the program or once for each
76 concurrent thread. Don't try to create a new instance every time you
77 compress an image, because this will cause performance to suffer.
78
79 RETURNS: NULL on error
80 */
81 DLLEXPORT tjhandle DLLCALL tjInitCompress(void);
82
83
84 /*
85 int tjCompress(tjhandle j,
86 unsigned char *srcbuf, int width, int pitch, int height, int pixelsize,
87 unsigned char *dstbuf, unsigned long *size,
88 int jpegsubsamp, int jpegqual, int flags)
89
90 [INPUT] j = instance handle previously returned from a call to
91 tjInitCompress()
92 [INPUT] srcbuf = pointer to user-allocated image buffer containing pixels in
93 RGB(A) or BGR(A) form
94 [INPUT] width = width (in pixels) of the source image
95 [INPUT] pitch = bytes per line of the source image (width*pixelsize if the
96 bitmap is unpadded, else TJPAD(width*pixelsize) if each line of the bitmap
97 is padded to the nearest 32-bit boundary, such as is the case for Windows
98 bitmaps. You can also be clever and use this parameter to skip lines, etc. ,
99 as long as the pitch is greater than 0.)
100 [INPUT] height = height (in pixels) of the source image
101 [INPUT] pixelsize = size (in bytes) of each pixel in the source image
102 RGBA and BGRA: 4, RGB and BGR: 3
103 [INPUT] dstbuf = pointer to user-allocated image buffer which will receive
104 the JPEG image. Use the macro TJBUFSIZE(width, height) to determine
105 the appropriate size for this buffer based on the image width and height.
106 [OUTPUT] size = pointer to unsigned long which receives the size (in bytes)
107 of the compressed image
108 [INPUT] jpegsubsamp = Specifies either 4:2:0, 4:2:2, or 4:4:4 subsampling.
109 When the image is converted from the RGB to YCbCr colorspace as part of the
110 JPEG compression process, every other Cb and Cr (chrominance) pixel can be
111 discarded to produce a smaller image with little perceptible loss of
112 image clarity (the human eye is more sensitive to small changes in
113 brightness than small changes in color.)
114
115 TJ_420: 4:2:0 subsampling. Discards every other Cb, Cr pixel in both
116 horizontal and vertical directions.
117 TJ_422: 4:2:2 subsampling. Discards every other Cb, Cr pixel only in
118 the horizontal direction.
119 TJ_444: no subsampling.
120 TJ_GRAYSCALE: Generate grayscale JPEG image
121
122 [INPUT] jpegqual = JPEG quality (an integer between 0 and 100 inclusive.)
123 [INPUT] flags = the bitwise OR of one or more of the flags described in the
124 "Flags" section above.
125
126 RETURNS: 0 on success, -1 on error
127 */
128 DLLEXPORT int DLLCALL tjCompress(tjhandle j,
129 unsigned char *srcbuf, int width, int pitch, int height, int pixelsize,
130 unsigned char *dstbuf, unsigned long *size,
131 int jpegsubsamp, int jpegqual, int flags);
132
133 DLLEXPORT unsigned long DLLCALL TJBUFSIZE(int width, int height);
134
135 /*
136 tjhandle tjInitDecompress(void)
137
138 Creates a new JPEG decompressor instance, allocates memory for the
139 structures, and returns a handle to the instance. Most applications will
140 only need to call this once at the beginning of the program or once for each
141 concurrent thread. Don't try to create a new instance every time you
142 decompress an image, because this will cause performance to suffer.
143
144 RETURNS: NULL on error
145 */
146 DLLEXPORT tjhandle DLLCALL tjInitDecompress(void);
147
148
149 /*
150 int tjDecompressHeader(tjhandle j,
151 unsigned char *srcbuf, unsigned long size,
152 int *width, int *height)
153
154 [INPUT] j = instance handle previously returned from a call to
155 tjInitDecompress()
156 [INPUT] srcbuf = pointer to a user-allocated buffer containing the JPEG image
157 to decompress
158 [INPUT] size = size of the JPEG image buffer (in bytes)
159 [OUTPUT] width = width (in pixels) of the JPEG image
160 [OUTPUT] height = height (in pixels) of the JPEG image
161
162 RETURNS: 0 on success, -1 on error
163 */
164 DLLEXPORT int DLLCALL tjDecompressHeader(tjhandle j,
165 unsigned char *srcbuf, unsigned long size,
166 int *width, int *height);
167
168
169 /*
170 int tjDecompress(tjhandle j,
171 unsigned char *srcbuf, unsigned long size,
172 unsigned char *dstbuf, int width, int pitch, int height, int pixelsize,
173 int flags)
174
175 [INPUT] j = instance handle previously returned from a call to
176 tjInitDecompress()
177 [INPUT] srcbuf = pointer to a user-allocated buffer containing the JPEG image
178 to decompress
179 [INPUT] size = size of the JPEG image buffer (in bytes)
180 [INPUT] dstbuf = pointer to user-allocated image buffer which will receive
181 the bitmap image. This buffer should normally be pitch*height
182 bytes in size, although this pointer may also be used to decompress into
183 a specific region of a larger buffer.
184 [INPUT] width = width (in pixels) of the destination image
185 [INPUT] pitch = bytes per line of the destination image (width*pixelsize if th e
186 bitmap is unpadded, else TJPAD(width*pixelsize) if each line of the bitmap
187 is padded to the nearest 32-bit boundary, such as is the case for Windows
188 bitmaps. You can also be clever and use this parameter to skip lines, etc. ,
189 as long as the pitch is greater than 0.)
190 [INPUT] height = height (in pixels) of the destination image
191 [INPUT] pixelsize = size (in bytes) of each pixel in the destination image
192 RGBA/RGBx and BGRA/BGRx: 4, RGB and BGR: 3
193 [INPUT] flags = the bitwise OR of one or more of the flags described in the
194 "Flags" section above.
195
196 RETURNS: 0 on success, -1 on error
197 */
198 DLLEXPORT int DLLCALL tjDecompress(tjhandle j,
199 unsigned char *srcbuf, unsigned long size,
200 unsigned char *dstbuf, int width, int pitch, int height, int pixelsize,
201 int flags);
202
203
204 /*
205 int tjDestroy(tjhandle h)
206
207 Frees structures associated with a compression or decompression instance
208
209 [INPUT] h = instance handle (returned from a previous call to
210 tjInitCompress() or tjInitDecompress()
211
212 RETURNS: 0 on success, -1 on error
213 */
214 DLLEXPORT int DLLCALL tjDestroy(tjhandle h);
215
216
217 /*
218 char *tjGetErrorStr(void)
219
220 Returns a descriptive error message explaining why the last command failed
221 */
222 DLLEXPORT char* DLLCALL tjGetErrorStr(void);
223
224 #ifdef __cplusplus
225 }
226 #endif
OLDNEW
« no previous file with comments | « third_party/libjpeg_turbo/transupp.c ('k') | third_party/libjpeg_turbo/turbojpegl.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698