1.17.9 - webrtcbin sdp answer missing ssrc's?
Matthew Waters
ystreet00 at gmail.com
Fri Aug 28 01:02:22 UTC 2020
On 28/8/20 6:54 am, Trey Hutcheson wrote:
> I'm sorry, but what do you mean that I have to wait for the sources to
> have received data before proceeding with the offer or answer?
>
> Here's the workflow:
> 1) Pipeline is created. Initially it contains a bin that has a
> videotestsrc that tee's to a fakesink.
> 2) A new bin is created that contains a webrtcbin element. The
> videotestsrc is linked to this bin, and encoded into vp8 along the way.
> 3) remote peer (chrome) creates and submits an sdp offer, including
> ice candidates (non-trickle workflow)
> 4) I set the remote description of type offer, then manually extract
> ice candidates from the sdp add them
> 5) i then create an sdp answer, while also listening for locally
> gathered candidates.
> 6) I return the sdp and ice candidates via the signalling channel and
> the remote peer uses it as the remote description
> 7) Media flows. Video is rendered. Etc etc etc.
Depending on your code, there may be a race between 2 and 5 of the caps
reaching a webrtcbin sink pad. You can workaround by waiting for the
later of notify::caps being emitted on the webrtcbin sink pad and the
successful setting of the offer before you ask to create the answer.
> This workflow worked 100% of the time, over hundreds and hundreds of
> iterations, for the past several months on 1.16.
>
> On Thu, Aug 27, 2020 at 3:16 PM Nicolas Dufresne <nicolas at ndufresne.ca
> <mailto:nicolas at ndufresne.ca>> wrote:
>
> Le jeudi 27 août 2020 à 11:50 -0500, Trey Hutcheson a écrit :
> > I have a media server that currently runs against gstreamer 1.16.2.
> > When I run that same code on top of the current 1.17.9 master, I
> > sometimes get no media to my remote peers.
> >
> > The workflow is simple. The browser provides the offer, and
> webrtcbin
> > provides the answer (signaling is our own custom app). Looking
> at the
> > sdp, I see that in the cases where media never starts flowing that
> > the sdp answer does not include ssrc's.
> >
> > Example fragment from good sdp answer:
> > m=video 9 UDP/TLS/RTP/SAVPF 96
> > c=IN IP4 0.0.0.0
> > a=ice-ufrag:fENRu4J+ohkX+c21z/3vzhvQ0a7LMqrX
> > a=ice-pwd:64ese6hPqiLwjB8QytOBokIXJGqf37Az
> > a=mid:0
> > a=rtcp-mux
> > a=setup:active
> > a=rtpmap:96 VP8/90000
> > a=rtcp-fb:96 nack pli
> > a=rtcp-fb:96 ccm fir
> > a=framerate:30
> > a=ssrc:1009469877 msid:user286747991 at host-a7789f8b
> webrtctransceiver5
> > a=ssrc:1009469877 cname:user286747991 at host-a7789f8b
> >
> > Example fragment from bad sdp answer:
> > m=video 9 UDP/TLS/RTP/SAVPF 96
> > c=IN IP4 0.0.0.0
> > a=ice-ufrag:2t2Wy+2pPcDPVPmVyixyMH2O/s63DFiX
> > a=ice-pwd:gPMprJzvik/ulzX3S92hcsGsdBMcYfgd
> > a=mid:0
> > a=rtcp-mux
> > a=setup:active
> > a=rtpmap:96 VP8/90000
> > a=rtcp-fb:96 nack pli
> > a=rtcp-fb:96 ccm fir
> > a=sendonly
> >
> > Notice that the second fragment does not include a=ssrc lines (nor
> > does it include the framerate attribute).
> >
> > This is troubling because the issue is intermittent. It happens with
> > great frequency. If, however, I set GST_DEBUG to 4, then it happens
> > far less often, though still occasionally. That would indicate to me
> > it is some internal race condition?
>
> Consider using GST_DEBUG="webrtcbin:7,3" or similar log level. Be
> aware
> that you need to wait for the sources to have received data before
> proceeding with an offer or answer. This corner case has multiple
> FIXME
> in the webrtcbin. That is worked reliable without special care in 1.16
> was likely just luck.
>
> Nicolas
>
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> <mailto:gstreamer-devel at lists.freedesktop.org>
> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> <mailto:gstreamer-devel at lists.freedesktop.org>
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200828/97356b92/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200828/97356b92/attachment-0001.sig>
More information about the gstreamer-devel
mailing list