H264Context Struct Reference

H264Context. More...

#include <h264.h>


Data Fields

MpegEncContext s
H264DSPContext h264dsp
int chroma_qp [2]
int qp_thresh
 QP threshold to skip loopfilter.
int prev_mb_skipped
int next_mb_skipped
int chroma_pred_mode
int intra16x16_pred_mode
int topleft_mb_xy
int top_mb_xy
int topright_mb_xy
int left_mb_xy [2]
int topleft_type
int top_type
int topright_type
int left_type [2]
const uint8_t * left_block
int topleft_partition
int8_t intra4x4_pred_mode_cache [5 *8]
int8_t * intra4x4_pred_mode
H264PredContext hpc
unsigned int topleft_samples_available
unsigned int top_samples_available
unsigned int topright_samples_available
unsigned int left_samples_available
uint8_t(*[2] top_borders )[16+2 *8]
uint8_t non_zero_count_cache [6 *8]
 non zero coeff count cache.
uint8_t(* non_zero_count )[32]
int16_t mv_cache [2][5 *8][2]
 Motion vector cache.
int8_t ref_cache [2][5 *8]
int mv_cache_clean [2]
 is 1 if the specific list MV&references are set to 0,0,-2.
int neighbor_transform_size
 number of neighbors (top and/or left) that used 8x8 dct
int block_offset [2 *(16+8)]
 block_offset[ 0.
uint32_t * mb2b_xy
uint32_t * mb2br_xy
int b_stride
int mb_linesize
 may be equal to s->linesize or s->linesize*2, for mbaff
int mb_uvlinesize
int emu_edge_width
int emu_edge_height
SPS sps
 current sps
PPS pps
 current pps
uint32_t dequant4_buffer [6][52][16]
uint32_t dequant8_buffer [2][52][64]
uint32_t(*[6] dequant4_coeff )[16]
uint32_t(*[2] dequant8_coeff )[64]
int slice_num
uint16_t * slice_table
 slice_table_base + 2*mb_stride + 1
int slice_type
int slice_type_nos
 S free slice type (SI/SP are remapped to I/P).
int slice_type_fixed
int mb_aff_frame
int mb_field_decoding_flag
int mb_mbaff
 mb_aff_frame && mb_field_decoding_flag
uint16_t sub_mb_type [4]
int use_weight
int use_weight_chroma
int luma_log2_weight_denom
int chroma_log2_weight_denom
int luma_weight [48][2][2]
int chroma_weight [48][2][2][2]
int implicit_weight [48][48][2]
int direct_spatial_mv_pred
int col_parity
int col_fieldoff
int dist_scale_factor [16]
int dist_scale_factor_field [2][32]
int map_col_to_list0 [2][16+32]
int map_col_to_list0_field [2][2][16+32]
unsigned int ref_count [2]
 num_ref_idx_l0/1_active_minus1 + 1
unsigned int list_count
uint8_t * list_counts
 Array of list_count per MB specifying the slice type.
Picture ref_list [2][48]
 0.
int ref2frm [MAX_SLICES][2][64]
 reference to frame number lists, used in the loop filter, the first 2 are for -2,-1
GetBitContext intra_gb
GetBitContext inter_gb
GetBitContextintra_gb_ptr
GetBitContextinter_gb_ptr
DCTELEM mb [16 *24]
DCTELEM mb_padding [256]
 as mb is addressed by scantable[i] and scantable is uint8_t we can either check that i is not too large or ensure that there is some unused stuff after mb
CABACContext cabac
 Cabac.
uint8_t cabac_state [460]
uint16_t * cbp_table
int cbp
int top_cbp
int left_cbp
uint8_t * chroma_pred_mode_table
int last_qscale_diff
uint8_t(*[2] mvd_table )[2]
uint8_t mvd_cache [2][5 *8][2]
uint8_t * direct_table
uint8_t direct_cache [5 *8]
uint8_t zigzag_scan [16]
uint8_t zigzag_scan8x8 [64]
uint8_t zigzag_scan8x8_cavlc [64]
uint8_t field_scan [16]
uint8_t field_scan8x8 [64]
uint8_t field_scan8x8_cavlc [64]
const uint8_t * zigzag_scan_q0
const uint8_t * zigzag_scan8x8_q0
const uint8_t * zigzag_scan8x8_cavlc_q0
const uint8_t * field_scan_q0
const uint8_t * field_scan8x8_q0
const uint8_t * field_scan8x8_cavlc_q0
int x264_build
int mb_xy
int is_complex
int deblocking_filter
 disable_deblocking_filter_idc with 1<->0
int slice_alpha_c0_offset
int slice_beta_offset
int nal_ref_idc
int nal_unit_type
uint8_t * rbsp_buffer [2]
unsigned int rbsp_buffer_size [2]
int is_avc
 Used to parse AVC variant of h264.
int nal_length_size
 Number of bytes used for nal length (1, 2 or 4).
SPSsps_buffers [MAX_SPS_COUNT]
PPSpps_buffers [MAX_PPS_COUNT]
int dequant_coeff_pps
 reinit tables when pps changes
uint16_t * slice_table_base
int poc_lsb
int poc_msb
int delta_poc_bottom
int delta_poc [2]
int frame_num
int prev_poc_msb
 poc_msb of the last reference pic for POC type 0
int prev_poc_lsb
 poc_lsb of the last reference pic for POC type 0
int frame_num_offset
 for POC type 2
int prev_frame_num_offset
 for POC type 2
int prev_frame_num
 frame_num of the last pic for POC type 1/2
int curr_pic_num
 frame_num for frames or 2*frame_num+1 for field pics.
int max_pic_num
 max_frame_num or 2*max_frame_num for field pics.
int redundant_pic_count
Pictureshort_ref [32]
Picturelong_ref [32]
Picture default_ref_list [2][32]
 base reference list for all slices of a coded picture
Picturedelayed_pic [MAX_DELAYED_PIC_COUNT+2]
int outputed_poc
MMCO mmco [MAX_MMCO_COUNT]
 memory management control operations buffer.
int mmco_index
int long_ref_count
 number of actual long term references
int short_ref_count
 number of actual short term references
int cabac_init_idc
struct H264Contextthread_context [MAX_THREADS]
int current_slice
 current slice number, used to initalize slice_num of each thread/context
int max_contexts
 Max number of threads / contexts.
int single_decode_warning
 1 if the single thread fallback warning has already been displayed, 0 otherwise.
int last_slice_type
SEI_PicStructType sei_pic_struct
 pic_struct in picture timing SEI message
int prev_interlaced_frame
 Complement sei_pic_struct SEI_PIC_STRUCT_TOP_BOTTOM and SEI_PIC_STRUCT_BOTTOM_TOP indicate interlaced frames.
int sei_ct_type
 Bit set of clock types for fields/frames in picture timing SEI message.
int sei_dpb_output_delay
 dpb_output_delay in picture timing SEI message, see H.264 C.2.2
int sei_cpb_removal_delay
 cpb_removal_delay in picture timing SEI message, see H.264 C.1.2
int sei_recovery_frame_cnt
 recovery_frame_cnt from SEI message
int luma_weight_flag [2]
 7.4.3.2 luma_weight_lX_flag
int chroma_weight_flag [2]
 7.4.3.2 chroma_weight_lX_flag
int sei_buffering_period_present
 Buffering period SEI flag.
int initial_cpb_removal_delay [32]
 Initial timestamps for CPBs.
int halfpel_flag
int thirdpel_flag
int unknown_svq3_flag
int next_slice_index
uint32_t svq3_watermark_key


Detailed Description

H264Context.

Definition at line 264 of file h264.h.


Field Documentation

int H264Context::block_offset[2 *(16+8)]

block_offset[ 0.

.23] for frame macroblocks block_offset[24..47] for field macroblocks

Definition at line 336 of file h264.h.

Referenced by clone_slice(), ff_h264_frame_start(), and hl_decode_mb_internal().

int H264Context::chroma_weight[48][2][2][2]

7.4.3.2 chroma_weight_lX_flag

Definition at line 585 of file h264.h.

Referenced by decode_slice_header(), fill_slice_long(), fill_vaapi_plain_pred_weight_table(), implicit_weight_table(), and pred_weight_table().

frame_num for frames or 2*frame_num+1 for field pics.

Definition at line 491 of file h264.h.

Referenced by decode_slice_header(), ff_h264_decode_ref_pic_list_reordering(), and ff_h264_decode_ref_pic_marking().

disable_deblocking_filter_idc with 1<->0

Definition at line 450 of file h264.h.

Referenced by decode_slice(), decode_slice_header(), fill_filter_caches(), fill_slice_long(), hl_decode_mb_internal(), loop_filter(), and xchg_mb_border().

base reference list for all slices of a coded picture

Definition at line 502 of file h264.h.

Referenced by clone_slice(), ff_h264_decode_ref_pic_list_reordering(), and ff_h264_fill_default_ref_list().

Picture* H264Context::delayed_pic[MAX_DELAYED_PIC_COUNT+2]

Definition at line 503 of file h264.h.

Referenced by decode_frame(), flush_dpb(), and unreference_pic().

Definition at line 480 of file h264.h.

Referenced by decode_slice_header(), and init_poc().

Definition at line 479 of file h264.h.

Referenced by decode_slice_header(), and init_poc().

uint32_t H264Context::dequant4_buffer[6][52][16]

Definition at line 355 of file h264.h.

Referenced by init_dequant4_coeff_table().

uint32_t(*[6] H264Context::dequant4_coeff)[16]

uint32_t H264Context::dequant8_buffer[2][52][64]

Definition at line 356 of file h264.h.

Referenced by init_dequant8_coeff_table().

uint32_t(*[2] H264Context::dequant8_coeff)[64]

reinit tables when pps changes

Definition at line 471 of file h264.h.

Referenced by common_init(), decode_slice_header(), and ff_h264_decode_picture_parameter_set().

Definition at line 428 of file h264.h.

Referenced by decode_cabac_mb_ref(), ff_h264_decode_mb_cabac(), and fill_decode_caches().

Definition at line 386 of file h264.h.

Referenced by ff_h264_direct_dist_scale_factor(), and pred_temp_direct_motion().

Definition at line 387 of file h264.h.

Referenced by ff_h264_direct_dist_scale_factor(), and pred_temp_direct_motion().

Definition at line 346 of file h264.h.

Referenced by decode_slice_header(), and mc_dir_part().

Definition at line 345 of file h264.h.

Referenced by decode_slice_header(), and mc_dir_part().

Definition at line 433 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), ff_h264_decode_mb_cavlc(), and init_scan_tables().

Definition at line 434 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), and init_scan_tables().

Definition at line 435 of file h264.h.

Referenced by ff_h264_decode_mb_cavlc(), and init_scan_tables().

Definition at line 441 of file h264.h.

Referenced by ff_h264_decode_mb_cavlc(), and init_scan_tables().

Definition at line 440 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), and init_scan_tables().

Definition at line 439 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), ff_h264_decode_mb_cavlc(), and init_scan_tables().

for POC type 2

Definition at line 484 of file h264.h.

Referenced by field_end(), init_poc(), svq3_decode_frame(), and svq3_mc_dir().

Definition at line 592 of file h264.h.

Referenced by svq3_decode_frame(), svq3_decode_init(), and svq3_decode_mb().

Definition at line 293 of file h264.h.

Referenced by clone_tables(), common_init(), and hl_decode_mb_internal().

Definition at line 381 of file h264.h.

Referenced by implicit_weight_table(), mc_part(), and mc_part_weighted().

Initial timestamps for CPBs.

Definition at line 589 of file h264.h.

Referenced by decode_buffering_period().

Definition at line 404 of file h264.h.

Referenced by decode_nal_units().

Definition at line 406 of file h264.h.

Referenced by decode_nal_units(), and ff_h264_decode_mb_cavlc().

Definition at line 403 of file h264.h.

Referenced by decode_nal_units().

Definition at line 405 of file h264.h.

Referenced by decode_nal_units(), and ff_h264_decode_mb_cavlc().

Used to parse AVC variant of h264.

this flag is != 0 if codec is avc1

Definition at line 465 of file h264.h.

Referenced by decode_nal_units(), and ff_h264_decode_init().

Definition at line 447 of file h264.h.

Referenced by decode_slice(), ff_h264_hl_decode_mb(), and svq3_decode_init().

Definition at line 424 of file h264.h.

Referenced by decode_slice_header(), and ff_h264_decode_mb_cabac().

const uint8_t* H264Context::left_block

Definition at line 288 of file h264.h.

Referenced by fill_decode_caches(), and fill_decode_neighbors().

Array of list_count per MB specifying the slice type.

Definition at line 396 of file h264.h.

Referenced by clone_tables(), ff_h264_alloc_tables(), free_tables(), hl_decode_mb_internal(), and loop_filter().

int H264Context::luma_weight[48][2][2]

7.4.3.2 luma_weight_lX_flag

Definition at line 584 of file h264.h.

Referenced by decode_slice_header(), fill_slice_long(), fill_vaapi_plain_pred_weight_table(), implicit_weight_table(), and pred_weight_table().

Definition at line 388 of file h264.h.

Referenced by ff_h264_direct_ref_list_init(), and pred_temp_direct_motion().

Definition at line 389 of file h264.h.

Referenced by ff_h264_direct_ref_list_init(), and pred_temp_direct_motion().

max_frame_num or 2*max_frame_num for field pics.

Definition at line 496 of file h264.h.

Referenced by decode_slice_header(), ff_h264_decode_ref_pic_list_reordering(), and ff_h264_decode_ref_pic_marking().

Definition at line 367 of file h264.h.

Referenced by decode_slice_header().

may be equal to s->linesize or s->linesize*2, for mbaff

Definition at line 342 of file h264.h.

Referenced by hl_decode_mb_internal(), hl_motion(), loop_filter(), mc_dir_part(), mc_part_weighted(), and prefetch_motion().

mb_aff_frame && mb_field_decoding_flag

Definition at line 369 of file h264.h.

Referenced by decode_slice_header(), ff_h264_decode_mb_cabac(), ff_h264_decode_mb_cavlc(), loop_filter(), and predict_field_decoding_flag().

as mb is addressed by scantable[i] and scantable is uint8_t we can either check that i is not too large or ensure that there is some unused stuff after mb

Definition at line 409 of file h264.h.

MMCO H264Context::mmco[MAX_MMCO_COUNT]

memory management control operations buffer.

Definition at line 509 of file h264.h.

Referenced by ff_h264_decode_ref_pic_marking(), ff_h264_execute_ref_pic_marking(), and field_end().

Definition at line 510 of file h264.h.

Referenced by ff_h264_decode_ref_pic_marking(), and field_end().

int16_t H264Context::mv_cache[2][5 *8][2]

is 1 if the specific list MV&references are set to 0,0,-2.

Definition at line 325 of file h264.h.

Referenced by fill_decode_caches().

uint8_t H264Context::mvd_cache[2][5 *8][2]

Definition at line 426 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), fill_decode_caches(), and write_back_motion().

uint8_t(*[2] H264Context::mvd_table)[2]

Number of bytes used for nal length (1, 2 or 4).

Definition at line 466 of file h264.h.

Referenced by decode_nal_units(), and ff_h264_decode_init().

number of neighbors (top and/or left) that used 8x8 dct

Definition at line 330 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), and fill_decode_caches().

Definition at line 272 of file h264.h.

Referenced by ff_h264_decode_mb_cabac().

Definition at line 595 of file h264.h.

Referenced by svq3_decode_frame(), and svq3_decode_slice_header().

Definition at line 504 of file h264.h.

Referenced by decode_frame(), ff_h264_decode_init(), and flush_dpb().

Definition at line 477 of file h264.h.

Referenced by decode_slice_header(), ff_h264_execute_ref_pic_marking(), field_end(), and init_poc().

Definition at line 478 of file h264.h.

Referenced by ff_h264_execute_ref_pic_marking(), field_end(), and init_poc().

PPS* H264Context::pps_buffers[MAX_PPS_COUNT]

frame_num of the last pic for POC type 1/2

Definition at line 486 of file h264.h.

Referenced by clone_slice(), decode_slice_header(), field_end(), idr(), init_poc(), and svq3_decode_frame().

for POC type 2

Definition at line 485 of file h264.h.

Referenced by clone_slice(), field_end(), idr(), init_poc(), svq3_decode_frame(), and svq3_mc_dir().

Complement sei_pic_struct SEI_PIC_STRUCT_TOP_BOTTOM and SEI_PIC_STRUCT_BOTTOM_TOP indicate interlaced frames.

However, soft telecined frames may have these values. This is used in an attempt to flag soft telecine progressive.

Definition at line 556 of file h264.h.

Referenced by decode_frame(), decode_slice_header(), and flush_dpb().

Definition at line 271 of file h264.h.

Referenced by decode_mb_skip(), ff_h264_decode_mb_cabac(), and ff_h264_decode_mb_cavlc().

poc_lsb of the last reference pic for POC type 0

Definition at line 483 of file h264.h.

Referenced by clone_slice(), field_end(), idr(), and init_poc().

poc_msb of the last reference pic for POC type 0

Definition at line 482 of file h264.h.

Referenced by clone_slice(), ff_h264_decode_init(), field_end(), idr(), and init_poc().

QP threshold to skip loopfilter.

Definition at line 269 of file h264.h.

Referenced by decode_slice_header(), ff_h264_filter_mb_fast(), and fill_filter_caches().

Definition at line 459 of file h264.h.

Referenced by ff_h264_decode_nal(), and free_tables().

Definition at line 460 of file h264.h.

Referenced by ff_h264_decode_nal(), and free_tables().

Definition at line 498 of file h264.h.

Referenced by decode_nal_units(), decode_slice_header(), and fill_slice_long().

int H264Context::ref2frm[MAX_SLICES][2][64]

reference to frame number lists, used in the loop filter, the first 2 are for -2,-1

Definition at line 400 of file h264.h.

Referenced by decode_slice_header(), and fill_filter_caches().

int8_t H264Context::ref_cache[2][5 *8]

unsigned int H264Context::ref_count[2]

Definition at line 265 of file h264.h.

Referenced by backup_mb_border(), clone_slice(), clone_tables(), close(), commit_bitstream_and_slice_buffer(), common_init(), context_init(), decode_buffering_period(), decode_cabac_field_decoding_flag(), decode_cabac_mb_mvd(), decode_cabac_mb_skip(), decode_frame(), decode_hrd_parameters(), decode_mb_skip(), decode_nal_units(), decode_picture_timing(), decode_recovery_point(), decode_residual(), decode_scaling_list(), decode_scaling_matrices(), decode_slice(), decode_slice_header(), decode_unregistered_user_data(), decode_vui_parameters(), end_frame(), execute_decode_slices(), fetch_diagonal_mv(), ff_h264_alloc_tables(), ff_h264_check_intra4x4_pred_mode(), ff_h264_check_intra_pred_mode(), ff_h264_decode_end(), ff_h264_decode_init(), ff_h264_decode_mb_cabac(), ff_h264_decode_mb_cavlc(), ff_h264_decode_picture_parameter_set(), ff_h264_decode_rbsp_trailing(), ff_h264_decode_ref_pic_list_reordering(), ff_h264_decode_ref_pic_marking(), ff_h264_decode_sei(), ff_h264_decode_seq_parameter_set(), ff_h264_direct_dist_scale_factor(), ff_h264_direct_ref_list_init(), ff_h264_execute_ref_pic_marking(), ff_h264_fill_default_ref_list(), ff_h264_filter_mb(), ff_h264_filter_mb_fast(), ff_h264_find_frame_end(), ff_h264_frame_start(), ff_h264_hl_decode_mb(), ff_h264_init_cabac_states(), field_end(), fill_colmap(), fill_decode_caches(), fill_decode_neighbors(), fill_filter_caches(), fill_picture_parameters(), fill_slice_long(), filter_mb_dir(), filter_mb_mbaff_edgecv(), filter_mb_mbaff_edgev(), find_short(), flush_dpb(), free_tables(), h264_parse(), hl_decode_mb_internal(), hl_motion(), implicit_weight_table(), init_poc(), loop_filter(), mc_dir_part(), mc_part(), mc_part_std(), mc_part_weighted(), parse_nal_units(), pic_num_extract(), pred_16x8_motion(), pred_8x16_motion(), pred_intra_mode(), pred_motion(), pred_non_zero_count(), pred_pskip_motion(), pred_spatial_direct_motion(), pred_temp_direct_motion(), pred_weight_table(), predict_field_decoding_flag(), prefetch_motion(), print_long_term(), print_short_term(), remove_short(), start_frame(), svq3_decode_frame(), svq3_decode_mb(), svq3_decode_slice_header(), svq3_mc_dir(), write_back_motion(), and xchg_mb_border().

Buffering period SEI flag.

Definition at line 588 of file h264.h.

Referenced by decode_buffering_period(), ff_h264_reset_sei(), h264_parse(), and parse_nal_units().

cpb_removal_delay in picture timing SEI message, see H.264 C.1.2

Definition at line 573 of file h264.h.

Referenced by decode_picture_timing(), ff_h264_reset_sei(), h264_parse(), and parse_nal_units().

Bit set of clock types for fields/frames in picture timing SEI message.

For each found ct_type, appropriate bit is set (e.g., bit 1 for interlaced).

Definition at line 563 of file h264.h.

Referenced by decode_frame(), and decode_picture_timing().

dpb_output_delay in picture timing SEI message, see H.264 C.2.2

Definition at line 568 of file h264.h.

Referenced by decode_picture_timing(), ff_h264_reset_sei(), h264_parse(), and parse_nal_units().

pic_struct in picture timing SEI message

Definition at line 548 of file h264.h.

Referenced by decode_frame(), decode_picture_timing(), and parse_nal_units().

recovery_frame_cnt from SEI message

Set to -1 if no recovery point SEI message found or to number of frames before playback synchronizes. Frames having recovery point are key frames.

Definition at line 582 of file h264.h.

Referenced by decode_nal_units(), decode_recovery_point(), ff_h264_reset_sei(), and parse_nal_units().

Definition at line 473 of file h264.h.

Referenced by ff_h264_alloc_tables(), and free_tables().

Definition at line 364 of file h264.h.

Referenced by decode_slice_header(), and fill_slice_long().

SPS* H264Context::sps_buffers[MAX_SPS_COUNT]

Definition at line 596 of file h264.h.

Referenced by svq3_decode_init(), and svq3_decode_slice_header().

Definition at line 593 of file h264.h.

Referenced by svq3_decode_frame(), svq3_decode_init(), and svq3_decode_mb().

uint8_t(*[2] H264Context::top_borders)[16+2 *8]

Definition at line 298 of file h264.h.

Referenced by backup_mb_border(), context_init(), free_tables(), and xchg_mb_border().

Definition at line 278 of file h264.h.

Referenced by fill_decode_caches(), and fill_decode_neighbors().

Definition at line 289 of file h264.h.

Referenced by fill_decode_caches(), and fill_decode_neighbors().

Definition at line 294 of file h264.h.

Referenced by fill_decode_caches(), and hl_decode_mb_internal().

Definition at line 283 of file h264.h.

Referenced by fill_decode_caches(), and fill_decode_neighbors().

Definition at line 280 of file h264.h.

Referenced by fill_decode_caches(), and fill_decode_neighbors().

Definition at line 296 of file h264.h.

Referenced by fill_decode_caches(), hl_decode_mb_internal(), and svq3_decode_mb().

Definition at line 285 of file h264.h.

Referenced by fill_decode_caches(), and fill_decode_neighbors().

Definition at line 594 of file h264.h.

Referenced by svq3_decode_init(), and svq3_decode_slice_header().

Definition at line 430 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), ff_h264_decode_mb_cavlc(), and init_scan_tables().

Definition at line 431 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), and init_scan_tables().

Definition at line 432 of file h264.h.

Referenced by ff_h264_decode_mb_cavlc(), and init_scan_tables().

Definition at line 438 of file h264.h.

Referenced by ff_h264_decode_mb_cavlc(), and init_scan_tables().

Definition at line 437 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), and init_scan_tables().

Definition at line 436 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), ff_h264_decode_mb_cavlc(), and init_scan_tables().


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

Generated on Fri Oct 26 02:36:57 2012 for FFmpeg by  doxygen 1.5.8