From f94f6caa5b4053a3a205329f48bbb49c390c409a Mon Sep 17 00:00:00 2001 From: Andre Date: Wed, 10 May 2006 19:19:12 +0200 Subject: [PATCH 1/1] ignore zero bit when checking for frame start --- aacdec.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/aacdec.c b/aacdec.c index 3963bbc7..0eab773a 100644 --- a/aacdec.c +++ b/aacdec.c @@ -216,17 +216,13 @@ static ssize_t mp4dec(char *inbuffer, size_t len, struct filter_node *fn) if (padd->consumed_total < padd->offset[0]) padd->consumed = padd->offset[0] - padd->consumed_total; } - p = memchr(padd->inbuf + padd->consumed, 0x21, - padd->inbuf_len - padd->consumed); - if (!p) { - padd->consumed = padd->inbuf_len; + for (; padd->consumed < padd->inbuf_len; padd->consumed++) + if ((padd->inbuf[padd->consumed] & 0xfe) == 0x20) + break; + if (padd->consumed >= padd->inbuf_len) goto success; - } - if (p != padd->inbuf + padd->consumed) { - int skip = p - padd->inbuf + padd->consumed; - PARA_DEBUG_LOG("skipping %d bytes in inbuffer\n", skip); - padd->consumed += skip; - } + p = padd->inbuf + padd->consumed; +// PARA_NOTICE_LOG("p[0]: %lx\n", (long unsigned) *p); outbuffer = NeAACDecDecode(padd->decoder, &padd->frame_info, p, len - padd->consumed); ret = -E_AAC_DECODE; -- 2.39.2