Index: content/renderer/media/video_capture_impl_manager.h |
diff --git a/content/renderer/media/video_capture_impl_manager.h b/content/renderer/media/video_capture_impl_manager.h |
index e9422015b026bda6d3d41abc4398fed0aee1a34a..9b26b2047016f0ed0d2324442c24b70d94a5651f 100644 |
--- a/content/renderer/media/video_capture_impl_manager.h |
+++ b/content/renderer/media/video_capture_impl_manager.h |
@@ -13,14 +13,17 @@ |
#include <list> |
#include <map> |
+#include "base/memory/weak_ptr.h" |
#include "base/message_loop/message_loop_proxy.h" |
#include "base/threading/thread.h" |
#include "base/synchronization/lock.h" |
#include "content/common/content_export.h" |
#include "media/video/capture/video_capture.h" |
+#include "media/video/encoded_video_source.h" |
namespace content { |
+class RtcEncodingVideoCapturerFactory; |
class VideoCaptureImpl; |
class VideoCaptureMessageFilter; |
@@ -50,6 +53,11 @@ class CONTENT_EXPORT VideoCaptureImplManager |
return filter_.get(); |
} |
+ void set_encoding_capturer_factory(base::WeakPtr< |
+ RtcEncodingVideoCapturerFactory> encoding_capturer_factory) { |
+ encoding_capturer_factory_ = encoding_capturer_factory; |
+ } |
+ |
protected: |
virtual ~VideoCaptureImplManager(); |
@@ -74,6 +82,12 @@ class CONTENT_EXPORT VideoCaptureImplManager |
base::Thread thread_; |
scoped_refptr<base::MessageLoopProxy> message_loop_proxy_; |
+ // The encoding capturer factory is created by MediaStreamDependencyFactory |
+ // and owned by its PeerConnectionFactory. It is passed to the manager |
+ // as a weak pointer at CreatePeerConnectionFactory time because the |
+ // PeerConnectionFactory may be released earlier than the manager. |
+ base::WeakPtr<RtcEncodingVideoCapturerFactory> encoding_capturer_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(VideoCaptureImplManager); |
}; |