| 
																	
																	
																		
																	
																	
																 | 
																@@ -126,6 +126,22 @@ static int alloc_metrics(PullupContext *s, PullupField *f) | 
															
														
														
													
														
															
																 | 
																 | 
																    return 0; | 
																 | 
																 | 
																    return 0; | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																static void free_field_queue(PullupField *head, PullupField **last) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    PullupField *f = head; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    while (f) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        av_free(f->diffs); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        av_free(f->combs); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        av_free(f->vars); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if (f == *last) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            av_freep(last); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        f = f->next; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        av_freep(&f->prev); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    }; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																static PullupField *make_field_queue(PullupContext *s, int len) | 
																 | 
																 | 
																static PullupField *make_field_queue(PullupContext *s, int len) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																    PullupField *head, *f; | 
																 | 
																 | 
																    PullupField *head, *f; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -714,21 +730,9 @@ end: | 
															
														
														
													
														
															
																 | 
																 | 
																static av_cold void uninit(AVFilterContext *ctx) | 
																 | 
																 | 
																static av_cold void uninit(AVFilterContext *ctx) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																    PullupContext *s = ctx->priv; | 
																 | 
																 | 
																    PullupContext *s = ctx->priv; | 
															
														
														
													
														
															
																 | 
																 | 
																    PullupField *f; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    int i; | 
																 | 
																 | 
																    int i; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    f = s->head; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    while (f) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        av_free(f->diffs); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        av_free(f->combs); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        av_free(f->vars); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        if (f == s->last) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            av_freep(&s->last); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        f = f->next; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        av_freep(&f->prev); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    }; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    free_field_queue(s->head, &s->last); | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    for (i = 0; i < FF_ARRAY_ELEMS(s->buffers); i++) { | 
																 | 
																 | 
																    for (i = 0; i < FF_ARRAY_ELEMS(s->buffers); i++) { | 
															
														
														
													
														
															
																 | 
																 | 
																        av_freep(&s->buffers[i].planes[0]); | 
																 | 
																 | 
																        av_freep(&s->buffers[i].planes[0]); | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |