From 0a8dedc9e18eb112ea468f5bf0f32bdec74cdd64 Mon Sep 17 00:00:00 2001 From: David Conrad Date: Thu, 14 May 2009 00:02:07 +0000 Subject: [PATCH] Use skip_bits_long() for large skips This fixes ogg/theora on ARM (more generally the A32 bitstream reader) Originally committed as revision 18819 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mpc7.c | 2 +- libavcodec/nellymoserdec.c | 2 +- libavcodec/vp3.c | 2 +- libavformat/oggparsetheora.c | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/mpc7.c b/libavcodec/mpc7.c index a15f117427..614a418684 100644 --- a/libavcodec/mpc7.c +++ b/libavcodec/mpc7.c @@ -78,7 +78,7 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx) av_log(avctx, AV_LOG_ERROR, "Too many bands: %i\n", c->maxbands); return -1; } - skip_bits(&gb, 88); + skip_bits_long(&gb, 88); c->gapless = get_bits1(&gb); c->lastframelen = get_bits(&gb, 11); av_log(avctx, AV_LOG_DEBUG, "IS: %d, MSS: %d, TG: %d, LFL: %d, bands: %d\n", diff --git a/libavcodec/nellymoserdec.c b/libavcodec/nellymoserdec.c index 94f441890e..98f0ec3224 100644 --- a/libavcodec/nellymoserdec.c +++ b/libavcodec/nellymoserdec.c @@ -103,7 +103,7 @@ static void nelly_decode_block(NellyMoserDecodeContext *s, aptr = audio + i * NELLY_BUF_LEN; init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8); - skip_bits(&s->gb, NELLY_HEADER_BITS + i*NELLY_DETAIL_BITS); + skip_bits_long(&s->gb, NELLY_HEADER_BITS + i*NELLY_DETAIL_BITS); for (j = 0; j < NELLY_FILL_LEN; j++) { if (bits[j] <= 0) { diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c index c1ca98f3c4..43a3658c33 100644 --- a/libavcodec/vp3.c +++ b/libavcodec/vp3.c @@ -2243,7 +2243,7 @@ static av_cold int theora_decode_init(AVCodecContext *avctx) } // FIXME: Check for this as well. - skip_bits(&gb, 6*8); /* "theora" */ + skip_bits_long(&gb, 6*8); /* "theora" */ switch(ptype) { diff --git a/libavformat/oggparsetheora.c b/libavformat/oggparsetheora.c index d8b4d6ccef..96c432f993 100644 --- a/libavformat/oggparsetheora.c +++ b/libavformat/oggparsetheora.c @@ -58,7 +58,7 @@ theora_header (AVFormatContext * s, int idx) init_get_bits(&gb, os->buf + os->pstart, os->psize*8); - skip_bits(&gb, 7*8); /* 0x80"theora" */ + skip_bits_long(&gb, 7*8); /* 0x80"theora" */ thp->version = get_bits_long(&gb, 24); if (thp->version < 0x030100) @@ -92,7 +92,7 @@ theora_header (AVFormatContext * s, int idx) st->sample_aspect_ratio.den = get_bits_long(&gb, 24); if (thp->version >= 0x030200) - skip_bits(&gb, 38); + skip_bits_long(&gb, 38); if (thp->version >= 0x304000) skip_bits(&gb, 2);