Index: content/renderer/media/video_capture_impl_manager.cc |
diff --git a/content/renderer/media/video_capture_impl_manager.cc b/content/renderer/media/video_capture_impl_manager.cc |
index 672fbd403c3374b0ed97a645119027e29808e7a9..af2f4073f3728caef6da3227f5543725185efdb7 100644 |
--- a/content/renderer/media/video_capture_impl_manager.cc |
+++ b/content/renderer/media/video_capture_impl_manager.cc |
@@ -6,16 +6,22 @@ |
#include "base/bind.h" |
#include "base/stl_util.h" |
+#include "content/renderer/media/rtc_encoding_video_capturer_factory.h" |
#include "content/renderer/media/video_capture_impl.h" |
#include "content/renderer/media/video_capture_message_filter.h" |
namespace content { |
VideoCaptureImplManager::VideoCaptureImplManager() |
- : thread_("VC manager") { |
+ : thread_("VC manager"), |
+ encoding_capturer_factory_(NULL) { |
thread_.Start(); |
message_loop_proxy_ = thread_.message_loop_proxy(); |
filter_ = new VideoCaptureMessageFilter(); |
+ |
+#if defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL) |
+ encoding_capturer_factory_ = new RtcEncodingVideoCapturerFactory(); |
+#endif |
} |
media::VideoCapture* VideoCaptureImplManager::AddDevice( |
@@ -30,6 +36,8 @@ media::VideoCapture* VideoCaptureImplManager::AddDevice( |
new VideoCaptureImpl(id, message_loop_proxy_.get(), filter_.get()); |
devices_[id] = new Device(vc, handler); |
vc->Init(); |
+ if (encoding_capturer_factory_) |
+ encoding_capturer_factory_->OnEncodedVideoSourceAdded(vc); |
return vc; |
} |
@@ -59,6 +67,9 @@ void VideoCaptureImplManager::RemoveDevice( |
if (size == it->second->clients.size() || size > 1) |
return; |
+ if (encoding_capturer_factory_) |
+ encoding_capturer_factory_->OnEncodedVideoSourceRemoved(devices_[id]->vc); |
+ |
devices_[id]->vc->DeInit(base::Bind(&VideoCaptureImplManager::FreeDevice, |
this, devices_[id]->vc)); |
delete devices_[id]; |