Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
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