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

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

Issue 178153007: Avoid hitting the thread check when WebRtcAudioRenderer is going away. (Closed) Base URL: http://git.chromium.org/chromium/src.git@libjingle_get_stats
Patch Set: Created 6 years, 9 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 <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 232
233 // TODO(xians): Merge this interface with WebRtcAudioRendererSource. 233 // TODO(xians): Merge this interface with WebRtcAudioRendererSource.
234 // The reason why we could not do it today is that WebRtcAudioRendererSource 234 // The reason why we could not do it today is that WebRtcAudioRendererSource
235 // gets the data by pulling, while the data is pushed into 235 // gets the data by pulling, while the data is pushed into
236 // WebRtcPlayoutDataSource::Sink. 236 // WebRtcPlayoutDataSource::Sink.
237 class WebRtcPlayoutDataSource { 237 class WebRtcPlayoutDataSource {
238 public: 238 public:
239 class Sink { 239 class Sink {
240 public: 240 public:
241 // Callback to get the playout data. 241 // Callback to get the playout data.
242 // Called on the render audio thread.
242 virtual void OnPlayoutData(media::AudioBus* audio_bus, 243 virtual void OnPlayoutData(media::AudioBus* audio_bus,
243 int sample_rate, 244 int sample_rate,
244 int audio_delay_milliseconds) = 0; 245 int audio_delay_milliseconds) = 0;
246
247 // Callback to notify the sink that the source has changed.
248 // Called on the main render thread.
249 virtual void OnPlayoutDataSourceChanged() = 0;
250
245 protected: 251 protected:
246 virtual ~Sink() {} 252 virtual ~Sink() {}
247 }; 253 };
248 254
249 // Adds/Removes the sink of WebRtcAudioRendererSource to the ADM. 255 // Adds/Removes the sink of WebRtcAudioRendererSource to the ADM.
250 // These methods are used by the MediaStreamAudioProcesssor to get the 256 // These methods are used by the MediaStreamAudioProcesssor to get the
251 // rendered data for AEC. 257 // rendered data for AEC.
252 virtual void AddPlayoutSink(Sink* sink) = 0; 258 virtual void AddPlayoutSink(Sink* sink) = 0;
253 virtual void RemovePlayoutSink(Sink* sink) = 0; 259 virtual void RemovePlayoutSink(Sink* sink) = 0;
254 260
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 // Buffer used for temporary storage during render callback. 436 // Buffer used for temporary storage during render callback.
431 // It is only accessed by the audio render thread. 437 // It is only accessed by the audio render thread.
432 std::vector<int16> render_buffer_; 438 std::vector<int16> render_buffer_;
433 439
434 DISALLOW_COPY_AND_ASSIGN(WebRtcAudioDeviceImpl); 440 DISALLOW_COPY_AND_ASSIGN(WebRtcAudioDeviceImpl);
435 }; 441 };
436 442
437 } // namespace content 443 } // namespace content
438 444
439 #endif // CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_ 445 #endif // CONTENT_RENDERER_MEDIA_WEBRTC_AUDIO_DEVICE_IMPL_H_
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_audio_processor.cc ('k') | content/renderer/media/webrtc_audio_device_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698