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

Side by Side Diff: content/renderer/media/webrtc_audio_device_impl.h

Issue 2038053002: Change audio render thread checking to use new AudioRendererSink::BelongsToRendererThread() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Build fix. Rebase. Created 4 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_
6 #define CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_ 6 #define CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <list> 10 #include <list>
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 212
213 // TODO(xians): Merge this interface with WebRtcAudioRendererSource. 213 // TODO(xians): Merge this interface with WebRtcAudioRendererSource.
214 // The reason why we could not do it today is that WebRtcAudioRendererSource 214 // The reason why we could not do it today is that WebRtcAudioRendererSource
215 // gets the data by pulling, while the data is pushed into 215 // gets the data by pulling, while the data is pushed into
216 // WebRtcPlayoutDataSource::Sink. 216 // WebRtcPlayoutDataSource::Sink.
217 class WebRtcPlayoutDataSource { 217 class WebRtcPlayoutDataSource {
218 public: 218 public:
219 class Sink { 219 class Sink {
220 public: 220 public:
221 // Callback to get the playout data. 221 // Callback to get the playout data.
222 // Called on the render audio thread. 222 // Called on the audio render thread.
223 virtual void OnPlayoutData(media::AudioBus* audio_bus, 223 virtual void OnPlayoutData(media::AudioBus* audio_bus,
224 int sample_rate, 224 int sample_rate,
225 int audio_delay_milliseconds) = 0; 225 int audio_delay_milliseconds) = 0;
226 226
227 // Callback to notify the sink that the source has changed. 227 // Callback to notify the sink that the source has changed.
228 // Called on the main render thread. 228 // Called on the main render thread.
229 virtual void OnPlayoutDataSourceChanged() = 0; 229 virtual void OnPlayoutDataSourceChanged() = 0;
230 230
231 // Called to notify that the audio render thread has changed, and
232 // OnPlayoutData() will from now on be called on the new thread.
233 // Called on the new audio render thread.
234 virtual void OnRenderThreadChanged() = 0;
235
231 protected: 236 protected:
232 virtual ~Sink() {} 237 virtual ~Sink() {}
233 }; 238 };
234 239
235 // Adds/Removes the sink of WebRtcAudioRendererSource to the ADM. 240 // Adds/Removes the sink of WebRtcAudioRendererSource to the ADM.
236 // These methods are used by the MediaStreamAudioProcesssor to get the 241 // These methods are used by the MediaStreamAudioProcesssor to get the
237 // rendered data for AEC. 242 // rendered data for AEC.
238 virtual void AddPlayoutSink(Sink* sink) = 0; 243 virtual void AddPlayoutSink(Sink* sink) = 0;
239 virtual void RemovePlayoutSink(Sink* sink) = 0; 244 virtual void RemovePlayoutSink(Sink* sink) = 0;
240 245
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 // Buffer used for temporary storage during render callback. 404 // Buffer used for temporary storage during render callback.
400 // It is only accessed by the audio render thread. 405 // It is only accessed by the audio render thread.
401 std::vector<int16_t> render_buffer_; 406 std::vector<int16_t> render_buffer_;
402 407
403 DISALLOW_COPY_AND_ASSIGN(WebRtcAudioDeviceImpl); 408 DISALLOW_COPY_AND_ASSIGN(WebRtcAudioDeviceImpl);
404 }; 409 };
405 410
406 } // namespace content 411 } // namespace content
407 412
408 #endif // CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_ 413 #endif // CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698