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

Side by Side Diff: content/renderer/media/media_stream_impl.cc

Issue 10382048: create WebMediaPlayer based on URL (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "content/renderer/media/media_stream_impl.h" 5 #include "content/renderer/media/media_stream_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/metrics/histogram.h" 11 #include "base/metrics/histogram.h"
12 #include "base/synchronization/waitable_event.h" 12 #include "base/synchronization/waitable_event.h"
13 #include "base/utf_string_conversions.h" 13 #include "base/utf_string_conversions.h"
14 #include "content/renderer/media/capture_video_decoder.h" 14 #include "content/renderer/media/capture_video_decoder.h"
15 #include "content/renderer/media/media_stream_dependency_factory.h" 15 #include "content/renderer/media/media_stream_dependency_factory.h"
16 #include "content/renderer/media/media_stream_dispatcher.h" 16 #include "content/renderer/media/media_stream_dispatcher.h"
17 #include "content/renderer/media/peer_connection_handler.h" 17 #include "content/renderer/media/peer_connection_handler.h"
18 #include "content/renderer/media/peer_connection_handler_jsep.h" 18 #include "content/renderer/media/peer_connection_handler_jsep.h"
19 #include "content/renderer/media/video_capture_impl_manager.h" 19 #include "content/renderer/media/video_capture_impl_manager.h"
20 #include "content/renderer/media/video_capture_module_impl.h" 20 #include "content/renderer/media/video_capture_module_impl.h"
21 #include "content/renderer/media/video_capture_relay.h"
21 #include "content/renderer/media/webrtc_audio_device_impl.h" 22 #include "content/renderer/media/webrtc_audio_device_impl.h"
22 #include "content/renderer/p2p/ipc_network_manager.h" 23 #include "content/renderer/p2p/ipc_network_manager.h"
23 #include "content/renderer/p2p/ipc_socket_factory.h" 24 #include "content/renderer/p2p/ipc_socket_factory.h"
24 #include "content/renderer/p2p/socket_dispatcher.h" 25 #include "content/renderer/p2p/socket_dispatcher.h"
25 #include "jingle/glue/thread_wrapper.h" 26 #include "jingle/glue/thread_wrapper.h"
26 #include "media/base/message_loop_factory.h" 27 #include "media/base/message_loop_factory.h"
27 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" 28 #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h"
28 #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaStreamRegistr y.h" 29 #include "third_party/WebKit/Source/WebKit/chromium/public/WebMediaStreamRegistr y.h"
29 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h" 30 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityOrigin.h"
30 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebMediaStre amComponent.h" 31 #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebMediaStre amComponent.h"
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 security_origin); 280 security_origin);
280 } 281 }
281 282
282 void MediaStreamImpl::cancelUserMediaRequest( 283 void MediaStreamImpl::cancelUserMediaRequest(
283 const WebKit::WebUserMediaRequest& user_media_request) { 284 const WebKit::WebUserMediaRequest& user_media_request) {
284 DCHECK(CalledOnValidThread()); 285 DCHECK(CalledOnValidThread());
285 // TODO(grunell): Implement. 286 // TODO(grunell): Implement.
286 NOTIMPLEMENTED(); 287 NOTIMPLEMENTED();
287 } 288 }
288 289
290 bool MediaStreamImpl::IsMediaStream(const WebKit::WebURL url) {
291 DCHECK(CalledOnValidThread());
292 WebKit::WebMediaStreamDescriptor descriptor(
293 WebKit::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url));
294 if (descriptor.isNull())
295 return false; // This is not a valid stream.
296
297 return GetLocalMediaStream(descriptor); // ||
298 //FindPeerConnectionByStream(descriptor);
299 }
300
301 scoped_refptr<webkit_media::VideoFrameProvider>
302 MediaStreamImpl::GetVideoFrameProvider(
303 const GURL& url, const base::Closure& paint_cb) {
304 DCHECK(CalledOnValidThread());
305 VLOG(1) << "MediaStreamImpl::GetVideoFrameProvider 1, url = " << url.spec();
306 WebKit::WebMediaStreamDescriptor descriptor(
307 WebKit::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url));
308 if (descriptor.isNull())
309 return NULL; // This is not a valid stream.
310 VLOG(1) << "MediaStreamImpl::GetVideoFrameProvider 2";
311
312 scoped_refptr<webkit_media::VideoFrameProvider> video_frame_provider;
313 webrtc::LocalMediaStreamInterface* local_stream =
314 GetLocalMediaStream(descriptor);
315 if (local_stream) {
316 if (!local_stream->video_tracks() ||
317 local_stream->video_tracks()->count() == 0)
318 return NULL;
319
320 int video_session_id =
321 media_stream_dispatcher_->video_session_id(local_stream->label(), 0);
322 media::VideoCaptureCapability capability;
323 capability.width = kVideoCaptureWidth;
324 capability.height = kVideoCaptureHeight;
325 capability.frame_rate = kVideoCaptureFramePerSecond;
326 capability.expected_capture_delay = 0;
327 capability.color = media::VideoCaptureCapability::kI420;
328 capability.interlaced = false;
329 video_frame_provider = new VideoCaptureRelay(
330 video_session_id,
331 vc_manager_.get(),
332 capability,
333 paint_cb);
334 }
335 VLOG(1) << "MediaStreamImpl::GetVideoFrameProvider 3";
336 return video_frame_provider;
337 }
338
289 scoped_refptr<media::VideoDecoder> MediaStreamImpl::GetVideoDecoder( 339 scoped_refptr<media::VideoDecoder> MediaStreamImpl::GetVideoDecoder(
290 const GURL& url, 340 const GURL& url,
291 media::MessageLoopFactory* message_loop_factory) { 341 media::MessageLoopFactory* message_loop_factory) {
292 DCHECK(CalledOnValidThread()); 342 DCHECK(CalledOnValidThread());
293 WebKit::WebMediaStreamDescriptor descriptor( 343 WebKit::WebMediaStreamDescriptor descriptor(
294 WebKit::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); 344 WebKit::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url));
295 if (descriptor.isNull()) 345 if (descriptor.isNull())
296 return NULL; // This is not a valid stream. 346 return NULL; // This is not a valid stream.
297 347
298 webrtc::LocalMediaStreamInterface* local_stream = 348 webrtc::LocalMediaStreamInterface* local_stream =
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 MediaStreamImpl::VideoRendererWrapper::VideoRendererWrapper( 654 MediaStreamImpl::VideoRendererWrapper::VideoRendererWrapper(
605 RTCVideoDecoder* decoder) 655 RTCVideoDecoder* decoder)
606 : rtc_video_decoder_(decoder) { 656 : rtc_video_decoder_(decoder) {
607 } 657 }
608 658
609 MediaStreamImpl::VideoRendererWrapper::~VideoRendererWrapper() { 659 MediaStreamImpl::VideoRendererWrapper::~VideoRendererWrapper() {
610 } 660 }
611 661
612 MediaStreamImpl::LocalMediaStreamInfo::~LocalMediaStreamInfo() { 662 MediaStreamImpl::LocalMediaStreamInfo::~LocalMediaStreamInfo() {
613 } 663 }
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_impl.h ('k') | content/renderer/media/video_capture_relay.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698