| 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..07d0a834cabccbcb8b5016163d0363ca22dbf6ad 100644
|
| --- a/content/renderer/media/video_capture_impl_manager.cc
|
| +++ b/content/renderer/media/video_capture_impl_manager.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #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"
|
|
|
| @@ -16,6 +17,10 @@ VideoCaptureImplManager::VideoCaptureImplManager()
|
| 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 +35,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 +66,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];
|
|
|