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

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

Issue 6628020: Cleaning up src/media to be consistent with static versus anonymous namespaces. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src
Patch Set: fix namespaces Created 9 years, 9 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/file_util.h" 10 #include "base/file_util.h"
11 #include "base/path_service.h" 11 #include "base/path_service.h"
12 #include "base/sync_socket.h" 12 #include "base/sync_socket.h"
13 #include "media/audio/audio_io.h" 13 #include "media/audio/audio_io.h"
14 #include "media/audio/audio_manager.h" 14 #include "media/audio/audio_manager.h"
15 #include "media/audio/simple_sources.h" 15 #include "media/audio/simple_sources.h"
16 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 18
19 using ::testing::_; 19 using ::testing::_;
20 using ::testing::AnyNumber; 20 using ::testing::AnyNumber;
21 using ::testing::DoAll; 21 using ::testing::DoAll;
22 using ::testing::Field; 22 using ::testing::Field;
23 using ::testing::InSequence; 23 using ::testing::InSequence;
24 using ::testing::NiceMock; 24 using ::testing::NiceMock;
25 using ::testing::NotNull; 25 using ::testing::NotNull;
26 using ::testing::Return; 26 using ::testing::Return;
27 27
28 namespace { 28 static const wchar_t kAudioFile1_16b_m_16K[]
29
30 const wchar_t kAudioFile1_16b_m_16K[]
31 = L"media\\test\\data\\sweep02_16b_mono_16KHz.raw"; 29 = L"media\\test\\data\\sweep02_16b_mono_16KHz.raw";
32 30
33 // This class allows to find out if the callbacks are occurring as 31 // This class allows to find out if the callbacks are occurring as
34 // expected and if any error has been reported. 32 // expected and if any error has been reported.
35 class TestSourceBasic : public AudioOutputStream::AudioSourceCallback { 33 class TestSourceBasic : public AudioOutputStream::AudioSourceCallback {
36 public: 34 public:
37 explicit TestSourceBasic() 35 explicit TestSourceBasic()
38 : callback_count_(0), 36 : callback_count_(0),
39 had_error_(0) { 37 had_error_(0) {
40 } 38 }
(...skipping 21 matching lines...) Expand all
62 60
63 void set_error(bool error) { 61 void set_error(bool error) {
64 had_error_ += error ? 1 : 0; 62 had_error_ += error ? 1 : 0;
65 } 63 }
66 64
67 private: 65 private:
68 int callback_count_; 66 int callback_count_;
69 int had_error_; 67 int had_error_;
70 }; 68 };
71 69
72 bool IsRunningHeadless() { 70 static bool IsRunningHeadless() {
73 return (0 != ::GetEnvironmentVariableW(L"CHROME_HEADLESS", NULL, 0)); 71 return (0 != ::GetEnvironmentVariableW(L"CHROME_HEADLESS", NULL, 0));
74 } 72 }
75 73
76 } // namespace.
77
78 const int kNumBuffers = 3; 74 const int kNumBuffers = 3;
79 // Specializes TestSourceBasic to detect that the AudioStream is using 75 // Specializes TestSourceBasic to detect that the AudioStream is using
80 // triple buffering correctly. 76 // triple buffering correctly.
81 class TestSourceTripleBuffer : public TestSourceBasic { 77 class TestSourceTripleBuffer : public TestSourceBasic {
82 public: 78 public:
83 TestSourceTripleBuffer() { 79 TestSourceTripleBuffer() {
84 buffer_address_[0] = NULL; 80 buffer_address_[0] = NULL;
85 buffer_address_[1] = NULL; 81 buffer_address_[1] = NULL;
86 buffer_address_[2] = NULL; 82 buffer_address_[2] = NULL;
87 } 83 }
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 Field(&AudioBuffersState::pending_bytes, 0))) 607 Field(&AudioBuffersState::pending_bytes, 0)))
612 .Times(AnyNumber()) 608 .Times(AnyNumber())
613 .WillRepeatedly(Return(0)); 609 .WillRepeatedly(Return(0));
614 610
615 oas->Start(&source); 611 oas->Start(&source);
616 ::Sleep(500); 612 ::Sleep(500);
617 oas->Stop(); 613 oas->Stop();
618 oas->Close(); 614 oas->Close();
619 } 615 }
620 616
621 namespace {
622 // Simple source that uses a SyncSocket to retrieve the audio data 617 // Simple source that uses a SyncSocket to retrieve the audio data
623 // from a potentially remote thread. 618 // from a potentially remote thread.
624 class SyncSocketSource : public AudioOutputStream::AudioSourceCallback { 619 class SyncSocketSource : public AudioOutputStream::AudioSourceCallback {
625 public: 620 public:
626 explicit SyncSocketSource(base::SyncSocket* socket) 621 explicit SyncSocketSource(base::SyncSocket* socket)
627 : socket_(socket) {} 622 : socket_(socket) {}
628 623
629 ~SyncSocketSource() { 624 ~SyncSocketSource() {
630 delete socket_; 625 delete socket_;
631 } 626 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 break; 671 break;
677 if ((times > 0) && (buffers_state.pending_bytes < 1000)) __debugbreak(); 672 if ((times > 0) && (buffers_state.pending_bytes < 1000)) __debugbreak();
678 ctx.socket->Send(&buffer[ix], ctx.packet_size); 673 ctx.socket->Send(&buffer[ix], ctx.packet_size);
679 ++times; 674 ++times;
680 } 675 }
681 676
682 delete buffer; 677 delete buffer;
683 return 0; 678 return 0;
684 } 679 }
685 680
686 } // namespace
687
688 // Test the basic operation of AudioOutputStream used with a SyncSocket. 681 // Test the basic operation of AudioOutputStream used with a SyncSocket.
689 // The emphasis is to test low-latency with buffers less than 100ms. With 682 // The emphasis is to test low-latency with buffers less than 100ms. With
690 // the waveout api it seems not possible to go below 50ms. In this test 683 // the waveout api it seems not possible to go below 50ms. In this test
691 // you should hear a continous 200Hz tone. 684 // you should hear a continous 200Hz tone.
692 // 685 //
693 // TODO(cpu): This actually sounds choppy most of the time. Fix it. 686 // TODO(cpu): This actually sounds choppy most of the time. Fix it.
694 TEST(WinAudioTest, SyncSocketBasic) { 687 TEST(WinAudioTest, SyncSocketBasic) {
695 if (IsRunningHeadless()) 688 if (IsRunningHeadless())
696 return; 689 return;
697 690
(...skipping 28 matching lines...) Expand all
726 719
727 oas->Start(&source); 720 oas->Start(&source);
728 721
729 ::WaitForSingleObject(thread, INFINITE); 722 ::WaitForSingleObject(thread, INFINITE);
730 ::CloseHandle(thread); 723 ::CloseHandle(thread);
731 delete sockets[1]; 724 delete sockets[1];
732 725
733 oas->Stop(); 726 oas->Stop();
734 oas->Close(); 727 oas->Close();
735 } 728 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698