diff --git a/ffmpeg.c b/ffmpeg.c index 6338a686c3..f2aef21bc0 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -1886,11 +1886,16 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output) // The following line may be required in some cases where there is no parser // or the parser does not has_b_frames correctly -// ist->st->codec->has_b_frames = ist->dec_ctx->has_b_frames; if (ist->st->codec->has_b_frames < ist->dec_ctx->has_b_frames) { - av_log_ask_for_sample(ist->dec_ctx, "has_b_frames is larger in decoder than demuxer %d > %d ", - ist->dec_ctx->has_b_frames, ist->st->codec->has_b_frames - ); + if (ist->dec_ctx->codec_id == AV_CODEC_ID_H264) { + ist->st->codec->has_b_frames = ist->dec_ctx->has_b_frames; + } else + av_log_ask_for_sample( + ist->dec_ctx, + "has_b_frames is larger in decoder than demuxer %d > %d ", + ist->dec_ctx->has_b_frames, + ist->st->codec->has_b_frames + ); } if (*got_output || ret<0 || pkt->size)