Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Unified Diff: content/browser/renderer_host/media/in_process_buildable_video_capture_device.cc

Issue 2769543002: [Mojo Video Capture] Introduce abstraction VideoCaptureSystem (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698