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

Side by Side Diff: remoting/protocol/webrtc_audio_sink_adapter.h

Issue 2650633003: Fix threading issues in the audio pipeline for WebRTC remoting protocol. (Closed)
Patch Set: . Created 3 years, 11 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 REMOTING_PROTOCOL_WEBRTC_AUDIO_SINK_ADAPTER_H_ 5 #ifndef REMOTING_PROTOCOL_WEBRTC_AUDIO_SINK_ADAPTER_H_
6 #define REMOTING_PROTOCOL_WEBRTC_AUDIO_SINK_ADAPTER_H_ 6 #define REMOTING_PROTOCOL_WEBRTC_AUDIO_SINK_ADAPTER_H_
7 7
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/weak_ptr.h" 9 #include "base/memory/weak_ptr.h"
10 #include "base/threading/thread_task_runner_handle.h"
10 #include "third_party/webrtc/api/mediastreaminterface.h" 11 #include "third_party/webrtc/api/mediastreaminterface.h"
11 12
13 namespace base {
14 class SingleThreadTaskRunner;
15 } // namespace base
16
12 namespace remoting { 17 namespace remoting {
13 namespace protocol { 18 namespace protocol {
14 19
15 class AudioStub; 20 class AudioStub;
16 21
17 class WebrtcAudioSinkAdapter : public webrtc::AudioTrackSinkInterface { 22 class WebrtcAudioSinkAdapter : public webrtc::AudioTrackSinkInterface {
18 public: 23 public:
19 WebrtcAudioSinkAdapter(scoped_refptr<webrtc::MediaStreamInterface> stream, 24 WebrtcAudioSinkAdapter(scoped_refptr<webrtc::MediaStreamInterface> stream,
20 base::WeakPtr<AudioStub> audio_stub); 25 base::WeakPtr<AudioStub> audio_stub);
21 ~WebrtcAudioSinkAdapter() override; 26 ~WebrtcAudioSinkAdapter() override;
22 27
23 void OnData(const void* audio_data, 28 void OnData(const void* audio_data,
24 int bits_per_sample, 29 int bits_per_sample,
25 int sample_rate, 30 int sample_rate,
26 size_t number_of_channels, 31 size_t number_of_channels,
27 size_t number_of_frames) override; 32 size_t number_of_frames) override;
28 33
29 private: 34 private:
35 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
36 base::WeakPtr<AudioStub> audio_stub_;
30 scoped_refptr<webrtc::MediaStreamInterface> media_stream_; 37 scoped_refptr<webrtc::MediaStreamInterface> media_stream_;
31 scoped_refptr<webrtc::AudioTrackInterface> audio_track_; 38 scoped_refptr<webrtc::AudioTrackInterface> audio_track_;
32
33 base::WeakPtr<AudioStub> audio_stub_;
34 }; 39 };
35 40
36 } // namespace protocol 41 } // namespace protocol
37 } // namespace remoting 42 } // namespace remoting
38 43
39 #endif // REMOTING_PROTOCOL_WEBRTC_AUDIO_SINK_ADAPTER_H_ 44 #endif // REMOTING_PROTOCOL_WEBRTC_AUDIO_SINK_ADAPTER_H_
OLDNEW
« no previous file with comments | « remoting/protocol/webrtc_audio_module.cc ('k') | remoting/protocol/webrtc_audio_sink_adapter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698