#include <xan.h>
Public Member Functions | |
XanDecoder (int width, int height, int bitsPerPixel) | |
const Graphics::Surface * | decodeFrame (Common::SeekableReadStream &stream) override |
Graphics::PixelFormat | getPixelFormat () const override |
bool | setOutputPixelFormat (const Graphics::PixelFormat &format) override |
Public Member Functions inherited from Image::Codec | |
virtual bool | containsPalette () const |
virtual const byte * | getPalette () |
virtual bool | hasDirtyPalette () const |
virtual bool | canDither (DitherType type) const |
virtual void | setDither (DitherType type, const byte *palette) |
virtual void | setCodecAccuracy (CodecAccuracy accuracy) |
Additional Inherited Members | |
Public Types inherited from Image::Codec | |
enum | DitherType { kDitherTypeUnknown, kDitherTypeVFW, kDitherTypeQT } |
Static Public Member Functions inherited from Image::Codec | |
static byte * | createQuickTimeDitherTable (const byte *palette, uint colorCount) |
Xan image decoder. (fourcc Xxan)
Used by Crusader: No Regret AVI files
This code was created based on the multimedia wiki: https://wiki.multimedia.cx/index.php/Origin_Xan_Codec and ffmpeg's libavcodec/xxan.c. The ffmpeg code is LGPL2 licensed and Copyright (C) 2011 Konstantin Shishkov based on work by Mike Melanson.
A similar format is used in Wing Commander III (although not in an AVI container) and IV.
|
overridevirtual |
Decode the frame for the given data and return a pointer to a surface containing the decoded frame.
Implements Image::Codec.
|
inlineoverridevirtual |
Get the format that the surface returned from decodeImage() will be in.
Implements Image::Codec.
|
inlineoverridevirtual |
Select the preferred format to use, for codecs where this is faster than converting the image afterwards. Returns true if supported, and false otherwise.
Reimplemented from Image::Codec.