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

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: Rename encoded_video_source_messages to encoded_video_capture_messages. Add buffer_size in OnOpened… 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 e47c35dba8d115451fc0e71c4405e52667ae273b..44abfdb79938faa7ec382bba32fa6a5049b66dec 100644
--- a/content/renderer/media/video_capture_impl.h
+++ b/content/renderer/media/video_capture_impl.h
@@ -27,6 +27,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;
@@ -35,7 +36,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(
@@ -56,6 +59,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,
+ int buffer_size) OVERRIDE;
+ virtual void OnEncodedBitstreamClosed() OVERRIDE;
+ virtual void OnEncodingConfigChanged(
+ const media::RuntimeVideoEncodingParameters& params) OVERRIDE;
+ virtual void OnEncodedBufferReady(
+ int buffer_id,
+ int 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);
@@ -90,6 +118,18 @@ class CONTENT_EXPORT VideoCaptureImpl
void DoSuspendCaptureOnCaptureThread(bool suspend);
+ void StartFetchCapabilities();
+ void DoNotifyBitstreamOpenedOnCaptureThread(
+ const media::VideoEncodingParameters& params,
+ const std::vector<base::SharedMemoryHandle>& buffers,
+ int buffer_size);
+ void DoNotifyBitstreamClosedOnCaptureThread();
+ void DoNotifyBitstreamConfigChangedOnCaptureThread(
+ const media::RuntimeVideoEncodingParameters& params);
+ void DoNotifyBitstreamBufferReadyOnCaptureThread(
+ int buffer_id, int size,
+ const media::BufferEncodingMetadata& metadata);
+
void Init();
void DeInit(base::Closure task);
void DoDeInitOnCaptureThread(base::Closure task);
@@ -132,6 +172,17 @@ class CONTENT_EXPORT VideoCaptureImpl
bool suspended_;
VideoCaptureState state_;
+ // Video encoding capabilities as reported by the device.
+ media::VideoEncodingCapabilities capabilities_;
+ // Callback for RequestCapabilities().
+ RequestCapabilitiesCallback callback_;
+ // Pointer to the EVS client.
+ media::EncodedVideoSource::Client* client_;
+ // Bitstream buffers returned by the video capture device. Unowned.
+ std::vector<base::SharedMemory*> bitstream_buffers_;
+ // Size of bitstream buffers returned by the video capture device.
+ int bitstream_buffer_size_;
+
DISALLOW_COPY_AND_ASSIGN(VideoCaptureImpl);
};

Powered by Google App Engine
This is Rietveld 408576698