Commit 43c7a01e authored by Anton Khirnov's avatar 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.
parent 88c3b87b
...@@ -451,13 +451,17 @@ struct AVFilterPad { ...@@ -451,13 +451,17 @@ struct AVFilterPad {
int (*config_props)(AVFilterLink *link); int (*config_props)(AVFilterLink *link);
}; };
#if FF_API_FILTERS_PUBLIC
/** default handler for start_frame() for video inputs */ /** default handler for start_frame() for video inputs */
attribute_deprecated
void avfilter_default_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); void avfilter_default_start_frame(AVFilterLink *link, AVFilterBufferRef *picref);
/** default handler for draw_slice() for video inputs */ /** default handler for draw_slice() for video inputs */
attribute_deprecated
void avfilter_default_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); void avfilter_default_draw_slice(AVFilterLink *link, int y, int h, int slice_dir);
/** default handler for end_frame() for video inputs */ /** default handler for end_frame() for video inputs */
attribute_deprecated
void avfilter_default_end_frame(AVFilterLink *link); void avfilter_default_end_frame(AVFilterLink *link);
#if FF_API_DEFAULT_CONFIG_OUTPUT_LINK #if FF_API_DEFAULT_CONFIG_OUTPUT_LINK
...@@ -467,9 +471,15 @@ int avfilter_default_config_output_link(AVFilterLink *link); ...@@ -467,9 +471,15 @@ int avfilter_default_config_output_link(AVFilterLink *link);
#endif #endif
/** default handler for get_video_buffer() for video inputs */ /** default handler for get_video_buffer() for video inputs */
attribute_deprecated
AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link,
int perms, int w, int h); 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 * 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 * 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, ...@@ -477,9 +487,6 @@ AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link,
*/ */
void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats); 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 */ /** start_frame() handler for filters which simply pass video along */
void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref);
......
...@@ -161,7 +161,7 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx) ...@@ -161,7 +161,7 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx)
if (graph->filters[i]->filter->query_formats) if (graph->filters[i]->filter->query_formats)
graph->filters[i]->filter->query_formats(graph->filters[i]); graph->filters[i]->filter->query_formats(graph->filters[i]);
else 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 */ /* go through and merge as many format lists as possible */
......
...@@ -364,7 +364,7 @@ void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats) ...@@ -364,7 +364,7 @@ void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats)
avfilter_formats_ref, 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 : enum AVMediaType type = ctx->inputs && ctx->inputs [0] ? ctx->inputs [0]->type :
ctx->outputs && ctx->outputs[0] ? ctx->outputs[0]->type : ctx->outputs && ctx->outputs[0] ? ctx->outputs[0]->type :
...@@ -378,3 +378,10 @@ int avfilter_default_query_formats(AVFilterContext *ctx) ...@@ -378,3 +378,10 @@ int avfilter_default_query_formats(AVFilterContext *ctx)
return 0; return 0;
} }
#if FF_API_FILTERS_PUBLIC
int avfilter_default_query_formats(AVFilterContext *ctx)
{
return ff_default_query_formats(ctx);
}
#endif
...@@ -75,4 +75,6 @@ void ff_channel_layouts_unref(AVFilterChannelLayouts **ref); ...@@ -75,4 +75,6 @@ void ff_channel_layouts_unref(AVFilterChannelLayouts **ref);
void ff_channel_layouts_changeref(AVFilterChannelLayouts **oldref, void ff_channel_layouts_changeref(AVFilterChannelLayouts **oldref,
AVFilterChannelLayouts **newref); AVFilterChannelLayouts **newref);
int ff_default_query_formats(AVFilterContext *ctx);
#endif // AVFILTER_FORMATS_H #endif // AVFILTER_FORMATS_H
...@@ -56,5 +56,8 @@ ...@@ -56,5 +56,8 @@
#ifndef FF_API_DEFAULT_CONFIG_OUTPUT_LINK #ifndef FF_API_DEFAULT_CONFIG_OUTPUT_LINK
#define FF_API_DEFAULT_CONFIG_OUTPUT_LINK (LIBAVFILTER_VERSION_MAJOR < 3) #define FF_API_DEFAULT_CONFIG_OUTPUT_LINK (LIBAVFILTER_VERSION_MAJOR < 3)
#endif #endif
#ifndef FF_API_FILTERS_PUBLIC
#define FF_API_FILTERS_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 3)
#endif
#endif // AVFILTER_VERSION_H #endif // AVFILTER_VERSION_H
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "libavutil/pixdesc.h" #include "libavutil/pixdesc.h"
#include "avfilter.h" #include "avfilter.h"
#include "video.h"
typedef struct { typedef struct {
int vsub; ///< vertical chroma subsampling int vsub; ///< vertical chroma subsampling
...@@ -47,7 +48,7 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms, ...@@ -47,7 +48,7 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms,
int i; int i;
if (!(perms & AV_PERM_NEG_LINESIZES)) 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); picref = avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h);
for (i = 0; i < 4; i ++) { for (i = 0; i < 4; i ++) {
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "libavutil/common.h" #include "libavutil/common.h"
#include "libavutil/pixdesc.h" #include "libavutil/pixdesc.h"
#include "avfilter.h" #include "avfilter.h"
#include "video.h"
#include "yadif.h" #include "yadif.h"
#undef NDEBUG #undef NDEBUG
...@@ -180,7 +181,7 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms, int w, ...@@ -180,7 +181,7 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms, int w,
int height= FFALIGN(h+2, 32); int height= FFALIGN(h+2, 32);
int i; 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->w = w;
picref->video->h = h; picref->video->h = h;
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "avfilter.h" #include "avfilter.h"
#include "internal.h" #include "internal.h"
#include "video.h"
#ifdef DEBUG #ifdef DEBUG
static char *ff_get_ref_perms_string(char *buf, size_t buf_size, int perms) 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, ...@@ -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 /* 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 * filter chain. This will allow for a buffer pool instead of the constant
* alloc & free cycle currently implemented. */ * 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]; int linesize[4];
uint8_t *data[4]; uint8_t *data[4];
...@@ -149,7 +150,7 @@ AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int ...@@ -149,7 +150,7 @@ AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int
ret = link->dstpad->get_video_buffer(link, perms, w, h); ret = link->dstpad->get_video_buffer(link, perms, w, h);
if (!ret) if (!ret)
ret = avfilter_default_get_video_buffer(link, perms, w, h); ret = ff_default_get_video_buffer(link, perms, w, h);
if (ret) if (ret)
ret->type = AVMEDIA_TYPE_VIDEO; ret->type = AVMEDIA_TYPE_VIDEO;
...@@ -164,7 +165,7 @@ void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref) ...@@ -164,7 +165,7 @@ void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
avfilter_start_frame(link->dst->outputs[0], 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; AVFilterLink *outlink = NULL;
...@@ -189,7 +190,7 @@ void avfilter_start_frame(AVFilterLink *link, AVFilterBufferRef *picref) ...@@ -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); 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)) if (!(start_frame = dst->start_frame))
start_frame = avfilter_default_start_frame; start_frame = default_start_frame;
if (picref->linesize[0] < 0) if (picref->linesize[0] < 0)
perms |= AV_PERM_NEG_LINESIZES; perms |= AV_PERM_NEG_LINESIZES;
...@@ -215,7 +216,7 @@ void avfilter_null_end_frame(AVFilterLink *link) ...@@ -215,7 +216,7 @@ void avfilter_null_end_frame(AVFilterLink *link)
avfilter_end_frame(link->dst->outputs[0]); avfilter_end_frame(link->dst->outputs[0]);
} }
void avfilter_default_end_frame(AVFilterLink *inlink) static void default_end_frame(AVFilterLink *inlink)
{ {
AVFilterLink *outlink = NULL; AVFilterLink *outlink = NULL;
...@@ -239,7 +240,7 @@ void avfilter_end_frame(AVFilterLink *link) ...@@ -239,7 +240,7 @@ void avfilter_end_frame(AVFilterLink *link)
void (*end_frame)(AVFilterLink *); void (*end_frame)(AVFilterLink *);
if (!(end_frame = link->dstpad->end_frame)) if (!(end_frame = link->dstpad->end_frame))
end_frame = avfilter_default_end_frame; end_frame = default_end_frame;
end_frame(link); end_frame(link);
...@@ -256,7 +257,7 @@ void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) ...@@ -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); 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; AVFilterLink *outlink = NULL;
...@@ -304,7 +305,25 @@ void avfilter_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) ...@@ -304,7 +305,25 @@ void avfilter_draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
} }
if (!(draw_slice = link->dstpad->draw_slice)) 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); 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
/*
* 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 */
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "libavformat/avformat.h" #include "libavformat/avformat.h"
#include "libavutil/pixdesc.h" #include "libavutil/pixdesc.h"
#include "libavfilter/avfilter.h" #include "libavfilter/avfilter.h"
#include "libavfilter/formats.h"
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
...@@ -75,7 +76,7 @@ int main(int argc, char **argv) ...@@ -75,7 +76,7 @@ int main(int argc, char **argv)
if (filter->query_formats) if (filter->query_formats)
filter->query_formats(filter_ctx); filter->query_formats(filter_ctx);
else else
avfilter_default_query_formats(filter_ctx); ff_default_query_formats(filter_ctx);
/* print the supported formats in input */ /* print the supported formats in input */
for (i = 0; i < filter_ctx->input_count; i++) { for (i = 0; i < filter_ctx->input_count; i++) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment