lavf/find_stream_info: make sure we decode at least one frame for DTS
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 23 Sep 2012 02:56:51 +0000 (04:56 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 23 Sep 2012 02:56:51 +0000 (04:56 +0200)
The channel layout at the demuxer layer is commonly wrong and would
otherwise be used.

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

index 0732c46..6603483 100644 (file)
@@ -2314,6 +2314,8 @@ static int has_codec_parameters(AVStream *st, const char **errmsg_ptr)
             FAIL("unspecified sample rate");
         if (!avctx->channels)
             FAIL("unspecified number of channels");
+        if (st->info->found_decoder >= 0 && !st->nb_decoded_frames && avctx->codec_id == AV_CODEC_ID_DTS)
+            FAIL("no decodable DTS frames");
         break;
     case AVMEDIA_TYPE_VIDEO:
         if (!avctx->width)