[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