Commit c2057780 authored by Jan Ekström's avatar Jan Ekström

avformat/aacdec: enable probesize-sized resyncs mid-stream

Before adts_aac_resync would always bail out after probesize amount
of bytes had been progressed from the start of the input.

Now just query the current position when entering resync, and at most
advance probesize amount of data from that start position.

Fixes #9433
parent 855014ff
......@@ -83,10 +83,12 @@ static int adts_aac_probe(const AVProbeData *p)
static int adts_aac_resync(AVFormatContext *s)
{
uint16_t state;
int64_t start_pos = avio_tell(s->pb);
// skip data until an ADTS frame is found
state = avio_r8(s->pb);
while (!avio_feof(s->pb) && avio_tell(s->pb) < s->probesize) {
while (!avio_feof(s->pb) &&
(avio_tell(s->pb) - start_pos) < s->probesize) {
state = (state << 8) | avio_r8(s->pb);
if ((state >> 4) != 0xFFF)
continue;
......
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