diff options
Diffstat (limited to 'src/images/SkDecodingImageGenerator.cpp')
-rw-r--r-- | src/images/SkDecodingImageGenerator.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/images/SkDecodingImageGenerator.cpp b/src/images/SkDecodingImageGenerator.cpp index 3b5cb784ed..a90c1cf01f 100644 --- a/src/images/SkDecodingImageGenerator.cpp +++ b/src/images/SkDecodingImageGenerator.cpp @@ -45,6 +45,8 @@ protected: virtual bool onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, SkPMColor ctable[], int* ctableCount) SK_OVERRIDE; + virtual bool onGetYUV8Planes(SkISize sizes[3], void* planes[3], size_t rowBytes[3], + SkYUVColorSpace* colorSpace) SK_OVERRIDE; private: typedef SkImageGenerator INHERITED; @@ -204,6 +206,20 @@ bool DecodingImageGenerator::onGetPixels(const SkImageInfo& info, return true; } +bool DecodingImageGenerator::onGetYUV8Planes(SkISize sizes[3], void* planes[3], + size_t rowBytes[3], SkYUVColorSpace* colorSpace) { + if (!fStream->rewind()) { + return false; + } + + SkAutoTDelete<SkImageDecoder> decoder(SkImageDecoder::Factory(fStream)); + if (NULL == decoder.get()) { + return false; + } + + return decoder->decodeYUV8Planes(fStream, sizes, planes, rowBytes, colorSpace); +} + // A contructor-type function that returns NULL on failure. This // prevents the returned SkImageGenerator from ever being in a bad // state. Called by both Create() functions |