diff --git a/api/test/video_quality_analyzer_interface.h b/api/test/video_quality_analyzer_interface.h index f20ae3efc9..1ea59f731c 100644 --- a/api/test/video_quality_analyzer_interface.h +++ b/api/test/video_quality_analyzer_interface.h @@ -150,13 +150,15 @@ class VideoQualityAnalyzerInterface // call. virtual void UnregisterParticipantInCall(absl::string_view peer_name) {} - // Informs analyzer that peer `receiver_peer_name` shouldn't receive all - // streams from sender `sender_peer_name`. + // Informs analyzer that peer `receiver_peer_name` should not receive any + // stream from sender `sender_peer_name`. + // This method is a no-op if the sender or the receiver does not exist. virtual void OnPauseAllStreamsFrom(absl::string_view sender_peer_name, absl::string_view receiver_peer_name) {} // Informs analyzer that peer `receiver_peer_name` is expected to receive all // streams from `sender_peer_name`. + // This method is a no-op if the sender or the receiver does not exist. virtual void OnResumeAllStreamsFrom(absl::string_view sender_peer_name, absl::string_view receiver_peer_name) {} diff --git a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc index ebd20b6c5e..d39a06878e 100644 --- a/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc +++ b/test/pc/e2e/analyzer/video/default_video_quality_analyzer.cc @@ -723,14 +723,14 @@ void DefaultVideoQualityAnalyzer::OnPauseAllStreamsFrom( absl::string_view sender_peer_name, absl::string_view receiver_peer_name) { MutexLock lock(&mutex_); - RTC_CHECK(peers_->HasName(sender_peer_name)); - size_t sender_peer_index = peers_->index(sender_peer_name); - RTC_CHECK(peers_->HasName(receiver_peer_name)); - size_t receiver_peer_index = peers_->index(receiver_peer_name); - - for (auto& [unused, stream_state] : stream_states_) { - if (stream_state.sender() == sender_peer_index) { - stream_state.GetPausableState(receiver_peer_index)->Pause(); + if (peers_->HasName(sender_peer_name) && + peers_->HasName(receiver_peer_name)) { + size_t sender_peer_index = peers_->index(sender_peer_name); + size_t receiver_peer_index = peers_->index(receiver_peer_name); + for (auto& [unused, stream_state] : stream_states_) { + if (stream_state.sender() == sender_peer_index) { + stream_state.GetPausableState(receiver_peer_index)->Pause(); + } } } } @@ -739,14 +739,14 @@ void DefaultVideoQualityAnalyzer::OnResumeAllStreamsFrom( absl::string_view sender_peer_name, absl::string_view receiver_peer_name) { MutexLock lock(&mutex_); - RTC_CHECK(peers_->HasName(sender_peer_name)); - size_t sender_peer_index = peers_->index(sender_peer_name); - RTC_CHECK(peers_->HasName(receiver_peer_name)); - size_t receiver_peer_index = peers_->index(receiver_peer_name); - - for (auto& [unused, stream_state] : stream_states_) { - if (stream_state.sender() == sender_peer_index) { - stream_state.GetPausableState(receiver_peer_index)->Resume(); + if (peers_->HasName(sender_peer_name) && + peers_->HasName(receiver_peer_name)) { + size_t sender_peer_index = peers_->index(sender_peer_name); + size_t receiver_peer_index = peers_->index(receiver_peer_name); + for (auto& [unused, stream_state] : stream_states_) { + if (stream_state.sender() == sender_peer_index) { + stream_state.GetPausableState(receiver_peer_index)->Resume(); + } } } }