| 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 4d59729ba75b1854f680113db4c65fffa9c89940..0a4bb619a92c7042b7b6b376938cbc5fcea7c0c1 100644
|
| --- a/content/renderer/media/video_capture_message_filter.cc
|
| +++ b/content/renderer/media/video_capture_message_filter.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "content/renderer/media/video_capture_message_filter.h"
|
|
|
| +#include "content/common/media/encoded_video_capture_messages.h"
|
| #include "content/common/media/video_capture_messages.h"
|
| #include "content/common/view_messages.h"
|
|
|
| @@ -61,7 +62,17 @@ bool VideoCaptureMessageFilter::OnMessageReceived(const IPC::Message& message) {
|
| IPC_MESSAGE_HANDLER(VideoCaptureMsg_StateChanged, OnDeviceStateChanged)
|
| IPC_MESSAGE_HANDLER(VideoCaptureMsg_NewBuffer, OnBufferCreated)
|
| IPC_MESSAGE_HANDLER(VideoCaptureMsg_DeviceInfo, OnDeviceInfoReceived)
|
| - IPC_MESSAGE_UNHANDLED(handled = false)
|
| + IPC_MESSAGE_HANDLER(EncodedVideoCaptureMsg_CapabilitiesAvailable,
|
| + OnCapabilitiesAvailable)
|
| + IPC_MESSAGE_HANDLER(EncodedVideoCaptureMsg_BitstreamOpened,
|
| + OnBitstreamOpened)
|
| + IPC_MESSAGE_HANDLER(EncodedVideoCaptureMsg_BitstreamClosed,
|
| + OnBitstreamClosed)
|
| + IPC_MESSAGE_HANDLER(EncodedVideoCaptureMsg_BitstreamConfigChanged,
|
| + OnBitstreamConfigChanged)
|
| + IPC_MESSAGE_HANDLER(EncodedVideoCaptureMsg_BitstreamReady,
|
| + OnBitstreamReady);
|
| + IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| return handled;
|
| }
|
| @@ -90,15 +101,18 @@ void VideoCaptureMessageFilter::OnChannelClosing() {
|
|
|
| VideoCaptureMessageFilter::~VideoCaptureMessageFilter() {}
|
|
|
| +VideoCaptureMessageFilter::Delegate* VideoCaptureMessageFilter::find_delegate(
|
| + int device_id) const {
|
| + Delegates::const_iterator i = delegates_.find(device_id);
|
| + return i != delegates_.end() ? i->second : NULL;
|
| +}
|
| +
|
| void VideoCaptureMessageFilter::OnBufferCreated(
|
| int device_id,
|
| base::SharedMemoryHandle handle,
|
| int length,
|
| int buffer_id) {
|
| - Delegate* delegate = NULL;
|
| - if (delegates_.find(device_id) != delegates_.end())
|
| - delegate = delegates_.find(device_id)->second;
|
| -
|
| + Delegate* delegate = find_delegate(device_id);
|
| if (!delegate) {
|
| DLOG(WARNING) << "OnBufferCreated: Got video frame buffer for a "
|
| "non-existent or removed video capture.";
|
| @@ -117,10 +131,7 @@ void VideoCaptureMessageFilter::OnBufferReceived(
|
| int device_id,
|
| int buffer_id,
|
| base::Time timestamp) {
|
| - Delegate* delegate = NULL;
|
| - if (delegates_.find(device_id) != delegates_.end())
|
| - delegate = delegates_.find(device_id)->second;
|
| -
|
| + Delegate* delegate = find_delegate(device_id);
|
| if (!delegate) {
|
| DLOG(WARNING) << "OnBufferReceived: Got video frame buffer for a "
|
| "non-existent or removed video capture.";
|
| @@ -137,9 +148,7 @@ void VideoCaptureMessageFilter::OnBufferReceived(
|
| void VideoCaptureMessageFilter::OnDeviceStateChanged(
|
| int device_id,
|
| VideoCaptureState state) {
|
| - Delegate* delegate = NULL;
|
| - if (delegates_.find(device_id) != delegates_.end())
|
| - delegate = delegates_.find(device_id)->second;
|
| + Delegate* delegate = find_delegate(device_id);
|
| if (!delegate) {
|
| DLOG(WARNING) << "OnDeviceStateChanged: Got video capture event for a "
|
| "non-existent or removed video capture.";
|
| @@ -151,9 +160,7 @@ void VideoCaptureMessageFilter::OnDeviceStateChanged(
|
| void VideoCaptureMessageFilter::OnDeviceInfoReceived(
|
| int device_id,
|
| const media::VideoCaptureParams& params) {
|
| - Delegate* delegate = NULL;
|
| - if (delegates_.find(device_id) != delegates_.end())
|
| - delegate = delegates_.find(device_id)->second;
|
| + Delegate* delegate = find_delegate(device_id);
|
| if (!delegate) {
|
| DLOG(WARNING) << "OnDeviceInfoReceived: Got video capture event for a "
|
| "non-existent or removed video capture.";
|
| @@ -162,4 +169,64 @@ void VideoCaptureMessageFilter::OnDeviceInfoReceived(
|
| delegate->OnDeviceInfoReceived(params);
|
| }
|
|
|
| +void VideoCaptureMessageFilter::OnCapabilitiesAvailable(
|
| + int device_id,
|
| + media::VideoEncodingCapabilities capabilities) {
|
| + Delegate* delegate = find_delegate(device_id);
|
| + if (!delegate) {
|
| + DLOG(WARNING) << "OnCapabilitiesAvailable: Got video capture event for a "
|
| + "non-existent or removed video capture.";
|
| + return;
|
| + }
|
| + delegate->OnEncodingCapabilitiesAvailable(capabilities);
|
| +}
|
| +
|
| +void VideoCaptureMessageFilter::OnBitstreamOpened(
|
| + int device_id,
|
| + media::VideoEncodingParameters params,
|
| + std::vector<base::SharedMemoryHandle> buffers,
|
| + uint32 buffer_size) {
|
| + Delegate* delegate = find_delegate(device_id);
|
| + if (!delegate) {
|
| + DLOG(WARNING) << "OnBitstreamOpened: Got video capture event for a "
|
| + "non-existent or removed video capture.";
|
| + return;
|
| + }
|
| + delegate->OnEncodedBitstreamOpened(params, buffers, buffer_size);
|
| +}
|
| +
|
| +void VideoCaptureMessageFilter::OnBitstreamClosed(int device_id) {
|
| + Delegate* delegate = find_delegate(device_id);
|
| + if (!delegate) {
|
| + DLOG(WARNING) << "OnBitstreamClosed: Got video capture event for a "
|
| + "non-existent or removed video capture.";
|
| + return;
|
| + }
|
| + delegate->OnEncodedBitstreamClosed();
|
| +}
|
| +
|
| +void VideoCaptureMessageFilter::OnBitstreamConfigChanged(
|
| + int device_id,
|
| + media::RuntimeVideoEncodingParameters params) {
|
| + Delegate* delegate = find_delegate(device_id);
|
| + if (!delegate) {
|
| + DLOG(WARNING) << "OnBitstreamConfigChanged: Got video capture event for a "
|
| + "non-existent or removed video capture.";
|
| + return;
|
| + }
|
| + delegate->OnEncodingConfigChanged(params);
|
| +}
|
| +
|
| +void VideoCaptureMessageFilter::OnBitstreamReady(
|
| + int device_id, int buffer_id, uint32 size,
|
| + media::BufferEncodingMetadata metadata) {
|
| + Delegate* delegate = find_delegate(device_id);
|
| + if (!delegate) {
|
| + DLOG(WARNING) << "OnBitstreamReady: Got video capture event for a "
|
| + "non-existent or removed video capture.";
|
| + return;
|
| + }
|
| + delegate->OnEncodedBufferReady(buffer_id, size, metadata);
|
| +}
|
| +
|
| } // namespace content
|
|
|