| Index: content/renderer/media/video_capture_impl.h
|
| diff --git a/content/renderer/media/video_capture_impl.h b/content/renderer/media/video_capture_impl.h
|
| index a7af55b2059386723e44bb3ddcc08ac8cef9209f..779aece12092c9dcf3a0929d63718193a66fe79b 100644
|
| --- a/content/renderer/media/video_capture_impl.h
|
| +++ b/content/renderer/media/video_capture_impl.h
|
| @@ -38,6 +38,7 @@
|
| #include "content/renderer/media/video_capture_message_filter.h"
|
| #include "media/video/capture/video_capture.h"
|
| #include "media/video/capture/video_capture_types.h"
|
| +#include "media/video/encoded_video_source.h"
|
|
|
| namespace base {
|
| class MessageLoopProxy;
|
| @@ -46,7 +47,9 @@ class MessageLoopProxy;
|
| namespace content {
|
|
|
| class CONTENT_EXPORT VideoCaptureImpl
|
| - : public media::VideoCapture, public VideoCaptureMessageFilter::Delegate {
|
| + : public media::VideoCapture,
|
| + public VideoCaptureMessageFilter::Delegate,
|
| + public media::EncodedVideoSource {
|
| public:
|
| // media::VideoCapture interface.
|
| virtual void StartCapture(
|
| @@ -67,6 +70,31 @@ class CONTENT_EXPORT VideoCaptureImpl
|
| virtual void OnDeviceInfoReceived(
|
| const media::VideoCaptureParams& device_info) OVERRIDE;
|
| virtual void OnDelegateAdded(int32 device_id) OVERRIDE;
|
| + virtual void OnEncodingCapabilitiesAvailable(
|
| + const media::VideoEncodingCapabilities& capabilities) OVERRIDE;
|
| + virtual void OnEncodedBitstreamOpened(
|
| + const media::VideoEncodingParameters& params,
|
| + const std::vector<base::SharedMemoryHandle>& buffers,
|
| + uint32 buffer_size) OVERRIDE;
|
| + virtual void OnEncodedBitstreamClosed() OVERRIDE;
|
| + virtual void OnEncodingConfigChanged(
|
| + const media::RuntimeVideoEncodingParameters& params) OVERRIDE;
|
| + virtual void OnEncodedBufferReady(
|
| + int buffer_id,
|
| + uint32 size,
|
| + const media::BufferEncodingMetadata& metadata) OVERRIDE;
|
| +
|
| + // media::EncodedVideoSource interface.
|
| + virtual void RequestCapabilities(
|
| + const RequestCapabilitiesCallback& callback) OVERRIDE;
|
| + virtual void OpenBitstream(
|
| + media::EncodedVideoSource::Client* client,
|
| + const media::VideoEncodingParameters& params) OVERRIDE;
|
| + virtual void CloseBitstream() OVERRIDE;
|
| + virtual void ReturnBitstreamBuffer(
|
| + scoped_refptr<const media::EncodedBitstreamBuffer> buffer) OVERRIDE;
|
| + virtual void TrySetBitstreamConfig(
|
| + const media::RuntimeVideoEncodingParameters& params) OVERRIDE;
|
|
|
| // Stop/resume delivering video frames to clients, based on flag |suspend|.
|
| virtual void SuspendCapture(bool suspend);
|
| @@ -101,6 +129,26 @@ class CONTENT_EXPORT VideoCaptureImpl
|
|
|
| void DoSuspendCaptureOnCaptureThread(bool suspend);
|
|
|
| + void StartFetchCapabilities();
|
| + void DoRequestCapabilitiesOnCaptureThread(
|
| + const RequestCapabilitiesCallback& callback);
|
| + void DoOpenBitstreamOnCaptureThread(
|
| + media::EncodedVideoSource::Client* client,
|
| + const media::VideoEncodingParameters& params);
|
| + void DoCloseBitstreamOnCaptureThread();
|
| + void DoNotifyBitstreamOpenedOnCaptureThread(
|
| + const media::VideoEncodingParameters& params,
|
| + const std::vector<base::SharedMemoryHandle>& buffers,
|
| + uint32 buffer_size);
|
| + void DoNotifyBitstreamClosedOnCaptureThread();
|
| + void DoNotifyBitstreamConfigChangedOnCaptureThread(
|
| + const media::RuntimeVideoEncodingParameters& params);
|
| + void DoNotifyBitstreamBufferReadyOnCaptureThread(
|
| + int buffer_id, uint32 size,
|
| + const media::BufferEncodingMetadata& metadata);
|
| + void DoNotifyCapabilitiesAvailableOnCaptureThread(
|
| + const media::VideoEncodingCapabilities& capabilities);
|
| +
|
| void Init();
|
| void DeInit(base::Closure task);
|
| void DoDeInitOnCaptureThread(base::Closure task);
|
| @@ -143,6 +191,20 @@ class CONTENT_EXPORT VideoCaptureImpl
|
| bool suspended_;
|
| VideoCaptureState state_;
|
|
|
| + // Video encoding capabilities as reported by the device.
|
| + media::VideoEncodingCapabilities encoding_caps_;
|
| + // Callback for RequestCapabilities().
|
| + RequestCapabilitiesCallback encoding_caps_callback_;
|
| + // Pointer to the EVS client.
|
| + media::EncodedVideoSource::Client* encoded_video_source_client_;
|
| + // Bitstream buffers returned by the video capture device. Unowned.
|
| + std::vector<base::SharedMemory*> bitstream_buffers_;
|
| + // |bitstream_open_| is set to true when renderer receives BitstreamOpened
|
| + // message acknowledging an OpenBitstream request, and is set to false when
|
| + // the EVS client requests to close bitstream, or when renderer receives
|
| + // BitstreamClosed message from the browser procses.
|
| + bool bitstream_open_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(VideoCaptureImpl);
|
| };
|
|
|
|
|