| 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
|
|
|