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

Unified Diff: content/browser/renderer_host/media/video_capture_host.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/browser/renderer_host/media/video_capture_host.cc
diff --git a/content/browser/renderer_host/media/video_capture_host.cc b/content/browser/renderer_host/media/video_capture_host.cc
index 9d84d92840950f9b934834fd273b027e7afbe998..d9a94485f1f0c1b1fd682e9e9095721a5f43fcc2 100644
--- a/content/browser/renderer_host/media/video_capture_host.cc
+++ b/content/browser/renderer_host/media/video_capture_host.cc
@@ -66,6 +66,19 @@ void VideoCaptureHost::OnBufferCreated(VideoCaptureControllerID controller_id,
Send(new VideoCaptureMsg_NewBuffer(controller_id, handle, length, buffer_id));
}
+void VideoCaptureHost::OnGpuMemoryBufferCreated(
+ VideoCaptureControllerID controller_id,
+ const std::vector<gfx::GpuMemoryBufferHandle>& gmb_handles,
+ const gfx::Size& size,
+ int buffer_id) {
+ DCHECK_CURRENTLY_ON(BrowserThread::IO);
+ if (entries_.find(controller_id) == entries_.end())
+ return;
+
+ Send(new VideoCaptureMsg_NewGpuMemoryBuffer(controller_id, gmb_handles, size,
+ buffer_id));
+}
+
void VideoCaptureHost::OnBufferDestroyed(VideoCaptureControllerID controller_id,
int buffer_id) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -94,9 +107,9 @@ void VideoCaptureHost::OnBufferReady(
params.coded_size = video_frame->coded_size();
params.visible_rect = video_frame->visible_rect();
if (video_frame->HasTextures()) {
- DCHECK_EQ(media::VideoFrame::NumPlanes(video_frame->format()), 1u)
- << "Multiplanar textures not supported";
- params.mailbox_holder = video_frame->mailbox_holder(0);
+ for (size_t i = 0; i < media::VideoFrame::NumPlanes(video_frame->format());
+ ++i)
mcasas 2015/08/21 03:57:25 Needs {}
emircan 2015/08/22 03:13:26 Done.
+ params.mailbox_holders.push_back(video_frame->mailbox_holder(i));
}
Send(new VideoCaptureMsg_BufferReady(params));

Powered by Google App Engine
This is Rietveld 408576698