Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
From: Alexandre IOOSS <>
To: Juliusz Chroboczek <>
Subject: [Galene] Re: Building a streaming gateway for Galène
Date: Fri, 9 Apr 2021 15:42:08 +0200	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>

On 4/8/21 12:05 AM, Juliusz Chroboczek wrote:
>>> Looking at the Wireshark dump, Galène seems also to use "0" as sender
>>> SSRC, so that might be the issue. I might try to do a dirty hack
>>> somewhere to confirm this hypothesis.
>> Galène doesn't choose the SSRC -- the SSRC is chosen by the offerer.
> You can find out the SSRC that Galène thinks the offerer has chosen by
> adding the following line:
> diff --git a/rtpconn/rtpconn.go b/rtpconn/rtpconn.go
> index eec5d97..6b7e8cb 100644
> --- a/rtpconn/rtpconn.go
> +++ b/rtpconn/rtpconn.go
> @@ -509,6 +509,7 @@ func newUpConn(c group.Client, id string, labels map[string]string, offer string
>         up := &rtpUpConnection{id: id, pc: pc, labels: labels}
>         pc.OnTrack(func(remote *webrtc.TrackRemote, receiver *webrtc.RTPReceiver) {
> +               log.Println("SSID", remote.SSRC())
>                 mid := getTrackMid(pc, remote)

Ok so everything is fine with SSRC. I was worried because Wireshark does
not seem to decode properly the RTP packets (encryption?).
I also confirm that keyframe requests are received by GStreamer and I
can observe the signal going back to the VP8 encoder.

I did some digging in GStreamer code and from what I understand:

1. PLI are working fine, and I can confirm that Galène manages to ask
for keyframes.

2. NACK are received but ignored because my GStreamer webrtcbin element
doesn't have "RTX" enabled.
is reached,
is never reached.

This implies that `transport_stream_get_pt(stream, "RTX")=0`, which
should not happen. I don't really understand why it's happening but
maybe it has something to do with the SDP response of Galène not
including the "a=rtpmap:100 rtx/90000"?

> The purpose of the sender RTX object is to keep a history of RTP
> packets up to a configurable limit [...]. It will listen for upstream
> custom retransmission events (GstRTPRetransmissionRequest) that comes
> from downstream (#GstRtpSession). When receiving a request it will
> look up the requested seqnum in its list of stored packets. If the
> packet is available, it will create a RTX packet according to RFC 4588
> and send this as an auxiliary stream. RTX is SSRC-multiplexed.

Do you confirm that "RTX" ( is the
feature missing?


  reply	other threads:[~2021-04-09 13:42 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-06 11:05 [Galene] " Alexandre IOOSS
2021-04-06 12:57 ` [Galene] " Juliusz Chroboczek
2021-04-06 16:10   ` [Galene] webrtc security cameras? Dave Taht
2021-04-06 17:07     ` [Galene] " Juliusz Chroboczek
2021-04-06 17:44   ` [Galene] Re: Building a streaming gateway for Galène Alexandre IOOSS
2021-04-06 23:19     ` Juliusz Chroboczek
2021-04-07 20:40       ` Alexandre IOOSS
2021-04-07 22:01         ` Juliusz Chroboczek
2021-04-07 22:05           ` Juliusz Chroboczek
2021-04-09 13:42             ` Alexandre IOOSS [this message]
2021-04-09 13:55               ` Juliusz Chroboczek
2021-04-09 14:17               ` Juliusz Chroboczek

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: Building a streaming gateway for Galène' \

* 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