Index: content/renderer/media/media_stream_impl.cc |
=================================================================== |
--- content/renderer/media/media_stream_impl.cc (revision 135772) |
+++ content/renderer/media/media_stream_impl.cc (working copy) |
@@ -18,6 +18,7 @@ |
#include "content/renderer/media/peer_connection_handler_jsep.h" |
#include "content/renderer/media/video_capture_impl_manager.h" |
#include "content/renderer/media/video_capture_module_impl.h" |
+#include "content/renderer/media/video_capture_relay.h" |
#include "content/renderer/media/webrtc_audio_device_impl.h" |
#include "content/renderer/p2p/ipc_network_manager.h" |
#include "content/renderer/p2p/ipc_socket_factory.h" |
@@ -286,6 +287,55 @@ |
NOTIMPLEMENTED(); |
} |
+bool MediaStreamImpl::IsMediaStream(const WebKit::WebURL url) { |
+ DCHECK(CalledOnValidThread()); |
+ WebKit::WebMediaStreamDescriptor descriptor( |
+ WebKit::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); |
+ if (descriptor.isNull()) |
+ return false; // This is not a valid stream. |
+ |
+ return GetLocalMediaStream(descriptor); // || |
+ //FindPeerConnectionByStream(descriptor); |
+} |
+ |
+scoped_refptr<webkit_media::VideoFrameProvider> |
+MediaStreamImpl::GetVideoFrameProvider( |
+ const GURL& url, const base::Closure& paint_cb) { |
+ DCHECK(CalledOnValidThread()); |
+VLOG(1) << "MediaStreamImpl::GetVideoFrameProvider 1, url = " << url.spec(); |
+ WebKit::WebMediaStreamDescriptor descriptor( |
+ WebKit::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); |
+ if (descriptor.isNull()) |
+ return NULL; // This is not a valid stream. |
+VLOG(1) << "MediaStreamImpl::GetVideoFrameProvider 2"; |
+ |
+ scoped_refptr<webkit_media::VideoFrameProvider> video_frame_provider; |
+ webrtc::LocalMediaStreamInterface* local_stream = |
+ GetLocalMediaStream(descriptor); |
+ if (local_stream) { |
+ if (!local_stream->video_tracks() || |
+ local_stream->video_tracks()->count() == 0) |
+ return NULL; |
+ |
+ int video_session_id = |
+ media_stream_dispatcher_->video_session_id(local_stream->label(), 0); |
+ media::VideoCaptureCapability capability; |
+ capability.width = kVideoCaptureWidth; |
+ capability.height = kVideoCaptureHeight; |
+ capability.frame_rate = kVideoCaptureFramePerSecond; |
+ capability.expected_capture_delay = 0; |
+ capability.color = media::VideoCaptureCapability::kI420; |
+ capability.interlaced = false; |
+ video_frame_provider = new VideoCaptureRelay( |
+ video_session_id, |
+ vc_manager_.get(), |
+ capability, |
+ paint_cb); |
+ } |
+VLOG(1) << "MediaStreamImpl::GetVideoFrameProvider 3"; |
+ return video_frame_provider; |
+} |
+ |
scoped_refptr<media::VideoDecoder> MediaStreamImpl::GetVideoDecoder( |
const GURL& url, |
media::MessageLoopFactory* message_loop_factory) { |