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

Side by Side Diff: content/renderer/media/webrtc_audio_device_unittest.cc

Issue 11166002: Plumb render view ID from audio-related code in renderer through IPCs to AudioRendererHost in brows… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 8 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/environment.h" 5 #include "base/environment.h"
6 #include "base/test/test_timeouts.h" 6 #include "base/test/test_timeouts.h"
7 #include "content/renderer/media/audio_hardware.h" 7 #include "content/renderer/media/audio_hardware.h"
8 #include "content/renderer/media/webrtc_audio_device_impl.h" 8 #include "content/renderer/media/webrtc_audio_device_impl.h"
9 #include "content/test/webrtc_audio_device_test.h" 9 #include "content/test/webrtc_audio_device_test.h"
10 #include "media/audio/audio_manager.h" 10 #include "media/audio/audio_manager.h"
11 #include "media/audio/audio_util.h" 11 #include "media/audio/audio_util.h"
12 #include "testing/gmock/include/gmock/gmock.h" 12 #include "testing/gmock/include/gmock/gmock.h"
13 #include "third_party/webrtc/voice_engine/include/voe_audio_processing.h" 13 #include "third_party/webrtc/voice_engine/include/voe_audio_processing.h"
14 #include "third_party/webrtc/voice_engine/include/voe_base.h" 14 #include "third_party/webrtc/voice_engine/include/voe_base.h"
15 #include "third_party/webrtc/voice_engine/include/voe_external_media.h" 15 #include "third_party/webrtc/voice_engine/include/voe_external_media.h"
16 #include "third_party/webrtc/voice_engine/include/voe_file.h" 16 #include "third_party/webrtc/voice_engine/include/voe_file.h"
17 #include "third_party/webrtc/voice_engine/include/voe_network.h" 17 #include "third_party/webrtc/voice_engine/include/voe_network.h"
18 18
19 using testing::_; 19 using testing::_;
20 using testing::AnyNumber; 20 using testing::AnyNumber;
21 using testing::InvokeWithoutArgs; 21 using testing::InvokeWithoutArgs;
22 using testing::Return; 22 using testing::Return;
23 using testing::StrEq; 23 using testing::StrEq;
24 24
25 namespace { 25 namespace {
26 26
27 const int kRenderViewId = -2;
28
27 class AudioUtil : public AudioUtilInterface { 29 class AudioUtil : public AudioUtilInterface {
28 public: 30 public:
29 AudioUtil() {} 31 AudioUtil() {}
30 32
31 virtual int GetAudioHardwareSampleRate() OVERRIDE { 33 virtual int GetAudioHardwareSampleRate() OVERRIDE {
32 return media::GetAudioHardwareSampleRate(); 34 return media::GetAudioHardwareSampleRate();
33 } 35 }
34 virtual int GetAudioInputHardwareSampleRate( 36 virtual int GetAudioInputHardwareSampleRate(
35 const std::string& device_id) OVERRIDE { 37 const std::string& device_id) OVERRIDE {
36 return media::GetAudioInputHardwareSampleRate(device_id); 38 return media::GetAudioInputHardwareSampleRate(device_id);
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 invalid_rates[i])); 219 invalid_rates[i]));
218 } 220 }
219 } 221 }
220 222
221 // Basic test that instantiates and initializes an instance of 223 // Basic test that instantiates and initializes an instance of
222 // WebRtcAudioDeviceImpl. 224 // WebRtcAudioDeviceImpl.
223 TEST_F(WebRTCAudioDeviceTest, Construct) { 225 TEST_F(WebRTCAudioDeviceTest, Construct) {
224 AudioUtilNoHardware audio_util(48000, 48000, media::CHANNEL_LAYOUT_MONO); 226 AudioUtilNoHardware audio_util(48000, 48000, media::CHANNEL_LAYOUT_MONO);
225 SetAudioUtilCallback(&audio_util); 227 SetAudioUtilCallback(&audio_util);
226 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 228 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
227 new WebRtcAudioDeviceImpl()); 229 new WebRtcAudioDeviceImpl(kRenderViewId));
228 230
229 webrtc_audio_device->SetSessionId(1); 231 webrtc_audio_device->SetSessionId(1);
230 232
231 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create()); 233 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
232 ASSERT_TRUE(engine.valid()); 234 ASSERT_TRUE(engine.valid());
233 235
234 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get()); 236 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
235 int err = base->Init(webrtc_audio_device); 237 int err = base->Init(webrtc_audio_device);
236 EXPECT_EQ(0, err); 238 EXPECT_EQ(0, err);
237 EXPECT_EQ(0, base->Terminate()); 239 EXPECT_EQ(0, base->Terminate());
(...skipping 20 matching lines...) Expand all
258 EXPECT_CALL(media_observer(), 260 EXPECT_CALL(media_observer(),
259 OnSetAudioStreamStatus(_, 1, StrEq("created"))).Times(1); 261 OnSetAudioStreamStatus(_, 1, StrEq("created"))).Times(1);
260 EXPECT_CALL(media_observer(), 262 EXPECT_CALL(media_observer(),
261 OnSetAudioStreamPlaying(_, 1, true)).Times(1); 263 OnSetAudioStreamPlaying(_, 1, true)).Times(1);
262 EXPECT_CALL(media_observer(), 264 EXPECT_CALL(media_observer(),
263 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1); 265 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1);
264 EXPECT_CALL(media_observer(), 266 EXPECT_CALL(media_observer(),
265 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 267 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
266 268
267 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 269 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
268 new WebRtcAudioDeviceImpl()); 270 new WebRtcAudioDeviceImpl(kRenderViewId));
269 webrtc_audio_device->SetSessionId(1); 271 webrtc_audio_device->SetSessionId(1);
270 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create()); 272 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
271 ASSERT_TRUE(engine.valid()); 273 ASSERT_TRUE(engine.valid());
272 274
273 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get()); 275 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
274 ASSERT_TRUE(base.valid()); 276 ASSERT_TRUE(base.valid());
275 int err = base->Init(webrtc_audio_device); 277 int err = base->Init(webrtc_audio_device);
276 ASSERT_EQ(0, err); 278 ASSERT_EQ(0, err);
277 279
278 int ch = base->CreateChannel(); 280 int ch = base->CreateChannel();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 SetAudioUtilCallback(&audio_util); 328 SetAudioUtilCallback(&audio_util);
327 329
328 if (!HardwareSampleRatesAreValid()) 330 if (!HardwareSampleRatesAreValid())
329 return; 331 return;
330 332
331 // TODO(tommi): extend MediaObserver and MockMediaObserver with support 333 // TODO(tommi): extend MediaObserver and MockMediaObserver with support
332 // for new interfaces, like OnSetAudioStreamRecording(). When done, add 334 // for new interfaces, like OnSetAudioStreamRecording(). When done, add
333 // EXPECT_CALL() macros here. 335 // EXPECT_CALL() macros here.
334 336
335 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 337 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
336 new WebRtcAudioDeviceImpl()); 338 new WebRtcAudioDeviceImpl(kRenderViewId));
337 webrtc_audio_device->SetSessionId(1); 339 webrtc_audio_device->SetSessionId(1);
338 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create()); 340 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
339 ASSERT_TRUE(engine.valid()); 341 ASSERT_TRUE(engine.valid());
340 342
341 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get()); 343 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
342 ASSERT_TRUE(base.valid()); 344 ASSERT_TRUE(base.valid());
343 int err = base->Init(webrtc_audio_device); 345 int err = base->Init(webrtc_audio_device);
344 ASSERT_EQ(0, err); 346 ASSERT_EQ(0, err);
345 347
346 int ch = base->CreateChannel(); 348 int ch = base->CreateChannel();
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 EXPECT_CALL(media_observer(), 404 EXPECT_CALL(media_observer(),
403 OnSetAudioStreamStatus(_, 1, StrEq("created"))).Times(1); 405 OnSetAudioStreamStatus(_, 1, StrEq("created"))).Times(1);
404 EXPECT_CALL(media_observer(), 406 EXPECT_CALL(media_observer(),
405 OnSetAudioStreamPlaying(_, 1, true)).Times(1); 407 OnSetAudioStreamPlaying(_, 1, true)).Times(1);
406 EXPECT_CALL(media_observer(), 408 EXPECT_CALL(media_observer(),
407 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1); 409 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1);
408 EXPECT_CALL(media_observer(), 410 EXPECT_CALL(media_observer(),
409 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 411 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
410 412
411 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 413 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
412 new WebRtcAudioDeviceImpl()); 414 new WebRtcAudioDeviceImpl(kRenderViewId));
413 webrtc_audio_device->SetSessionId(1); 415 webrtc_audio_device->SetSessionId(1);
414 416
415 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create()); 417 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
416 ASSERT_TRUE(engine.valid()); 418 ASSERT_TRUE(engine.valid());
417 419
418 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get()); 420 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
419 ASSERT_TRUE(base.valid()); 421 ASSERT_TRUE(base.valid());
420 int err = base->Init(webrtc_audio_device); 422 int err = base->Init(webrtc_audio_device);
421 ASSERT_EQ(0, err); 423 ASSERT_EQ(0, err);
422 424
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 EXPECT_CALL(media_observer(), 472 EXPECT_CALL(media_observer(),
471 OnSetAudioStreamStatus(_, 1, StrEq("created"))); 473 OnSetAudioStreamStatus(_, 1, StrEq("created")));
472 EXPECT_CALL(media_observer(), 474 EXPECT_CALL(media_observer(),
473 OnSetAudioStreamPlaying(_, 1, true)); 475 OnSetAudioStreamPlaying(_, 1, true));
474 EXPECT_CALL(media_observer(), 476 EXPECT_CALL(media_observer(),
475 OnSetAudioStreamStatus(_, 1, StrEq("closed"))); 477 OnSetAudioStreamStatus(_, 1, StrEq("closed")));
476 EXPECT_CALL(media_observer(), 478 EXPECT_CALL(media_observer(),
477 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 479 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
478 480
479 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 481 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
480 new WebRtcAudioDeviceImpl()); 482 new WebRtcAudioDeviceImpl(kRenderViewId));
481 webrtc_audio_device->SetSessionId(1); 483 webrtc_audio_device->SetSessionId(1);
482 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create()); 484 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
483 ASSERT_TRUE(engine.valid()); 485 ASSERT_TRUE(engine.valid());
484 486
485 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get()); 487 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
486 ASSERT_TRUE(base.valid()); 488 ASSERT_TRUE(base.valid());
487 int err = base->Init(webrtc_audio_device); 489 int err = base->Init(webrtc_audio_device);
488 ASSERT_EQ(0, err); 490 ASSERT_EQ(0, err);
489 491
490 ScopedWebRTCPtr<webrtc::VoEAudioProcessing> audio_processing(engine.get()); 492 ScopedWebRTCPtr<webrtc::VoEAudioProcessing> audio_processing(engine.get());
(...skipping 20 matching lines...) Expand all
511 MessageLoop::QuitClosure(), 513 MessageLoop::QuitClosure(),
512 base::TimeDelta::FromSeconds(2)); 514 base::TimeDelta::FromSeconds(2));
513 message_loop_.Run(); 515 message_loop_.Run();
514 516
515 EXPECT_EQ(0, base->StopSend(ch)); 517 EXPECT_EQ(0, base->StopSend(ch));
516 EXPECT_EQ(0, base->StopPlayout(ch)); 518 EXPECT_EQ(0, base->StopPlayout(ch));
517 519
518 EXPECT_EQ(0, base->DeleteChannel(ch)); 520 EXPECT_EQ(0, base->DeleteChannel(ch));
519 EXPECT_EQ(0, base->Terminate()); 521 EXPECT_EQ(0, base->Terminate());
520 } 522 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698