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 "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, int *golden_frame)
 
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)
 
int ff_vp56_free (AVCodecContext *avctx)
 
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_with_offset (VP56RangeCoder *c, const int8_t(*tree)[2], const uint8_t *probs, int i)
 This is identical to vp8_rac_get_tree except for the possibility of starting on a node other than the root node, needed for coeff decode where this is used to save a bit after a 0 token (by disallowing EOB to immediately follow.) More...
 
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 More...
 

Detailed Description

VP5 and VP6 compatible video decoder (common features)

Definition in file vp56.h.

Macro Definition Documentation

#define VP56_SIZE_CHANGE   1

Definition at line 44 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 37 of file vp56.h.

typedef void(* VP56DefaultModelsInit)(VP56Context *s)

Definition at line 52 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 48 of file vp56.h.

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

Definition at line 51 of file vp56.h.

typedef int(* VP56ParseCoeffModels)(VP56Context *s)

Definition at line 54 of file vp56.h.

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

Definition at line 55 of file vp56.h.

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

Definition at line 46 of file vp56.h.

typedef void(* VP56ParseVectorModels)(VP56Context *s)

Definition at line 53 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 490 of file vp56.c.

int ff_vp56_free ( AVCodecContext avctx)

Definition at line 708 of file vp56.c.

Referenced by vp6_decode_free().

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

Definition at line 668 of file vp56.c.

Referenced by vp5_decode_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_prob ( VP56RangeCoder c,
uint8_t  prob 
)
static

Definition at line 219 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 194 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_coeff ( VP56RangeCoder c,
const uint8_t prob 
)
static

Definition at line 368 of file vp56.h.

Referenced by decode_block_coeffs_internal().

static av_unused int vp8_rac_get_nn ( VP56RangeCoder c)
static

Definition at line 322 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 300 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 361 of file vp56.h.

Referenced by decode_intra4x4_modes(), and decode_mb_mode().

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

This is identical to vp8_rac_get_tree except for the possibility of starting on a node other than the root node, needed for coeff decode where this is used to save a bit after a 0 token (by disallowing EOB to immediately follow.)

Definition at line 348 of file vp56.h.

Referenced by vp8_rac_get_tree().

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().