FFmpeg  4.0
Data Fields
VP8Context Struct Reference

#include <libavcodec/vp8.h>

Data Fields

VP8ThreadDatathread_data
 
AVCodecContextavctx
 
enum AVPixelFormat pix_fmt
 
int actually_webp
 
VP8Frameframep [4]
 
VP8Framenext_framep [4]
 
VP8Framecurframe
 
VP8Frameprev_frame
 
uint16_t mb_width
 
uint16_t mb_height
 
ptrdiff_t linesize
 
ptrdiff_t uvlinesize
 
uint8_t keyframe
 
uint8_t deblock_filter
 
uint8_t mbskip_enabled
 
uint8_t profile
 
VP8mvbounds mv_bounds
 
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
 
   uint8_t   update_feature_data
 
   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
 
VP8Macroblockmacroblocks
 
uint8_tintra4x4_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 {
   int   yac_qi
 
   int   ydc_delta
 
   int   y2dc_delta
 
   int   y2ac_delta
 
   int   uvdc_delta
 
   int   uvac_delta
 
quant
 
struct {
   uint8_t   enabled
 whether each mb can have a different strength based on mode/ref More...
 
   uint8_t   update
 
   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 {
   const uint8_t *   input
 
   uint32_t   range
 
   uint32_t   value
 
   int   bit_count
 
coder_state_at_header_end
 
int header_partition_size
 
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...
 
VP8Macroblockmacroblocks_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]
 
int coeff_partition_size [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...
 
int(* 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]
 

Detailed Description

Definition at line 147 of file vp8.h.

Field Documentation

◆ thread_data

VP8ThreadData* VP8Context::thread_data

◆ avctx

AVCodecContext* VP8Context::avctx

◆ pix_fmt

enum AVPixelFormat VP8Context::pix_fmt

Definition at line 150 of file vp8.h.

Referenced by ff_vp8_decode_init(), update_dimensions(), vp78_decode_frame(), and vp78_decode_init().

◆ actually_webp

int VP8Context::actually_webp

Definition at line 151 of file vp8.h.

Referenced by update_dimensions(), vp78_decode_frame(), and vp8_lossy_decode_frame().

◆ framep

VP8Frame* VP8Context::framep[4]

◆ next_framep

VP8Frame* VP8Context::next_framep[4]

Definition at line 154 of file vp8.h.

Referenced by vp78_decode_frame().

◆ curframe

VP8Frame* VP8Context::curframe

◆ prev_frame

VP8Frame* VP8Context::prev_frame

Definition at line 156 of file vp8.h.

Referenced by decode_mb_row_no_filter(), and vp78_decode_frame().

◆ mb_width

uint16_t VP8Context::mb_width

◆ mb_height

uint16_t VP8Context::mb_height

◆ linesize

ptrdiff_t VP8Context::linesize

◆ uvlinesize

ptrdiff_t VP8Context::uvlinesize

◆ keyframe

uint8_t VP8Context::keyframe

◆ deblock_filter

uint8_t VP8Context::deblock_filter

◆ mbskip_enabled

uint8_t VP8Context::mbskip_enabled

◆ profile

uint8_t VP8Context::profile

◆ mv_bounds

VP8mvbounds VP8Context::mv_bounds

Definition at line 167 of file vp8.h.

Referenced by vp78_decode_frame(), and vp78_decode_mv_mb_modes().

◆ sign_bias

int8_t VP8Context::sign_bias[4]

one state [0, 1] per ref frame type

Definition at line 169 of file vp8.h.

Referenced by ff_vp8_decode_init(), vaapi_vp8_start_frame(), vp7_decode_frame_header(), vp8_decode_frame_header(), and vp8_decode_mvs().

◆ ref_count

int VP8Context::ref_count[3]

Definition at line 170 of file vp8.h.

Referenced by decode_mb_mode(), prefetch_motion(), and vp78_decode_frame().

◆ enabled

uint8_t VP8Context::enabled

◆ absolute_vals

uint8_t VP8Context::absolute_vals

◆ update_map

uint8_t VP8Context::update_map

◆ update_feature_data

uint8_t VP8Context::update_feature_data

Definition at line 181 of file vp8.h.

Referenced by nvdec_vp8_start_frame(), parse_segment_info(), and vaapi_vp8_start_frame().

◆ base_quant

int8_t VP8Context::base_quant[4]

Definition at line 182 of file vp8.h.

Referenced by parse_segment_info(), vaapi_vp8_start_frame(), and vp8_get_quants().

◆ filter_level

int8_t VP8Context::filter_level[4]

base loop filter level

Definition at line 183 of file vp8.h.

Referenced by filter_level_for_mb(), parse_segment_info(), and vaapi_vp8_start_frame().

◆ segmentation

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(), ff_vp8_decode_init(), filter_level_for_mb(), nvdec_vp8_start_frame(), parse_segment_info(), vaapi_vp8_start_frame(), vp78_decode_frame(), vp7_decode_frame_header(), vp8_decode_frame_header(), and vp8_get_quants().

◆ simple

uint8_t VP8Context::simple

◆ level

uint8_t VP8Context::level

◆ sharpness

uint8_t VP8Context::sharpness

◆ filter

struct { ... } VP8Context::filter

◆ macroblocks

VP8Macroblock* VP8Context::macroblocks

◆ intra4x4_pred_mode_top

uint8_t* VP8Context::intra4x4_pred_mode_top

◆ intra4x4_pred_mode_left

uint8_t VP8Context::intra4x4_pred_mode_left[4]

◆ luma_qmul

int16_t VP8Context::luma_qmul[2]

Definition at line 204 of file vp8.h.

Referenced by decode_mb_coeffs(), vp7_get_quants(), and vp8_get_quants().

◆ luma_dc_qmul

int16_t VP8Context::luma_dc_qmul[2]

luma dc-only block quant

Definition at line 205 of file vp8.h.

Referenced by decode_mb_coeffs(), vp7_get_quants(), and vp8_get_quants().

◆ chroma_qmul

int16_t VP8Context::chroma_qmul[2]

Definition at line 206 of file vp8.h.

Referenced by decode_mb_coeffs(), vp7_get_quants(), and vp8_get_quants().

◆ qmat

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

◆ yac_qi

int VP8Context::yac_qi

Definition at line 211 of file vp8.h.

Referenced by vaapi_vp8_start_frame(), and vp8_get_quants().

◆ ydc_delta

int VP8Context::ydc_delta

Definition at line 212 of file vp8.h.

Referenced by vaapi_vp8_start_frame(), and vp8_get_quants().

◆ y2dc_delta

int VP8Context::y2dc_delta

Definition at line 213 of file vp8.h.

Referenced by vaapi_vp8_start_frame(), and vp8_get_quants().

◆ y2ac_delta

int VP8Context::y2ac_delta

Definition at line 214 of file vp8.h.

Referenced by vaapi_vp8_start_frame(), and vp8_get_quants().

◆ uvdc_delta

int VP8Context::uvdc_delta

Definition at line 215 of file vp8.h.

Referenced by vaapi_vp8_start_frame(), and vp8_get_quants().

◆ uvac_delta

int VP8Context::uvac_delta

Definition at line 216 of file vp8.h.

Referenced by vaapi_vp8_start_frame(), and vp8_get_quants().

◆ quant

struct { ... } VP8Context::quant

◆ update

uint8_t VP8Context::update

Definition at line 221 of file vp8.h.

Referenced by vaapi_vp8_start_frame(), and vp8_decode_frame_header().

◆ mode

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 232 of file vp8.h.

Referenced by filter_level_for_mb(), update_lf_deltas(), and vaapi_vp8_start_frame().

◆ ref

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 241 of file vp8.h.

Referenced by filter_level_for_mb(), update_lf_deltas(), and vaapi_vp8_start_frame().

◆ lf_delta

struct { ... } VP8Context::lf_delta

◆ top_border

uint8_t(* VP8Context::top_border)[16+8+8]

◆ top_nnz

uint8_t(* VP8Context::top_nnz)[9]

Definition at line 245 of file vp8.h.

Referenced by decode_mb_row_no_filter(), free_buffers(), update_dimensions(), and vp78_decode_frame().

◆ c

VP56RangeCoder VP8Context::c

◆ input

const uint8_t* VP8Context::input

Definition at line 255 of file vp8.h.

Referenced by vaapi_vp8_decode_slice(), and vp8_decode_frame_header().

◆ range

uint32_t VP8Context::range

Definition at line 256 of file vp8.h.

Referenced by vaapi_vp8_start_frame(), and vp8_decode_frame_header().

◆ value

uint32_t VP8Context::value

Definition at line 257 of file vp8.h.

Referenced by vaapi_vp8_start_frame(), and vp8_decode_frame_header().

◆ bit_count

int VP8Context::bit_count

Definition at line 258 of file vp8.h.

Referenced by vaapi_vp8_decode_slice(), vaapi_vp8_start_frame(), and vp8_decode_frame_header().

◆ coder_state_at_header_end

struct { ... } VP8Context::coder_state_at_header_end

◆ header_partition_size

int VP8Context::header_partition_size

Definition at line 261 of file vp8.h.

Referenced by nvdec_vp8_start_frame(), vaapi_vp8_decode_slice(), and vp8_decode_frame_header().

◆ segmentid

uint8_t VP8Context::segmentid[3]

Definition at line 270 of file vp8.h.

Referenced by decode_mb_mode(), parse_segment_info(), and vaapi_vp8_start_frame().

◆ mbskip

uint8_t VP8Context::mbskip

Definition at line 271 of file vp8.h.

Referenced by decode_mb_mode(), vaapi_vp8_start_frame(), and vp8_decode_frame_header().

◆ intra

uint8_t VP8Context::intra

◆ last

uint8_t VP8Context::last

◆ golden

uint8_t VP8Context::golden

Definition at line 274 of file vp8.h.

Referenced by decode_mb_mode(), vaapi_vp8_start_frame(), and vp8_decode_frame_header().

◆ pred16x16

uint8_t VP8Context::pred16x16[4]

◆ pred8x8c

uint8_t VP8Context::pred8x8c[3]

◆ token

uint8_t VP8Context::token[4][16][3][NUM_DCT_TOKENS - 1]

◆ mvc

uint8_t VP8Context::mvc[2][19]

◆ scan

uint8_t VP8Context::scan[16]

Definition at line 279 of file vp8.h.

Referenced by decode_mb_coeffs(), vp78_decode_init(), and vp7_decode_frame_header().

◆ prob

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(), ff_vp8_decode_init(), parse_segment_info(), vaapi_vp8_start_frame(), 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().

◆ macroblocks_base

VP8Macroblock* VP8Context::macroblocks_base

◆ invisible

int VP8Context::invisible

◆ update_last

int VP8Context::update_last

update VP56_FRAME_PREVIOUS with the current one

Definition at line 284 of file vp8.h.

Referenced by vp78_decode_frame(), vp7_decode_frame_header(), and vp8_decode_frame_header().

◆ update_golden

int VP8Context::update_golden

VP56_FRAME_NONE if not updated, or which frame to copy if so.

Definition at line 285 of file vp8.h.

Referenced by update_refs(), vp78_decode_frame(), vp7_decode_frame_header(), and vp8_decode_frame_header().

◆ update_altref

int VP8Context::update_altref

◆ update_probabilities

int VP8Context::update_probabilities

If this flag is not set, all the probability updates are discarded after this frame is decoded.

Definition at line 292 of file vp8.h.

Referenced by vp78_decode_frame(), vp7_decode_frame_header(), and vp8_decode_frame_header().

◆ num_coeff_partitions

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 298 of file vp8.h.

Referenced by decode_mb_row_no_filter(), setup_partitions(), vaapi_vp8_decode_slice(), vp78_decode_frame(), and vp7_decode_frame_header().

◆ coeff_partition

VP56RangeCoder VP8Context::coeff_partition[8]

Definition at line 299 of file vp8.h.

Referenced by decode_mb_row_no_filter(), setup_partitions(), and vp7_decode_frame_header().

◆ coeff_partition_size

int VP8Context::coeff_partition_size[8]

Definition at line 300 of file vp8.h.

Referenced by setup_partitions(), and vaapi_vp8_decode_slice().

◆ vdsp

VideoDSPContext VP8Context::vdsp

◆ vp8dsp

VP8DSPContext VP8Context::vp8dsp

◆ hpc

H264PredContext VP8Context::hpc

Definition at line 303 of file vp8.h.

Referenced by intra_predict(), and vp78_decode_init().

◆ put_pixels_tab

vp8_mc_func VP8Context::put_pixels_tab[3][3][3]

◆ frames

VP8Frame VP8Context::frames[5]

◆ colorspace

uint8_t VP8Context::colorspace

0 is the only value allowed (meaning bt601)

Definition at line 307 of file vp8.h.

Referenced by vp78_decode_frame(), and vp8_decode_frame_header().

◆ fullrange

uint8_t VP8Context::fullrange

whether we can skip clamping in dsp functions

Definition at line 308 of file vp8.h.

Referenced by vp78_decode_frame(), and vp8_decode_frame_header().

◆ num_jobs

int VP8Context::num_jobs

◆ mb_layout

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

◆ decode_mb_row_no_filter

int(* VP8Context::decode_mb_row_no_filter) (AVCodecContext *avctx, void *tdata, int jobnr, int threadnr)

Definition at line 318 of file vp8.h.

Referenced by vp78_decode_init(), and vp78_decode_mb_row_sliced().

◆ filter_mb_row

void(* VP8Context::filter_mb_row) (AVCodecContext *avctx, void *tdata, int jobnr, int threadnr)

Definition at line 319 of file vp8.h.

Referenced by vp78_decode_init(), and vp78_decode_mb_row_sliced().

◆ vp7

int VP8Context::vp7

Definition at line 321 of file vp8.h.

Referenced by vp78_decode_init().

◆ fade_present

int VP8Context::fade_present

Fade bit present in bitstream (VP7)

Definition at line 326 of file vp8.h.

Referenced by vp7_decode_frame_header().

◆ inter_dc_pred

uint16_t VP8Context::inter_dc_pred[2][2]

Interframe DC prediction (VP7) [0] VP56_FRAME_PREVIOUS [1] VP56_FRAME_GOLDEN.

Definition at line 333 of file vp8.h.

Referenced by decode_mb_coeffs(), and vp7_decode_frame_header().

◆ feature_enabled

uint8_t VP8Context::feature_enabled[4]

Macroblock features (VP7)

Definition at line 338 of file vp8.h.

Referenced by decode_mb_mode(), and vp7_decode_frame_header().

◆ feature_present_prob

uint8_t VP8Context::feature_present_prob[4]

Definition at line 339 of file vp8.h.

Referenced by decode_mb_mode(), and vp7_decode_frame_header().

◆ feature_index_prob

uint8_t VP8Context::feature_index_prob[4][3]

Definition at line 340 of file vp8.h.

Referenced by decode_mb_mode(), and vp7_decode_frame_header().

◆ feature_value

uint8_t VP8Context::feature_value[4][4]

Definition at line 341 of file vp8.h.

Referenced by decode_mb_mode(), and vp7_decode_frame_header().


The documentation for this struct was generated from the following file: