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 4EE124D377 for ; Sat, 20 Dec 2025 15:47:19 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'Oyq36z7+Wgzngzk8THVukpDj2daPy2z0Ea9vCF9KCwE=', expected b'YHq4RtcJxZVIrMb/YAkXlG49XUQR4JYvcAKFWNUUksc=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1766245625; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=Oyq36z7+Wgzngzk8THVukpDj2daPy2z0Ea9vCF9KCwE=; b=rkkUTXF6PWMvaAvVC0eiJcfiAY4Ru/H7jSypy2aljnJ8STUpenZrn91NkJGfeDh2cYdbm BVvkqOmLG5Xbr6dlMCAXailqhYSqeGYSOqV50a+KvXU+ui/l3fmc6kaIROyD5pZIjT4vjec 8tzMzzyTR8EWPt91JLE3B8yM18583olx7wiKSsGiuLfRS1KXQOKFYpd78RmTB5U2od++16g sxSzgQCn8+oVhH/DaDYgD+ajongF/HJFZvVgC6PmI1H6VWxMuHtJYX+o+rpVP3PNtdNJdhU 9VaF6x5tOixH+kBFWOqsIHbzWOozwST5Lo6qWjSL3vHLbG6zRbfUMJmuUi7g== Received: from [172.20.0.2] (unknown [172.19.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 1CCD86909FA; Sat, 20 Dec 2025 17:47:05 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1766245615; b=ql+p5K7/adPS1aEvxZG31GM0ul0Jrv+GIEx4gnRY8D/nILgRV/fcmVjorP2Ki5sbGkqxX 3OLYBIk729vZB5+RnrwMkY1VOfp8dGYemOHYqLwy0/yc0n+1YEPmXmTaA0cEMo96TqeWxj8 6e9eeCudMEnFG/aX25ucEPJCGqv3MmDIOMmm1RhIwW8VdyC7xr8sHG4D9KaTGzg3jiuGlbb WTEtkQokiIN8thuyhNNLjzuIILp/k0FaDQra49mWoZFk/eZ133v0r2B057+1SkE3991PIuo kZLVLCI9st6138kOygjfjWPE3fMRHTm1fX/WUcoM6LNi7LJpk6Id55ovt4VQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1766245615; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=rUtfTfbCJrD7dkaVqE60H1vk12NFI4DhYF+WL2oxrrc=; b=mFjut5y4Q6TW3Fkug5jNxoVZvE7eIh01r6O4z0/Bxuj8/YncVw1DKPvVW4o5Yy103Qxa/ CE2VrRTtnf42pMm1e+AS7hQBkhZ6eTG0AIdwpwZJlVv09gWNCxQCMQh2+9vK6Ed5ECGP5Qp ubSjpOio83+0YYotYSRhUAHmmXi0eMJSt0QXXWsUb8rftIf3Alr+sku6uH3bYKz+R92hCvQ Hx4J4Smt/dNJZYGh5jcAL4JQT0KzjyCpTn5UilPsNH7fq4f/sm5rJbkILGgjAv6Qh1qNxQI gzfo06DEuHLmiN2+fXSh/JMMKHAgyeJfeTGgDWBvvZLpa2Yu5mSK9M7IfEvA== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1766245605; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=YHq4RtcJxZVIrMb/YAkXlG49XUQR4JYvcAKFWNUUksc=; b=3Xq4BP8/eVGPvBKcpLK665UHNUzLWOgd9mGcfv1vk1toK/baQZ5LQgPDfI44bjbS/V71c kTTH7dgEiUw4ElmX/Hg4ZP31svltFWiYvAFe8/wWGba+igIU88xLFab6cVCgYwsq2SabIGP r0A9D9QIKqeioo21l7VPXGR5iiMEsjpv+wm770mfnJflyLZtfinTwSpMirHUsZpTbH+Jqbl nR0hkbd0+PK7Mw0zkvnpSPKz2aJQcbVrTNtXHl7vpkL5ksKO4nsnA3vL9+oMdhmi0PXm8vs kV+trlcq1KEaWx0FWB1MoyKdVSvqRoyxHjAJWkRtUEi6OHELsUPWK7xx54qg== Received: from 55ca25703178 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 38CF26909E8 for ; Sat, 20 Dec 2025 17:46:45 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Sat, 20 Dec 2025 15:46:44 -0000 Message-ID: <176624560543.60.10050840498309401912@2cb04c0e5124> Message-ID-Hash: YGGX4K4LLCKN5T2K5XFVZQEZKSZSJFWR X-Message-ID-Hash: YGGX4K4LLCKN5T2K5XFVZQEZKSZSJFWR X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] fftools/ffmpeg_sched: fix race on SchFilter.send_finished (PR #21249) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Niklas Haas via ffmpeg-devel Cc: Niklas Haas Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21249 opened by Niklas Haas (haasn) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21249 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21249.patch This logic was previously added to the scheduler. That commit added locking (and rescheduling) when updating the corresponding `receive_finished` flag, but missed doing the same for `send_finished`. Fixes: fd1fd5850de4f3beb240422b67889bb776b26c77 >>From d23908d12611b4873dbd1548de61e4a5ac45f277 Mon Sep 17 00:00:00 2001 From: Niklas Haas Date: Sat, 20 Dec 2025 16:43:40 +0100 Subject: [PATCH] fftools/ffmpeg_sched: fix race on SchFilter.send_finished This logic was previously added to the scheduler. That commit added locking (and rescheduling) when updating the corresponding `receive_finished` flag, but missed doing the same for `send_finished`. Fixes: fd1fd5850de4f3beb240422b67889bb776b26c77 --- fftools/ffmpeg_sched.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fftools/ffmpeg_sched.c b/fftools/ffmpeg_sched.c index c5ee6971f1..862c002b85 100644 --- a/fftools/ffmpeg_sched.c +++ b/fftools/ffmpeg_sched.c @@ -2297,6 +2297,8 @@ static int send_to_filter(Scheduler *sch, SchFilterGraph *fg, if (frame) return tq_send(fg->queue, in_idx, frame); + pthread_mutex_lock(&sch->schedule_lock); + if (!fg->inputs[in_idx].send_finished) { fg->inputs[in_idx].send_finished = 1; tq_send_finish(fg->queue, in_idx); @@ -2304,7 +2306,11 @@ static int send_to_filter(Scheduler *sch, SchFilterGraph *fg, // close the control stream when all actual inputs are done if (atomic_fetch_add(&fg->nb_inputs_finished_send, 1) == fg->nb_inputs - 1) tq_send_finish(fg->queue, fg->nb_inputs); + + schedule_update_locked(sch); } + + pthread_mutex_unlock(&sch->schedule_lock); return 0; } -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org