gfx/skia/trunk/src/images/SkJpegUtility.h

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:54865f66bec9
1
2 /*
3 * Copyright 2010 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10 #ifndef SkJpegUtility_DEFINED
11 #define SkJpegUtility_DEFINED
12
13 #include "SkImageDecoder.h"
14 #include "SkStream.h"
15
16 extern "C" {
17 #include "jpeglib.h"
18 #include "jerror.h"
19 }
20
21 #include <setjmp.h>
22
23 /* Our error-handling struct.
24 *
25 */
26 struct skjpeg_error_mgr : jpeg_error_mgr {
27 jmp_buf fJmpBuf;
28 };
29
30
31 void skjpeg_error_exit(j_common_ptr cinfo);
32
33 ///////////////////////////////////////////////////////////////////////////
34 /* Our source struct for directing jpeg to our stream object.
35 */
36 struct skjpeg_source_mgr : jpeg_source_mgr {
37 skjpeg_source_mgr(SkStream* stream, SkImageDecoder* decoder);
38 ~skjpeg_source_mgr();
39
40 // fStream is ref'ed and unref'ed
41 SkStream* fStream;
42 // Unowned pointer to the decoder, used to check if the decoding process
43 // has been cancelled.
44 SkImageDecoder* fDecoder;
45 enum {
46 kBufferSize = 1024
47 };
48 char fBuffer[kBufferSize];
49 };
50
51 /////////////////////////////////////////////////////////////////////////////
52 /* Our destination struct for directing decompressed pixels to our stream
53 * object.
54 */
55 struct skjpeg_destination_mgr : jpeg_destination_mgr {
56 skjpeg_destination_mgr(SkWStream* stream);
57
58 SkWStream* fStream;
59
60 enum {
61 kBufferSize = 1024
62 };
63 uint8_t fBuffer[kBufferSize];
64 };
65
66 #endif

mercurial