| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -36,13 +36,11 @@ typedef struct { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /** Speech part of the gain autocorrelation (spec: REXP) */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float sp_rec[37]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float st1[37]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float gain_hist[38];   ///< Log-gain history (spec: SBLG) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /** Recursive part of the gain autocorrelation (spec: REXPLG) */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float gain_rec[11]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float st2[11]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float sb[41]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float lhist[10]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} RA288Context; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -199,6 +197,8 @@ static void backward_filter(RA288Context *ractx) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float buffer1[40], temp1[37]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float buffer2[8], temp2[11]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float st1[37]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    float st2[11]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    memcpy(buffer1     , ractx->output + 20, 20*sizeof(*buffer1)); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    memcpy(buffer1 + 20, ractx->output     , 20*sizeof(*buffer1)); | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -206,8 +206,8 @@ static void backward_filter(RA288Context *ractx) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    do_hybrid_window(36, 40, 35, buffer1, temp1, ractx->sp_hist, ractx->sp_rec, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                     syn_window); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (!eval_lpc_coeffs(temp1, ractx->st1, 36)) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        colmult(ractx->pr1, ractx->st1, syn_bw_tab, 36); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (!eval_lpc_coeffs(temp1, st1, 36)) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        colmult(ractx->pr1, st1, syn_bw_tab, 36); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    memcpy(buffer2    , ractx->history + 4, 4*sizeof(*buffer2)); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    memcpy(buffer2 + 4, ractx->history    , 4*sizeof(*buffer2)); | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -215,8 +215,8 @@ static void backward_filter(RA288Context *ractx) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    do_hybrid_window(10, 8, 20, buffer2, temp2, ractx->gain_hist, ractx->gain_rec, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                     gain_window); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (!eval_lpc_coeffs(temp2, ractx->st2, 10)) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        colmult(ractx->pr2, ractx->st2, gain_bw_tab, 10); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (!eval_lpc_coeffs(temp2, st2, 10)) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        colmult(ractx->pr2, st2, gain_bw_tab, 10); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			/* Decode a block (celp) */ | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |