Browse Source

ffmpeg: do not finish output streams manually on eof even if no input is provided

The generic code should be able to finish the streams just fine initializing
and flushing the filters and codecs properly.

Fixes the following command:

ffmpeg -f lavfi -i "testsrc=d=0.1[out0];aevalsrc=0:d=0[out1]" -af apad -shortest -f framecrc -

Signed-off-by: Marton Balint <cus@passwd.hu>
tags/n4.0
Marton Balint 7 years ago
parent
commit
0031eab61c
1 changed files with 1 additions and 11 deletions
  1. +1
    -11
      fftools/ffmpeg.c

+ 1
- 11
fftools/ffmpeg.c View File

@@ -2188,7 +2188,7 @@ static int ifilter_send_frame(InputFilter *ifilter, AVFrame *frame)

static int ifilter_send_eof(InputFilter *ifilter, int64_t pts)
{
int i, j, ret;
int ret;

ifilter->eof = 1;

@@ -2205,16 +2205,6 @@ static int ifilter_send_eof(InputFilter *ifilter, int64_t pts)
av_log(NULL, AV_LOG_ERROR, "Cannot determine format of input stream %d:%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;
if (i == fg->nb_inputs) {
// All the input streams have finished without the filtergraph
// ever being configured.
// Mark the output streams as finished.
for (j = 0; j < fg->nb_outputs; j++)
finish_output_stream(fg->outputs[j]->ost);
}
}

return 0;


Loading…
Cancel
Save