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

Unified Diff: content/renderer/media/video_capture_impl.h

Issue 16320005: Define EncodedVideoSource and RtcCapturedEncodingVideoCapturer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased at 209707. Fix compile warnings. Created 7 years, 6 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/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);
};
« no previous file with comments | « content/renderer/media/rtc_encoding_video_capturer_factory.cc ('k') | content/renderer/media/video_capture_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698