| Index: content/browser/renderer_host/media/in_process_buildable_video_capture_device.cc
|
| diff --git a/content/browser/renderer_host/media/in_process_buildable_video_capture_device.cc b/content/browser/renderer_host/media/in_process_buildable_video_capture_device.cc
|
| index 903fa6a9d0c5d2d78a11a1a8046b4102f2dc486e..fa8f2a897ee8cb58b87333797e9d95197347246d 100644
|
| --- a/content/browser/renderer_host/media/in_process_buildable_video_capture_device.cc
|
| +++ b/content/browser/renderer_host/media/in_process_buildable_video_capture_device.cc
|
| @@ -84,7 +84,7 @@ namespace content {
|
|
|
| InProcessBuildableVideoCaptureDevice::InProcessBuildableVideoCaptureDevice(
|
| scoped_refptr<base::SingleThreadTaskRunner> device_task_runner,
|
| - media::VideoCaptureDeviceFactory* device_factory)
|
| + media::VideoCaptureSystem* device_factory)
|
| : device_task_runner_(std::move(device_task_runner)),
|
| device_factory_(device_factory) {}
|
|
|
| @@ -109,47 +109,24 @@ void InProcessBuildableVideoCaptureDevice::CreateAndStartDeviceAsync(
|
| CreateDeviceClient(max_buffers, controller->GetWeakPtrForIOThread());
|
|
|
| base::Closure start_capture_closure;
|
| + // Use of Unretained() is safe, because |context_reference| guarantees that
|
| + // |this| stays alive.
|
| + ReceiveDeviceCallback after_start_capture_callback = media::BindToCurrentLoop(
|
| + base::Bind(&InProcessBuildableVideoCaptureDevice::OnDeviceStarted,
|
| + base::Unretained(this), controller, callbacks,
|
| + base::Passed(&done_cb)));
|
| +
|
| switch (controller->stream_type()) {
|
| case MEDIA_DEVICE_VIDEO_CAPTURE: {
|
| - const media::VideoCaptureDeviceDescriptor* descriptor =
|
| - callbacks->LookupDeviceDescriptor(controller->device_id());
|
| - if (descriptor) {
|
| - controller->OnLog(
|
| - base::StringPrintf("Starting device: id: %s, name: %s, api: %s",
|
| - descriptor->device_id.c_str(),
|
| - descriptor->GetNameAndModel().c_str(),
|
| - descriptor->GetCaptureApiTypeString()));
|
| -
|
| - callbacks->WillStartDevice(descriptor->facing);
|
| -
|
| - // Use of Unretained() is safe, because |context_reference| guarantees
|
| - // that |this| stays alive.
|
| - ReceiveDeviceCallback after_start_capture_callback =
|
| - media::BindToCurrentLoop(base::Bind(
|
| - &InProcessBuildableVideoCaptureDevice::OnDeviceStarted,
|
| - base::Unretained(this), controller, callbacks,
|
| - base::Passed(&done_cb)));
|
| - start_capture_closure =
|
| - base::Bind(&InProcessBuildableVideoCaptureDevice::
|
| - DoStartDeviceCaptureOnDeviceThread,
|
| - base::Unretained(this), *descriptor, params,
|
| - base::Passed(std::move(device_client)),
|
| - std::move(after_start_capture_callback));
|
| - } else {
|
| - callbacks->OnDeviceStartFailed(controller);
|
| - std::move(done_cb).Run();
|
| - return;
|
| - }
|
| + start_capture_closure =
|
| + base::Bind(&InProcessBuildableVideoCaptureDevice::
|
| + DoStartDeviceCaptureOnDeviceThread,
|
| + base::Unretained(this), controller->device_id(), params,
|
| + base::Passed(std::move(device_client)),
|
| + std::move(after_start_capture_callback));
|
| break;
|
| }
|
| - case MEDIA_TAB_VIDEO_CAPTURE: {
|
| - // Use of Unretained() is safe, because |context_reference| guarantees
|
| - // that |this| stays alive.
|
| - ReceiveDeviceCallback after_start_capture_callback =
|
| - media::BindToCurrentLoop(
|
| - base::Bind(&InProcessBuildableVideoCaptureDevice::OnDeviceStarted,
|
| - base::Unretained(this), controller, callbacks,
|
| - base::Passed(&done_cb)));
|
| + case MEDIA_TAB_VIDEO_CAPTURE:
|
| start_capture_closure =
|
| base::Bind(&InProcessBuildableVideoCaptureDevice::
|
| DoStartTabCaptureOnDeviceThread,
|
| @@ -157,15 +134,8 @@ void InProcessBuildableVideoCaptureDevice::CreateAndStartDeviceAsync(
|
| base::Passed(std::move(device_client)),
|
| std::move(after_start_capture_callback));
|
| break;
|
| - }
|
| - case MEDIA_DESKTOP_VIDEO_CAPTURE: {
|
| - // Use of Unretained() is safe, because |context_reference| guarantees
|
| - // that |this| stays alive.
|
| - ReceiveDeviceCallback after_start_capture_callback =
|
| - media::BindToCurrentLoop(
|
| - base::Bind(&InProcessBuildableVideoCaptureDevice::OnDeviceStarted,
|
| - base::Unretained(this), controller, callbacks,
|
| - base::Passed(&done_cb)));
|
| +
|
| + case MEDIA_DESKTOP_VIDEO_CAPTURE:
|
| start_capture_closure =
|
| base::Bind(&InProcessBuildableVideoCaptureDevice::
|
| DoStartDesktopCaptureOnDeviceThread,
|
| @@ -173,7 +143,7 @@ void InProcessBuildableVideoCaptureDevice::CreateAndStartDeviceAsync(
|
| base::Passed(std::move(device_client)),
|
| std::move(after_start_capture_callback));
|
| break;
|
| - }
|
| +
|
| default: {
|
| NOTIMPLEMENTED();
|
| return;
|
| @@ -328,7 +298,6 @@ void InProcessBuildableVideoCaptureDevice::OnDeviceStarted(
|
| if (!device) {
|
| state_ = State::NO_DEVICE;
|
| callbacks->OnDeviceStartFailed(controller);
|
| - std::move(done_cb).Run();
|
| return;
|
| }
|
| // Passing raw pointer |device.get()| to the controller is safe,
|
| @@ -340,7 +309,7 @@ void InProcessBuildableVideoCaptureDevice::OnDeviceStarted(
|
| device.get(), device_task_runner_));
|
| device_ = std::move(device);
|
| state_ = State::DEVICE_STARTED;
|
| - callbacks->DidStartDevice(controller);
|
| + callbacks->OnDeviceStarted(controller);
|
| std::move(done_cb).Run();
|
| return;
|
| case State::DEVICE_START_ABORTING:
|
| @@ -365,7 +334,7 @@ void InProcessBuildableVideoCaptureDevice::OnDeviceStarted(
|
| }
|
|
|
| void InProcessBuildableVideoCaptureDevice::DoStartDeviceCaptureOnDeviceThread(
|
| - const media::VideoCaptureDeviceDescriptor& descriptor,
|
| + const std::string& device_id,
|
| const media::VideoCaptureParams& params,
|
| std::unique_ptr<media::VideoCaptureDeviceClient> device_client,
|
| ReceiveDeviceCallback result_callback) {
|
| @@ -373,7 +342,7 @@ void InProcessBuildableVideoCaptureDevice::DoStartDeviceCaptureOnDeviceThread(
|
| DCHECK(device_task_runner_->BelongsToCurrentThread());
|
|
|
| std::unique_ptr<media::VideoCaptureDevice> video_capture_device =
|
| - device_factory_->CreateDevice(descriptor);
|
| + device_factory_->CreateDevice(device_id);
|
|
|
| if (!video_capture_device) {
|
| result_callback.Run(nullptr);
|
|
|