From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) by mail.toke.dk (Postfix) with ESMTPS id 5112BAC794B for ; Tue, 14 Jan 2025 15:35:22 +0100 (CET) Authentication-Results: mail.toke.dk; dkim=pass (2048-bit key; unprotected) header.d=irif.fr header.i=@irif.fr header.a=rsa-sha256 header.s=dkim-irif header.b=ZO/0PV7f Received: from potemkin.univ-paris7.fr (potemkin.univ-paris7.fr [IPv6:2001:660:3301:8000::1:1]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/82085) with ESMTP id 50EEZGHZ014153 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Tue, 14 Jan 2025 15:35:16 +0100 Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by potemkin.univ-paris7.fr (8.14.4/8.14.4/relay2/82085) with ESMTP id 50EEZGHg017024 for ; Tue, 14 Jan 2025 15:35:16 +0100 Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id 7648B4B45A for ; Tue, 14 Jan 2025 15:35:16 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=irif.fr; h= content-type:content-type:mime-version:user-agent:subject :subject:from:from:message-id:date:date:received:received; s= dkim-irif; t=1736865315; x=1737729316; bh=z1C+0AlcVOTWvcEpT9QMVX h6/Z4LwkBzKobkvUgwuoo=; b=ZO/0PV7fzmz+6Wt85BxTejz/OXicdSqpaaUWaJ NA19OAlxJh3NHJ16B5pI5boSsgg3Gp8xwyfI14QRX6gJTbs8uTj9HcunC9te/lcc f0I79tf92aNk4MnN1n4/CKslLYRZywJkcmGxwrgWH616GGXUvjOykYJX6tGMWUfj 7VV8IZOP/7fkrXyF8eoNF0A1qa5Jf/7oYMk7S8PQY2OXigRuV2BUAs3ubQ04MB7M BsZWkODUhY6kRvwpZZoLEu+ee433Be+mAoajpILQaUdu6d4qGQtt9Rq/88EtnIAh opCz2mprBAeUAzzZLq/g1iu7dOCgzlIOrSoGW4UyOS2JnXOw== X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id hmxp7D4igl8N for ; Tue, 14 Jan 2025 15:35:15 +0100 (CET) Received: from pirx.irif.fr (89-64-69-77.dynamic.chello.pl [89.64.69.77]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 413E34B458 for ; Tue, 14 Jan 2025 15:35:14 +0100 (CET) Date: Tue, 14 Jan 2025 15:35:14 +0100 Message-ID: <87wmexea59.wl-jch@irif.fr> From: Juliusz Chroboczek To: galene@lists.galene.org User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/29.4 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]); Tue, 14 Jan 2025 15:35:16 +0100 (CET) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (potemkin.univ-paris7.fr [194.254.61.141]); Tue, 14 Jan 2025 15:35:16 +0100 (CET) X-Miltered: at korolev with ID 67867624.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-Miltered: at potemkin with ID 67867624.000 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 67867624.000 from potemkin.univ-paris7.fr/potemkin.univ-paris7.fr/null/potemkin.univ-paris7.fr/ X-j-chkmail-Enveloppe: 67867624.000 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/ X-j-chkmail-Score: MSGID : 67867624.000 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000 X-j-chkmail-Score: MSGID : 67867624.000 on potemkin.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000 X-j-chkmail-Status: Ham X-j-chkmail-Status: Ham Message-ID-Hash: ADLK7Q2AFHN5PYRLZLC7EW3IYQXDKB55 X-Message-ID-Hash: ADLK7Q2AFHN5PYRLZLC7EW3IYQXDKB55 X-MailFrom: jch@irif.fr X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Subject: [Galene] About GCC in Galene List-Id: =?utf-8?q?Gal=C3=A8ne_videoconferencing_server_discussion_list?= Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Hi, Currently, Galene implements the older REMB encapsulation of the GCC congestion control algorithm, and white it implements full GCC in the Galene->client direction, it only implements a loss-based controller in the client->Galene direction. Since Pion claims to include a full implementation of GCC over the newer TWCC encapsulation, I set out to implement it in Galene. In short, it's not going well. I started with porting Galene to the v4 branch of Pion. That went fine, the results are in the pion-v4 branch, and are ready to be merged. I then implemented support for RTX tracks, which are not strictly necessary for GCC, but they cannot harm. I almost got there, then got stuck on https://github.com/pion/webrtc/issues/2994 Okay, no RTX for me then. I started looking at TWCC, at which point I found out that the congestion control API in Pion is almost unbelievably convoluted, it uses callbacks in order to return the results of a synchronous operation. So I tried to fix that: https://github.com/pion/interceptor/pull/297 https://github.com/pion/webrtc/pull/3002 https://github.com/pion/interceptor/pull/298 https://github.com/pion/webrtc/pull/3003 At this point, I implemented a branch of Galene with TWCC, only to find that the GCC implementation in Pion doesn't work correctly: https://github.com/pion/interceptor/issues/299 It looks like there are other issues with it: https://github.com/pion/interceptor/issues/260 https://github.com/pion/interceptor/issues/271 Fortunately, there are some good people working on fixing that, so there is some hope. In the meantime, I think I'm going to merge my port to pion-v4, but keep my current homebrew implementation of GCC: it might use an older packet format, and might be incomplete, but at least it works. -- Juliusz