avformat/mpegts: Also parse the FMC descriptor if the codec has not been identified yet
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 29 Apr 2015 04:26:18 +0000 (06:26 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 19 May 2015 18:57:25 +0000 (20:57 +0200)
Fixes Detecting AAC with such descriptor if the parts needed for detection
are later in the stream

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 14e9a20083c9c17c9431754bf13e458293c1ead4)

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

index 3aa616a..455615f 100644 (file)
@@ -1555,7 +1555,9 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type
     case 0x1F: /* FMC descriptor */
         get16(pp, desc_end);
         if (mp4_descr_count > 0 &&
-            (st->codec->codec_id == AV_CODEC_ID_AAC_LATM || st->request_probe > 0) &&
+            (st->codec->codec_id == AV_CODEC_ID_AAC_LATM ||
+             (st->request_probe == 0 && st->codec->codec_id == AV_CODEC_ID_NONE) ||
+             st->request_probe > 0) &&
             mp4_descr->dec_config_descr_len && mp4_descr->es_id == pid) {
             AVIOContext pb;
             ffio_init_context(&pb, mp4_descr->dec_config_descr,