From 70fc5a2e41b512da40a8e7ebd0b38be2432e4805 Mon Sep 17 00:00:00 2001 From: Philipp Hancke Date: Fri, 21 Apr 2023 16:22:38 +0200 Subject: [PATCH] stats: unify optional handling to use operator* MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit following https://abseil.io/tips/181#solution BUG=None Change-Id: I865572e42dff172fcf722383f3dde31dcc747220 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/302341 Commit-Queue: Philipp Hancke Reviewed-by: Danil Chapovalov Reviewed-by: Henrik Boström Cr-Commit-Position: refs/heads/main@{#39931} --- pc/rtc_stats_collector.cc | 43 ++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc index 4303581299..f9c50cf097 100644 --- a/pc/rtc_stats_collector.cc +++ b/pc/rtc_stats_collector.cc @@ -459,7 +459,7 @@ std::unique_ptr CreateInboundAudioStreamStats( inbound_audio->kind = "audio"; if (voice_receiver_info.codec_payload_type.has_value()) { auto codec_param_it = voice_media_info.receive_codecs.find( - voice_receiver_info.codec_payload_type.value()); + *voice_receiver_info.codec_payload_type); RTC_DCHECK(codec_param_it != voice_media_info.receive_codecs.end()); if (codec_param_it != voice_media_info.receive_codecs.end()) { inbound_audio->codec_id = GetCodecIdAndMaybeCreateCodecStats( @@ -551,8 +551,7 @@ CreateRemoteOutboundAudioStreamStats( auto stats = std::make_unique( /*id=*/RTCRemoteOutboundRTPStreamStatsIDFromSSRC( cricket::MEDIA_TYPE_AUDIO, voice_receiver_info.ssrc()), - Timestamp::Millis( - voice_receiver_info.last_sender_report_timestamp_ms.value())); + Timestamp::Millis(*voice_receiver_info.last_sender_report_timestamp_ms)); // Populate. // - RTCRtpStreamStats. @@ -567,10 +566,12 @@ CreateRemoteOutboundAudioStreamStats( stats->bytes_sent = voice_receiver_info.sender_reports_bytes_sent; // - RTCRemoteOutboundRtpStreamStats. stats->local_id = inbound_audio_stats.id(); + // last_sender_report_remote_timestamp_ms is set together with + // last_sender_report_timestamp_ms. RTC_DCHECK( voice_receiver_info.last_sender_report_remote_timestamp_ms.has_value()); stats->remote_timestamp = static_cast( - voice_receiver_info.last_sender_report_remote_timestamp_ms.value()); + *voice_receiver_info.last_sender_report_remote_timestamp_ms); stats->reports_sent = voice_receiver_info.sender_reports_reports_count; if (voice_receiver_info.round_trip_time.has_value()) { stats->round_trip_time = @@ -604,7 +605,7 @@ CreateInboundRTPStreamStatsFromVideoReceiverInfo( inbound_video->kind = "video"; if (video_receiver_info.codec_payload_type.has_value()) { auto codec_param_it = video_media_info.receive_codecs.find( - video_receiver_info.codec_payload_type.value()); + *video_receiver_info.codec_payload_type); RTC_DCHECK(codec_param_it != video_media_info.receive_codecs.end()); if (codec_param_it != video_media_info.receive_codecs.end()) { inbound_video->codec_id = GetCodecIdAndMaybeCreateCodecStats( @@ -682,7 +683,7 @@ CreateInboundRTPStreamStatsFromVideoReceiverInfo( } if (video_receiver_info.power_efficient_decoder.has_value()) { inbound_video->power_efficient_decoder = - video_receiver_info.power_efficient_decoder.value(); + *video_receiver_info.power_efficient_decoder; } return inbound_video; } @@ -736,7 +737,7 @@ CreateOutboundRTPStreamStatsFromVoiceSenderInfo( } if (voice_sender_info.codec_payload_type.has_value()) { auto codec_param_it = voice_media_info.send_codecs.find( - voice_sender_info.codec_payload_type.value()); + *voice_sender_info.codec_payload_type); RTC_DCHECK(codec_param_it != voice_media_info.send_codecs.end()); if (codec_param_it != voice_media_info.send_codecs.end()) { outbound_audio->codec_id = GetCodecIdAndMaybeCreateCodecStats( @@ -769,7 +770,7 @@ CreateOutboundRTPStreamStatsFromVideoSenderInfo( outbound_video->kind = "video"; if (video_sender_info.codec_payload_type.has_value()) { auto codec_param_it = video_media_info.send_codecs.find( - video_sender_info.codec_payload_type.value()); + *video_sender_info.codec_payload_type); RTC_DCHECK(codec_param_it != video_media_info.send_codecs.end()); if (codec_param_it != video_media_info.send_codecs.end()) { outbound_video->codec_id = GetCodecIdAndMaybeCreateCodecStats( @@ -828,7 +829,7 @@ CreateOutboundRTPStreamStatsFromVideoSenderInfo( } if (video_sender_info.power_efficient_encoder.has_value()) { outbound_video->power_efficient_encoder = - video_sender_info.power_efficient_encoder.value(); + *video_sender_info.power_efficient_encoder; } if (video_sender_info.scalability_mode) { outbound_video->scalability_mode = std::string( @@ -1292,12 +1293,11 @@ RTCStatsCollector::CreateReportFilteredBySelector( for (const auto* outbound_rtp : report->GetStatsOfType()) { RTC_DCHECK(outbound_rtp->ssrc.is_defined()); - auto it = std::find_if( - encodings.begin(), encodings.end(), - [ssrc = - *outbound_rtp->ssrc](const RtpEncodingParameters& encoding) { - return encoding.ssrc.has_value() && encoding.ssrc.value() == ssrc; - }); + auto it = std::find_if(encodings.begin(), encodings.end(), + [ssrc = *outbound_rtp->ssrc]( + const RtpEncodingParameters& encoding) { + return encoding.ssrc == ssrc; + }); if (it != encodings.end()) { rtpstream_ids.push_back(outbound_rtp->id()); } @@ -2005,8 +2005,8 @@ void RTCStatsCollector::ProduceAudioRTPStreamStats_n( continue; // Inbound. auto inbound_audio = CreateInboundAudioStreamStats( - stats.track_media_info_map.voice_media_info().value(), - voice_receiver_info, transport_id, mid, timestamp, report); + *stats.track_media_info_map.voice_media_info(), voice_receiver_info, + transport_id, mid, timestamp, report); // TODO(hta): This lookup should look for the sender, not the track. rtc::scoped_refptr audio_track = stats.track_media_info_map.GetAudioTrack(voice_receiver_info); @@ -2054,8 +2054,7 @@ void RTCStatsCollector::ProduceAudioRTPStreamStats_n( if (!voice_sender_info.connected()) continue; auto outbound_audio = CreateOutboundRTPStreamStatsFromVoiceSenderInfo( - transport_id, mid, - stats.track_media_info_map.voice_media_info().value(), + transport_id, mid, *stats.track_media_info_map.voice_media_info(), voice_sender_info, timestamp, report); rtc::scoped_refptr audio_track = stats.track_media_info_map.GetAudioTrack(voice_sender_info); @@ -2114,8 +2113,7 @@ void RTCStatsCollector::ProduceVideoRTPStreamStats_n( if (!video_receiver_info.connected()) continue; auto inbound_video = CreateInboundRTPStreamStatsFromVideoReceiverInfo( - transport_id, mid, - stats.track_media_info_map.video_media_info().value(), + transport_id, mid, *stats.track_media_info_map.video_media_info(), video_receiver_info, timestamp, report); rtc::scoped_refptr video_track = stats.track_media_info_map.GetVideoTrack(video_receiver_info); @@ -2139,8 +2137,7 @@ void RTCStatsCollector::ProduceVideoRTPStreamStats_n( if (!video_sender_info.connected()) continue; auto outbound_video = CreateOutboundRTPStreamStatsFromVideoSenderInfo( - transport_id, mid, - stats.track_media_info_map.video_media_info().value(), + transport_id, mid, *stats.track_media_info_map.video_media_info(), video_sender_info, timestamp, report); rtc::scoped_refptr video_track = stats.track_media_info_map.GetVideoTrack(video_sender_info);