|
|
@@ -88,6 +88,25 @@ void avfilter_unref_pic(AVFilterPicRef *ref) |
|
|
|
av_free(ref); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* default config_link() implementation for output video links to simplify |
|
|
|
* the implementation of one input one output video filters */ |
|
|
|
static int default_config_output_link(AVFilterLink *link) |
|
|
|
{ |
|
|
|
link->w = link->src->inputs[0]->w; |
|
|
|
link->h = link->src->inputs[0]->h; |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* default query_formats() implementation for output video links to simplify |
|
|
|
* the implementation of one input one output video filters */ |
|
|
|
static int *default_query_output_formats(AVFilterLink *link) |
|
|
|
{ |
|
|
|
return avfilter_make_format_list(1, link->src->inputs[0]->format); |
|
|
|
} |
|
|
|
|
|
|
|
int avfilter_link(AVFilterContext *src, unsigned srcpad, |
|
|
|
AVFilterContext *dst, unsigned dstpad) |
|
|
|
{ |
|
|
@@ -107,7 +126,10 @@ int avfilter_link(AVFilterContext *src, unsigned srcpad, |
|
|
|
link->cur_pic = NULL; |
|
|
|
|
|
|
|
/* find a format both filters support - TODO: auto-insert conversion filter */ |
|
|
|
fmts[0] = src->filter->outputs[srcpad].query_formats(link); |
|
|
|
if(src->filter->outputs[srcpad].query_formats) |
|
|
|
fmts[0] = src->filter->outputs[srcpad].query_formats(link); |
|
|
|
else |
|
|
|
fmts[0] = default_query_output_formats(link); |
|
|
|
fmts[1] = dst->filter-> inputs[dstpad].query_formats(link); |
|
|
|
for(i = 0; fmts[0][i] != -1; i ++) |
|
|
|
for(j = 0; fmts[1][j] != -1; j ++) |
|
|
@@ -127,8 +149,14 @@ format_done: |
|
|
|
return -1; |
|
|
|
} |
|
|
|
|
|
|
|
src->filter->outputs[srcpad].config_props(link); |
|
|
|
dst->filter-> inputs[dstpad].config_props(link); |
|
|
|
if (src->filter->outputs[srcpad].config_props) |
|
|
|
src->filter->outputs[srcpad].config_props(link); |
|
|
|
else |
|
|
|
default_config_output_link(link); |
|
|
|
|
|
|
|
if (dst->filter->inputs[dstpad].config_props) |
|
|
|
dst->filter->inputs[dstpad].config_props(link); |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|