#include "internal.h"
#include "dsputil.h"
#include "avcodec.h"
#include "mpegvideo.h"
#include "h264.h"
#include "h264data.h"
#include "h264_parser.h"
#include "golomb.h"
#include "mathops.h"
#include "rectangle.h"
#include "vdpau_internal.h"
#include "cabac.h"
#include <assert.h>
Go to the source code of this file.
Defines | |
#define | DELAYED_PIC_REF 4 |
Value of Picture.reference when Picture is not a reference picture, but is held for delayed output. | |
#define | LEVEL_TAB_BITS 8 |
#define | MAP_MVS |
#define | MAP_F2F(idx, mb_type) |
#define | MAP_F2F(idx, mb_type) |
#define | SET_DIAG_MV(MV_OP, REF_OP, X4, Y4) |
#define | MB_TYPE_16x16_OR_INTRA (MB_TYPE_16x16|MB_TYPE_INTRA4x4|MB_TYPE_INTRA16x16|MB_TYPE_INTRA_PCM) |
#define | RS 0 |
#define | stride 16 |
#define | XCHG(a, b, t, xchg) |
#define | T(x) (x>>2) | ((x<<2) & 0xF) |
#define | T(x) (x>>3) | ((x&7)<<3) |
#define | CABAC_ON_STACK |
#define | CC &cc |
#define | DECODE_SIGNIFICANCE(coefs, sig_off, last_off) |
#define | FILTER(hv, dir, edge) |
Functions | |
static void | svq3_luma_dc_dequant_idct_c (DCTELEM *block, int qp) |
static void | svq3_add_idct_c (uint8_t *dst, DCTELEM *block, int stride, int qp, int dc) |
static void | filter_mb (H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, unsigned int linesize, unsigned int uvlinesize) |
static void | filter_mb_fast (H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, unsigned int linesize, unsigned int uvlinesize) |
static Picture * | remove_long (H264Context *h, int i, int ref_mask) |
Remove a picture from the long term reference list by its index in that list. | |
static av_always_inline uint32_t | pack16to32 (int a, int b) |
static void | fill_caches (H264Context *h, int mb_type, int for_deblock) |
static void | write_back_intra_pred_mode (H264Context *h) |
static int | check_intra4x4_pred_mode (H264Context *h) |
checks if the top & left blocks are available if needed & changes the dc mode so it only uses the available blocks. | |
static int | check_intra_pred_mode (H264Context *h, int mode) |
checks if the top & left blocks are available if needed & changes the dc mode so it only uses the available blocks. | |
static int | pred_intra_mode (H264Context *h, int n) |
gets the predicted intra4x4 prediction mode. | |
static void | write_back_non_zero_count (H264Context *h) |
static int | pred_non_zero_count (H264Context *h, int n) |
gets the predicted number of non-zero coefficients. | |
static int | fetch_diagonal_mv (H264Context *h, const int16_t **C, int i, int list, int part_width) |
static void | pred_motion (H264Context *const h, int n, int part_width, int list, int ref, int *const mx, int *const my) |
gets the predicted MV. | |
static void | pred_16x8_motion (H264Context *const h, int n, int list, int ref, int *const mx, int *const my) |
gets the directionally predicted 16x8 MV. | |
static void | pred_8x16_motion (H264Context *const h, int n, int list, int ref, int *const mx, int *const my) |
gets the directionally predicted 8x16 MV. | |
static void | pred_pskip_motion (H264Context *const h, int *const mx, int *const my) |
static int | get_scale_factor (H264Context *const h, int poc, int poc1, int i) |
static void | direct_dist_scale_factor (H264Context *const h) |
static void | fill_colmap (H264Context *h, int map[2][16+32], int list, int field, int colfield, int mbafi) |
static void | direct_ref_list_init (H264Context *const h) |
static void | pred_direct_motion (H264Context *const h, int *mb_type) |
static void | write_back_motion (H264Context *h, int mb_type) |
const uint8_t * | ff_h264_decode_nal (H264Context *h, const uint8_t *src, int *dst_length, int *consumed, int length) |
Decodes a network abstraction layer unit. | |
int | ff_h264_decode_rbsp_trailing (H264Context *h, const uint8_t *src) |
identifies the exact end of the bitstream | |
static void | h264_luma_dc_dequant_idct_c (DCTELEM *block, int qp, int qmul) |
IDCT transforms the 16 dc values and dequantizes them. | |
static void | chroma_dc_dequant_idct_c (DCTELEM *block, int qp, int qmul) |
static int | get_chroma_qp (H264Context *h, int t, int qscale) |
gets the chroma qp. | |
static void | mc_dir_part (H264Context *h, Picture *pic, int n, int square, int chroma_height, int delta, int list, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int src_x_offset, int src_y_offset, qpel_mc_func *qpix_op, h264_chroma_mc_func chroma_op) |
static void | mc_part_std (H264Context *h, int n, int square, int chroma_height, int delta, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int x_offset, int y_offset, qpel_mc_func *qpix_put, h264_chroma_mc_func chroma_put, qpel_mc_func *qpix_avg, h264_chroma_mc_func chroma_avg, int list0, int list1) |
static void | mc_part_weighted (H264Context *h, int n, int square, int chroma_height, int delta, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int x_offset, int y_offset, qpel_mc_func *qpix_put, h264_chroma_mc_func chroma_put, h264_weight_func luma_weight_op, h264_weight_func chroma_weight_op, h264_biweight_func luma_weight_avg, h264_biweight_func chroma_weight_avg, int list0, int list1) |
static void | mc_part (H264Context *h, int n, int square, int chroma_height, int delta, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int x_offset, int y_offset, qpel_mc_func *qpix_put, h264_chroma_mc_func chroma_put, qpel_mc_func *qpix_avg, h264_chroma_mc_func chroma_avg, h264_weight_func *weight_op, h264_biweight_func *weight_avg, int list0, int list1) |
static void | prefetch_motion (H264Context *h, int list) |
static void | hl_motion (H264Context *h, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, qpel_mc_func(*qpix_put)[16], h264_chroma_mc_func(*chroma_put), qpel_mc_func(*qpix_avg)[16], h264_chroma_mc_func(*chroma_avg), h264_weight_func *weight_op, h264_biweight_func *weight_avg) |
static av_cold void | init_cavlc_level_tab (void) |
static av_cold void | decode_init_vlc (void) |
static void | free_tables (H264Context *h) |
static void | init_dequant8_coeff_table (H264Context *h) |
static void | init_dequant4_coeff_table (H264Context *h) |
static void | init_dequant_tables (H264Context *h) |
static int | alloc_tables (H264Context *h) |
allocates tables. | |
static void | clone_tables (H264Context *dst, H264Context *src) |
Mimic alloc_tables(), but for every context thread. | |
static int | context_init (H264Context *h) |
Init context Allocate buffers which are not shared amongst multiple threads. | |
static av_cold void | common_init (H264Context *h) |
static void | reset_sei (H264Context *h) |
Reset SEI values at the beginning of the frame. | |
static av_cold int | decode_init (AVCodecContext *avctx) |
static int | frame_start (H264Context *h) |
static void | backup_mb_border (H264Context *h, uint8_t *src_y, uint8_t *src_cb, uint8_t *src_cr, int linesize, int uvlinesize, int simple) |
static void | xchg_mb_border (H264Context *h, uint8_t *src_y, uint8_t *src_cb, uint8_t *src_cr, int linesize, int uvlinesize, int xchg, int simple) |
static av_always_inline void | hl_decode_mb_internal (H264Context *h, int simple) |
static void | hl_decode_mb_simple (H264Context *h) |
Process a macroblock; this case avoids checks for expensive uncommon cases. | |
static void av_noinline | hl_decode_mb_complex (H264Context *h) |
Process a macroblock; this handles edge cases, such as interlacing. | |
static void | hl_decode_mb (H264Context *h) |
static void | pic_as_field (Picture *pic, const int parity) |
static int | split_field_copy (Picture *dest, Picture *src, int parity, int id_add) |
static int | build_def_list (Picture *def, Picture **in, int len, int is_long, int sel) |
static int | add_sorted (Picture **sorted, Picture **src, int len, int limit, int dir) |
static int | fill_default_ref_list (H264Context *h) |
fills the default_ref_list. | |
static void | print_short_term (H264Context *h) |
print short term list | |
static void | print_long_term (H264Context *h) |
print long term list | |
static int | pic_num_extract (H264Context *h, int pic_num, int *structure) |
Extract structure information about the picture described by pic_num in the current decoding context (frame or field). | |
static int | decode_ref_pic_list_reordering (H264Context *h) |
static void | fill_mbaff_ref_list (H264Context *h) |
static int | pred_weight_table (H264Context *h) |
static void | implicit_weight_table (H264Context *h) |
static int | unreference_pic (H264Context *h, Picture *pic, int refmask) |
Mark a picture as no longer needed for reference. | |
static void | idr (H264Context *h) |
instantaneous decoder refresh. | |
static void | flush_dpb (AVCodecContext *avctx) |
static Picture * | find_short (H264Context *h, int frame_num, int *idx) |
Find a Picture in the short term reference list by frame number. | |
static void | remove_short_at_index (H264Context *h, int i) |
Remove a picture from the short term reference list by its index in that list. | |
static Picture * | remove_short (H264Context *h, int frame_num, int ref_mask) |
static int | execute_ref_pic_marking (H264Context *h, MMCO *mmco, int mmco_count) |
Executes the reference picture marking (memory management control operations). | |
static int | decode_ref_pic_marking (H264Context *h, GetBitContext *gb) |
static int | init_poc (H264Context *h) |
static void | init_scan_tables (H264Context *h) |
initialize scan tables | |
static void | clone_slice (H264Context *dst, H264Context *src) |
Replicates H264 "master" context to thread contexts. | |
static int | decode_slice_header (H264Context *h, H264Context *h0) |
decodes a slice header. | |
static int | get_level_prefix (GetBitContext *gb) |
static int | get_dct8x8_allowed (H264Context *h) |
static int | decode_residual (H264Context *h, GetBitContext *gb, DCTELEM *block, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff) |
decodes a residual block. | |
static void | predict_field_decoding_flag (H264Context *h) |
static void | decode_mb_skip (H264Context *h) |
decodes a P_SKIP or B_SKIP macroblock | |
static int | decode_mb_cavlc (H264Context *h) |
decodes a macroblock | |
static int | decode_cabac_field_decoding_flag (H264Context *h) |
static int | decode_cabac_intra_mb_type (H264Context *h, int ctx_base, int intra_slice) |
static int | decode_cabac_mb_type_b (H264Context *h) |
static int | decode_cabac_mb_skip (H264Context *h, int mb_x, int mb_y) |
static int | decode_cabac_mb_intra4x4_pred_mode (H264Context *h, int pred_mode) |
static int | decode_cabac_mb_chroma_pre_mode (H264Context *h) |
static int | decode_cabac_mb_cbp_luma (H264Context *h) |
static int | decode_cabac_mb_cbp_chroma (H264Context *h) |
static int | decode_cabac_mb_dqp (H264Context *h) |
static int | decode_cabac_p_mb_sub_type (H264Context *h) |
static int | decode_cabac_b_mb_sub_type (H264Context *h) |
static int | decode_cabac_mb_transform_size (H264Context *h) |
static int | decode_cabac_mb_ref (H264Context *h, int list, int n) |
static int | decode_cabac_mb_mvd (H264Context *h, int list, int n, int l) |
static av_always_inline int | get_cabac_cbf_ctx (H264Context *h, int cat, int idx, int is_dc) |
DECLARE_ASM_CONST (1, uint8_t, last_coeff_flag_offset_8x8[63]) | |
static av_always_inline void | decode_cabac_residual_internal (H264Context *h, DCTELEM *block, int cat, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff, int is_dc) |
static void | decode_cabac_residual_dc (H264Context *h, DCTELEM *block, int cat, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff) |
static void | decode_cabac_residual_nondc (H264Context *h, DCTELEM *block, int cat, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff) |
static void | decode_cabac_residual (H264Context *h, DCTELEM *block, int cat, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff) |
static void | compute_mb_neighbors (H264Context *h) |
static int | decode_mb_cabac (H264Context *h) |
decodes a macroblock | |
static void | filter_mb_edgev (H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp) |
static void | filter_mb_edgecv (H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp) |
static void | filter_mb_mbaff_edgev (H264Context *h, uint8_t *pix, int stride, int16_t bS[8], int qp[2]) |
static void | filter_mb_mbaff_edgecv (H264Context *h, uint8_t *pix, int stride, int16_t bS[8], int qp[2]) |
static void | filter_mb_edgeh (H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp) |
static void | filter_mb_edgech (H264Context *h, uint8_t *pix, int stride, int16_t bS[4], int qp) |
static av_always_inline void | filter_mb_dir (H264Context *h, int mb_x, int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, unsigned int linesize, unsigned int uvlinesize, int mb_xy, int mb_type, int mvy_limit, int first_vertical_edge_done, int dir) |
static int | decode_slice (struct AVCodecContext *avctx, void *arg) |
static int | decode_picture_timing (H264Context *h) |
static int | decode_unregistered_user_data (H264Context *h, int size) |
static int | decode_recovery_point (H264Context *h) |
static int | decode_buffering_period (H264Context *h) |
int | ff_h264_decode_sei (H264Context *h) |
Decode SEI. | |
static int | decode_hrd_parameters (H264Context *h, SPS *sps) |
static int | decode_vui_parameters (H264Context *h, SPS *sps) |
static void | decode_scaling_list (H264Context *h, uint8_t *factors, int size, const uint8_t *jvt_list, const uint8_t *fallback_list) |
static void | decode_scaling_matrices (H264Context *h, SPS *sps, PPS *pps, int is_sps, uint8_t(*scaling_matrix4)[16], uint8_t(*scaling_matrix8)[64]) |
int | ff_h264_decode_seq_parameter_set (H264Context *h) |
Decode SPS. | |
static void | build_qp_table (PPS *pps, int t, int index) |
int | ff_h264_decode_picture_parameter_set (H264Context *h, int bit_length) |
Decode PPS. | |
static void | execute_decode_slices (H264Context *h, int context_count) |
Call decode_slice() for each context. | |
static int | decode_nal_units (H264Context *h, const uint8_t *buf, int buf_size) |
static int | get_consumed_bytes (MpegEncContext *s, int pos, int buf_size) |
returns the number of bytes consumed for building the current frame | |
static int | decode_frame (AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size) |
static av_cold int | decode_end (AVCodecContext *avctx) |
Variables | |
static VLC | coeff_token_vlc [4] |
static VLC_TYPE | coeff_token_vlc_tables [520+332+280+256][2] |
static const int | coeff_token_vlc_tables_size [4] = {520,332,280,256} |
static VLC | chroma_dc_coeff_token_vlc |
static VLC_TYPE | chroma_dc_coeff_token_vlc_table [256][2] |
static const int | chroma_dc_coeff_token_vlc_table_size = 256 |
static VLC | total_zeros_vlc [15] |
static VLC_TYPE | total_zeros_vlc_tables [15][512][2] |
static const int | total_zeros_vlc_tables_size = 512 |
static VLC | chroma_dc_total_zeros_vlc [3] |
static VLC_TYPE | chroma_dc_total_zeros_vlc_tables [3][8][2] |
static const int | chroma_dc_total_zeros_vlc_tables_size = 8 |
static VLC | run_vlc [6] |
static VLC_TYPE | run_vlc_tables [6][8][2] |
static const int | run_vlc_tables_size = 8 |
static VLC | run7_vlc |
static VLC_TYPE | run7_vlc_table [96][2] |
static const int | run7_vlc_table_size = 96 |
static const uint8_t | rem6 [52] |
static const uint8_t | div6 [52] |
static const uint8_t | left_block_options [4][8] |
static int8_t | cavlc_level_tab [7][1<< LEVEL_TAB_BITS][2] |
AVCodec | h264_decoder |
Definition in file h264.c.
#define CABAC_ON_STACK |
#define CC &cc |
Referenced by decode_cabac_residual_internal().
#define DECODE_SIGNIFICANCE | ( | coefs, | |||
sig_off, | |||||
last_off | ) |
Value:
for(last= 0; last < coefs; last++) { \ uint8_t *sig_ctx = significant_coeff_ctx_base + sig_off; \ if( get_cabac( CC, sig_ctx )) { \ uint8_t *last_ctx = last_coeff_ctx_base + last_off; \ index[coeff_count++] = last; \ if( get_cabac( CC, last_ctx ) ) { \ last= max_coeff; \ break; \ } \ } \ }\ if( last == max_coeff -1 ) {\ index[coeff_count++] = last;\ }
Referenced by decode_cabac_residual_internal().
#define DELAYED_PIC_REF 4 |
Value of Picture.reference when Picture is not a reference picture, but is held for delayed output.
Definition at line 52 of file h264.c.
Referenced by decode_frame(), decode_slice_header(), and unreference_pic().
#define FILTER | ( | hv, | |||
dir, | |||||
edge | ) |
Value:
if(bSv[dir][edge]) {\ filter_mb_edge##hv( h, &img_y[4*edge*(dir?linesize:1)], linesize, bS[dir][edge], edge ? qp : qp##dir );\ if(!(edge&1)) {\ filter_mb_edgec##hv( h, &img_cb[2*edge*(dir?uvlinesize:1)], uvlinesize, bS[dir][edge], edge ? qpc : qpc##dir );\ filter_mb_edgec##hv( h, &img_cr[2*edge*(dir?uvlinesize:1)], uvlinesize, bS[dir][edge], edge ? qpc : qpc##dir );\ }\ }
Referenced by ff_iir_filter(), and filter_mb_fast().
#define LEVEL_TAB_BITS 8 |
#define MAP_F2F | ( | idx, | |||
mb_type | ) |
Value:
if(IS_INTERLACED(mb_type) && h->ref_cache[list][idx] >= 0){\ h->ref_cache[list][idx] >>= 1;\ h->mv_cache[list][idx][1] <<= 1;\ h->mvd_cache[list][idx][1] <<= 1;\ }
#define MAP_F2F | ( | idx, | |||
mb_type | ) |
Value:
if(!IS_INTERLACED(mb_type) && h->ref_cache[list][idx] >= 0){\ h->ref_cache[list][idx] <<= 1;\ h->mv_cache[list][idx][1] /= 2;\ h->mvd_cache[list][idx][1] /= 2;\ }
#define MAP_MVS |
Value:
MAP_F2F(scan8[0] - 1 - 1*8, topleft_type)\ MAP_F2F(scan8[0] + 0 - 1*8, top_type)\ MAP_F2F(scan8[0] + 1 - 1*8, top_type)\ MAP_F2F(scan8[0] + 2 - 1*8, top_type)\ MAP_F2F(scan8[0] + 3 - 1*8, top_type)\ MAP_F2F(scan8[0] + 4 - 1*8, topright_type)\ MAP_F2F(scan8[0] - 1 + 0*8, left_type[0])\ MAP_F2F(scan8[0] - 1 + 1*8, left_type[0])\ MAP_F2F(scan8[0] - 1 + 2*8, left_type[1])\ MAP_F2F(scan8[0] - 1 + 3*8, left_type[1])
Referenced by fill_caches().
#define MB_TYPE_16x16_OR_INTRA (MB_TYPE_16x16|MB_TYPE_INTRA4x4|MB_TYPE_INTRA16x16|MB_TYPE_INTRA_PCM) |
Referenced by pred_direct_motion().
#define RS 0 |
Referenced by ff_h264_decode_nal().
#define SET_DIAG_MV | ( | MV_OP, | |||
REF_OP, | |||||
X4, | |||||
Y4 | ) |
Value:
const int x4 = X4, y4 = Y4;\ const int mb_type = mb_types[(x4>>2)+(y4>>2)*s->mb_stride];\ if(!USES_LIST(mb_type,list))\ return LIST_NOT_USED;\ mv = s->current_picture_ptr->motion_val[list][x4 + y4*h->b_stride];\ h->mv_cache[list][scan8[0]-2][0] = mv[0];\ h->mv_cache[list][scan8[0]-2][1] = mv[1] MV_OP;\ return s->current_picture_ptr->ref_index[list][(x4>>1) + (y4>>1)*h->b8_stride] REF_OP;
Referenced by fetch_diagonal_mv().
#define stride 16 |
Referenced by aasc_decode_frame(), apply_loop_filter(), avs_decode_frame(), bitplane_decoding(), check_bidir_mv(), chroma_dc_dequant_idct_c(), cmp(), copy_picture_attributes(), decode(), decode_13(), decode_frame(), decode_i2_frame(), decode_i_frame(), decode_p_frame(), doVertLowPass_TMPL(), encode_q_branch(), ff_apply_vector_2x2(), ff_apply_vector_4x4(), ff_h263_decode_mb(), ff_init_me(), ff_jpegls_decode_picture(), get_frame_mb(), h263_mv4_search(), h264_luma_dc_dequant_idct_c(), hl_decode_mb_internal(), idct_put(), init_mv4_ref(), init_ref(), interlaced_search(), main(), mpeg4_decode_partition_a(), msvideo1_decode_16bit(), msvideo1_decode_8bit(), pcx_decode_frame(), pixels16_TMPL(), pp_get_context(), preview_obmc(), ptx_decode_frame(), read_table(), render_slice(), rpza_decode_stream(), sad_hpel_motion_search(), skip_check(), smc_decode_stream(), sunrast_decode_frame(), svq3_luma_dc_dequant_idct_c(), tempNoiseReducer_TMPL(), txd_decode_frame(), vertClassify_TMPL(), vertX1Filter_TMPL(), vp56_size_changed(), xan_wc3_copy_pixel_run(), and xan_wc3_output_pixel_run().
#define T | ( | x | ) | (x>>3) | ((x&7)<<3) |
#define T | ( | x | ) | (x>>2) | ((x<<2) & 0xF) |
Referenced by get_context(), init_scan_tables(), predict(), wv_unpack_mono(), and x8_ac_compensation().
#define XCHG | ( | a, | |||
b, | |||||
t, | |||||
xchg | ) |
static int alloc_tables | ( | H264Context * | h | ) | [static] |
allocates tables.
needs width/height
Definition at line 2070 of file h264.c.
Referenced by decode_slice_header(), and svq3_decode_init().
static void backup_mb_border | ( | H264Context * | h, | |
uint8_t * | src_y, | |||
uint8_t * | src_cb, | |||
uint8_t * | src_cr, | |||
int | linesize, | |||
int | uvlinesize, | |||
int | simple | |||
) | [inline, static] |
static void build_qp_table | ( | PPS * | pps, | |
int | t, | |||
int | index | |||
) | [static] |
static int check_intra4x4_pred_mode | ( | H264Context * | h | ) | [inline, static] |
checks if the top & left blocks are available if needed & changes the dc mode so it only uses the available blocks.
Definition at line 564 of file h264.c.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), and svq3_decode_mb().
static int check_intra_pred_mode | ( | H264Context * | h, | |
int | mode | |||
) | [inline, static] |
checks if the top & left blocks are available if needed & changes the dc mode so it only uses the available blocks.
Definition at line 603 of file h264.c.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), and svq3_decode_mb().
static void chroma_dc_dequant_idct_c | ( | DCTELEM * | block, | |
int | qp, | |||
int | qmul | |||
) | [static] |
static void clone_slice | ( | H264Context * | dst, | |
H264Context * | src | |||
) | [static] |
Replicates H264 "master" context to thread contexts.
Definition at line 3618 of file h264.c.
Referenced by decode_slice_header().
static void clone_tables | ( | H264Context * | dst, | |
H264Context * | src | |||
) | [static] |
Mimic alloc_tables(), but for every context thread.
Definition at line 2116 of file h264.c.
Referenced by decode_slice_header().
static av_cold void common_init | ( | H264Context * | h | ) | [static] |
static void compute_mb_neighbors | ( | H264Context * | h | ) | [inline, static] |
static int context_init | ( | H264Context * | h | ) | [static] |
Init context Allocate buffers which are not shared amongst multiple threads.
Definition at line 2136 of file h264.c.
Referenced by decode_slice_header().
DECLARE_ASM_CONST | ( | 1 | , | |
uint8_t | , | |||
last_coeff_flag_offset_8x8 | [63] | |||
) |
static int decode_buffering_period | ( | H264Context * | h | ) | [static] |
static int decode_cabac_b_mb_sub_type | ( | H264Context * | h | ) | [static] |
static int decode_cabac_field_decoding_flag | ( | H264Context * | h | ) | [static] |
static int decode_cabac_intra_mb_type | ( | H264Context * | h, | |
int | ctx_base, | |||
int | intra_slice | |||
) | [static] |
Definition at line 4885 of file h264.c.
Referenced by decode_cabac_mb_type_b(), and decode_mb_cabac().
static int decode_cabac_mb_cbp_chroma | ( | H264Context * | h | ) | [static] |
static int decode_cabac_mb_cbp_luma | ( | H264Context * | h | ) | [static] |
static int decode_cabac_mb_chroma_pre_mode | ( | H264Context * | h | ) | [static] |
static int decode_cabac_mb_dqp | ( | H264Context * | h | ) | [static] |
static int decode_cabac_mb_intra4x4_pred_mode | ( | H264Context * | h, | |
int | pred_mode | |||
) | [static] |
static int decode_cabac_mb_mvd | ( | H264Context * | h, | |
int | list, | |||
int | n, | |||
int | l | |||
) | [static] |
static int decode_cabac_mb_ref | ( | H264Context * | h, | |
int | list, | |||
int | n | |||
) | [static] |
static int decode_cabac_mb_skip | ( | H264Context * | h, | |
int | mb_x, | |||
int | mb_y | |||
) | [static] |
static int decode_cabac_mb_transform_size | ( | H264Context * | h | ) | [inline, static] |
static int decode_cabac_mb_type_b | ( | H264Context * | h | ) | [static] |
static int decode_cabac_p_mb_sub_type | ( | H264Context * | h | ) | [static] |
static void decode_cabac_residual | ( | H264Context * | h, | |
DCTELEM * | block, | |||
int | cat, | |||
int | n, | |||
const uint8_t * | scantable, | |||
const uint32_t * | qmul, | |||
int | max_coeff | |||
) | [static] |
static void decode_cabac_residual_dc | ( | H264Context * | h, | |
DCTELEM * | block, | |||
int | cat, | |||
int | n, | |||
const uint8_t * | scantable, | |||
const uint32_t * | qmul, | |||
int | max_coeff | |||
) | [static] |
static av_always_inline void decode_cabac_residual_internal | ( | H264Context * | h, | |
DCTELEM * | block, | |||
int | cat, | |||
int | n, | |||
const uint8_t * | scantable, | |||
const uint32_t * | qmul, | |||
int | max_coeff, | |||
int | is_dc | |||
) | [static] |
Definition at line 5210 of file h264.c.
Referenced by decode_cabac_residual(), decode_cabac_residual_dc(), and decode_cabac_residual_nondc().
static void decode_cabac_residual_nondc | ( | H264Context * | h, | |
DCTELEM * | block, | |||
int | cat, | |||
int | n, | |||
const uint8_t * | scantable, | |||
const uint32_t * | qmul, | |||
int | max_coeff | |||
) | [static] |
static av_cold int decode_end | ( | AVCodecContext * | avctx | ) | [static] |
static int decode_frame | ( | AVCodecContext * | avctx, | |
void * | data, | |||
int * | data_size, | |||
const uint8_t * | buf, | |||
int | buf_size | |||
) | [static] |
static int decode_hrd_parameters | ( | H264Context * | h, | |
SPS * | sps | |||
) | [inline, static] |
static av_cold int decode_init | ( | AVCodecContext * | avctx | ) | [static] |
static av_cold void decode_init_vlc | ( | void | ) | [static] |
static int decode_mb_cabac | ( | H264Context * | h | ) | [static] |
decodes a macroblock
Definition at line 5440 of file h264.c.
Referenced by decode_slice().
static int decode_mb_cavlc | ( | H264Context * | h | ) | [static] |
decodes a macroblock
Definition at line 4360 of file h264.c.
Referenced by decode_slice().
static void decode_mb_skip | ( | H264Context * | h | ) | [static] |
decodes a P_SKIP or B_SKIP macroblock
Definition at line 4318 of file h264.c.
Referenced by decode_mb_cabac(), and decode_mb_cavlc().
static int decode_nal_units | ( | H264Context * | h, | |
const uint8_t * | buf, | |||
int | buf_size | |||
) | [static] |
static int decode_picture_timing | ( | H264Context * | h | ) | [static] |
static int decode_recovery_point | ( | H264Context * | h | ) | [static] |
static int decode_ref_pic_list_reordering | ( | H264Context * | h | ) | [static] |
static int decode_ref_pic_marking | ( | H264Context * | h, | |
GetBitContext * | gb | |||
) | [static] |
static int decode_residual | ( | H264Context * | h, | |
GetBitContext * | gb, | |||
DCTELEM * | block, | |||
int | n, | |||
const uint8_t * | scantable, | |||
const uint32_t * | qmul, | |||
int | max_coeff | |||
) | [static] |
decodes a residual block.
n | block index | |
scantable | scantable | |
max_coeff | number of coefficients in the block |
Definition at line 4135 of file h264.c.
Referenced by decode_mb_cavlc().
static void decode_scaling_list | ( | H264Context * | h, | |
uint8_t * | factors, | |||
int | size, | |||
const uint8_t * | jvt_list, | |||
const uint8_t * | fallback_list | |||
) | [static] |
static void decode_scaling_matrices | ( | H264Context * | h, | |
SPS * | sps, | |||
PPS * | pps, | |||
int | is_sps, | |||
uint8_t(*) | scaling_matrix4[16], | |||
uint8_t(*) | scaling_matrix8[64] | |||
) | [static] |
Definition at line 7079 of file h264.c.
Referenced by ff_h264_decode_picture_parameter_set(), and ff_h264_decode_seq_parameter_set().
static int decode_slice | ( | struct AVCodecContext * | avctx, | |
void * | arg | |||
) | [static] |
static int decode_slice_header | ( | H264Context * | h, | |
H264Context * | h0 | |||
) | [static] |
decodes a slice header.
This will also call MPV_common_init() and frame_start() as needed.
h | h264context | |
h0 | h264 master context (differs from 'h' when doing sliced based parallel decoding) |
static int decode_unregistered_user_data | ( | H264Context * | h, | |
int | size | |||
) | [static] |
static int decode_vui_parameters | ( | H264Context * | h, | |
SPS * | sps | |||
) | [inline, static] |
static void direct_dist_scale_factor | ( | H264Context *const | h | ) | [inline, static] |
static void direct_ref_list_init | ( | H264Context *const | h | ) | [inline, static] |
static void execute_decode_slices | ( | H264Context * | h, | |
int | context_count | |||
) | [static] |
Call decode_slice() for each context.
h | h264 master context | |
context_count | number of contexts to execute |
Definition at line 7377 of file h264.c.
Referenced by decode_nal_units().
static int execute_ref_pic_marking | ( | H264Context * | h, | |
MMCO * | mmco, | |||
int | mmco_count | |||
) | [static] |
Executes the reference picture marking (memory management control operations).
Definition at line 3270 of file h264.c.
Referenced by decode_frame(), and decode_slice_header().
static int fetch_diagonal_mv | ( | H264Context * | h, | |
const int16_t ** | C, | |||
int | i, | |||
int | list, | |||
int | part_width | |||
) | [inline, static] |
const uint8_t* ff_h264_decode_nal | ( | H264Context * | h, | |
const uint8_t * | src, | |||
int * | dst_length, | |||
int * | consumed, | |||
int | length | |||
) |
Decodes a network abstraction layer unit.
consumed | is the number of bytes used as input | |
length | is the length of the array | |
dst_length | is the number of decoded bytes FIXME here or a decode rbsp tailing? |
Definition at line 1363 of file h264.c.
Referenced by decode_nal_units(), and parse_nal_units().
int ff_h264_decode_picture_parameter_set | ( | H264Context * | h, | |
int | bit_length | |||
) |
Decode PPS.
Definition at line 7255 of file h264.c.
Referenced by decode_nal_units(), and parse_nal_units().
int ff_h264_decode_rbsp_trailing | ( | H264Context * | h, | |
const uint8_t * | src | |||
) |
identifies the exact end of the bitstream
Definition at line 1453 of file h264.c.
Referenced by decode_nal_units().
int ff_h264_decode_sei | ( | H264Context * | h | ) |
Decode SEI.
Definition at line 6906 of file h264.c.
Referenced by decode_nal_units(), and parse_nal_units().
int ff_h264_decode_seq_parameter_set | ( | H264Context * | h | ) |
Decode SPS.
Definition at line 7104 of file h264.c.
Referenced by decode_nal_units(), and parse_nal_units().
static void fill_caches | ( | H264Context * | h, | |
int | mb_type, | |||
int | for_deblock | |||
) | [static] |
Definition at line 110 of file h264.c.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), decode_mb_skip(), and hl_decode_mb_internal().
static void fill_colmap | ( | H264Context * | h, | |
int | map[2][16+32], | |||
int | list, | |||
int | field, | |||
int | colfield, | |||
int | mbafi | |||
) | [static] |
static int fill_default_ref_list | ( | H264Context * | h | ) | [static] |
fills the default_ref_list.
Definition at line 2769 of file h264.c.
Referenced by decode_slice_header().
static void fill_mbaff_ref_list | ( | H264Context * | h | ) | [static] |
static void filter_mb | ( | H264Context * | h, | |
int | mb_x, | |||
int | mb_y, | |||
uint8_t * | img_y, | |||
uint8_t * | img_cb, | |||
uint8_t * | img_cr, | |||
unsigned int | linesize, | |||
unsigned int | uvlinesize | |||
) | [static] |
Definition at line 6485 of file h264.c.
Referenced by filter_mb_fast(), and hl_decode_mb_internal().
static av_always_inline void filter_mb_dir | ( | H264Context * | h, | |
int | mb_x, | |||
int | mb_y, | |||
uint8_t * | img_y, | |||
uint8_t * | img_cb, | |||
uint8_t * | img_cr, | |||
unsigned int | linesize, | |||
unsigned int | uvlinesize, | |||
int | mb_xy, | |||
int | mb_type, | |||
int | mvy_limit, | |||
int | first_vertical_edge_done, | |||
int | dir | |||
) | [static] |
static void filter_mb_edgech | ( | H264Context * | h, | |
uint8_t * | pix, | |||
int | stride, | |||
int16_t | bS[4], | |||
int | qp | |||
) | [static] |
static void filter_mb_edgecv | ( | H264Context * | h, | |
uint8_t * | pix, | |||
int | stride, | |||
int16_t | bS[4], | |||
int | qp | |||
) | [static] |
static void filter_mb_edgeh | ( | H264Context * | h, | |
uint8_t * | pix, | |||
int | stride, | |||
int16_t | bS[4], | |||
int | qp | |||
) | [static] |
static void filter_mb_edgev | ( | H264Context * | h, | |
uint8_t * | pix, | |||
int | stride, | |||
int16_t | bS[4], | |||
int | qp | |||
) | [static] |
static void filter_mb_fast | ( | H264Context * | h, | |
int | mb_x, | |||
int | mb_y, | |||
uint8_t * | img_y, | |||
uint8_t * | img_cb, | |||
uint8_t * | img_cr, | |||
unsigned int | linesize, | |||
unsigned int | uvlinesize | |||
) | [static] |
static void filter_mb_mbaff_edgecv | ( | H264Context * | h, | |
uint8_t * | pix, | |||
int | stride, | |||
int16_t | bS[8], | |||
int | qp[2] | |||
) | [static] |
static void filter_mb_mbaff_edgev | ( | H264Context * | h, | |
uint8_t * | pix, | |||
int | stride, | |||
int16_t | bS[8], | |||
int | qp[2] | |||
) | [static] |
static Picture* find_short | ( | H264Context * | h, | |
int | frame_num, | |||
int * | idx | |||
) | [static] |
Find a Picture in the short term reference list by frame number.
frame_num | frame number to search for | |
idx | the index into h->short_ref where returned picture is found undefined if no picture found. |
Definition at line 3166 of file h264.c.
Referenced by execute_ref_pic_marking(), and remove_short().
static void flush_dpb | ( | AVCodecContext * | avctx | ) | [static] |
static int frame_start | ( | H264Context * | h | ) | [static] |
Definition at line 2223 of file h264.c.
Referenced by decode_frame(), decode_slice_header(), encode_frame(), and svq3_decode_frame().
static void free_tables | ( | H264Context * | h | ) | [static] |
Definition at line 1976 of file h264.c.
Referenced by alloc_tables(), decode_end(), and decode_slice_header().
static av_always_inline int get_cabac_cbf_ctx | ( | H264Context * | h, | |
int | cat, | |||
int | idx, | |||
int | is_dc | |||
) | [static] |
static int get_chroma_qp | ( | H264Context * | h, | |
int | t, | |||
int | qscale | |||
) | [inline, static] |
gets the chroma qp.
Definition at line 1596 of file h264.c.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), decode_slice_header(), filter_mb(), filter_mb_dir(), filter_mb_fast(), and hl_decode_mb_internal().
static int get_consumed_bytes | ( | MpegEncContext * | s, | |
int | pos, | |||
int | buf_size | |||
) | [static] |
static int get_dct8x8_allowed | ( | H264Context * | h | ) | [inline, static] |
static int get_level_prefix | ( | GetBitContext * | gb | ) | [inline, static] |
static int get_scale_factor | ( | H264Context *const | h, | |
int | poc, | |||
int | poc1, | |||
int | i | |||
) | [static] |
static void h264_luma_dc_dequant_idct_c | ( | DCTELEM * | block, | |
int | qp, | |||
int | qmul | |||
) | [static] |
IDCT transforms the 16 dc values and dequantizes them.
qp | quantization parameter |
Definition at line 1470 of file h264.c.
Referenced by hl_decode_mb_internal().
static void hl_decode_mb | ( | H264Context * | h | ) | [static] |
static void av_noinline hl_decode_mb_complex | ( | H264Context * | h | ) | [static] |
Process a macroblock; this handles edge cases, such as interlacing.
Definition at line 2681 of file h264.c.
Referenced by hl_decode_mb().
static av_always_inline void hl_decode_mb_internal | ( | H264Context * | h, | |
int | simple | |||
) | [static] |
Definition at line 2416 of file h264.c.
Referenced by hl_decode_mb_complex(), and hl_decode_mb_simple().
static void hl_decode_mb_simple | ( | H264Context * | h | ) | [static] |
Process a macroblock; this case avoids checks for expensive uncommon cases.
Definition at line 2674 of file h264.c.
Referenced by hl_decode_mb().
static void hl_motion | ( | H264Context * | h, | |
uint8_t * | dest_y, | |||
uint8_t * | dest_cb, | |||
uint8_t * | dest_cr, | |||
qpel_mc_func(*) | qpix_put[16], | |||
h264_chroma_mc_func * | chroma_put, | |||
qpel_mc_func(*) | qpix_avg[16], | |||
h264_chroma_mc_func * | chroma_avg, | |||
h264_weight_func * | weight_op, | |||
h264_biweight_func * | weight_avg | |||
) | [static] |
static void idr | ( | H264Context * | h | ) | [static] |
instantaneous decoder refresh.
Definition at line 3121 of file h264.c.
Referenced by decode_nal_units(), and flush_dpb().
static void implicit_weight_table | ( | H264Context * | h | ) | [static] |
static av_cold void init_cavlc_level_tab | ( | void | ) | [static] |
static void init_dequant4_coeff_table | ( | H264Context * | h | ) | [static] |
static void init_dequant8_coeff_table | ( | H264Context * | h | ) | [static] |
static void init_dequant_tables | ( | H264Context * | h | ) | [static] |
static int init_poc | ( | H264Context * | h | ) | [static] |
static void init_scan_tables | ( | H264Context * | h | ) | [static] |
static void mc_dir_part | ( | H264Context * | h, | |
Picture * | pic, | |||
int | n, | |||
int | square, | |||
int | chroma_height, | |||
int | delta, | |||
int | list, | |||
uint8_t * | dest_y, | |||
uint8_t * | dest_cb, | |||
uint8_t * | dest_cr, | |||
int | src_x_offset, | |||
int | src_y_offset, | |||
qpel_mc_func * | qpix_op, | |||
h264_chroma_mc_func | chroma_op | |||
) | [inline, static] |
static void mc_part | ( | H264Context * | h, | |
int | n, | |||
int | square, | |||
int | chroma_height, | |||
int | delta, | |||
uint8_t * | dest_y, | |||
uint8_t * | dest_cb, | |||
uint8_t * | dest_cr, | |||
int | x_offset, | |||
int | y_offset, | |||
qpel_mc_func * | qpix_put, | |||
h264_chroma_mc_func | chroma_put, | |||
qpel_mc_func * | qpix_avg, | |||
h264_chroma_mc_func | chroma_avg, | |||
h264_weight_func * | weight_op, | |||
h264_biweight_func * | weight_avg, | |||
int | list0, | |||
int | list1 | |||
) | [inline, static] |
static void mc_part_std | ( | H264Context * | h, | |
int | n, | |||
int | square, | |||
int | chroma_height, | |||
int | delta, | |||
uint8_t * | dest_y, | |||
uint8_t * | dest_cb, | |||
uint8_t * | dest_cr, | |||
int | x_offset, | |||
int | y_offset, | |||
qpel_mc_func * | qpix_put, | |||
h264_chroma_mc_func | chroma_put, | |||
qpel_mc_func * | qpix_avg, | |||
h264_chroma_mc_func | chroma_avg, | |||
int | list0, | |||
int | list1 | |||
) | [inline, static] |
static void mc_part_weighted | ( | H264Context * | h, | |
int | n, | |||
int | square, | |||
int | chroma_height, | |||
int | delta, | |||
uint8_t * | dest_y, | |||
uint8_t * | dest_cb, | |||
uint8_t * | dest_cr, | |||
int | x_offset, | |||
int | y_offset, | |||
qpel_mc_func * | qpix_put, | |||
h264_chroma_mc_func | chroma_put, | |||
h264_weight_func | luma_weight_op, | |||
h264_weight_func | chroma_weight_op, | |||
h264_biweight_func | luma_weight_avg, | |||
h264_biweight_func | chroma_weight_avg, | |||
int | list0, | |||
int | list1 | |||
) | [inline, static] |
static av_always_inline uint32_t pack16to32 | ( | int | a, | |
int | b | |||
) | [static] |
Definition at line 84 of file h264.c.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), decode_mb_skip(), fill_caches(), pred_direct_motion(), and svq3_mc_dir().
static void pic_as_field | ( | Picture * | pic, | |
const int | parity | |||
) | [static] |
Definition at line 2696 of file h264.c.
Referenced by decode_ref_pic_list_reordering(), and split_field_copy().
static int pic_num_extract | ( | H264Context * | h, | |
int | pic_num, | |||
int * | structure | |||
) | [static] |
Extract structure information about the picture described by pic_num in the current decoding context (frame or field).
Note that pic_num is picture number without wrapping (so, 0<=pic_num<max_pic_num).
pic_num | picture number for which to extract structure information | |
structure | one of PICT_XXX describing structure of picture with pic_num |
Definition at line 2834 of file h264.c.
Referenced by decode_ref_pic_list_reordering(), and execute_ref_pic_marking().
static void pred_16x8_motion | ( | H264Context *const | h, | |
int | n, | |||
int | list, | |||
int | ref, | |||
int *const | mx, | |||
int *const | my | |||
) | [inline, static] |
gets the directionally predicted 16x8 MV.
n | the block index | |
mx | the x component of the predicted motion vector | |
my | the y component of the predicted motion vector |
Definition at line 806 of file h264.c.
Referenced by decode_mb_cabac(), and decode_mb_cavlc().
static void pred_8x16_motion | ( | H264Context *const | h, | |
int | n, | |||
int | list, | |||
int | ref, | |||
int *const | mx, | |||
int *const | my | |||
) | [inline, static] |
gets the directionally predicted 8x16 MV.
n | the block index | |
mx | the x component of the predicted motion vector | |
my | the y component of the predicted motion vector |
Definition at line 841 of file h264.c.
Referenced by decode_mb_cabac(), and decode_mb_cavlc().
static void pred_direct_motion | ( | H264Context *const | h, | |
int * | mb_type | |||
) | [inline, static] |
Definition at line 984 of file h264.c.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), and decode_mb_skip().
static int pred_intra_mode | ( | H264Context * | h, | |
int | n | |||
) | [inline, static] |
gets the predicted intra4x4 prediction mode.
Definition at line 638 of file h264.c.
Referenced by decode_mb_cabac(), and decode_mb_cavlc().
static void pred_motion | ( | H264Context *const | h, | |
int | n, | |||
int | part_width, | |||
int | list, | |||
int | ref, | |||
int *const | mx, | |||
int *const | my | |||
) | [inline, static] |
gets the predicted MV.
n | the block index | |
part_width | the width of the partition (4, 8,16) -> (1, 2, 4) | |
mx | the x component of the predicted motion vector | |
my | the y component of the predicted motion vector |
Definition at line 751 of file h264.c.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), pred_16x8_motion(), pred_8x16_motion(), pred_direct_motion(), pred_pskip_motion(), and svq3_mc_dir().
static int pred_non_zero_count | ( | H264Context * | h, | |
int | n | |||
) | [inline, static] |
gets the predicted number of non-zero coefficients.
n | block index |
Definition at line 674 of file h264.c.
Referenced by decode_residual().
static void pred_pskip_motion | ( | H264Context *const | h, | |
int *const | mx, | |||
int *const | my | |||
) | [inline, static] |
static int pred_weight_table | ( | H264Context * | h | ) | [static] |
static void predict_field_decoding_flag | ( | H264Context * | h | ) | [static] |
static void prefetch_motion | ( | H264Context * | h, | |
int | list | |||
) | [inline, static] |
static void print_long_term | ( | H264Context * | h | ) | [static] |
print long term list
Definition at line 3254 of file h264.c.
Referenced by decode_ref_pic_list_reordering(), and execute_ref_pic_marking().
static void print_short_term | ( | H264Context * | h | ) | [static] |
print short term list
Definition at line 3240 of file h264.c.
Referenced by decode_ref_pic_list_reordering(), and execute_ref_pic_marking().
static Picture * remove_long | ( | H264Context * | h, | |
int | i, | |||
int | ref_mask | |||
) | [static] |
Remove a picture from the long term reference list by its index in that list.
Definition at line 3221 of file h264.c.
Referenced by execute_ref_pic_marking(), and idr().
static Picture* remove_short | ( | H264Context * | h, | |
int | frame_num, | |||
int | ref_mask | |||
) | [static] |
Definition at line 3199 of file h264.c.
Referenced by execute_ref_pic_marking().
static void remove_short_at_index | ( | H264Context * | h, | |
int | i | |||
) | [static] |
Remove a picture from the short term reference list by its index in that list.
This does no checking on the provided index; it is assumed to be valid. Other list entries are shifted down.
i | index into h->short_ref of picture to remove. |
Definition at line 3188 of file h264.c.
Referenced by execute_ref_pic_marking(), and remove_short().
static void reset_sei | ( | H264Context * | h | ) | [static] |
Reset SEI values at the beginning of the frame.
h | H.264 context. |
Definition at line 2169 of file h264.c.
Referenced by decode_init(), decode_nal_units(), and flush_dpb().
static void svq3_add_idct_c | ( | uint8_t * | dst, | |
DCTELEM * | block, | |||
int | stride, | |||
int | qp, | |||
int | dc | |||
) | [static] |
Referenced by hl_decode_mb_internal().
static void svq3_luma_dc_dequant_idct_c | ( | DCTELEM * | block, | |
int | qp | |||
) | [static] |
Referenced by hl_decode_mb_internal().
static int unreference_pic | ( | H264Context * | h, | |
Picture * | pic, | |||
int | refmask | |||
) | [inline, static] |
Mark a picture as no longer needed for reference.
The refmask argument allows unreferencing of individual fields or the whole frame. If the picture becomes entirely unreferenced, but is being held for display purposes, it is marked as such.
refmask | mask of fields to unreference; the mask is bitwise anded with the reference marking of pic |
Definition at line 3104 of file h264.c.
Referenced by idr(), remove_long(), and remove_short().
static void write_back_intra_pred_mode | ( | H264Context * | h | ) | [inline, static] |
Definition at line 549 of file h264.c.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), and svq3_decode_mb().
static void write_back_motion | ( | H264Context * | h, | |
int | mb_type | |||
) | [inline, static] |
Definition at line 1316 of file h264.c.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), and decode_mb_skip().
static void write_back_non_zero_count | ( | H264Context * | h | ) | [inline, static] |
static void xchg_mb_border | ( | H264Context * | h, | |
uint8_t * | src_y, | |||
uint8_t * | src_cb, | |||
uint8_t * | src_cr, | |||
int | linesize, | |||
int | uvlinesize, | |||
int | xchg, | |||
int | simple | |||
) | [inline, static] |
int8_t cavlc_level_tab[7][1<< LEVEL_TAB_BITS][2] [static] |
VLC chroma_dc_coeff_token_vlc [static] |
VLC_TYPE chroma_dc_coeff_token_vlc_table[256][2] [static] |
const int chroma_dc_coeff_token_vlc_table_size = 256 [static] |
VLC chroma_dc_total_zeros_vlc[3] [static] |
VLC_TYPE chroma_dc_total_zeros_vlc_tables[3][8][2] [static] |
const int chroma_dc_total_zeros_vlc_tables_size = 8 [static] |
VLC coeff_token_vlc[4] [static] |
VLC_TYPE coeff_token_vlc_tables[520+332+280+256][2] [static] |
const int coeff_token_vlc_tables_size[4] = {520,332,280,256} [static] |
const uint8_t div6[52] [static] |
Initial value:
{ 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, }
Definition at line 96 of file h264.c.
Referenced by init_dequant4_coeff_table(), and init_dequant8_coeff_table().
Initial value:
{ "h264", CODEC_TYPE_VIDEO, CODEC_ID_H264, sizeof(H264Context), decode_init, NULL, decode_end, decode_frame, CODEC_CAP_DR1 | CODEC_CAP_DELAY, .flush= flush_dpb, .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"), .pix_fmts= ff_hwaccel_pixfmt_list_420, }
const uint8_t left_block_options[4][8] [static] |
Initial value:
{ {0,1,2,3,7,10,8,11}, {2,2,3,3,8,11,8,11}, {0,0,1,1,7,10,7,10}, {0,2,0,2,7,10,7,10} }
Definition at line 100 of file h264.c.
Referenced by fill_caches().
const uint8_t rem6[52] [static] |
Initial value:
{ 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, }
Definition at line 92 of file h264.c.
Referenced by init_dequant4_coeff_table(), and init_dequant8_coeff_table().
VLC_TYPE run7_vlc_table[96][2] [static] |
const int run7_vlc_table_size = 96 [static] |
VLC_TYPE run_vlc_tables[6][8][2] [static] |
const int run_vlc_tables_size = 8 [static] |
VLC total_zeros_vlc[15] [static] |
VLC_TYPE total_zeros_vlc_tables[15][512][2] [static] |
const int total_zeros_vlc_tables_size = 512 [static] |