SkJpegUtility.h revision c1d0312b227328bee7240d1df4ceee55cf6e1858
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 "SkStream.h" 13 14#include <setjmp.h> 15// stdio is needed for jpeglib 16#include <stdio.h> 17 18extern "C" { 19 #include "jpeglib.h" 20 #include "jerror.h" 21} 22 23/* 24 * Error handling struct 25 */ 26struct skjpeg_error_mgr : jpeg_error_mgr { 27 jmp_buf fJmpBuf; 28}; 29 30/* 31 * Error handling function 32 */ 33void skjpeg_err_exit(j_common_ptr cinfo); 34 35/* 36 * Source handling struct for that allows libjpeg to use our stream object 37 */ 38struct skjpeg_source_mgr : jpeg_source_mgr { 39 skjpeg_source_mgr(SkStream* stream); 40 41 SkStream* fStream; // unowned 42 enum { 43 // TODO (msarett): Experiment with different buffer sizes. 44 // This size was chosen because it matches SkImageDecoder. 45 kBufferSize = 1024 46 }; 47 uint8_t fBuffer[kBufferSize]; 48}; 49 50#endif 51