Home | History | Annotate | Download | only in codec
      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