Index: src/codec/SkJpegUtility.h |
diff --git a/src/codec/SkJpegUtility.h b/src/codec/SkJpegUtility.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5cc7ab285044fc9d4e0c213af5f5a78ad8114850 |
--- /dev/null |
+++ b/src/codec/SkJpegUtility.h |
@@ -0,0 +1,49 @@ |
+/* |
+ * 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_DEFINED |
+#define SkJpegUtility_DEFINED |
+ |
+#include "SkImageDecoder.h" |
+#include "SkStream.h" |
+ |
+#include <setjmp.h> |
+#include <stdio.h> |
+extern "C" { |
+ #include "jpeglib.h" |
+ #include "jerror.h" |
+} |
+ |
+/* |
+ * Error handling struct |
+ */ |
+struct skjpeg_error_mgr : jpeg_error_mgr { |
+ jmp_buf fJmpBuf; |
+}; |
+ |
+/* |
+ * 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 |
+ enum { |
+ // TODO (msarett): Experiment with different buffer sizes. |
+ // This size was chosen because it matches SkImageDecoder. |
+ kBufferSize = 1024 |
+ }; |
+ uint8_t* fBuffer; |
+}; |
+ |
+#endif |