| /* | |
| * Copyright 2017 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef SkStubHeifDecoderAPI_DEFINED | |
| #define SkStubHeifDecoderAPI_DEFINED | |
| // This stub implementation of HeifDecoderAPI.h lets us compile SkHeifCodec.cpp | |
| // even when libheif is not available. It, of course, does nothing and fails to decode. | |
| #include <memory> | |
| #include <stddef.h> | |
| #include <stdint.h> | |
| enum HeifColorFormat { | |
| kHeifColorFormat_RGB565, | |
| kHeifColorFormat_RGBA_8888, | |
| kHeifColorFormat_BGRA_8888, | |
| }; | |
| struct HeifStream { | |
| virtual ~HeifStream() {} | |
| virtual size_t read(void*, size_t) = 0; | |
| virtual bool rewind() = 0; | |
| virtual bool seek(size_t) = 0; | |
| virtual bool hasLength() const = 0; | |
| virtual size_t getLength() const = 0; | |
| }; | |
| struct HeifFrameInfo { | |
| int mRotationAngle; | |
| int mWidth; | |
| int mHeight; | |
| int mBytesPerPixel; | |
| size_t mIccSize; | |
| std::unique_ptr<char[]> mIccData; | |
| }; | |
| struct HeifDecoder { | |
| bool init(HeifStream* stream, HeifFrameInfo*) { | |
| delete stream; | |
| return false; | |
| } | |
| bool decode(HeifFrameInfo*) { | |
| return false; | |
| } | |
| bool setOutputColor(HeifColorFormat) { | |
| return false; | |
| } | |
| bool getScanline(uint8_t*) { | |
| return false; | |
| } | |
| int skipScanlines(int) { | |
| return 0; | |
| } | |
| }; | |
| static inline HeifDecoder* createHeifDecoder() { return new HeifDecoder; } | |
| #endif//SkStubHeifDecoderAPI_DEFINED |