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

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

Issue 2675943002: RTCInboundRTPStreamStats.qpSum collected. (Closed)
Patch Set: Addressed nit 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 const RTCInboundRTPStreamStats& audio = report->Get( 1795 EXPECT_EQ(
1796 expected_audio.id())->cast_to<RTCInboundRTPStreamStats>(); 1796 report->Get(expected_audio.id())->cast_to<RTCInboundRTPStreamStats>(),
1797 EXPECT_EQ(audio, expected_audio); 1797 expected_audio);
1798
1799 EXPECT_TRUE(report->Get(*expected_audio.track_id)); 1798 EXPECT_TRUE(report->Get(*expected_audio.track_id));
1800 EXPECT_TRUE(report->Get(*expected_audio.transport_id)); 1799 EXPECT_TRUE(report->Get(*expected_audio.transport_id));
1801 EXPECT_TRUE(report->Get(*expected_audio.codec_id)); 1800 EXPECT_TRUE(report->Get(*expected_audio.codec_id));
1802 } 1801 }
1803 1802
1804 TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) { 1803 TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) {
1805 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel(); 1804 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
1806 cricket::VideoChannel video_channel( 1805 cricket::VideoChannel video_channel(
1807 test_->worker_thread(), test_->network_thread(), 1806 test_->worker_thread(), test_->network_thread(),
1808 test_->signaling_thread(), video_media_channel, "VideoContentName", 1807 test_->signaling_thread(), video_media_channel, "VideoContentName",
(...skipping 10 matching lines...) Expand all
1819 video_media_info.receivers[0].local_stats[0].ssrc = 1; 1818 video_media_info.receivers[0].local_stats[0].ssrc = 1;
1820 video_media_info.receivers[0].packets_rcvd = 2; 1819 video_media_info.receivers[0].packets_rcvd = 2;
1821 video_media_info.receivers[0].packets_lost = 42; 1820 video_media_info.receivers[0].packets_lost = 42;
1822 video_media_info.receivers[0].bytes_rcvd = 3; 1821 video_media_info.receivers[0].bytes_rcvd = 3;
1823 video_media_info.receivers[0].fraction_lost = 4.5f; 1822 video_media_info.receivers[0].fraction_lost = 4.5f;
1824 video_media_info.receivers[0].codec_payload_type = rtc::Optional<int>(42); 1823 video_media_info.receivers[0].codec_payload_type = rtc::Optional<int>(42);
1825 video_media_info.receivers[0].firs_sent = 5; 1824 video_media_info.receivers[0].firs_sent = 5;
1826 video_media_info.receivers[0].plis_sent = 6; 1825 video_media_info.receivers[0].plis_sent = 6;
1827 video_media_info.receivers[0].nacks_sent = 7; 1826 video_media_info.receivers[0].nacks_sent = 7;
1828 video_media_info.receivers[0].frames_decoded = 8; 1827 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.
1879 1880
1880 ASSERT_TRUE(report->Get(expected_video.id())); 1881 ASSERT_TRUE(report->Get(expected_video.id()));
1881 const RTCInboundRTPStreamStats& video = report->Get( 1882 EXPECT_EQ(
1882 expected_video.id())->cast_to<RTCInboundRTPStreamStats>(); 1883 report->Get(expected_video.id())->cast_to<RTCInboundRTPStreamStats>(),
1883 EXPECT_EQ(video, expected_video); 1884 expected_video);
1884 1885
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);
1885 EXPECT_TRUE(report->Get(*expected_video.track_id)); 1899 EXPECT_TRUE(report->Get(*expected_video.track_id));
1886 EXPECT_TRUE(report->Get(*expected_video.transport_id)); 1900 EXPECT_TRUE(report->Get(*expected_video.transport_id));
1887 EXPECT_TRUE(report->Get(*video.codec_id)); 1901 EXPECT_TRUE(report->Get(*expected_video.codec_id));
1888 } 1902 }
1889 1903
1890 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Audio) { 1904 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Audio) {
1891 MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel(); 1905 MockVoiceMediaChannel* voice_media_channel = new MockVoiceMediaChannel();
1892 cricket::VoiceChannel voice_channel( 1906 cricket::VoiceChannel voice_channel(
1893 test_->worker_thread(), test_->network_thread(), 1907 test_->worker_thread(), test_->network_thread(),
1894 test_->signaling_thread(), test_->media_engine(), voice_media_channel, 1908 test_->signaling_thread(), test_->media_engine(), voice_media_channel,
1895 "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired); 1909 "VoiceContentName", kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
1896 1910
1897 test_->SetupLocalTrackAndSender( 1911 test_->SetupLocalTrackAndSender(
1898 cricket::MEDIA_TYPE_AUDIO, "LocalAudioTrackID", 1); 1912 cricket::MEDIA_TYPE_AUDIO, "LocalAudioTrackID", 1);
1899 1913
1900 cricket::VoiceMediaInfo voice_media_info; 1914 cricket::VoiceMediaInfo voice_media_info;
1901 1915
1902 voice_media_info.senders.push_back(cricket::VoiceSenderInfo()); 1916 voice_media_info.senders.push_back(cricket::VoiceSenderInfo());
1903 voice_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo()); 1917 voice_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo());
1904 voice_media_info.senders[0].local_stats[0].ssrc = 1; 1918 voice_media_info.senders[0].local_stats[0].ssrc = 1;
1905 voice_media_info.senders[0].packets_sent = 2; 1919 voice_media_info.senders[0].packets_sent = 2;
1906 voice_media_info.senders[0].bytes_sent = 3; 1920 voice_media_info.senders[0].bytes_sent = 3;
1907 voice_media_info.senders[0].rtt_ms = 4500; 1921 voice_media_info.senders[0].rtt_ms = -1;
1908 voice_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42); 1922 voice_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42);
1909 1923
1910 RtpCodecParameters codec_parameters; 1924 RtpCodecParameters codec_parameters;
1911 codec_parameters.payload_type = 42; 1925 codec_parameters.payload_type = 42;
1912 codec_parameters.kind = cricket::MEDIA_TYPE_AUDIO; 1926 codec_parameters.kind = cricket::MEDIA_TYPE_AUDIO;
1913 codec_parameters.name = "dummy"; 1927 codec_parameters.name = "dummy";
1914 codec_parameters.clock_rate = rtc::Optional<int>(0); 1928 codec_parameters.clock_rate = rtc::Optional<int>(0);
1915 voice_media_info.send_codecs.insert( 1929 voice_media_info.send_codecs.insert(
1916 std::make_pair(codec_parameters.payload_type, codec_parameters)); 1930 std::make_pair(codec_parameters.payload_type, codec_parameters));
1917 1931
(...skipping 25 matching lines...) Expand all
1943 expected_audio.ssrc = 1; 1957 expected_audio.ssrc = 1;
1944 expected_audio.is_remote = false; 1958 expected_audio.is_remote = false;
1945 expected_audio.media_type = "audio"; 1959 expected_audio.media_type = "audio";
1946 expected_audio.track_id = 1960 expected_audio.track_id =
1947 "RTCMediaStreamTrack_local_audio_LocalAudioTrackID_1"; 1961 "RTCMediaStreamTrack_local_audio_LocalAudioTrackID_1";
1948 expected_audio.transport_id = "RTCTransport_TransportName_" + 1962 expected_audio.transport_id = "RTCTransport_TransportName_" +
1949 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP); 1963 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
1950 expected_audio.codec_id = "RTCCodec_OutboundAudio_42"; 1964 expected_audio.codec_id = "RTCCodec_OutboundAudio_42";
1951 expected_audio.packets_sent = 2; 1965 expected_audio.packets_sent = 2;
1952 expected_audio.bytes_sent = 3; 1966 expected_audio.bytes_sent = 3;
1967 // |expected_audio.round_trip_time| should be undefined.
1968
1969 ASSERT_TRUE(report->Get(expected_audio.id()));
1970 EXPECT_EQ(
1971 report->Get(expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>(),
1972 expected_audio);
1973
1974 // Set previously undefined values and "GetStats" again.
1975 voice_media_info.senders[0].rtt_ms = 4500;
1953 expected_audio.round_trip_time = 4.5; 1976 expected_audio.round_trip_time = 4.5;
1954 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
1955 ASSERT_TRUE(report->Get(expected_audio.id())); 1983 ASSERT_TRUE(report->Get(expected_audio.id()));
1956 const RTCOutboundRTPStreamStats& audio = report->Get( 1984 EXPECT_EQ(
1957 expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>(); 1985 report->Get(expected_audio.id())->cast_to<RTCOutboundRTPStreamStats>(),
1958 EXPECT_EQ(audio, expected_audio); 1986 expected_audio);
1959
1960 EXPECT_TRUE(report->Get(*expected_audio.track_id)); 1987 EXPECT_TRUE(report->Get(*expected_audio.track_id));
1961 EXPECT_TRUE(report->Get(*expected_audio.transport_id)); 1988 EXPECT_TRUE(report->Get(*expected_audio.transport_id));
1962 EXPECT_TRUE(report->Get(*expected_audio.codec_id)); 1989 EXPECT_TRUE(report->Get(*expected_audio.codec_id));
1963 } 1990 }
1964 1991
1965 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) { 1992 TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) {
1966 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel(); 1993 MockVideoMediaChannel* video_media_channel = new MockVideoMediaChannel();
1967 cricket::VideoChannel video_channel( 1994 cricket::VideoChannel video_channel(
1968 test_->worker_thread(), test_->network_thread(), 1995 test_->worker_thread(), test_->network_thread(),
1969 test_->signaling_thread(), video_media_channel, "VideoContentName", 1996 test_->signaling_thread(), video_media_channel, "VideoContentName",
1970 kDefaultRtcpMuxRequired, kDefaultSrtpRequired); 1997 kDefaultRtcpMuxRequired, kDefaultSrtpRequired);
1971 1998
1972 test_->SetupLocalTrackAndSender( 1999 test_->SetupLocalTrackAndSender(
1973 cricket::MEDIA_TYPE_VIDEO, "LocalVideoTrackID", 1); 2000 cricket::MEDIA_TYPE_VIDEO, "LocalVideoTrackID", 1);
1974 2001
1975 cricket::VideoMediaInfo video_media_info; 2002 cricket::VideoMediaInfo video_media_info;
1976 2003
1977 video_media_info.senders.push_back(cricket::VideoSenderInfo()); 2004 video_media_info.senders.push_back(cricket::VideoSenderInfo());
1978 video_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo()); 2005 video_media_info.senders[0].local_stats.push_back(cricket::SsrcSenderInfo());
1979 video_media_info.senders[0].local_stats[0].ssrc = 1; 2006 video_media_info.senders[0].local_stats[0].ssrc = 1;
1980 video_media_info.senders[0].firs_rcvd = 2; 2007 video_media_info.senders[0].firs_rcvd = 2;
1981 video_media_info.senders[0].plis_rcvd = 3; 2008 video_media_info.senders[0].plis_rcvd = 3;
1982 video_media_info.senders[0].nacks_rcvd = 4; 2009 video_media_info.senders[0].nacks_rcvd = 4;
1983 video_media_info.senders[0].packets_sent = 5; 2010 video_media_info.senders[0].packets_sent = 5;
1984 video_media_info.senders[0].bytes_sent = 6; 2011 video_media_info.senders[0].bytes_sent = 6;
1985 video_media_info.senders[0].rtt_ms = 7500; 2012 video_media_info.senders[0].rtt_ms = -1;
1986 video_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42); 2013 video_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42);
1987 video_media_info.senders[0].frames_encoded = 8; 2014 video_media_info.senders[0].frames_encoded = 8;
1988 video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>(16); 2015 video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>();
1989 2016
1990 RtpCodecParameters codec_parameters; 2017 RtpCodecParameters codec_parameters;
1991 codec_parameters.payload_type = 42; 2018 codec_parameters.payload_type = 42;
1992 codec_parameters.kind = cricket::MEDIA_TYPE_AUDIO; 2019 codec_parameters.kind = cricket::MEDIA_TYPE_AUDIO;
1993 codec_parameters.name = "dummy"; 2020 codec_parameters.name = "dummy";
1994 codec_parameters.clock_rate = rtc::Optional<int>(0); 2021 codec_parameters.clock_rate = rtc::Optional<int>(0);
1995 video_media_info.send_codecs.insert( 2022 video_media_info.send_codecs.insert(
1996 std::make_pair(codec_parameters.payload_type, codec_parameters)); 2023 std::make_pair(codec_parameters.payload_type, codec_parameters));
1997 2024
1998 EXPECT_CALL(*video_media_channel, GetStats(_)) 2025 EXPECT_CALL(*video_media_channel, GetStats(_))
(...skipping 27 matching lines...) Expand all
2026 expected_video.track_id = 2053 expected_video.track_id =
2027 "RTCMediaStreamTrack_local_video_LocalVideoTrackID_1"; 2054 "RTCMediaStreamTrack_local_video_LocalVideoTrackID_1";
2028 expected_video.transport_id = "RTCTransport_TransportName_" + 2055 expected_video.transport_id = "RTCTransport_TransportName_" +
2029 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP); 2056 rtc::ToString<>(cricket::ICE_CANDIDATE_COMPONENT_RTP);
2030 expected_video.codec_id = "RTCCodec_OutboundVideo_42"; 2057 expected_video.codec_id = "RTCCodec_OutboundVideo_42";
2031 expected_video.fir_count = 2; 2058 expected_video.fir_count = 2;
2032 expected_video.pli_count = 3; 2059 expected_video.pli_count = 3;
2033 expected_video.nack_count = 4; 2060 expected_video.nack_count = 4;
2034 expected_video.packets_sent = 5; 2061 expected_video.packets_sent = 5;
2035 expected_video.bytes_sent = 6; 2062 expected_video.bytes_sent = 6;
2036 expected_video.round_trip_time = 7.5;
2037 expected_video.frames_encoded = 8; 2063 expected_video.frames_encoded = 8;
2038 expected_video.qp_sum = 16; 2064 // |expected_video.round_trip_time| and |expected_video.qp_sum| should be
2065 // undefined.
2039 2066
2040 ASSERT_TRUE(report->Get(expected_video.id())); 2067 ASSERT_TRUE(report->Get(expected_video.id()));
2041 const RTCOutboundRTPStreamStats& video = report->Get( 2068 EXPECT_EQ(
2042 expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(); 2069 report->Get(expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(),
2043 EXPECT_EQ(video, expected_video); 2070 expected_video);
2044 2071
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);
2045 EXPECT_TRUE(report->Get(*expected_video.track_id)); 2087 EXPECT_TRUE(report->Get(*expected_video.track_id));
2046 EXPECT_TRUE(report->Get(*expected_video.transport_id)); 2088 EXPECT_TRUE(report->Get(*expected_video.transport_id));
2047 EXPECT_TRUE(report->Get(*expected_video.codec_id)); 2089 EXPECT_TRUE(report->Get(*expected_video.codec_id));
2048 } 2090 }
2049 2091
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
2152 TEST_F(RTCStatsCollectorTest, CollectRTCTransportStats) { 2092 TEST_F(RTCStatsCollectorTest, CollectRTCTransportStats) {
2153 std::unique_ptr<cricket::Candidate> rtp_local_candidate = CreateFakeCandidate( 2093 std::unique_ptr<cricket::Candidate> rtp_local_candidate = CreateFakeCandidate(
2154 "42.42.42.42", 42, "protocol", cricket::LOCAL_PORT_TYPE, 42); 2094 "42.42.42.42", 42, "protocol", cricket::LOCAL_PORT_TYPE, 42);
2155 std::unique_ptr<cricket::Candidate> rtp_remote_candidate = 2095 std::unique_ptr<cricket::Candidate> rtp_remote_candidate =
2156 CreateFakeCandidate("42.42.42.42", 42, "protocol", 2096 CreateFakeCandidate("42.42.42.42", 42, "protocol",
2157 cricket::LOCAL_PORT_TYPE, 42); 2097 cricket::LOCAL_PORT_TYPE, 42);
2158 std::unique_ptr<cricket::Candidate> rtcp_local_candidate = 2098 std::unique_ptr<cricket::Candidate> rtcp_local_candidate =
2159 CreateFakeCandidate("42.42.42.42", 42, "protocol", 2099 CreateFakeCandidate("42.42.42.42", 42, "protocol",
2160 cricket::LOCAL_PORT_TYPE, 42); 2100 cricket::LOCAL_PORT_TYPE, 42);
2161 std::unique_ptr<cricket::Candidate> rtcp_remote_candidate = 2101 std::unique_ptr<cricket::Candidate> rtcp_remote_candidate =
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
2320 rtc::scoped_refptr<FakeRTCStatsCollector> collector_; 2260 rtc::scoped_refptr<FakeRTCStatsCollector> collector_;
2321 }; 2261 };
2322 2262
2323 TEST_F(RTCStatsCollectorTestWithFakeCollector, ThreadUsageAndResultsMerging) { 2263 TEST_F(RTCStatsCollectorTestWithFakeCollector, ThreadUsageAndResultsMerging) {
2324 collector_->VerifyThreadUsageAndResultsMerging(); 2264 collector_->VerifyThreadUsageAndResultsMerging();
2325 } 2265 }
2326 2266
2327 } // namespace 2267 } // namespace
2328 2268
2329 } // namespace webrtc 2269 } // 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