Bug 1967189 - Take non-recv tracks into account when figuring out unique payload types. a=RyanVM
Original Revision: https://phabricator.services.mozilla.com/D250057 Differential Revision: https://phabricator.services.mozilla.com/D250355
This commit is contained in:
committed by
rvandermeulen@mozilla.com
parent
56c9eeac76
commit
178d08ce4d
@@ -907,9 +907,7 @@ nsresult JsepSessionImpl::SetLocalDescriptionOffer(UniquePtr<Sdp> offer) {
|
||||
std::vector<JsepTrack*> recvTracks;
|
||||
recvTracks.reserve(mTransceivers.size());
|
||||
for (auto& transceiver : mTransceivers) {
|
||||
if (transceiver.mJsDirection & sdp::kRecv) {
|
||||
recvTracks.push_back(&transceiver.mRecvTrack);
|
||||
}
|
||||
recvTracks.push_back(&transceiver.mRecvTrack);
|
||||
}
|
||||
|
||||
JsepTrack::SetUniqueReceivePayloadTypes(recvTracks, true);
|
||||
@@ -1143,14 +1141,9 @@ nsresult JsepSessionImpl::HandleNegotiatedSession(
|
||||
CopyBundleTransports();
|
||||
|
||||
std::vector<JsepTrack*> receiveTracks;
|
||||
receiveTracks.reserve(mTransceivers.size());
|
||||
for (auto& transceiver : mTransceivers) {
|
||||
// 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);
|
||||
}
|
||||
receiveTracks.push_back(&transceiver.mRecvTrack);
|
||||
}
|
||||
JsepTrack::SetUniqueReceivePayloadTypes(receiveTracks);
|
||||
|
||||
|
||||
@@ -4976,9 +4976,9 @@ TEST_F(JsepSessionTest, TestUniqueReceivePayloadTypes) {
|
||||
ASSERT_FALSE(IsNull(offerTransceivers[2].mRecvTrack));
|
||||
ASSERT_TRUE(offerTransceivers[2].mRecvTrack.GetNegotiatedDetails());
|
||||
ASSERT_THAT(offerTransceivers[2].mRecvTrack.GetUniqueReceivePayloadTypes(),
|
||||
UnorderedElementsAre(97, 99, 103, 105, 120, 121, 122, 123, 126));
|
||||
ASSERT_THAT(offerTransceivers[2].mRecvTrack.GetDuplicateReceivePayloadTypes(),
|
||||
UnorderedElementsAre());
|
||||
ASSERT_THAT(offerTransceivers[2].mRecvTrack.GetDuplicateReceivePayloadTypes(),
|
||||
UnorderedElementsAre(97, 99, 103, 105, 120, 121, 122, 123, 126));
|
||||
|
||||
ASSERT_TRUE(IsNull(offerTransceivers[3].mRecvTrack));
|
||||
ASSERT_TRUE(offerTransceivers[3].mRecvTrack.GetNegotiatedDetails());
|
||||
|
||||
Reference in New Issue
Block a user