Commit e363730c authored by Vitor Sessak's avatar Vitor Sessak

Rewrite colorspace negotiation.

Commited in SoC by Bobby Bingham on 2007-12-20 19:36:26

Originally committed as revision 12072 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent d0e4eba5
...@@ -115,15 +115,40 @@ int avfilter_default_config_input_link(AVFilterLink *link) ...@@ -115,15 +115,40 @@ int avfilter_default_config_input_link(AVFilterLink *link)
} }
/** /**
* default query_formats() implementation for output video links to simplify * A helper for query_formats() which sets all links to the same list of
* the implementation of one input one output video filters */ * formats. If there are no links hooked to this filter, the list of formats is
int *avfilter_default_query_output_formats(AVFilterLink *link) * freed.
*
* FIXME: this will need changed for filters with a mix of pad types
* (video + audio, etc)
*/
void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats)
{ {
if(link->src->input_count && link->src->inputs[0]) int count = 0, i;
return avfilter_make_format_list(1, link->src->inputs[0]->format);
else for(i = 0; i < ctx->input_count; i ++) {
/* XXX: any non-simple filter which would cause this branch to be taken if(ctx->inputs[i]) {
* really should implement its own query_formats() for this link */ avfilter_formats_ref(formats, &ctx->inputs[i]->out_formats);
return avfilter_make_format_list(0); count ++;
}
}
for(i = 0; i < ctx->output_count; i ++) {
if(ctx->outputs[i]) {
avfilter_formats_ref(formats, &ctx->outputs[i]->in_formats);
count ++;
}
}
if(!count) {
av_free(formats->formats);
av_free(formats->refs);
av_free(formats);
}
}
int avfilter_default_query_formats(AVFilterContext *ctx)
{
avfilter_set_common_formats(ctx, avfilter_all_colorspaces());
return 0;
} }
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