mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 08:18:41 +09:00
WebRTC: Add DeleteStreams to media conduits.
This commit is contained in:
parent
b177c40274
commit
4131396b59
6 changed files with 16 additions and 4 deletions
|
|
@ -161,6 +161,8 @@ public:
|
|||
|
||||
virtual uint64_t CodecPluginID() override { return 0; }
|
||||
|
||||
virtual void DeleteStreams() override {}
|
||||
|
||||
WebrtcAudioConduit():
|
||||
mVoiceEngine(nullptr),
|
||||
mTransportMonitor("WebrtcAudioConduit"),
|
||||
|
|
|
|||
|
|
@ -227,6 +227,8 @@ public:
|
|||
uint64_t* bytesSent) = 0;
|
||||
|
||||
virtual uint64_t CodecPluginID() = 0;
|
||||
|
||||
virtual void DeleteStreams() = 0;
|
||||
|
||||
NS_INLINE_DECL_THREADSAFE_REFCOUNTING(MediaSessionConduit)
|
||||
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ WebrtcVideoConduit::~WebrtcVideoConduit()
|
|||
|
||||
// Release AudioConduit first by dropping reference on MainThread, where it expects to be
|
||||
SyncTo(nullptr);
|
||||
Destroy();
|
||||
MOZ_ASSERT(!mSendStream && !mRecvStream, "Call DeleteStreams prior to ~WebrtcVideoConduit.");
|
||||
}
|
||||
|
||||
bool WebrtcVideoConduit::SetLocalSSRC(unsigned int ssrc)
|
||||
|
|
@ -478,7 +478,7 @@ WebrtcVideoConduit::Init()
|
|||
}
|
||||
|
||||
void
|
||||
WebrtcVideoConduit::Destroy()
|
||||
WebrtcVideoConduit::DeleteStreams()
|
||||
{
|
||||
// The first one of a pair to be deleted shuts down media for both
|
||||
//Deal with External Capturer
|
||||
|
|
|
|||
|
|
@ -269,6 +269,8 @@ public:
|
|||
return mSendingHeight;
|
||||
}
|
||||
|
||||
virtual void DeleteStreams() override;
|
||||
|
||||
unsigned int SendingMaxFs() override {
|
||||
if(mCurSendCodecConfig) {
|
||||
return mCurSendCodecConfig->mEncodingConstraints.maxFs;
|
||||
|
|
@ -288,7 +290,6 @@ public:
|
|||
|
||||
MediaConduitErrorCode InitMain();
|
||||
virtual MediaConduitErrorCode Init();
|
||||
virtual void Destroy();
|
||||
|
||||
int GetChannel() { return mChannel; }
|
||||
webrtc::VideoEngine* GetVideoEngine() { return mVideoEngine; }
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
:SelfDestruct_m/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
|
|
@ -1036,6 +1036,11 @@ PeerConnectionMedia::SelfDestruct_m()
|
|||
mLocalSourceStreams.Clear();
|
||||
mRemoteSourceStreams.Clear();
|
||||
|
||||
// Clean up our send and receive streams
|
||||
for (auto i = mConduits.begin(); i != mConduits.end(); ++i) {
|
||||
i->second.second->DeleteStreams();
|
||||
}
|
||||
|
||||
mMainThread = nullptr;
|
||||
|
||||
// Final self-destruct.
|
||||
|
|
|
|||
|
|
@ -810,6 +810,8 @@ class TransportConduitTest : public ::testing::Test
|
|||
|
||||
err = videoSession->ConfigureSendMediaCodec(nullptr);
|
||||
EXPECT_TRUE(err != mozilla::kMediaConduitNoError);
|
||||
|
||||
videoSession->DeleteStreams();
|
||||
|
||||
mozilla::SyncRunnable::DispatchToThread(gMainThread,
|
||||
WrapRunnable(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue