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
This commit is contained in:
parent
97d4318347
commit
0a8dedc9e1
@ -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,
|
|||||||
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)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 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)
|
|||||||
|
|
||||||
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)
|
|||||||
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);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user