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

Side by Side Diff: media/audio/mac/audio_output_mac.cc

Issue 357004: SetVolume and GetVolume take one volume instead of separate left and right vo... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month 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
« no previous file with comments | « media/audio/mac/audio_output_mac.h ('k') | media/audio/mac/audio_output_mac_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "media/audio/mac/audio_manager_mac.h" 5 #include "media/audio/mac/audio_manager_mac.h"
6 #include "media/audio/mac/audio_output_mac.h" 6 #include "media/audio/mac/audio_output_mac.h"
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "media/audio/audio_util.h" 10 #include "media/audio/audio_util.h"
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 // queueing data, however at most one callback might still be in flight which 139 // queueing data, however at most one callback might still be in flight which
140 // could attempt to enqueue right after the next call. Rather that trying to 140 // could attempt to enqueue right after the next call. Rather that trying to
141 // use a lock we rely on the internal Mac queue lock so the enqueue might 141 // use a lock we rely on the internal Mac queue lock so the enqueue might
142 // succeed or might fail but it won't crash or leave the queue itself in an 142 // succeed or might fail but it won't crash or leave the queue itself in an
143 // inconsistent state. 143 // inconsistent state.
144 OSStatus err = AudioQueueStop(audio_queue_, true); 144 OSStatus err = AudioQueueStop(audio_queue_, true);
145 if (err != noErr) 145 if (err != noErr)
146 HandleError(err); 146 HandleError(err);
147 } 147 }
148 148
149 void PCMQueueOutAudioOutputStream::SetVolume(double left_level, 149 void PCMQueueOutAudioOutputStream::SetVolume(double volume) {
150 double ) {
151 if (!audio_queue_) 150 if (!audio_queue_)
152 return; 151 return;
153 volume_ = static_cast<float>(left_level); 152 volume_ = static_cast<float>(volume);
154 OSStatus err = AudioQueueSetParameter(audio_queue_, 153 OSStatus err = AudioQueueSetParameter(audio_queue_,
155 kAudioQueueParam_Volume, 154 kAudioQueueParam_Volume,
156 left_level); 155 volume);
157 if (err != noErr) { 156 if (err != noErr) {
158 HandleError(err); 157 HandleError(err);
159 } 158 }
160 } 159 }
161 160
162 void PCMQueueOutAudioOutputStream::GetVolume(double* left_level, 161 void PCMQueueOutAudioOutputStream::GetVolume(double* volume) {
163 double* right_level) {
164 if (!audio_queue_) 162 if (!audio_queue_)
165 return; 163 return;
166 *left_level = volume_; 164 *volume = volume_;
167 *right_level = volume_;
168 } 165 }
169 166
170 // Reorder PCM from AAC layout to Core Audio layout. 167 // Reorder PCM from AAC layout to Core Audio layout.
171 // TODO(fbarchard): Switch layout when ffmpeg is updated. 168 // TODO(fbarchard): Switch layout when ffmpeg is updated.
172 namespace { 169 namespace {
173 template<class Format> 170 template<class Format>
174 static void SwizzleLayout(Format* b, size_t filled) { 171 static void SwizzleLayout(Format* b, size_t filled) {
175 static const int kNumSurroundChannels = 6; 172 static const int kNumSurroundChannels = 6;
176 Format aac[kNumSurroundChannels]; 173 Format aac[kNumSurroundChannels];
177 for (size_t i = 0; i < filled; i += sizeof(aac), b += kNumSurroundChannels) { 174 for (size_t i = 0; i < filled; i += sizeof(aac), b += kNumSurroundChannels) {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 HandleError(err); 264 HandleError(err);
268 return; 265 return;
269 } 266 }
270 } 267 }
271 err = AudioQueueStart(audio_queue_, NULL); 268 err = AudioQueueStart(audio_queue_, NULL);
272 if (err != noErr) { 269 if (err != noErr) {
273 HandleError(err); 270 HandleError(err);
274 return; 271 return;
275 } 272 }
276 } 273 }
OLDNEW
« no previous file with comments | « media/audio/mac/audio_output_mac.h ('k') | media/audio/mac/audio_output_mac_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698