#include "content/public/browser/browser_message_filter.h"
#include "ipc/ipc_message.h"
-namespace media {
-class VideoCaptureCapability;
-}
-
namespace content {
class MediaStreamManager;
int buffer_id) OVERRIDE;
virtual void OnBufferDestroyed(const VideoCaptureControllerID& id,
int buffer_id) OVERRIDE;
- virtual void OnBufferReady(
- const VideoCaptureControllerID& id,
- int buffer_id,
- base::Time timestamp,
- const media::VideoCaptureFormat& format) OVERRIDE;
+ virtual void OnBufferReady(const VideoCaptureControllerID& id,
+ int buffer_id,
+ const media::VideoCaptureFormat& format,
+ base::TimeTicks timestamp) OVERRIDE;
+ virtual void OnMailboxBufferReady(const VideoCaptureControllerID& id,
+ int buffer_id,
+ const gpu::MailboxHolder& mailbox_holder,
+ const media::VideoCaptureFormat& format,
+ base::TimeTicks timestamp) OVERRIDE;
virtual void OnEnded(const VideoCaptureControllerID& id) OVERRIDE;
private:
virtual ~VideoCaptureHost();
// IPC message: Start capture on the VideoCaptureDevice referenced by
- // VideoCaptureParams::session_id. |device_id| is an id created by
- // VideoCaptureMessageFilter to identify a session
- // between a VideoCaptureMessageFilter and a VideoCaptureHost.
+ // |session_id|. |device_id| is an id created by VideoCaptureMessageFilter
+ // to identify a session between a VideoCaptureMessageFilter and a
+ // VideoCaptureHost.
void OnStartCapture(int device_id,
+ media::VideoCaptureSessionId session_id,
const media::VideoCaptureParams& params);
void OnControllerAdded(
- int device_id, const media::VideoCaptureParams& params,
+ int device_id,
const base::WeakPtr<VideoCaptureController>& controller);
void DoControllerAddedOnIOThread(
- int device_id, const media::VideoCaptureParams& params,
+ int device_id,
const base::WeakPtr<VideoCaptureController>& controller);
// IPC message: Stop capture on device referenced by |device_id|.
// IPC message: Receive an empty buffer from renderer. Send it to device
// referenced by |device_id|.
- void OnReceiveEmptyBuffer(int device_id, int buffer_id);
-
- // Send a newly created buffer to the VideoCaptureMessageFilter.
+ void OnReceiveEmptyBuffer(int device_id,
+ int buffer_id,
+ const std::vector<uint32>& sync_points);
+
+ // IPC message: Get supported formats referenced by |capture_session_id|.
+ // |device_id| is needed for message back-routing purposes.
+ void OnGetDeviceSupportedFormats(
+ int device_id,
+ media::VideoCaptureSessionId capture_session_id);
+
+ // IPC message: Get a device's currently in use format(s), referenced by
+ // |capture_session_id|. |device_id| is needed for message back-routing
+ // purposes.
+ void OnGetDeviceFormatsInUse(
+ int device_id,
+ media::VideoCaptureSessionId capture_session_id);
+
+ // Sends a newly created buffer to the VideoCaptureMessageFilter.
void DoSendNewBufferOnIOThread(
const VideoCaptureControllerID& controller_id,
base::SharedMemoryHandle handle,
const VideoCaptureControllerID& controller_id,
int buffer_id);
- // Send a filled buffer to the VideoCaptureMessageFilter.
+ // Sends a filled buffer to the VideoCaptureMessageFilter.
void DoSendFilledBufferOnIOThread(
const VideoCaptureControllerID& controller_id,
int buffer_id,
- base::Time timestamp,
- const media::VideoCaptureFormat& format);
+ const media::VideoCaptureFormat& format,
+ base::TimeTicks timestamp);
+
+ // Sends a filled texture mailbox buffer to the VideoCaptureMessageFilter.
+ void DoSendFilledMailboxBufferOnIOThread(
+ const VideoCaptureControllerID& controller_id,
+ int buffer_id,
+ const gpu::MailboxHolder& mailbox_holder,
+ const media::VideoCaptureFormat& format,
+ base::TimeTicks timestamp);
- // Handle error coming from VideoCaptureDevice.
+ // Handles error coming from VideoCaptureDevice.
void DoHandleErrorOnIOThread(const VideoCaptureControllerID& controller_id);
void DoEndedOnIOThread(const VideoCaptureControllerID& controller_id);
+ // Deletes the controller and notifies the VideoCaptureManager. |on_error| is
+ // true if this is triggered by VideoCaptureControllerEventHandler::OnError.
void DeleteVideoCaptureControllerOnIOThread(
- const VideoCaptureControllerID& controller_id);
+ const VideoCaptureControllerID& controller_id, bool on_error);
MediaStreamManager* media_stream_manager_;