On Sun, 18 Mar 2018 20:09:08 +0100 Marton Balint <c...@passwd.hu> wrote:
> Fixes ticket #6854 and the following simpler case: > > ffmpeg -f lavfi -i testsrc=d=1 -f lavfi -i testsrc=d=0 -filter_complex > overlay -f null none > > Signed-off-by: Marton Balint <c...@passwd.hu> > --- > fftools/ffmpeg.c | 33 ++++++++++++++++----------------- > 1 file changed, 16 insertions(+), 17 deletions(-) > > diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c > index ee7258fcd1..8876c99560 100644 > --- a/fftools/ffmpeg.c > +++ b/fftools/ffmpeg.c > @@ -1855,23 +1855,6 @@ static void flush_encoders(void) > ost->file_index, ost->st->index); > > if (ost->filter && !fg->graph) { > - int x; > - for (x = 0; x < fg->nb_inputs; x++) { > - InputFilter *ifilter = fg->inputs[x]; > - if (ifilter->format < 0) { > - AVCodecParameters *par = ifilter->ist->st->codecpar; > - // We never got any input. Set a fake format, which > will > - // come from libavformat. > - ifilter->format = par->format; > - ifilter->sample_rate = par->sample_rate; > - ifilter->channels = par->channels; > - ifilter->channel_layout = > par->channel_layout; > - ifilter->width = par->width; > - ifilter->height = par->height; > - ifilter->sample_aspect_ratio = > par->sample_aspect_ratio; > - } > - } > - > if (!ifilter_has_all_input_formats(fg)) > continue; > > @@ -2214,6 +2197,22 @@ static int ifilter_send_eof(InputFilter *ifilter, > int64_t pts) > } else { > // the filtergraph was never configured > FilterGraph *fg = ifilter->graph; > + if (ifilter->format < 0) { > + AVCodecParameters *par = ifilter->ist->st->codecpar; > + // We never got any input. Set a fake format, which will > + // come from libavformat. > + ifilter->format = par->format; > + ifilter->sample_rate = par->sample_rate; > + ifilter->channels = par->channels; > + ifilter->channel_layout = par->channel_layout; > + ifilter->width = par->width; > + ifilter->height = par->height; > + ifilter->sample_aspect_ratio = par->sample_aspect_ratio; > + } > + if (ifilter->format < 0 && (ifilter->type == AVMEDIA_TYPE_AUDIO || > ifilter->type == AVMEDIA_TYPE_VIDEO)) { > + av_log(NULL, AV_LOG_ERROR, "Cannot determine format of input %d, > stream %d after EOF\n", ifilter->ist->file_index, ifilter->ist->st->index); > + return AVERROR_INVALIDDATA; > + } > for (i = 0; i < fg->nb_inputs; i++) > if (!fg->inputs[i]->eof) > break; Does it make sense to mux audio or video without packets? And why? _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel