| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -1154,8 +1154,8 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data, int *data_size, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if(err) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        switch(err) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            case AC3_PARSE_ERROR_SYNC: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                av_log(avctx, AV_LOG_ERROR, "frame sync error\n"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                break; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                av_log(avctx, AV_LOG_ERROR, "frame sync error : cannot use error concealment\n"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                return -1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            case AC3_PARSE_ERROR_BSID: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                av_log(avctx, AV_LOG_ERROR, "invalid bitstream id\n"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                break; | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -1172,7 +1172,6 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data, int *data_size, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                av_log(avctx, AV_LOG_ERROR, "invalid header\n"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                break; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return -1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* check that reported frame size fits in input buffer */ | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -1185,11 +1184,12 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data, int *data_size, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if(avctx->error_resilience >= FF_ER_CAREFUL) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if(av_crc(av_crc_get_table(AV_CRC_16_ANSI), 0, &buf[2], s->frame_size-2)) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            av_log(avctx, AV_LOG_ERROR, "frame CRC mismatch\n"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            return -1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            err = 1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        /* TODO: error concealment */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* if frame is ok, set audio parameters */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (!err) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    avctx->sample_rate = s->sample_rate; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    avctx->bit_rate = s->bit_rate; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -1207,13 +1207,12 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data, int *data_size, | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            s->fbw_channels == s->out_channels)) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        set_downmix_coeffs(s); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    /* parse the audio blocks */ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    for (blk = 0; blk < NB_BLOCKS; blk++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (ac3_parse_audio_block(s, blk)) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (!err && ac3_parse_audio_block(s, blk)) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            av_log(avctx, AV_LOG_ERROR, "error parsing the audio block\n"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            *data_size = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            return s->frame_size; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        for (i = 0; i < 256; i++) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            for (ch = 0; ch < s->out_channels; ch++) | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |