1 /*
2  * Copyright 2015 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 
9 #ifndef SkJpegUtility_codec_DEFINED
10 #define SkJpegUtility_codec_DEFINED
11 
12 #include "SkJpegPriv.h"
13 #include "SkStream.h"
14 
15 #include <setjmp.h>
16 // stdio is needed for jpeglib
17 #include <stdio.h>
18 
19 extern "C" {
20     #include "jpeglib.h"
21     #include "jerror.h"
22 }
23 
24 /*
25  * Error handling function
26  */
27 void skjpeg_err_exit(j_common_ptr cinfo);
28 
29 /*
30  * Source handling struct for that allows libjpeg to use our stream object
31  */
32 struct skjpeg_source_mgr : jpeg_source_mgr {
33     skjpeg_source_mgr(SkStream* stream);
34 
35     SkStream* fStream; // unowned
36     enum {
37         // TODO (msarett): Experiment with different buffer sizes.
38         // This size was chosen because it matches SkImageDecoder.
39         kBufferSize = 1024
40     };
41     uint8_t fBuffer[kBufferSize];
42 };
43 
44 #endif
45