Bug 863306 - Turn off rtcp-mux in config
authorEthan Hugg <ethanhugg@gmail.com>
Tue, 20 Aug 2013 13:21:27 -0700
changeset 156553 0b13d1bd2e732bba957674e5567766bd0597ece2
parent 156552 4dd5fb21e5992c33afd63301894bb79da34d4741
child 156554 662edd7ed81cdc0e8fbbaa1c7b64c5408c461834
push id2961
push userlsblakk@mozilla.com
push dateMon, 28 Oct 2013 21:59:28 +0000
treeherdermozilla-beta@73ef4f13486f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs863306
milestone26.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 863306 - Turn off rtcp-mux in config
CLOBBER
media/webrtc/signaling/src/sipcc/core/includes/config.h
media/webrtc/signaling/test/signaling_unittests.cpp
--- a/CLOBBER
+++ b/CLOBBER
@@ -13,9 +13,11 @@
 #          |               |
 #          O <-- Clobber   O  <-- Clobber
 #
 # Note: The description below will be part of the error message shown to users.
 #
 # Modifying this file will now automatically clobber the buildbot machines \o/
 #
 
-touching resources in Android requires a clobber, and I did that in bug 880259
+In Bug 863306 comment #42 sheriff KWierso states that we should CLOBBER every time
+that WebRTC code is changed, which will be awesome.
+
--- a/media/webrtc/signaling/src/sipcc/core/includes/config.h
+++ b/media/webrtc/signaling/src/sipcc/core/includes/config.h
@@ -174,17 +174,17 @@ static const unsigned char gCallWaiting 
 static const int gDeviceSecurityMode = 1;
 static const int gCcm2_sip_port = 5060;
 static const int gCcm3_sip_port = 5060;
 static const boolean gCcm1_isvalid = TRUE;
 static const int gDscpCallControl = 1;
 static const int gSpeakerEnabled = 1;
 static const char gExternalNumberMask[] = "";
 static const char gVersion[] = "0.1";
-static const boolean gRTCPMUX = TRUE;
+static const boolean gRTCPMUX = FALSE;
 static boolean gRTPSAVPF = TRUE;           /* TRUE = RTP/SAVPF , FALSE = RTP/SAVP */
 static const boolean gMAXAVBITRATE = FALSE;      /* Following six are OPUS fmtp options */
 static const boolean gMAXCODEDAUDIOBW = FALSE;
 static const boolean gUSEDTX = FALSE;
 static const boolean gSTEREO = FALSE;
 static const boolean gUSEINBANDFEC = FALSE;
 static const boolean gCBR = FALSE;
 static const boolean gMAXPTIME = FALSE;
--- a/media/webrtc/signaling/test/signaling_unittests.cpp
+++ b/media/webrtc/signaling/test/signaling_unittests.cpp
@@ -32,16 +32,17 @@
 #include "nricectx.h"
 #include "mozilla/SyncRunnable.h"
 
 #include "mtransport_test_utils.h"
 MtransportTestUtils *test_utils;
 nsCOMPtr<nsIThread> gThread;
 
 static int kDefaultTimeout = 5000;
+static bool fRtcpMux = false;
 
 static std::string callerName = "caller";
 static std::string calleeName = "callee";
 
 namespace test {
 
 std::string indent(const std::string &s, int width = 4) {
   std::string prefix;
@@ -1678,21 +1679,24 @@ TEST_F(SignalingTest, FullCall)
   ASSERT_GE(a1_.GetPacketsSent(0), 40);
   //ASSERT_GE(a2_.GetPacketsSent(0), 40);
   //ASSERT_GE(a1_.GetPacketsReceived(0), 40);
   ASSERT_GE(a2_.GetPacketsReceived(0), 40);
 
   // Check the low-level media pipeline
   // for RTP and RTCP flows
   // The first Local pipeline gets stored at 0
-  a1_.CheckMediaPipeline(0, 0,
-    PIPELINE_LOCAL | PIPELINE_RTCP_MUX | PIPELINE_SEND);
+  a1_.CheckMediaPipeline(0, 0, fRtcpMux ?
+    PIPELINE_LOCAL | PIPELINE_RTCP_MUX | PIPELINE_SEND :
+    PIPELINE_LOCAL | PIPELINE_SEND);
 
   // The first Remote pipeline gets stored at 1
-  a2_.CheckMediaPipeline(0, 1, PIPELINE_RTCP_MUX);
+  a2_.CheckMediaPipeline(0, 1, fRtcpMux ?
+    PIPELINE_RTCP_MUX :
+    0);
 }
 
 TEST_F(SignalingTest, FullCallAudioOnly)
 {
   sipcc::MediaConstraints constraints;
   OfferAnswer(constraints, constraints, OFFER_AUDIO | ANSWER_AUDIO,
               true, SHOULD_SENDRECV_AUDIO, SHOULD_SENDRECV_AUDIO);
 
@@ -2405,18 +2409,20 @@ TEST_F(SignalingTest, FullCallAudioNoMux
             << indent(sdpWrapper.getSdp()) << std::endl;
   a2_.SetRemote(TestObserver::OFFER, sdpWrapper.getSdp(), false);
   a2_.CreateAnswer(constraints, sdpWrapper.getSdp(), OFFER_AV | ANSWER_AV);
   a2_.SetLocal(TestObserver::ANSWER, a2_.answer(), false);
   a1_.SetRemote(TestObserver::ANSWER, a2_.answer(), false);
 
   // Answer should have only one a=rtcp-mux line
   size_t match = a2_.getLocalDescription().find("\r\na=rtcp-mux");
-  ASSERT_NE(match, std::string::npos);
-  match = a2_.getLocalDescription().find("\r\na=rtcp-mux", match + 1);
+  if (fRtcpMux) {
+    ASSERT_NE(match, std::string::npos);
+    match = a2_.getLocalDescription().find("\r\na=rtcp-mux", match + 1);
+  }
   ASSERT_EQ(match, std::string::npos);
 
   ASSERT_TRUE_WAIT(a1_.IceCompleted() == true, kDefaultTimeout);
   ASSERT_TRUE_WAIT(a2_.IceCompleted() == true, kDefaultTimeout);
 
   PR_Sleep(kDefaultTimeout * 2); // Wait for some data to get written
 
   a1_.CloseSendStreams();
@@ -2426,24 +2432,27 @@ TEST_F(SignalingTest, FullCallAudioNoMux
   ASSERT_GE(a2_.GetPacketsReceived(0), 40);
 
   // Check the low-level media pipeline
   // for RTP and RTCP flows
   // The first Local pipeline gets stored at 0
   a1_.CheckMediaPipeline(0, 0, PIPELINE_LOCAL | PIPELINE_SEND);
 
   // Now check video mux.
-  a1_.CheckMediaPipeline(0, 1,
-    PIPELINE_LOCAL | PIPELINE_RTCP_MUX | PIPELINE_SEND | PIPELINE_VIDEO);
+  a1_.CheckMediaPipeline(0, 1, fRtcpMux ?
+    PIPELINE_LOCAL | PIPELINE_RTCP_MUX | PIPELINE_SEND | PIPELINE_VIDEO :
+    PIPELINE_LOCAL | PIPELINE_SEND | PIPELINE_VIDEO);
 
   // The first Remote pipeline gets stored at 1
   a2_.CheckMediaPipeline(0, 1, 0);
 
   // Now check video mux.
-  a2_.CheckMediaPipeline(0, 2, PIPELINE_RTCP_MUX | PIPELINE_VIDEO);
+  a2_.CheckMediaPipeline(0, 2, fRtcpMux ?
+    PIPELINE_RTCP_MUX | PIPELINE_VIDEO :
+    PIPELINE_VIDEO);
 }
 
 } // End namespace test.
 
 bool is_color_terminal(const char *terminal) {
   if (!terminal) {
     return false;
   }