mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
avformat/utils: Also fill dts==RELATIVE_TS_BASE packets in update_initial_durations()
This dts value can end up in the list in the absence of durations and is in that case semantically identical to AV_NOPTS_VALUE. We can alternatively prevent storing RELATIVE_TS_BASE if there is no duration. Fixes Ticket3640 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
3f28caf720
commit
3206ea4ba3
@ -1164,8 +1164,11 @@ static void update_initial_durations(AVFormatContext *s, AVStream *st,
|
||||
for (; pktl; pktl = get_next_pkt(s, st, pktl)) {
|
||||
if (pktl->pkt.stream_index != stream_index)
|
||||
continue;
|
||||
if (pktl->pkt.pts == pktl->pkt.dts &&
|
||||
(pktl->pkt.dts == AV_NOPTS_VALUE || pktl->pkt.dts == st->first_dts) &&
|
||||
if ((pktl->pkt.pts == pktl->pkt.dts ||
|
||||
pktl->pkt.pts == AV_NOPTS_VALUE) &&
|
||||
(pktl->pkt.dts == AV_NOPTS_VALUE ||
|
||||
pktl->pkt.dts == st->first_dts ||
|
||||
pktl->pkt.dts == RELATIVE_TS_BASE) &&
|
||||
!pktl->pkt.duration) {
|
||||
pktl->pkt.dts = cur_dts;
|
||||
if (!st->internal->avctx->has_b_frames)
|
||||
|
Loading…
Reference in New Issue
Block a user