hlsenc: do not add timestamps in different timebases
authorLuca Barbato <lu_zero@gentoo.org>
Sat, 29 Dec 2012 10:46:01 +0000 (11:46 +0100)
committerLuca Barbato <lu_zero@gentoo.org>
Sat, 29 Dec 2012 16:26:30 +0000 (17:26 +0100)
start_time is in stream timebase units while end_time is
in AV_TIME_BASE ones.

libavformat/hlsenc.c

index 71c0c34..43b3505 100644 (file)
@@ -253,10 +253,10 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt)
         hls->start_pts = pkt->pts;
         hls->end_pts   = pkt->pts;
     }
-    end_pts += hls->start_pts;
 
     if ((hls->has_video && st->codec->codec_type == AVMEDIA_TYPE_VIDEO)      &&
-        av_compare_ts(pkt->pts, st->time_base, end_pts, AV_TIME_BASE_Q) >= 0 &&
+        av_compare_ts(pkt->pts - hls->start_pts, st->time_base,
+                      end_pts, AV_TIME_BASE_Q) >= 0 &&
         pkt->flags & AV_PKT_FLAG_KEY) {
 
         ret = append_entry(hls, av_rescale(pkt->pts - hls->end_pts,