mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-03 21:42:09 +00:00
avformat/avidec: Move packet skip after prefix and related checks
This fixes loosing packets Fixes: big.avi Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
84786e928f
commit
511e10f673
@ -1265,19 +1265,6 @@ start_sync:
|
||||
}
|
||||
}
|
||||
|
||||
if (!avi->dv_demux &&
|
||||
((st->discard >= AVDISCARD_DEFAULT && size == 0) /* ||
|
||||
// FIXME: needs a little reordering
|
||||
(st->discard >= AVDISCARD_NONKEY &&
|
||||
!(pkt->flags & AV_PKT_FLAG_KEY)) */
|
||||
|| st->discard >= AVDISCARD_ALL)) {
|
||||
if (!exit_early) {
|
||||
ast->frame_offset += get_duration(ast, size);
|
||||
avio_skip(pb, size);
|
||||
goto start_sync;
|
||||
}
|
||||
}
|
||||
|
||||
if (d[2] == 'p' && d[3] == 'c' && size <= 4 * 256 + 4) {
|
||||
int k = avio_r8(pb);
|
||||
int last = (k + avio_r8(pb) - 1) & 0xFF;
|
||||
@ -1304,6 +1291,18 @@ start_sync:
|
||||
ast->prefix_count = 0;
|
||||
}
|
||||
|
||||
if (!avi->dv_demux &&
|
||||
((st->discard >= AVDISCARD_DEFAULT && size == 0) /* ||
|
||||
// FIXME: needs a little reordering
|
||||
(st->discard >= AVDISCARD_NONKEY &&
|
||||
!(pkt->flags & AV_PKT_FLAG_KEY)) */
|
||||
|| st->discard >= AVDISCARD_ALL)) {
|
||||
|
||||
ast->frame_offset += get_duration(ast, size);
|
||||
avio_skip(pb, size);
|
||||
goto start_sync;
|
||||
}
|
||||
|
||||
avi->stream_index = n;
|
||||
ast->packet_size = size + 8;
|
||||
ast->remaining = size;
|
||||
|
Loading…
Reference in New Issue
Block a user