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

Unified Diff: content/browser/renderer_host/media/video_capture_host.cc

Issue 83793004: Implement IPCs and VideoCapture::Client interfaces for texture capture (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 5744a8bbb Nits. Created 6 years, 11 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 292ecb72fa034879c868b05b87535fe8b8e3f10d..e0f5a8162d71730f0abaa85535d541e5f23da3e6 100644
--- a/content/browser/renderer_host/media/video_capture_host.cc
+++ b/content/browser/renderer_host/media/video_capture_host.cc
@@ -69,13 +69,35 @@ void VideoCaptureHost::OnBufferDestroyed(
void VideoCaptureHost::OnBufferReady(
const VideoCaptureControllerID& controller_id,
int buffer_id,
- base::TimeTicks timestamp,
- const media::VideoCaptureFormat& frame_format) {
+ const media::VideoCaptureFormat& frame_format,
+ base::TimeTicks timestamp) {
BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE,
+ BrowserThread::IO,
+ FROM_HERE,
base::Bind(&VideoCaptureHost::DoSendFilledBufferOnIOThread,
- this, controller_id, buffer_id, timestamp,
- frame_format));
+ this,
+ controller_id,
+ buffer_id,
+ frame_format,
+ timestamp));
+}
+
+void VideoCaptureHost::OnMailboxBufferReady(
+ const VideoCaptureControllerID& controller_id,
+ int buffer_id,
+ const gpu::MailboxHolder& mailbox_holder,
+ const media::VideoCaptureFormat& frame_format,
+ base::TimeTicks timestamp) {
+ BrowserThread::PostTask(
+ BrowserThread::IO,
+ FROM_HERE,
+ base::Bind(&VideoCaptureHost::DoSendFilledMailboxBufferOnIOThread,
mcasas 2014/01/21 14:34:02 If the call to VideoCaptureHost::OnMailboxBufferRe
sheu 2014/01/29 01:19:20 Most of the trampolining seems unnecessary here, b
+ this,
+ controller_id,
+ buffer_id,
+ mailbox_holder,
+ frame_format,
+ timestamp));
}
void VideoCaptureHost::OnEnded(const VideoCaptureControllerID& controller_id) {
@@ -113,15 +135,30 @@ void VideoCaptureHost::DoSendFreeBufferOnIOThread(
void VideoCaptureHost::DoSendFilledBufferOnIOThread(
const VideoCaptureControllerID& controller_id,
int buffer_id,
- base::TimeTicks timestamp,
- const media::VideoCaptureFormat& format) {
+ const media::VideoCaptureFormat& format,
+ base::TimeTicks timestamp) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+
+ if (entries_.find(controller_id) == entries_.end())
+ return;
+
+ Send(new VideoCaptureMsg_BufferReady(
+ controller_id.device_id, buffer_id, format, timestamp));
+}
+
+void VideoCaptureHost::DoSendFilledMailboxBufferOnIOThread(
+ const VideoCaptureControllerID& controller_id,
+ int buffer_id,
+ const gpu::MailboxHolder& mailbox_holder,
+ const media::VideoCaptureFormat& format,
+ base::TimeTicks timestamp) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
if (entries_.find(controller_id) == entries_.end())
return;
- Send(new VideoCaptureMsg_BufferReady(controller_id.device_id, buffer_id,
- timestamp, format));
+ Send(new VideoCaptureMsg_MailboxBufferReady(
+ controller_id.device_id, buffer_id, mailbox_holder, format, timestamp));
}
void VideoCaptureHost::DoHandleErrorOnIOThread(
@@ -243,7 +280,9 @@ void VideoCaptureHost::OnPauseCapture(int device_id) {
Send(new VideoCaptureMsg_StateChanged(device_id, VIDEO_CAPTURE_STATE_ERROR));
}
-void VideoCaptureHost::OnReceiveEmptyBuffer(int device_id, int buffer_id) {
+void VideoCaptureHost::OnReceiveEmptyBuffer(int device_id,
+ int buffer_id,
+ uint32 sync_point) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
VideoCaptureControllerID controller_id(device_id);
@@ -251,7 +290,7 @@ void VideoCaptureHost::OnReceiveEmptyBuffer(int device_id, int buffer_id) {
if (it != entries_.end()) {
const base::WeakPtr<VideoCaptureController>& controller = it->second;
if (controller)
- controller->ReturnBuffer(controller_id, this, buffer_id);
+ controller->ReturnBuffer(controller_id, this, buffer_id, sync_point);
}
}

Powered by Google App Engine
This is Rietveld 408576698