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

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

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