aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-04-29 06:26:18 +0200
committerMichael Niedermayer <michaelni@gmx.at>2015-06-01 12:40:30 +0200
commitc0d6afa3e617c8d5b24d0a98688314edc9bfbbcc (patch)
tree46ce46deeb449c1578262e4b3cb1d6385135090b
parent0ca612a765abac04733b2725fd5c2d3c8297da6e (diff)
downloadffmpeg-c0d6afa3e617c8d5b24d0a98688314edc9bfbbcc.tar.gz
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 14e9a20083c9c17c9431754bf13e458293c1ead4) Conflicts: libavformat/mpegts.c Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/mpegts.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 3f06c57444..71a4549c3b 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -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,