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

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

Issue 525313002: SyncSocket Transit Descriptor - refactoring (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nits done - Prelanding checks Created 6 years, 3 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 "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/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/memory/shared_memory.h" 9 #include "base/memory/shared_memory.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 if (!entry->shared_memory()->ShareToProcess(PeerHandle(), 231 if (!entry->shared_memory()->ShareToProcess(PeerHandle(),
232 &foreign_memory_handle)) { 232 &foreign_memory_handle)) {
233 // If we failed to map and share the shared memory then close the audio 233 // If we failed to map and share the shared memory then close the audio
234 // stream and send an error message. 234 // stream and send an error message.
235 ReportErrorAndClose(entry->stream_id()); 235 ReportErrorAndClose(entry->stream_id());
236 return; 236 return;
237 } 237 }
238 238
239 AudioSyncReader* reader = static_cast<AudioSyncReader*>(entry->reader()); 239 AudioSyncReader* reader = static_cast<AudioSyncReader*>(entry->reader());
240 240
241 #if defined(OS_WIN) 241 base::SyncSocket::TransitDescriptor socket_descriptor;
242 base::SyncSocket::Handle foreign_socket_handle;
243 #else
244 base::FileDescriptor foreign_socket_handle;
245 #endif
246 242
247 // If we failed to prepare the sync socket for the renderer then we fail 243 // If we failed to prepare the sync socket for the renderer then we fail
248 // the construction of audio stream. 244 // the construction of audio stream.
249 if (!reader->PrepareForeignSocketHandle(PeerHandle(), 245 if (!reader->PrepareForeignSocket(PeerHandle(), &socket_descriptor)) {
250 &foreign_socket_handle)) {
251 ReportErrorAndClose(entry->stream_id()); 246 ReportErrorAndClose(entry->stream_id());
252 return; 247 return;
253 } 248 }
254 249
255 Send(new AudioMsg_NotifyStreamCreated( 250 Send(new AudioMsg_NotifyStreamCreated(
256 entry->stream_id(), 251 entry->stream_id(), foreign_memory_handle, socket_descriptor,
257 foreign_memory_handle,
258 foreign_socket_handle,
259 entry->shared_memory()->requested_size())); 252 entry->shared_memory()->requested_size()));
260 } 253 }
261 254
262 void AudioRendererHost::DoNotifyStreamStateChanged(int stream_id, 255 void AudioRendererHost::DoNotifyStreamStateChanged(int stream_id,
263 bool is_playing) { 256 bool is_playing) {
264 DCHECK_CURRENTLY_ON(BrowserThread::IO); 257 DCHECK_CURRENTLY_ON(BrowserThread::IO);
265 258
266 AudioEntry* const entry = LookupById(stream_id); 259 AudioEntry* const entry = LookupById(stream_id);
267 if (!entry) 260 if (!entry)
268 return; 261 return;
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 489
497 AudioEntryMap::const_iterator i = audio_entries_.find(stream_id); 490 AudioEntryMap::const_iterator i = audio_entries_.find(stream_id);
498 return i != audio_entries_.end() ? i->second : NULL; 491 return i != audio_entries_.end() ? i->second : NULL;
499 } 492 }
500 493
501 bool AudioRendererHost::HasActiveAudio() { 494 bool AudioRendererHost::HasActiveAudio() {
502 return !base::AtomicRefCountIsZero(&num_playing_streams_); 495 return !base::AtomicRefCountIsZero(&num_playing_streams_);
503 } 496 }
504 497
505 } // namespace content 498 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698