 Chromium Code Reviews
 Chromium Code Reviews Issue 9284020:
  Enabling usage of native PeerConnection v2 in libjingle.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src
    
  
    Issue 9284020:
  Enabling usage of native PeerConnection v2 in libjingle.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src| Index: content/renderer/media/media_stream_impl.h | 
| diff --git a/content/renderer/media/media_stream_impl.h b/content/renderer/media/media_stream_impl.h | 
| index 1b517a5db104a7d5e3872984fa3487c84520b703..369e6f204df2c3518b2b0b0111cac2ee31282410 100644 | 
| --- a/content/renderer/media/media_stream_impl.h | 
| +++ b/content/renderer/media/media_stream_impl.h | 
| @@ -19,6 +19,8 @@ | 
| #include "base/threading/thread.h" | 
| #include "content/common/content_export.h" | 
| #include "content/renderer/media/media_stream_dispatcher_eventhandler.h" | 
| +#include "third_party/libjingle/source/talk/app/webrtc/mediastream.h" | 
| +#include "third_party/libjingle/source/talk/base/scoped_ref_ptr.h" | 
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebUserMediaClient.h" | 
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebUserMediaRequest.h" | 
| #include "webkit/media/media_stream_client.h" | 
| @@ -33,10 +35,6 @@ class IpcPacketSocketFactory; | 
| class P2PSocketDispatcher; | 
| } | 
| -namespace cricket { | 
| -class WebRtcMediaEngine; | 
| -} | 
| - | 
| namespace talk_base { | 
| class Thread; | 
| } | 
| @@ -74,9 +72,8 @@ class CONTENT_EXPORT MediaStreamImpl | 
| virtual WebKit::WebPeerConnectionHandler* CreatePeerConnectionHandler( | 
| WebKit::WebPeerConnectionHandlerClient* client); | 
| virtual void ClosePeerConnection(); | 
| - | 
| - // Returns true if created successfully or already exists, false otherwise. | 
| - virtual bool SetVideoCaptureModule(const std::string& label); | 
| + virtual webrtc::MediaStreamTrackInterface* GetLocalMediaStreamTrack( | 
| + std::string label); | 
| 
tommi (sloooow) - chröme
2012/01/24 15:18:56
is this supposed to be by value and not by referen
 
Henrik Grunell
2012/01/26 13:03:16
No it's a miss. Changed to const ref.
 | 
| // WebKit::WebUserMediaClient implementation | 
| virtual void requestUserMedia( | 
| @@ -108,10 +105,24 @@ class CONTENT_EXPORT MediaStreamImpl | 
| private: | 
| FRIEND_TEST_ALL_PREFIXES(MediaStreamImplTest, Basic); | 
| + class VideoRendererWrapper : public webrtc::VideoRendererWrapperInterface { | 
| + public: | 
| + VideoRendererWrapper(); | 
| + virtual cricket::VideoRenderer* renderer() OVERRIDE; | 
| + void SetVideoDecoder(RTCVideoDecoder* decoder); | 
| + | 
| + protected: | 
| + virtual ~VideoRendererWrapper(); | 
| + | 
| + private: | 
| + scoped_refptr<RTCVideoDecoder> rtc_video_decoder_; | 
| + }; | 
| + | 
| void InitializeWorkerThread( | 
| talk_base::Thread** thread, | 
| base::WaitableEvent* event); | 
| void DeleteIpcNetworkManager(); | 
| + bool EnsurePeerConnectionFactory(); | 
| scoped_ptr<MediaStreamDependencyFactory> dependency_factory_; | 
| @@ -119,11 +130,6 @@ class CONTENT_EXPORT MediaStreamImpl | 
| // valid for the lifetime of RenderView. | 
| MediaStreamDispatcher* media_stream_dispatcher_; | 
| - // media_engine_ is owned by PeerConnectionFactory (which is owned by | 
| - // dependency_factory_) and is valid for the lifetime of | 
| - // PeerConnectionFactory. | 
| - cricket::WebRtcMediaEngine* media_engine_; | 
| - | 
| // p2p_socket_dispatcher_ is a weak reference, owned by RenderView. It's valid | 
| // for the lifetime of RenderView. | 
| content::P2PSocketDispatcher* p2p_socket_dispatcher_; | 
| @@ -140,7 +146,14 @@ class CONTENT_EXPORT MediaStreamImpl | 
| // TODO(grunell): Support several PeerConnectionsHandlers. | 
| PeerConnectionHandler* peer_connection_handler_; | 
| - scoped_refptr<RTCVideoDecoder> rtc_video_decoder_; | 
| + // We keep a list of the generated local tracks, so that we can add capture | 
| + // devices when generated and also use them for recording. | 
| + typedef talk_base::scoped_refptr<webrtc::MediaStreamTrackInterface> | 
| + MediaStreamTrackPtr; | 
| + typedef std::map<std::string, MediaStreamTrackPtr> MediaStreamTrackPtrMap; | 
| + MediaStreamTrackPtrMap local_tracks_; | 
| + | 
| + talk_base::scoped_refptr<VideoRendererWrapper> video_renderer_; | 
| scoped_refptr<base::MessageLoopProxy> message_loop_proxy_; | 
| // PeerConnection threads. signaling_thread_ is created from the | 
| @@ -153,15 +166,6 @@ class CONTENT_EXPORT MediaStreamImpl | 
| typedef std::map<int, WebKit::WebUserMediaRequest> MediaRequestMap; | 
| MediaRequestMap user_media_requests_; | 
| - std::list<std::string> stream_labels_; | 
| - | 
| - // Make sure we only create the video capture module once. This is also | 
| - // temporary and will be handled differently when several PeerConnections | 
| - // and/or streams is supported. | 
| - // TODO(grunell): This shall be removed or changed when native PeerConnection | 
| - // has been updated to closer follow the specification. | 
| - bool vcm_created_; | 
| - | 
| DISALLOW_COPY_AND_ASSIGN(MediaStreamImpl); | 
| }; |