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); |