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

Side by Side Diff: talk/media/webrtc/webrtcvoiceengine_unittest.cc

Issue 1362503003: Use suffixed {uint,int}{8,16,32,64}_t types. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: google::int32 Created 5 years, 3 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
OLDNEW
1 /* 1 /*
2 * libjingle 2 * libjingle
3 * Copyright 2008 Google Inc. 3 * Copyright 2008 Google Inc.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright notice, 8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer. 9 * this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright notice, 10 * 2. Redistributions in binary form must reproduce the above copyright notice,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 static const cricket::AudioCodec kRedCodec(117, "red", 8000, 0, 1, 0); 52 static const cricket::AudioCodec kRedCodec(117, "red", 8000, 0, 1, 0);
53 static const cricket::AudioCodec kCn8000Codec(13, "CN", 8000, 0, 1, 0); 53 static const cricket::AudioCodec kCn8000Codec(13, "CN", 8000, 0, 1, 0);
54 static const cricket::AudioCodec kCn16000Codec(105, "CN", 16000, 0, 1, 0); 54 static const cricket::AudioCodec kCn16000Codec(105, "CN", 16000, 0, 1, 0);
55 static const cricket::AudioCodec 55 static const cricket::AudioCodec
56 kTelephoneEventCodec(106, "telephone-event", 8000, 0, 1, 0); 56 kTelephoneEventCodec(106, "telephone-event", 8000, 0, 1, 0);
57 static const cricket::AudioCodec* const kAudioCodecs[] = { 57 static const cricket::AudioCodec* const kAudioCodecs[] = {
58 &kPcmuCodec, &kIsacCodec, &kOpusCodec, &kG722CodecVoE, &kRedCodec, 58 &kPcmuCodec, &kIsacCodec, &kOpusCodec, &kG722CodecVoE, &kRedCodec,
59 &kCn8000Codec, &kCn16000Codec, &kTelephoneEventCodec, 59 &kCn8000Codec, &kCn16000Codec, &kTelephoneEventCodec,
60 }; 60 };
61 const char kRingbackTone[] = "RIFF____WAVE____ABCD1234"; 61 const char kRingbackTone[] = "RIFF____WAVE____ABCD1234";
62 static uint32 kSsrc1 = 0x99; 62 static uint32_t kSsrc1 = 0x99;
63 static uint32 kSsrc2 = 0x98; 63 static uint32_t kSsrc2 = 0x98;
64 64
65 class FakeVoEWrapper : public cricket::VoEWrapper { 65 class FakeVoEWrapper : public cricket::VoEWrapper {
66 public: 66 public:
67 explicit FakeVoEWrapper(cricket::FakeWebRtcVoiceEngine* engine) 67 explicit FakeVoEWrapper(cricket::FakeWebRtcVoiceEngine* engine)
68 : cricket::VoEWrapper(engine, // processing 68 : cricket::VoEWrapper(engine, // processing
69 engine, // base 69 engine, // base
70 engine, // codec 70 engine, // codec
71 engine, // dtmf 71 engine, // dtmf
72 engine, // file 72 engine, // file
73 engine, // hw 73 engine, // hw
(...skipping 20 matching lines...) Expand all
94 class WebRtcVoiceEngineTestFake : public testing::Test { 94 class WebRtcVoiceEngineTestFake : public testing::Test {
95 public: 95 public:
96 class ChannelErrorListener : public sigslot::has_slots<> { 96 class ChannelErrorListener : public sigslot::has_slots<> {
97 public: 97 public:
98 explicit ChannelErrorListener(cricket::VoiceMediaChannel* channel) 98 explicit ChannelErrorListener(cricket::VoiceMediaChannel* channel)
99 : ssrc_(0), error_(cricket::VoiceMediaChannel::ERROR_NONE) { 99 : ssrc_(0), error_(cricket::VoiceMediaChannel::ERROR_NONE) {
100 RTC_DCHECK(channel != NULL); 100 RTC_DCHECK(channel != NULL);
101 channel->SignalMediaError.connect( 101 channel->SignalMediaError.connect(
102 this, &ChannelErrorListener::OnVoiceChannelError); 102 this, &ChannelErrorListener::OnVoiceChannelError);
103 } 103 }
104 void OnVoiceChannelError(uint32 ssrc, 104 void OnVoiceChannelError(uint32_t ssrc,
105 cricket::VoiceMediaChannel::Error error) { 105 cricket::VoiceMediaChannel::Error error) {
106 ssrc_ = ssrc; 106 ssrc_ = ssrc;
107 error_ = error; 107 error_ = error;
108 } 108 }
109 void Reset() { 109 void Reset() {
110 ssrc_ = 0; 110 ssrc_ = 0;
111 error_ = cricket::VoiceMediaChannel::ERROR_NONE; 111 error_ = cricket::VoiceMediaChannel::ERROR_NONE;
112 } 112 }
113 uint32 ssrc() const { 113 uint32_t ssrc() const { return ssrc_; }
114 return ssrc_;
115 }
116 cricket::VoiceMediaChannel::Error error() const { 114 cricket::VoiceMediaChannel::Error error() const {
117 return error_; 115 return error_;
118 } 116 }
119 117
120 private: 118 private:
121 uint32 ssrc_; 119 uint32_t ssrc_;
122 cricket::VoiceMediaChannel::Error error_; 120 cricket::VoiceMediaChannel::Error error_;
123 }; 121 };
124 122
125 WebRtcVoiceEngineTestFake() 123 WebRtcVoiceEngineTestFake()
126 : call_(webrtc::Call::Config()), 124 : call_(webrtc::Call::Config()),
127 voe_(kAudioCodecs, ARRAY_SIZE(kAudioCodecs)), 125 voe_(kAudioCodecs, ARRAY_SIZE(kAudioCodecs)),
128 trace_wrapper_(new FakeVoETraceWrapper()), 126 trace_wrapper_(new FakeVoETraceWrapper()),
129 engine_(new FakeVoEWrapper(&voe_), trace_wrapper_), 127 engine_(new FakeVoEWrapper(&voe_), trace_wrapper_),
130 channel_(nullptr) { 128 channel_(nullptr) {
131 send_parameters_.codecs.push_back(kPcmuCodec); 129 send_parameters_.codecs.push_back(kPcmuCodec);
(...skipping 12 matching lines...) Expand all
144 if (!SetupEngineWithoutStream()) { 142 if (!SetupEngineWithoutStream()) {
145 return false; 143 return false;
146 } 144 }
147 return channel_->AddSendStream( 145 return channel_->AddSendStream(
148 cricket::StreamParams::CreateLegacy(kSsrc1)); 146 cricket::StreamParams::CreateLegacy(kSsrc1));
149 } 147 }
150 void SetupForMultiSendStream() { 148 void SetupForMultiSendStream() {
151 EXPECT_TRUE(SetupEngine()); 149 EXPECT_TRUE(SetupEngine());
152 // Remove stream added in Setup, which is corresponding to default channel. 150 // Remove stream added in Setup, which is corresponding to default channel.
153 int default_channel_num = voe_.GetLastChannel(); 151 int default_channel_num = voe_.GetLastChannel();
154 uint32 default_send_ssrc = 0u; 152 uint32_t default_send_ssrc = 0u;
155 EXPECT_EQ(0, voe_.GetLocalSSRC(default_channel_num, default_send_ssrc)); 153 EXPECT_EQ(0, voe_.GetLocalSSRC(default_channel_num, default_send_ssrc));
156 EXPECT_EQ(kSsrc1, default_send_ssrc); 154 EXPECT_EQ(kSsrc1, default_send_ssrc);
157 EXPECT_TRUE(channel_->RemoveSendStream(default_send_ssrc)); 155 EXPECT_TRUE(channel_->RemoveSendStream(default_send_ssrc));
158 156
159 // Verify the default channel still exists. 157 // Verify the default channel still exists.
160 EXPECT_EQ(0, voe_.GetLocalSSRC(default_channel_num, default_send_ssrc)); 158 EXPECT_EQ(0, voe_.GetLocalSSRC(default_channel_num, default_send_ssrc));
161 } 159 }
162 void DeliverPacket(const void* data, int len) { 160 void DeliverPacket(const void* data, int len) {
163 rtc::Buffer packet(reinterpret_cast<const uint8_t*>(data), len); 161 rtc::Buffer packet(reinterpret_cast<const uint8_t*>(data), len);
164 channel_->OnPacketReceived(&packet, rtc::PacketTime()); 162 channel_->OnPacketReceived(&packet, rtc::PacketTime());
165 } 163 }
166 void TearDown() override { 164 void TearDown() override {
167 delete channel_; 165 delete channel_;
168 engine_.Terminate(); 166 engine_.Terminate();
169 } 167 }
170 168
171 void TestInsertDtmf(uint32 ssrc, bool caller) { 169 void TestInsertDtmf(uint32_t ssrc, bool caller) {
172 EXPECT_TRUE(engine_.Init(rtc::Thread::Current())); 170 EXPECT_TRUE(engine_.Init(rtc::Thread::Current()));
173 channel_ = engine_.CreateChannel(&call_, cricket::AudioOptions()); 171 channel_ = engine_.CreateChannel(&call_, cricket::AudioOptions());
174 EXPECT_TRUE(channel_ != nullptr); 172 EXPECT_TRUE(channel_ != nullptr);
175 if (caller) { 173 if (caller) {
176 // if this is a caller, local description will be applied and add the 174 // if this is a caller, local description will be applied and add the
177 // send stream. 175 // send stream.
178 EXPECT_TRUE(channel_->AddSendStream( 176 EXPECT_TRUE(channel_->AddSendStream(
179 cricket::StreamParams::CreateLegacy(kSsrc1))); 177 cricket::StreamParams::CreateLegacy(kSsrc1)));
180 } 178 }
181 int channel_id = voe_.GetLastChannel(); 179 int channel_id = voe_.GetLastChannel();
(...skipping 1707 matching lines...) Expand 10 before | Expand all | Expand 10 after
1889 EXPECT_TRUE(channel_->SetSend(cricket::SEND_NOTHING)); 1887 EXPECT_TRUE(channel_->SetSend(cricket::SEND_NOTHING));
1890 EXPECT_FALSE(voe_.GetSend(channel_num)); 1888 EXPECT_FALSE(voe_.GetSend(channel_num));
1891 EXPECT_TRUE(channel_->SetPlayout(false)); 1889 EXPECT_TRUE(channel_->SetPlayout(false));
1892 EXPECT_FALSE(voe_.GetPlayout(channel_num)); 1890 EXPECT_FALSE(voe_.GetPlayout(channel_num));
1893 } 1891 }
1894 1892
1895 // Test that we can add and remove send streams. 1893 // Test that we can add and remove send streams.
1896 TEST_F(WebRtcVoiceEngineTestFake, CreateAndDeleteMultipleSendStreams) { 1894 TEST_F(WebRtcVoiceEngineTestFake, CreateAndDeleteMultipleSendStreams) {
1897 SetupForMultiSendStream(); 1895 SetupForMultiSendStream();
1898 1896
1899 static const uint32 kSsrcs4[] = {1, 2, 3, 4}; 1897 static const uint32_t kSsrcs4[] = {1, 2, 3, 4};
1900 1898
1901 // Set the global state for sending. 1899 // Set the global state for sending.
1902 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE)); 1900 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE));
1903 1901
1904 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs4); ++i) { 1902 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs4); ++i) {
1905 EXPECT_TRUE(channel_->AddSendStream( 1903 EXPECT_TRUE(channel_->AddSendStream(
1906 cricket::StreamParams::CreateLegacy(kSsrcs4[i]))); 1904 cricket::StreamParams::CreateLegacy(kSsrcs4[i])));
1907 1905
1908 // Verify that we are in a sending state for all the created streams. 1906 // Verify that we are in a sending state for all the created streams.
1909 int channel_num = voe_.GetChannelFromLocalSsrc(kSsrcs4[i]); 1907 int channel_num = voe_.GetChannelFromLocalSsrc(kSsrcs4[i]);
(...skipping 14 matching lines...) Expand all
1924 // Stream should already be deleted. 1922 // Stream should already be deleted.
1925 EXPECT_FALSE(channel_->RemoveSendStream(kSsrcs4[i])); 1923 EXPECT_FALSE(channel_->RemoveSendStream(kSsrcs4[i]));
1926 EXPECT_EQ(-1, voe_.GetChannelFromLocalSsrc(kSsrcs4[i])); 1924 EXPECT_EQ(-1, voe_.GetChannelFromLocalSsrc(kSsrcs4[i]));
1927 } 1925 }
1928 } 1926 }
1929 1927
1930 // Test SetSendCodecs correctly configure the codecs in all send streams. 1928 // Test SetSendCodecs correctly configure the codecs in all send streams.
1931 TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsWithMultipleSendStreams) { 1929 TEST_F(WebRtcVoiceEngineTestFake, SetSendCodecsWithMultipleSendStreams) {
1932 SetupForMultiSendStream(); 1930 SetupForMultiSendStream();
1933 1931
1934 static const uint32 kSsrcs4[] = {1, 2, 3, 4}; 1932 static const uint32_t kSsrcs4[] = {1, 2, 3, 4};
1935 // Create send streams. 1933 // Create send streams.
1936 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs4); ++i) { 1934 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs4); ++i) {
1937 EXPECT_TRUE(channel_->AddSendStream( 1935 EXPECT_TRUE(channel_->AddSendStream(
1938 cricket::StreamParams::CreateLegacy(kSsrcs4[i]))); 1936 cricket::StreamParams::CreateLegacy(kSsrcs4[i])));
1939 } 1937 }
1940 1938
1941 cricket::AudioSendParameters parameters; 1939 cricket::AudioSendParameters parameters;
1942 // Set ISAC(16K) and CN(16K). VAD should be activated. 1940 // Set ISAC(16K) and CN(16K). VAD should be activated.
1943 parameters.codecs.push_back(kIsacCodec); 1941 parameters.codecs.push_back(kIsacCodec);
1944 parameters.codecs.push_back(kCn16000Codec); 1942 parameters.codecs.push_back(kCn16000Codec);
(...skipping 18 matching lines...) Expand all
1963 EXPECT_EQ(0, voe_.GetSendCodec(channel_num, gcodec)); 1961 EXPECT_EQ(0, voe_.GetSendCodec(channel_num, gcodec));
1964 EXPECT_STREQ("PCMU", gcodec.plname); 1962 EXPECT_STREQ("PCMU", gcodec.plname);
1965 EXPECT_FALSE(voe_.GetVAD(channel_num)); 1963 EXPECT_FALSE(voe_.GetVAD(channel_num));
1966 } 1964 }
1967 } 1965 }
1968 1966
1969 // Test we can SetSend on all send streams correctly. 1967 // Test we can SetSend on all send streams correctly.
1970 TEST_F(WebRtcVoiceEngineTestFake, SetSendWithMultipleSendStreams) { 1968 TEST_F(WebRtcVoiceEngineTestFake, SetSendWithMultipleSendStreams) {
1971 SetupForMultiSendStream(); 1969 SetupForMultiSendStream();
1972 1970
1973 static const uint32 kSsrcs4[] = {1, 2, 3, 4}; 1971 static const uint32_t kSsrcs4[] = {1, 2, 3, 4};
1974 // Create the send channels and they should be a SEND_NOTHING date. 1972 // Create the send channels and they should be a SEND_NOTHING date.
1975 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs4); ++i) { 1973 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs4); ++i) {
1976 EXPECT_TRUE(channel_->AddSendStream( 1974 EXPECT_TRUE(channel_->AddSendStream(
1977 cricket::StreamParams::CreateLegacy(kSsrcs4[i]))); 1975 cricket::StreamParams::CreateLegacy(kSsrcs4[i])));
1978 int channel_num = voe_.GetLastChannel(); 1976 int channel_num = voe_.GetLastChannel();
1979 EXPECT_FALSE(voe_.GetSend(channel_num)); 1977 EXPECT_FALSE(voe_.GetSend(channel_num));
1980 } 1978 }
1981 1979
1982 // Set the global state for starting sending. 1980 // Set the global state for starting sending.
1983 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE)); 1981 EXPECT_TRUE(channel_->SetSend(cricket::SEND_MICROPHONE));
1984 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs4); ++i) { 1982 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs4); ++i) {
1985 // Verify that we are in a sending state for all the send streams. 1983 // Verify that we are in a sending state for all the send streams.
1986 int channel_num = voe_.GetChannelFromLocalSsrc(kSsrcs4[i]); 1984 int channel_num = voe_.GetChannelFromLocalSsrc(kSsrcs4[i]);
1987 EXPECT_TRUE(voe_.GetSend(channel_num)); 1985 EXPECT_TRUE(voe_.GetSend(channel_num));
1988 } 1986 }
1989 1987
1990 // Set the global state for stopping sending. 1988 // Set the global state for stopping sending.
1991 EXPECT_TRUE(channel_->SetSend(cricket::SEND_NOTHING)); 1989 EXPECT_TRUE(channel_->SetSend(cricket::SEND_NOTHING));
1992 for (unsigned int i = 1; i < ARRAY_SIZE(kSsrcs4); ++i) { 1990 for (unsigned int i = 1; i < ARRAY_SIZE(kSsrcs4); ++i) {
1993 // Verify that we are in a stop state for all the send streams. 1991 // Verify that we are in a stop state for all the send streams.
1994 int channel_num = voe_.GetChannelFromLocalSsrc(kSsrcs4[i]); 1992 int channel_num = voe_.GetChannelFromLocalSsrc(kSsrcs4[i]);
1995 EXPECT_FALSE(voe_.GetSend(channel_num)); 1993 EXPECT_FALSE(voe_.GetSend(channel_num));
1996 } 1994 }
1997 } 1995 }
1998 1996
1999 // Test we can set the correct statistics on all send streams. 1997 // Test we can set the correct statistics on all send streams.
2000 TEST_F(WebRtcVoiceEngineTestFake, GetStatsWithMultipleSendStreams) { 1998 TEST_F(WebRtcVoiceEngineTestFake, GetStatsWithMultipleSendStreams) {
2001 SetupForMultiSendStream(); 1999 SetupForMultiSendStream();
2002 2000
2003 static const uint32 kSsrcs4[] = {1, 2, 3, 4}; 2001 static const uint32_t kSsrcs4[] = {1, 2, 3, 4};
2004 // Create send streams. 2002 // Create send streams.
2005 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs4); ++i) { 2003 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs4); ++i) {
2006 EXPECT_TRUE(channel_->AddSendStream( 2004 EXPECT_TRUE(channel_->AddSendStream(
2007 cricket::StreamParams::CreateLegacy(kSsrcs4[i]))); 2005 cricket::StreamParams::CreateLegacy(kSsrcs4[i])));
2008 } 2006 }
2009 // Create a receive stream to check that none of the send streams end up in 2007 // Create a receive stream to check that none of the send streams end up in
2010 // the receive stream stats. 2008 // the receive stream stats.
2011 EXPECT_TRUE(channel_->AddRecvStream( 2009 EXPECT_TRUE(channel_->AddRecvStream(
2012 cricket::StreamParams::CreateLegacy(kSsrc2))); 2010 cricket::StreamParams::CreateLegacy(kSsrc2)));
2013 // We need send codec to be set to get all stats. 2011 // We need send codec to be set to get all stats.
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
2429 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(1))); 2427 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(1)));
2430 int channel_num1 = voe_.GetLastChannel(); 2428 int channel_num1 = voe_.GetLastChannel();
2431 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(2))); 2429 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(2)));
2432 int channel_num2 = voe_.GetLastChannel(); 2430 int channel_num2 = voe_.GetLastChannel();
2433 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(3))); 2431 EXPECT_TRUE(channel_->AddRecvStream(cricket::StreamParams::CreateLegacy(3)));
2434 int channel_num3 = voe_.GetLastChannel(); 2432 int channel_num3 = voe_.GetLastChannel();
2435 // Create packets with the right SSRCs. 2433 // Create packets with the right SSRCs.
2436 char packets[4][sizeof(kPcmuFrame)]; 2434 char packets[4][sizeof(kPcmuFrame)];
2437 for (size_t i = 0; i < ARRAY_SIZE(packets); ++i) { 2435 for (size_t i = 0; i < ARRAY_SIZE(packets); ++i) {
2438 memcpy(packets[i], kPcmuFrame, sizeof(kPcmuFrame)); 2436 memcpy(packets[i], kPcmuFrame, sizeof(kPcmuFrame));
2439 rtc::SetBE32(packets[i] + 8, static_cast<uint32>(i)); 2437 rtc::SetBE32(packets[i] + 8, static_cast<uint32_t>(i));
2440 } 2438 }
2441 EXPECT_TRUE(voe_.CheckNoPacket(channel_num1)); 2439 EXPECT_TRUE(voe_.CheckNoPacket(channel_num1));
2442 EXPECT_TRUE(voe_.CheckNoPacket(channel_num2)); 2440 EXPECT_TRUE(voe_.CheckNoPacket(channel_num2));
2443 EXPECT_TRUE(voe_.CheckNoPacket(channel_num3)); 2441 EXPECT_TRUE(voe_.CheckNoPacket(channel_num3));
2444 DeliverPacket(packets[0], sizeof(packets[0])); 2442 DeliverPacket(packets[0], sizeof(packets[0]));
2445 EXPECT_TRUE(voe_.CheckNoPacket(channel_num1)); 2443 EXPECT_TRUE(voe_.CheckNoPacket(channel_num1));
2446 EXPECT_TRUE(voe_.CheckNoPacket(channel_num2)); 2444 EXPECT_TRUE(voe_.CheckNoPacket(channel_num2));
2447 EXPECT_TRUE(voe_.CheckNoPacket(channel_num3)); 2445 EXPECT_TRUE(voe_.CheckNoPacket(channel_num3));
2448 DeliverPacket(packets[1], sizeof(packets[1])); 2446 DeliverPacket(packets[1], sizeof(packets[1]));
2449 EXPECT_TRUE(voe_.CheckPacket(channel_num1, packets[1], 2447 EXPECT_TRUE(voe_.CheckPacket(channel_num1, packets[1],
(...skipping 690 matching lines...) Expand 10 before | Expand all | Expand 10 after
3140 3138
3141 EXPECT_TRUE(channel_->SetOutputScaling(kSsrc2, 2, 1)); 3139 EXPECT_TRUE(channel_->SetOutputScaling(kSsrc2, 2, 1));
3142 channel_id = voe_.GetLastChannel(); 3140 channel_id = voe_.GetLastChannel();
3143 EXPECT_EQ(0, voe_.GetChannelOutputVolumeScaling(channel_id, scale)); 3141 EXPECT_EQ(0, voe_.GetChannelOutputVolumeScaling(channel_id, scale));
3144 EXPECT_EQ(0, voe_.GetOutputVolumePan(channel_id, left, right)); 3142 EXPECT_EQ(0, voe_.GetOutputVolumePan(channel_id, left, right));
3145 EXPECT_DOUBLE_EQ(2, left * scale); 3143 EXPECT_DOUBLE_EQ(2, left * scale);
3146 EXPECT_DOUBLE_EQ(1, right * scale); 3144 EXPECT_DOUBLE_EQ(1, right * scale);
3147 } 3145 }
3148 3146
3149 TEST_F(WebRtcVoiceEngineTestFake, SetsSyncGroupFromSyncLabel) { 3147 TEST_F(WebRtcVoiceEngineTestFake, SetsSyncGroupFromSyncLabel) {
3150 const uint32 kAudioSsrc = 123; 3148 const uint32_t kAudioSsrc = 123;
3151 const std::string kSyncLabel = "AvSyncLabel"; 3149 const std::string kSyncLabel = "AvSyncLabel";
3152 3150
3153 EXPECT_TRUE(SetupEngine()); 3151 EXPECT_TRUE(SetupEngine());
3154 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(kAudioSsrc); 3152 cricket::StreamParams sp = cricket::StreamParams::CreateLegacy(kAudioSsrc);
3155 sp.sync_label = kSyncLabel; 3153 sp.sync_label = kSyncLabel;
3156 // Creating two channels to make sure that sync label is set properly for both 3154 // Creating two channels to make sure that sync label is set properly for both
3157 // the default voice channel and following ones. 3155 // the default voice channel and following ones.
3158 EXPECT_TRUE(channel_->AddRecvStream(sp)); 3156 EXPECT_TRUE(channel_->AddRecvStream(sp));
3159 sp.ssrcs[0] += 1; 3157 sp.ssrcs[0] += 1;
3160 EXPECT_TRUE(channel_->AddRecvStream(sp)); 3158 EXPECT_TRUE(channel_->AddRecvStream(sp));
3161 3159
3162 ASSERT_EQ(2, call_.GetAudioReceiveStreams().size()); 3160 ASSERT_EQ(2, call_.GetAudioReceiveStreams().size());
3163 EXPECT_EQ(kSyncLabel, 3161 EXPECT_EQ(kSyncLabel,
3164 call_.GetAudioReceiveStream(kAudioSsrc)->GetConfig().sync_group) 3162 call_.GetAudioReceiveStream(kAudioSsrc)->GetConfig().sync_group)
3165 << "SyncGroup should be set based on sync_label"; 3163 << "SyncGroup should be set based on sync_label";
3166 EXPECT_EQ(kSyncLabel, 3164 EXPECT_EQ(kSyncLabel,
3167 call_.GetAudioReceiveStream(kAudioSsrc + 1)->GetConfig().sync_group) 3165 call_.GetAudioReceiveStream(kAudioSsrc + 1)->GetConfig().sync_group)
3168 << "SyncGroup should be set based on sync_label"; 3166 << "SyncGroup should be set based on sync_label";
3169 } 3167 }
3170 3168
3171 TEST_F(WebRtcVoiceEngineTestFake, CanChangeCombinedBweOption) { 3169 TEST_F(WebRtcVoiceEngineTestFake, CanChangeCombinedBweOption) {
3172 // Test that changing the combined_audio_video_bwe option results in the 3170 // Test that changing the combined_audio_video_bwe option results in the
3173 // expected state changes on an associated Call. 3171 // expected state changes on an associated Call.
3174 std::vector<uint32> ssrcs; 3172 std::vector<uint32_t> ssrcs;
3175 ssrcs.push_back(223); 3173 ssrcs.push_back(223);
3176 ssrcs.push_back(224); 3174 ssrcs.push_back(224);
3177 3175
3178 EXPECT_TRUE(SetupEngine()); 3176 EXPECT_TRUE(SetupEngine());
3179 cricket::WebRtcVoiceMediaChannel* media_channel = 3177 cricket::WebRtcVoiceMediaChannel* media_channel =
3180 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); 3178 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_);
3181 for (uint32 ssrc : ssrcs) { 3179 for (uint32_t ssrc : ssrcs) {
3182 EXPECT_TRUE(media_channel->AddRecvStream( 3180 EXPECT_TRUE(media_channel->AddRecvStream(
3183 cricket::StreamParams::CreateLegacy(ssrc))); 3181 cricket::StreamParams::CreateLegacy(ssrc)));
3184 } 3182 }
3185 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); 3183 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size());
3186 3184
3187 // Combined BWE should be disabled. 3185 // Combined BWE should be disabled.
3188 for (uint32 ssrc : ssrcs) { 3186 for (uint32_t ssrc : ssrcs) {
3189 const auto* s = call_.GetAudioReceiveStream(ssrc); 3187 const auto* s = call_.GetAudioReceiveStream(ssrc);
3190 EXPECT_NE(nullptr, s); 3188 EXPECT_NE(nullptr, s);
3191 EXPECT_EQ(false, s->GetConfig().combined_audio_video_bwe); 3189 EXPECT_EQ(false, s->GetConfig().combined_audio_video_bwe);
3192 } 3190 }
3193 3191
3194 // Enable combined BWE option - now it should be set up. 3192 // Enable combined BWE option - now it should be set up.
3195 send_parameters_.options.combined_audio_video_bwe.Set(true); 3193 send_parameters_.options.combined_audio_video_bwe.Set(true);
3196 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); 3194 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_));
3197 for (uint32 ssrc : ssrcs) { 3195 for (uint32_t ssrc : ssrcs) {
3198 const auto* s = call_.GetAudioReceiveStream(ssrc); 3196 const auto* s = call_.GetAudioReceiveStream(ssrc);
3199 EXPECT_NE(nullptr, s); 3197 EXPECT_NE(nullptr, s);
3200 EXPECT_EQ(true, s->GetConfig().combined_audio_video_bwe); 3198 EXPECT_EQ(true, s->GetConfig().combined_audio_video_bwe);
3201 } 3199 }
3202 3200
3203 // Disable combined BWE option - should be disabled again. 3201 // Disable combined BWE option - should be disabled again.
3204 send_parameters_.options.combined_audio_video_bwe.Set(false); 3202 send_parameters_.options.combined_audio_video_bwe.Set(false);
3205 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); 3203 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_));
3206 for (uint32 ssrc : ssrcs) { 3204 for (uint32_t ssrc : ssrcs) {
3207 const auto* s = call_.GetAudioReceiveStream(ssrc); 3205 const auto* s = call_.GetAudioReceiveStream(ssrc);
3208 EXPECT_NE(nullptr, s); 3206 EXPECT_NE(nullptr, s);
3209 EXPECT_EQ(false, s->GetConfig().combined_audio_video_bwe); 3207 EXPECT_EQ(false, s->GetConfig().combined_audio_video_bwe);
3210 } 3208 }
3211 3209
3212 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); 3210 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size());
3213 } 3211 }
3214 3212
3215 TEST_F(WebRtcVoiceEngineTestFake, ConfigureCombinedBweForNewRecvStreams) { 3213 TEST_F(WebRtcVoiceEngineTestFake, ConfigureCombinedBweForNewRecvStreams) {
3216 // Test that adding receive streams after enabling combined bandwidth 3214 // Test that adding receive streams after enabling combined bandwidth
3217 // estimation will correctly configure each channel. 3215 // estimation will correctly configure each channel.
3218 EXPECT_TRUE(SetupEngine()); 3216 EXPECT_TRUE(SetupEngine());
3219 cricket::WebRtcVoiceMediaChannel* media_channel = 3217 cricket::WebRtcVoiceMediaChannel* media_channel =
3220 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); 3218 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_);
3221 send_parameters_.options.combined_audio_video_bwe.Set(true); 3219 send_parameters_.options.combined_audio_video_bwe.Set(true);
3222 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); 3220 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_));
3223 3221
3224 static const uint32 kSsrcs[] = {1, 2, 3, 4}; 3222 static const uint32_t kSsrcs[] = {1, 2, 3, 4};
3225 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs); ++i) { 3223 for (unsigned int i = 0; i < ARRAY_SIZE(kSsrcs); ++i) {
3226 EXPECT_TRUE(media_channel->AddRecvStream( 3224 EXPECT_TRUE(media_channel->AddRecvStream(
3227 cricket::StreamParams::CreateLegacy(kSsrcs[i]))); 3225 cricket::StreamParams::CreateLegacy(kSsrcs[i])));
3228 EXPECT_NE(nullptr, call_.GetAudioReceiveStream(kSsrcs[i])); 3226 EXPECT_NE(nullptr, call_.GetAudioReceiveStream(kSsrcs[i]));
3229 } 3227 }
3230 EXPECT_EQ(ARRAY_SIZE(kSsrcs), call_.GetAudioReceiveStreams().size()); 3228 EXPECT_EQ(ARRAY_SIZE(kSsrcs), call_.GetAudioReceiveStreams().size());
3231 } 3229 }
3232 3230
3233 TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) { 3231 TEST_F(WebRtcVoiceEngineTestFake, ConfiguresAudioReceiveStreamRtpExtensions) {
3234 // Test that setting the header extensions results in the expected state 3232 // Test that setting the header extensions results in the expected state
3235 // changes on an associated Call. 3233 // changes on an associated Call.
3236 std::vector<uint32> ssrcs; 3234 std::vector<uint32_t> ssrcs;
3237 ssrcs.push_back(223); 3235 ssrcs.push_back(223);
3238 ssrcs.push_back(224); 3236 ssrcs.push_back(224);
3239 3237
3240 EXPECT_TRUE(SetupEngine()); 3238 EXPECT_TRUE(SetupEngine());
3241 cricket::WebRtcVoiceMediaChannel* media_channel = 3239 cricket::WebRtcVoiceMediaChannel* media_channel =
3242 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_); 3240 static_cast<cricket::WebRtcVoiceMediaChannel*>(channel_);
3243 send_parameters_.options.combined_audio_video_bwe.Set(true); 3241 send_parameters_.options.combined_audio_video_bwe.Set(true);
3244 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_)); 3242 EXPECT_TRUE(media_channel->SetSendParameters(send_parameters_));
3245 for (uint32 ssrc : ssrcs) { 3243 for (uint32_t ssrc : ssrcs) {
3246 EXPECT_TRUE(media_channel->AddRecvStream( 3244 EXPECT_TRUE(media_channel->AddRecvStream(
3247 cricket::StreamParams::CreateLegacy(ssrc))); 3245 cricket::StreamParams::CreateLegacy(ssrc)));
3248 } 3246 }
3249 3247
3250 // Combined BWE should be set up, but with no configured extensions. 3248 // Combined BWE should be set up, but with no configured extensions.
3251 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); 3249 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size());
3252 for (uint32 ssrc : ssrcs) { 3250 for (uint32_t ssrc : ssrcs) {
3253 const auto* s = call_.GetAudioReceiveStream(ssrc); 3251 const auto* s = call_.GetAudioReceiveStream(ssrc);
3254 EXPECT_NE(nullptr, s); 3252 EXPECT_NE(nullptr, s);
3255 EXPECT_EQ(0, s->GetConfig().rtp.extensions.size()); 3253 EXPECT_EQ(0, s->GetConfig().rtp.extensions.size());
3256 } 3254 }
3257 3255
3258 // Set up receive extensions. 3256 // Set up receive extensions.
3259 const auto& e_exts = engine_.rtp_header_extensions(); 3257 const auto& e_exts = engine_.rtp_header_extensions();
3260 cricket::AudioRecvParameters recv_parameters; 3258 cricket::AudioRecvParameters recv_parameters;
3261 recv_parameters.extensions = e_exts; 3259 recv_parameters.extensions = e_exts;
3262 channel_->SetRecvParameters(recv_parameters); 3260 channel_->SetRecvParameters(recv_parameters);
3263 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size()); 3261 EXPECT_EQ(2, call_.GetAudioReceiveStreams().size());
3264 for (uint32 ssrc : ssrcs) { 3262 for (uint32_t ssrc : ssrcs) {
3265 const auto* s = call_.GetAudioReceiveStream(ssrc); 3263 const auto* s = call_.GetAudioReceiveStream(ssrc);
3266 EXPECT_NE(nullptr, s); 3264 EXPECT_NE(nullptr, s);
3267 const auto& s_exts = s->GetConfig().rtp.extensions; 3265 const auto& s_exts = s->GetConfig().rtp.extensions;
3268 EXPECT_EQ(e_exts.size(), s_exts.size()); 3266 EXPECT_EQ(e_exts.size(), s_exts.size());
3269 for (const auto& e_ext : e_exts) { 3267 for (const auto& e_ext : e_exts) {
3270 for (const auto& s_ext : s_exts) { 3268 for (const auto& s_ext : s_exts) {
3271 if (e_ext.id == s_ext.id) { 3269 if (e_ext.id == s_ext.id) {
3272 EXPECT_EQ(e_ext.uri, s_ext.name); 3270 EXPECT_EQ(e_ext.uri, s_ext.name);
3273 } 3271 }
3274 } 3272 }
3275 } 3273 }
3276 } 3274 }
3277 3275
3278 // Disable receive extensions. 3276 // Disable receive extensions.
3279 channel_->SetRecvParameters(cricket::AudioRecvParameters()); 3277 channel_->SetRecvParameters(cricket::AudioRecvParameters());
3280 for (uint32 ssrc : ssrcs) { 3278 for (uint32_t ssrc : ssrcs) {
3281 const auto* s = call_.GetAudioReceiveStream(ssrc); 3279 const auto* s = call_.GetAudioReceiveStream(ssrc);
3282 EXPECT_NE(nullptr, s); 3280 EXPECT_NE(nullptr, s);
3283 EXPECT_EQ(0, s->GetConfig().rtp.extensions.size()); 3281 EXPECT_EQ(0, s->GetConfig().rtp.extensions.size());
3284 } 3282 }
3285 } 3283 }
3286 3284
3287 TEST_F(WebRtcVoiceEngineTestFake, DeliverAudioPacket_Call) { 3285 TEST_F(WebRtcVoiceEngineTestFake, DeliverAudioPacket_Call) {
3288 // Test that packets are forwarded to the Call when configured accordingly. 3286 // Test that packets are forwarded to the Call when configured accordingly.
3289 const uint32 kAudioSsrc = 1; 3287 const uint32_t kAudioSsrc = 1;
3290 rtc::Buffer kPcmuPacket(kPcmuFrame, sizeof(kPcmuFrame)); 3288 rtc::Buffer kPcmuPacket(kPcmuFrame, sizeof(kPcmuFrame));
3291 static const unsigned char kRtcp[] = { 3289 static const unsigned char kRtcp[] = {
3292 0x80, 0xc9, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 3290 0x80, 0xc9, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02,
3293 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 3291 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
3294 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 3292 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
3295 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 3293 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
3296 }; 3294 };
3297 rtc::Buffer kRtcpPacket(kRtcp, sizeof(kRtcp)); 3295 rtc::Buffer kRtcpPacket(kRtcp, sizeof(kRtcp));
3298 3296
3299 EXPECT_TRUE(SetupEngine()); 3297 EXPECT_TRUE(SetupEngine());
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
3525 cricket::WebRtcVoiceEngine engine; 3523 cricket::WebRtcVoiceEngine engine;
3526 EXPECT_TRUE(engine.Init(rtc::Thread::Current())); 3524 EXPECT_TRUE(engine.Init(rtc::Thread::Current()));
3527 rtc::scoped_ptr<webrtc::Call> call( 3525 rtc::scoped_ptr<webrtc::Call> call(
3528 webrtc::Call::Create(webrtc::Call::Config())); 3526 webrtc::Call::Create(webrtc::Call::Config()));
3529 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(), 3527 cricket::WebRtcVoiceMediaChannel channel(&engine, cricket::AudioOptions(),
3530 call.get()); 3528 call.get());
3531 cricket::AudioRecvParameters parameters; 3529 cricket::AudioRecvParameters parameters;
3532 parameters.codecs = engine.codecs(); 3530 parameters.codecs = engine.codecs();
3533 EXPECT_TRUE(channel.SetRecvParameters(parameters)); 3531 EXPECT_TRUE(channel.SetRecvParameters(parameters));
3534 } 3532 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698