1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-04-19 09:02:26 +02:00

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

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2016-03-08 02:42:10 +01:00
parent 51bcc0bf38
commit de1de49324
2 changed files with 4 additions and 3 deletions

View File

@ -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.

View File

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