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}
This commit is contained in:
Per Kjellander
2022-11-14 14:27:30 +01:00
committed by WebRTC LUCI CQ
parent c48a265346
commit 12046bf8c4

View File

@ -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());