Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2022-10-21 05:54:14 +0300
committerJames Almer <jamrial@gmail.com>2022-10-26 15:16:21 +0300
commit72db6a4f5f5a909114ad46f5c5fb1221f452e9f3 (patch)
treeec959be68d5a2ab8284082d558fda5531b2ec17e /libavcodec/ac3dec.c
parent31162eb9490e51a526ff0f78a57303a4d6433aba (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.c15
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;