[FFmpeg-cvslog] avformat/mpegts: Do not trust BSSD descriptor, it is sometimes not an S302M stream

Michael Niedermayer git at videolan.org
Fri Aug 26 15:41:00 EEST 2016


ffmpeg | branch: release/2.8 | Michael Niedermayer <michael at niedermayer.cc> | Mon Jun  6 21:43:01 2016 +0200| [a4484854db89d0807d00bba7bd9e2c61eabb6e1a] | committer: Michael Niedermayer

avformat/mpegts: Do not trust BSSD descriptor, it is sometimes not an S302M stream

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit a5eb70ad9569c62158b4b2d18f2143db791f7d27)

Conflicts:

	libavformat/mpegts.c

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a4484854db89d0807d00bba7bd9e2c61eabb6e1a
---

 libavformat/mpegts.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 65824dd..1b51753 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -1774,8 +1774,11 @@ int ff_parse_mpeg2_descriptor(AVFormatContext *fc, AVStream *st, int stream_type
     case 0x05: /* registration descriptor */
         st->codec->codec_tag = bytestream_get_le32(pp);
         av_log(fc, AV_LOG_TRACE, "reg_desc=%.4s\n", (char *)&st->codec->codec_tag);
-        if (st->codec->codec_id == AV_CODEC_ID_NONE || st->request_probe > 0)
+        if (st->codec->codec_id == AV_CODEC_ID_NONE || st->request_probe > 0) {
             mpegts_find_stream_type(st, st->codec->codec_tag, REGD_types);
+            if (st->codec->codec_tag == MKTAG('B', 'S', 'S', 'D'))
+                st->request_probe = 50;
+        }
         break;
     case 0x52: /* stream identifier descriptor */
         st->stream_identifier = 1 + get8(pp, desc_end);



More information about the ffmpeg-cvslog mailing list