[FFmpeg-cvslog] lavfi: remove avfilter_default_* from public API on next bump.

Anton Khirnov git at videolan.org
Wed May 23 22:00:58 CEST 2012


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sat May 19 10:37:56 2012 +0200| [43c7a01e9879640859d32b062ac01700e1333c7a] | committer: Anton Khirnov

lavfi: remove avfilter_default_* from public API on next bump.

Those functions are only useful inside filters. It is better to not
support user filters until the API is more stable.

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

 libavfilter/avfilter.h      |   13 ++++++++++---
 libavfilter/avfiltergraph.c |    2 +-
 libavfilter/formats.c       |    9 ++++++++-
 libavfilter/formats.h       |    2 ++
 libavfilter/version.h       |    3 +++
 libavfilter/vf_vflip.c      |    3 ++-
 libavfilter/vf_yadif.c      |    3 ++-
 libavfilter/video.c         |   35 +++++++++++++++++++++++++++--------
 libavfilter/video.h         |   24 ++++++++++++++++++++++++
 tools/lavfi-showfiltfmts.c  |    3 ++-
 10 files changed, 81 insertions(+), 16 deletions(-)

diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 711feca..0d40b76 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -451,13 +451,17 @@ struct AVFilterPad {
     int (*config_props)(AVFilterLink *link);
 };
 
+#if FF_API_FILTERS_PUBLIC
 /** default handler for start_frame() for video inputs */
+attribute_deprecated
 void avfilter_default_start_frame(AVFilterLink *link, AVFilterBufferRef *picref);
 
 /** default handler for draw_slice() for video inputs */
+attribute_deprecated
 void avfilter_default_draw_slice(AVFilterLink *link, int y, int h, int slice_dir);
 
 /** default handler for end_frame() for video inputs */
+attribute_deprecated
 void avfilter_default_end_frame(AVFilterLink *link);
 
 #if FF_API_DEFAULT_CONFIG_OUTPUT_LINK
@@ -467,9 +471,15 @@ int avfilter_default_config_output_link(AVFilterLink *link);
 #endif
 
 /** default handler for get_video_buffer() for video inputs */
+attribute_deprecated
 AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link,
                                                      int perms, int w, int h);
 
+/** Default handler for query_formats() */
+attribute_deprecated
+int avfilter_default_query_formats(AVFilterContext *ctx);
+#endif
+
 /**
  * A helper for query_formats() which sets all links to the same list of
  * formats. If there are no links hooked to this filter, the list of formats is
@@ -477,9 +487,6 @@ AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link,
  */
 void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats);
 
-/** Default handler for query_formats() */
-int avfilter_default_query_formats(AVFilterContext *ctx);
-
 /** start_frame() handler for filters which simply pass video along */
 void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref);
 
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
index 91a5f32..b2db5dc 100644
--- a/libavfilter/avfiltergraph.c
+++ b/libavfilter/avfiltergraph.c
@@ -161,7 +161,7 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx)
         if (graph->filters[i]->filter->query_formats)
             graph->filters[i]->filter->query_formats(graph->filters[i]);
         else
-            avfilter_default_query_formats(graph->filters[i]);
+            ff_default_query_formats(graph->filters[i]);
     }
 
     /* go through and merge as many format lists as possible */
diff --git a/libavfilter/formats.c b/libavfilter/formats.c
index 36b4d6d..63c63e3 100644
--- a/libavfilter/formats.c
+++ b/libavfilter/formats.c
@@ -364,7 +364,7 @@ void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats)
                        avfilter_formats_ref, formats);
 }
 
-int avfilter_default_query_formats(AVFilterContext *ctx)
+int ff_default_query_formats(AVFilterContext *ctx)
 {
     enum AVMediaType type = ctx->inputs  && ctx->inputs [0] ? ctx->inputs [0]->type :
                             ctx->outputs && ctx->outputs[0] ? ctx->outputs[0]->type :
@@ -378,3 +378,10 @@ int avfilter_default_query_formats(AVFilterContext *ctx)
 
     return 0;
 }
+
+#if FF_API_FILTERS_PUBLIC
+int avfilter_default_query_formats(AVFilterContext *ctx)
+{
+    return ff_default_query_formats(ctx);
+}
+#endif
diff --git a/libavfilter/formats.h b/libavfilter/formats.h
index 7e0a601..9acd31f 100644
--- a/libavfilter/formats.h
+++ b/libavfilter/formats.h
@@ -75,4 +75,6 @@ void ff_channel_layouts_unref(AVFilterChannelLayouts **ref);
 void ff_channel_layouts_changeref(AVFilterChannelLayouts **oldref,
                                   AVFilterChannelLayouts **newref);
 
+int ff_default_query_formats(AVFilterContext *ctx);
+
 #endif // AVFILTER_FORMATS_H
diff --git a/libavfilter/version.h b/libavfilter/version.h
index 5dd81c1..6194876 100644
--- a/libavfilter/version.h
+++ b/libavfilter/version.h
@@ -56,5 +56,8 @@
 #ifndef FF_API_DEFAULT_CONFIG_OUTPUT_LINK
 #define FF_API_DEFAULT_CONFIG_OUTPUT_LINK   (LIBAVFILTER_VERSION_MAJOR < 3)
 #endif
+#ifndef FF_API_FILTERS_PUBLIC
+#define FF_API_FILTERS_PUBLIC               (LIBAVFILTER_VERSION_MAJOR < 3)
+#endif
 
 #endif // AVFILTER_VERSION_H
diff --git a/libavfilter/vf_vflip.c b/libavfilter/vf_vflip.c
index 09ba303..a7f14c0 100644
--- a/libavfilter/vf_vflip.c
+++ b/libavfilter/vf_vflip.c
@@ -25,6 +25,7 @@
 
 #include "libavutil/pixdesc.h"
 #include "avfilter.h"
+#include "video.h"
 
 typedef struct {
     int vsub;   ///< vertical chroma subsampling
@@ -47,7 +48,7 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms,
     int i;
 
     if (!(perms & AV_PERM_NEG_LINESIZES))
-        return avfilter_default_get_video_buffer(link, perms, w, h);
+        return ff_default_get_video_buffer(link, perms, w, h);
 
     picref = avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h);
     for (i = 0; i < 4; i ++) {
diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c
index 1cecdd9..0c72444 100644
--- a/libavfilter/vf_yadif.c
+++ b/libavfilter/vf_yadif.c
@@ -23,6 +23,7 @@
 #include "libavutil/common.h"
 #include "libavutil/pixdesc.h"
 #include "avfilter.h"
+#include "video.h"
 #include "yadif.h"
 
 #undef NDEBUG
@@ -180,7 +181,7 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms, int w,
     int height= FFALIGN(h+2, 32);
     int i;
 
-    picref = avfilter_default_get_video_buffer(link, perms, width, height);
+    picref = ff_default_get_video_buffer(link, perms, width, height);
 
     picref->video->w = w;
     picref->video->h = h;
diff --git a/libavfilter/video.c b/libavfilter/video.c
index ad033f3..74b0837 100644
--- a/libavfilter/video.c
+++ b/libavfilter/video.c
@@ -20,6 +20,7 @@
 
 #include "avfilter.h"
 #include "internal.h"
+#include "video.h"
 
 #ifdef DEBUG
 static char *ff_get_ref_perms_string(char *buf, size_t buf_size, int perms)
@@ -72,7 +73,7 @@ AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link, int perms,
 /* TODO: set the buffer's priv member to a context structure for the whole
  * filter chain.  This will allow for a buffer pool instead of the constant
  * alloc & free cycle currently implemented. */
-AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
+AVFilterBufferRef *ff_default_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
 {
     int linesize[4];
     uint8_t *data[4];
@@ -149,7 +150,7 @@ AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int
         ret = link->dstpad->get_video_buffer(link, perms, w, h);
 
     if (!ret)
-        ret = avfilter_default_get_video_buffer(link, perms, w, h);
+        ret = ff_default_get_video_buffer(link, perms, w, h);
 
     if (ret)
         ret->type = AVMEDIA_TYPE_VIDEO;
@@ -164,7 +165,7 @@ void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
     avfilter_start_frame(link->dst->outputs[0], picref);
 }
 
-void avfilter_default_start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
+static void default_start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
 {
     AVFilterLink *outlink = NULL;
 
@@ -189,7 +190,7 @@ void avfilter_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
     FF_DPRINTF_START(NULL, start_frame); ff_dlog_link(NULL, link, 0); av_dlog(NULL, " "); ff_dlog_ref(NULL, picref, 1);
 
     if (!(start_frame = dst->start_frame))
-        start_frame = avfilter_default_start_frame;
+        start_frame = default_start_frame;
 
     if (picref->linesize[0] < 0)
         perms |= AV_PERM_NEG_LINESIZES;
@@ -215,7 +216,7 @@ void avfilter_null_end_frame(AVFilterLink *link)
     avfilter_end_frame(link->dst->outputs[0]);
 }
 
-void avfilter_default_end_frame(AVFilterLink *inlink)
+static void default_end_frame(AVFilterLink *inlink)
 {
     AVFilterLink *outlink = NULL;
 
@@ -239,7 +240,7 @@ void avfilter_end_frame(AVFilterLink *link)
     void (*end_frame)(AVFilterLink *);
 
     if (!(end_frame = link->dstpad->end_frame))
-        end_frame = avfilter_default_end_frame;
+        end_frame = default_end_frame;
 
     end_frame(link);
 
@@ -256,7 +257,7 @@ void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
     avfilter_draw_slice(link->dst->outputs[0], y, h, slice_dir);
 }
 
-void avfilter_default_draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir)
+static void default_draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir)
 {
     AVFilterLink *outlink = NULL;
 
@@ -304,7 +305,25 @@ void avfilter_draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
     }
 
     if (!(draw_slice = link->dstpad->draw_slice))
-        draw_slice = avfilter_default_draw_slice;
+        draw_slice = default_draw_slice;
     draw_slice(link, y, h, slice_dir);
 }
 
+#if FF_API_FILTERS_PUBLIC
+AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
+{
+    return ff_default_get_video_buffer(link, perms, w, h);
+}
+void avfilter_default_start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
+{
+    default_start_frame(inlink, picref);
+}
+void avfilter_default_end_frame(AVFilterLink *inlink)
+{
+    default_end_frame(inlink);
+}
+void avfilter_default_draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir)
+{
+    default_draw_slice(inlink, y, h, slice_dir);
+}
+#endif
diff --git a/libavfilter/video.h b/libavfilter/video.h
new file mode 100644
index 0000000..99f84ec
--- /dev/null
+++ b/libavfilter/video.h
@@ -0,0 +1,24 @@
+/*
+ * 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
+ */
+
+#ifndef AVFILTER_VIDEO_H
+#define AVFILTER_VIDEO_H
+
+AVFilterBufferRef *ff_default_get_video_buffer(AVFilterLink *link,
+                                               int perms, int w, int h);
+#endif /* AVFILTER_VIDEO_H */
diff --git a/tools/lavfi-showfiltfmts.c b/tools/lavfi-showfiltfmts.c
index d25cf3e..146f0cd 100644
--- a/tools/lavfi-showfiltfmts.c
+++ b/tools/lavfi-showfiltfmts.c
@@ -21,6 +21,7 @@
 #include "libavformat/avformat.h"
 #include "libavutil/pixdesc.h"
 #include "libavfilter/avfilter.h"
+#include "libavfilter/formats.h"
 
 int main(int argc, char **argv)
 {
@@ -75,7 +76,7 @@ int main(int argc, char **argv)
     if (filter->query_formats)
         filter->query_formats(filter_ctx);
     else
-        avfilter_default_query_formats(filter_ctx);
+        ff_default_query_formats(filter_ctx);
 
     /* print the supported formats in input */
     for (i = 0; i < filter_ctx->input_count; i++) {



More information about the ffmpeg-cvslog mailing list