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