Autodesk Animator FLI/FLC Video Decoder by Mike Melanson (melanson@pcisys.net) for more information on the .fli/.flc file format and all of its many variations, visit: http://www.compuphase.com/flic.htm. More...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
Go to the source code of this file.
Data Structures | |
struct | FlicDecodeContext |
Defines | |
#define | FLI_256_COLOR 4 |
#define | FLI_DELTA 7 |
#define | FLI_COLOR 11 |
#define | FLI_LC 12 |
#define | FLI_BLACK 13 |
#define | FLI_BRUN 15 |
#define | FLI_COPY 16 |
#define | FLI_MINI 18 |
#define | FLI_DTA_BRUN 25 |
#define | FLI_DTA_COPY 26 |
#define | FLI_DTA_LC 27 |
#define | FLI_TYPE_CODE (0xAF11) |
#define | FLC_FLX_TYPE_CODE (0xAF12) |
#define | FLC_DTA_TYPE_CODE (0xAF44) |
#define | FLC_MAGIC_CARPET_SYNTHETIC_TYPE_CODE (0xAF13) |
#define | CHECK_PIXEL_PTR(n) |
Typedefs | |
typedef struct FlicDecodeContext | FlicDecodeContext |
Functions | |
static av_cold int | flic_decode_init (AVCodecContext *avctx) |
static int | flic_decode_frame_8BPP (AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size) |
static int | flic_decode_frame_15_16BPP (AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size) |
static int | flic_decode_frame_24BPP (AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size) |
static int | flic_decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt) |
static av_cold int | flic_decode_end (AVCodecContext *avctx) |
Variables | |
AVCodec | flic_decoder |
Autodesk Animator FLI/FLC Video Decoder by Mike Melanson (melanson@pcisys.net) for more information on the .fli/.flc file format and all of its many variations, visit: http://www.compuphase.com/flic.htm.
This decoder outputs PAL8/RGB555/RGB565 and maybe one day RGB24 colorspace data, depending on the FLC. To use this decoder, be sure that your demuxer sends the FLI file header to the decoder via the extradata chunk in AVCodecContext. The chunk should be 128 bytes large. The only exception is for FLI files from the game "Magic Carpet", in which the header is only 12 bytes.
Definition in file flicvideo.c.
#define CHECK_PIXEL_PTR | ( | n | ) |
if (pixel_ptr + n > pixel_limit) { \ av_log (s->avctx, AV_LOG_INFO, "Problem: pixel_ptr >= pixel_limit (%d >= %d)\n", \ pixel_ptr + n, pixel_limit); \ return -1; \ } \
Definition at line 62 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP(), and flic_decode_frame_8BPP().
#define FLC_DTA_TYPE_CODE (0xAF44) |
Definition at line 59 of file flicvideo.c.
#define FLC_FLX_TYPE_CODE (0xAF12) |
Definition at line 58 of file flicvideo.c.
Referenced by flic_decode_init().
#define FLC_MAGIC_CARPET_SYNTHETIC_TYPE_CODE (0xAF13) |
Definition at line 60 of file flicvideo.c.
Referenced by flic_decode_frame_8BPP().
#define FLI_256_COLOR 4 |
Definition at line 45 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP(), and flic_decode_frame_8BPP().
#define FLI_BLACK 13 |
Definition at line 49 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP(), and flic_decode_frame_8BPP().
#define FLI_BRUN 15 |
Definition at line 50 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP(), and flic_decode_frame_8BPP().
#define FLI_COLOR 11 |
Definition at line 47 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP(), and flic_decode_frame_8BPP().
#define FLI_COPY 16 |
Definition at line 51 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP(), and flic_decode_frame_8BPP().
#define FLI_DELTA 7 |
Definition at line 46 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP(), and flic_decode_frame_8BPP().
#define FLI_DTA_BRUN 25 |
Definition at line 53 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP().
#define FLI_DTA_COPY 26 |
Definition at line 54 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP().
#define FLI_DTA_LC 27 |
Definition at line 55 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP().
#define FLI_LC 12 |
Definition at line 48 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP(), and flic_decode_frame_8BPP().
#define FLI_MINI 18 |
Definition at line 52 of file flicvideo.c.
Referenced by flic_decode_frame_15_16BPP(), and flic_decode_frame_8BPP().
#define FLI_TYPE_CODE (0xAF11) |
Definition at line 57 of file flicvideo.c.
typedef struct FlicDecodeContext FlicDecodeContext |
static av_cold int flic_decode_end | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 735 of file flicvideo.c.
static int flic_decode_frame | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | data_size, | |||
AVPacket * | avpkt | |||
) | [static] |
Definition at line 706 of file flicvideo.c.
static int flic_decode_frame_15_16BPP | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | data_size, | |||
const uint8_t * | buf, | |||
int | buf_size | |||
) | [static] |
Definition at line 431 of file flicvideo.c.
Referenced by flic_decode_frame().
static int flic_decode_frame_24BPP | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | data_size, | |||
const uint8_t * | buf, | |||
int | buf_size | |||
) | [static] |
Definition at line 698 of file flicvideo.c.
Referenced by flic_decode_frame().
static int flic_decode_frame_8BPP | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | data_size, | |||
const uint8_t * | buf, | |||
int | buf_size | |||
) | [static] |
Definition at line 127 of file flicvideo.c.
Referenced by flic_decode_frame().
static av_cold int flic_decode_init | ( | AVCodecContext * | avctx | ) | [static] |
Definition at line 78 of file flicvideo.c.
{ "flic", AVMEDIA_TYPE_VIDEO, CODEC_ID_FLIC, sizeof(FlicDecodeContext), flic_decode_init, NULL, flic_decode_end, flic_decode_frame, CODEC_CAP_DR1, NULL, NULL, NULL, NULL, .long_name = NULL_IF_CONFIG_SMALL("Autodesk Animator Flic video"), }
Definition at line 745 of file flicvideo.c.