Index: content/renderer/media/video_capture_message_filter.cc |
diff --git a/content/renderer/media/video_capture_message_filter.cc b/content/renderer/media/video_capture_message_filter.cc |
index b6c92d2926ef31e52b29997d2498da9ae0578bae..076e96ec2abcc2e5f3d20bb9253534e649d2b578 100644 |
--- a/content/renderer/media/video_capture_message_filter.cc |
+++ b/content/renderer/media/video_capture_message_filter.cc |
@@ -61,6 +61,8 @@ bool VideoCaptureMessageFilter::OnMessageReceived(const IPC::Message& message) { |
IPC_MESSAGE_HANDLER(VideoCaptureMsg_BufferReady, OnBufferReceived) |
IPC_MESSAGE_HANDLER(VideoCaptureMsg_StateChanged, OnDeviceStateChanged) |
IPC_MESSAGE_HANDLER(VideoCaptureMsg_NewBuffer, OnBufferCreated) |
+ IPC_MESSAGE_HANDLER(VideoCaptureMsg_NewGpuMemoryBuffer, |
+ OnGpuMemoryBufferCreated) |
IPC_MESSAGE_HANDLER(VideoCaptureMsg_FreeBuffer, OnBufferDestroyed) |
IPC_MESSAGE_HANDLER(VideoCaptureMsg_DeviceSupportedFormatsEnumerated, |
OnDeviceSupportedFormatsEnumerated) |
@@ -103,7 +105,7 @@ void VideoCaptureMessageFilter::OnBufferCreated( |
base::SharedMemoryHandle handle, |
int length, |
int buffer_id) { |
- Delegate* delegate = find_delegate(device_id); |
+ Delegate* const delegate = find_delegate(device_id); |
if (!delegate) { |
DLOG(WARNING) << "OnBufferCreated: Got video SHM buffer for a " |
"non-existent or removed video capture."; |
@@ -111,6 +113,7 @@ void VideoCaptureMessageFilter::OnBufferCreated( |
// Send the buffer back to Host in case it's waiting for all buffers |
// to be returned. |
base::SharedMemory::CloseHandle(handle); |
+ |
Send(new VideoCaptureHostMsg_BufferReady(device_id, buffer_id, 0, -1.0)); |
return; |
} |
@@ -118,6 +121,22 @@ void VideoCaptureMessageFilter::OnBufferCreated( |
delegate->OnBufferCreated(handle, length, buffer_id); |
} |
+void VideoCaptureMessageFilter::OnGpuMemoryBufferCreated( |
+ int device_id, |
+ const std::vector<gfx::GpuMemoryBufferHandle>& gmb_handles, |
+ const gfx::Size& size, |
+ int buffer_id) { |
+ Delegate* delegate = find_delegate(device_id); |
mcasas
2015/08/21 03:57:25
Delegate* const delegate
|
+ if (!delegate) { |
+ DLOG(WARNING) << "OnBufferCreated: Got video GMB buffer for a " |
+ "non-existent or removed video capture."; |
+ Send(new VideoCaptureHostMsg_BufferReady(device_id, buffer_id, 0, -1.0)); |
mcasas
2015/08/21 03:57:25
0? -1.0??
Proposal:
0 /* release_sync_point */, -
|
+ return; |
+ } |
+ |
+ delegate->OnGpuMemoryBufferCreated(gmb_handles, size, buffer_id); |
+} |
+ |
void VideoCaptureMessageFilter::OnBufferReceived( |
const VideoCaptureMsg_BufferReady_Params& params) { |
Delegate* const delegate = find_delegate(params.device_id); |
@@ -139,7 +158,7 @@ void VideoCaptureMessageFilter::OnBufferReceived( |
params.storage_type, |
params.coded_size, |
params.visible_rect, |
- params.mailbox_holder); |
+ params.mailbox_holders); |
} |
void VideoCaptureMessageFilter::OnBufferDestroyed( |