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