Commit de1de493 authored by Michael Niedermayer's avatar Michael Niedermayer

avformat/utils: fix dts from pts code in compute_pkt_fields() during ascending delay

Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 51bcc0bf
...@@ -1200,11 +1200,12 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, ...@@ -1200,11 +1200,12 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
} }
} }
if (pkt->pts != AV_NOPTS_VALUE && delay <= MAX_REORDER_DELAY && has_decode_delay_been_guessed(st)) { if (pkt->pts != AV_NOPTS_VALUE && delay <= MAX_REORDER_DELAY) {
st->pts_buffer[0] = pkt->pts; st->pts_buffer[0] = pkt->pts;
for (i = 0; i<delay && st->pts_buffer[i] > st->pts_buffer[i + 1]; i++) for (i = 0; i<delay && st->pts_buffer[i] > st->pts_buffer[i + 1]; i++)
FFSWAP(int64_t, st->pts_buffer[i], st->pts_buffer[i + 1]); FFSWAP(int64_t, st->pts_buffer[i], st->pts_buffer[i + 1]);
if(has_decode_delay_been_guessed(st))
pkt->dts = select_from_pts_buffer(st, st->pts_buffer, pkt->dts); pkt->dts = select_from_pts_buffer(st, st->pts_buffer, pkt->dts);
} }
// We skipped it above so we try here. // We skipped it above so we try here.
......
...@@ -25,9 +25,9 @@ ...@@ -25,9 +25,9 @@
1, 264, 264, 21, 609, 0xc0dc255c 1, 264, 264, 21, 609, 0xc0dc255c
1, 285, 285, 21, 619, 0x9ac52dd1 1, 285, 285, 21, 619, 0x9ac52dd1
0, 292, 292, 41, 16751, 0xf293ab46, F=0x0 0, 292, 292, 41, 16751, 0xf293ab46, F=0x0
0, 292, 417, 41, 22029, 0x3696462b, F=0x0
1, 306, 306, 21, 574, 0xf6410d4d 1, 306, 306, 21, 574, 0xf6410d4d
1, 327, 327, 22, 565, 0xfd561191 1, 327, 327, 22, 565, 0xfd561191
0, 334, 417, 41, 22029, 0x3696462b, F=0x0
1, 350, 350, 21, 713, 0x48425147 1, 350, 350, 21, 713, 0x48425147
1, 371, 371, 21, 537, 0x09bbf515 1, 371, 371, 21, 537, 0x09bbf515
0, 375, 375, 41, 5044, 0xa0344ae6, F=0x0 0, 375, 375, 41, 5044, 0xa0344ae6, F=0x0
......
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