X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fh264.h;h=3355d05e97a6d7c6075452335e747db112cd574d;hb=8e09e183fc5fbddec153e41bb8f9b30eb6e11add;hp=4e44fba163c11d58cfb2c3f607eab9ab89261979;hpb=89c8eaa3216a48c1d18cc390525e90db74513f0c;p=ffmpeg diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 4e44fba163c..3355d05e97a 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -98,12 +98,6 @@ #define IS_REF0(a) ((a) & MB_TYPE_REF0) #define IS_8x8DCT(a) ((a) & MB_TYPE_8x8DCT) -/** - * Value of Picture.reference when Picture is not a reference picture, but - * is held for delayed output. - */ -#define DELAYED_PIC_REF 4 - #define QP_MAX_NUM (51 + 6*6) // The maximum supported qp /* NAL unit types */ @@ -121,7 +115,8 @@ enum { NAL_END_STREAM, NAL_FILLER_DATA, NAL_SPS_EXT, - NAL_AUXILIARY_SLICE = 19 + NAL_AUXILIARY_SLICE = 19, + NAL_FF_IGNORE = 0xff0f001, }; /** @@ -207,6 +202,7 @@ typedef struct SPS { int bit_depth_chroma; ///< bit_depth_chroma_minus8 + 8 int residual_color_transform_flag; ///< residual_colour_transform_flag int constraint_set_flags; ///< constraint_set[0-3]_flag + int new; ///< flag to keep track if the decoder context needs re-init due to changed SPS } SPS; /** @@ -333,6 +329,7 @@ typedef struct H264Context { int emu_edge_width; int emu_edge_height; + unsigned current_sps_id; ///< id of the current SPS SPS sps; ///< current sps /** @@ -371,7 +368,7 @@ typedef struct H264Context { int direct_spatial_mv_pred; int col_parity; int col_fieldoff; - int dist_scale_factor[16]; + int dist_scale_factor[32]; int dist_scale_factor_field[2][32]; int map_col_to_list0[2][16 + 32]; int map_col_to_list0_field[2][2][16 + 32]; @@ -447,7 +444,6 @@ typedef struct H264Context { int nal_unit_type; uint8_t *rbsp_buffer[2]; unsigned int rbsp_buffer_size[2]; - int decoding_extradata; /** * Used to parse AVC variant of h264 @@ -456,6 +452,8 @@ typedef struct H264Context { int nal_length_size; ///< Number of bytes used for nal length (1, 2 or 4) int got_first; ///< this flag is != 0 if we've parsed a frame + int context_reinitialized; + SPS *sps_buffers[MAX_SPS_COUNT]; PPS *pps_buffers[MAX_PPS_COUNT];