From 01d3ebaf219d83c0a70cdf9696ecb6b868e8a165 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 14 May 2011 00:11:10 +0200 Subject: [PATCH] AVFrame: only set parameters from AVCodecContext in decode_video*() when no frame reordering is used. Signed-off-by: Michael Niedermayer --- libavcodec/utils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 6ec8addfb1..b61f9b70ea 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -743,6 +743,8 @@ int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *pi ret = avctx->codec->decode(avctx, picture, got_picture_ptr, avpkt); picture->pkt_dts= avpkt->dts; + + if(!avctx->has_b_frames){ picture->pkt_pos= avpkt->pos; if (!picture->sample_aspect_ratio.num) picture->sample_aspect_ratio = avctx->sample_aspect_ratio; @@ -752,6 +754,7 @@ int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *pi picture->height = avctx->height; if (picture->format == PIX_FMT_NONE) picture->format = avctx->pix_fmt; + } } emms_c(); //needed to avoid an emms_c() call before every return;