| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -97,7 +97,7 @@ static void allocate_buffers(alac_file *alac) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			void alac_set_info(alac_file *alac, char *inputbuffer) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			  char *ptr = inputbuffer; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    unsigned char *ptr = inputbuffer; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ptr += 4; /* size */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ptr += 4; /* alac */ | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -134,7 +134,7 @@ static uint32_t readbits_16(alac_file *alac, int bits) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (alac->input_buffer_index + 2 >= alac->input_buffer_size) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_log(NULL, AV_LOG_INFO, "alac: input buffer went out of bounds (%d >= %d)\n", | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            alac->input_buffer_index + 2, alac->input_buffer_size); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        exit (0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//        exit (0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    result = (alac->input_buffer[alac->input_buffer_index + 0] << 16) | | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			             (alac->input_buffer[alac->input_buffer_index + 1] << 8) | | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -186,7 +186,7 @@ static int readbit(alac_file *alac) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (alac->input_buffer_index >= alac->input_buffer_size) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_log(NULL, AV_LOG_INFO, "alac: input buffer went out of bounds (%d >= %d)\n", | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            alac->input_buffer_index + 2, alac->input_buffer_size); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        exit (0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			//        exit (0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    result = alac->input_buffer[alac->input_buffer_index]; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -488,8 +488,8 @@ void deinterlace_16(int32_t *buffer_a, int32_t *buffer_b, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    int16_t *buffer_out, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    int numchannels, int numsamples, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    uint8_t interlacing_shift, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    uint8_t interlacing_leftweight) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                    uint8_t interlacing_leftweight) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int i; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (numsamples <= 0) return; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -546,10 +546,10 @@ void deinterlace_16(int32_t *buffer_a, int32_t *buffer_b, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			int decode_frame(ALACContext *s, alac_file *alac, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                  unsigned char *inbuffer, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                  int input_buffer_size, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                  void *outbuffer, int *outputsize){ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			 | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                  void *outbuffer, int *outputsize) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int channels; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int32_t outputsamples = alac->setinfo_max_samples_per_frame; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int32_t outputsamples; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* initialize from the extradata */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (!s->context_initialized) { | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -561,7 +561,8 @@ int decode_frame(ALACContext *s, alac_file *alac, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        alac_set_info(s->alac, s->avctx->extradata); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        s->context_initialized = 1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			     | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    outputsamples = alac->setinfo_max_samples_per_frame; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* setup the stream */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    alac->input_buffer = inbuffer; | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |