Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
* [Galene] About GCC in Galene
@ 2025-01-14 14:35 Juliusz Chroboczek
  0 siblings, 0 replies; only message in thread
From: Juliusz Chroboczek @ 2025-01-14 14:35 UTC (permalink / raw)
  To: galene

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

  

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-01-14 14:35 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-14 14:35 [Galene] About GCC in Galene Juliusz Chroboczek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox