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

Unified Diff: content/renderer/media/video_capture_message_filter.cc

Issue 1267883002: Pass GpuMemoryBuffer backed VideoFrame from browser to renderer processes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gmbtracker-multiple
Patch Set: Rebase Created 5 years, 4 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/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);
« no previous file with comments | « content/renderer/media/video_capture_message_filter.h ('k') | content/renderer/media/video_capture_message_filter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698