diff --git a/video/send_statistics_proxy.cc b/video/send_statistics_proxy.cc index 8605771cd3..b857c0535b 100644 --- a/video/send_statistics_proxy.cc +++ b/video/send_statistics_proxy.cc @@ -977,8 +977,8 @@ void SendStatisticsProxy::OnSendEncodedImage( stats->frames_encoded++; stats->total_encode_time_ms += encoded_image.timing_.encode_finish_ms - encoded_image.timing_.encode_start_ms; - if (codec_info) - stats->scalability_mode = codec_info->scalability_mode; + stats->scalability_mode = + codec_info ? codec_info->scalability_mode : absl::nullopt; // Report resolution of the top spatial layer. bool is_top_spatial_layer = codec_info == nullptr || codec_info->end_of_picture; @@ -1059,6 +1059,11 @@ void SendStatisticsProxy::OnEncoderImplementationChanged( implementation.name}; stats_.encoder_implementation_name = implementation.name; stats_.power_efficient_encoder = implementation.is_hardware_accelerated; + // Clear cached scalability mode values, they may no longer be accurate. + for (auto& pair : stats_.substreams) { + VideoSendStream::StreamStats& stream_stats = pair.second; + stream_stats.scalability_mode = absl::nullopt; + } } int SendStatisticsProxy::GetInputFrameRate() const {