Galène videoconferencing server discussion list archives
 help / color / mirror / Atom feed
From: Alexandre IOOSS <erdnaxe@crans.org>
To: Juliusz Chroboczek <jch@irif.fr>
Cc: galene@lists.galene.org
Subject: [Galene] Re: Building a streaming gateway for Galène
Date: Fri, 9 Apr 2021 15:42:08 +0200	[thread overview]
Message-ID: <802366a1-df1b-3b4c-4c0d-b49c0dde9210@crans.org> (raw)
In-Reply-To: <87tuohn42a.wl-jch@irif.fr>

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())
>                 up.mu.Lock()
>  
>                 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.
   *
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/blob/1.18/ext/webrtc/gstwebrtcbin.c#L5310>
is reached,
   *
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/blob/1.18/ext/webrtc/gstwebrtcbin.c#L5324>
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.
--
https://gstreamer.freedesktop.org/documentation/rtpmanager/rtprtxsend.html

Do you confirm that "RTX" (https://tools.ietf.org/html/rfc4588) is the
feature missing?

-- 
Alexandre
erdnaxe@crans.org

  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:
  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=802366a1-df1b-3b4c-4c0d-b49c0dde9210@crans.org \
    --to=erdnaxe@crans.org \
    --cc=galene@lists.galene.org \
    --cc=jch@irif.fr \
    --subject='[Galene] Re: Building a streaming gateway for Galène' \
    /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

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