FFmpeg
Classes | Macros | Typedefs | Variables
flicvideo.c File Reference

Autodesk Animator FLI/FLC Video Decoder by Mike Melanson (melan.nosp@m.son@.nosp@m.pcisy.nosp@m.s.ne.nosp@m.t) 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"
#include "bytestream.h"
#include "internal.h"
#include "mathops.h"

Classes

struct  FlicDecodeContext
 

Macros

#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) /* Marks an "Extended FLC" comes from Dave's Targa Animator (DTA) */
 
#define FLC_MAGIC_CARPET_SYNTHETIC_TYPE_CODE   (0xAF13)
 
#define CHECK_PIXEL_PTR(n)
 

Typedefs

typedef struct FlicDecodeContext FlicDecodeContext
 

Variables

AVCodec ff_flic_decoder
 

Detailed Description

Autodesk Animator FLI/FLC Video Decoder by Mike Melanson (melan.nosp@m.son@.nosp@m.pcisy.nosp@m.s.ne.nosp@m.t) 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/BGR24. 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.

Macro Definition Documentation

§ CHECK_PIXEL_PTR

#define CHECK_PIXEL_PTR (   n)
Value:
if (pixel_ptr + n > pixel_limit) { \
av_log (s->avctx, AV_LOG_ERROR, "Invalid pixel_ptr = %d > pixel_limit = %d\n", \
pixel_ptr + n, pixel_limit); \
} \
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
Definition: error.h:59
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
Definition: log.h:176

Variable Documentation

§ ff_flic_decoder

AVCodec ff_flic_decoder
Initial value:
= {
.name = "flic",
.long_name = NULL_IF_CONFIG_SMALL("Autodesk Animator Flic video"),
.type = AVMEDIA_TYPE_VIDEO,
.id = AV_CODEC_ID_FLIC,
.priv_data_size = sizeof(FlicDecodeContext),
.init = flic_decode_init,
.close = flic_decode_end,
.decode = flic_decode_frame,
.capabilities = AV_CODEC_CAP_DR1,
}
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
Definition: flicvideo.c:71
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
Definition: avcodec.h:959