[FFmpeg-devel] [FFmpeg-cvslog] avfilter/af_agate: switch to activate

Paul B Mahol onemda at gmail.com
Thu Aug 31 18:46:32 EEST 2017


On 8/31/17, Nicolas George <george at nsup.org> wrote:
> L'octidi 8 fructidor, an CCXXV, Paul B Mahol a ecrit :
>> +    if ((ret = ff_inlink_consume_frame(ctx->inputs[0], &in[0])) > 0) {
>> +        av_audio_fifo_write(s->fifo[0], (void **)in[0]->extended_data,
>> +                            in[0]->nb_samples);
>> +        av_frame_free(&in[0]);
>> +    }
>> +    if (ret < 0)
>> +        return ret;
>> +    if ((ret = ff_inlink_consume_frame(ctx->inputs[1], &in[1])) > 0) {
>> +        av_audio_fifo_write(s->fifo[1], (void **)in[1]->extended_data,
>> +                            in[1]->nb_samples);
>> +        av_frame_free(&in[1]);
>> +    }
>> +    if (ret < 0)
>> +        return ret;
>
> Just to be sure all is explained correctly:
>
> With this patch, you are certainly enhancing the scheduling, but it is
> not taking full advantage of the new design: with activate(), all links
> have a frame FIFO with unlimited capacity (and plans to add options to
> manage that capacity globally). In this snippet of code, you move the
> frames from this FIFO into another FIFO built in the private context. In
> other words, you are nullifying the benefit of the link's built-in FIFO.
>
> A complete conversion to activate() would require working from the
> link's FIFO directly, and getting rid of the code with AVAudioFifo
> altogether.
>
> It is more work, and since it works that way it is fine to leave it for
> later and reap the easy benefits immediately. But I wanted to make sure
> you were aware of that.
>
> The same applies to af_sidechaincompress.

I did it because it started hanging like overlay filter.


More information about the ffmpeg-devel mailing list