mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 17:55:50 +00:00
Bug 1072388 - Part 2: Don't stomp level assignments on local offer rollback, since those are set by createOffer, not sLD. r=mjf
Depends on D26780 Differential Revision: https://phabricator.services.mozilla.com/D26781 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
a5a8793e9f
commit
ad9aca54ac
@ -1553,7 +1553,7 @@ void JsepSessionImpl::RollbackLocalOffer() {
|
||||
for (size_t i = 0; i < mTransceivers.size(); ++i) {
|
||||
RefPtr<JsepTransceiver>& transceiver(mTransceivers[i]);
|
||||
if (i < mOldTransceivers.size()) {
|
||||
transceiver->Rollback(*mOldTransceivers[i]);
|
||||
transceiver->Rollback(*mOldTransceivers[i], false);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1561,7 +1561,7 @@ void JsepSessionImpl::RollbackLocalOffer() {
|
||||
new JsepTransceiver(transceiver->GetMediaType()));
|
||||
temp->mSendTrack.PopulateCodecs(mSupportedCodecs);
|
||||
temp->mRecvTrack.PopulateCodecs(mSupportedCodecs);
|
||||
transceiver->Rollback(*temp);
|
||||
transceiver->Rollback(*temp, false);
|
||||
}
|
||||
|
||||
mOldTransceivers.clear();
|
||||
@ -1571,7 +1571,7 @@ void JsepSessionImpl::RollbackRemoteOffer() {
|
||||
for (size_t i = 0; i < mTransceivers.size(); ++i) {
|
||||
RefPtr<JsepTransceiver>& transceiver(mTransceivers[i]);
|
||||
if (i < mOldTransceivers.size()) {
|
||||
transceiver->Rollback(*mOldTransceivers[i]);
|
||||
transceiver->Rollback(*mOldTransceivers[i], true);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1585,7 +1585,7 @@ void JsepSessionImpl::RollbackRemoteOffer() {
|
||||
new JsepTransceiver(transceiver->GetMediaType()));
|
||||
temp->mSendTrack.PopulateCodecs(mSupportedCodecs);
|
||||
temp->mRecvTrack.PopulateCodecs(mSupportedCodecs);
|
||||
transceiver->Rollback(*temp);
|
||||
transceiver->Rollback(*temp, true);
|
||||
|
||||
if (shouldRemove) {
|
||||
transceiver->Stop();
|
||||
|
@ -55,13 +55,15 @@ class JsepTransceiver {
|
||||
|
||||
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(JsepTransceiver);
|
||||
|
||||
void Rollback(JsepTransceiver& oldTransceiver) {
|
||||
void Rollback(JsepTransceiver& oldTransceiver, bool rollbackLevel) {
|
||||
MOZ_ASSERT(oldTransceiver.GetMediaType() == GetMediaType());
|
||||
MOZ_ASSERT(!oldTransceiver.IsNegotiated() || !oldTransceiver.HasLevel() ||
|
||||
!HasLevel() || oldTransceiver.GetLevel() == GetLevel());
|
||||
mTransport = oldTransceiver.mTransport;
|
||||
mLevel = oldTransceiver.mLevel;
|
||||
mBundleLevel = oldTransceiver.mBundleLevel;
|
||||
if (rollbackLevel) {
|
||||
mLevel = oldTransceiver.mLevel;
|
||||
mBundleLevel = oldTransceiver.mBundleLevel;
|
||||
}
|
||||
mRecvTrack = oldTransceiver.mRecvTrack;
|
||||
|
||||
// stop() caused by a disabled m-section in a remote offer cannot be
|
||||
|
Loading…
Reference in New Issue
Block a user