mirror of https://git.ffmpeg.org/ffmpeg.git
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.
This commit is contained in:
parent
cd08900393
commit
885fc05865
|
@ -942,6 +942,10 @@ static void update_initial_durations(AVFormatContext *s, AVStream *st,
|
||||||
AVPacketList *pktl= s->parse_queue ? s->parse_queue : s->packet_buffer;
|
AVPacketList *pktl= s->parse_queue ? s->parse_queue : s->packet_buffer;
|
||||||
int64_t cur_dts= RELATIVE_TS_BASE;
|
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){
|
if(st->first_dts != AV_NOPTS_VALUE){
|
||||||
cur_dts= st->first_dts;
|
cur_dts= st->first_dts;
|
||||||
for(; pktl; pktl= get_next_pkt(s, st, pktl)){
|
for(; pktl; pktl= get_next_pkt(s, st, pktl)){
|
||||||
|
|
Loading…
Reference in New Issue