| Index: content/browser/renderer_host/media/video_capture_controller.cc
|
| diff --git a/content/browser/renderer_host/media/video_capture_controller.cc b/content/browser/renderer_host/media/video_capture_controller.cc
|
| index 85f0a2948c7586ce94c82b43916f65668e3426d9..4455c94f01c931ac96272eef71e3b2358be71304 100644
|
| --- a/content/browser/renderer_host/media/video_capture_controller.cc
|
| +++ b/content/browser/renderer_host/media/video_capture_controller.cc
|
| @@ -129,12 +129,10 @@ class VideoFrameReceiverOnIOThread : public media::VideoFrameReceiver {
|
| struct VideoCaptureController::ControllerClient {
|
| ControllerClient(VideoCaptureControllerID id,
|
| VideoCaptureControllerEventHandler* handler,
|
| - base::ProcessHandle render_process,
|
| media::VideoCaptureSessionId session_id,
|
| const media::VideoCaptureParams& params)
|
| : controller_id(id),
|
| event_handler(handler),
|
| - render_process_handle(render_process),
|
| session_id(session_id),
|
| parameters(params),
|
| session_closed(false),
|
| @@ -146,8 +144,6 @@ struct VideoCaptureController::ControllerClient {
|
| const VideoCaptureControllerID controller_id;
|
| VideoCaptureControllerEventHandler* const event_handler;
|
|
|
| - // Handle to the render process that will receive the capture buffers.
|
| - const base::ProcessHandle render_process_handle;
|
| const media::VideoCaptureSessionId session_id;
|
| const media::VideoCaptureParams parameters;
|
|
|
| @@ -206,7 +202,6 @@ VideoCaptureController::NewDeviceClient() {
|
| void VideoCaptureController::AddClient(
|
| VideoCaptureControllerID id,
|
| VideoCaptureControllerEventHandler* event_handler,
|
| - base::ProcessHandle render_process,
|
| media::VideoCaptureSessionId session_id,
|
| const media::VideoCaptureParams& params) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| @@ -242,8 +237,8 @@ void VideoCaptureController::AddClient(
|
| if (FindClient(id, event_handler, controller_clients_))
|
| return;
|
|
|
| - std::unique_ptr<ControllerClient> client = base::MakeUnique<ControllerClient>(
|
| - id, event_handler, render_process, session_id, params);
|
| + std::unique_ptr<ControllerClient> client =
|
| + base::MakeUnique<ControllerClient>(id, event_handler, session_id, params);
|
| // If we already have gotten frame_info from the device, repeat it to the new
|
| // client.
|
| if (state_ == VIDEO_CAPTURE_STATE_STARTED) {
|
| @@ -508,14 +503,13 @@ void VideoCaptureController::DoNewBufferOnIOThread(
|
| media::VideoCaptureDevice::Client::Buffer* buffer,
|
| const scoped_refptr<media::VideoFrame>& frame) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| - const int buffer_id = buffer->id();
|
| -
|
| DCHECK_EQ(media::VideoFrame::STORAGE_SHMEM, frame->storage_type());
|
|
|
| - base::SharedMemoryHandle remote_handle;
|
| - buffer_pool_->ShareToProcess(buffer_id, client->render_process_handle,
|
| - &remote_handle);
|
| - client->event_handler->OnBufferCreated(client->controller_id, remote_handle,
|
| + const int buffer_id = buffer->id();
|
| + mojo::ScopedSharedBufferHandle handle =
|
| + buffer_pool_->GetHandleForTransit(buffer_id);
|
| + client->event_handler->OnBufferCreated(client->controller_id,
|
| + std::move(handle),
|
| buffer->mapped_size(), buffer_id);
|
| }
|
|
|
|
|