| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -139,7 +139,6 @@ typedef struct { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    FFTSample *correlation; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    // for managing AVFilterPad.request_frame and AVFilterPad.filter_frame | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int request_fulfilled; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    AVFrame *dst_buffer; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    uint8_t *dst; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    uint8_t *dst_end; | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -181,7 +180,6 @@ static void yae_clear(ATempoContext *atempo) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    atempo->dst     = NULL; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    atempo->dst_end = NULL; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    atempo->request_fulfilled = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    atempo->nsamples_in       = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    atempo->nsamples_out      = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -1017,6 +1015,8 @@ static int config_props(AVFilterLink *inlink) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int sample_rate = (int)inlink->sample_rate; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int channels = av_get_channel_layout_nb_channels(inlink->channel_layout); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ctx->outputs[0]->flags |= FF_LINK_FLAG_REQUEST_LOOP; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    return yae_reset(atempo, format, sample_rate, channels); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
					
				
				
					
				
				
				 | 
			
			 | 
			@@ -1074,7 +1074,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *src_buffer) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            ret = push_samples(atempo, outlink, n_out); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            if (ret < 0) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			                goto end; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            atempo->request_fulfilled = 1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -1090,11 +1089,7 @@ static int request_frame(AVFilterLink *outlink) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ATempoContext *atempo = ctx->priv; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int ret; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    atempo->request_fulfilled = 0; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    do { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        ret = ff_request_frame(ctx->inputs[0]); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    while (!atempo->request_fulfilled && ret >= 0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ret = ff_request_frame(ctx->inputs[0]); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (ret == AVERROR_EOF) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        // flush the filter: | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |