[FFmpeg-devel] [PATCH] ffmpeg: always init output stream before reaping filters

Marton Balint cus at passwd.hu
Thu Oct 12 13:11:48 EEST 2017



On Sun, 8 Oct 2017, Marton Balint wrote:

>
>
> On Sat, 7 Oct 2017, Hendrik Leppkes wrote:
>
>> On Wed, Oct 4, 2017 at 12:48 AM, Marton Balint <cus at passwd.hu> wrote:
>>> Otherwise the frame size of the codec is not set in the buffersink.
>>>
>>> Fixes ticket #6603 and the following simpler case:
>>>
>>> ffmpeg -c aac -filter_complex "sine=d=0.1,asetnsamples=1025" out.aac
>>>
>>> Signed-off-by: Marton Balint <cus at passwd.hu>
>>> ---
>>>  fftools/ffmpeg.c | 9 +++++++++
>>>  1 file changed, 9 insertions(+)
>>>
>>> diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c
>>> index 1d248bc269..5be8788ea8 100644
>>> --- a/fftools/ffmpeg.c
>>> +++ b/fftools/ffmpeg.c
>>> @@ -4528,6 +4528,15 @@ static int transcode_step(void)
>>>      }
>>>
>>>      if (ost->filter && ost->filter->graph->graph) {
>>> +        if (!ost->initialized) {
>>> +            char error[1024] = {0};
>>> +            ret = init_output_stream(ost, error, sizeof(error));
>>> +            if (ret < 0) {
>>> +                av_log(NULL, AV_LOG_ERROR, "Error initializing output 
> stream %d:%d -- %s\n",
>>> +                       ost->file_index, ost->index, error);
>>> +                exit_program(1);
>>> +            }
>>> +        }
>>>          if ((ret = transcode_from_filter(ost->filter->graph, &ist)) < 0)
>>>              return ret;
>>>          if (!ist)
>>
>> Doesn't this basically void all the work that was done to get proper
>> output frame information before initializing the output, so its
>> created with the proper info at all times?
>
> To be frank, I am not entirely sure. Fate passes, so this can't be that 
> bad. The original patch that caused the regression is 
> af1761f7b5b1b72197dc40934953b775c2d951cc which in the commit message only 
> mentions the delayed initialization of filters, this patch keeps that.
>

Will push this soon.

Regards,
Marton


More information about the ffmpeg-devel mailing list