Commit c3b32e35 authored by conrad's avatar conrad

Use skip_bits_long() for large skips

This fixes ogg/theora on ARM (more generally the A32 bitstream reader)


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18819 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 1ffb3314
...@@ -78,7 +78,7 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx) ...@@ -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); av_log(avctx, AV_LOG_ERROR, "Too many bands: %i\n", c->maxbands);
return -1; return -1;
} }
skip_bits(&gb, 88); skip_bits_long(&gb, 88);
c->gapless = get_bits1(&gb); c->gapless = get_bits1(&gb);
c->lastframelen = get_bits(&gb, 11); c->lastframelen = get_bits(&gb, 11);
av_log(avctx, AV_LOG_DEBUG, "IS: %d, MSS: %d, TG: %d, LFL: %d, bands: %d\n", av_log(avctx, AV_LOG_DEBUG, "IS: %d, MSS: %d, TG: %d, LFL: %d, bands: %d\n",
......
...@@ -103,7 +103,7 @@ static void nelly_decode_block(NellyMoserDecodeContext *s, ...@@ -103,7 +103,7 @@ static void nelly_decode_block(NellyMoserDecodeContext *s,
aptr = audio + i * NELLY_BUF_LEN; aptr = audio + i * NELLY_BUF_LEN;
init_get_bits(&s->gb, block, NELLY_BLOCK_LEN * 8); 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++) { for (j = 0; j < NELLY_FILL_LEN; j++) {
if (bits[j] <= 0) { if (bits[j] <= 0) {
......
...@@ -2243,7 +2243,7 @@ static av_cold int theora_decode_init(AVCodecContext *avctx) ...@@ -2243,7 +2243,7 @@ static av_cold int theora_decode_init(AVCodecContext *avctx)
} }
// FIXME: Check for this as well. // FIXME: Check for this as well.
skip_bits(&gb, 6*8); /* "theora" */ skip_bits_long(&gb, 6*8); /* "theora" */
switch(ptype) switch(ptype)
{ {
......
...@@ -58,7 +58,7 @@ theora_header (AVFormatContext * s, int idx) ...@@ -58,7 +58,7 @@ theora_header (AVFormatContext * s, int idx)
init_get_bits(&gb, os->buf + os->pstart, os->psize*8); 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); thp->version = get_bits_long(&gb, 24);
if (thp->version < 0x030100) if (thp->version < 0x030100)
...@@ -92,7 +92,7 @@ theora_header (AVFormatContext * s, int idx) ...@@ -92,7 +92,7 @@ theora_header (AVFormatContext * s, int idx)
st->sample_aspect_ratio.den = get_bits_long(&gb, 24); st->sample_aspect_ratio.den = get_bits_long(&gb, 24);
if (thp->version >= 0x030200) if (thp->version >= 0x030200)
skip_bits(&gb, 38); skip_bits_long(&gb, 38);
if (thp->version >= 0x304000) if (thp->version >= 0x304000)
skip_bits(&gb, 2); skip_bits(&gb, 2);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment