From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id D2C684F432 for ; Mon, 16 Jun 2025 22:56:36 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 1E87C68CAB9; Tue, 17 Jun 2025 01:56:33 +0300 (EEST) Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03olkn2058.outbound.protection.outlook.com [40.92.58.58]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 23B7A68C0A6 for ; Tue, 17 Jun 2025 01:56:27 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rnB2T7D/EUbOiw7osdfQUXb5o8SmW3g1W2IWKwRKFw5SMThOwiuHrDdvH7WZ2axEXPJTwhcVitdcWTkQFRsNAZOS6F4hbCBsQ1KzSqGY54+J3jDAmZbcAYHtWto2GSJZoWU8EXvRvEezCeSCLWSdZQjphyRHo7PSw+EXEC2OE1UGkV7RI9xnLGwGFj7b6OXMNkWkHrHpCxJAlqoKLm73B3+V24TXnroOSr0D9lVMMHZYyDaZtr+MD0+SadrT0uiJlUx0yggFtdVBa+Xwv0OTAHJV91GgX3AWiEpfR2gp3sbgfTTubXtLFoB1tPKbXA6XZ7x9fhfvnrvZlfBYaDQaMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=2fsNtHe1q857fuFKtOsoRSf5FsheQOOg6zmG5EIye44=; b=BBMCrCKe8xnW20x/O19IXCokifdAX8ssq5JK8e6niFK1sOE+ED85WupKpnAe+IbDQCPtBB6bNngCfmGrFcTbcSRflmR0BHYIgVyd2oCyJYGavIE7ypUMYoDOtGQPWimT6NajUbqp/l3qHEGbMP4ZYOVIB+PnOiE7+e1kHtjTLm33pbqYAWFIhF36mUw+0w/fEYXROZxiIji+0J7vvwqxDsnoEpZgb2ULQBLcIdUlnFXm6QxidlpkFNin0SectFWpif2ViIfBH5vGD7FHBvNSnWHljBRcMSSqIwNA/XmsQK2yJVPyEwtrOBt8SlQBvJ4DkQAidEQStnwmFJXOsvG6Tg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2fsNtHe1q857fuFKtOsoRSf5FsheQOOg6zmG5EIye44=; b=V8q2hIjq8b+yjLT0BMXXpz3Z/seo5g31FMXCcSYeTXrbtMWklRTvqgBzYvzFaraJONg6JO4IT35/pm8d+WLtaxi77ISNlGBXunVNPa62vx2pQp5A5YwSObKx21pMcF7Z5SySD+ycFxIz++ETzVdDV1C9bmgarXukFQd+qAGWwCObdQkKv5/Wf6zr/0+GFjHG3+2swvUxDyKpoYNCBC7KF0nES4/MdHCnitprhaHfCsAb9RhRIldNwtmscI4jVKFCGtibQtidy6dla06mtzFq5vJBGInPOEu0PnE0HmGcS8FjAkrJY2GnvASzckzTkpiZBtCO/2XDKp39uOc/SpsAvA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by VI0P250MB1372.EURP250.PROD.OUTLOOK.COM (2603:10a6:800:2cd::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.27; Mon, 16 Jun 2025 22:56:25 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%7]) with mapi id 15.20.8835.027; Mon, 16 Jun 2025 22:56:25 +0000 Message-ID: Date: Tue, 17 Jun 2025 00:56:23 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20250616224404.16142-1-cus@passwd.hu> <20250616224404.16142-4-cus@passwd.hu> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20250616224404.16142-4-cus@passwd.hu> X-ClientProxiedBy: FR2P281CA0008.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a::18) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|VI0P250MB1372:EE_ X-MS-Office365-Filtering-Correlation-Id: 489b4561-14c5-4b00-39be-08ddad290527 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmpirIBHktUo1hBn/uZG0bxyVLKEJ/hVQAHqyWUgYEaPxRHq/0T7WsMv7V0qUSRMLpZUFk6oEqAVOUZW3C8cI5cs4ut+wfp17GDfUcTftiLn8bEaDi2I5h1Z/xp256UBPhYSBNjZbtj7NjTYWB+doa/3K/5Rx8KaHwxLoOvUaKbydQ8SWTV1mGyrDrgkzaKABKppVo3Fne1bB84jhVlLWK/B38VFm9Vwl6xN4UTI7zljKSWhCIEPlbEqPZziTHzMT+03DLh/K1ZteQlaOYPv7IIRhyvLCh3Xa/61qA7zbgeGhvBkJAH8+DMJeFt4bZutK8yAtETsSyd64AUpWNsk0Co5YNSaPqpk5ZAePlBuPJLrBsG0vXGul5jsSxKTTO4a8ZgrIfy/M9Meb38VrJTLtOeAYC1DcKx9tYJnOpmwQlT84eaR1PfmDqXGelahA3l7U9oRer8Jtc/65E9eA29jzLVhoOB7jPJuhVTCOmPlJ7dtDGgP4rNb0+MGHvr66o/yYNYcVAogMcITJmsIoImDYnD44ePd4WJoX4YIhp/bu/FVXkxIXwQ1jO0uM30aZZTqA3nUI90BOgbEOM+zUkCw0OnmWXlJ5GvhbTmdKPhT/l8ziC9vo9DBgx149cH/N7YeCw9yiwjH04HJR3/K3ZBBNfT4QTxPvKWMtPEpNfZstG4vFsbtuOcgAo7vn48vVQg9ZPnHxevXKzNHpBN0vVOgSZfQTnQnMGiLGXKUrQlzVPwDKcoua0ptS2Ut5RViPBGVDOo= X-Microsoft-Antispam: BCL:0; ARA:14566002|6090799003|7092599006|8060799009|41001999006|15080799009|19110799006|461199028|5072599009|440099028|3412199025|40105399003; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SnQ5azIyTEovMWMvNW9NN0ZpUUlyclk4Y0hiVFFmSGkyRDRBc3ZLZ29SS2Js?= =?utf-8?B?N3dqam0yWlBYMHVac2oxU1Y3VFFNMkNJYWJFMlE0UU5NUGFJNVVwQkdkaXNE?= =?utf-8?B?ZFlBb1k2NjIzODVtd25uSkJZMkdSVjREeXBUTU5XbndvVEl1ZHFnWXV2KzFE?= =?utf-8?B?MGtZUUdlOEVueU5sbThDZ0UxK083MmRwb1NzSE5TckFLelovU1VzN2cwSGdi?= =?utf-8?B?c3Q2UGpDZ0ZiVVh5WUxwbk9LRWplc0sxdjRnc1R4bWl5Y0pJYVdIVUtpT0s3?= =?utf-8?B?S0RyaHgxdFI4RFVWQk83bXU1S0N0a2t5UExnRVB1VFY3UXFmelRRWjk4U1Vm?= =?utf-8?B?VE9qczFJbUhqc21yZGNpbWlRbGpJZCtJcUNXNC9KbUtTbkMrbTllQU9GUWVM?= =?utf-8?B?Vnh0OXpUS2ZvYUZBbXpYN3RnT3l5ajFFNnNLKy9GL3VmVEpLbkdhMWI5THZz?= =?utf-8?B?M1hHVUdnSzVGTDkzVFVrc0NCUXRiZE4vR0c0RFFrNXhWampRRzdKTjhUbGNi?= =?utf-8?B?SFNRckIvODNCNHpUemZnbUdPYUo4UEhhUVB3bXZLR0pUTDNlU1kxV3ppbE44?= =?utf-8?B?TVJJTFgzMFQzcDdtN253ZXhubzZkUzVXam9mSzdUV0ZMdDhEem95ZVNwNXpT?= =?utf-8?B?NEl6MUw5blFtelRUdW4wK3A1SENPUWdIclo0VVBzUEdSVzA2VmJVckM5Smth?= =?utf-8?B?SWwzMjlhMnRvOG0rSHM3Y0tsRnNpZ2xPdldSMDFUSCtmTUFkdGJaUFNNTzZj?= =?utf-8?B?WFJFeElNNDBwNVRQM0t1bTFjOEI5cFB2bmxLUHRjQnBxWkI1NEJqOWRmWmIz?= =?utf-8?B?eEtpdWV1eml0a2FGcVZBaEx1NjhPbkFURHJ3dkMzaHp1MjlCbVhVcGJNdDM1?= =?utf-8?B?TWQyeDlTeFNSZU9uTmdvbGp5dWxhMHc1NitnNVJXeEp4YVppL0d2MDVUejV4?= =?utf-8?B?QjM2cXB3YStzRk95TlFwdzZuWXJLNjR2UW03c3Z2QS9pcmpvNjB2Z0dUS0dT?= =?utf-8?B?QStXK2FudDd5bFBSY0w0MUt0WFFYc0pzem5SOGpMRUVGWFQ1MmY1NFh4R3Yr?= =?utf-8?B?VFBqV09VVEFNcXVEdDR2TFUyNEpLSzR3N2s0THhGbGIwL1g5Ynd1QTJ4U2dY?= =?utf-8?B?d1A2WXF3RUFIMlA5a1ZCWklIMWIxZFUzdzFxeGN3US91cEtvZGdUVzlMWXI2?= =?utf-8?B?YzRuUzZIWHlpVTRpU0NPaUFNUkxzQWJuS3U4ZGw1QTRKVDdUNzFjNGwwZU1F?= =?utf-8?B?aS9kVlBJbEsrWVJSRXZXamQwM3JISy83Y0Q2bjV4OFpDamF0SkFDTm5XdmdZ?= =?utf-8?B?bncwSllTVkc1Z3g1anM1dVdtMEp0T3I2RU1sbTR0eXlYT3Rtc2xPU2RDVmpP?= =?utf-8?B?MlZWOGVMZ2M3ejllb1FrOHVzUU82OWdoaHNoS2ZudWJQS3hTZHAzb3daamgy?= =?utf-8?B?S2dDNXBJYmJCVFM1V3owVi8vWTJKWlhnL0Vxb3Y5T3hROXVtWGxwa3VJOFZn?= =?utf-8?B?R1d3T25EOGVqRmlJNU92Um9PSkJXSGUxTmtpdWJQaG5uTmpSWTBmQU1teXFH?= =?utf-8?B?bjhTLzVCRkNtM2xoVTZ1eVVPYTk5dW1tU25jN2pzVjlkOGVDVW51RUsveTlr?= =?utf-8?B?OUNWL1NCcjFIMkRkejJPdzdnVU5oUVE9PQ==?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SitKQU9OcTNwM1BnbUVYVG82Wm1RNVU4RGhiaXRvSTQyTTF3ZjV6Rlp2YTdV?= =?utf-8?B?NEd3bjkyS2NHbDdpMi93UkRmbjFRYVdRTUJhWmlBVlB0TmNldVIvd0c1bUs3?= =?utf-8?B?R3NxUUFTNlB6SVNqVnZjc01uYWJPZkg1dlBiVFl0WjRsakR4VmxiRjlRN0lj?= =?utf-8?B?ZzZaY1FieDhZY2ZhT0x2aXpUNE5PRnQvbGc4SGIyY0pMQjBZVjZ3UkdmSFRI?= =?utf-8?B?bFNjSG56NmQzWjVlZWZ0SWhaaTlmQjZqdzl0SkJrUkUwVGpxRi9mTWhFWjI5?= =?utf-8?B?RW96Mis5bStPeXlYd2JDd2RZaGtpWHVkQ3U0UUpyZ1EzRXFnaEdHdDY5cUU3?= =?utf-8?B?eXZKZjM0MXppOXV0N1pNQnNKQlRoYzNQU0oxR2pFMmIyMWdCVEhvUHhaR0Ry?= =?utf-8?B?K1FZcld1UllHUnRtTFpQVWQvNlhGSUUxckVnVHNYVEc4VHlpcExMdi9hV1Z6?= =?utf-8?B?Z3VmZVVKMk1ZTStTYUxNdDVvbmpJNXV2Znl5QVFSRE1KNDJuYTZiZ1RjUU00?= =?utf-8?B?L08raTVZYjRCYzlOZGNwNVpVVTBmWDJkT1MrSEUyZnBUL3NNMnBuRWdoVmNl?= =?utf-8?B?Y3NWUW9sM1ZkREw0Nzlxc2l0aHpJZFJaT3lwQnNxZTNtL0NQKzBjRkt0NG9H?= =?utf-8?B?YW4xbmJIY1dsRlBka2VGcE8vUCtsOS9nWGlWZ2VZRkRXVGFLMUtkc0xuSXgy?= =?utf-8?B?SDZlQUNGbS9WR2tsamVtM0U2RmxxRlNBQzZOUVh6L20wU0ZmdktqNkR1RGtk?= =?utf-8?B?Z0FUcHlMNFRhNHNwY2RuMUdkU2U2UWdUdkplZlZ1MDJvVGc0U216QkZNajk0?= =?utf-8?B?bEJlcUZtcFBpdjQ1b3AyV29BNTM0d0FXbTRtbC9yUjZpdlU4T21MVGorWnVK?= =?utf-8?B?OXJTVXJRY3NWbzdtVURZMWVZSGN2Wm1yU3d6OUNlODNzaE5HanltY0lDTTBp?= =?utf-8?B?a3MvUnZ2aGZWK1RiM0YxOTU5cUYrZk4rR0Q5UWdsMTFzVkxsa2FMYzR6Ky9W?= =?utf-8?B?K0ovS3p4ajV0NWJjeitOMTJ1VFZIQ2lHektPUGhhMkV0eXUrajQyLytoQkdV?= =?utf-8?B?OUIrd2xFaVBMSXh2REhKa1FJM3pKSWI2TDZLMDhhaHc0M1VEZFhpMWhkNE0y?= =?utf-8?B?R2ZEMWxsWHVFWTVIWHo3ZDJWWTZadVlOOWpGWnh6NEZNcHZrZUU0cmlBUDNI?= =?utf-8?B?dnZDUnM5YmZscXgrSzJwUlNPbXUxcGNzMnlTYW5XUnhHbkpHRWNSNDQvejJC?= =?utf-8?B?Mjg4WnV0dXd6SnRxdktSS3ByRHJuNGowQWVXZ2x5Uk1IRk8yQy8yblRLM2hD?= =?utf-8?B?aERrQS9EbExvaDkvU24ranZkMC9xZVB3TXkrdVZWV2t4dTdydUtsUEdnekdq?= =?utf-8?B?ZkE3RHJGZU1JaU1IaDJ3M0U3WitaMEV6MWtYUHdiR2lJN2RRRGlhUXBhL0JP?= =?utf-8?B?L3Z5TG9XNS9qalVzV3JmVWtDUlpoSUV0bTI5N2dDaFcwSmZ5TlgrYUdISnF4?= =?utf-8?B?aWZ1Z3U1V0w2RU9JYUZ2Y0lHQVBKSlJUVHB0K0Q0ODJwU2dyMEZEY1laaEls?= =?utf-8?B?Yk1kVTAwZGpqUjdmSUNxQlB2RWU1RFpNanJUR2JjWnZNRjRIQkY4ei81RkN2?= =?utf-8?B?UnNuRFJROUVCbTFZRHdySjlTbU41dDcxUXo4S2ZaTlRpVFBxTUNLc0JOUEpG?= =?utf-8?B?bGs0V1RrTkF5M2xBMHJ5WmRsTHlhUGlEOFdhZXZzUVY0Z05vYi9vNTZyZVhh?= =?utf-8?Q?H7VnSr7esSL4EKrtS8i8mBX9fRJRNnWgDPe2+9l?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 489b4561-14c5-4b00-39be-08ddad290527 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2025 22:56:25.2126 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0P250MB1372 Subject: Re: [FFmpeg-devel] [PATCH 4/7] avfilter/avfilter: simplify processing sinks without activate callback X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: 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 > --- > 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)? > +{ > + AVFilterLink *oldest = &oldesti->l.pub; > + int ret; > + > + do { > + if (oldesti->frame_wanted_out) > + ret = ff_filter_graph_run_once(oldest->dst->graph); > + else > + ret = ff_request_frame(oldest); > + } while (ret >= 0); > + > + return ret; > +} > + > int avfilter_graph_request_oldest(AVFilterGraph *graph) > { > FFFilterGraph *graphi = fffiltergraph(graph); > FilterLinkInternal *oldesti = graphi->sink_links[0]; > AVFilterLink *oldest = &oldesti->l.pub; > - int64_t frame_count; > int r; > > while (graphi->sink_links_count) { > @@ -1437,13 +1451,11 @@ int avfilter_graph_request_oldest(AVFilterGraph *graph) > if (fffilter(oldest->dst->filter)->activate) { > r = av_buffersink_get_frame_flags(oldest->dst, NULL, > AV_BUFFERSINK_FLAG_PEEK); > - if (r != AVERROR_EOF) > - return r; > } else { > - r = ff_request_frame(oldest); > + r = process_legacy_sink_output(oldesti); > } > if (r != AVERROR_EOF) > - break; > + return r; > av_log(oldest->dst, AV_LOG_DEBUG, "EOF on sink link %s:%s.\n", > oldest->dst->name, > oldest->dstpad->name); > @@ -1453,21 +1465,7 @@ int avfilter_graph_request_oldest(AVFilterGraph *graph) > oldesti->age_index); > oldesti->age_index = -1; > } > - if (!graphi->sink_links_count) > - return AVERROR_EOF; > - av_assert1(!fffilter(oldest->dst->filter)->activate); > - av_assert1(oldesti->age_index >= 0); > - frame_count = oldesti->l.frame_count_out; > - while (frame_count == oldesti->l.frame_count_out) { > - r = ff_filter_graph_run_once(graph); > - if (r == AVERROR(EAGAIN) && > - !oldesti->frame_wanted_out && !oldesti->frame_blocked_in && > - !oldesti->status_in) > - (void)ff_request_frame(oldest); > - else if (r < 0) > - return r; > - } > - return 0; > + return AVERROR_EOF; > } > > int ff_filter_graph_run_once(AVFilterGraph *graph) _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".