8#ifndef SkJpegSourceMgr_codec_DEFINED
9#define SkJpegSourceMgr_codec_DEFINED
13#ifdef SK_CODEC_DECODES_JPEG_GAINMAPS
21#ifdef SK_CODEC_DECODES_JPEG_GAINMAPS
27#ifdef SK_CODEC_DECODES_JPEG_GAINMAPS
41 static std::unique_ptr<SkJpegSourceMgr>
Make(
SkStream* stream,
size_t bufferSize = 1024);
45 virtual void initSource(
const uint8_t*& nextInputByte,
size_t& bytesInBuffer) = 0;
46 virtual bool fillInputBuffer(
const uint8_t*& nextInputByte,
size_t& bytesInBuffer) = 0;
48 const uint8_t*& nextInputByte,
49 size_t& bytesInBuffer) = 0;
51#ifdef SK_CODEC_DECODES_JPEG_GAINMAPS
54 virtual const std::vector<SkJpegSegment>& getAllSegments() = 0;
59 virtual sk_sp<SkData> getSubsetData(
size_t offset,
size_t size,
bool* wasCopied =
nullptr) = 0;
71#ifdef SK_CODEC_DECODES_JPEG_GAINMAPS
73 std::unique_ptr<SkJpegSegmentScanner> fScanner;
virtual ~SkJpegSourceMgr()
virtual bool skipInputBytes(size_t bytes, const uint8_t *&nextInputByte, size_t &bytesInBuffer)=0
virtual bool fillInputBuffer(const uint8_t *&nextInputByte, size_t &bytesInBuffer)=0
virtual void initSource(const uint8_t *&nextInputByte, size_t &bytesInBuffer)=0
static std::unique_ptr< SkJpegSourceMgr > Make(SkStream *stream, size_t bufferSize=1024)