FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
h264.h File Reference

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

#include "libavutil/intreadwrite.h"
#include "cabac.h"
#include "error_resilience.h"
#include "get_bits.h"
#include "mpegvideo.h"
#include "h264chroma.h"
#include "h264dsp.h"
#include "h264pred.h"
#include "h264qpel.h"
#include "rectangle.h"

Go to the source code of this file.

Data Structures

struct  SPS
 Sequence parameter set. More...
 
struct  PPS
 Picture parameter set. More...
 
struct  FPA
 Frame Packing Arrangement Type. More...
 
struct  MMCO
 Memory management control operation. More...
 
struct  H264Context
 H264Context. More...
 

Macros

#define MAX_SPS_COUNT   32
 
#define MAX_PPS_COUNT   256
 
#define MAX_MMCO_COUNT   66
 
#define MAX_DELAYED_PIC_COUNT   16
 
#define MAX_MBPAIR_SIZE   (256*1024)
 
#define ALLOW_INTERLACE
 
#define FMO   0
 
#define MAX_SLICES   16
 The maximum number of slices supported by the decoder.
 
#define MB_MBAFF(h)   h->mb_mbaff
 
#define MB_FIELD(h)   h->mb_field_decoding_flag
 
#define FRAME_MBAFF(h)   h->mb_aff_frame
 
#define FIELD_PICTURE(h)   (h->picture_structure != PICT_FRAME)
 
#define LEFT_MBS   2
 
#define LTOP   0
 
#define LBOT   1
 
#define LEFT(i)   (i)
 
#define FIELD_OR_MBAFF_PICTURE(h)   (FRAME_MBAFF(h) || FIELD_PICTURE(h))
 
#define CABAC(h)   h->pps.cabac
 
#define CHROMA(h)   (h->sps.chroma_format_idc)
 
#define CHROMA422(h)   (h->sps.chroma_format_idc == 2)
 
#define CHROMA444(h)   (h->sps.chroma_format_idc == 3)
 
#define EXTENDED_SAR   255
 
#define MB_TYPE_REF0   MB_TYPE_ACPRED
 
#define MB_TYPE_8x8DCT   0x01000000
 
#define IS_REF0(a)   ((a) & MB_TYPE_REF0)
 
#define IS_8x8DCT(a)   ((a) & MB_TYPE_8x8DCT)
 
#define QP_MAX_NUM   (51 + 6*6)
 
#define LIST_NOT_USED   -1
 
#define PART_NOT_AVAILABLE   -2
 
#define FRAME_RECOVERED_IDR   (1 << 0)
 We have seen an IDR, so all the following frames in coded order are correctly decodable.
 
#define FRAME_RECOVERED_SEI   (1 << 1)
 Sufficient number of frames have been decoded since a SEI recovery point, so all the following frames in presentation order are correct.
 
#define LUMA_DC_BLOCK_INDEX   48
 
#define CHROMA_DC_BLOCK_INDEX   49
 

Enumerations

enum  {
  NAL_SLICE = 1, NAL_DPA = 2, NAL_DPB = 3, NAL_DPC = 4,
  NAL_IDR_SLICE = 5, NAL_SEI = 6, NAL_SPS = 7, NAL_PPS = 8,
  NAL_AUD = 9, NAL_END_SEQUENCE = 10, NAL_END_STREAM = 11, NAL_FILLER_DATA = 12,
  NAL_SPS_EXT = 13, NAL_AUXILIARY_SLICE = 19, NAL_FF_IGNORE = 0xff0f001
}
 
enum  SEI_Type {
  SEI_TYPE_BUFFERING_PERIOD = 0, SEI_TYPE_PIC_TIMING = 1, SEI_TYPE_USER_DATA_ITU_T_T35 = 4, SEI_TYPE_USER_DATA_UNREGISTERED = 5,
  SEI_TYPE_RECOVERY_POINT = 6, SEI_TYPE_FRAME_PACKING = 45
}
 SEI message types. More...
 
enum  SEI_PicStructType {
  SEI_PIC_STRUCT_FRAME = 0, SEI_PIC_STRUCT_TOP_FIELD = 1, SEI_PIC_STRUCT_BOTTOM_FIELD = 2, SEI_PIC_STRUCT_TOP_BOTTOM = 3,
  SEI_PIC_STRUCT_BOTTOM_TOP = 4, SEI_PIC_STRUCT_TOP_BOTTOM_TOP = 5, SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM = 6, SEI_PIC_STRUCT_FRAME_DOUBLING = 7,
  SEI_PIC_STRUCT_FRAME_TRIPLING = 8
}
 pic_struct in picture timing SEI message More...
 
enum  SEI_FpaType {
  SEI_FPA_TYPE_CHECKERBOARD = 0, SEI_FPA_TYPE_INTERLEAVE_COLUMN = 1, SEI_FPA_TYPE_INTERLEAVE_ROW = 2, SEI_FPA_TYPE_SIDE_BY_SIDE = 3,
  SEI_FPA_TYPE_TOP_BOTTOM = 4, SEI_FPA_TYPE_INTERLEAVE_TEMPORAL = 5, SEI_FPA_TYPE_2D = 6
}
 frame_packing_arrangement types More...
 
enum  MMCOOpcode {
  MMCO_END = 0, MMCO_SHORT2UNUSED, MMCO_LONG2UNUSED, MMCO_SHORT2LONG,
  MMCO_SET_MAX_LONG, MMCO_RESET, MMCO_LONG
}
 Memory management control operation opcode. More...
 

Functions

int ff_h264_decode_sei (H264Context *h)
 Decode SEI.
 
int ff_h264_decode_seq_parameter_set (H264Context *h)
 Decode SPS.
 
int ff_h264_get_profile (SPS *sps)
 compute profile from sps
 
int ff_h264_decode_picture_parameter_set (H264Context *h, int bit_length)
 Decode PPS.
 
const uint8_tff_h264_decode_nal (H264Context *h, const uint8_t *src, int *dst_length, int *consumed, int length)
 Decode a network abstraction layer unit.
 
void ff_h264_free_context (H264Context *h)
 Free any data that may have been allocated in the H264 context like SPS, PPS etc.
 
int ff_h264_get_slice_type (const H264Context *h)
 Reconstruct bitstream slice_type.
 
int ff_h264_alloc_tables (H264Context *h)
 Allocate tables.
 
int ff_h264_fill_default_ref_list (H264Context *h)
 Fill the default_ref_list.
 
int ff_h264_decode_ref_pic_list_reordering (H264Context *h)
 
void ff_h264_fill_mbaff_ref_list (H264Context *h)
 
void ff_h264_remove_all_refs (H264Context *h)
 
int ff_h264_execute_ref_pic_marking (H264Context *h, MMCO *mmco, int mmco_count)
 Execute the reference picture marking (memory management control operations).
 
int ff_h264_decode_ref_pic_marking (H264Context *h, GetBitContext *gb, int first_slice)
 
int ff_generate_sliding_window_mmcos (H264Context *h, int first_slice)
 
int ff_h264_check_intra4x4_pred_mode (H264Context *h)
 Check if the top & left blocks are available if needed & change the dc mode so it only uses the available blocks.
 
int ff_h264_check_intra_pred_mode (H264Context *h, int mode, int is_chroma)
 Check if the top & left blocks are available if needed & change the dc mode so it only uses the available blocks.
 
void ff_h264_hl_decode_mb (H264Context *h)
 
int ff_h264_decode_extradata (H264Context *h, const uint8_t *buf, int size)
 
int ff_h264_decode_init (AVCodecContext *avctx)
 
void ff_h264_decode_init_vlc (void)
 
int ff_h264_decode_mb_cavlc (H264Context *h)
 Decode a macroblock.
 
int ff_h264_decode_mb_cabac (H264Context *h)
 Decode a CABAC coded macroblock.
 
void ff_h264_init_cabac_states (H264Context *h)
 
void ff_h264_direct_dist_scale_factor (H264Context *const h)
 
void ff_h264_direct_ref_list_init (H264Context *const h)
 
void ff_h264_pred_direct_motion (H264Context *const h, int *mb_type)
 
void ff_h264_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)
 
void ff_h264_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)
 
void ff_h264_reset_sei (H264Context *h)
 Reset SEI values at the beginning of the frame.
 
const char * ff_h264_sei_stereo_mode (H264Context *h)
 Get stereo_mode string from the h264 frame_packing_arrangement.
 
static av_always_inline uint32_t pack16to32 (int a, int b)
 
static av_always_inline uint16_t pack8to16 (int a, int b)
 
static av_always_inline int get_chroma_qp (H264Context *h, int t, int qscale)
 Get the chroma qp.
 
static av_always_inline int pred_intra_mode (H264Context *h, int n)
 Get the predicted intra4x4 prediction mode.
 
static av_always_inline void write_back_intra_pred_mode (H264Context *h)
 
static av_always_inline void write_back_non_zero_count (H264Context *h)
 
static av_always_inline void write_back_motion_list (H264Context *h, int b_stride, int b_xy, int b8_xy, int mb_type, int list)
 
static av_always_inline void write_back_motion (H264Context *h, int mb_type)
 
static av_always_inline int get_dct8x8_allowed (H264Context *h)
 
void ff_h264_draw_horiz_band (H264Context *h, int y, int height)
 
int ff_init_poc (H264Context *h, int pic_field_poc[2], int *pic_poc)
 
int ff_pred_weight_table (H264Context *h)
 
int ff_set_ref_count (H264Context *h)
 

Variables

const uint8_t ff_h264_chroma_qp [7][QP_MAX_NUM+1]
 One chroma qp table for each possible bit depth (8-14).
 
const uint16_t ff_h264_mb_sizes [4]
 
static const uint8_t scan8 [16 *3+3]
 

Detailed Description

H.264 / AVC / MPEG4 part10 codec.

Author
Michael Niedermayer micha.nosp@m.elni.nosp@m.@gmx..nosp@m.at

Definition in file h264.h.

Macro Definition Documentation

#define MAX_SPS_COUNT   32
#define MAX_PPS_COUNT   256
#define MAX_MMCO_COUNT   66
#define MAX_DELAYED_PIC_COUNT   16
#define MAX_MBPAIR_SIZE   (256*1024)

Definition at line 49 of file h264.h.

Referenced by ff_h264_decode_nal().

#define ALLOW_INTERLACE

Definition at line 53 of file h264.h.

#define FMO   0

Definition at line 55 of file h264.h.

Referenced by ff_h264_alloc_tables(), fill_decode_neighbors(), and write_back_motion_list().

#define MAX_SLICES   16

The maximum number of slices supported by the decoder.

must be a power of 2

Definition at line 61 of file h264.h.

#define MB_MBAFF (   h)    h->mb_mbaff
#define MB_FIELD (   h)    h->mb_field_decoding_flag
#define FRAME_MBAFF (   h)    h->mb_aff_frame
#define FIELD_PICTURE (   h)    (h->picture_structure != PICT_FRAME)
#define LEFT_MBS   2

Definition at line 68 of file h264.h.

Referenced by fill_decode_caches(), fill_decode_neighbors(), and fill_filter_caches().

#define LTOP   0
#define LBOT   1

Definition at line 70 of file h264.h.

Referenced by fill_decode_caches(), fill_decode_neighbors(), and fill_filter_caches().

#define LEFT (   i)    (i)

Definition at line 71 of file h264.h.

#define FIELD_OR_MBAFF_PICTURE (   h)    (FRAME_MBAFF(h) || FIELD_PICTURE(h))
#define CABAC (   h)    h->pps.cabac
#define CHROMA (   h)    (h->sps.chroma_format_idc)

Definition at line 90 of file h264.h.

Referenced by ff_h264_filter_mb(), and h264_filter_mb_fast_internal().

#define CHROMA422 (   h)    (h->sps.chroma_format_idc == 2)
#define CHROMA444 (   h)    (h->sps.chroma_format_idc == 3)
#define EXTENDED_SAR   255

Definition at line 94 of file h264.h.

Referenced by decode_vui_parameters().

#define MB_TYPE_REF0   MB_TYPE_ACPRED

Definition at line 96 of file h264.h.

#define MB_TYPE_8x8DCT   0x01000000

Definition at line 97 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), and ff_h264_decode_mb_cavlc().

#define IS_REF0 (   a)    ((a) & MB_TYPE_REF0)

Definition at line 98 of file h264.h.

Referenced by ff_h264_decode_mb_cavlc().

#define IS_8x8DCT (   a)    ((a) & MB_TYPE_8x8DCT)
#define QP_MAX_NUM   (51 + 6*6)

Definition at line 101 of file h264.h.

#define LIST_NOT_USED   -1
#define PART_NOT_AVAILABLE   -2
#define FRAME_RECOVERED_IDR   (1 << 0)

We have seen an IDR, so all the following frames in coded order are correctly decodable.

Definition at line 671 of file h264.h.

Referenced by decode_nal_units().

#define FRAME_RECOVERED_SEI   (1 << 1)

Sufficient number of frames have been decoded since a SEI recovery point, so all the following frames in presentation order are correct.

Definition at line 676 of file h264.h.

Referenced by decode_postinit(), and ff_h264_execute_ref_pic_marking().

#define LUMA_DC_BLOCK_INDEX   48
#define CHROMA_DC_BLOCK_INDEX   49

Enumeration Type Documentation

anonymous enum
Enumerator:
NAL_SLICE 
NAL_DPA 
NAL_DPB 
NAL_DPC 
NAL_IDR_SLICE 
NAL_SEI 
NAL_SPS 
NAL_PPS 
NAL_AUD 
NAL_END_SEQUENCE 
NAL_END_STREAM 
NAL_FILLER_DATA 
NAL_SPS_EXT 
NAL_AUXILIARY_SLICE 
NAL_FF_IGNORE 

Definition at line 104 of file h264.h.

enum SEI_Type

SEI message types.

Enumerator:
SEI_TYPE_BUFFERING_PERIOD 

buffering period (H.264, D.1.1)

SEI_TYPE_PIC_TIMING 

picture timing

SEI_TYPE_USER_DATA_ITU_T_T35 

user data registered by ITU-T Recommendation T.35

SEI_TYPE_USER_DATA_UNREGISTERED 

unregistered user data

SEI_TYPE_RECOVERY_POINT 

recovery point (frame # to decoder sync)

SEI_TYPE_FRAME_PACKING 

frame packing arrangement

Definition at line 125 of file h264.h.

pic_struct in picture timing SEI message

Enumerator:
SEI_PIC_STRUCT_FRAME 

0: frame

SEI_PIC_STRUCT_TOP_FIELD 

1: top field

SEI_PIC_STRUCT_BOTTOM_FIELD 

2: bottom field

SEI_PIC_STRUCT_TOP_BOTTOM 

3: top field, bottom field, in that order

SEI_PIC_STRUCT_BOTTOM_TOP 

4: bottom field, top field, in that order

SEI_PIC_STRUCT_TOP_BOTTOM_TOP 

5: top field, bottom field, top field repeated, in that order

SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM 

6: bottom field, top field, bottom field repeated, in that order

SEI_PIC_STRUCT_FRAME_DOUBLING 

7: frame doubling

SEI_PIC_STRUCT_FRAME_TRIPLING 

8: frame tripling

Definition at line 137 of file h264.h.

frame_packing_arrangement types

Enumerator:
SEI_FPA_TYPE_CHECKERBOARD 
SEI_FPA_TYPE_INTERLEAVE_COLUMN 
SEI_FPA_TYPE_INTERLEAVE_ROW 
SEI_FPA_TYPE_SIDE_BY_SIDE 
SEI_FPA_TYPE_TOP_BOTTOM 
SEI_FPA_TYPE_INTERLEAVE_TEMPORAL 
SEI_FPA_TYPE_2D 

Definition at line 152 of file h264.h.

enum MMCOOpcode

Memory management control operation opcode.

Enumerator:
MMCO_END 
MMCO_SHORT2UNUSED 
MMCO_LONG2UNUSED 
MMCO_SHORT2LONG 
MMCO_SET_MAX_LONG 
MMCO_RESET 
MMCO_LONG 

Definition at line 265 of file h264.h.

Function Documentation

int ff_h264_decode_sei ( H264Context h)

Decode SEI.

Definition at line 263 of file h264_sei.c.

Referenced by decode_nal_units(), and parse_nal_units().

int ff_h264_decode_seq_parameter_set ( H264Context h)

Decode SPS.

Definition at line 324 of file h264_ps.c.

Referenced by decode_nal_units(), and parse_nal_units().

int ff_h264_get_profile ( SPS sps)

compute profile from sps

compute profile from sps

Parameters
spsSPS
Returns
profile as defined by FF_PROFILE_H264_*

Definition at line 3100 of file h264.c.

Referenced by decode_slice_header(), and parse_nal_units().

int ff_h264_decode_picture_parameter_set ( H264Context h,
int  bit_length 
)

Decode PPS.

Definition at line 596 of file h264_ps.c.

Referenced by decode_nal_units(), and parse_nal_units().

const uint8_t* ff_h264_decode_nal ( H264Context h,
const uint8_t src,
int *  dst_length,
int *  consumed,
int  length 
)

Decode a network abstraction layer unit.

Parameters
consumedis the number of bytes used as input
lengthis the length of the array
dst_lengthis 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 621 of file h264.c.

Referenced by decode_nal_units(), and parse_nal_units().

void ff_h264_free_context ( H264Context h)

Free any data that may have been allocated in the H264 context like SPS, PPS etc.

Definition at line 5306 of file h264.c.

Referenced by close(), ff_h264_decode_init(), h264_decode_end(), and svq3_decode_end().

int ff_h264_get_slice_type ( const H264Context h)

Reconstruct bitstream slice_type.

Definition at line 4172 of file h264.c.

Referenced by fill_slice_long(), and vaapi_h264_decode_slice().

int ff_h264_alloc_tables ( H264Context h)

Allocate tables.

needs width/height

Definition at line 1345 of file h264.c.

Referenced by decode_update_thread_context(), h264_slice_header_init(), and svq3_decode_init().

int ff_h264_fill_default_ref_list ( H264Context h)

Fill the default_ref_list.

Definition at line 119 of file h264_refs.c.

Referenced by decode_slice_header().

int ff_h264_decode_ref_pic_list_reordering ( H264Context h)

Definition at line 217 of file h264_refs.c.

Referenced by decode_slice_header().

void ff_h264_fill_mbaff_ref_list ( H264Context h)

Definition at line 347 of file h264_refs.c.

Referenced by decode_slice_header().

void ff_h264_remove_all_refs ( H264Context h)

Definition at line 483 of file h264_refs.c.

Referenced by h264_decode_end(), and idr().

int ff_h264_execute_ref_pic_marking ( H264Context h,
MMCO mmco,
int  mmco_count 
)

Execute the reference picture marking (memory management control operations).

Definition at line 583 of file h264_refs.c.

Referenced by decode_slice_header(), decode_update_thread_context(), and field_end().

int ff_h264_decode_ref_pic_marking ( H264Context h,
GetBitContext gb,
int  first_slice 
)

Definition at line 784 of file h264_refs.c.

Referenced by decode_slice_header().

int ff_generate_sliding_window_mmcos ( H264Context h,
int  first_slice 
)

Definition at line 551 of file h264_refs.c.

Referenced by decode_slice_header(), and ff_h264_decode_ref_pic_marking().

int ff_h264_check_intra4x4_pred_mode ( H264Context h)

Check if the top & left blocks are available if needed & change the dc mode so it only uses the available blocks.

Definition at line 533 of file h264.c.

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

int ff_h264_check_intra_pred_mode ( H264Context h,
int  mode,
int  is_chroma 
)

Check if the top & left blocks are available if needed & change the dc mode so it only uses the available blocks.

Definition at line 580 of file h264.c.

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

void ff_h264_hl_decode_mb ( H264Context h)

Definition at line 2667 of file h264.c.

Referenced by decode_slice(), h264_er_decode_mb(), and svq3_decode_frame().

int ff_h264_decode_extradata ( H264Context h,
const uint8_t buf,
int  size 
)

Definition at line 1508 of file h264.c.

Referenced by ff_h264_decode_init(), h264_decode_frame(), and h264_parse().

int ff_h264_decode_init ( AVCodecContext avctx)

Definition at line 1570 of file h264.c.

Referenced by svq3_decode_init().

void ff_h264_decode_init_vlc ( void  )

Definition at line 326 of file h264_cavlc.c.

Referenced by ff_h264_decode_init().

int ff_h264_decode_mb_cavlc ( H264Context h)

Decode a macroblock.

Returns
0 if OK, ER_AC_ERROR / ER_DC_ERROR / ER_MV_ERROR on error

Definition at line 699 of file h264_cavlc.c.

Referenced by decode_slice().

int ff_h264_decode_mb_cabac ( H264Context h)

Decode a CABAC coded macroblock.

Returns
0 if OK, ER_AC_ERROR / ER_DC_ERROR / ER_MV_ERROR on error

Decode a CABAC coded macroblock.

Returns
0 if OK, ER_AC_ERROR / ER_DC_ERROR / ER_MV_ERROR if an error is noticed

Definition at line 1883 of file h264_cabac.c.

Referenced by decode_slice().

void ff_h264_init_cabac_states ( H264Context h)

Definition at line 1262 of file h264_cabac.c.

Referenced by decode_slice().

void ff_h264_direct_dist_scale_factor ( H264Context *const  h)

Definition at line 50 of file h264_direct.c.

Referenced by decode_slice_header().

void ff_h264_direct_ref_list_init ( H264Context *const  h)

Definition at line 102 of file h264_direct.c.

Referenced by decode_slice_header().

void ff_h264_pred_direct_motion ( H264Context *const  h,
int *  mb_type 
)

Definition at line 622 of file h264_direct.c.

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

void ff_h264_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 
)

Definition at line 416 of file h264_loopfilter.c.

Referenced by loop_filter().

void ff_h264_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 
)

Definition at line 704 of file h264_loopfilter.c.

Referenced by ff_h264_filter_mb_fast(), and loop_filter().

void ff_h264_reset_sei ( H264Context h)

Reset SEI values at the beginning of the frame.

Parameters
hH.264 context.

Definition at line 37 of file h264_sei.c.

Referenced by decode_nal_units(), ff_h264_decode_init(), flush_change(), and parse_nal_units().

const char* ff_h264_sei_stereo_mode ( H264Context h)

Get stereo_mode string from the h264 frame_packing_arrangement.

Parameters
hH.264 context.

Definition at line 335 of file h264_sei.c.

Referenced by output_frame().

static av_always_inline uint32_t pack16to32 ( int  a,
int  b 
)
static
static av_always_inline uint16_t pack8to16 ( int  a,
int  b 
)
static

Definition at line 888 of file h264.h.

Referenced by ff_h264_decode_mb_cabac().

static av_always_inline int get_chroma_qp ( H264Context h,
int  t,
int  qscale 
)
static
static av_always_inline int pred_intra_mode ( H264Context h,
int  n 
)
static

Get the predicted intra4x4 prediction mode.

Definition at line 908 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), and ff_h264_decode_mb_cavlc().

static av_always_inline void write_back_intra_pred_mode ( H264Context h)
static

Definition at line 923 of file h264.h.

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

static av_always_inline void write_back_non_zero_count ( H264Context h)
static

Definition at line 934 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), and ff_h264_decode_mb_cavlc().

static av_always_inline void write_back_motion_list ( H264Context h,
int  b_stride,
int  b_xy,
int  b8_xy,
int  mb_type,
int  list 
)
static

Definition at line 957 of file h264.h.

Referenced by write_back_motion().

static av_always_inline void write_back_motion ( H264Context h,
int  mb_type 
)
static

Definition at line 992 of file h264.h.

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

static av_always_inline int get_dct8x8_allowed ( H264Context h)
static

Definition at line 1017 of file h264.h.

Referenced by ff_h264_decode_mb_cabac(), and ff_h264_decode_mb_cavlc().

void ff_h264_draw_horiz_band ( H264Context h,
int  y,
int  height 
)
int ff_init_poc ( H264Context h,
int  pic_field_poc[2],
int *  pic_poc 
)

Definition at line 2893 of file h264.c.

Referenced by decode_slice_header(), and parse_nal_units().

int ff_pred_weight_table ( H264Context h)

Definition at line 2687 of file h264.c.

Referenced by decode_slice_header(), and scan_mmco_reset().

int ff_set_ref_count ( H264Context h)

Definition at line 3393 of file h264.c.

Referenced by decode_slice_header(), and scan_mmco_reset().

Variable Documentation

const uint8_t ff_h264_chroma_qp[7][QP_MAX_NUM+1]

One chroma qp table for each possible bit depth (8-14).

Definition at line 71 of file h264_ps.c.

Referenced by build_qp_table(), and hl_decode_mb().

const uint16_t ff_h264_mb_sizes[4]

Definition at line 57 of file h264.c.

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

const uint8_t scan8[16 *3+3]
static
Initial value:
= {
4 + 1 * 8, 5 + 1 * 8, 4 + 2 * 8, 5 + 2 * 8,
6 + 1 * 8, 7 + 1 * 8, 6 + 2 * 8, 7 + 2 * 8,
4 + 3 * 8, 5 + 3 * 8, 4 + 4 * 8, 5 + 4 * 8,
6 + 3 * 8, 7 + 3 * 8, 6 + 4 * 8, 7 + 4 * 8,
4 + 6 * 8, 5 + 6 * 8, 4 + 7 * 8, 5 + 7 * 8,
6 + 6 * 8, 7 + 6 * 8, 6 + 7 * 8, 7 + 7 * 8,
4 + 8 * 8, 5 + 8 * 8, 4 + 9 * 8, 5 + 9 * 8,
6 + 8 * 8, 7 + 8 * 8, 6 + 9 * 8, 7 + 9 * 8,
4 + 11 * 8, 5 + 11 * 8, 4 + 12 * 8, 5 + 12 * 8,
6 + 11 * 8, 7 + 11 * 8, 6 + 12 * 8, 7 + 12 * 8,
4 + 13 * 8, 5 + 13 * 8, 4 + 14 * 8, 5 + 14 * 8,
6 + 13 * 8, 7 + 13 * 8, 6 + 14 * 8, 7 + 14 * 8,
0 + 0 * 8, 0 + 5 * 8, 0 + 10 * 8
}

Definition at line 863 of file h264.h.

Referenced by context_init(), decode_cabac_luma_residual(), decode_cabac_mb_ref(), decode_cabac_residual_dc(), decode_cabac_residual_dc_422(), decode_cabac_residual_internal(), decode_cabac_residual_nondc(), decode_luma_residual(), decode_residual(), decode_slice(), fetch_diagonal_mv(), ff_h264_check_intra4x4_pred_mode(), ff_h264_decode_mb_cabac(), ff_h264_decode_mb_cavlc(), ff_h264_idct8_add4(), ff_h264_idct_add16(), ff_h264_idct_add16intra(), ff_h264_idct_add8(), ff_h264_idct_add8_422(), fill_decode_caches(), fill_filter_caches(), fill_filter_caches_inter(), filter_mb_dir(), get_cabac_cbf_ctx(), get_lowest_part_list_y(), get_lowest_part_y(), h264_er_decode_mb(), h264_frame_start(), hl_decode_mb(), hl_decode_mb_444(), hl_decode_mb_idct_luma(), hl_decode_mb_predict_luma(), mc_dir_part(), mc_part(), mc_part_std(), mc_part_weighted(), pred_16x8_motion(), pred_8x16_motion(), pred_intra_mode(), pred_motion(), pred_non_zero_count(), pred_pskip_motion(), pred_spatial_direct_motion(), pred_temp_direct_motion(), prefetch_motion(), svq3_decode_frame(), svq3_decode_mb(), svq3_mc_dir(), and write_back_motion_list().