Chromium Code Reviews| Index: content/renderer/media/remote_media_stream_impl.h |
| diff --git a/content/renderer/media/remote_media_stream_impl.h b/content/renderer/media/remote_media_stream_impl.h |
| index bcecd62d6e913676cf69f5c598aea796a8e596f7..91084e401d1f6a7ce33a25f83800504ebc8a5eb2 100644 |
| --- a/content/renderer/media/remote_media_stream_impl.h |
| +++ b/content/renderer/media/remote_media_stream_impl.h |
| @@ -8,8 +8,8 @@ |
| #include "base/basictypes.h" |
| #include "base/compiler_specific.h" |
| #include "base/memory/ref_counted.h" |
| -#include "base/memory/scoped_vector.h" |
| -#include "base/threading/non_thread_safe.h" |
| +#include "base/memory/scoped_ptr.h" |
| +#include "base/single_thread_task_runner.h" |
| #include "content/common/content_export.h" |
| #include "third_party/libjingle/source/talk/app/webrtc/mediastreaminterface.h" |
| #include "third_party/WebKit/public/platform/WebMediaStream.h" |
| @@ -18,29 +18,47 @@ |
| namespace content { |
| -class RemoteMediaStreamTrackAdapter; |
| +class RemoteAudioTrackAdapter; |
| +class RemoteVideoTrackAdapter; |
| // RemoteMediaStreamImpl serves as a container and glue between remote webrtc |
| // MediaStreams and WebKit MediaStreams. For each remote MediaStream received |
| // on a PeerConnection a RemoteMediaStreamImpl instance is created and |
| // owned by RtcPeerConnection. |
| class CONTENT_EXPORT RemoteMediaStreamImpl |
| - : NON_EXPORTED_BASE(public webrtc::ObserverInterface), |
| - NON_EXPORTED_BASE(public base::NonThreadSafe) { |
| + : NON_EXPORTED_BASE(public webrtc::ObserverInterface) { |
| public: |
| - explicit RemoteMediaStreamImpl( |
| + RemoteMediaStreamImpl( |
| + const scoped_refptr<base::SingleThreadTaskRunner>& main_thread, |
| webrtc::MediaStreamInterface* webrtc_stream); |
| ~RemoteMediaStreamImpl() override; |
| const blink::WebMediaStream& webkit_stream() { return webkit_stream_; } |
| + const scoped_refptr<webrtc::MediaStreamInterface>& webrtc_stream() { |
| + return webrtc_stream_; |
| + } |
| private: |
| + typedef std::vector<scoped_refptr<RemoteAudioTrackAdapter>> |
| + RemoteAudioTrackAdapters; |
| + typedef std::vector<scoped_refptr<RemoteVideoTrackAdapter>> |
| + RemoteVideoTrackAdapters; |
| + |
| + void InitializeOnWebKitThread(const std::string& label); |
|
perkj_chrome
2014/10/30 12:42:35
I am a bit confused by the naming here.
I thought
tommi (sloooow) - chröme
2014/10/30 20:37:36
Changed to InitializeOnMainThread()
|
| + |
| // webrtc::ObserverInterface implementation. |
| void OnChanged() override; |
| - scoped_refptr<webrtc::MediaStreamInterface> webrtc_stream_; |
| - ScopedVector<RemoteMediaStreamTrackAdapter> video_track_observers_; |
| - ScopedVector<RemoteMediaStreamTrackAdapter> audio_track_observers_; |
| + void OnChangedOnMainThread( |
| + scoped_ptr<RemoteAudioTrackAdapters> audio_tracks, |
| + scoped_ptr<RemoteVideoTrackAdapters> video_tracks); |
| + |
| + const scoped_refptr<base::SingleThreadTaskRunner> main_thread_; |
| + const scoped_refptr<base::SingleThreadTaskRunner> signaling_thread_; |
| + const scoped_refptr<webrtc::MediaStreamInterface> webrtc_stream_; |
| + |
| + RemoteVideoTrackAdapters video_track_observers_; |
| + RemoteAudioTrackAdapters audio_track_observers_; |
| blink::WebMediaStream webkit_stream_; |
| DISALLOW_COPY_AND_ASSIGN(RemoteMediaStreamImpl); |