libavcodec/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 "cabac.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

Defines

#define vp56_rac_get_prob   vp56_rac_get_prob

Typedefs

typedef struct vp56_context VP56Context
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)

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 *data_size, 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.
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).

Copyright (C) 2006 Aurelien Jacobs <aurel@gnuage.org>

This file is part of FFmpeg.

FFmpeg is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

FFmpeg is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with FFmpeg; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Definition in file vp56.h.


Define Documentation

#define vp56_rac_get_prob   vp56_rac_get_prob


Typedef Documentation

typedef struct vp56_context VP56Context

Definition at line 34 of file vp56.h.

typedef void(* VP56DefaultModelsInit)(VP56Context *s)

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

typedef void(* VP56ParseCoeff)(VP56Context *s)

Definition at line 46 of file vp56.h.

typedef int(* VP56ParseCoeffModels)(VP56Context *s)

Definition at line 49 of file vp56.h.

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

Definition at line 50 of file vp56.h.

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

Definition at line 41 of file vp56.h.

typedef void(* VP56ParseVectorModels)(VP56Context *s)

Definition at line 48 of file vp56.h.


Function Documentation

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

Definition at line 487 of file vp56.c.

int ff_vp56_free ( AVCodecContext avctx  ) 

Definition at line 700 of file vp56.c.

Referenced by vp6_decode_free().

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

Definition at line 659 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 31 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 212 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 187 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 361 of file vp56.h.

Referenced by decode_block_coeffs_internal().

static av_unused int vp8_rac_get_nn ( VP56RangeCoder c  )  [static]

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

Referenced by get_quants(), parse_segment_info(), and update_lf_deltas().

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

Definition at line 354 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 341 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().


Generated on Fri Oct 26 02:39:47 2012 for FFmpeg by  doxygen 1.5.8