Index: src/codec/SkJpegUtility.h |
diff --git a/src/codec/SkJpegUtility.h b/src/codec/SkJpegUtility.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..42cd7af7607a21b908add78240da8994cbc60964 |
--- /dev/null |
+++ b/src/codec/SkJpegUtility.h |
@@ -0,0 +1,50 @@ |
+/* |
+ * 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 "SkStream.h" |
+ |
+#include <setjmp.h> |
+// stdio is needed for jpeglib |
+#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[kBufferSize]; |
+}; |
+ |
+#endif |