|  |  | @@ -557,12 +557,7 @@ static inline void mjpeg_encode_dc(MpegEncContext *s, int val, | 
		
	
		
			
			|  |  |  | mant--; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | /* compute the log (XXX: optimize) */ | 
		
	
		
			
			|  |  |  | nbits = 0; | 
		
	
		
			
			|  |  |  | while (val != 0) { | 
		
	
		
			
			|  |  |  | val = val >> 1; | 
		
	
		
			
			|  |  |  | nbits++; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | nbits= av_log2(val) + 1; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | put_bits(&s->pb, huff_size[nbits], huff_code[nbits]); | 
		
	
		
			
			|  |  |  |  | 
		
	
	
		
			
				|  |  | @@ -613,12 +608,7 @@ static void encode_block(MpegEncContext *s, DCTELEM *block, int n) | 
		
	
		
			
			|  |  |  | mant--; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | /* compute the log (XXX: optimize) */ | 
		
	
		
			
			|  |  |  | nbits = 0; | 
		
	
		
			
			|  |  |  | while (val != 0) { | 
		
	
		
			
			|  |  |  | val = val >> 1; | 
		
	
		
			
			|  |  |  | nbits++; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | nbits= av_log2(val) + 1; | 
		
	
		
			
			|  |  |  | code = (run << 4) | nbits; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | put_bits(&s->pb, huff_size_ac[code], huff_code_ac[code]); | 
		
	
	
		
			
				|  |  | @@ -902,7 +892,7 @@ static int mjpeg_decode_sof0(MJpegDecodeContext *s) | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | static inline int mjpeg_decode_dc(MJpegDecodeContext *s, int dc_index) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | int code, diff; | 
		
	
		
			
			|  |  |  | int code; | 
		
	
		
			
			|  |  |  | code = get_vlc2(&s->gb, s->vlcs[0][dc_index].table, 9, 2); | 
		
	
		
			
			|  |  |  | if (code < 0) | 
		
	
		
			
			|  |  |  | { | 
		
	
	
		
			
				|  |  | @@ -910,20 +900,18 @@ static inline int mjpeg_decode_dc(MJpegDecodeContext *s, int dc_index) | 
		
	
		
			
			|  |  |  | &s->vlcs[0][dc_index]); | 
		
	
		
			
			|  |  |  | return 0xffff; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | if (code == 0) { | 
		
	
		
			
			|  |  |  | diff = 0; | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | diff = get_xbits(&s->gb, code); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | return diff; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | if(code) | 
		
	
		
			
			|  |  |  | return get_xbits(&s->gb, code); | 
		
	
		
			
			|  |  |  | else | 
		
	
		
			
			|  |  |  | return 0; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | 
 | 
		
	
		
			
			|  |  |  | /* decode block and dequantize */ | 
		
	
		
			
			|  |  |  | static int decode_block(MJpegDecodeContext *s, DCTELEM *block, | 
		
	
		
			
			|  |  |  | int component, int dc_index, int ac_index, int quant_index) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | int nbits, code, i, j, level; | 
		
	
		
			
			|  |  |  | int run, val; | 
		
	
		
			
			|  |  |  | int code, i, j, level, val; | 
		
	
		
			
			|  |  |  | VLC *ac_vlc; | 
		
	
		
			
			|  |  |  | int16_t *quant_matrix; | 
		
	
		
			
			|  |  |  | 
 | 
		
	
	
		
			
				|  |  | @@ -953,10 +941,8 @@ static int decode_block(MJpegDecodeContext *s, DCTELEM *block, | 
		
	
		
			
			|  |  |  | if (code == 0xf0) { | 
		
	
		
			
			|  |  |  | i += 16; | 
		
	
		
			
			|  |  |  | } else { | 
		
	
		
			
			|  |  |  | run = code >> 4; | 
		
	
		
			
			|  |  |  | nbits = code & 0xf; | 
		
	
		
			
			|  |  |  | level = get_xbits(&s->gb, nbits); | 
		
	
		
			
			|  |  |  | i += run; | 
		
	
		
			
			|  |  |  | level = get_xbits(&s->gb, code & 0xf); | 
		
	
		
			
			|  |  |  | i += code >> 4; | 
		
	
		
			
			|  |  |  | if (i >= 64) { | 
		
	
		
			
			|  |  |  | dprintf("error count: %d\n", i); | 
		
	
		
			
			|  |  |  | return -1; | 
		
	
	
		
			
				|  |  | 
 |