From fa11f368764f0e4a562d4d8e45da01132c9abf74 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 4 Jan 2013 20:28:45 +0100 Subject: mpegpsenc: avoid shifting dts/pts Only shift if needed to avoid negative scr when requested or for dvd. Signed-off-by: Michael Niedermayer --- libavformat/mpegenc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'libavformat/mpegenc.c') diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c index 23ba8edd67..b467bb5de5 100644 --- a/libavformat/mpegenc.c +++ b/libavformat/mpegenc.c @@ -1062,13 +1062,13 @@ static int mpeg_mux_write_packet(AVFormatContext *ctx, AVPacket *pkt) dts= pkt->dts; if (s->last_scr == AV_NOPTS_VALUE) { - if (dts == AV_NOPTS_VALUE || s->is_dvd) { + if (dts == AV_NOPTS_VALUE || (dts < preload && ctx->avoid_negative_ts) || s->is_dvd) { if (dts != AV_NOPTS_VALUE) s->preload += av_rescale(-dts, AV_TIME_BASE, 90000); s->last_scr = 0; } else { - s->last_scr = dts + preload; - s->preload *= 2; + s->last_scr = dts - preload; + s->preload = 0; } preload = av_rescale(s->preload, 90000, AV_TIME_BASE); av_log(ctx, AV_LOG_DEBUG, "First SCR: %"PRId64" First DTS: %"PRId64"\n", s->last_scr, dts + preload); -- cgit v1.2.3