Index: src/codec/SkJpegDecoderMgr.h |
diff --git a/src/codec/SkJpegDecoderMgr.h b/src/codec/SkJpegDecoderMgr.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..444e693742c94da69fe7eef89149cafec6b0803f |
--- /dev/null |
+++ b/src/codec/SkJpegDecoderMgr.h |
@@ -0,0 +1,77 @@ |
+/* |
+ * 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 SkJpegDecoderMgr_DEFINED |
+#define SkJpegDecoderMgr_DEFINED |
+ |
+#include "SkCodec.h" |
+#include "SkCodecPriv.h" |
+#include "SkJpegUtility.h" |
+#include "SkSwizzler.h" |
+#include "SkTemplates.h" |
+ |
+// stdio is needed for jpeglib |
+#include <stdio.h> |
+ |
+extern "C" { |
+ #include "jpeglib.h" |
+} |
+ |
+class JpegDecoderMgr : SkNoncopyable { |
+public: |
+ |
+ /* |
+ * Print a useful error message and return false |
+ */ |
+ bool returnFalse(const char caller[]); |
+ |
+ /* |
+ * Print a useful error message and return a decode failure |
+ */ |
+ SkCodec::Result returnFailure(const char caller[], SkCodec::Result result); |
+ |
+ /* |
+ * Create the decode manager |
+ * Does not take ownership of stream |
+ */ |
+ JpegDecoderMgr(SkStream* stream); |
+ |
+ /* |
+ * Initialize decompress struct |
+ * Initialize the source manager |
+ */ |
+ void init(); |
+ |
+ /* |
+ * Recommend a color type based on the encoded format |
+ */ |
+ SkColorType getColorType(); |
+ |
+ /* |
+ * Free memory used by the decode manager |
+ */ |
+ ~JpegDecoderMgr(); |
+ |
+ /* |
+ * Get the jump buffer in order to set an error return point |
+ */ |
+ jmp_buf& getJmpBuf(); |
+ |
+ /* |
+ * Get function for the decompress info struct |
+ */ |
+ jpeg_decompress_struct* dinfo(); |
+ |
+private: |
+ |
+ jpeg_decompress_struct fDInfo; |
+ skjpeg_source_mgr fSrcMgr; |
+ skjpeg_error_mgr fErrorMgr; |
+ bool fInit; |
+}; |
+ |
+#endif |