H.264 / AVC / MPEG4 part10 codec. More...
#include "dsputil.h"
#include "cabac.h"
#include "mpegvideo.h"
#include "h264pred.h"
Go to the source code of this file.
Data Structures | |
struct | SPS |
Sequence parameter set. More... | |
struct | PPS |
Picture parameter set. More... | |
struct | MMCO |
Memory management control operation. More... | |
struct | H264Context |
H264Context. More... | |
Defines | |
#define | interlaced_dct interlaced_dct_is_a_bad_name |
#define | mb_intra mb_intra_is_not_initialized_see_mb_type |
#define | LUMA_DC_BLOCK_INDEX 25 |
#define | CHROMA_DC_BLOCK_INDEX 26 |
#define | CHROMA_DC_COEFF_TOKEN_VLC_BITS 8 |
#define | COEFF_TOKEN_VLC_BITS 8 |
#define | TOTAL_ZEROS_VLC_BITS 9 |
#define | CHROMA_DC_TOTAL_ZEROS_VLC_BITS 3 |
#define | RUN_VLC_BITS 3 |
#define | RUN7_VLC_BITS 6 |
#define | MAX_SPS_COUNT 32 |
#define | MAX_PPS_COUNT 256 |
#define | MAX_MMCO_COUNT 66 |
#define | MAX_DELAYED_PIC_COUNT 16 |
#define | ALLOW_INTERLACE |
#define | ALLOW_NOCHROMA |
#define | MAX_SLICES 16 |
The maximum number of slices supported by the decoder. | |
#define | MB_MBAFF 0 |
#define | MB_FIELD 0 |
#define | FRAME_MBAFF 0 |
#define | FIELD_PICTURE 0 |
#define | IS_INTERLACED(mb_type) 0 |
#define | FIELD_OR_MBAFF_PICTURE (FRAME_MBAFF || FIELD_PICTURE) |
#define | CHROMA 1 |
#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 | LIST_NOT_USED -1 |
#define | PART_NOT_AVAILABLE -2 |
Typedefs | |
typedef struct SPS | SPS |
Sequence parameter set. | |
typedef struct PPS | PPS |
Picture parameter set. | |
typedef enum MMCOOpcode | MMCOOpcode |
Memory management control operation opcode. | |
typedef struct MMCO | MMCO |
Memory management control operation. | |
typedef struct H264Context | H264Context |
H264Context. | |
Enumerations | |
enum | { NAL_SLICE = 1, 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 = 19 } |
enum | SEI_Type { SEI_BUFFERING_PERIOD = 0, SEI_TYPE_PIC_TIMING = 1, SEI_TYPE_USER_DATA_UNREGISTERED = 5, SEI_TYPE_RECOVERY_POINT = 6 } |
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 | 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_decode_picture_parameter_set (H264Context *h, int bit_length) |
Decode PPS. | |
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 |
H.264 / AVC / MPEG4 part10 codec.
Definition in file h264.h.
#define CHROMA 1 |
Definition at line 86 of file h264.h.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), and pred_weight_table().
#define CHROMA_DC_BLOCK_INDEX 26 |
Definition at line 40 of file h264.h.
Referenced by decode_mb_cavlc(), and decode_residual().
#define CHROMA_DC_COEFF_TOKEN_VLC_BITS 8 |
Definition at line 42 of file h264.h.
Referenced by decode_init_vlc(), and decode_residual().
#define CHROMA_DC_TOTAL_ZEROS_VLC_BITS 3 |
Definition at line 45 of file h264.h.
Referenced by decode_init_vlc(), and decode_residual().
#define COEFF_TOKEN_VLC_BITS 8 |
Definition at line 43 of file h264.h.
Referenced by decode_init_vlc(), and decode_residual().
#define EXTENDED_SAR 255 |
Definition at line 89 of file h264.h.
Referenced by decode_vui_parameters().
#define FIELD_OR_MBAFF_PICTURE (FRAME_MBAFF || FIELD_PICTURE) |
Definition at line 81 of file h264.h.
Referenced by decode_frame(), decode_slice(), and decode_slice_header().
#define FIELD_PICTURE 0 |
Definition at line 77 of file h264.h.
Referenced by compute_mb_neighbors(), decode_cabac_mb_skip(), decode_frame(), decode_ref_pic_list_reordering(), decode_ref_pic_marking(), decode_slice_header(), fill_caches(), fill_default_ref_list(), filter_mb_fast(), and pic_num_extract().
#define FRAME_MBAFF 0 |
Definition at line 76 of file h264.h.
Referenced by backup_mb_border(), compute_mb_neighbors(), decode_cabac_mb_skip(), decode_mb_cabac(), decode_mb_cavlc(), decode_slice(), decode_slice_header(), direct_ref_list_init(), fetch_diagonal_mv(), fill_caches(), filter_mb(), filter_mb_dir(), filter_mb_fast(), frame_start(), hl_decode_mb_internal(), pred_direct_motion(), and xchg_mb_border().
#define IS_8x8DCT | ( | a | ) | ((a) & MB_TYPE_8x8DCT) |
Definition at line 94 of file h264.h.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), fill_caches(), filter_mb(), filter_mb_dir(), filter_mb_fast(), and hl_decode_mb_internal().
#define IS_INTERLACED | ( | mb_type | ) | 0 |
Definition at line 79 of file h264.h.
Referenced by check_input_motion(), compute_mb_neighbors(), decode_cabac_field_decoding_flag(), decode_cabac_mb_skip(), decode_mb_cabac(), decode_mb_cavlc(), fetch_diagonal_mv(), ff_mpeg4_set_direct_mv(), ff_print_debug_info(), fill_caches(), filter_mb(), filter_mb_dir(), pred_direct_motion(), and predict_field_decoding_flag().
#define IS_REF0 | ( | a | ) | ((a) & MB_TYPE_REF0) |
Definition at line 93 of file h264.h.
Referenced by decode_mb_cavlc().
#define LIST_NOT_USED -1 |
Definition at line 290 of file h264.h.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), fill_caches(), and write_back_motion().
#define LUMA_DC_BLOCK_INDEX 25 |
Definition at line 39 of file h264.h.
Referenced by decode_mb_cavlc(), and decode_residual().
#define MAX_DELAYED_PIC_COUNT 16 |
Definition at line 54 of file h264.h.
Referenced by decode_frame(), and flush_dpb().
#define MAX_MMCO_COUNT 66 |
Definition at line 52 of file h264.h.
Referenced by decode_ref_pic_marking().
#define MAX_PPS_COUNT 256 |
Definition at line 50 of file h264.h.
Referenced by decode_end(), decode_slice_header(), ff_h264_decode_picture_parameter_set(), and parse_nal_units().
#define MAX_SLICES 16 |
The maximum number of slices supported by the decoder.
must be a power of 2
Definition at line 66 of file h264.h.
Referenced by decode_slice_header(), and filter_mb_dir().
#define MAX_SPS_COUNT 32 |
Definition at line 49 of file h264.h.
Referenced by decode_end(), ff_h264_decode_picture_parameter_set(), and ff_h264_decode_seq_parameter_set().
#define MB_FIELD 0 |
Definition at line 75 of file h264.h.
Referenced by compute_mb_neighbors(), decode_cabac_mb_skip(), decode_cabac_residual_internal(), decode_mb_cabac(), decode_mb_cavlc(), decode_mb_skip(), fetch_diagonal_mv(), fill_caches(), filter_mb(), filter_mb_mbaff_edgecv(), filter_mb_mbaff_edgev(), hl_decode_mb_internal(), mc_dir_part(), mc_part_std(), mc_part_weighted(), and xchg_mb_border().
#define MB_MBAFF 0 |
Definition at line 74 of file h264.h.
Referenced by backup_mb_border(), decode_mb_cabac(), decode_mb_cavlc(), fill_caches(), filter_mb_dir(), and xchg_mb_border().
#define MB_TYPE_8x8DCT 0x01000000 |
Definition at line 92 of file h264.h.
Referenced by decode_mb_cabac(), and decode_mb_cavlc().
#define PART_NOT_AVAILABLE -2 |
Definition at line 291 of file h264.h.
Referenced by decode_mb_cabac(), decode_mb_cavlc(), fetch_diagonal_mv(), fill_caches(), pred_direct_motion(), pred_motion(), pred_pskip_motion(), svq3_decode_frame(), and svq3_decode_mb().
#define RUN7_VLC_BITS 6 |
Definition at line 47 of file h264.h.
Referenced by decode_init_vlc(), and decode_residual().
#define RUN_VLC_BITS 3 |
Definition at line 46 of file h264.h.
Referenced by decode_init_vlc(), and decode_residual().
#define TOTAL_ZEROS_VLC_BITS 9 |
Definition at line 44 of file h264.h.
Referenced by decode_init_vlc(), and decode_residual().
typedef struct H264Context H264Context |
typedef enum MMCOOpcode MMCOOpcode |
Memory management control operation opcode.
anonymous enum |
enum MMCOOpcode |
enum SEI_PicStructType |
pic_struct in picture timing SEI message
enum SEI_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.
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 7248 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 6903 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 7101 of file h264.c.
Referenced by decode_nal_units(), and parse_nal_units().