avformat/mpegts: Also parse the FMC descriptor if the codec has not been identified yet

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 14e9a20083)

Conflicts:

	libavformat/mpegts.c

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer
2015-04-29 06:26:18 +02:00
parent 0ca612a765
commit c0d6afa3e6

View File

@@ -1459,8 +1459,12 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type
}
break;
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) &&
if (get16(pp, desc_end) < 0)
break;
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_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,