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

Side by Side Diff: content/renderer/pepper/pepper_platform_audio_input.cc

Issue 2941773002: Added initial muted state to stream creation callback, to avoid races. (Closed)
Patch Set: Added mute information to DoCompleteCreation log message. Created 3 years, 6 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/renderer/pepper/pepper_platform_audio_input.h" 5 #include "content/renderer/pepper/pepper_platform_audio_input.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 client_ = NULL; 72 client_ = NULL;
73 io_task_runner_->PostTask( 73 io_task_runner_->PostTask(
74 FROM_HERE, 74 FROM_HERE,
75 base::Bind(&PepperPlatformAudioInput::ShutDownOnIOThread, this)); 75 base::Bind(&PepperPlatformAudioInput::ShutDownOnIOThread, this));
76 } 76 }
77 77
78 void PepperPlatformAudioInput::OnStreamCreated( 78 void PepperPlatformAudioInput::OnStreamCreated(
79 base::SharedMemoryHandle handle, 79 base::SharedMemoryHandle handle,
80 base::SyncSocket::Handle socket_handle, 80 base::SyncSocket::Handle socket_handle,
81 int length, 81 int length,
82 int total_segments) { 82 int total_segments,
83 bool initially_muted) {
83 #if defined(OS_WIN) 84 #if defined(OS_WIN)
84 DCHECK(handle.IsValid()); 85 DCHECK(handle.IsValid());
85 DCHECK(socket_handle); 86 DCHECK(socket_handle);
86 #else 87 #else
87 DCHECK(base::SharedMemory::IsHandleValid(handle)); 88 DCHECK(base::SharedMemory::IsHandleValid(handle));
88 DCHECK_NE(-1, socket_handle); 89 DCHECK_NE(-1, socket_handle);
89 #endif 90 #endif
90 DCHECK(length); 91 DCHECK(length);
91 // TODO(yzshen): Make use of circular buffer scheme. crbug.com/181449. 92 // TODO(yzshen): Make use of circular buffer scheme. crbug.com/181449.
92 DCHECK_EQ(1, total_segments); 93 DCHECK_EQ(1, total_segments);
93 94
94 if (base::ThreadTaskRunnerHandle::Get().get() != main_task_runner_.get()) { 95 if (base::ThreadTaskRunnerHandle::Get().get() != main_task_runner_.get()) {
95 // If shutdown has occurred, |client_| will be NULL and the handles will be 96 // If shutdown has occurred, |client_| will be NULL and the handles will be
96 // cleaned up on the main thread. 97 // cleaned up on the main thread.
97 main_task_runner_->PostTask( 98 main_task_runner_->PostTask(
98 FROM_HERE, base::Bind(&PepperPlatformAudioInput::OnStreamCreated, this, 99 FROM_HERE,
99 handle, socket_handle, length, total_segments)); 100 base::Bind(&PepperPlatformAudioInput::OnStreamCreated, this, handle,
101 socket_handle, length, total_segments, initially_muted));
100 } else { 102 } else {
101 // Must dereference the client only on the main thread. Shutdown may have 103 // Must dereference the client only on the main thread. Shutdown may have
102 // occurred while the request was in-flight, so we need to NULL check. 104 // occurred while the request was in-flight, so we need to NULL check.
103 if (client_) { 105 if (client_) {
104 client_->StreamCreated(handle, length, socket_handle); 106 client_->StreamCreated(handle, length, socket_handle);
105 } else { 107 } else {
106 // Clean up the handles. 108 // Clean up the handles.
107 base::SyncSocket temp_socket(socket_handle); 109 base::SyncSocket temp_socket(socket_handle);
108 base::SharedMemory temp_shared_memory(handle, false); 110 base::SharedMemory temp_shared_memory(handle, false);
109 } 111 }
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 PepperMediaDeviceManager* PepperPlatformAudioInput::GetMediaDeviceManager() { 278 PepperMediaDeviceManager* PepperPlatformAudioInput::GetMediaDeviceManager() {
277 DCHECK(main_task_runner_->BelongsToCurrentThread()); 279 DCHECK(main_task_runner_->BelongsToCurrentThread());
278 280
279 RenderFrameImpl* const render_frame = 281 RenderFrameImpl* const render_frame =
280 RenderFrameImpl::FromRoutingID(render_frame_id_); 282 RenderFrameImpl::FromRoutingID(render_frame_id_);
281 return render_frame ? 283 return render_frame ?
282 PepperMediaDeviceManager::GetForRenderFrame(render_frame).get() : NULL; 284 PepperMediaDeviceManager::GetForRenderFrame(render_frame).get() : NULL;
283 } 285 }
284 286
285 } // namespace content 287 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/pepper/pepper_platform_audio_input.h ('k') | media/audio/audio_input_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698