ffmpeg | branch: master | Michael Niedermayer <mich...@niedermayer.cc> | Tue Jun 7 15:46:08 2016 +0200| [e01b19deceaafa2b7a9d59717484d8831b00cd71] | committer: Michael Niedermayer
avformat/mpegts: Fix probing of mpegts with invalid ASC Fixes Ticket5566 Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e01b19deceaafa2b7a9d59717484d8831b00cd71 --- libavformat/mpegts.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c index d38b8af..7d78c41 100644 --- a/libavformat/mpegts.c +++ b/libavformat/mpegts.c @@ -542,13 +542,16 @@ static int analyze(const uint8_t *buf, int size, int packet_size, memset(stat, 0, packet_size * sizeof(*stat)); for (i = 0; i < size - 3; i++) { - if (buf[i] == 0x47 && - (!probe || (buf[i + 3] & 0x30))) { - int x = i % packet_size; - stat[x]++; - stat_all++; - if (stat[x] > best_score) { - best_score = stat[x]; + if (buf[i] == 0x47) { + int pid = AV_RB16(buf+1) & 0x1FFF; + int asc = buf[i + 3] & 0x30; + if (!probe || pid == 0x1FFF || asc) { + int x = i % packet_size; + stat[x]++; + stat_all++; + if (stat[x] > best_score) { + best_score = stat[x]; + } } } } _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog