From: Juliusz Chroboczek <jch@irif.fr>
To: galene@lists.galene.org
Subject: [Galene] About GCC in Galene
Date: Tue, 14 Jan 2025 15:35:14 +0100 [thread overview]
Message-ID: <87wmexea59.wl-jch@irif.fr> (raw)
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
reply other threads:[~2025-01-14 14:35 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://lists.galene.org/postorius/lists/galene.lists.galene.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wmexea59.wl-jch@irif.fr \
--to=jch@irif.fr \
--cc=galene@lists.galene.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox