You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	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:
		| @@ -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", | ||||
|   | ||||
| @@ -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) { | ||||
|   | ||||
| @@ -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) | ||||
|     { | ||||
|   | ||||
| @@ -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); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user