Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Side by Side Diff: webrtc/pc/rtcstatscollector_unittest.cc

Issue 2687483002: Revert of RTCInboundRTPStreamStats.qpSum collected. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/pc/rtcstatscollector.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2016 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 1774 matching lines...) Expand 10 before | Expand all | Expand 10 after
1785 expected_audio.transport_id = "RTCTransport_TransportName_" + 1785 expected_audio.transport_id = "RTCTransport_TransportName_" +
1786 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP); 1786 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
1787 expected_audio.codec_id = "RTCCodec_InboundAudio_42"; 1787 expected_audio.codec_id = "RTCCodec_InboundAudio_42";
1788 expected_audio.packets_received = 2; 1788 expected_audio.packets_received = 2;
1789 expected_audio.bytes_received = 3; 1789 expected_audio.bytes_received = 3;
1790 expected_audio.packets_lost = 42; 1790 expected_audio.packets_lost = 42;
1791 expected_audio.jitter = 4.5; 1791 expected_audio.jitter = 4.5;
1792 expected_audio.fraction_lost = 5.5; 1792 expected_audio.fraction_lost = 5.5;
1793 1793
1794 ASSERT_TRUE(report->Get(expected_audio.id())); 1794 ASSERT_TRUE(report->Get(expected_audio.id()));
1795 EXPECT_EQ( 1795 const RTCInboundRTPStreamStats& audio = report->Get(
1796 report->Get(expected_audio.id())->cast_to<RTCInboundRTPStreamStats>(), 1796 expected_audio.id())->cast_to<RTCInboundRTPStreamStats>();
1797 expected_audio); 1797 EXPECT_EQ(audio, expected_audio);
1798
1798 EXPECT_TRUE(report->Get(*expected_audio.track_id)); 1799 EXPECT_TRUE(report->Get(*expected_audio.track_id));
1799 EXPECT_TRUE(report->Get(*expected_audio.transport_id)); 1800 EXPECT_TRUE(report->Get(*expected_audio.transport_id));
1800 EXPECT_TRUE(report->Get(*expected_audio.codec_id)); 1801 EXPECT_TRUE(report->Get(*expected_audio.codec_id));
1801 } 1802 }
1802 1803
1803 TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) { 1804 TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) {
1804 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel(); 1805 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
1805 cricket::VideoChannel video_channel( 1806 cricket::VideoChannel video_channel(
1806 test_->worker_thread(), test_->network_thread(), 1807 test_->worker_thread(), test_->network_thread(),
1807 test_->signaling_thread(), video_media_channel, "VideoContentName", 1808 test_->signaling_thread(), video_media_channel, "VideoContentName",
(...skipping 10 matching lines...) Expand all
1818 video_media_info.receivers[0].local_stats[0].ssrc = 1; 1819 video_media_info.receivers[0].local_stats[0].ssrc = 1;
1819 video_media_info.receivers[0].packets_rcvd = 2; 1820 video_media_info.receivers[0].packets_rcvd = 2;
1820 video_media_info.receivers[0].packets_lost = 42; 1821 video_media_info.receivers[0].packets_lost = 42;
1821 video_media_info.receivers[0].bytes_rcvd = 3; 1822 video_media_info.receivers[0].bytes_rcvd = 3;
1822 video_media_info.receivers[0].fraction_lost = 4.5f; 1823 video_media_info.receivers[0].fraction_lost = 4.5f;
1823 video_media_info.receivers[0].codec_payload_type = rtc::Optional<int>(42); 1824 video_media_info.receivers[0].codec_payload_type = rtc::Optional<int>(42);
1824 video_media_info.receivers[0].firs_sent = 5; 1825 video_media_info.receivers[0].firs_sent = 5;
1825 video_media_info.receivers[0].plis_sent = 6; 1826 video_media_info.receivers[0].plis_sent = 6;
1826 video_media_info.receivers[0].nacks_sent = 7; 1827 video_media_info.receivers[0].nacks_sent = 7;
1827 video_media_info.receivers[0].frames_decoded = 8; 1828 video_media_info.receivers[0].frames_decoded = 8;
1828 video_media_info.receivers[0].qp_sum = rtc::Optional<uint64_t>();
1829 1829
1830 RtpCodecParameters codec_parameters; 1830 RtpCodecParameters codec_parameters;
1831 codec_parameters.payload_type = 42; 1831 codec_parameters.payload_type = 42;
1832 codec_parameters.kind = cricket::MEDIA_TYPE_AUDIO; 1832 codec_parameters.kind = cricket::MEDIA_TYPE_AUDIO;
1833 codec_parameters.name = "dummy"; 1833 codec_parameters.name = "dummy";
1834 codec_parameters.clock_rate = rtc::Optional<int>(0); 1834 codec_parameters.clock_rate = rtc::Optional<int>(0);
1835 video_media_info.receive_codecs.insert( 1835 video_media_info.receive_codecs.insert(
1836 std::make_pair(codec_parameters.payload_type, codec_parameters)); 1836 std::make_pair(codec_parameters.payload_type, codec_parameters));
1837 1837
1838 EXPECT_CALL(*video_media_channel, GetStats(_)) 1838 EXPECT_CALL(*video_media_channel, GetStats(_))
(...skipping 30 matching lines...) Expand all
1869 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP); 1869 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
1870 expected_video.codec_id = "RTCCodec_InboundVideo_42"; 1870 expected_video.codec_id = "RTCCodec_InboundVideo_42";
1871 expected_video.fir_count = 5; 1871 expected_video.fir_count = 5;
1872 expected_video.pli_count = 6; 1872 expected_video.pli_count = 6;
1873 expected_video.nack_count = 7; 1873 expected_video.nack_count = 7;
1874 expected_video.packets_received = 2; 1874 expected_video.packets_received = 2;
1875 expected_video.bytes_received = 3; 1875 expected_video.bytes_received = 3;
1876 expected_video.packets_lost = 42; 1876 expected_video.packets_lost = 42;
1877 expected_video.fraction_lost = 4.5; 1877 expected_video.fraction_lost = 4.5;
1878 expected_video.frames_decoded = 8; 1878 expected_video.frames_decoded = 8;
1879 // |expected_video.qp_sum| should be undefined.
1880 1879
1881 ASSERT_TRUE(report->Get(expected_video.id())); 1880 ASSERT_TRUE(report->Get(expected_video.id()));
1882 EXPECT_EQ( 1881 const RTCInboundRTPStreamStats& video = report->Get(
1883 report->Get(expected_video.id())->cast_to<RTCInboundRTPStreamStats>(), 1882 expected_video.id())->cast_to<RTCInboundRTPStreamStats>();
1884 expected_video); 1883 EXPECT_EQ(video, expected_video);
1885 1884
1886 // Set previously undefined values and "GetStats" again.
1887 video_media_info.receivers[0].qp_sum = rtc::Optional<uint64_t>(9);
1888 expected_video.qp_sum = 9;
1889
1890 EXPECT_CALL(*video_media_channel, GetStats(_))
1891 .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true)));
1892 collector_->ClearCachedStatsReport();
1893 report = GetStatsReport();
1894
1895 ASSERT_TRUE(report->Get(expected_video.id()));
1896 EXPECT_EQ(
1897 report->Get(expected_video.id())->cast_to<RTCInboundRTPStreamStats>(),
1898 expected_video);
1899 EXPECT_TRUE(report->Get(*expected_video.track_id)); 1885 EXPECT_TRUE(report->Get(*expected_video.track_id));
1900 EXPECT_TRUE(report->Get(*expected_video.transport_id)); 1886 EXPECT_TRUE(report->Get(*expected_video.transport_id));
1901 EXPECT_TRUE(report->Get(*expected_video.codec_id)); 1887 EXPECT_TRUE(report->Get(*video.codec_id));
1902 } 1888 }
1903 1889
1904 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Audio) { 1890 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Audio) {
1905 MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel(); 1891 MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel();
1906 cricket::VoiceChannel voice_channel( 1892 cricket::VoiceChannel voice_channel(
1907 test_->worker_thread(), test_->network_thread(), 1893 test_->worker_thread(), test_->network_thread(),
1908 test_->signaling_thread(), test_->media_engine(), voice_media_channel, 1894 test_->signaling_thread(), test_->media_engine(), voice_media_channel,
1909 "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired); 1895 "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
1910 1896
1911 test_->SetupLocalTrackAndSender( 1897 test_->SetupLocalTrackAndSender(
1912 cricket::MEDIA_TYPE_AUDIO, "LocalAudioTrackID", 1); 1898 cricket::MEDIA_TYPE_AUDIO, "LocalAudioTrackID", 1);
1913 1899
1914 cricket::VoiceMediaInfo voice_media_info; 1900 cricket::VoiceMediaInfo voice_media_info;
1915 1901
1916 voice_media_info.senders.push_back(cricket::VoiceSenderInfo()); 1902 voice_media_info.senders.push_back(cricket::VoiceSenderInfo());
1917 voice_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo()); 1903 voice_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo());
1918 voice_media_info.senders[0].local_stats[0].ssrc = 1; 1904 voice_media_info.senders[0].local_stats[0].ssrc = 1;
1919 voice_media_info.senders[0].packets_sent = 2; 1905 voice_media_info.senders[0].packets_sent = 2;
1920 voice_media_info.senders[0].bytes_sent = 3; 1906 voice_media_info.senders[0].bytes_sent = 3;
1921 voice_media_info.senders[0].rtt_ms = -1; 1907 voice_media_info.senders[0].rtt_ms = 4500;
1922 voice_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42); 1908 voice_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42);
1923 1909
1924 RtpCodecParameters codec_parameters; 1910 RtpCodecParameters codec_parameters;
1925 codec_parameters.payload_type = 42; 1911 codec_parameters.payload_type = 42;
1926 codec_parameters.kind = cricket::MEDIA_TYPE_AUDIO; 1912 codec_parameters.kind = cricket::MEDIA_TYPE_AUDIO;
1927 codec_parameters.name = "dummy"; 1913 codec_parameters.name = "dummy";
1928 codec_parameters.clock_rate = rtc::Optional<int>(0); 1914 codec_parameters.clock_rate = rtc::Optional<int>(0);
1929 voice_media_info.send_codecs.insert( 1915 voice_media_info.send_codecs.insert(
1930 std::make_pair(codec_parameters.payload_type, codec_parameters)); 1916 std::make_pair(codec_parameters.payload_type, codec_parameters));
1931 1917
(...skipping 25 matching lines...) Expand all
1957 expected_audio.ssrc = 1; 1943 expected_audio.ssrc = 1;
1958 expected_audio.is_remote = false; 1944 expected_audio.is_remote = false;
1959 expected_audio.media_type = "audio"; 1945 expected_audio.media_type = "audio";
1960 expected_audio.track_id = 1946 expected_audio.track_id =
1961 "RTCMediaStreamTrack_local_audio_LocalAudioTrackID_1"; 1947 "RTCMediaStreamTrack_local_audio_LocalAudioTrackID_1";
1962 expected_audio.transport_id = "RTCTransport_TransportName_" + 1948 expected_audio.transport_id = "RTCTransport_TransportName_" +
1963 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP); 1949 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
1964 expected_audio.codec_id = "RTCCodec_OutboundAudio_42"; 1950 expected_audio.codec_id = "RTCCodec_OutboundAudio_42";
1965 expected_audio.packets_sent = 2; 1951 expected_audio.packets_sent = 2;
1966 expected_audio.bytes_sent = 3; 1952 expected_audio.bytes_sent = 3;
1967 // |expected_audio.round_trip_time| should be undefined. 1953 expected_audio.round_trip_time = 4.5;
1968 1954
1969 ASSERT_TRUE(report->Get(expected_audio.id())); 1955 ASSERT_TRUE(report->Get(expected_audio.id()));
1970 EXPECT_EQ( 1956 const RTCOutboundRTPStreamStats& audio = report->Get(
1971 report->Get(expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>(), 1957 expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>();
1972 expected_audio); 1958 EXPECT_EQ(audio, expected_audio);
1973 1959
1974 // Set previously undefined values and "GetStats" again.
1975 voice_media_info.senders[0].rtt_ms = 4500;
1976 expected_audio.round_trip_time = 4.5;
1977
1978 EXPECT_CALL(*voice_media_channel, GetStats(_))
1979 .WillOnce(DoAll(SetArgPointee<0>(voice_media_info), Return(true)));
1980 collector_->ClearCachedStatsReport();
1981 report = GetStatsReport();
1982
1983 ASSERT_TRUE(report->Get(expected_audio.id()));
1984 EXPECT_EQ(
1985 report->Get(expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>(),
1986 expected_audio);
1987 EXPECT_TRUE(report->Get(*expected_audio.track_id)); 1960 EXPECT_TRUE(report->Get(*expected_audio.track_id));
1988 EXPECT_TRUE(report->Get(*expected_audio.transport_id)); 1961 EXPECT_TRUE(report->Get(*expected_audio.transport_id));
1989 EXPECT_TRUE(report->Get(*expected_audio.codec_id)); 1962 EXPECT_TRUE(report->Get(*expected_audio.codec_id));
1990 } 1963 }
1991 1964
1992 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) { 1965 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) {
1993 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel(); 1966 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
1994 cricket::VideoChannel video_channel( 1967 cricket::VideoChannel video_channel(
1995 test_->worker_thread(), test_->network_thread(), 1968 test_->worker_thread(), test_->network_thread(),
1996 test_->signaling_thread(), video_media_channel, "VideoContentName", 1969 test_->signaling_thread(), video_media_channel, "VideoContentName",
1997 kDefaultRtcpMuxRequired, kDefaultSrtpRequired); 1970 kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
1998 1971
1999 test_->SetupLocalTrackAndSender( 1972 test_->SetupLocalTrackAndSender(
2000 cricket::MEDIA_TYPE_VIDEO, "LocalVideoTrackID", 1); 1973 cricket::MEDIA_TYPE_VIDEO, "LocalVideoTrackID", 1);
2001 1974
2002 cricket::VideoMediaInfo video_media_info; 1975 cricket::VideoMediaInfo video_media_info;
2003 1976
2004 video_media_info.senders.push_back(cricket::VideoSenderInfo()); 1977 video_media_info.senders.push_back(cricket::VideoSenderInfo());
2005 video_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo()); 1978 video_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo());
2006 video_media_info.senders[0].local_stats[0].ssrc = 1; 1979 video_media_info.senders[0].local_stats[0].ssrc = 1;
2007 video_media_info.senders[0].firs_rcvd = 2; 1980 video_media_info.senders[0].firs_rcvd = 2;
2008 video_media_info.senders[0].plis_rcvd = 3; 1981 video_media_info.senders[0].plis_rcvd = 3;
2009 video_media_info.senders[0].nacks_rcvd = 4; 1982 video_media_info.senders[0].nacks_rcvd = 4;
2010 video_media_info.senders[0].packets_sent = 5; 1983 video_media_info.senders[0].packets_sent = 5;
2011 video_media_info.senders[0].bytes_sent = 6; 1984 video_media_info.senders[0].bytes_sent = 6;
2012 video_media_info.senders[0].rtt_ms = -1; 1985 video_media_info.senders[0].rtt_ms = 7500;
2013 video_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42); 1986 video_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42);
2014 video_media_info.senders[0].frames_encoded = 8; 1987 video_media_info.senders[0].frames_encoded = 8;
2015 video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>(); 1988 video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>(16);
2016 1989
2017 RtpCodecParameters codec_parameters; 1990 RtpCodecParameters codec_parameters;
2018 codec_parameters.payload_type = 42; 1991 codec_parameters.payload_type = 42;
2019 codec_parameters.kind = cricket::MEDIA_TYPE_AUDIO; 1992 codec_parameters.kind = cricket::MEDIA_TYPE_AUDIO;
2020 codec_parameters.name = "dummy"; 1993 codec_parameters.name = "dummy";
2021 codec_parameters.clock_rate = rtc::Optional<int>(0); 1994 codec_parameters.clock_rate = rtc::Optional<int>(0);
2022 video_media_info.send_codecs.insert( 1995 video_media_info.send_codecs.insert(
2023 std::make_pair(codec_parameters.payload_type, codec_parameters)); 1996 std::make_pair(codec_parameters.payload_type, codec_parameters));
2024 1997
2025 EXPECT_CALL(*video_media_channel, GetStats(_)) 1998 EXPECT_CALL(*video_media_channel, GetStats(_))
(...skipping 27 matching lines...) Expand all
2053 expected_video.track_id = 2026 expected_video.track_id =
2054 "RTCMediaStreamTrack_local_video_LocalVideoTrackID_1"; 2027 "RTCMediaStreamTrack_local_video_LocalVideoTrackID_1";
2055 expected_video.transport_id = "RTCTransport_TransportName_" + 2028 expected_video.transport_id = "RTCTransport_TransportName_" +
2056 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP); 2029 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
2057 expected_video.codec_id = "RTCCodec_OutboundVideo_42"; 2030 expected_video.codec_id = "RTCCodec_OutboundVideo_42";
2058 expected_video.fir_count = 2; 2031 expected_video.fir_count = 2;
2059 expected_video.pli_count = 3; 2032 expected_video.pli_count = 3;
2060 expected_video.nack_count = 4; 2033 expected_video.nack_count = 4;
2061 expected_video.packets_sent = 5; 2034 expected_video.packets_sent = 5;
2062 expected_video.bytes_sent = 6; 2035 expected_video.bytes_sent = 6;
2036 expected_video.round_trip_time = 7.5;
2063 expected_video.frames_encoded = 8; 2037 expected_video.frames_encoded = 8;
2064 // |expected_video.round_trip_time| and |expected_video.qp_sum| should be 2038 expected_video.qp_sum = 16;
2065 // undefined.
2066 2039
2067 ASSERT_TRUE(report->Get(expected_video.id())); 2040 ASSERT_TRUE(report->Get(expected_video.id()));
2068 EXPECT_EQ( 2041 const RTCOutboundRTPStreamStats& video = report->Get(
2069 report->Get(expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(), 2042 expected_video.id())->cast_to<RTCOutboundRTPStreamStats>();
2070 expected_video); 2043 EXPECT_EQ(video, expected_video);
2071 2044
2072 // Set previously undefined values and "GetStats" again.
2073 video_media_info.senders[0].rtt_ms = 7500;
2074 video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>(9);
2075 expected_video.round_trip_time = 7.5;
2076 expected_video.qp_sum = 9;
2077
2078 EXPECT_CALL(*video_media_channel, GetStats(_))
2079 .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true)));
2080 collector_->ClearCachedStatsReport();
2081 report = GetStatsReport();
2082
2083 ASSERT_TRUE(report->Get(expected_video.id()));
2084 EXPECT_EQ(
2085 report->Get(expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(),
2086 expected_video);
2087 EXPECT_TRUE(report->Get(*expected_video.track_id)); 2045 EXPECT_TRUE(report->Get(*expected_video.track_id));
2088 EXPECT_TRUE(report->Get(*expected_video.transport_id)); 2046 EXPECT_TRUE(report->Get(*expected_video.transport_id));
2089 EXPECT_TRUE(report->Get(*expected_video.codec_id)); 2047 EXPECT_TRUE(report->Get(*expected_video.codec_id));
2090 } 2048 }
2091 2049
2050 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Default) {
2051 MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel();
2052 cricket::VoiceChannel voice_channel(
2053 test_->worker_thread(), test_->network_thread(),
2054 test_->signaling_thread(), test_->media_engine(), voice_media_channel,
2055 "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
2056 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
2057 cricket::VideoChannel video_channel(
2058 test_->worker_thread(), test_->network_thread(),
2059 test_->signaling_thread(), video_media_channel, "VideoContentName",
2060 kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
2061
2062 cricket::VoiceMediaInfo voice_media_info;
2063 voice_media_info.senders.push_back(cricket::VoiceSenderInfo());
2064 voice_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo());
2065 voice_media_info.senders[0].local_stats[0].ssrc = 1;
2066 voice_media_info.senders[0].packets_sent = 2;
2067 voice_media_info.senders[0].bytes_sent = 3;
2068 voice_media_info.senders[0].rtt_ms = -1;
2069 voice_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42);
2070
2071 cricket::VideoMediaInfo video_media_info;
2072 video_media_info.senders.push_back(cricket::VideoSenderInfo());
2073 video_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo());
2074 video_media_info.senders[0].local_stats[0].ssrc = 1;
2075 video_media_info.senders[0].firs_rcvd = 2;
2076 video_media_info.senders[0].plis_rcvd = 3;
2077 video_media_info.senders[0].nacks_rcvd = 4;
2078 video_media_info.senders[0].packets_sent = 5;
2079 video_media_info.senders[0].bytes_sent = 6;
2080 video_media_info.senders[0].rtt_ms = -1;
2081 video_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42);
2082 video_media_info.senders[0].frames_encoded = 7;
2083
2084 EXPECT_CALL(*voice_media_channel, GetStats(_))
2085 .WillOnce(DoAll(SetArgPointee<0>(voice_media_info), Return(true)));
2086 EXPECT_CALL(*video_media_channel, GetStats(_))
2087 .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true)));
2088
2089 SessionStats session_stats;
2090 session_stats.proxy_to_transport["VoiceContentName"] = "TransportName";
2091 session_stats.proxy_to_transport["VideoContentName"] = "TransportName";
2092 session_stats.transport_stats["TransportName"].transport_name =
2093 "TransportName";
2094
2095 // Make sure the associated |RTCTransportStats| is created.
2096 cricket::TransportChannelStats channel_stats;
2097 channel_stats.component = cricket::ICE_CANDIDATE_COMPONENT_RTP;
2098 session_stats.transport_stats["TransportName"].channel_stats.push_back(
2099 channel_stats);
2100
2101 EXPECT_CALL(test_->session(), GetStats(_)).WillRepeatedly(Invoke(
2102 [&session_stats](const ChannelNamePairs&) {
2103 return std::unique_ptr<SessionStats>(new SessionStats(session_stats));
2104 }));
2105 EXPECT_CALL(test_->session(), voice_channel())
2106 .WillRepeatedly(Return(&voice_channel));
2107 EXPECT_CALL(test_->session(), video_channel())
2108 .WillRepeatedly(Return(&video_channel));
2109
2110 rtc::scoped_refptr<const RTCStatsReport> report = GetStatsReport();
2111
2112 RTCOutboundRTPStreamStats expected_audio(
2113 "RTCOutboundRTPAudioStream_1", report->timestamp_us());
2114 expected_audio.ssrc = 1;
2115 expected_audio.is_remote = false;
2116 expected_audio.media_type = "audio";
2117 expected_audio.transport_id = "RTCTransport_TransportName_" +
2118 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
2119 expected_audio.codec_id = "RTCCodec_OutboundAudio_42";
2120 expected_audio.packets_sent = 2;
2121 expected_audio.bytes_sent = 3;
2122 // |expected_audio.round_trip_time| should be undefined.
2123
2124 ASSERT_TRUE(report->Get(expected_audio.id()));
2125 const RTCOutboundRTPStreamStats& audio = report->Get(
2126 expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>();
2127 EXPECT_EQ(audio, expected_audio);
2128
2129 RTCOutboundRTPStreamStats expected_video(
2130 "RTCOutboundRTPVideoStream_1", report->timestamp_us());
2131 expected_video.ssrc = 1;
2132 expected_video.is_remote = false;
2133 expected_video.media_type = "video";
2134 expected_video.transport_id = "RTCTransport_TransportName_" +
2135 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
2136 expected_video.codec_id = "RTCCodec_OutboundVideo_42";
2137 expected_video.fir_count = 2;
2138 expected_video.pli_count = 3;
2139 expected_video.nack_count = 4;
2140 expected_video.packets_sent = 5;
2141 expected_video.bytes_sent = 6;
2142 expected_video.frames_encoded = 7;
2143 // |expected_video.round_trip_time| should be undefined.
2144 // |expected_video.qp_sum| should be undefined.
2145
2146 ASSERT_TRUE(report->Get(expected_video.id()));
2147 const RTCOutboundRTPStreamStats& video = report->Get(
2148 expected_video.id())->cast_to<RTCOutboundRTPStreamStats>();
2149 EXPECT_EQ(video, expected_video);
2150 }
2151
2092 TEST_F(RTCStatsCollectorTest, CollectRTCTransportStats) { 2152 TEST_F(RTCStatsCollectorTest, CollectRTCTransportStats) {
2093 std::unique_ptr<cricket::Candidate> rtp_local_candidate = CreateFakeCandidate( 2153 std::unique_ptr<cricket::Candidate> rtp_local_candidate = CreateFakeCandidate(
2094 "42.42.42.42", 42, "protocol", cricket::LOCAL_PORT_TYPE, 42); 2154 "42.42.42.42", 42, "protocol", cricket::LOCAL_PORT_TYPE, 42);
2095 std::unique_ptr<cricket::Candidate> rtp_remote_candidate = 2155 std::unique_ptr<cricket::Candidate> rtp_remote_candidate =
2096 CreateFakeCandidate("42.42.42.42", 42, "protocol", 2156 CreateFakeCandidate("42.42.42.42", 42, "protocol",
2097 cricket::LOCAL_PORT_TYPE, 42); 2157 cricket::LOCAL_PORT_TYPE, 42);
2098 std::unique_ptr<cricket::Candidate> rtcp_local_candidate = 2158 std::unique_ptr<cricket::Candidate> rtcp_local_candidate =
2099 CreateFakeCandidate("42.42.42.42", 42, "protocol", 2159 CreateFakeCandidate("42.42.42.42", 42, "protocol",
2100 cricket::LOCAL_PORT_TYPE, 42); 2160 cricket::LOCAL_PORT_TYPE, 42);
2101 std::unique_ptr<cricket::Candidate> rtcp_remote_candidate = 2161 std::unique_ptr<cricket::Candidate> rtcp_remote_candidate =
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
2260 rtc::scoped_refptr<FakeRTCStatsCollector> collector_; 2320 rtc::scoped_refptr<FakeRTCStatsCollector> collector_;
2261 }; 2321 };
2262 2322
2263 TEST_F(RTCStatsCollectorTestWithFakeCollector, ThreadUsageAndResultsMerging) { 2323 TEST_F(RTCStatsCollectorTestWithFakeCollector, ThreadUsageAndResultsMerging) {
2264 collector_->VerifyThreadUsageAndResultsMerging(); 2324 collector_->VerifyThreadUsageAndResultsMerging();
2265 } 2325 }
2266 2326
2267 } // namespace 2327 } // namespace
2268 2328
2269 } // namespace webrtc 2329 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/pc/rtcstatscollector.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698