#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   | |
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 vp56_rac_get_prob vp56_rac_get_prob | 
Definition at line 211 of file vp56.h.
Referenced by decode_block_coeffs_internal(), decode_mb_mode(), decode_splitmvs(), read_mv_component(), vp56_parse_mb_type(), vp56_parse_mb_type_models(), vp56_rac_get_tree(), vp5_parse_coeff(), vp5_parse_coeff_models(), vp5_parse_vector_adjustment(), vp5_parse_vector_models(), vp6_parse_coeff(), vp6_parse_coeff_models(), vp6_parse_vector_adjustment(), vp6_parse_vector_models(), vp8_rac_get(), vp8_rac_get_coeff(), and vp8_rac_get_tree_with_offset().
| typedef struct vp56_context VP56Context | 
| typedef void(* VP56DefaultModelsInit)(VP56Context *s) | 
| 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 int(* VP56ParseCoeffModels)(VP56Context *s) | 
| typedef int(* VP56ParseHeader)(VP56Context *s, const uint8_t *buf, int buf_size, int *golden_frame) | 
| typedef void(* VP56ParseVectorAdjustment)(VP56Context *s, VP56mv *vect) | 
| typedef void(* VP56ParseVectorModels)(VP56Context *s) | 
| int ff_vp56_decode_frame | ( | AVCodecContext * | avctx, | |
| void * | data, | |||
| int * | data_size, | |||
| AVPacket * | avpkt | |||
| ) | 
| int ff_vp56_free | ( | AVCodecContext * | avctx | ) | 
| void ff_vp56_init | ( | AVCodecContext * | avctx, | |
| int | flip, | |||
| int | has_alpha | |||
| ) | 
| void ff_vp56_init_dequant | ( | VP56Context * | s, | |
| int | quantizer | |||
| ) | 
| void ff_vp56_init_range_decoder | ( | VP56RangeCoder * | c, | |
| const uint8_t * | buf, | |||
| int | buf_size | |||
| ) | 
Definition at line 40 of file vp56rac.c.
Referenced by decode_frame_header(), setup_partitions(), vp5_parse_header(), and vp6_parse_header().
| static av_always_inline int vp56_rac_get | ( | VP56RangeCoder * | c | ) |  [static] | 
        
Definition at line 246 of file vp56.h.
Referenced by vp56_parse_mb_type_models(), vp56_rac_gets(), vp5_parse_coeff(), vp5_parse_header(), vp6_parse_coeff(), vp6_parse_coeff_models(), and vp6_parse_header().
| static av_always_inline int vp56_rac_get_prob | ( | VP56RangeCoder * | c, | |
| uint8_t | prob | |||
| ) |  [static] | 
        
| static av_always_inline int vp56_rac_get_prob_branchy | ( | VP56RangeCoder * | c, | |
| int | prob | |||
| ) |  [static] | 
        
Definition at line 228 of file vp56.h.
Referenced by decode_block_coeffs(), decode_block_coeffs_internal(), decode_frame_header(), decode_mb_mode(), decode_mvs(), decode_splitmvs(), and read_mv_component().
| static av_always_inline int vp56_rac_get_tree | ( | VP56RangeCoder * | c, | |
| const VP56Tree * | tree, | |||
| const uint8_t * | probs | |||
| ) |  [static] | 
        
Definition at line 322 of file vp56.h.
Referenced by vp56_parse_mb_type(), vp56_parse_mb_type_models(), vp5_parse_coeff(), vp5_parse_vector_adjustment(), vp6_parse_coeff(), and vp6_parse_vector_adjustment().
| static av_unused int vp56_rac_gets | ( | VP56RangeCoder * | c, | |
| int | bits | |||
| ) |  [static] | 
        
Definition at line 270 of file vp56.h.
Referenced by vp56_decode_4mv(), vp56_parse_mb_type_models(), vp56_rac_gets_nn(), vp5_parse_header(), vp6_parse_coeff_models(), and vp6_parse_header().
| static av_unused int vp56_rac_gets_nn | ( | VP56RangeCoder * | c, | |
| int | bits | |||
| ) |  [static] | 
        
Definition at line 309 of file vp56.h.
Referenced by vp5_parse_coeff_models(), vp5_parse_vector_models(), vp6_parse_coeff_models(), and vp6_parse_vector_models().
| 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] | 
        
Definition at line 265 of file vp56.h.
Referenced by decode_block_coeffs_internal(), decode_frame_header(), parse_segment_info(), update_refs(), vp8_rac_get_sint(), and vp8_rac_get_uint().
| static av_always_inline int vp8_rac_get_coeff | ( | VP56RangeCoder * | c, | |
| const uint8_t * | prob | |||
| ) |  [static] | 
        
| static av_unused int vp8_rac_get_nn | ( | VP56RangeCoder * | c | ) |  [static] | 
        
| 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] | 
        
| 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] | 
        
Definition at line 281 of file vp56.h.
Referenced by decode_frame_header(), get_quants(), parse_segment_info(), ref_to_update(), setup_partitions(), vp8_rac_get_nn(), and vp8_rac_get_sint().
| 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().
 1.5.8