Index: src/codec/SkJpegUtility.h |
diff --git a/src/codec/SkJpegUtility.h b/src/codec/SkJpegUtility.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3ecadbd3f2935545010798f0f8b3969e75ca1e73 |
--- /dev/null |
+++ b/src/codec/SkJpegUtility.h |
@@ -0,0 +1,48 @@ |
+/* |
+ * 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> |
+// stdio is needed for jpeglib |
+#include <stdio.h> |
+#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 |
+ }; |
+ SkAutoTDeleteArray<uint8_t> fBuffer; |
scroggo
2015/04/14 13:10:33
This can just be:
uint8_t fBuffer[kBufferSize];
msarett
2015/04/14 19:30:36
You are right. I have had several misunderstandin
|
+}; |
+ |
+#endif |