From 12046bf8c4159584ff78d8e15023cf4bac28b256 Mon Sep 17 00:00:00 2001 From: Per Kjellander Date: Mon, 14 Nov 2022 14:27:30 +0100 Subject: [PATCH] Ensure VideoSendStreamImpl::transport_queue_safety_ is not alive on dtor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the experiment WebRTC-SendPacketsOnWorkerThread ensure the safety flag is set not alive even if Start/Stop has never been called. Bug: webrtc:14502, chromium:1382602 Change-Id: I01c1e663762c8bb848e9bc31b2dcb22d38d0d1e8 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/283380 Commit-Queue: Per Kjellander Reviewed-by: Erik Språng Reviewed-by: Evan Shrubsole Auto-Submit: Per Kjellander Cr-Commit-Position: refs/heads/main@{#38624} --- video/video_send_stream_impl.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/video/video_send_stream_impl.cc b/video/video_send_stream_impl.cc index 3fdbcb8ad1..06f6a05e2f 100644 --- a/video/video_send_stream_impl.cc +++ b/video/video_send_stream_impl.cc @@ -300,6 +300,11 @@ VideoSendStreamImpl::VideoSendStreamImpl( VideoSendStreamImpl::~VideoSendStreamImpl() { RTC_DCHECK_RUN_ON(&thread_checker_); RTC_LOG(LS_INFO) << "~VideoSendStreamImpl: " << config_->ToString(); + // TODO(webrtc:14502): Change `transport_queue_safety_` to be of type + // ScopedTaskSafety if experiment WebRTC-SendPacketsOnWorkerThread succeed. + if (rtp_transport_queue_->IsCurrent()) { + transport_queue_safety_->SetNotAlive(); + } } void VideoSendStreamImpl::DeliverRtcp(const uint8_t* packet, size_t length) { @@ -334,7 +339,6 @@ void VideoSendStreamImpl::Start() { void VideoSendStreamImpl::StartupVideoSendStream() { RTC_DCHECK_RUN_ON(rtp_transport_queue_); - transport_queue_safety_->SetAlive(); bitrate_allocator_->AddObserver(this, GetAllocationConfig());