mirror of https://git.ffmpeg.org/ffmpeg.git
avfilter/vf_pullup: Factor free_field_queue() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
b02d87936b
commit
8f9569cfac
|
@ -126,6 +126,22 @@ static int alloc_metrics(PullupContext *s, PullupField *f)
|
|||
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)
|
||||
{
|
||||
PullupField *head, *f;
|
||||
|
@ -714,21 +730,9 @@ end:
|
|||
static av_cold void uninit(AVFilterContext *ctx)
|
||||
{
|
||||
PullupContext *s = ctx->priv;
|
||||
PullupField *f;
|
||||
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++) {
|
||||
av_freep(&s->buffers[i].planes[0]);
|
||||
|
|
Loading…
Reference in New Issue