Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
From: Dave Taht <>
To: Juliusz Chroboczek <>
Cc: Guillaume Denis <>,
Subject: [Galene] Re: about packet pacers
Date: Tue, 28 Sep 2021 13:51:15 -0700	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>

I was terribly busy when this thread went by.

On Fri, Aug 6, 2021 at 4:01 PM Juliusz Chroboczek <> wrote:
> >> Toke, would you have some input regarding this:
> >> - do you think that in this use case monitoring a pacer with the target
> >> bitrate would have real added value?
> > Hmm, so the idea here would be that we know the bitrate of the stream
> > from the codec setting, and from that we can compute the packet-level
> > bitrate (by adding the packet overhead) and pace out the packets at that
> > rate? [...]
> > One question is whether the codec can be relied upon to stay within a
> > certain bitrate and over what timescales?
> No, but we know where the current frame ends, and we know when the next
> frame is due.  So we can spread the current frame smoothly over the
> interval between the current frame and the next one.  That will break when
> we get variable frame-rate codecs, but we'll cross that bridge when we get
> there.
> This is not what the GCC draft recommends[1]: what they suggest is to
> consider the target bitrate (the one that the congestion controller yields)
> and send a burst of up to 5ms*rate every 5ms.

That draft is old, and I don't know the right answer, but I'm pretty sure that's
not the right answer.

> [1]
> > On Linux you can use the SO_TXTIME socket option to get the kernel to
> > pace the packets for you; but that only works if there's a qdisc
> > installed that can handle the pacing (such as sch_fq), and it's hardly
> > cross-platform, so dunno if that will work?

I would like to try this - as the simplest possible implementation to
experiment with.

> I'd rather we did the pacing in the application, since that will allow us
> to drop packets more selectively: if we drop a packet due to congestion
> control, then we want to continue dropping until the end of the frame.

To be clear this is when you are dealing with galene being internally congested,
blocking so much on write that it needs to drop a frame?

> What's more, both the VP8 and VP9 codecs can be configured in a mode where
> they regularly schedule a "droppable" frame that is not used for
> intra-prediction (it's part of the simulcast implementation).

oh, excellent. Are you using this at all at this point, to probe for
more bandwidth.

> -- Juliusz
> _______________________________________________
> Galene mailing list --
> To unsubscribe send an email to

Fixing Starlink's Latencies:

Dave Täht CEO, TekLibre, LLC

      parent reply	other threads:[~2021-09-28 20:51 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-06 12:11 [Galene] " Guillaume Denis
2021-08-06 13:42 ` [Galene] " Juliusz Chroboczek
2021-08-06 20:34 ` Toke Høiland-Jørgensen
2021-08-06 23:01   ` Juliusz Chroboczek
2021-08-10  8:10     ` Guillaume Denis
2021-08-18 18:43       ` Juliusz Chroboczek
2021-08-18 21:32         ` Juliusz Chroboczek
2021-08-19  9:25           ` Guillaume Denis
2021-08-19 11:10             ` Juliusz Chroboczek
2021-09-28 20:51     ` Dave Taht [this message]

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:

  List information:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \
    --subject='[Galene] Re: about packet pacers' \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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