From patchwork Mon Jul 8 07:40:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 50401 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:cc64:0:b0:482:c625:d099 with SMTP id k4csp5611686vqv; Mon, 8 Jul 2024 00:40:46 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX4MqoB4dQ7DlDn1yLMPwdrB9JesJwfPLJOGRASqzTV9W6/svsw4cBP6FdOK4Ra038ib0S+BfTTg5+xIhNeQUA4lDiIhjCfDhdQ0A== X-Google-Smtp-Source: AGHT+IHYGlgb6X92iKHlXM2Oz5neTvXZSs/ac3HRvXx3aDtR0h0/h/qodwZ3GcHe/LJIHwtbUWG9 X-Received: by 2002:a17:906:27d2:b0:a77:e1fb:7dee with SMTP id a640c23a62f3a-a77e1fb7f36mr345744666b.74.1720424445879; Mon, 08 Jul 2024 00:40:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1720424445; cv=none; d=google.com; s=arc-20160816; b=FcE7iXnrrySMIKXaK52OsfhvhEX2v7F3N8uEAQv8aUYSNjj7gg0O8fXmLew+BD7Gw1 mCVTeSJJBXK7Xu/Pw3XeCVy2MaUhWQZ9is+j0Wwuj/QWpYT7UJfVqKsd6gDtAYhtE5mS k5HYR4PyRycP0c7FkIvabq6pvNh5ergU9I7U3Vnj8DNK9tjDMPtG2SelGSigUSUP0922 AktVcGxE1yE9qKs5WHLQNNtvberp0WjT50BWXUsvXEbZ9ymHzzFoFO59mpfl2iYFtS8C 60UmxvI7BKyNTeki6V+rmRjcMOkXU/jawdC8je9kM3e1bAAkVbp6QNPdOVEZn/gL1I8k ckSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=Y9/CfYz1pZWRWTCEgg+G7WdeeEH1LVnFfJBVY1hwknc=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=HIRgFEJT53LsqRARMCYGsLAPN4U5o13Oed080rQ53JlCyqU66gh2+J4FcO1eb04Nck ESQqQ8GH8lBSDKC+xmRsHzCynJdt3Z66YTYr4xFyn58acS21d5lqHqyf+23Fzrd9gO3I NwVpogyalK5G3+38yJBxCwveWh+pHSikW6KniVFJlne3zOMO1dPHVB6s+0BwJC9rvCRt NWFI7RuqNDMKuDg6DwgBH6qARJ1J3z653ohOCFemRU4l0hPwQwKFIYsd20oOJG15jg+o f88sCatrVM3nKl1EmAaTFqrWVF1TX6gbAlronJoNJL8+gDMcKnQtAq2UndFvZfeZbL/H UwHg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=Wao7Y4ze; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a77bf6b5c29si432692366b.256.2024.07.08.00.40.45; Mon, 08 Jul 2024 00:40:45 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=Wao7Y4ze; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AACD568DC23; Mon, 8 Jul 2024 10:40:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-210.mail.qq.com (out203-205-221-210.mail.qq.com [203.205.221.210]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9540668D644 for ; Mon, 8 Jul 2024 10:40:34 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1720424424; bh=5JrkCWGJQKkGjDqAg+b6JLtLlwmtN4Uw9cfp9lrp6y8=; h=From:To:Cc:Subject:Date; b=Wao7Y4zeyddnPgiVFzB4a3Dw0Xg6eJyMhrY0gKq/jLZ158DiE9W0n1XOKqqncfQH/ jvDrH2hgzItyU4Crv1Ht6hgku+HBcCHYm9sF3H9+EPlB4vZpLFHT9u9cDR40C7qr9k 06p7eU6APKnCFAc9WUptYNB2R3MoGIbT3njINmjA= Received: from ZHILIZHAO-MB1.tencent.com ([119.147.10.207]) by newxmesmtplogicsvrszb9-1.qq.com (NewEsmtp) with SMTP id A1690CB4; Mon, 08 Jul 2024 15:40:22 +0800 X-QQ-mid: xmsmtpt1720424422tyrdqf6hu Message-ID: X-QQ-XMAILINFO: Mw5V7KuSxHjfDHJ55Aj1Sj9e1/3RkWi8xJuPgqUZIK0b/exM6N7ujUGcVTuRLK vEeQkODMUMPE5VbiXW1AkNOBeAl/wduG0/fK7VHq1lV3ShNSLyVk7y8YqJRHTeGBXrpW87MUVSDq KTF7KexpSStBMvXxxEwRFQ1hIraWQxcByyllxAyuJuoFQCsWfJLxj9vlVzdT0/lM58mPB1+vtftM +SlH8EDuBhfXTJY87SMnEbyeSswKBrwy33QxGqoP8o33mliwCBXkvIaYzDnsR6Pe+Kq37PtvrjUL QLqg1lwGX5FPHjy6Q5CHyukzDkB9k+vL6Vwgab3SUhpVs6AepM9ZsM8CUdP+Xr5b1MS2YV1PCcWR fYPE1dOLC2Wd0Fl9TBGZlSrVayQTlUGjLr9h05tH2+Ut5baiuqIfNcOOSDaex8MWKvoBqo9MCI2B 8AEduAjarO0u6cN5FnLHyoAtSLn2DukPRtKBD7U6CwGdmZCIkqK8/dPfTVxA8Q4XolsQrW+gRY3U 2AOou0bJsk8GIAdYSqPEjDDe7RoKmlG++Pte15LCkHRVHJawvgZncz6W2MdRSfrUbsuCEy4BGDuL zkdO1eqdcpMZOLzVNCkBu0OJShcTEqe5ZzonIgfog07NKclUYXloLHmwgCULJ9vAXy8ZPWFjURVz 7fPA+Cgl4bVzlSCRZ5nPRLxR/Assy7a59p7vYnSnU7nbx5WE+7eSI7dHQDwxsjS5iMKIQRrwWF/Y duPvah/AVQ89Y9eJTyYrmra/Fdy8iN2zXQ6moYfcnf9o3gwdDVK24RzfWDHEX+AUGvMPdnObVqjW 2GbyDObBtA9G3RkTgSFwTnsOHdP6CjVaMe96uod6/+hfQLY4HfgsfQXeJIPY87n2dpAe+aVckaqh LT1KZOoeF9dVAr4EpVc13NG5OsJA5cfKqVjSAfynRC3Xkd5C+NFaJ2imsbUqNajLqQkROytqeumF 9ISFQANRvJBwd0YqZBSJCgxczPn0vEEYTLehmCr1V5WPXlW7wY5qtfIoft1ccp X-QQ-XMRINFO: OD9hHCdaPRBwq3WW+NvGbIU= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Mon, 8 Jul 2024 15:40:20 +0800 X-OQ-MSGID: <20240708074021.13413-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/vvc: Use static const for function table 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 Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Hw4zvAR42QuJ From: Zhao Zhili --- libavcodec/vvc/thread.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/vvc/thread.c b/libavcodec/vvc/thread.c index 0cacb1f51c..8dd9a36fd5 100644 --- a/libavcodec/vvc/thread.c +++ b/libavcodec/vvc/thread.c @@ -565,7 +565,7 @@ static void task_run_stage(VVCTask *t, VVCContext *s, VVCLocalContext *lc) VVCFrameContext *fc = t->fc; VVCFrameThread *ft = fc->ft; const VVCTaskStage stage = t->stage; - run_func run[] = { + static const run_func run[] = { run_parse, run_inter, run_recon, From patchwork Mon Jul 8 07:43:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 50402 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:cc64:0:b0:482:c625:d099 with SMTP id k4csp5612616vqv; Mon, 8 Jul 2024 00:43:25 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCW1jL6KoDKF11FfzeQC5WBfxTZ2ptW/0/Jc38ve2q2+eIC/7LAlggwXfFTNF1olAbRK1BraPCKp6nbW8z2nXUiQ0SlifU4Jw1LOkQ== X-Google-Smtp-Source: AGHT+IGbdumNRGTxbJ3u4t0G1AD2JA/77g0jIJ/HuarNt20iK2U+dco3b2LvaptXhe3Zb9HtGN8z X-Received: by 2002:a2e:321a:0:b0:2ec:5ff1:2274 with SMTP id 38308e7fff4ca-2ee8ed9e9c6mr75183451fa.25.1720424605543; Mon, 08 Jul 2024 00:43:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1720424605; cv=none; d=google.com; s=arc-20160816; b=Jgwm3OLdjsSeVf1V7xWhjWRub5rkxwWCtF/f5g/dVAMSQX5EwBOry/w7lB2t19JxpM AYnh2XH5R3BXXcTR103k5XtZJfLdi8pDVqJBYe2YG4k7WagxwG07/WkzjZ/GWr7kNKcH CZFK+L5kYWGi6bL1bepiHSygTHQaP/vSOXiMhI7PSjBnhgsqZSgRaAARLVlKht4AA6rH JcxSRV8iJ39uaArtc8fr0tcZsLLOEfPu46+T0an2ENBOEJuiByxxXl246aSfYRcNjtIp qCf36r9M8NFXt94WxcgK1AQA9gxNomcDKVxNsVuD6nXeQZktv+xyuOo9/JupqvwLv0Ws k7Hg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=Llx5vAx/8RoomBISqGb0+Vhfm2DHBTmQabSK4Dx3h+4=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=ArgC3f7sqZxNRDkW1bhJH0y3nma0Q2VR7g4L+iIgGBKGCaiZGmky7Z49CSLj5OYXzz 1jt+h6fkZaUHh6W1V+i5jD5AJifVqZ8EscBSZTtyyqN/5r+9LFVIPMsjbvsu8wpgehHW lEq1fypwHX2OK/sCKbVsXZxNxjfFZmn5fm4ZAU+U6BDEJvles+aDeC3Uqp60O5C5LOPi dutHM5vBCbH/YyrclB9Ewfu++MLSwDmyGqJx6OutbCQKEVzxS2nz91Va/6JhFSdoa8HS Yc+akEY7C11HD4ql6vCOrL44KYuKYXnyBaRfHEdDkaIPmHONVOGv9jAihxkMG8bCkj2e rtww==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b="YG/xz6yQ"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 38308e7fff4ca-2ee87b88f27si27407951fa.54.2024.07.08.00.43.25; Mon, 08 Jul 2024 00:43:25 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b="YG/xz6yQ"; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 48EDD68D8DF; Mon, 8 Jul 2024 10:43:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-210.mail.qq.com (out203-205-221-210.mail.qq.com [203.205.221.210]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BFD3F68D8DF for ; Mon, 8 Jul 2024 10:43:13 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1720424585; bh=Vs0xeD7P/zSm0ttANOF/JldT9tHC63gNc/RKAyYCxgw=; h=From:To:Cc:Subject:Date; b=YG/xz6yQrq1QqiNfD4k2P3dqX6wNsWy8eipjjrrpYbpDGfMkWwRax5Bh0eN22CUDq 1Y4YdDHIwpCLnmbY36CrL2V8oNQ0dBXKm9duv6tiMmcbyxx3A7hgEOKVxgDqR+mYBj QPpJlv2HbHFJnWqE/yy641Hr6hPiZEYv9fwAb+UA= Received: from ZHILIZHAO-MB1.tencent.com ([119.147.10.207]) by newxmesmtplogicsvrsza15-1.qq.com (NewEsmtp) with SMTP id AC48E04C; Mon, 08 Jul 2024 15:43:04 +0800 X-QQ-mid: xmsmtpt1720424584tpneqfk43 Message-ID: X-QQ-XMAILINFO: MvM61XSVXCtDKiDE+fao4/U/dREPmj9ndONnfOS9Uf8WHqoLVmEU/fZg7YmScl tKS5ZqKOJaoyamANDXQiRga1ebZyZGaHb+J7PXb2JYpJsHQnY/nALFtLMnDtsC89uW6UP5qhyyMF h+6oc+ndegWWPlwljBp7GeUOQ+UJIywbBcExSHvv5z3ZM0yrrRyKXpvYIjz6MNmU4mX6RFCQDRo2 oAZTuyUBRvsZyVqKVQJ8xws68xrUQka9+jcjQyKYKYTn5lTwpJmryFaR3ier9rxmvQjPcdkOtQpG DmSZRuOHNFyivU+m4Wkij4rJF/cicjH3/Kr6thKdGJgRSqC/pCVVxxVwDSPjkfNS4/I/N3sF2OKp y3/MAC0yvTvPb+/muGZtxtfTZw7YF1Vn0fd3pJiqdLdyJjRIgtliAbaboR5EUoeZXoxy8szO282u bPYLKZuui0pxP41OmwWb2NpKMxCaTTywAtwhU+mYqFoP/w3HnwLpKculA03c2yVGDIP7Tip75Unv eqPFut5ldHI6kcqVxEFU+xGLPeJKArpGOObaDVl2deo7fXsp+9zRflDgUdcbD/5vJqLgPphmhClK kl/v4rOhrVC3Fd56LqjbWtt/CJ54JZfI1WtwaehZv1UDX0WxJj3KgR35zE5iSvHqLKHaj3RxnOWX Lzv6vIB8jkUIleUENFDyJg3I+HajZi5vQXDKKYEf6iI+RNacxSb8RRGCGFo01CT8FrrDvtOzJcAt KQiwwYp+6pCVg3ytORCz4naNMN/jD/xx8Z7fVzaiwltpZCHjs9xKECVWdPycJF2zuYZTQLF2DJlu 2wPFbxBmpdcOqGQWM1RihabnzHajE9FcpjWGyWSilMOH0fq+RMAskmmQv4nMUwSjs7ys+ox5TUNo U3KGvUNNnWShMzjKE0rNx4vrPVRTwe7NVXkfNGVuchwjLM2fudZscC+opRUGwclUtf76GbdCes1L erA5Th5ey8KkyA1kMxxYl8YQHmX9C5eoZJK6fl7RdFO+H3f6Ry/CGBvuVq+LYbKrBJ8sjNIiWWzz /sNqaNhnkiZsuAw1fj+OltJEje5YCIxweT3VTB1Q== X-QQ-XMRINFO: M/715EihBoGSf6IYSX1iLFg= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Mon, 8 Jul 2024 15:43:03 +0800 X-OQ-MSGID: <20240708074303.14785-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.42.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avutil/executor: Fix stack overflow due to recursive call 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 Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: PGLJTb6hWmH4 From: Zhao Zhili av_executor_execute run the task directly when thread is disabled. The task can schedule a new task by call av_executor_execute. This forms an implicit recursive call. This patch removed the recursive call. --- libavutil/executor.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libavutil/executor.c b/libavutil/executor.c index 89058fab2f..c145c51be9 100644 --- a/libavutil/executor.c +++ b/libavutil/executor.c @@ -58,6 +58,7 @@ struct AVExecutor { int die; AVTask *tasks; + int stack_depth; }; static AVTask* remove_task(AVTask **prev, AVTask *t) @@ -207,8 +208,12 @@ void av_executor_execute(AVExecutor *e, AVTask *t) } if (!e->thread_count || !HAVE_THREADS) { + if (e->stack_depth > 0) + return; + e->stack_depth++; // We are running in a single-threaded environment, so we must handle all tasks ourselves while (run_one_task(e, e->local_contexts)) /* nothing */; + e->stack_depth--; } }