Ensure VideoSendStreamImpl::transport_queue_safety_ is not alive on dtor
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 <perkj@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Auto-Submit: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38624}
diff --git a/video/video_send_stream_impl.cc b/video/video_send_stream_impl.cc
index 3fdbcb8..06f6a05 100644
--- a/video/video_send_stream_impl.cc
+++ b/video/video_send_stream_impl.cc
@@ -300,6 +300,11 @@
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::StartupVideoSendStream() {
RTC_DCHECK_RUN_ON(rtp_transport_queue_);
-
transport_queue_safety_->SetAlive();
bitrate_allocator_->AddObserver(this, GetAllocationConfig());