[FFmpeg-devel] [PATCH] [2/??] [2/3] Filter graphs - Basic infrastructure
Vitor Sessak
vitor1001
Sun Feb 24 12:58:20 CET 2008
Hi
Michael Niedermayer wrote:
> On Sat, Feb 16, 2008 at 12:44:04PM +0100, Vitor Sessak wrote:
>> See $subj.
>>
>
>> /*
>> * filter graphs
>> * copyright (c) 2007 Bobby Bingham
>> *
> [...]
>> #include "avfilter.h"
>> #include "avfiltergraph.h"
>>
>
>> extern AVFilter avfilter_vf_scale;
>> extern AVFilter avfilter_vf_graph;
>> extern AVFilter avfilter_vf_graphdesc;
>
> this belongs in some header
>
>
>> typedef struct AVFilterGraph {
>> unsigned filter_count;
>> AVFilterContext **filters;
>>
>> /** fake filters to handle links to internal filters */
>> AVFilterContext *link_filter_in;
>> AVFilterContext *link_filter_out;
>> } GraphContext;
>>
>> typedef struct {
>> AVFilterContext *graph;
>> } GraphLinkContext;
>>
>> static int link_init(AVFilterContext *ctx, const char *args, void *opaque)
>> {
>> GraphLinkContext *linkctx = ctx->priv;
>> linkctx->graph = opaque;
>> return !opaque;
>> }
>>
>> /**
>> * Given the link between the dummy filter and an internal filter whose input
>> * is being exported outside the graph, this returns the externally visible
>> * link.
>> */
>> static inline AVFilterLink *get_extern_input_link(AVFilterLink *link)
>> {
>> GraphLinkContext *lctx = link->src->priv;
>> return lctx->graph->inputs[link->srcpad];
>> }
>
> Why are all the dummy filters needed? This looks kinda messy ...
> Cant a filter graph just be a filter graph where the filters directly link
> to the outside? If dummy filters really are needed (i need a clear explanation
> for this first) then they should at least be in their seperate vf_ files.
I think dummy filters were introduced to make a filter graph a filter
like any other. This make all the rest of the filter framework simpler
(no need to add graph handling code to avfilter_draw_slice(), etc). I'm
cc'ing this to Bobby, this is the kind of design decision I think he can
explain better than myself.
-Vitor
More information about the ffmpeg-devel
mailing list