| OLD | NEW | 
|---|
| 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 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ | 5 #ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ | 
| 6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ | 6 #define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ | 
| 7 | 7 | 
| 8 #include <map> | 8 #include <map> | 
| 9 #include <string> | 9 #include <string> | 
| 10 | 10 | 
| 11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" | 
| 12 #include "base/compiler_specific.h" | 12 #include "base/compiler_specific.h" | 
| 13 #include "base/memory/ref_counted.h" | 13 #include "base/memory/ref_counted.h" | 
| 14 #include "base/memory/scoped_ptr.h" | 14 #include "base/memory/scoped_ptr.h" | 
| 15 #include "base/memory/weak_ptr.h" | 15 #include "base/memory/weak_ptr.h" | 
| 16 #include "base/threading/non_thread_safe.h" | 16 #include "base/threading/non_thread_safe.h" | 
| 17 #include "content/common/content_export.h" | 17 #include "content/common/content_export.h" | 
| 18 #include "content/public/renderer/render_view_observer.h" | 18 #include "content/public/renderer/render_view_observer.h" | 
| 19 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h" | 19 #include "content/renderer/media/media_stream_dispatcher_eventhandler.h" | 
| 20 #include "third_party/libjingle/source/talk/app/webrtc/mediastream.h" | 20 #include "third_party/libjingle/source/talk/app/webrtc/mediastream.h" | 
| 21 #include "third_party/WebKit/Source/WebKit/chromium/public/WebUserMediaClient.h" | 21 #include "third_party/WebKit/Source/WebKit/chromium/public/WebUserMediaClient.h" | 
| 22 #include "third_party/WebKit/Source/WebKit/chromium/public/WebUserMediaRequest.h
     " | 22 #include "third_party/WebKit/Source/WebKit/chromium/public/WebUserMediaRequest.h
     " | 
| 23 #include "webkit/media/media_stream_client.h" | 23 #include "webkit/media/media_stream_client.h" | 
| 24 | 24 | 
|  | 25 namespace media { | 
|  | 26 class RtcAudioRenderer; | 
|  | 27 } | 
|  | 28 | 
| 25 namespace WebKit { | 29 namespace WebKit { | 
| 26 class WebMediaStreamDescriptor; | 30 class WebMediaStreamDescriptor; | 
| 27 } | 31 } | 
| 28 | 32 | 
| 29 namespace content { | 33 namespace content { | 
| 30 class MediaStreamDependencyFactory; | 34 class MediaStreamDependencyFactory; | 
| 31 class MediaStreamDispatcher; | 35 class MediaStreamDispatcher; | 
| 32 class VideoCaptureImplManager; | 36 class VideoCaptureImplManager; | 
|  | 37 class WebRtcAudioRenderer; | 
| 33 | 38 | 
| 34 // MediaStreamImpl is a delegate for the Media Stream API messages used by | 39 // MediaStreamImpl is a delegate for the Media Stream API messages used by | 
| 35 // WebKit. It ties together WebKit, native PeerConnection in libjingle and | 40 // WebKit. It ties together WebKit, native PeerConnection in libjingle and | 
| 36 // MediaStreamManager (via MediaStreamDispatcher and MediaStreamDispatcherHost) | 41 // MediaStreamManager (via MediaStreamDispatcher and MediaStreamDispatcherHost) | 
| 37 // in the browser process. It must be created, called and destroyed on the | 42 // in the browser process. It must be created, called and destroyed on the | 
| 38 // render thread. | 43 // render thread. | 
| 39 // MediaStreamImpl have weak pointers to a MediaStreamDispatcher. | 44 // MediaStreamImpl have weak pointers to a MediaStreamDispatcher. | 
| 40 class CONTENT_EXPORT MediaStreamImpl | 45 class CONTENT_EXPORT MediaStreamImpl | 
| 41     : public RenderViewObserver, | 46     : public RenderViewObserver, | 
| 42       NON_EXPORTED_BASE(public WebKit::WebUserMediaClient), | 47       NON_EXPORTED_BASE(public WebKit::WebUserMediaClient), | 
| (...skipping 26 matching lines...) Expand all  Loading... | 
| 69 | 74 | 
| 70   // webkit_media::MediaStreamClient implementation. | 75   // webkit_media::MediaStreamClient implementation. | 
| 71   virtual bool IsMediaStream(const GURL& url) OVERRIDE; | 76   virtual bool IsMediaStream(const GURL& url) OVERRIDE; | 
| 72   virtual scoped_refptr<webkit_media::VideoFrameProvider> GetVideoFrameProvider( | 77   virtual scoped_refptr<webkit_media::VideoFrameProvider> GetVideoFrameProvider( | 
| 73       const GURL& url, | 78       const GURL& url, | 
| 74       const base::Closure& error_cb, | 79       const base::Closure& error_cb, | 
| 75       const webkit_media::VideoFrameProvider::RepaintCB& repaint_cb) OVERRIDE; | 80       const webkit_media::VideoFrameProvider::RepaintCB& repaint_cb) OVERRIDE; | 
| 76   virtual scoped_refptr<media::VideoDecoder> GetVideoDecoder( | 81   virtual scoped_refptr<media::VideoDecoder> GetVideoDecoder( | 
| 77       const GURL& url, | 82       const GURL& url, | 
| 78       media::MessageLoopFactory* message_loop_factory) OVERRIDE; | 83       media::MessageLoopFactory* message_loop_factory) OVERRIDE; | 
|  | 84   virtual scoped_refptr<media::RtcAudioRenderer> GetAudioRenderer( | 
|  | 85       const GURL& url) OVERRIDE; | 
| 79 | 86 | 
| 80   // MediaStreamDispatcherEventHandler implementation. | 87   // MediaStreamDispatcherEventHandler implementation. | 
| 81   virtual void OnStreamGenerated( | 88   virtual void OnStreamGenerated( | 
| 82       int request_id, | 89       int request_id, | 
| 83       const std::string& label, | 90       const std::string& label, | 
| 84       const media_stream::StreamDeviceInfoArray& audio_array, | 91       const media_stream::StreamDeviceInfoArray& audio_array, | 
| 85       const media_stream::StreamDeviceInfoArray& video_array) OVERRIDE; | 92       const media_stream::StreamDeviceInfoArray& video_array) OVERRIDE; | 
| 86   virtual void OnStreamGenerationFailed(int request_id) OVERRIDE; | 93   virtual void OnStreamGenerationFailed(int request_id) OVERRIDE; | 
| 87   virtual void OnDevicesEnumerated( | 94   virtual void OnDevicesEnumerated( | 
| 88       int request_id, | 95       int request_id, | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 138   CreateRemoteVideoFrameProvider( | 145   CreateRemoteVideoFrameProvider( | 
| 139       webrtc::MediaStreamInterface* stream, | 146       webrtc::MediaStreamInterface* stream, | 
| 140       const base::Closure& error_cb, | 147       const base::Closure& error_cb, | 
| 141       const webkit_media::VideoFrameProvider::RepaintCB& repaint_cb); | 148       const webkit_media::VideoFrameProvider::RepaintCB& repaint_cb); | 
| 142   scoped_refptr<media::VideoDecoder> CreateLocalVideoDecoder( | 149   scoped_refptr<media::VideoDecoder> CreateLocalVideoDecoder( | 
| 143       webrtc::MediaStreamInterface* stream, | 150       webrtc::MediaStreamInterface* stream, | 
| 144       media::MessageLoopFactory* message_loop_factory); | 151       media::MessageLoopFactory* message_loop_factory); | 
| 145   scoped_refptr<media::VideoDecoder> CreateRemoteVideoDecoder( | 152   scoped_refptr<media::VideoDecoder> CreateRemoteVideoDecoder( | 
| 146       webrtc::MediaStreamInterface* stream, | 153       webrtc::MediaStreamInterface* stream, | 
| 147       media::MessageLoopFactory* message_loop_factory); | 154       media::MessageLoopFactory* message_loop_factory); | 
|  | 155   scoped_refptr<WebRtcAudioRenderer> CreateRemoteAudioRenderer( | 
|  | 156         webrtc::MediaStreamInterface* stream); | 
| 148 | 157 | 
| 149   // Weak ref to a MediaStreamDependencyFactory, owned by the RenderThread. | 158   // Weak ref to a MediaStreamDependencyFactory, owned by the RenderThread. | 
| 150   // It's valid for the lifetime of RenderThread. | 159   // It's valid for the lifetime of RenderThread. | 
| 151   MediaStreamDependencyFactory* dependency_factory_; | 160   MediaStreamDependencyFactory* dependency_factory_; | 
| 152 | 161 | 
| 153   // media_stream_dispatcher_ is a weak reference, owned by RenderView. It's | 162   // media_stream_dispatcher_ is a weak reference, owned by RenderView. It's | 
| 154   // valid for the lifetime of RenderView. | 163   // valid for the lifetime of RenderView. | 
| 155   MediaStreamDispatcher* media_stream_dispatcher_; | 164   MediaStreamDispatcher* media_stream_dispatcher_; | 
| 156 | 165 | 
| 157   scoped_refptr<VideoCaptureImplManager> vc_manager_; | 166   scoped_refptr<VideoCaptureImplManager> vc_manager_; | 
| 158 | 167 | 
| 159   MediaRequestMap user_media_requests_; | 168   MediaRequestMap user_media_requests_; | 
| 160   LocalNativeStreamMap local_media_streams_; | 169   LocalNativeStreamMap local_media_streams_; | 
| 161 | 170 | 
| 162   DISALLOW_COPY_AND_ASSIGN(MediaStreamImpl); | 171   DISALLOW_COPY_AND_ASSIGN(MediaStreamImpl); | 
| 163 }; | 172 }; | 
| 164 | 173 | 
| 165 }  // namespace content | 174 }  // namespace content | 
| 166 | 175 | 
| 167 #endif  // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ | 176 #endif  // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_IMPL_H_ | 
| OLD | NEW | 
|---|