| * Copyright 2015 Google Inc. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| #ifndef SkJpegUtility_codec_DEFINED |
| #define SkJpegUtility_codec_DEFINED |
| // We need to include stdio.h before jpeg because jpeg does not include it, but uses FILE |
| // See https://github.com/libjpeg-turbo/libjpeg-turbo/issues/17 |
| #include <stdio.h> // IWYU pragma: keep |
| #include "jpeglib.h" // NO_G3_REWRITE |
| * Error handling function |
| void skjpeg_err_exit(j_common_ptr cinfo); |
| * Source handling struct for that allows libjpeg to use our stream object |
| struct skjpeg_source_mgr : jpeg_source_mgr { |
| skjpeg_source_mgr(SkStream* stream); |
| SkStream* fStream; // unowned |
| // TODO (msarett): Experiment with different buffer sizes. |
| // This size was chosen because it matches SkImageDecoder. |
| uint8_t fBuffer[kBufferSize]; |