[FFmpeg-cvslog] avfilter/vf_pullup: Factor free_field_queue() out

Michael Niedermayer git at videolan.org
Fri Dec 13 15:20:06 CET 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Fri Dec 13 15:13:01 2013 +0100| [8f9569cfacb9f595e1f5a7b45f2d31d9499369fa] | committer: Michael Niedermayer

avfilter/vf_pullup: Factor free_field_queue() out

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8f9569cfacb9f595e1f5a7b45f2d31d9499369fa
---

 libavfilter/vf_pullup.c |   30 +++++++++++++++++-------------
 1 file changed, 17 insertions(+), 13 deletions(-)

diff --git a/libavfilter/vf_pullup.c b/libavfilter/vf_pullup.c
index 69e1e91..d0b910f 100644
--- a/libavfilter/vf_pullup.c
+++ b/libavfilter/vf_pullup.c
@@ -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]);



More information about the ffmpeg-cvslog mailing list