Bug 1176415: stop adding ssrc's to data channel m-sections. r?bwc
MozReview-Commit-ID: H7tiJ9YRThQ
--- a/media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
+++ b/media/webrtc/signaling/src/jsep/JsepSessionImpl.cpp
@@ -1017,16 +1017,20 @@ JsepSessionImpl::CreateAnswerMSection(co
}
return NS_OK;
}
nsresult
JsepSessionImpl::SetRecvonlySsrc(SdpMediaSection* msection)
{
+ if (msection->GetMediaType() == SdpMediaSection::kApplication) {
+ return NS_OK;
+ }
+
// If previous m-sections are disabled, we do not call this function for them
while (mRecvonlySsrcs.size() <= msection->GetLevel()) {
uint32_t ssrc;
nsresult rv = CreateSsrc(&ssrc);
NS_ENSURE_SUCCESS(rv, rv);
mRecvonlySsrcs.push_back(ssrc);
}
@@ -1466,19 +1470,21 @@ JsepSessionImpl::MakeNegotiatedTrackPair
MOZ_MTLOG(ML_DEBUG, "Negotiated m= line"
<< " index=" << local.GetLevel()
<< " type=" << local.GetMediaType()
<< " sending=" << sending
<< " receiving=" << receiving);
trackPairOut->mLevel = local.GetLevel();
- MOZ_ASSERT(mRecvonlySsrcs.size() > local.GetLevel(),
- "Failed to set the default ssrc for an active m-section");
- trackPairOut->mRecvonlySsrc = mRecvonlySsrcs[local.GetLevel()];
+ if (local.GetMediaType() != SdpMediaSection::kApplication) {
+ MOZ_ASSERT(mRecvonlySsrcs.size() > local.GetLevel(),
+ "Failed to set the default ssrc for an active m-section");
+ trackPairOut->mRecvonlySsrc = mRecvonlySsrcs[local.GetLevel()];
+ }
if (usingBundle) {
trackPairOut->SetBundleLevel(transportLevel);
}
auto sendTrack = FindTrackByLevel(mLocalTracks, local.GetLevel());
if (sendTrack != mLocalTracks.end()) {
sendTrack->mTrack->Negotiate(answer, remote);
--- a/media/webrtc/signaling/src/jsep/JsepTrack.h
+++ b/media/webrtc/signaling/src/jsep/JsepTrack.h
@@ -150,17 +150,19 @@ public:
GetSsrcs() const
{
return mSsrcs;
}
virtual void
AddSsrc(uint32_t ssrc)
{
- mSsrcs.push_back(ssrc);
+ if (mType != SdpMediaSection::kApplication) {
+ mSsrcs.push_back(ssrc);
+ }
}
bool
GetActive() const
{
return mActive;
}