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

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

Issue 1118573002: Apply automated fixits for Chrome clang plugin to media. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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/environment.h" 9 #include "base/environment.h"
10 #include "base/files/file_util.h" 10 #include "base/files/file_util.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 // Reads a test file from media/test/data directory. 74 // Reads a test file from media/test/data directory.
75 file_ = ReadTestDataFile(name); 75 file_ = ReadTestDataFile(name);
76 76
77 // Creates an array that will store delta times between callbacks. 77 // Creates an array that will store delta times between callbacks.
78 // The content of this array will be written to a text file at 78 // The content of this array will be written to a text file at
79 // destruction and can then be used for off-line analysis of the exact 79 // destruction and can then be used for off-line analysis of the exact
80 // timing of callbacks. The text file will be stored in media/test/data. 80 // timing of callbacks. The text file will be stored in media/test/data.
81 delta_times_.reset(new int[kMaxDeltaSamples]); 81 delta_times_.reset(new int[kMaxDeltaSamples]);
82 } 82 }
83 83
84 virtual ~ReadFromFileAudioSource() { 84 ~ReadFromFileAudioSource() override {
85 // Get complete file path to output file in directory containing 85 // Get complete file path to output file in directory containing
86 // media_unittests.exe. 86 // media_unittests.exe.
87 base::FilePath file_name; 87 base::FilePath file_name;
88 EXPECT_TRUE(PathService::Get(base::DIR_EXE, &file_name)); 88 EXPECT_TRUE(PathService::Get(base::DIR_EXE, &file_name));
89 file_name = file_name.AppendASCII(kDeltaTimeMsFileName); 89 file_name = file_name.AppendASCII(kDeltaTimeMsFileName);
90 90
91 EXPECT_TRUE(!text_file_); 91 EXPECT_TRUE(!text_file_);
92 text_file_ = base::OpenFile(file_name, "wt"); 92 text_file_ = base::OpenFile(file_name, "wt");
93 DLOG_IF(ERROR, !text_file_) << "Failed to open log file."; 93 DLOG_IF(ERROR, !text_file_) << "Failed to open log file.";
94 94
95 // Write the array which contains delta times to a text file. 95 // Write the array which contains delta times to a text file.
96 size_t elements_written = 0; 96 size_t elements_written = 0;
97 while (elements_written < elements_to_write_) { 97 while (elements_written < elements_to_write_) {
98 fprintf(text_file_, "%d\n", delta_times_[elements_written]); 98 fprintf(text_file_, "%d\n", delta_times_[elements_written]);
99 ++elements_written; 99 ++elements_written;
100 } 100 }
101 101
102 base::CloseFile(text_file_); 102 base::CloseFile(text_file_);
103 } 103 }
104 104
105 // AudioOutputStream::AudioSourceCallback implementation. 105 // AudioOutputStream::AudioSourceCallback implementation.
106 virtual int OnMoreData(AudioBus* audio_bus, 106 int OnMoreData(AudioBus* audio_bus, uint32 total_bytes_delay) override {
107 uint32 total_bytes_delay) {
108 // Store time difference between two successive callbacks in an array. 107 // Store time difference between two successive callbacks in an array.
109 // These values will be written to a file in the destructor. 108 // These values will be written to a file in the destructor.
110 const base::TimeTicks now_time = base::TimeTicks::Now(); 109 const base::TimeTicks now_time = base::TimeTicks::Now();
111 const int diff = (now_time - previous_call_time_).InMilliseconds(); 110 const int diff = (now_time - previous_call_time_).InMilliseconds();
112 previous_call_time_ = now_time; 111 previous_call_time_ = now_time;
113 if (elements_to_write_ < kMaxDeltaSamples) { 112 if (elements_to_write_ < kMaxDeltaSamples) {
114 delta_times_[elements_to_write_] = diff; 113 delta_times_[elements_to_write_] = diff;
115 ++elements_to_write_; 114 ++elements_to_write_;
116 } 115 }
117 116
118 int max_size = 117 int max_size =
119 audio_bus->frames() * audio_bus->channels() * kBitsPerSample / 8; 118 audio_bus->frames() * audio_bus->channels() * kBitsPerSample / 8;
120 119
121 // Use samples read from a data file and fill up the audio buffer 120 // Use samples read from a data file and fill up the audio buffer
122 // provided to us in the callback. 121 // provided to us in the callback.
123 if (pos_ + static_cast<int>(max_size) > file_size()) 122 if (pos_ + static_cast<int>(max_size) > file_size())
124 max_size = file_size() - pos_; 123 max_size = file_size() - pos_;
125 int frames = max_size / (audio_bus->channels() * kBitsPerSample / 8); 124 int frames = max_size / (audio_bus->channels() * kBitsPerSample / 8);
126 if (max_size) { 125 if (max_size) {
127 audio_bus->FromInterleaved( 126 audio_bus->FromInterleaved(
128 file_->data() + pos_, frames, kBitsPerSample / 8); 127 file_->data() + pos_, frames, kBitsPerSample / 8);
129 pos_ += max_size; 128 pos_ += max_size;
130 } 129 }
131 return frames; 130 return frames;
132 } 131 }
133 132
134 virtual void OnError(AudioOutputStream* stream) {} 133 void OnError(AudioOutputStream* stream) override {}
135 134
136 int file_size() { return file_->data_size(); } 135 int file_size() { return file_->data_size(); }
137 136
138 private: 137 private:
139 scoped_refptr<DecoderBuffer> file_; 138 scoped_refptr<DecoderBuffer> file_;
140 scoped_ptr<int[]> delta_times_; 139 scoped_ptr<int[]> delta_times_;
141 int pos_; 140 int pos_;
142 base::TimeTicks previous_call_time_; 141 base::TimeTicks previous_call_time_;
143 FILE* text_file_; 142 FILE* text_file_;
144 size_t elements_to_write_; 143 size_t elements_to_write_;
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
614 613
615 aos->Start(&source); 614 aos->Start(&source);
616 loop.PostDelayedTask(FROM_HERE, base::MessageLoop::QuitClosure(), 615 loop.PostDelayedTask(FROM_HERE, base::MessageLoop::QuitClosure(),
617 TestTimeouts::action_timeout()); 616 TestTimeouts::action_timeout());
618 loop.Run(); 617 loop.Run();
619 aos->Stop(); 618 aos->Stop();
620 aos->Close(); 619 aos->Close();
621 } 620 }
622 621
623 } // namespace media 622 } // namespace media
OLDNEW
« no previous file with comments | « media/audio/win/audio_low_latency_input_win_unittest.cc ('k') | media/audio/win/audio_output_win_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698