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

Side by Side Diff: media/audio/win/audio_output_win_unittest.cc

Issue 1130753005: Get audio_unittests passing with h/w on windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: MTA -> STA Created 5 years, 7 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 // 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 <windows.h> 5 #include <windows.h>
6 #include <mmsystem.h> 6 #include <mmsystem.h>
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/base_paths.h" 9 #include "base/base_paths.h"
10 #include "base/memory/aligned_memory.h" 10 #include "base/memory/aligned_memory.h"
(...skipping 12 matching lines...) Expand all
23 using ::testing::_; 23 using ::testing::_;
24 using ::testing::AnyNumber; 24 using ::testing::AnyNumber;
25 using ::testing::DoAll; 25 using ::testing::DoAll;
26 using ::testing::Field; 26 using ::testing::Field;
27 using ::testing::Invoke; 27 using ::testing::Invoke;
28 using ::testing::InSequence; 28 using ::testing::InSequence;
29 using ::testing::NiceMock; 29 using ::testing::NiceMock;
30 using ::testing::NotNull; 30 using ::testing::NotNull;
31 using ::testing::Return; 31 using ::testing::Return;
32 32
33 using base::win::ScopedCOMInitializer;
34
35 namespace media { 33 namespace media {
36 34
37 static const wchar_t kAudioFile1_16b_m_16K[] 35 static const wchar_t kAudioFile1_16b_m_16K[]
38 = L"media\\test\\data\\sweep02_16b_mono_16KHz.raw"; 36 = L"media\\test\\data\\sweep02_16b_mono_16KHz.raw";
39 37
40 static int ClearData(AudioBus* audio_bus, uint32 total_bytes_delay) { 38 static int ClearData(AudioBus* audio_bus, uint32 total_bytes_delay) {
41 audio_bus->Zero(); 39 audio_bus->Zero();
42 return audio_bus->frames(); 40 return audio_bus->frames();
43 } 41 }
44 42
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 oas->Close(); 413 oas->Close();
416 } 414 }
417 415
418 // With the low latency mode, WASAPI is utilized by default for Vista and 416 // With the low latency mode, WASAPI is utilized by default for Vista and
419 // higher and Wave is used for XP and lower. It is possible to utilize a 417 // higher and Wave is used for XP and lower. It is possible to utilize a
420 // smaller buffer size for WASAPI than for Wave. 418 // smaller buffer size for WASAPI than for Wave.
421 TEST(WinAudioTest, PCMWaveStreamPlay200HzToneLowLatency) { 419 TEST(WinAudioTest, PCMWaveStreamPlay200HzToneLowLatency) {
422 scoped_ptr<AudioManager> audio_man(AudioManager::CreateForTesting()); 420 scoped_ptr<AudioManager> audio_man(AudioManager::CreateForTesting());
423 ABORT_AUDIO_TEST_IF_NOT(audio_man->HasAudioOutputDevices()); 421 ABORT_AUDIO_TEST_IF_NOT(audio_man->HasAudioOutputDevices());
424 422
425 // The WASAPI API requires a correct COM environment.
426 ScopedCOMInitializer com_init(ScopedCOMInitializer::kMTA);
427
428 // Use 10 ms buffer size for WASAPI and 50 ms buffer size for Wave. 423 // Use 10 ms buffer size for WASAPI and 50 ms buffer size for Wave.
429 // Take the existing native sample rate into account. 424 // Take the existing native sample rate into account.
430 const AudioParameters params = audio_man->GetDefaultOutputStreamParameters(); 425 const AudioParameters params = audio_man->GetDefaultOutputStreamParameters();
431 int sample_rate = params.sample_rate(); 426 int sample_rate = params.sample_rate();
432 uint32 samples_10_ms = sample_rate / 100; 427 uint32 samples_10_ms = sample_rate / 100;
433 int n = 1; 428 int n = 1;
434 (base::win::GetVersion() <= base::win::VERSION_XP) ? n = 5 : n = 1; 429 (base::win::GetVersion() <= base::win::VERSION_XP) ? n = 5 : n = 1;
435 AudioOutputStream* oas = audio_man->MakeAudioOutputStream( 430 AudioOutputStream* oas = audio_man->MakeAudioOutputStream(
436 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, 431 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY,
437 CHANNEL_LAYOUT_MONO, sample_rate, 432 CHANNEL_LAYOUT_MONO, sample_rate,
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 oas->Start(&source); 620 oas->Start(&source);
626 621
627 ::WaitForSingleObject(thread, INFINITE); 622 ::WaitForSingleObject(thread, INFINITE);
628 ::CloseHandle(thread); 623 ::CloseHandle(thread);
629 624
630 oas->Stop(); 625 oas->Stop();
631 oas->Close(); 626 oas->Close();
632 } 627 }
633 628
634 } // namespace media 629 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/win/audio_low_latency_output_win_unittest.cc ('k') | media/audio/win/core_audio_util_win_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698