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