mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
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
This commit is contained in:
parent
855014ff83
commit
c20577806f
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user