[jitsi-users] videobridge / webrtc multiple sound source error


#1

Hi,

I need some guidance wrt to what I should expect in a certain case.

I have an Android app using the native webrtc library and connecting
to jitsi videobridge (with jicofo and prosody also in the mix).

I'm trying to set up a conference (audio only) with 3 android devices.

it all works fine for the first 2 peers negotiating a connection to the bridge.

but when the *third* client receives the jingle "session-initiate"
from the bridge and (after conversion to SDP) passes it to webrtc I
get the following error from webrtc:

04-02 04:40:43.626 16378 16424 E libjingle:
(webrtcvoiceengine.cc:117): Multiple SSRCs in stream parameters:
{id:Audio1a0;ssrcs
[3027352178,2810350554];ssrc_groups:;cname:HqYPcb90LW6fm9fT;sync_label:Audio1}
04-02 04:40:43.626 16378 16425 E libjingle: (channel.cc:776): Failure
in SetRemoteContent with action 0
04-02 04:40:43.626 16378 16425 E libjingle: (webrtcsession.cc:327):
Failed to set remote offer sdp: Session error code: ERROR_CONTENT.
Session error description: Failed to set remote audio description
streams..
04-02 04:40:43.626 16378 16425 E Peer : onSetFailure: Failed to set
remote offer sdp: Session error code: ERROR_CONTENT. Session error
description: Failed to set remote audio description streams..

here is the corresponding part of the session-initiate:

                <source ssrc="1938536675"
xmlns="urn:xmpp:jingle:apps:rtp:ssma:0">
                    <parameter value="mixed" name="cname" />
                    <parameter value="mixedlabelaudio0" name="label" />
                    <parameter value="mixedmslabel mixedlabelaudio0"
name="msid" />
                    <parameter value="mixedmslabel" name="mslabel" />
                    <ssrc-info owner="jvb" xmlns="http://jitsi.org/jitmeet" />
                </source>
                <source ssrc="3027352178"
xmlns="urn:xmpp:jingle:apps:rtp:ssma:0">
                    <parameter value="Cw+WGAaBaFzdOKjT" name="cname" />
                    <parameter value="Audio1 Audio1a0" name="msid" />
                    <parameter value="Audio1" name="mslabel" />
                    <parameter value="Audio1a0" name="label" />
                    <ssrc-info owner="2178a173-b6bd-4e65-9a7b
54b1aea89c72@conference.myhost.com/user_a"
xmlns="http://jitsi.org/jitmeet" />
                </source>
                <source ssrc="2810350554"
xmlns="urn:xmpp:jingle:apps:rtp:ssma:0">
                    <parameter value="HqYPcb90LW6fm9fT" name="cname" />
                    <parameter value="Audio1 Audio1a0" name="msid" />
                    <parameter value="Audio1" name="mslabel" />
                    <parameter value="Audio1a0" name="label" />
                    <ssrc-info owner="2178a173-b6bd-4e65-9a7b
54b1aea89c72@conference.myhost.com/user_b"
xmlns="http://jitsi.org/jitmeet" />
                </source>

I have found similar errors to the above reported against webrtc:
https://bugs.chromium.org/p/webrtc/issues/detail?id=5616

(BTW my webrtc build is pretty recent bleeding edge)

my question is: what should my expectation be here? is it just
categorically a case of webrtc being at fault?

I will obviously follow-up with the webrtc project too but I'm
wondering if you can offer some guidance about a] what these multiple
sound sources are and b] any ideas about how I can work around the
problem.

for example: are the user_a and user_b streams critcial to the
operation of the conferencing? or is the mixed stream sufficient?
i.e. if I were to (say) filter out all but the mixedlabelaudio0 source
from the sesssion-initiate when converting the jingle message to the
SDP I hand off to webrtc would that be a viable solution? or is that
just entirely the wrong way to think about it. I'm aware that may be
off base - just thinking out loud mostly.

any suggestions apreciated.

thanks.


#2

Hi,

just a followup on this in case it helps anyone else. I followed up
with the webrtc community and they were able to point out that all my
conference participants were using the same track/stream name and this
was causing a clash:

https://bugs.chromium.org/p/webrtc/issues/detail?id=5729

when I changed at participant to have a unique stream/track name the
problem went away.

Thanks,

···

On Sat, Apr 2, 2016 at 4:47 PM, Raoul Duke <rduke496@gmail.com> wrote:

Hi,

I need some guidance wrt to what I should expect in a certain case.

I have an Android app using the native webrtc library and connecting
to jitsi videobridge (with jicofo and prosody also in the mix).

I'm trying to set up a conference (audio only) with 3 android devices.

it all works fine for the first 2 peers negotiating a connection to the bridge.

but when the *third* client receives the jingle "session-initiate"
from the bridge and (after conversion to SDP) passes it to webrtc I
get the following error from webrtc:

04-02 04:40:43.626 16378 16424 E libjingle:
(webrtcvoiceengine.cc:117): Multiple SSRCs in stream parameters:
{id:Audio1a0;ssrcs
[3027352178,2810350554];ssrc_groups:;cname:HqYPcb90LW6fm9fT;sync_label:Audio1}
04-02 04:40:43.626 16378 16425 E libjingle: (channel.cc:776): Failure
in SetRemoteContent with action 0
04-02 04:40:43.626 16378 16425 E libjingle: (webrtcsession.cc:327):
Failed to set remote offer sdp: Session error code: ERROR_CONTENT.
Session error description: Failed to set remote audio description
streams..
04-02 04:40:43.626 16378 16425 E Peer : onSetFailure: Failed to set
remote offer sdp: Session error code: ERROR_CONTENT. Session error
description: Failed to set remote audio description streams..

here is the corresponding part of the session-initiate:

                <source ssrc="1938536675"
xmlns="urn:xmpp:jingle:apps:rtp:ssma:0">
                    <parameter value="mixed" name="cname" />
                    <parameter value="mixedlabelaudio0" name="label" />
                    <parameter value="mixedmslabel mixedlabelaudio0"
name="msid" />
                    <parameter value="mixedmslabel" name="mslabel" />
                    <ssrc-info owner="jvb" xmlns="http://jitsi.org/jitmeet" />
                </source>
                <source ssrc="3027352178"
xmlns="urn:xmpp:jingle:apps:rtp:ssma:0">
                    <parameter value="Cw+WGAaBaFzdOKjT" name="cname" />
                    <parameter value="Audio1 Audio1a0" name="msid" />
                    <parameter value="Audio1" name="mslabel" />
                    <parameter value="Audio1a0" name="label" />
                    <ssrc-info owner="2178a173-b6bd-4e65-9a7b
54b1aea89c72@conference.myhost.com/user_a"
xmlns="http://jitsi.org/jitmeet" />
                </source>
                <source ssrc="2810350554"
xmlns="urn:xmpp:jingle:apps:rtp:ssma:0">
                    <parameter value="HqYPcb90LW6fm9fT" name="cname" />
                    <parameter value="Audio1 Audio1a0" name="msid" />
                    <parameter value="Audio1" name="mslabel" />
                    <parameter value="Audio1a0" name="label" />
                    <ssrc-info owner="2178a173-b6bd-4e65-9a7b
54b1aea89c72@conference.myhost.com/user_b"
xmlns="http://jitsi.org/jitmeet" />
                </source>

I have found similar errors to the above reported against webrtc:
https://bugs.chromium.org/p/webrtc/issues/detail?id=5616

(BTW my webrtc build is pretty recent bleeding edge)

my question is: what should my expectation be here? is it just
categorically a case of webrtc being at fault?

I will obviously follow-up with the webrtc project too but I'm
wondering if you can offer some guidance about a] what these multiple
sound sources are and b] any ideas about how I can work around the
problem.

for example: are the user_a and user_b streams critcial to the
operation of the conferencing? or is the mixed stream sufficient?
i.e. if I were to (say) filter out all but the mixedlabelaudio0 source
from the sesssion-initiate when converting the jingle message to the
SDP I hand off to webrtc would that be a viable solution? or is that
just entirely the wrong way to think about it. I'm aware that may be
off base - just thinking out loud mostly.

any suggestions apreciated.

thanks.