Commit 0b90db01 authored by Michael Niedermayer's avatar Michael Niedermayer

lavf: fix update_initial_durations() so it handles missing durations with the...

lavf: fix update_initial_durations() so it handles missing durations with the initial timestamp being known.

This fixes duplicate timestamps on mp2 in ts with non seekable input.
It also fixed the fate pva demux timestamps.
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 83c418e6
......@@ -902,17 +902,17 @@ static void update_initial_durations(AVFormatContext *s, AVStream *st, AVPacket
for(; pktl; pktl= pktl->next){
if(pktl->pkt.stream_index != pkt->stream_index)
continue;
if(pktl->pkt.pts == pktl->pkt.dts && pktl->pkt.dts == AV_NOPTS_VALUE
if(pktl->pkt.pts == pktl->pkt.dts && (pktl->pkt.dts == AV_NOPTS_VALUE || pktl->pkt.dts == st->first_dts)
&& !pktl->pkt.duration){
pktl->pkt.dts= cur_dts;
if(!st->codec->has_b_frames)
pktl->pkt.pts= cur_dts;
cur_dts += pkt->duration;
pktl->pkt.duration= pkt->duration;
}else
break;
cur_dts = pktl->pkt.dts + pktl->pkt.duration;
}
if(st->first_dts == AV_NOPTS_VALUE)
if(!pktl)
st->cur_dts= cur_dts;
}
......
#tb 0: 1/25
#tb 1: 1/90000
1, 0, 0, 2160, 384, 0x071abcc8
1, 0, 0, 2160, 384, 0x31c9aee0
1, 2160, 2160, 2160, 384, 0xa50eaa94
1, 4320, 4320, 2160, 384, 0x9e86ba0e
1, 2160, 2160, 2160, 384, 0x31c9aee0
1, 4320, 4320, 2160, 384, 0xa50eaa94
1, 6480, 6480, 2160, 384, 0x9e86ba0e
1, 8640, 8640, 2160, 384, 0x2321b800
1, 10800, 10800, 2160, 384, 0x2347afa8
1, 12960, 12960, 2160, 384, 0x0831b8d3
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment