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;
|
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;
|
free_field_queue(s->head, &s->last);
|
||||||
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);
|
|
||||||
};
|
|
||||||
|
|
||||||
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]);
|
||||||
|
|
Loading…
Reference in New Issue