Bug 1967189 - Take non-recv tracks into account when figuring out unique payload types. r=dbaker,bwc
Differential Revision: https://phabricator.services.mozilla.com/D250057
This commit is contained in:
committed by
pehrsons@gmail.com
parent
1e511bf3af
commit
fb0934ee83
@@ -920,9 +920,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);
|
||||
@@ -1156,14 +1154,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);
|
||||
|
||||
|
||||
@@ -4990,9 +4990,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