| 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 cc340e3dd80182520dfbf3a5ac20024d7097614f..12bb227cf184bd49053281e30b06da7dcede69e1 100644
|
| --- a/content/browser/renderer_host/media/video_capture_host.cc
|
| +++ b/content/browser/renderer_host/media/video_capture_host.cc
|
| @@ -5,6 +5,7 @@
|
| #include "content/browser/renderer_host/media/video_capture_host.h"
|
|
|
| #include "base/bind.h"
|
| +#include "base/bind_helpers.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "content/browser/browser_main_loop.h"
|
| #include "content/browser/renderer_host/media/media_stream_manager.h"
|
| @@ -76,9 +77,10 @@ void VideoCaptureHost::OnBufferDestroyed(
|
| void VideoCaptureHost::OnBufferReady(
|
| const VideoCaptureControllerID& controller_id,
|
| int buffer_id,
|
| - const media::VideoCaptureFormat& frame_format,
|
| + const gfx::Size& coded_size,
|
| const gfx::Rect& visible_rect,
|
| - base::TimeTicks timestamp) {
|
| + base::TimeTicks timestamp,
|
| + scoped_ptr<base::DictionaryValue> metadata) {
|
| BrowserThread::PostTask(
|
| BrowserThread::IO,
|
| FROM_HERE,
|
| @@ -86,17 +88,19 @@ void VideoCaptureHost::OnBufferReady(
|
| this,
|
| controller_id,
|
| buffer_id,
|
| - frame_format,
|
| + coded_size,
|
| visible_rect,
|
| - timestamp));
|
| + timestamp,
|
| + base::Passed(&metadata)));
|
| }
|
|
|
| void VideoCaptureHost::OnMailboxBufferReady(
|
| const VideoCaptureControllerID& controller_id,
|
| int buffer_id,
|
| const gpu::MailboxHolder& mailbox_holder,
|
| - const media::VideoCaptureFormat& frame_format,
|
| - base::TimeTicks timestamp) {
|
| + const gfx::Size& packed_frame_size,
|
| + base::TimeTicks timestamp,
|
| + scoped_ptr<base::DictionaryValue> metadata) {
|
| BrowserThread::PostTask(
|
| BrowserThread::IO,
|
| FROM_HERE,
|
| @@ -105,8 +109,9 @@ void VideoCaptureHost::OnMailboxBufferReady(
|
| controller_id,
|
| buffer_id,
|
| mailbox_holder,
|
| - frame_format,
|
| - timestamp));
|
| + packed_frame_size,
|
| + timestamp,
|
| + base::Passed(&metadata)));
|
| }
|
|
|
| void VideoCaptureHost::OnEnded(const VideoCaptureControllerID& controller_id) {
|
| @@ -144,31 +149,47 @@ void VideoCaptureHost::DoSendFreeBufferOnIOThread(
|
| void VideoCaptureHost::DoSendFilledBufferOnIOThread(
|
| const VideoCaptureControllerID& controller_id,
|
| int buffer_id,
|
| - const media::VideoCaptureFormat& format,
|
| + const gfx::Size& coded_size,
|
| const gfx::Rect& visible_rect,
|
| - base::TimeTicks timestamp) {
|
| + base::TimeTicks timestamp,
|
| + scoped_ptr<base::DictionaryValue> metadata) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| if (entries_.find(controller_id) == entries_.end())
|
| return;
|
|
|
| - Send(new VideoCaptureMsg_BufferReady(
|
| - controller_id.device_id, buffer_id, format, visible_rect, timestamp));
|
| + VideoCaptureMsg_BufferReady_Params params;
|
| + params.device_id = controller_id.device_id;
|
| + params.buffer_id = buffer_id;
|
| + params.coded_size = coded_size;
|
| + params.visible_rect = visible_rect;
|
| + params.timestamp = timestamp;
|
| + if (metadata)
|
| + params.metadata.Swap(metadata.get());
|
| + Send(new VideoCaptureMsg_BufferReady(params));
|
| }
|
|
|
| void VideoCaptureHost::DoSendFilledMailboxBufferOnIOThread(
|
| const VideoCaptureControllerID& controller_id,
|
| int buffer_id,
|
| const gpu::MailboxHolder& mailbox_holder,
|
| - const media::VideoCaptureFormat& format,
|
| - base::TimeTicks timestamp) {
|
| + const gfx::Size& packed_frame_size,
|
| + base::TimeTicks timestamp,
|
| + scoped_ptr<base::DictionaryValue> metadata) {
|
| DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
|
|
| if (entries_.find(controller_id) == entries_.end())
|
| return;
|
|
|
| - Send(new VideoCaptureMsg_MailboxBufferReady(
|
| - controller_id.device_id, buffer_id, mailbox_holder, format, timestamp));
|
| + VideoCaptureMsg_MailboxBufferReady_Params params;
|
| + params.device_id = controller_id.device_id;
|
| + params.buffer_id = buffer_id;
|
| + params.mailbox_holder = mailbox_holder;
|
| + params.packed_frame_size = packed_frame_size;
|
| + params.timestamp = timestamp;
|
| + if (metadata)
|
| + params.metadata.Swap(metadata.get());
|
| + Send(new VideoCaptureMsg_MailboxBufferReady(params));
|
| }
|
|
|
| void VideoCaptureHost::DoHandleErrorOnIOThread(
|
|
|