[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