Index: include/core/SkImageDecoder.h |
diff --git a/include/core/SkImageDecoder.h b/include/core/SkImageDecoder.h |
index 5910d33a997a4950aad0694d1beb0619f6edb31b..94831762deaf4f4ef58131e831769093761a5cc4 100644 |
--- a/include/core/SkImageDecoder.h |
+++ b/include/core/SkImageDecoder.h |
@@ -47,6 +47,15 @@ public: |
*/ |
virtual Format getFormat() const; |
+ /** If planes or rowBytes is NULL, decodes the header and computes componentSizes |
+ for memory allocation. |
+ Otherwise, decodes the YUV planes into the provided image planes and |
+ updates componentSizes to the final image size. |
+ Returns whether the decoding was successful. |
+ */ |
+ bool decodeYUV8Planes(SkStream* stream, SkISize componentSizes[3], void* planes[3], |
+ size_t rowBytes[3], SkYUVColorSpace*); |
+ |
/** Return the format of the SkStreamRewindable or kUnknown_Format if it cannot be determined. |
Rewinds the stream before returning. |
*/ |
@@ -339,6 +348,17 @@ protected: |
return false; |
} |
+ /** If planes or rowBytes is NULL, decodes the header and computes componentSizes |
+ for memory allocation. |
+ Otherwise, decodes the YUV planes into the provided image planes and |
+ updates componentSizes to the final image size. |
+ Returns whether the decoding was successful. |
+ */ |
+ virtual bool onDecodeYUV8Planes(SkStream* stream, SkISize componentSizes[3], void* planes[3], |
+ size_t rowBytes[3], SkYUVColorSpace*) { |
+ return false; |
+ } |
+ |
/* |
* Crop a rectangle from the src Bitmap to the dest Bitmap. src and dst are |
* both sampled by sampleSize from an original Bitmap. |