diff --git a/api/stats/rtcstats_objects.h b/api/stats/rtcstats_objects.h index b492203635..8955c4eb3e 100644 --- a/api/stats/rtcstats_objects.h +++ b/api/stats/rtcstats_objects.h @@ -122,6 +122,8 @@ class RTC_EXPORT RTCCodecStats final : public RTCStats { RTCStatsMember channels; // TODO(hbos): Collect and populate this value. https://bugs.webrtc.org/7061 RTCStatsMember sdp_fmtp_line; + // TODO(hbos): Collect and populate this value. https://bugs.webrtc.org/7061 + RTCStatsMember implementation; }; // https://w3c.github.io/webrtc-stats/#dcstats-dict* @@ -445,9 +447,6 @@ class RTC_EXPORT RTCInboundRTPStreamStats final : public RTCRTPStreamStats { RTCStatsMember total_decode_time; // https://henbos.github.io/webrtc-provisional-stats/#dom-rtcinboundrtpstreamstats-contenttype RTCStatsMember content_type; - // TODO(hbos): This is only implemented for video; implement it for audio as - // well. - RTCStatsMember decoder_implementation; }; // https://w3c.github.io/webrtc-stats/#outboundrtpstats-dict* @@ -483,9 +482,6 @@ class RTC_EXPORT RTCOutboundRTPStreamStats final : public RTCRTPStreamStats { RTCStatsMember quality_limitation_reason; // https://henbos.github.io/webrtc-provisional-stats/#dom-rtcoutboundrtpstreamstats-contenttype RTCStatsMember content_type; - // TODO(hbos): This is only implemented for video; implement it for audio as - // well. - RTCStatsMember encoder_implementation; }; // TODO(https://crbug.com/webrtc/10671): Refactor the stats dictionaries to have diff --git a/media/base/media_channel.h b/media/base/media_channel.h index 4b2d39357d..b0b0b88cee 100644 --- a/media/base/media_channel.h +++ b/media/base/media_channel.h @@ -546,6 +546,7 @@ struct VideoSenderInfo : public MediaSenderInfo { VideoSenderInfo(); ~VideoSenderInfo(); std::vector ssrc_groups; + // TODO(hbos): Move this to |VideoMediaInfo::send_codecs|? std::string encoder_implementation_name; int firs_rcvd = 0; int plis_rcvd = 0; @@ -583,6 +584,7 @@ struct VideoReceiverInfo : public MediaReceiverInfo { VideoReceiverInfo(); ~VideoReceiverInfo(); std::vector ssrc_groups; + // TODO(hbos): Move this to |VideoMediaInfo::receive_codecs|? std::string decoder_implementation_name; int packets_concealed = 0; int firs_sent = 0; diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc index c1b4878004..8336812081 100644 --- a/pc/rtc_stats_collector.cc +++ b/pc/rtc_stats_collector.cc @@ -325,10 +325,6 @@ void SetInboundRTPStreamStatsFromVideoReceiverInfo( // optional, support the "unspecified" value. if (video_receiver_info.content_type == VideoContentType::SCREENSHARE) inbound_video->content_type = RTCContentType::kScreenshare; - if (!video_receiver_info.decoder_implementation_name.empty()) { - inbound_video->decoder_implementation = - video_receiver_info.decoder_implementation_name; - } } // Provides the media independent counters (both audio and video). @@ -402,10 +398,6 @@ void SetOutboundRTPStreamStatsFromVideoSenderInfo( // optional, support the "unspecified" value. if (video_sender_info.content_type == VideoContentType::SCREENSHARE) outbound_video->content_type = RTCContentType::kScreenshare; - if (!video_sender_info.encoder_implementation_name.empty()) { - outbound_video->encoder_implementation = - video_sender_info.encoder_implementation_name; - } } std::unique_ptr diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc index 4d59e7c11b..edbfac1d88 100644 --- a/pc/rtc_stats_collector_unittest.cc +++ b/pc/rtc_stats_collector_unittest.cc @@ -1815,7 +1815,6 @@ TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) { video_media_info.receivers[0].last_packet_received_timestamp_ms = absl::nullopt; video_media_info.receivers[0].content_type = VideoContentType::UNSPECIFIED; - video_media_info.receivers[0].decoder_implementation_name = ""; RtpCodecParameters codec_parameters; codec_parameters.payload_type = 42; @@ -1853,7 +1852,6 @@ TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) { expected_video.total_decode_time = 9.0; // |expected_video.last_packet_received_timestamp| should be undefined. // |expected_video.content_type| should be undefined. - // |expected_video.decoder_implementation| should be undefined. ASSERT_TRUE(report->Get(expected_video.id())); EXPECT_EQ( @@ -1867,8 +1865,6 @@ TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) { expected_video.last_packet_received_timestamp = 1.0; video_media_info.receivers[0].content_type = VideoContentType::SCREENSHARE; expected_video.content_type = "screenshare"; - video_media_info.receivers[0].decoder_implementation_name = "libfoodecoder"; - expected_video.decoder_implementation = "libfoodecoder"; video_media_channel->SetStats(video_media_info); report = stats_->GetFreshStatsReport(); @@ -1962,7 +1958,6 @@ TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) { QualityLimitationReason::kBandwidth; video_media_info.senders[0].qp_sum = absl::nullopt; video_media_info.senders[0].content_type = VideoContentType::UNSPECIFIED; - video_media_info.senders[0].encoder_implementation_name = ""; RtpCodecParameters codec_parameters; codec_parameters.payload_type = 42; @@ -2010,7 +2005,6 @@ TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) { expected_video.quality_limitation_reason = "bandwidth"; // |expected_video.content_type| should be undefined. // |expected_video.qp_sum| should be undefined. - // |expected_video.encoder_implementation| should be undefined. ASSERT_TRUE(report->Get(expected_video.id())); EXPECT_EQ( @@ -2022,8 +2016,6 @@ TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) { expected_video.qp_sum = 9; video_media_info.senders[0].content_type = VideoContentType::SCREENSHARE; expected_video.content_type = "screenshare"; - video_media_info.senders[0].encoder_implementation_name = "libfooencoder"; - expected_video.encoder_implementation = "libfooencoder"; video_media_channel->SetStats(video_media_info); report = stats_->GetFreshStatsReport(); diff --git a/pc/rtc_stats_integrationtest.cc b/pc/rtc_stats_integrationtest.cc index ddddb27352..a7231230f1 100644 --- a/pc/rtc_stats_integrationtest.cc +++ b/pc/rtc_stats_integrationtest.cc @@ -446,6 +446,7 @@ class RTCStatsReportVerifier { verifier.TestMemberIsPositive(codec.clock_rate); verifier.TestMemberIsUndefined(codec.channels); verifier.TestMemberIsUndefined(codec.sdp_fmtp_line); + verifier.TestMemberIsUndefined(codec.implementation); return verifier.ExpectAllMembersSuccessfullyTested(); } @@ -771,10 +772,8 @@ class RTCStatsReportVerifier { if (inbound_stream.media_type.is_defined() && *inbound_stream.media_type == "video") { verifier.TestMemberIsNonNegative(inbound_stream.qp_sum); - verifier.TestMemberIsDefined(inbound_stream.decoder_implementation); } else { verifier.TestMemberIsUndefined(inbound_stream.qp_sum); - verifier.TestMemberIsUndefined(inbound_stream.decoder_implementation); } verifier.TestMemberIsNonNegative(inbound_stream.packets_received); if (inbound_stream.media_type.is_defined() && @@ -860,7 +859,6 @@ class RTCStatsReportVerifier { // The integration test is not set up to test screen share; don't require // this to be present. verifier.MarkMemberTested(outbound_stream.content_type, true); - verifier.TestMemberIsDefined(outbound_stream.encoder_implementation); } else { verifier.TestMemberIsUndefined(outbound_stream.frames_encoded); verifier.TestMemberIsUndefined(outbound_stream.key_frames_encoded); @@ -871,8 +869,6 @@ class RTCStatsReportVerifier { verifier.TestMemberIsUndefined(outbound_stream.total_packet_send_delay); verifier.TestMemberIsUndefined(outbound_stream.quality_limitation_reason); verifier.TestMemberIsUndefined(outbound_stream.content_type); - // TODO(hbos): Implement for audio as well. - verifier.TestMemberIsUndefined(outbound_stream.encoder_implementation); } return verifier.ExpectAllMembersSuccessfullyTested(); } diff --git a/stats/rtcstats_objects.cc b/stats/rtcstats_objects.cc index ead0ebfb66..8a89d76d6f 100644 --- a/stats/rtcstats_objects.cc +++ b/stats/rtcstats_objects.cc @@ -96,7 +96,8 @@ WEBRTC_RTCSTATS_IMPL(RTCCodecStats, RTCStats, "codec", &mime_type, &clock_rate, &channels, - &sdp_fmtp_line) + &sdp_fmtp_line, + &implementation) // clang-format on RTCCodecStats::RTCCodecStats(const std::string& id, int64_t timestamp_us) @@ -108,7 +109,8 @@ RTCCodecStats::RTCCodecStats(std::string&& id, int64_t timestamp_us) mime_type("mimeType"), clock_rate("clockRate"), channels("channels"), - sdp_fmtp_line("sdpFmtpLine") {} + sdp_fmtp_line("sdpFmtpLine"), + implementation("implementation") {} RTCCodecStats::RTCCodecStats(const RTCCodecStats& other) : RTCStats(other.id(), other.timestamp_us()), @@ -116,7 +118,8 @@ RTCCodecStats::RTCCodecStats(const RTCCodecStats& other) mime_type(other.mime_type), clock_rate(other.clock_rate), channels(other.channels), - sdp_fmtp_line(other.sdp_fmtp_line) {} + sdp_fmtp_line(other.sdp_fmtp_line), + implementation(other.implementation) {} RTCCodecStats::~RTCCodecStats() {} @@ -612,8 +615,7 @@ WEBRTC_RTCSTATS_IMPL( &frames_decoded, &key_frames_decoded, &total_decode_time, - &content_type, - &decoder_implementation) + &content_type) // clang-format on RTCInboundRTPStreamStats::RTCInboundRTPStreamStats(const std::string& id, @@ -644,8 +646,7 @@ RTCInboundRTPStreamStats::RTCInboundRTPStreamStats(std::string&& id, frames_decoded("framesDecoded"), key_frames_decoded("keyFramesDecoded"), total_decode_time("totalDecodeTime"), - content_type("contentType"), - decoder_implementation("decoderImplementation") {} + content_type("contentType") {} RTCInboundRTPStreamStats::RTCInboundRTPStreamStats( const RTCInboundRTPStreamStats& other) @@ -671,8 +672,7 @@ RTCInboundRTPStreamStats::RTCInboundRTPStreamStats( frames_decoded(other.frames_decoded), key_frames_decoded(other.key_frames_decoded), total_decode_time(other.total_decode_time), - content_type(other.content_type), - decoder_implementation(other.decoder_implementation) {} + content_type(other.content_type) {} RTCInboundRTPStreamStats::~RTCInboundRTPStreamStats() {} @@ -691,8 +691,7 @@ WEBRTC_RTCSTATS_IMPL( &total_encoded_bytes_target, &total_packet_send_delay, &quality_limitation_reason, - &content_type, - &encoder_implementation) + &content_type) // clang-format on RTCOutboundRTPStreamStats::RTCOutboundRTPStreamStats(const std::string& id, @@ -714,8 +713,7 @@ RTCOutboundRTPStreamStats::RTCOutboundRTPStreamStats(std::string&& id, total_encoded_bytes_target("totalEncodedBytesTarget"), total_packet_send_delay("totalPacketSendDelay"), quality_limitation_reason("qualityLimitationReason"), - content_type("contentType"), - encoder_implementation("encoderImplementation") {} + content_type("contentType") {} RTCOutboundRTPStreamStats::RTCOutboundRTPStreamStats( const RTCOutboundRTPStreamStats& other) @@ -732,8 +730,7 @@ RTCOutboundRTPStreamStats::RTCOutboundRTPStreamStats( total_encoded_bytes_target(other.total_encoded_bytes_target), total_packet_send_delay(other.total_packet_send_delay), quality_limitation_reason(other.quality_limitation_reason), - content_type(other.content_type), - encoder_implementation(other.encoder_implementation) {} + content_type(other.content_type) {} RTCOutboundRTPStreamStats::~RTCOutboundRTPStreamStats() {}