From 44a7550acc31b18a97f8f621037826f4c868a525 Mon Sep 17 00:00:00 2001 From: Hirokazu Honda Date: Fri, 5 Jul 2024 17:30:08 +0900 Subject: [PATCH] SimulcastEncoderAdapter: Add sequence checks for encoder contexts lifetime MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This CL adds the sequence checks to the functions that creates or destroys the encoder context. Those functions must be executed on the webrtc encoder sequence. Bug: b/320555128 Change-Id: I1daa93f2f5326073e8d75e1d711d7554bed76a62 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356460 Reviewed-by: Erik Språng Commit-Queue: Hirokazu Honda Cr-Commit-Position: refs/heads/main@{#42612} --- media/engine/simulcast_encoder_adapter.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/media/engine/simulcast_encoder_adapter.cc b/media/engine/simulcast_encoder_adapter.cc index 9c249371b3..9bdb4d508f 100644 --- a/media/engine/simulcast_encoder_adapter.cc +++ b/media/engine/simulcast_encoder_adapter.cc @@ -277,6 +277,7 @@ SimulcastEncoderAdapter::SimulcastEncoderAdapter( } SimulcastEncoderAdapter::~SimulcastEncoderAdapter() { + RTC_DCHECK_RUN_ON(&encoder_queue_); RTC_DCHECK(!Initialized()); DestroyStoredEncoders(); } @@ -714,6 +715,7 @@ bool SimulcastEncoderAdapter::Initialized() const { } void SimulcastEncoderAdapter::DestroyStoredEncoders() { + RTC_DCHECK_RUN_ON(&encoder_queue_); while (!cached_encoder_contexts_.empty()) { cached_encoder_contexts_.pop_back(); } @@ -722,6 +724,7 @@ void SimulcastEncoderAdapter::DestroyStoredEncoders() { std::unique_ptr SimulcastEncoderAdapter::FetchOrCreateEncoderContext( bool is_lowest_quality_stream) const { + RTC_DCHECK_RUN_ON(&encoder_queue_); bool prefer_temporal_support = fallback_encoder_factory_ != nullptr && is_lowest_quality_stream && prefer_temporal_support_on_base_layer_;