| FFmpeg
    | 
#include <vp8.h>
| Data Fields | |
| VP8ThreadData * | thread_data | 
| AVCodecContext * | avctx | 
| VP8Frame * | framep [4] | 
| VP8Frame * | next_framep [4] | 
| VP8Frame * | curframe | 
| VP8Frame * | prev_frame | 
| uint16_t | mb_width | 
| uint16_t | mb_height | 
| int | linesize | 
| int | uvlinesize | 
| uint8_t | keyframe | 
| uint8_t | deblock_filter | 
| uint8_t | mbskip_enabled | 
| uint8_t | profile | 
| VP8intmv | mv_min | 
| VP8intmv | mv_max | 
| int8_t | sign_bias [4] | 
| one state [0, 1] per ref frame type  More... | |
| int | ref_count [3] | 
| struct { | |
| uint8_t enabled | |
| uint8_t absolute_vals | |
| uint8_t update_map | |
| int8_t base_quant [4] | |
| int8_t filter_level [4] | |
| base loop filter level  More... | |
| } | segmentation | 
| Base parameters for segmentation, i.e.  More... | |
| struct { | |
| uint8_t simple | |
| uint8_t level | |
| uint8_t sharpness | |
| } | filter | 
| VP8Macroblock * | macroblocks | 
| uint8_t * | intra4x4_pred_mode_top | 
| uint8_t | intra4x4_pred_mode_left [4] | 
| struct { | |
| int16_t luma_qmul [2] | |
| int16_t luma_dc_qmul [2] | |
| luma dc-only block quant  More... | |
| int16_t chroma_qmul [2] | |
| } | qmat [4] | 
| Macroblocks can have one of 4 different quants in a frame when segmentation is enabled.  More... | |
| struct { | |
| uint8_t enabled | |
| whether each mb can have a different strength based on mode/ref  More... | |
| int8_t mode [VP8_MVMODE_SPLIT+1] | |
| filter strength adjustment for the following macroblock modes: [0-3] - i16x16 (always zero) [4] - i4x4 [5] - zero mv [6] - inter modes except for zero or split mv [7] - split mv i16x16 modes never have any adjustment  More... | |
| int8_t ref [4] | |
| filter strength adjustment for macroblocks that reference: [0] - intra / VP56_FRAME_CURRENT [1] - VP56_FRAME_PREVIOUS [2] - VP56_FRAME_GOLDEN [3] - altref / VP56_FRAME_GOLDEN2  More... | |
| } | lf_delta | 
| uint8_t(* | top_border )[16+8+8] | 
| uint8_t(* | top_nnz )[9] | 
| VP56RangeCoder | c | 
| header context, includes mb modes and motion vectors  More... | |
| struct { | |
| uint8_t segmentid [3] | |
| uint8_t mbskip | |
| uint8_t intra | |
| uint8_t last | |
| uint8_t golden | |
| uint8_t pred16x16 [4] | |
| uint8_t pred8x8c [3] | |
| uint8_t token [4][16][3][NUM_DCT_TOKENS-1] | |
| uint8_t mvc [2][19] | |
| uint8_t scan [16] | |
| } | prob [2] | 
| These are all of the updatable probabilities for binary decisions.  More... | |
| VP8Macroblock * | macroblocks_base | 
| int | invisible | 
| int | update_last | 
| update VP56_FRAME_PREVIOUS with the current one  More... | |
| int | update_golden | 
| VP56_FRAME_NONE if not updated, or which frame to copy if so.  More... | |
| int | update_altref | 
| int | update_probabilities | 
| If this flag is not set, all the probability updates are discarded after this frame is decoded.  More... | |
| int | num_coeff_partitions | 
| All coefficients are contained in separate arith coding contexts.  More... | |
| VP56RangeCoder | coeff_partition [8] | 
| VideoDSPContext | vdsp | 
| VP8DSPContext | vp8dsp | 
| H264PredContext | hpc | 
| vp8_mc_func | put_pixels_tab [3][3][3] | 
| VP8Frame | frames [5] | 
| uint8_t | colorspace | 
| 0 is the only value allowed (meaning bt601)  More... | |
| uint8_t | fullrange | 
| whether we can skip clamping in dsp functions  More... | |
| int | num_jobs | 
| int | mb_layout | 
| This describes the macroblock memory layout.  More... | |
| void(* | decode_mb_row_no_filter )(AVCodecContext *avctx, void *tdata, int jobnr, int threadnr) | 
| void(* | filter_mb_row )(AVCodecContext *avctx, void *tdata, int jobnr, int threadnr) | 
| int | vp7 | 
| int | fade_present | 
| Fade bit present in bitstream (VP7)  More... | |
| uint16_t | inter_dc_pred [2][2] | 
| Interframe DC prediction (VP7) [0] VP56_FRAME_PREVIOUS [1] VP56_FRAME_GOLDEN.  More... | |
| uint8_t | feature_enabled [4] | 
| Macroblock features (VP7)  More... | |
| uint8_t | feature_present_prob [4] | 
| uint8_t | feature_index_prob [4][3] | 
| uint8_t | feature_value [4][4] | 
| VP8ThreadData* VP8Context::thread_data | 
Definition at line 137 of file vp8.h.
Referenced by decode_mb_row_no_filter(), filter_mb_row(), free_buffers(), update_dimensions(), vp78_decode_frame(), and vp78_decode_mb_row_sliced().
| AVCodecContext* VP8Context::avctx | 
Definition at line 138 of file vp8.h.
Referenced by decode_mb_mode(), update_dimensions(), vp78_decode_init(), vp7_decode_frame_header(), vp7_fade_frame(), vp8_alloc_frame(), vp8_decode_frame_header(), vp8_find_free_buffer(), and vp8_release_frame().
| VP8Frame* VP8Context::framep[4] | 
Definition at line 139 of file vp8.h.
Referenced by inter_predict(), prefetch_motion(), vp78_decode_frame(), vp7_fade_frame(), vp8_decode_flush_impl(), and vp8_find_free_buffer().
| VP8Frame* VP8Context::next_framep[4] | 
Definition at line 140 of file vp8.h.
Referenced by vp78_decode_frame().
| VP8Frame* VP8Context::curframe | 
Definition at line 141 of file vp8.h.
Referenced by decode_mb_row_no_filter(), filter_mb_row(), vp78_decode_frame(), and vp78_decode_mb_row_sliced().
| VP8Frame* VP8Context::prev_frame | 
Definition at line 142 of file vp8.h.
Referenced by decode_mb_row_no_filter(), and vp78_decode_frame().
| uint16_t VP8Context::mb_width | 
Definition at line 144 of file vp8.h.
Referenced by decode_intra4x4_modes(), decode_mb_row_no_filter(), decode_splitmvs(), filter_mb_row(), inter_predict(), intra_predict(), update_dimensions(), vp78_decode_frame(), vp78_decode_mv_mb_modes(), vp7_decode_frame_header(), vp7_decode_mvs(), vp7_fade_frame(), vp8_alloc_frame(), vp8_decode_frame_header(), and vp8_decode_mvs().
| uint16_t VP8Context::mb_height | 
Definition at line 145 of file vp8.h.
Referenced by decode_mb_row_no_filter(), filter_mb_row(), inter_predict(), update_dimensions(), vp78_decode_frame(), vp78_decode_mb_row_sliced(), vp78_decode_mv_mb_modes(), vp7_decode_frame_header(), vp7_decode_mvs(), vp7_fade_frame(), vp8_alloc_frame(), and vp8_decode_frame_header().
| int VP8Context::linesize | 
Definition at line 146 of file vp8.h.
Referenced by decode_mb_row_no_filter(), filter_mb(), filter_mb_row(), filter_mb_simple(), idct_mb(), inter_predict(), intra_predict(), prefetch_motion(), vp78_decode_frame(), and vp8_mc_part().
| int VP8Context::uvlinesize | 
Definition at line 147 of file vp8.h.
Referenced by decode_mb_row_no_filter(), filter_mb(), filter_mb_row(), idct_mb(), inter_predict(), intra_predict(), prefetch_motion(), vp78_decode_frame(), and vp8_mc_part().
| uint8_t VP8Context::keyframe | 
Definition at line 149 of file vp8.h.
Referenced by decode_mb_mode(), filter_mb(), vp78_decode_frame(), vp7_decode_frame_header(), vp7_fade_frame(), and vp8_decode_frame_header().
| uint8_t VP8Context::deblock_filter | 
Definition at line 150 of file vp8.h.
Referenced by decode_mb_row_no_filter(), intra_predict(), vp78_decode_frame(), and vp78_decode_mb_row_sliced().
| uint8_t VP8Context::mbskip_enabled | 
Definition at line 151 of file vp8.h.
Referenced by decode_mb_mode(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| uint8_t VP8Context::profile | 
Definition at line 152 of file vp8.h.
Referenced by inter_predict(), vp7_decode_frame_header(), vp7_decode_mvs(), vp8_decode_frame_header(), and vp8_mc_part().
| VP8intmv VP8Context::mv_min | 
Definition at line 153 of file vp8.h.
Referenced by clamp_mv(), decode_mb_row_no_filter(), vp78_decode_frame(), vp78_decode_mb_row_sliced(), and vp78_decode_mv_mb_modes().
| VP8intmv VP8Context::mv_max | 
Definition at line 154 of file vp8.h.
Referenced by clamp_mv(), decode_mb_row_no_filter(), vp78_decode_frame(), vp78_decode_mb_row_sliced(), and vp78_decode_mv_mb_modes().
| int8_t VP8Context::sign_bias[4] | 
one state [0, 1] per ref frame type
Definition at line 156 of file vp8.h.
Referenced by vp7_decode_frame_header(), vp8_decode_frame_header(), and vp8_decode_mvs().
| int VP8Context::ref_count[3] | 
Definition at line 157 of file vp8.h.
Referenced by decode_mb_mode(), prefetch_motion(), and vp78_decode_frame().
| uint8_t VP8Context::enabled | 
whether each mb can have a different strength based on mode/ref
Definition at line 165 of file vp8.h.
Referenced by decode_mb_mode(), decode_mb_row_no_filter(), filter_level_for_mb(), vp78_decode_frame(), vp7_decode_frame_header(), vp8_decode_frame_header(), and vp8_get_quants().
| uint8_t VP8Context::absolute_vals | 
Definition at line 166 of file vp8.h.
Referenced by filter_level_for_mb(), parse_segment_info(), and vp8_get_quants().
| uint8_t VP8Context::update_map | 
Definition at line 167 of file vp8.h.
Referenced by decode_mb_mode(), decode_mb_row_no_filter(), parse_segment_info(), vp78_decode_frame(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| int8_t VP8Context::base_quant[4] | 
Definition at line 168 of file vp8.h.
Referenced by parse_segment_info(), and vp8_get_quants().
| int8_t VP8Context::filter_level[4] | 
base loop filter level
Definition at line 169 of file vp8.h.
Referenced by filter_level_for_mb(), and parse_segment_info().
| struct { ... } VP8Context::segmentation | 
Base parameters for segmentation, i.e.
per-macroblock parameters. These must be kept unchanged even if segmentation is not used for a frame, since the values persist between interframes.
Referenced by decode_mb_mode(), decode_mb_row_no_filter(), filter_level_for_mb(), parse_segment_info(), vp78_decode_frame(), vp7_decode_frame_header(), vp8_decode_frame_header(), and vp8_get_quants().
| uint8_t VP8Context::simple | 
Definition at line 173 of file vp8.h.
Referenced by decode_mb_row_no_filter(), filter_mb_row(), intra_predict(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| uint8_t VP8Context::level | 
Definition at line 174 of file vp8.h.
Referenced by filter_level_for_mb(), vp78_decode_frame(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| uint8_t VP8Context::sharpness | 
Definition at line 175 of file vp8.h.
Referenced by filter_level_for_mb(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| struct { ... } VP8Context::filter | 
| VP8Macroblock* VP8Context::macroblocks | 
Definition at line 178 of file vp8.h.
Referenced by decode_mb_row_no_filter(), filter_mb_row(), free_buffers(), update_dimensions(), vp78_decode_frame(), and vp7_decode_mvs().
| uint8_t* VP8Context::intra4x4_pred_mode_top | 
Definition at line 180 of file vp8.h.
Referenced by decode_intra4x4_modes(), decode_mb_mode(), free_buffers(), update_dimensions(), and vp78_decode_frame().
| uint8_t VP8Context::intra4x4_pred_mode_left[4] | 
Definition at line 181 of file vp8.h.
Referenced by decode_intra4x4_modes(), decode_mb_mode(), decode_mb_row_no_filter(), and vp78_decode_mv_mb_modes().
| int16_t VP8Context::luma_qmul[2] | 
Definition at line 190 of file vp8.h.
Referenced by decode_mb_coeffs(), vp7_get_quants(), and vp8_get_quants().
| int16_t VP8Context::luma_dc_qmul[2] | 
luma dc-only block quant
Definition at line 191 of file vp8.h.
Referenced by decode_mb_coeffs(), vp7_get_quants(), and vp8_get_quants().
| int16_t VP8Context::chroma_qmul[2] | 
Definition at line 192 of file vp8.h.
Referenced by decode_mb_coeffs(), vp7_get_quants(), and vp8_get_quants().
| struct { ... } VP8Context::qmat[4] | 
Macroblocks can have one of 4 different quants in a frame when segmentation is enabled.
If segmentation is disabled, only the first segment's values are used.
Referenced by decode_mb_coeffs(), vp7_get_quants(), and vp8_get_quants().
| int8_t VP8Context::mode[VP8_MVMODE_SPLIT+1] | 
filter strength adjustment for the following macroblock modes: [0-3] - i16x16 (always zero) [4] - i4x4 [5] - zero mv [6] - inter modes except for zero or split mv [7] - split mv i16x16 modes never have any adjustment
Definition at line 207 of file vp8.h.
Referenced by filter_level_for_mb(), and update_lf_deltas().
| int8_t VP8Context::ref[4] | 
filter strength adjustment for macroblocks that reference: [0] - intra / VP56_FRAME_CURRENT [1] - VP56_FRAME_PREVIOUS [2] - VP56_FRAME_GOLDEN [3] - altref / VP56_FRAME_GOLDEN2
Definition at line 216 of file vp8.h.
Referenced by filter_level_for_mb(), and update_lf_deltas().
| struct { ... } VP8Context::lf_delta | 
Referenced by filter_level_for_mb(), update_lf_deltas(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| uint8_t(* VP8Context::top_border)[16+8+8] | 
Definition at line 219 of file vp8.h.
Referenced by decode_mb_row_no_filter(), filter_mb_row(), free_buffers(), intra_predict(), and update_dimensions().
| uint8_t(* VP8Context::top_nnz)[9] | 
Definition at line 220 of file vp8.h.
Referenced by decode_mb_row_no_filter(), free_buffers(), update_dimensions(), and vp78_decode_frame().
| VP56RangeCoder VP8Context::c | 
header context, includes mb modes and motion vectors
Definition at line 222 of file vp8.h.
Referenced by decode_mb_mode(), parse_segment_info(), ref_to_update(), setup_partitions(), update_lf_deltas(), update_refs(), vp78_update_pred16x16_pred8x8_mvc_probabilities(), vp78_update_probability_tables(), vp7_decode_frame_header(), vp7_decode_mvs(), vp7_get_quants(), vp8_decode_frame_header(), vp8_decode_mvs(), and vp8_get_quants().
| uint8_t VP8Context::segmentid[3] | 
Definition at line 231 of file vp8.h.
Referenced by decode_mb_mode(), and parse_segment_info().
| uint8_t VP8Context::mbskip | 
Definition at line 232 of file vp8.h.
Referenced by decode_mb_mode(), and vp8_decode_frame_header().
| uint8_t VP8Context::intra | 
Definition at line 233 of file vp8.h.
Referenced by decode_mb_mode(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| uint8_t VP8Context::last | 
Definition at line 234 of file vp8.h.
Referenced by decode_mb_mode(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| uint8_t VP8Context::golden | 
Definition at line 235 of file vp8.h.
Referenced by decode_mb_mode(), and vp8_decode_frame_header().
| uint8_t VP8Context::pred16x16[4] | 
Definition at line 236 of file vp8.h.
Referenced by decode_mb_mode(), vp78_update_pred16x16_pred8x8_mvc_probabilities(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| uint8_t VP8Context::pred8x8c[3] | 
Definition at line 237 of file vp8.h.
Referenced by decode_mb_mode(), vp78_update_pred16x16_pred8x8_mvc_probabilities(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| uint8_t VP8Context::token[4][16][3][NUM_DCT_TOKENS-1] | 
Definition at line 238 of file vp8.h.
Referenced by decode_mb_coeffs(), vp78_reset_probability_tables(), and vp78_update_probability_tables().
| uint8_t VP8Context::mvc[2][19] | 
Definition at line 239 of file vp8.h.
Referenced by decode_splitmvs(), vp78_update_pred16x16_pred8x8_mvc_probabilities(), vp7_decode_frame_header(), vp7_decode_mvs(), vp8_decode_frame_header(), and vp8_decode_mvs().
| uint8_t VP8Context::scan[16] | 
Definition at line 240 of file vp8.h.
Referenced by decode_mb_coeffs(), vp78_decode_init(), and vp7_decode_frame_header().
| struct { ... } VP8Context::prob[2] | 
These are all of the updatable probabilities for binary decisions.
They are only implicitly reset on keyframes, making it quite likely for an interframe to desync if a prior frame's header was corrupt or missing outright!
Referenced by decode_mb_coeffs(), decode_mb_mode(), decode_splitmvs(), parse_segment_info(), vp78_decode_frame(), vp78_decode_init(), vp78_reset_probability_tables(), vp78_update_pred16x16_pred8x8_mvc_probabilities(), vp78_update_probability_tables(), vp7_decode_frame_header(), vp7_decode_mvs(), vp8_decode_frame_header(), and vp8_decode_mvs().
| VP8Macroblock* VP8Context::macroblocks_base | 
Definition at line 243 of file vp8.h.
Referenced by decode_mb_row_no_filter(), filter_mb_row(), free_buffers(), update_dimensions(), vp78_decode_mv_mb_modes(), vp7_decode_frame_header(), vp7_decode_mvs(), and vp8_decode_frame_header().
| int VP8Context::invisible | 
Definition at line 244 of file vp8.h.
Referenced by vp78_decode_frame(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| int VP8Context::update_last | 
update VP56_FRAME_PREVIOUS with the current one
Definition at line 245 of file vp8.h.
Referenced by vp78_decode_frame(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| int VP8Context::update_golden | 
VP56_FRAME_NONE if not updated, or which frame to copy if so.
Definition at line 246 of file vp8.h.
Referenced by update_refs(), vp78_decode_frame(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| int VP8Context::update_altref | 
Definition at line 247 of file vp8.h.
Referenced by update_refs(), vp78_decode_frame(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| int VP8Context::update_probabilities | 
If this flag is not set, all the probability updates are discarded after this frame is decoded.
Definition at line 253 of file vp8.h.
Referenced by vp78_decode_frame(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| int VP8Context::num_coeff_partitions | 
All coefficients are contained in separate arith coding contexts.
There can be 1, 2, 4, or 8 of these after the header context.
Definition at line 259 of file vp8.h.
Referenced by decode_mb_row_no_filter(), setup_partitions(), vp78_decode_frame(), and vp7_decode_frame_header().
| VP56RangeCoder VP8Context::coeff_partition[8] | 
Definition at line 260 of file vp8.h.
Referenced by decode_mb_row_no_filter(), setup_partitions(), and vp7_decode_frame_header().
| VideoDSPContext VP8Context::vdsp | 
Definition at line 261 of file vp8.h.
Referenced by decode_mb_row_no_filter(), prefetch_motion(), vp78_decode_init(), vp8_mc_chroma(), and vp8_mc_luma().
| VP8DSPContext VP8Context::vp8dsp | 
Definition at line 262 of file vp8.h.
Referenced by decode_mb_coeffs(), filter_mb(), filter_mb_simple(), idct_mb(), intra_predict(), vp78_decode_init(), vp7_decode_frame_header(), and vp8_decode_frame_header().
| H264PredContext VP8Context::hpc | 
Definition at line 263 of file vp8.h.
Referenced by intra_predict(), and vp78_decode_init().
| vp8_mc_func VP8Context::put_pixels_tab[3][3][3] | 
Definition at line 264 of file vp8.h.
Referenced by inter_predict(), vp7_decode_frame_header(), vp8_decode_frame_header(), and vp8_mc_part().
| VP8Frame VP8Context::frames[5] | 
Definition at line 265 of file vp8.h.
Referenced by ff_vp8_decode_free(), vp78_decode_frame(), vp8_decode_flush_impl(), vp8_find_free_buffer(), and vp8_init_frames().
| uint8_t VP8Context::colorspace | 
0 is the only value allowed (meaning bt601)
Definition at line 267 of file vp8.h.
Referenced by vp78_decode_frame(), and vp8_decode_frame_header().
| uint8_t VP8Context::fullrange | 
whether we can skip clamping in dsp functions
Definition at line 268 of file vp8.h.
Referenced by vp78_decode_frame(), and vp8_decode_frame_header().
| int VP8Context::num_jobs | 
Definition at line 270 of file vp8.h.
Referenced by decode_mb_row_no_filter(), filter_mb_row(), vp78_decode_frame(), and vp78_decode_mb_row_sliced().
| int VP8Context::mb_layout | 
This describes the macroblock memory layout.
0 -> Only width+height*2+1 macroblocks allocated (frame/single thread). 1 -> Macroblocks for entire frame allocated (sliced thread).
Definition at line 276 of file vp8.h.
Referenced by decode_mb_mode(), decode_mb_row_no_filter(), filter_mb_row(), update_dimensions(), vp78_decode_frame(), and vp7_decode_mvs().
| void(* VP8Context::decode_mb_row_no_filter)(AVCodecContext *avctx, void *tdata, int jobnr, int threadnr) | 
Definition at line 278 of file vp8.h.
Referenced by vp78_decode_init(), and vp78_decode_mb_row_sliced().
| void(* VP8Context::filter_mb_row)(AVCodecContext *avctx, void *tdata, int jobnr, int threadnr) | 
Definition at line 279 of file vp8.h.
Referenced by vp78_decode_init(), and vp78_decode_mb_row_sliced().
| int VP8Context::vp7 | 
Definition at line 281 of file vp8.h.
Referenced by vp78_decode_init().
| int VP8Context::fade_present | 
Fade bit present in bitstream (VP7)
Definition at line 286 of file vp8.h.
Referenced by vp7_decode_frame_header().
| uint16_t VP8Context::inter_dc_pred[2][2] | 
Interframe DC prediction (VP7) [0] VP56_FRAME_PREVIOUS [1] VP56_FRAME_GOLDEN.
Definition at line 293 of file vp8.h.
Referenced by decode_mb_coeffs(), and vp7_decode_frame_header().
| uint8_t VP8Context::feature_enabled[4] | 
Macroblock features (VP7)
Definition at line 298 of file vp8.h.
Referenced by decode_mb_mode(), and vp7_decode_frame_header().
| uint8_t VP8Context::feature_present_prob[4] | 
Definition at line 299 of file vp8.h.
Referenced by decode_mb_mode(), and vp7_decode_frame_header().
| uint8_t VP8Context::feature_index_prob[4][3] | 
Definition at line 300 of file vp8.h.
Referenced by decode_mb_mode(), and vp7_decode_frame_header().
| uint8_t VP8Context::feature_value[4][4] | 
Definition at line 301 of file vp8.h.
Referenced by decode_mb_mode(), and vp7_decode_frame_header().
 1.8.6
 1.8.6