@ -334,10 +334,6 @@ av_cold int ff_h264_decode_init(AVCodecContext *avctx)
if ( ret < 0 )
return ret ;
/* set defaults */
if ( ! avctx - > has_b_frames )
h - > low_delay = 1 ;
ret = ff_thread_once ( & h264_vlc_init , ff_h264_decode_init_vlc ) ;
if ( ret ! = 0 ) {
av_log ( avctx , AV_LOG_ERROR , " pthread_once has failed. " ) ;
@ -363,7 +359,6 @@ av_cold int ff_h264_decode_init(AVCodecContext *avctx)
if ( h - > ps . sps & & h - > ps . sps - > bitstream_restriction_flag & &
h - > avctx - > has_b_frames < h - > ps . sps - > num_reorder_frames ) {
h - > avctx - > has_b_frames = h - > ps . sps - > num_reorder_frames ;
h - > low_delay = 0 ;
}
avctx - > internal - > allocate_progress = 1 ;
@ -581,7 +576,6 @@ static void decode_postinit(H264Context *h, int setup_finished)
h - > avctx - > strict_std_compliance > = FF_COMPLIANCE_NORMAL ) {
h - > avctx - > has_b_frames = FFMAX ( h - > avctx - > has_b_frames , sps - > num_reorder_frames ) ;
}
h - > low_delay = ! h - > avctx - > has_b_frames ;
pics = 0 ;
while ( h - > delayed_pic [ pics ] )
@ -646,12 +640,10 @@ static void decode_postinit(H264Context *h, int setup_finished)
if ( invalid + cnt < MAX_DELAYED_PIC_COUNT ) {
h - > avctx - > has_b_frames = FFMAX ( h - > avctx - > has_b_frames , cnt ) ;
}
h - > low_delay = 0 ;
} else if ( h - > low_delay & &
} else if ( ! h - > avctx - > has_b_frames & &
( ( h - > next_outputed_poc ! = INT_MIN & &
out - > poc > h - > next_outputed_poc + 2 ) | |
cur - > f - > pict_type = = AV_PICTURE_TYPE_B ) ) {
h - > low_delay = 0 ;
h - > avctx - > has_b_frames + + ;
}