123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /*
- * 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
|