FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Functions | Variables
dxtory.c File Reference
#include <inttypes.h>
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "bytestream.h"
#include "get_bits.h"
#include "internal.h"
#include "unary.h"

Go to the source code of this file.

Macros

#define BITSTREAM_READER_LE
 

Typedefs

typedef int(* decode_slice_func )(GetBitContext *gb, AVFrame *frame, int line, int height, uint8_t lru[3][8])
 
typedef void(* setup_lru_func )(uint8_t lru[3][8])
 

Functions

static int dxtory_decode_v1_rgb (AVCodecContext *avctx, AVFrame *pic, const uint8_t *src, int src_size, int id, int bpp)
 
static int dxtory_decode_v1_410 (AVCodecContext *avctx, AVFrame *pic, const uint8_t *src, int src_size)
 
static int dxtory_decode_v1_420 (AVCodecContext *avctx, AVFrame *pic, const uint8_t *src, int src_size)
 
static int dxtory_decode_v1_444 (AVCodecContext *avctx, AVFrame *pic, const uint8_t *src, int src_size)
 
static uint8_t decode_sym (GetBitContext *gb, uint8_t lru[8])
 
static int check_slice_size (AVCodecContext *avctx, const uint8_t *src, int src_size, int slice_size, int off)
 
static int load_buffer (AVCodecContext *avctx, const uint8_t *src, int src_size, GetByteContext *gb, int *nslices, int *off)
 
static uint8_t decode_sym_565 (GetBitContext *gb, uint8_t lru[8], int bits)
 
static int dxtory_decode_v2 (AVCodecContext *avctx, AVFrame *pic, const uint8_t *src, int src_size, decode_slice_func decode_slice, setup_lru_func setup_lru, enum AVPixelFormat fmt)
 
static av_always_inline int dx2_decode_slice_5x5 (GetBitContext *gb, AVFrame *frame, int line, int left, uint8_t lru[3][8], int is_565)
 
static void setup_lru_555 (uint8_t lru[3][8])
 
static void setup_lru_565 (uint8_t lru[3][8])
 
static int dx2_decode_slice_555 (GetBitContext *gb, AVFrame *frame, int line, int left, uint8_t lru[3][8])
 
static int dx2_decode_slice_565 (GetBitContext *gb, AVFrame *frame, int line, int left, uint8_t lru[3][8])
 
static int dxtory_decode_v2_565 (AVCodecContext *avctx, AVFrame *pic, const uint8_t *src, int src_size, int is_565)
 
static int dx2_decode_slice_rgb (GetBitContext *gb, AVFrame *frame, int line, int left, uint8_t lru[3][8])
 
static void default_setup_lru (uint8_t lru[3][8])
 
static int dxtory_decode_v2_rgb (AVCodecContext *avctx, AVFrame *pic, const uint8_t *src, int src_size)
 
static int dx2_decode_slice_410 (GetBitContext *gb, AVFrame *frame, int line, int left, uint8_t lru[3][8])
 
static int dxtory_decode_v2_410 (AVCodecContext *avctx, AVFrame *pic, const uint8_t *src, int src_size)
 
static int dx2_decode_slice_420 (GetBitContext *gb, AVFrame *frame, int line, int left, uint8_t lru[3][8])
 
static int dxtory_decode_v2_420 (AVCodecContext *avctx, AVFrame *pic, const uint8_t *src, int src_size)
 
static int dx2_decode_slice_444 (GetBitContext *gb, AVFrame *frame, int line, int left, uint8_t lru[3][8])
 
static int dxtory_decode_v2_444 (AVCodecContext *avctx, AVFrame *pic, const uint8_t *src, int src_size)
 
static int decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
 

Variables

static const uint8_t def_lru [8] = { 0x00, 0x20, 0x40, 0x60, 0x80, 0xA0, 0xC0, 0xFF }
 
static const uint8_t def_lru_555 [8] = { 0x00, 0x08, 0x10, 0x18, 0x1F }
 
static const uint8_t def_lru_565 [8] = { 0x00, 0x08, 0x10, 0x20, 0x30, 0x3F }
 
AVCodec ff_dxtory_decoder
 

Macro Definition Documentation

#define BITSTREAM_READER_LE

Definition at line 28 of file dxtory.c.

Typedef Documentation

typedef int(* decode_slice_func)(GetBitContext *gb, AVFrame *frame, int line, int height, uint8_t lru[3][8])

Definition at line 264 of file dxtory.c.

typedef void(* setup_lru_func)(uint8_t lru[3][8])

Definition at line 267 of file dxtory.c.

Function Documentation

static int dxtory_decode_v1_rgb ( AVCodecContext avctx,
AVFrame pic,
const uint8_t src,
int  src_size,
int  id,
int  bpp 
)
static

Definition at line 35 of file dxtory.c.

Referenced by decode_frame().

static int dxtory_decode_v1_410 ( AVCodecContext avctx,
AVFrame pic,
const uint8_t src,
int  src_size 
)
static

Definition at line 62 of file dxtory.c.

Referenced by decode_frame().

static int dxtory_decode_v1_420 ( AVCodecContext avctx,
AVFrame pic,
const uint8_t src,
int  src_size 
)
static

Definition at line 105 of file dxtory.c.

Referenced by decode_frame().

static int dxtory_decode_v1_444 ( AVCodecContext avctx,
AVFrame pic,
const uint8_t src,
int  src_size 
)
static

Definition at line 142 of file dxtory.c.

Referenced by decode_frame().

static uint8_t decode_sym ( GetBitContext gb,
uint8_t  lru[8] 
)
inlinestatic
static int check_slice_size ( AVCodecContext avctx,
const uint8_t src,
int  src_size,
int  slice_size,
int  off 
)
static

Definition at line 196 of file dxtory.c.

Referenced by dxtory_decode_v2().

static int load_buffer ( AVCodecContext avctx,
const uint8_t src,
int  src_size,
GetByteContext gb,
int nslices,
int off 
)
static

Definition at line 224 of file dxtory.c.

Referenced by dxtory_decode_v2().

static uint8_t decode_sym_565 ( GetBitContext gb,
uint8_t  lru[8],
int  bits 
)
inlinestatic

Definition at line 246 of file dxtory.c.

Referenced by dx2_decode_slice_5x5().

static int dxtory_decode_v2 ( AVCodecContext avctx,
AVFrame pic,
const uint8_t src,
int  src_size,
decode_slice_func  decode_slice,
setup_lru_func  setup_lru,
enum AVPixelFormat  fmt 
)
static
static av_always_inline int dx2_decode_slice_5x5 ( GetBitContext gb,
AVFrame frame,
int  line,
int  left,
uint8_t  lru[3][8],
int  is_565 
)
static

Definition at line 319 of file dxtory.c.

Referenced by dx2_decode_slice_555(), and dx2_decode_slice_565().

static void setup_lru_555 ( uint8_t  lru[3][8])
static

Definition at line 345 of file dxtory.c.

Referenced by dxtory_decode_v2_565().

static void setup_lru_565 ( uint8_t  lru[3][8])
static

Definition at line 352 of file dxtory.c.

Referenced by dxtory_decode_v2_565().

static int dx2_decode_slice_555 ( GetBitContext gb,
AVFrame frame,
int  line,
int  left,
uint8_t  lru[3][8] 
)
static

Definition at line 359 of file dxtory.c.

Referenced by dxtory_decode_v2_565().

static int dx2_decode_slice_565 ( GetBitContext gb,
AVFrame frame,
int  line,
int  left,
uint8_t  lru[3][8] 
)
static

Definition at line 365 of file dxtory.c.

Referenced by dxtory_decode_v2_565().

static int dxtory_decode_v2_565 ( AVCodecContext avctx,
AVFrame pic,
const uint8_t src,
int  src_size,
int  is_565 
)
static

Definition at line 371 of file dxtory.c.

Referenced by decode_frame().

static int dx2_decode_slice_rgb ( GetBitContext gb,
AVFrame frame,
int  line,
int  left,
uint8_t  lru[3][8] 
)
static

Definition at line 387 of file dxtory.c.

Referenced by dxtory_decode_v2_rgb().

static void default_setup_lru ( uint8_t  lru[3][8])
static
static int dxtory_decode_v2_rgb ( AVCodecContext avctx,
AVFrame pic,
const uint8_t src,
int  src_size 
)
static

Definition at line 416 of file dxtory.c.

Referenced by decode_frame().

static int dx2_decode_slice_410 ( GetBitContext gb,
AVFrame frame,
int  line,
int  left,
uint8_t  lru[3][8] 
)
static

Definition at line 425 of file dxtory.c.

Referenced by dxtory_decode_v2_410().

static int dxtory_decode_v2_410 ( AVCodecContext avctx,
AVFrame pic,
const uint8_t src,
int  src_size 
)
static

Definition at line 458 of file dxtory.c.

Referenced by decode_frame().

static int dx2_decode_slice_420 ( GetBitContext gb,
AVFrame frame,
int  line,
int  left,
uint8_t  lru[3][8] 
)
static

Definition at line 467 of file dxtory.c.

Referenced by dxtory_decode_v2_420().

static int dxtory_decode_v2_420 ( AVCodecContext avctx,
AVFrame pic,
const uint8_t src,
int  src_size 
)
static

Definition at line 502 of file dxtory.c.

Referenced by decode_frame().

static int dx2_decode_slice_444 ( GetBitContext gb,
AVFrame frame,
int  line,
int  left,
uint8_t  lru[3][8] 
)
static

Definition at line 511 of file dxtory.c.

Referenced by dxtory_decode_v2_444().

static int dxtory_decode_v2_444 ( AVCodecContext avctx,
AVFrame pic,
const uint8_t src,
int  src_size 
)
static

Definition at line 542 of file dxtory.c.

Referenced by decode_frame().

static int decode_frame ( AVCodecContext avctx,
void data,
int got_frame,
AVPacket avpkt 
)
static

Definition at line 551 of file dxtory.c.

Variable Documentation

const uint8_t def_lru[8] = { 0x00, 0x20, 0x40, 0x60, 0x80, 0xA0, 0xC0, 0xFF }
static

Definition at line 175 of file dxtory.c.

Referenced by default_setup_lru(), setup_lru_555(), and setup_lru_565().

const uint8_t def_lru_555[8] = { 0x00, 0x08, 0x10, 0x18, 0x1F }
static

Definition at line 176 of file dxtory.c.

Referenced by setup_lru_555(), and setup_lru_565().

const uint8_t def_lru_565[8] = { 0x00, 0x08, 0x10, 0x20, 0x30, 0x3F }
static

Definition at line 177 of file dxtory.c.

Referenced by setup_lru_565().

AVCodec ff_dxtory_decoder
Initial value:
= {
.name = "dxtory",
.long_name = NULL_IF_CONFIG_SMALL("Dxtory"),
.decode = 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:179
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
Definition: avcodec.h:1002
static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
Definition: dxtory.c:551

Definition at line 620 of file dxtory.c.