OLD | NEW |
---|---|
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" |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
124 | 124 |
125 private: | 125 private: |
126 base::ThreadChecker thread_checker_; | 126 base::ThreadChecker thread_checker_; |
127 const scoped_refptr<MediaStreamAudioRenderer> delegate_; | 127 const scoped_refptr<MediaStreamAudioRenderer> delegate_; |
128 const scoped_refptr<webrtc::MediaStreamInterface> media_stream_; | 128 const scoped_refptr<webrtc::MediaStreamInterface> media_stream_; |
129 bool started_; | 129 bool started_; |
130 WebRtcAudioRenderer::PlayingState playing_state_; | 130 WebRtcAudioRenderer::PlayingState playing_state_; |
131 OnPlayStateChanged on_play_state_changed_; | 131 OnPlayStateChanged on_play_state_changed_; |
132 }; | 132 }; |
133 | 133 |
134 // Returns either AudioParameters::NO_EFFECTS or AudioParameters::DUCKING | |
135 // depending on whether or not an input element is currently open with | |
136 // ducking enabled. | |
137 int GetCurrentDuckingFlag(int render_frame_id) { | |
138 RenderFrameImpl* const frame = | |
139 RenderFrameImpl::FromRoutingID(render_frame_id); | |
140 MediaStreamDispatcher* const dispatcher = frame ? | |
141 frame->GetMediaStreamDispatcher() : NULL; | |
142 if (dispatcher && dispatcher->IsAudioDuckingActive()) { | |
143 return media::AudioParameters::DUCKING; | |
144 } | |
145 | |
146 return media::AudioParameters::NO_EFFECTS; | |
147 } | |
148 | |
149 } // namespace | 134 } // namespace |
150 | 135 |
151 int WebRtcAudioRenderer::GetOptimalBufferSize(int sample_rate, | 136 int WebRtcAudioRenderer::GetOptimalBufferSize(int sample_rate, |
152 int hardware_buffer_size) { | 137 int hardware_buffer_size) { |
153 // Use native hardware buffer size as default. On Windows, we strive to open | 138 // Use native hardware buffer size as default. On Windows, we strive to open |
154 // up using this native hardware buffer size to achieve best | 139 // up using this native hardware buffer size to achieve best |
155 // possible performance and to ensure that no FIFO is needed on the browser | 140 // possible performance and to ensure that no FIFO is needed on the browser |
156 // side to match the client request. That is why there is no #if case for | 141 // side to match the client request. That is why there is no #if case for |
157 // Windows below. | 142 // Windows below. |
158 int frames_per_buffer = hardware_buffer_size; | 143 int frames_per_buffer = hardware_buffer_size; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
193 session_id_(session_id), | 178 session_id_(session_id), |
194 signaling_thread_(signaling_thread), | 179 signaling_thread_(signaling_thread), |
195 media_stream_(media_stream), | 180 media_stream_(media_stream), |
196 source_(NULL), | 181 source_(NULL), |
197 play_ref_count_(0), | 182 play_ref_count_(0), |
198 start_ref_count_(0), | 183 start_ref_count_(0), |
199 audio_delay_milliseconds_(0), | 184 audio_delay_milliseconds_(0), |
200 fifo_delay_milliseconds_(0), | 185 fifo_delay_milliseconds_(0), |
201 sink_params_(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, | 186 sink_params_(media::AudioParameters::AUDIO_PCM_LOW_LATENCY, |
202 media::CHANNEL_LAYOUT_STEREO, sample_rate, 16, | 187 media::CHANNEL_LAYOUT_STEREO, sample_rate, 16, |
203 frames_per_buffer, | 188 frames_per_buffer, 0), |
DaleCurtis
2015/08/27 16:23:34
Just delete, the 1-less constructor defaults this
tommi (sloooow) - chröme
2015/08/28 07:33:33
Done.
| |
204 GetCurrentDuckingFlag(source_render_frame_id)), | |
205 render_callback_count_(0) { | 189 render_callback_count_(0) { |
206 WebRtcLogMessage(base::StringPrintf( | 190 WebRtcLogMessage(base::StringPrintf( |
207 "WAR::WAR. source_render_frame_id=%d" | 191 "WAR::WAR. source_render_frame_id=%d" |
208 ", session_id=%d, sample_rate=%d, frames_per_buffer=%d, effects=%i", | 192 ", session_id=%d, sample_rate=%d, frames_per_buffer=%d, effects=%i", |
209 source_render_frame_id, session_id, sample_rate, frames_per_buffer, | 193 source_render_frame_id, session_id, sample_rate, frames_per_buffer, |
210 sink_params_.effects())); | 194 sink_params_.effects())); |
211 } | 195 } |
212 | 196 |
213 WebRtcAudioRenderer::~WebRtcAudioRenderer() { | 197 WebRtcAudioRenderer::~WebRtcAudioRenderer() { |
214 DCHECK(thread_checker_.CalledOnValidThread()); | 198 DCHECK(thread_checker_.CalledOnValidThread()); |
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
569 if (RemovePlayingState(source, state)) | 553 if (RemovePlayingState(source, state)) |
570 EnterPauseState(); | 554 EnterPauseState(); |
571 } else if (AddPlayingState(source, state)) { | 555 } else if (AddPlayingState(source, state)) { |
572 EnterPlayState(); | 556 EnterPlayState(); |
573 } | 557 } |
574 UpdateSourceVolume(source); | 558 UpdateSourceVolume(source); |
575 } | 559 } |
576 } | 560 } |
577 | 561 |
578 } // namespace content | 562 } // namespace content |
OLD | NEW |