summaryrefslogtreecommitdiffstats
path: root/dom/media/webrtc/jsep/JsepSessionImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dom/media/webrtc/jsep/JsepSessionImpl.cpp')
-rw-r--r--dom/media/webrtc/jsep/JsepSessionImpl.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/dom/media/webrtc/jsep/JsepSessionImpl.cpp b/dom/media/webrtc/jsep/JsepSessionImpl.cpp
index 50def6eb6c..c091b6d618 100644
--- a/dom/media/webrtc/jsep/JsepSessionImpl.cpp
+++ b/dom/media/webrtc/jsep/JsepSessionImpl.cpp
@@ -1121,11 +1121,17 @@ nsresult JsepSessionImpl::HandleNegotiatedSession(
CopyBundleTransports();
- std::vector<JsepTrack*> remoteTracks;
+ std::vector<JsepTrack*> receiveTracks;
for (auto& transceiver : mTransceivers) {
- remoteTracks.push_back(&transceiver.mRecvTrack);
+ // Do not count payload types for non-active recv tracks as duplicates. If
+ // we receive an RTP packet with a payload type that is used by both a
+ // sendrecv and a sendonly m-section, there is no ambiguity; it is for the
+ // sendrecv m-section.
+ if (transceiver.mRecvTrack.GetActive()) {
+ receiveTracks.push_back(&transceiver.mRecvTrack);
+ }
}
- JsepTrack::SetUniquePayloadTypes(remoteTracks);
+ JsepTrack::SetUniqueReceivePayloadTypes(receiveTracks);
mNegotiations++;