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

Side by Side Diff: content/renderer/media/webrtc_audio_renderer.cc

Issue 364123002: [Cross-Site Isolation] Migrate entire MediaStream verticals to be per-RenderFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: It's random enough. + REBASE Created 6 years, 5 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 | 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/renderer/media/webrtc_audio_renderer.h" 5 #include "content/renderer/media/webrtc_audio_renderer.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
11 #include "content/renderer/media/audio_device_factory.h" 11 #include "content/renderer/media/audio_device_factory.h"
12 #include "content/renderer/media/media_stream_dispatcher.h" 12 #include "content/renderer/media/media_stream_dispatcher.h"
13 #include "content/renderer/media/webrtc_audio_device_impl.h" 13 #include "content/renderer/media/webrtc_audio_device_impl.h"
14 #include "content/renderer/media/webrtc_logging.h" 14 #include "content/renderer/media/webrtc_logging.h"
15 #include "content/renderer/render_view_impl.h" 15 #include "content/renderer/render_frame_impl.h"
16 #include "media/audio/audio_output_device.h" 16 #include "media/audio/audio_output_device.h"
17 #include "media/audio/audio_parameters.h" 17 #include "media/audio/audio_parameters.h"
18 #include "media/audio/sample_rates.h" 18 #include "media/audio/sample_rates.h"
19 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" 19 #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h"
20 #include "third_party/libjingle/source/talk/media/base/audiorenderer.h" 20 #include "third_party/libjingle/source/talk/media/base/audiorenderer.h"
21 21
22 22
23 #if defined(OS_WIN) 23 #if defined(OS_WIN)
24 #include "base/win/windows_version.h" 24 #include "base/win/windows_version.h"
25 #include "media/audio/win/core_audio_util_win.h" 25 #include "media/audio/win/core_audio_util_win.h"
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 const scoped_refptr<MediaStreamAudioRenderer> delegate_; 179 const scoped_refptr<MediaStreamAudioRenderer> delegate_;
180 const scoped_refptr<webrtc::MediaStreamInterface> media_stream_; 180 const scoped_refptr<webrtc::MediaStreamInterface> media_stream_;
181 bool started_; 181 bool started_;
182 WebRtcAudioRenderer::PlayingState playing_state_; 182 WebRtcAudioRenderer::PlayingState playing_state_;
183 OnPlayStateChanged on_play_state_changed_; 183 OnPlayStateChanged on_play_state_changed_;
184 }; 184 };
185 185
186 // Returns either AudioParameters::NO_EFFECTS or AudioParameters::DUCKING 186 // Returns either AudioParameters::NO_EFFECTS or AudioParameters::DUCKING
187 // depending on whether or not an input element is currently open with 187 // depending on whether or not an input element is currently open with
188 // ducking enabled. 188 // ducking enabled.
189 int GetCurrentDuckingFlag(int render_view_id) { 189 int GetCurrentDuckingFlag(int render_frame_id) {
190 RenderViewImpl* render_view = RenderViewImpl::FromRoutingID(render_view_id); 190 RenderFrameImpl* const frame =
191 if (render_view && render_view->media_stream_dispatcher() && 191 RenderFrameImpl::FromRoutingID(render_frame_id);
192 render_view->media_stream_dispatcher()->IsAudioDuckingActive()) { 192 MediaStreamDispatcher* const dispatcher = frame ?
193 frame->GetMediaStreamDispatcher() : NULL;
194 if (dispatcher && dispatcher->IsAudioDuckingActive()) {
193 return media::AudioParameters::DUCKING; 195 return media::AudioParameters::DUCKING;
194 } 196 }
195 197
196 return media::AudioParameters::NO_EFFECTS; 198 return media::AudioParameters::NO_EFFECTS;
197 } 199 }
198 200
199 } // namespace 201 } // namespace
200 202
201 WebRtcAudioRenderer::WebRtcAudioRenderer( 203 WebRtcAudioRenderer::WebRtcAudioRenderer(
202 const scoped_refptr<webrtc::MediaStreamInterface>& media_stream, 204 const scoped_refptr<webrtc::MediaStreamInterface>& media_stream,
203 int source_render_view_id, 205 int source_render_view_id,
204 int source_render_frame_id, 206 int source_render_frame_id,
205 int session_id, 207 int session_id,
206 int sample_rate, 208 int sample_rate,
207 int frames_per_buffer) 209 int frames_per_buffer)
208 : state_(UNINITIALIZED), 210 : state_(UNINITIALIZED),
209 source_render_view_id_(source_render_view_id), 211 source_render_view_id_(source_render_view_id),
210 source_render_frame_id_(source_render_frame_id), 212 source_render_frame_id_(source_render_frame_id),
211 session_id_(session_id), 213 session_id_(session_id),
212 media_stream_(media_stream), 214 media_stream_(media_stream),
213 source_(NULL), 215 source_(NULL),
214 play_ref_count_(0), 216 play_ref_count_(0),
215 start_ref_count_(0), 217 start_ref_count_(0),
216 audio_delay_milliseconds_(0), 218 audio_delay_milliseconds_(0),
217 fifo_delay_milliseconds_(0), 219 fifo_delay_milliseconds_(0),
218 sink_params_(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, 220 sink_params_(media::AudioParameters::AUDIO_PCM_LOW_LATENCY,
219 media::CHANNEL_LAYOUT_STEREO, 0, sample_rate, 16, 221 media::CHANNEL_LAYOUT_STEREO, 0, sample_rate, 16,
220 frames_per_buffer, 222 frames_per_buffer,
221 GetCurrentDuckingFlag(source_render_view_id)) { 223 GetCurrentDuckingFlag(source_render_frame_id)) {
222 WebRtcLogMessage(base::StringPrintf( 224 WebRtcLogMessage(base::StringPrintf(
223 "WAR::WAR. source_render_view_id=%d" 225 "WAR::WAR. source_render_view_id=%d"
224 ", session_id=%d, sample_rate=%d, frames_per_buffer=%d, effects=%i", 226 ", session_id=%d, sample_rate=%d, frames_per_buffer=%d, effects=%i",
225 source_render_view_id, 227 source_render_view_id,
226 session_id, 228 session_id,
227 sample_rate, 229 sample_rate,
228 frames_per_buffer, 230 frames_per_buffer,
229 sink_params_.effects())); 231 sink_params_.effects()));
230 } 232 }
231 233
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 if (RemovePlayingState(source, state)) 603 if (RemovePlayingState(source, state))
602 EnterPauseState(); 604 EnterPauseState();
603 } else if (AddPlayingState(source, state)) { 605 } else if (AddPlayingState(source, state)) {
604 EnterPlayState(); 606 EnterPlayState();
605 } 607 }
606 UpdateSourceVolume(source); 608 UpdateSourceVolume(source);
607 } 609 }
608 } 610 }
609 611
610 } // namespace content 612 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_impl_unittest.cc ('k') | content/renderer/media/webrtc_local_audio_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698