libavcodec/h264.c File Reference

H.264 / AVC / MPEG4 part10 codec. More...

#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 Pictureremove_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 Picturefind_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 Pictureremove_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


Detailed Description

H.264 / AVC / MPEG4 part10 codec.

Author:
Michael Niedermayer <michaelni@gmx.at>

Definition in file h264.c.


Define Documentation

#define CABAC_ON_STACK

#define CC   &cc

#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

Definition at line 107 of file h264.c.

Referenced by decode_residual(), and init_cavlc_level_tab().

#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

#define T (  )     (x>>3) | ((x&7)<<3)

#define T (  )     (x>>2) | ((x<<2) & 0xF)

#define XCHG ( a,
b,
t,
xchg   ) 

Value:

t= a;\
if(xchg)\
    a= b;\
b= t;

Referenced by xchg_mb_border().


Function Documentation

static int add_sorted ( Picture **  sorted,
Picture **  src,
int  len,
int  limit,
int  dir 
) [static]

Definition at line 2745 of file h264.c.

Referenced by fill_default_ref_list().

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]

Definition at line 2279 of file h264.c.

Referenced by hl_decode_mb_internal().

static int build_def_list ( Picture def,
Picture **  in,
int  len,
int  is_long,
int  sel 
) [static]

Definition at line 2723 of file h264.c.

Referenced by fill_default_ref_list().

static void build_qp_table ( PPS pps,
int  t,
int  index 
) [static]

Definition at line 7248 of file h264.c.

Referenced by ff_h264_decode_picture_parameter_set().

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]

Definition at line 1549 of file h264.c.

Referenced by hl_decode_mb_internal().

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]

Definition at line 2145 of file h264.c.

static void compute_mb_neighbors ( H264Context h  )  [inline, static]

Definition at line 5410 of file h264.c.

Referenced by decode_mb_cabac().

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 ( ,
uint8_t  ,
last_coeff_flag_offset_8x8  [63] 
)

static int decode_buffering_period ( H264Context h  )  [static]

Definition at line 6875 of file h264.c.

Referenced by ff_h264_decode_sei().

static int decode_cabac_b_mb_sub_type ( H264Context h  )  [static]

Definition at line 5091 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_field_decoding_flag ( H264Context h  )  [static]

Definition at line 4866 of file h264.c.

Referenced by decode_mb_cabac().

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]

Definition at line 5048 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_mb_cbp_luma ( H264Context h  )  [static]

Definition at line 5032 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_mb_chroma_pre_mode ( H264Context h  )  [static]

Definition at line 5008 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_mb_dqp ( H264Context h  )  [static]

Definition at line 5066 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_mb_intra4x4_pred_mode ( H264Context h,
int  pred_mode 
) [static]

Definition at line 4992 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_mb_mvd ( H264Context h,
int  list,
int  n,
int  l 
) [static]

Definition at line 5140 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_mb_ref ( H264Context h,
int  list,
int  n 
) [static]

Definition at line 5112 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_mb_skip ( H264Context h,
int  mb_x,
int  mb_y 
) [static]

Definition at line 4956 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_mb_transform_size ( H264Context h  )  [inline, static]

Definition at line 5108 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_mb_type_b ( H264Context h  )  [static]

Definition at line 4918 of file h264.c.

Referenced by decode_mb_cabac().

static int decode_cabac_p_mb_sub_type ( H264Context h  )  [static]

Definition at line 5082 of file h264.c.

Referenced by decode_mb_cabac().

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]

Definition at line 5401 of file h264.c.

Referenced by decode_mb_cabac().

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]

Definition at line 5392 of file h264.c.

Referenced by decode_cabac_residual().

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]

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]

Definition at line 5396 of file h264.c.

Referenced by decode_cabac_residual().

static av_cold int decode_end ( AVCodecContext avctx  )  [static]

Definition at line 8098 of file h264.c.

static int decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
const uint8_t *  buf,
int  buf_size 
) [static]

Definition at line 7628 of file h264.c.

static int decode_hrd_parameters ( H264Context h,
SPS sps 
) [inline, static]

Definition at line 6950 of file h264.c.

Referenced by decode_vui_parameters().

static av_cold int decode_init ( AVCodecContext avctx  )  [static]

Definition at line 2176 of file h264.c.

static av_cold void decode_init_vlc ( void   )  [static]

Definition at line 1905 of file h264.c.

Referenced by decode_init().

static int decode_mb_cabac ( H264Context h  )  [static]

decodes a macroblock

Returns:
0 if OK, AC_ERROR / DC_ERROR / MV_ERROR if an error is noticed

Definition at line 5440 of file h264.c.

Referenced by decode_slice().

static int decode_mb_cavlc ( H264Context h  )  [static]

decodes a macroblock

Returns:
0 if OK, AC_ERROR / DC_ERROR / MV_ERROR if an error is noticed

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]

< thread context

Definition at line 7411 of file h264.c.

Referenced by decode_frame().

static int decode_picture_timing ( H264Context h  )  [static]

Definition at line 6793 of file h264.c.

Referenced by ff_h264_decode_sei().

static int decode_recovery_point ( H264Context h  )  [static]

Definition at line 6866 of file h264.c.

Referenced by ff_h264_decode_sei().

static int decode_ref_pic_list_reordering ( H264Context h  )  [static]

Definition at line 2848 of file h264.c.

Referenced by decode_slice_header().

static int decode_ref_pic_marking ( H264Context h,
GetBitContext gb 
) [static]

Definition at line 3425 of file h264.c.

Referenced by decode_slice_header().

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.

Parameters:
n block index
scantable scantable
max_coeff number of coefficients in the block
Returns:
<0 if an error occurred

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]

Definition at line 7060 of file h264.c.

Referenced by decode_scaling_matrices().

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]

static int decode_slice ( struct AVCodecContext avctx,
void *  arg 
) [static]

Definition at line 6612 of file h264.c.

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.

Parameters:
h h264context
h0 h264 master context (differs from 'h' when doing sliced based parallel decoding)
Returns:
0 if okay, <0 if an error occurred, 1 if decoding must not be multithreaded

Definition at line 3651 of file h264.c.

static int decode_unregistered_user_data ( H264Context h,
int  size 
) [static]

Definition at line 6840 of file h264.c.

Referenced by ff_h264_decode_sei().

static int decode_vui_parameters ( H264Context h,
SPS sps 
) [inline, static]

Definition at line 6975 of file h264.c.

Referenced by ff_h264_decode_seq_parameter_set().

static void direct_dist_scale_factor ( H264Context *const   h  )  [inline, static]

Definition at line 903 of file h264.c.

Referenced by decode_slice_header().

static void direct_ref_list_init ( H264Context *const   h  )  [inline, static]

Definition at line 953 of file h264.c.

Referenced by decode_slice_header().

static void execute_decode_slices ( H264Context h,
int  context_count 
) [static]

Call decode_slice() for each context.

Parameters:
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]

Definition at line 687 of file h264.c.

Referenced by pred_8x16_motion(), and pred_motion().

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.

Parameters:
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?
Returns:
decoded bytes, might be src+1 if no escapes

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

Returns:
the length of the trailing, or 0 if damaged

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]

Definition at line 920 of file h264.c.

Referenced by direct_ref_list_init().

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]

Definition at line 2959 of file h264.c.

Referenced by decode_slice_header().

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]

Definition at line 6282 of file h264.c.

static void filter_mb_edgech ( H264Context h,
uint8_t *  pix,
int  stride,
int16_t  bS[4],
int  qp 
) [static]

Definition at line 6150 of file h264.c.

Referenced by filter_mb_dir(), and filter_mb_fast().

static void filter_mb_edgecv ( H264Context h,
uint8_t *  pix,
int  stride,
int16_t  bS[4],
int  qp 
) [static]

Definition at line 5965 of file h264.c.

Referenced by filter_mb_dir(), and filter_mb_fast().

static void filter_mb_edgeh ( H264Context h,
uint8_t *  pix,
int  stride,
int16_t  bS[4],
int  qp 
) [static]

Definition at line 6133 of file h264.c.

Referenced by filter_mb_dir(), and filter_mb_fast().

static void filter_mb_edgev ( H264Context h,
uint8_t *  pix,
int  stride,
int16_t  bS[4],
int  qp 
) [static]

Definition at line 5949 of file h264.c.

Referenced by filter_mb_dir(), and filter_mb_fast().

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]

Definition at line 6167 of file h264.c.

Referenced by hl_decode_mb_internal().

static void filter_mb_mbaff_edgecv ( H264Context h,
uint8_t *  pix,
int  stride,
int16_t  bS[8],
int  qp[2] 
) [static]

Definition at line 6080 of file h264.c.

Referenced by filter_mb().

static void filter_mb_mbaff_edgev ( H264Context h,
uint8_t *  pix,
int  stride,
int16_t  bS[8],
int  qp[2] 
) [static]

Definition at line 5982 of file h264.c.

Referenced by filter_mb().

static Picture* find_short ( H264Context h,
int  frame_num,
int *  idx 
) [static]

Find a Picture in the short term reference list by frame number.

Parameters:
frame_num frame number to search for
idx the index into h->short_ref where returned picture is found undefined if no picture found.
Returns:
pointer to the found picture, or NULL if no pic with the provided frame number is 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]

Definition at line 3141 of file h264.c.

Referenced by decode_slice_header().

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]

Definition at line 5176 of file h264.c.

Referenced by decode_cabac_residual_internal().

static int get_chroma_qp ( H264Context h,
int  t,
int  qscale 
) [inline, static]

static int get_consumed_bytes ( MpegEncContext s,
int  pos,
int  buf_size 
) [static]

returns the number of bytes consumed for building the current frame

Definition at line 7621 of file h264.c.

static int get_dct8x8_allowed ( H264Context h  )  [inline, static]

Definition at line 4121 of file h264.c.

Referenced by decode_mb_cabac(), and decode_mb_cavlc().

static int get_level_prefix ( GetBitContext gb  )  [inline, static]

Definition at line 4101 of file h264.c.

Referenced by decode_residual().

static int get_scale_factor ( H264Context *const   h,
int  poc,
int  poc1,
int  i 
) [static]

Definition at line 891 of file h264.c.

Referenced by direct_dist_scale_factor().

static void h264_luma_dc_dequant_idct_c ( DCTELEM block,
int  qp,
int  qmul 
) [static]

IDCT transforms the 16 dc values and dequantizes them.

Parameters:
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]

Definition at line 2685 of file h264.c.

Referenced by decode_slice(), and svq3_decode_frame().

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]

Definition at line 1793 of file h264.c.

Referenced by hl_decode_mb_internal().

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]

Definition at line 3052 of file h264.c.

Referenced by decode_slice_header().

static av_cold void init_cavlc_level_tab ( void   )  [static]

Definition at line 1880 of file h264.c.

Referenced by decode_init_vlc().

static void init_dequant4_coeff_table ( H264Context h  )  [static]

Definition at line 2024 of file h264.c.

Referenced by init_dequant_tables().

static void init_dequant8_coeff_table ( H264Context h  )  [static]

Definition at line 2001 of file h264.c.

Referenced by init_dequant_tables().

static void init_dequant_tables ( H264Context h  )  [static]

Definition at line 2049 of file h264.c.

Referenced by alloc_tables(), and decode_slice_header().

static int init_poc ( H264Context h  )  [static]

Definition at line 3488 of file h264.c.

Referenced by decode_slice_header().

static void init_scan_tables ( H264Context h  )  [static]

initialize scan tables

Definition at line 3569 of file h264.c.

Referenced by decode_slice_header().

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]

Definition at line 1600 of file h264.c.

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]

Definition at line 1759 of file h264.c.

Referenced by hl_motion().

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]

Definition at line 1658 of file h264.c.

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]

Definition at line 1692 of file h264.c.

Referenced by mc_part().

static av_always_inline uint32_t pack16to32 ( int  a,
int  b 
) [static]

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

Parameters:
pic_num picture number for which to extract structure information
structure one of PICT_XXX describing structure of picture with pic_num
Returns:
frame number (short term) or long term index of picture described by 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.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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]

Definition at line 872 of file h264.c.

Referenced by decode_mb_skip().

static int pred_weight_table ( H264Context h  )  [static]

Definition at line 2992 of file h264.c.

Referenced by decode_slice_header().

static void predict_field_decoding_flag ( H264Context h  )  [static]

Definition at line 4304 of file h264.c.

Referenced by decode_mb_cabac(), and decode_mb_cavlc().

static void prefetch_motion ( H264Context h,
int  list 
) [inline, static]

Definition at line 1777 of file h264.c.

Referenced by hl_motion(), and MPV_motion_internal().

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.

Returns:
the removed picture or NULL if an error occurs

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]

Returns:
the removed picture or NULL if an error occurs

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.

Parameters:
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.

Parameters:
h H.264 context.

Definition at line 2169 of file h264.c.

Referenced by decode_init(), decode_nal_units(), and flush_dpb().

static int split_field_copy ( Picture dest,
Picture src,
int  parity,
int  id_add 
) [static]

Definition at line 2707 of file h264.c.

Referenced by build_def_list().

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.

Parameters:
refmask mask of fields to unreference; the mask is bitwise anded with the reference marking of pic
Returns:
non-zero if pic becomes entirely unreferenced (except possibly for display purposes) zero if one of the fields remains in reference

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]

Definition at line 650 of file h264.c.

Referenced by decode_mb_cabac(), and decode_mb_cavlc().

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]

Definition at line 2342 of file h264.c.

Referenced by hl_decode_mb_internal().


Variable Documentation

int8_t cavlc_level_tab[7][1<< LEVEL_TAB_BITS][2] [static]

Definition at line 108 of file h264.c.

Referenced by decode_residual(), and init_cavlc_level_tab().

Definition at line 58 of file h264.c.

VLC_TYPE chroma_dc_coeff_token_vlc_table[256][2] [static]

Definition at line 59 of file h264.c.

Referenced by decode_init_vlc().

const int chroma_dc_coeff_token_vlc_table_size = 256 [static]

Definition at line 60 of file h264.c.

Referenced by decode_init_vlc().

Definition at line 66 of file h264.c.

VLC_TYPE chroma_dc_total_zeros_vlc_tables[3][8][2] [static]

Definition at line 67 of file h264.c.

Referenced by decode_init_vlc().

const int chroma_dc_total_zeros_vlc_tables_size = 8 [static]

Definition at line 68 of file h264.c.

Referenced by decode_init_vlc().

VLC coeff_token_vlc[4] [static]

Definition at line 54 of file h264.c.

VLC_TYPE coeff_token_vlc_tables[520+332+280+256][2] [static]

Definition at line 55 of file h264.c.

Referenced by decode_init_vlc().

const int coeff_token_vlc_tables_size[4] = {520,332,280,256} [static]

Definition at line 56 of file h264.c.

Referenced by decode_init_vlc().

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,
}

Definition at line 8122 of file h264.c.

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 run7_vlc [static]

Definition at line 74 of file h264.c.

VLC_TYPE run7_vlc_table[96][2] [static]

Definition at line 75 of file h264.c.

Referenced by decode_init_vlc().

const int run7_vlc_table_size = 96 [static]

Definition at line 76 of file h264.c.

Referenced by decode_init_vlc().

VLC run_vlc[6] [static]

Definition at line 70 of file h264.c.

VLC_TYPE run_vlc_tables[6][8][2] [static]

Definition at line 71 of file h264.c.

Referenced by decode_init_vlc().

const int run_vlc_tables_size = 8 [static]

Definition at line 72 of file h264.c.

Referenced by decode_init_vlc().

VLC total_zeros_vlc[15] [static]

Definition at line 62 of file h264.c.

VLC_TYPE total_zeros_vlc_tables[15][512][2] [static]

Definition at line 63 of file h264.c.

Referenced by decode_init_vlc().

const int total_zeros_vlc_tables_size = 512 [static]

Definition at line 64 of file h264.c.

Referenced by decode_init_vlc().


Generated on Fri Oct 26 02:35:43 2012 for FFmpeg by  doxygen 1.5.8