@ -180,8 +180,8 @@ static inline int parse_nal_units(AVCodecParserContext *s,
case NAL_SLICE :
case NAL_IDR_SLICE :
// Do not walk the whole buffer just to decode slice header
if ( src_length > 2 0)
src_length = 2 0;
if ( src_length > 6 0)
src_length = 6 0;
break ;
}
ptr = ff_h264_decode_nal ( h , buf , & dst_length , & consumed , src_length ) ;
@ -267,8 +267,18 @@ static inline int parse_nal_units(AVCodecParserContext *s,
h - > delta_poc [ 1 ] = get_se_golomb ( & h - > gb ) ;
}
/* Decode POC of this picture. */
field_poc [ 0 ] = field_poc [ 1 ] = INT_MAX ;
ff_init_poc ( h , field_poc , & s - > output_picture_number ) ;
/* Set up the prev_ values for decoding POC of the next picture. */
h - > prev_frame_num = h - > frame_num ;
h - > prev_frame_num_offset = h - > frame_num_offset ;
if ( h - > nal_ref_idc ! = 0 ) {
h - > prev_poc_msb = h - > poc_msb ;
h - > prev_poc_lsb = h - > poc_lsb ;
}
if ( h - > sps . pic_struct_present_flag ) {
switch ( h - > sei_pic_struct ) {
case SEI_PIC_STRUCT_TOP_FIELD :