From 94bdb1f80ce8d8abc4728ba0c8edc6af4310eaaf Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 16 Oct 2010 21:31:31 +0000 Subject: Avoid negative SCR in mpeg ps muxer. Fixes a scr issue reported with dvdauthor ([FFmpeg-user] FFMPEG encoded MPEG-2 video causes error in DVDAuthor) Originally committed as revision 25512 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/mpegenc.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'libavformat/mpegenc.c') diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c index affc801b4a..5c090f63b0 100644 --- a/libavformat/mpegenc.c +++ b/libavformat/mpegenc.c @@ -1162,11 +1162,13 @@ static int mpeg_mux_write_packet(AVFormatContext *ctx, AVPacket *pkt) pts= pkt->pts; dts= pkt->dts; - if(!s->last_scr) - s->last_scr= dts; - if(pts != AV_NOPTS_VALUE) pts += preload; - if(dts != AV_NOPTS_VALUE) dts += preload; + if(pts != AV_NOPTS_VALUE) pts += 2*preload; + if(dts != AV_NOPTS_VALUE){ + if(!s->last_scr) + s->last_scr= dts + preload; + dts += 2*preload; + } //av_log(ctx, AV_LOG_DEBUG, "dts:%f pts:%f flags:%d stream:%d nopts:%d\n", dts/90000.0, pts/90000.0, pkt->flags, pkt->stream_index, pts != AV_NOPTS_VALUE); if (!stream->premux_packet) -- cgit v1.2.3