Browse Source

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.
tags/n1.0
Nicolas George 13 years ago
parent
commit
885fc05865
1 changed files with 4 additions and 0 deletions
  1. +4
    -0
      libavformat/utils.c

+ 4
- 0
libavformat/utils.c View File

@@ -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)){


Loading…
Cancel
Save