mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
fftools/ffmpeg_filter: try to configure filtergraphs earlier
When the filtergraph has no inputs, it can be configured immediately when all its outputs are bound to output streams. This will simplify treating some corner cases.
This commit is contained in:
parent
7520cd9f07
commit
ad4efb9158
@ -504,6 +504,7 @@ static void set_channel_layout(OutputFilter *f, OutputStream *ost)
|
||||
|
||||
void ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost)
|
||||
{
|
||||
FilterGraph *fg = ofilter->graph;
|
||||
const AVCodec *c = ost->enc_ctx->codec;
|
||||
|
||||
ofilter->ost = ost;
|
||||
@ -538,6 +539,23 @@ void ofilter_bind_ost(OutputFilter *ofilter, OutputStream *ost)
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// if we have all input parameters and all outputs are bound,
|
||||
// the graph can now be configured
|
||||
if (ifilter_has_all_input_formats(fg)) {
|
||||
int ret;
|
||||
|
||||
for (int i = 0; i < fg->nb_outputs; i++)
|
||||
if (!fg->outputs[i]->ost)
|
||||
return;
|
||||
|
||||
ret = configure_filtergraph(fg);
|
||||
if (ret < 0) {
|
||||
av_log(NULL, AV_LOG_ERROR, "Error configuring filter graph: %s\n",
|
||||
av_err2str(ret));
|
||||
exit_program(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static InputFilter *ifilter_alloc(FilterGraph *fg)
|
||||
|
Loading…
Reference in New Issue
Block a user