mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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>
This commit is contained in:
parent
60c9a25530
commit
0031eab61c
@ -2188,7 +2188,7 @@ static int ifilter_send_frame(InputFilter *ifilter, AVFrame *frame)
|
|||||||
|
|
||||||
static int ifilter_send_eof(InputFilter *ifilter, int64_t pts)
|
static int ifilter_send_eof(InputFilter *ifilter, int64_t pts)
|
||||||
{
|
{
|
||||||
int i, j, ret;
|
int ret;
|
||||||
|
|
||||||
ifilter->eof = 1;
|
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);
|
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;
|
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;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user