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