lavfi: rename vf_fifo.c -> fifo.c
authorAnton Khirnov <anton@khirnov.net>
Wed, 16 May 2012 06:15:54 +0000 (08:15 +0200)
committerAnton Khirnov <anton@khirnov.net>
Thu, 21 Jun 2012 05:38:14 +0000 (07:38 +0200)
It will be used for audio too.

libavfilter/Makefile
libavfilter/fifo.c [new file with mode: 0644]
libavfilter/vf_fifo.c [deleted file]

index 955a97c..a4cc7f3 100644 (file)
@@ -47,7 +47,7 @@ OBJS-$(CONFIG_DRAWBOX_FILTER)                += vf_drawbox.o
 OBJS-$(CONFIG_DRAWTEXT_FILTER)               += vf_drawtext.o
 OBJS-$(CONFIG_FADE_FILTER)                   += vf_fade.o
 OBJS-$(CONFIG_FIELDORDER_FILTER)             += vf_fieldorder.o
-OBJS-$(CONFIG_FIFO_FILTER)                   += vf_fifo.o
+OBJS-$(CONFIG_FIFO_FILTER)                   += fifo.o
 OBJS-$(CONFIG_FORMAT_FILTER)                 += vf_format.o
 OBJS-$(CONFIG_FPS_FILTER)                    += vf_fps.o
 OBJS-$(CONFIG_FREI0R_FILTER)                 += vf_frei0r.o
diff --git a/libavfilter/fifo.c b/libavfilter/fifo.c
new file mode 100644 (file)
index 0000000..1785946
--- /dev/null
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2007 Bobby Bingham
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * FIFO buffering video filter
+ */
+
+#include "avfilter.h"
+#include "internal.h"
+#include "video.h"
+
+typedef struct BufPic {
+    AVFilterBufferRef *picref;
+    struct BufPic     *next;
+} BufPic;
+
+typedef struct {
+    BufPic  root;
+    BufPic *last;   ///< last buffered picture
+} FifoContext;
+
+static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
+{
+    FifoContext *fifo = ctx->priv;
+    fifo->last = &fifo->root;
+
+    av_log(ctx, AV_LOG_INFO, "\n");
+    return 0;
+}
+
+static av_cold void uninit(AVFilterContext *ctx)
+{
+    FifoContext *fifo = ctx->priv;
+    BufPic *pic, *tmp;
+
+    for (pic = fifo->root.next; pic; pic = tmp) {
+        tmp = pic->next;
+        avfilter_unref_buffer(pic->picref);
+        av_free(pic);
+    }
+}
+
+static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
+{
+    FifoContext *fifo = inlink->dst->priv;
+
+    fifo->last->next = av_mallocz(sizeof(BufPic));
+    fifo->last = fifo->last->next;
+    fifo->last->picref = picref;
+}
+
+static void end_frame(AVFilterLink *inlink) { }
+
+static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) { }
+
+static int request_frame(AVFilterLink *outlink)
+{
+    FifoContext *fifo = outlink->src->priv;
+    BufPic *tmp;
+    int ret;
+
+    if (!fifo->root.next) {
+        if ((ret = ff_request_frame(outlink->src->inputs[0]) < 0))
+            return ret;
+    }
+
+    /* by doing this, we give ownership of the reference to the next filter,
+     * so we don't have to worry about dereferencing it ourselves. */
+    ff_start_frame(outlink, fifo->root.next->picref);
+    ff_draw_slice (outlink, 0, outlink->h, 1);
+    ff_end_frame  (outlink);
+
+    if (fifo->last == fifo->root.next)
+        fifo->last = &fifo->root;
+    tmp = fifo->root.next->next;
+    av_free(fifo->root.next);
+    fifo->root.next = tmp;
+
+    return 0;
+}
+
+AVFilter avfilter_vf_fifo = {
+    .name      = "fifo",
+    .description = NULL_IF_CONFIG_SMALL("Buffer input images and send them when they are requested."),
+
+    .init      = init,
+    .uninit    = uninit,
+
+    .priv_size = sizeof(FifoContext),
+
+    .inputs    = (AVFilterPad[]) {{ .name            = "default",
+                                    .type            = AVMEDIA_TYPE_VIDEO,
+                                    .get_video_buffer= ff_null_get_video_buffer,
+                                    .start_frame     = start_frame,
+                                    .draw_slice      = draw_slice,
+                                    .end_frame       = end_frame,
+                                    .rej_perms       = AV_PERM_REUSE2, },
+                                  { .name = NULL}},
+    .outputs   = (AVFilterPad[]) {{ .name            = "default",
+                                    .type            = AVMEDIA_TYPE_VIDEO,
+                                    .request_frame   = request_frame, },
+                                  { .name = NULL}},
+};
diff --git a/libavfilter/vf_fifo.c b/libavfilter/vf_fifo.c
deleted file mode 100644 (file)
index 1785946..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (c) 2007 Bobby Bingham
- *
- * This file is part of Libav.
- *
- * Libav is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * Libav is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with Libav; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * @file
- * FIFO buffering video filter
- */
-
-#include "avfilter.h"
-#include "internal.h"
-#include "video.h"
-
-typedef struct BufPic {
-    AVFilterBufferRef *picref;
-    struct BufPic     *next;
-} BufPic;
-
-typedef struct {
-    BufPic  root;
-    BufPic *last;   ///< last buffered picture
-} FifoContext;
-
-static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
-{
-    FifoContext *fifo = ctx->priv;
-    fifo->last = &fifo->root;
-
-    av_log(ctx, AV_LOG_INFO, "\n");
-    return 0;
-}
-
-static av_cold void uninit(AVFilterContext *ctx)
-{
-    FifoContext *fifo = ctx->priv;
-    BufPic *pic, *tmp;
-
-    for (pic = fifo->root.next; pic; pic = tmp) {
-        tmp = pic->next;
-        avfilter_unref_buffer(pic->picref);
-        av_free(pic);
-    }
-}
-
-static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
-{
-    FifoContext *fifo = inlink->dst->priv;
-
-    fifo->last->next = av_mallocz(sizeof(BufPic));
-    fifo->last = fifo->last->next;
-    fifo->last->picref = picref;
-}
-
-static void end_frame(AVFilterLink *inlink) { }
-
-static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) { }
-
-static int request_frame(AVFilterLink *outlink)
-{
-    FifoContext *fifo = outlink->src->priv;
-    BufPic *tmp;
-    int ret;
-
-    if (!fifo->root.next) {
-        if ((ret = ff_request_frame(outlink->src->inputs[0]) < 0))
-            return ret;
-    }
-
-    /* by doing this, we give ownership of the reference to the next filter,
-     * so we don't have to worry about dereferencing it ourselves. */
-    ff_start_frame(outlink, fifo->root.next->picref);
-    ff_draw_slice (outlink, 0, outlink->h, 1);
-    ff_end_frame  (outlink);
-
-    if (fifo->last == fifo->root.next)
-        fifo->last = &fifo->root;
-    tmp = fifo->root.next->next;
-    av_free(fifo->root.next);
-    fifo->root.next = tmp;
-
-    return 0;
-}
-
-AVFilter avfilter_vf_fifo = {
-    .name      = "fifo",
-    .description = NULL_IF_CONFIG_SMALL("Buffer input images and send them when they are requested."),
-
-    .init      = init,
-    .uninit    = uninit,
-
-    .priv_size = sizeof(FifoContext),
-
-    .inputs    = (AVFilterPad[]) {{ .name            = "default",
-                                    .type            = AVMEDIA_TYPE_VIDEO,
-                                    .get_video_buffer= ff_null_get_video_buffer,
-                                    .start_frame     = start_frame,
-                                    .draw_slice      = draw_slice,
-                                    .end_frame       = end_frame,
-                                    .rej_perms       = AV_PERM_REUSE2, },
-                                  { .name = NULL}},
-    .outputs   = (AVFilterPad[]) {{ .name            = "default",
-                                    .type            = AVMEDIA_TYPE_VIDEO,
-                                    .request_frame   = request_frame, },
-                                  { .name = NULL}},
-};