[FFmpeg-devel] [PATCH 4/7] avfilter/avfilter: simplify processing sinks without activate callback
Marton Balint
cus at passwd.hu
Tue Jun 17 02:02:35 EEST 2025
On Tue, 17 Jun 2025, Andreas Rheinhardt wrote:
> Marton Balint:
>> Sinks without an activate callback (nullsink, anullsink) could cause
>> AVERROR(EAGAIN)-s in avfilter_graph_request_oldest() even when all the filter
>> graphs inputs were in EOF state.
>>
>> Fixes ticket #11624.
>> Fixes ticket #10988.
>> Fixes ticket #10990.
>>
>> Signed-off-by: Marton Balint <cus at passwd.hu>
>> ---
>> libavfilter/avfiltergraph.c | 38 ++++++++++++++++++-------------------
>> 1 file changed, 18 insertions(+), 20 deletions(-)
>>
>> diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c
>> index 2d6036df74..6f9f46f1ea 100644
>> --- a/libavfilter/avfiltergraph.c
>> +++ b/libavfilter/avfiltergraph.c
>> @@ -1423,12 +1423,26 @@ void ff_avfilter_graph_update_heap(AVFilterGraph *graph, FilterLinkInternal *li)
>> heap_bubble_down(graphi, li, li->age_index);
>> }
>>
>> +static int process_legacy_sink_output(FilterLinkInternal *oldesti)
>
> Why is considered legacy (instead of being just a different API)?
>
The documentation calls it legacy:
doc/filtering_design:
"The design using filter_frame() and request_frame() is legacy, but it is
suitable for filters that have a single input and process one frame at a
time."
avfilter/avfilter.c:
"In order to activate a filter implementing the legacy filter_frame()
and request_frame() methods, perform the first possible of the following
actions:"
But if you have another name in mind for this, I can change it.
Regards,
Marton
More information about the ffmpeg-devel
mailing list