[FFmpeg-cvslog] lavf: count skipped samples for initial timestamps.

Nicolas George git at videolan.org
Thu Jul 19 23:56:00 CEST 2012


ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Sun Jul 15 17:38:28 2012 +0200| [885fc058655efee94203314984ce99b301fdebb1] | committer: Nicolas George

lavf: count skipped samples for initial timestamps.

If skip_samples is set and timestamps are synthesized using durations,
make them start at -skip_samples (rescaled) instead of 0,
so that the timestamp of the first undiscarded sample is 0.

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

 libavformat/utils.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index d6035d9..cfa9e82 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -942,6 +942,10 @@ static void update_initial_durations(AVFormatContext *s, AVStream *st,
     AVPacketList *pktl= s->parse_queue ? s->parse_queue : s->packet_buffer;
     int64_t cur_dts= RELATIVE_TS_BASE;
 
+    if (st->skip_samples && st->codec->sample_rate && st->time_base.num)
+        cur_dts -= av_rescale_q(st->skip_samples,
+                                (AVRational){ 1, st->codec->sample_rate },
+                                st->time_base);
     if(st->first_dts != AV_NOPTS_VALUE){
         cur_dts= st->first_dts;
         for(; pktl; pktl= get_next_pkt(s, st, pktl)){



More information about the ffmpeg-cvslog mailing list