From: Juliusz Chroboczek <jch@irif.fr>
To: Guillaume Denis <gdenispro@gmail.com>
Cc: galene@lists.galene.org
Subject: [Galene] Re: about packet pacers
Date: Fri, 06 Aug 2021 15:42:51 +0200 [thread overview]
Message-ID: <87a6lu665g.wl-jch@irif.fr> (raw)
In-Reply-To: <CAB0ELa-TRP7md2=9xZip7QwJMyTJfHT0rjOQXLqymPMM_2LqiQ@mail.gmail.com>
I'll let Toke (or Dave?) answer the other points, but here's one I think
I understand.
> - I guess the pacer must act before the RTP packetizer so that timing
> information present in RTP headers are correct/not modified by the pacer. Is
> this correct?
As far as I understand, the pacer is applied after the RTP packetiser.
For each frame (or "picture" in VP9) produduced by the codec, the RTP
packetiser will produce a burst of packets with the same timestamp. If
these packets are sent in quick succession, they will temporarily congest
the sending interface or the bottleneck router.
The role of the pacer, as I undestand it, is to schedule the set of
packets in a single frame so that they go out at regular intervals. The
effect is a slight increase in delay (since the frame needs to be
reassembled at the receiver before it can be processed), in jitter (since
some packets might be larger than others), but a reduction in short-term
network congestion and therefore in packet loss.
The pacer does not rewrite RTP timestamps: the RTP timestamp describes
where the packets fit in the reconstructed video, it has little to do with
the time at which the packet is actually sent. (If the actual sending
time is needed, there's the abs-send-time extension, which should be
inserted after the pacer.)
Galene does not use a pacer, since it merely forwards packets that have
already been properly disciplined by the sender. (There is one exception,
it's when we send a cached keyframe to a new receiver -- we currently send
the keyframe as a burst, we should probably be conditioning it.)
-- Juliusz
next prev parent reply other threads:[~2021-08-06 13:42 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 ` Juliusz Chroboczek [this message]
2021-08-06 20:34 ` [Galene] " 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
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=87a6lu665g.wl-jch@irif.fr \
--to=jch@irif.fr \
--cc=galene@lists.galene.org \
--cc=gdenispro@gmail.com \
/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