FFmpeg  1.2.4
Data Structures | Macros | Typedefs | Functions | Variables
vp56.h File Reference

VP5 and VP6 compatible video decoder (common features) More...

#include "vp56data.h"
#include "dsputil.h"
#include "get_bits.h"
#include "bytestream.h"
#include "h264chroma.h"
#include "videodsp.h"
#include "vp3dsp.h"
#include "vp56dsp.h"

Go to the source code of this file.

Data Structures

struct  VP56mv
struct  VP56RangeCoder
struct  VP56RefDc
struct  VP56Macroblock
struct  VP56Model
struct  vp56_context

Macros

#define VP56_SIZE_CHANGE   1
#define vp56_rac_get_prob   vp56_rac_get_prob

Typedefs

typedef struct vp56_context VP56Context
typedef struct VP56mv VP56mv
typedef void(* VP56ParseVectorAdjustment )(VP56Context *s, VP56mv *vect)
typedef void(* VP56Filter )(VP56Context *s, uint8_t *dst, uint8_t *src, int offset1, int offset2, int stride, VP56mv mv, int mask, int select, int luma)
typedef void(* VP56ParseCoeff )(VP56Context *s)
typedef void(* VP56DefaultModelsInit )(VP56Context *s)
typedef void(* VP56ParseVectorModels )(VP56Context *s)
typedef int(* VP56ParseCoeffModels )(VP56Context *s)
typedef int(* VP56ParseHeader )(VP56Context *s, const uint8_t *buf, int buf_size)
typedef struct VP56RangeCoder VP56RangeCoder
typedef struct VP56RefDc VP56RefDc
typedef struct VP56Macroblock VP56Macroblock
typedef struct VP56Model VP56Model

Functions

void ff_vp56_init (AVCodecContext *avctx, int flip, int has_alpha)
void ff_vp56_init_context (AVCodecContext *avctx, VP56Context *s, int flip, int has_alpha)
int ff_vp56_free (AVCodecContext *avctx)
int ff_vp56_free_context (VP56Context *s)
void ff_vp56_init_dequant (VP56Context *s, int quantizer)
int ff_vp56_decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
void ff_vp56_init_range_decoder (VP56RangeCoder *c, const uint8_t *buf, int buf_size)
static av_always_inline
unsigned int 
vp56_rac_renorm (VP56RangeCoder *c)
static av_always_inline int vp56_rac_get_prob (VP56RangeCoder *c, uint8_t prob)
static av_always_inline int vp56_rac_get_prob_branchy (VP56RangeCoder *c, int prob)
static av_always_inline int vp56_rac_get (VP56RangeCoder *c)
static av_always_inline int vp8_rac_get (VP56RangeCoder *c)
static av_unused int vp56_rac_gets (VP56RangeCoder *c, int bits)
static av_unused int vp8_rac_get_uint (VP56RangeCoder *c, int bits)
static av_unused int vp8_rac_get_sint (VP56RangeCoder *c, int bits)
static av_unused int vp56_rac_gets_nn (VP56RangeCoder *c, int bits)
static av_unused int vp8_rac_get_nn (VP56RangeCoder *c)
static av_always_inline int vp56_rac_get_tree (VP56RangeCoder *c, const VP56Tree *tree, const uint8_t *probs)
static av_always_inline int vp8_rac_get_tree (VP56RangeCoder *c, const int8_t(*tree)[2], const uint8_t *probs)
static av_always_inline int vp8_rac_get_coeff (VP56RangeCoder *c, const uint8_t *prob)

Variables

const uint8_t ff_vp56_norm_shift [256]
 vp56 specific range coder implementation

Detailed Description

VP5 and VP6 compatible video decoder (common features)

Definition in file vp56.h.

Macro Definition Documentation

#define vp56_rac_get_prob   vp56_rac_get_prob
#define VP56_SIZE_CHANGE   1

Definition at line 45 of file vp56.h.

Referenced by ff_vp56_decode_frame(), vp5_parse_header(), and vp6_parse_header().

Typedef Documentation

typedef struct vp56_context VP56Context

Definition at line 38 of file vp56.h.

typedef void(* VP56DefaultModelsInit)(VP56Context *s)

Definition at line 53 of file vp56.h.

typedef void(* VP56Filter)(VP56Context *s, uint8_t *dst, uint8_t *src, int offset1, int offset2, int stride, VP56mv mv, int mask, int select, int luma)

Definition at line 49 of file vp56.h.

typedef struct VP56Model VP56Model
typedef struct VP56mv VP56mv
typedef void(* VP56ParseCoeff)(VP56Context *s)

Definition at line 52 of file vp56.h.

typedef int(* VP56ParseCoeffModels)(VP56Context *s)

Definition at line 55 of file vp56.h.

typedef int(* VP56ParseHeader)(VP56Context *s, const uint8_t *buf, int buf_size)

Definition at line 56 of file vp56.h.

typedef void(* VP56ParseVectorAdjustment)(VP56Context *s, VP56mv *vect)

Definition at line 47 of file vp56.h.

typedef void(* VP56ParseVectorModels)(VP56Context *s)

Definition at line 54 of file vp56.h.

typedef struct VP56RefDc VP56RefDc

Function Documentation

int ff_vp56_decode_frame ( AVCodecContext avctx,
void data,
int *  got_frame,
AVPacket avpkt 
)

Definition at line 498 of file vp56.c.

int ff_vp56_free ( AVCodecContext avctx)

Definition at line 747 of file vp56.c.

Referenced by vp6_decode_free().

int ff_vp56_free_context ( VP56Context s)

Definition at line 753 of file vp56.c.

Referenced by ff_vp56_free(), and vp6_decode_free().

void ff_vp56_init ( AVCodecContext avctx,
int  flip,
int  has_alpha 
)

Definition at line 694 of file vp56.c.

Referenced by vp5_decode_init(), and vp6_decode_init().

void ff_vp56_init_context ( AVCodecContext avctx,
VP56Context s,
int  flip,
int  has_alpha 
)

Definition at line 700 of file vp56.c.

Referenced by ff_vp56_init(), and vp6_decode_init().

void ff_vp56_init_dequant ( VP56Context s,
int  quantizer 
)

Definition at line 34 of file vp56.c.

Referenced by vp5_parse_header(), and vp6_parse_header().

void ff_vp56_init_range_decoder ( VP56RangeCoder c,
const uint8_t buf,
int  buf_size 
)
static av_always_inline int vp56_rac_get ( VP56RangeCoder c)
static
static av_always_inline int vp56_rac_get_prob ( VP56RangeCoder c,
uint8_t  prob 
)
static

Definition at line 228 of file vp56.h.

static av_always_inline int vp56_rac_get_prob_branchy ( VP56RangeCoder c,
int  prob 
)
static
static av_always_inline int vp56_rac_get_tree ( VP56RangeCoder c,
const VP56Tree tree,
const uint8_t probs 
)
static
static av_unused int vp56_rac_gets ( VP56RangeCoder c,
int  bits 
)
static
static av_unused int vp56_rac_gets_nn ( VP56RangeCoder c,
int  bits 
)
static
static av_always_inline unsigned int vp56_rac_renorm ( VP56RangeCoder c)
static

Definition at line 203 of file vp56.h.

Referenced by vp56_rac_get(), vp56_rac_get_prob(), and vp56_rac_get_prob_branchy().

static av_always_inline int vp8_rac_get ( VP56RangeCoder c)
static
static av_always_inline int vp8_rac_get_coeff ( VP56RangeCoder c,
const uint8_t prob 
)
static

Definition at line 366 of file vp56.h.

Referenced by decode_block_coeffs_internal().

static av_unused int vp8_rac_get_nn ( VP56RangeCoder c)
static

Definition at line 331 of file vp56.h.

Referenced by decode_frame_header().

static av_unused int vp8_rac_get_sint ( VP56RangeCoder c,
int  bits 
)
static

Definition at line 309 of file vp56.h.

Referenced by get_quants(), and parse_segment_info().

static av_always_inline int vp8_rac_get_tree ( VP56RangeCoder c,
const int8_t(*)  tree[2],
const uint8_t probs 
)
static

Definition at line 353 of file vp56.h.

Referenced by decode_intra4x4_modes(), and decode_mb_mode().

static av_unused int vp8_rac_get_uint ( VP56RangeCoder c,
int  bits 
)
static

Variable Documentation

const uint8_t ff_vp56_norm_shift[256]

vp56 specific range coder implementation

Definition at line 25 of file vp56rac.c.

Referenced by vp56_rac_renorm().