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 702a1488850589f6a4fa2ed5287a561560402a44..9b4c81c4a28500acacb57da97b2451fdba7abde9 100644 |
--- a/content/renderer/media/video_capture_message_filter.cc |
+++ b/content/renderer/media/video_capture_message_filter.cc |
@@ -61,6 +61,7 @@ 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_NewBuffer2, OnBufferCreated2) |
IPC_MESSAGE_HANDLER(VideoCaptureMsg_FreeBuffer, OnBufferDestroyed) |
IPC_MESSAGE_HANDLER(VideoCaptureMsg_DeviceSupportedFormatsEnumerated, |
OnDeviceSupportedFormatsEnumerated) |
@@ -110,13 +111,34 @@ void VideoCaptureMessageFilter::OnBufferCreated(int device_id, |
// 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)); |
+ |
+ Send(new VideoCaptureHostMsg_BufferReady( |
+ device_id, buffer_id, 0 /* release_sync_point */, |
+ -1.0 /* consumer_resource_utilization */)); |
return; |
} |
delegate->OnBufferCreated(handle, length, buffer_id); |
} |
+void VideoCaptureMessageFilter::OnBufferCreated2( |
+ int device_id, |
+ const std::vector<gfx::GpuMemoryBufferHandle>& handles, |
+ const gfx::Size& size, |
+ int buffer_id) { |
+ Delegate* const delegate = find_delegate(device_id); |
+ 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 /* release_sync_point */, |
+ -1.0 /* consumer_resource_utilization */)); |
+ return; |
+ } |
+ |
+ delegate->OnBufferCreated2(handles, size, buffer_id); |
+} |
+ |
void VideoCaptureMessageFilter::OnBufferReceived( |
const VideoCaptureMsg_BufferReady_Params& params) { |
Delegate* const delegate = find_delegate(params.device_id); |