diff options
author | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-03-30 09:44:21 +0200 |
---|---|---|
committer | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-03-30 09:44:21 +0200 |
commit | a1a007a4856fa50d6d811c2268f881e3666f4c67 (patch) | |
tree | 24b082c1bfb5777f1770c82a534bf765160bc1b8 /media/webrtc | |
parent | eddd0de2ae80e176011f41a5400e81522d53f4f3 (diff) | |
parent | 59bf4204a84f7638d3f89a29bc7c04e5dc401369 (diff) | |
download | UXP-a1a007a4856fa50d6d811c2268f881e3666f4c67.tar UXP-a1a007a4856fa50d6d811c2268f881e3666f4c67.tar.gz UXP-a1a007a4856fa50d6d811c2268f881e3666f4c67.tar.lz UXP-a1a007a4856fa50d6d811c2268f881e3666f4c67.tar.xz UXP-a1a007a4856fa50d6d811c2268f881e3666f4c67.zip |
Merge branch 'master' of https://github.com/MoonchildProductions/UXP into html_input_datetime_1
Diffstat (limited to 'media/webrtc')
-rw-r--r-- | media/webrtc/signaling/src/jsep/JsepTrack.cpp | 29 | ||||
-rw-r--r-- | media/webrtc/signaling/test/mediaconduit_unittests.cpp | 18 | ||||
-rw-r--r-- | media/webrtc/signaling/test/signaling_unittests.cpp | 4 |
3 files changed, 31 insertions, 20 deletions
diff --git a/media/webrtc/signaling/src/jsep/JsepTrack.cpp b/media/webrtc/signaling/src/jsep/JsepTrack.cpp index 1b045d8ec..cf5df96bf 100644 --- a/media/webrtc/signaling/src/jsep/JsepTrack.cpp +++ b/media/webrtc/signaling/src/jsep/JsepTrack.cpp @@ -410,21 +410,26 @@ JsepTrack::NegotiateCodecs( // TODO(bug 814227): Remove this once we're ready to put multiple codecs in an // answer. For now, remove all but the first codec unless the red codec - // exists, and then we include the others per RFC 5109, section 14.2. - // Note: now allows keeping the telephone-event codec, if it appears, as the - // last codec in the list. + // exists, in which case we include the others per RFC 5109, section 14.2. if (!codecs->empty() && !red) { - int newSize = dtmf ? 2 : 1; - for (size_t i = 1; i < codecs->size(); ++i) { - if (!dtmf || dtmf != (*codecs)[i]) { - delete (*codecs)[i]; - (*codecs)[i] = nullptr; + std::vector<JsepCodecDescription*> codecsToKeep; + + bool foundPreferredCodec = false; + for (auto codec: *codecs) { + if (codec == dtmf) { + codecsToKeep.push_back(codec); + // TODO: keep ulpfec when we enable it in Bug 875922 + // } else if (codec == ulpfec) { + // codecsToKeep.push_back(codec); + } else if (!foundPreferredCodec) { + codecsToKeep.insert(codecsToKeep.begin(), codec); + foundPreferredCodec = true; + } else { + delete codec; } } - if (dtmf) { - (*codecs)[newSize-1] = dtmf; - } - codecs->resize(newSize); + + *codecs = codecsToKeep; } } diff --git a/media/webrtc/signaling/test/mediaconduit_unittests.cpp b/media/webrtc/signaling/test/mediaconduit_unittests.cpp index f0cf95a47..adcc838bf 100644 --- a/media/webrtc/signaling/test/mediaconduit_unittests.cpp +++ b/media/webrtc/signaling/test/mediaconduit_unittests.cpp @@ -550,14 +550,16 @@ class TransportConduitTest : public ::testing::Test mozilla::SyncRunnable::DispatchToThread(gMainThread, WrapRunnableNMRet(&mAudioSession, &mozilla::AudioSessionConduit::Create)); - if( !mAudioSession ) + if( !mAudioSession ) { ASSERT_NE(mAudioSession, (void*)nullptr); + } mozilla::SyncRunnable::DispatchToThread(gMainThread, WrapRunnableNMRet(&mAudioSession2, &mozilla::AudioSessionConduit::Create)); - if( !mAudioSession2 ) + if( !mAudioSession2 ) { ASSERT_NE(mAudioSession2, (void*)nullptr); + } WebrtcMediaTransport* xport = new WebrtcMediaTransport(); ASSERT_NE(xport, (void*)nullptr); @@ -615,15 +617,17 @@ class TransportConduitTest : public ::testing::Test mozilla::SyncRunnable::DispatchToThread(gMainThread, WrapRunnableNMRet(&mVideoSession, &mozilla::VideoSessionConduit::Create)); - if( !mVideoSession ) + if( !mVideoSession ) { ASSERT_NE(mVideoSession, (void*)nullptr); + } // This session is for other one mozilla::SyncRunnable::DispatchToThread(gMainThread, WrapRunnableNMRet(&mVideoSession2, &mozilla::VideoSessionConduit::Create)); - if( !mVideoSession2 ) + if( !mVideoSession2 ) { ASSERT_NE(mVideoSession2,(void*)nullptr); + } if (!send_vp8) { SetGmpCodecs(); @@ -716,8 +720,9 @@ class TransportConduitTest : public ::testing::Test mozilla::SyncRunnable::DispatchToThread(gMainThread, WrapRunnableNMRet(&videoSession, &mozilla::VideoSessionConduit::Create)); - if( !videoSession ) + if( !videoSession ) { ASSERT_NE(videoSession, (void*)nullptr); + } //Test Configure Recv Codec APIS cerr << " *************************************************" << endl; @@ -831,8 +836,9 @@ class TransportConduitTest : public ::testing::Test mozilla::SyncRunnable::DispatchToThread(gMainThread, WrapRunnableNMRet(&mVideoSession, &mozilla::VideoSessionConduit::Create)); - if( !mVideoSession ) + if( !mVideoSession ) { ASSERT_NE(mVideoSession, (void*)nullptr); + } mozilla::EncodingConstraints constraints; constraints.maxFs = max_fs; diff --git a/media/webrtc/signaling/test/signaling_unittests.cpp b/media/webrtc/signaling/test/signaling_unittests.cpp index 27d4750c7..1b393a9f0 100644 --- a/media/webrtc/signaling/test/signaling_unittests.cpp +++ b/media/webrtc/signaling/test/signaling_unittests.cpp @@ -1475,8 +1475,8 @@ class SignalingAgent { pObserver->addIceCandidateState = TestObserver::stateNoResponse; pc->AddIceCandidate(candidate.c_str(), mid.c_str(), level); ASSERT_TRUE(pObserver->addIceCandidateState == - expectSuccess ? TestObserver::stateSuccess : - TestObserver::stateError + (expectSuccess ? TestObserver::stateSuccess : + TestObserver::stateError) ); // Verify that adding ICE candidates does not change the signaling state |