diff options
author | James Almer <jamrial@gmail.com> | 2022-10-21 05:54:14 +0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2022-10-26 15:16:21 +0300 |
commit | 72db6a4f5f5a909114ad46f5c5fb1221f452e9f3 (patch) | |
tree | ec959be68d5a2ab8284082d558fda5531b2ec17e /libavcodec/ac3dec.c | |
parent | 31162eb9490e51a526ff0f78a57303a4d6433aba (diff) |
avcodec/ac3dec: split off code discarding garbage at the beginning of a packet
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/ac3dec.c')
-rw-r--r-- | libavcodec/ac3dec.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c index 340f6e1e37..8e40587ff1 100644 --- a/libavcodec/ac3dec.c +++ b/libavcodec/ac3dec.c @@ -1508,19 +1508,8 @@ static int ac3_decode_frame(AVCodecContext *avctx, AVFrame *frame, s->superframe_size = 0; buf_size = full_buf_size; - for (i = 1; i < buf_size; i += 2) { - if (buf[i] == 0x77 || buf[i] == 0x0B) { - if ((buf[i] ^ buf[i-1]) == (0x77 ^ 0x0B)) { - i--; - break; - } else if ((buf[i] ^ buf[i+1]) == (0x77 ^ 0x0B)) { - break; - } - } - } - if (i >= buf_size) - return AVERROR_INVALIDDATA; - if (i > 10) + i = ff_ac3_find_syncword(buf, buf_size); + if (i < 0 || i > 10) return i; buf += i; buf_size -= i; |