dxa: fix support of decoding all frames even in the absence of references
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 17 Aug 2013 09:12:47 +0000 (11:12 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 17 Aug 2013 09:48:22 +0000 (11:48 +0200)
The case where decoding should only happen for keyframes and afterwards
(CODEC_FLAG2_SHOW_ALL not set) does not fully work neither before nor
after this

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/dxa.c

index 0ef208b..8f8e1a7 100644 (file)
@@ -264,7 +264,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac
     case 5:
         if (!tmpptr && (compr & 1)) {
             av_log(avctx, AV_LOG_ERROR, "Missing reference frame.\n");
-            return AVERROR_INVALIDDATA;
+            if (!(avctx->flags2 & CODEC_FLAG2_SHOW_ALL))
+                return AVERROR_INVALIDDATA;
         }
         frame->key_frame = !(compr & 1);
         frame->pict_type = (compr & 1) ? AV_PICTURE_TYPE_P : AV_PICTURE_TYPE_I;