Closed Bug 907353 Opened 11 years ago Closed 11 years ago

RTCP-Mux in Nightly is incompatible with Chrome

Categories

(Core :: WebRTC: Signaling, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla26

People

(Reporter: ehugg, Assigned: ehugg)

References

Details

Attachments

(1 file, 2 obsolete files)

Today's Nightly has the patch from bug 863306 which turns rtcp-mux negotiation on.  While this works with FF, it does not work with Chrome.

It appears the problem is that we are creating two ICE components and expecting them both to connect when only one is needed.  That may not be the only reason it doesn't connect though.

rtcp-mux will be turned off in a second patch to bug 863306, but if we can make it compatible with Chrome we should turn it back on in this bug.
Assignee: nobody → ethanhugg
I just ran a test with gRTCPMUX == TRUE and the calls to IceCtx->CreateStream set to one component instead of two and it worked on apprtc with Chrome 31.  I think if we are able to disable the second component when muxing then this will work.
Probably a good idea to also consider implications of the following as a wholistic solution
, say, 
when a set of m=lines are part of BUNDLE group, we need to just create one component for all of them VS 
 
non bundled rtcp-mux m=lines VS 
 
non bundled non rtcp-mux m=lines  [ we do this today]

So we need a way to assign membership of each MediaStream (ICE) to be part of some multiplexing scheme or not [ such as BUNDLE or RTCP Mux]

Not sure if this should be part of this bug or not though
Target Milestone: --- → mozilla26
Depends on: 909179
Attachment #796209 - Attachment is obsolete: true
Comment on attachment 796770 [details] [diff] [review]
Disable second component when rtcp-mux

Review of attachment 796770 [details] [diff] [review]:
-----------------------------------------------------------------

This patch requires the patch from bug 909179 which in turn requires the patch from bug 842549.

Tested with Canary version 31 and unlike the first patch does not call disable twice on the same component.
Attachment #796770 - Flags: review?(ekr)
Comment on attachment 796770 [details] [diff] [review]
Disable second component when rtcp-mux

Review of attachment 796770 [details] [diff] [review]:
-----------------------------------------------------------------

The code looks fine, but I would like to see tests that verify that
we haven't broken the non-mux case. Can you add some with fRtcpMux == false?
Take a look at the last two signaling unittests, TEST_F(SignalingTest, AudioOnlyCalleeNoRtcpMux) and TEST_F(SignalingTest, FullCallAudioNoMuxVideoMux).

They were added in bug 863306 and should test what you want.
Blocks: 901560
Comment on attachment 796770 [details] [diff] [review]
Disable second component when rtcp-mux

Review of attachment 796770 [details] [diff] [review]:
-----------------------------------------------------------------

with minor comments

::: media/webrtc/signaling/src/media/VcmSIPCCBinding.cpp
@@ +2865,5 @@
> + * If we are doing rtcp-mux we need to disable component number 2 in the ICE
> + * layer.  Otherwise we will wait for it to connect when it is unused
> + */
> +static int vcmDisableRtcpComponent_m(const char *peerconnection, int level) {
> +  sipcc::PeerConnectionWrapper pc(peerconnection);

Assert that on the right thread.

@@ +2868,5 @@
> +static int vcmDisableRtcpComponent_m(const char *peerconnection, int level) {
> +  sipcc::PeerConnectionWrapper pc(peerconnection);
> +  ENSURE_PC(pc, VCM_ERROR);
> +
> +  CSFLogDebug( logTag, "%s: disabling rtcp component %d", __FUNCTION__, level);

Can you assert that level >0
Attachment #796770 - Flags: review?(ekr) → review+
Attachment #796770 - Attachment is obsolete: true
Comment on attachment 799000 [details] [diff] [review]
Disable second component when rtcp-mux


Fixed nits and retested.  Bringing forward r+ from EKR.
Attachment #799000 - Flags: review+
https://hg.mozilla.org/mozilla-central/rev/cdb9d968f557
Status: NEW → RESOLVED
Closed: 11 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: