[FFmpeg-cvslog] mpegts: dont set stream info when a decoder has already been opened.

Michael Niedermayer git at videolan.org
Tue Nov 13 15:50:09 CET 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Tue Nov 13 15:43:01 2012 +0100| [4facddd568b7b6c0014b4a0da157b8ba8f3e3b1a] | committer: Michael Niedermayer

mpegts: dont set stream info when a decoder has already been opened.

Fixes assertion failure.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavformat/mpegts.c |    6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index b4380a6..946e31a 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -613,6 +613,12 @@ static int mpegts_set_stream_info(AVStream *st, PESContext *pes,
 {
     int old_codec_type= st->codec->codec_type;
     int old_codec_id  = st->codec->codec_id;
+
+    if (old_codec_id != AV_CODEC_ID_NONE && avcodec_is_open(st->codec)) {
+        av_log(pes->stream, AV_LOG_DEBUG, "cannot set stream info, codec is open\n");
+        return 0;
+    }
+
     avpriv_set_pts_info(st, 33, 1, 90000);
     st->priv_data = pes;
     st->codec->codec_type = AVMEDIA_TYPE_DATA;



More information about the ffmpeg-cvslog mailing list