Chromium Code Reviews

Side by Side Diff: content/browser/renderer_host/media/audio_renderer_host.cc

Issue 9442005: Clean up audio-related utility functions to compute buffer sizes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase ToT Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | | 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 "content/browser/renderer_host/media/audio_renderer_host.h" 5 #include "content/browser/renderer_host/media/audio_renderer_host.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/process.h" 9 #include "base/process.h"
10 #include "base/shared_memory.h" 10 #include "base/shared_memory.h"
(...skipping 181 matching lines...)
192 192
193 return handled; 193 return handled;
194 } 194 }
195 195
196 void AudioRendererHost::OnCreateStream( 196 void AudioRendererHost::OnCreateStream(
197 int stream_id, const AudioParameters& params) { 197 int stream_id, const AudioParameters& params) {
198 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 198 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
199 DCHECK(LookupById(stream_id) == NULL); 199 DCHECK(LookupById(stream_id) == NULL);
200 200
201 AudioParameters audio_params(params); 201 AudioParameters audio_params(params);
202 DCHECK_GT(audio_params.samples_per_packet, 0);
202 203
203 // Select the hardware packet size if not specified.
204 if (!audio_params.samples_per_packet) {
205 audio_params.samples_per_packet =
206 media::SelectSamplesPerPacket(audio_params.sample_rate);
207 }
208 uint32 packet_size = audio_params.GetPacketSize(); 204 uint32 packet_size = audio_params.GetPacketSize();
209 205
210 scoped_ptr<AudioEntry> entry(new AudioEntry()); 206 scoped_ptr<AudioEntry> entry(new AudioEntry());
211 207
212 // Create the shared memory and share with the renderer process. 208 // Create the shared memory and share with the renderer process.
213 uint32 shared_memory_size = 209 uint32 shared_memory_size =
214 media::TotalSharedMemorySizeInBytes(packet_size); 210 media::TotalSharedMemorySizeInBytes(packet_size);
215 if (!entry->shared_memory.CreateAndMapAnonymous(shared_memory_size)) { 211 if (!entry->shared_memory.CreateAndMapAnonymous(shared_memory_size)) {
216 // If creation of shared memory failed then send an error message. 212 // If creation of shared memory failed then send an error message.
217 SendErrorMessage(stream_id); 213 SendErrorMessage(stream_id);
(...skipping 170 matching lines...)
388 } 384 }
389 return NULL; 385 return NULL;
390 } 386 }
391 387
392 content::MediaObserver* AudioRendererHost::GetMediaObserver() { 388 content::MediaObserver* AudioRendererHost::GetMediaObserver() {
393 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 389 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
394 if (!media_observer_) 390 if (!media_observer_)
395 media_observer_ = resource_context_->GetMediaObserver(); 391 media_observer_ = resource_context_->GetMediaObserver();
396 return media_observer_; 392 return media_observer_;
397 } 393 }
OLDNEW

Powered by Google App Engine