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

Unified Diff: content/browser/renderer_host/media/video_capture_device_client.h

Issue 2308533003: Break tight coupling of VideoCaptureDeviceClient to renderer_host (Closed)
Patch Set: Apply method name changes to Mock Created 4 years, 3 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/browser/renderer_host/media/video_capture_device_client.h
diff --git a/content/browser/renderer_host/media/video_capture_device_client.h b/content/browser/renderer_host/media/video_capture_device_client.h
index c5447ca18e74eed9969270fb657a72e2aefd87f6..6eed12a8f052e8e5a6b23c7435d40452b7ba6a0d 100644
--- a/content/browser/renderer_host/media/video_capture_device_client.h
+++ b/content/browser/renderer_host/media/video_capture_device_client.h
@@ -17,13 +17,14 @@
#include "media/capture/video/video_capture_device.h"
namespace content {
-class VideoCaptureBufferPool;
-class VideoCaptureController;
-class VideoCaptureGpuJpegDecoder;
+class VideoCaptureBufferPoolInterface;
+class VideoFrameReceiver;
+class VideoCaptureJpegDecoderFactory;
+class VideoCaptureJpegDecoder;
-// Receives events from the VideoCaptureDevice and posts them to a |controller_|
+// Receives events from the VideoCaptureDevice and posts them to a |receiver_|
// on the IO thread. An instance of this class may safely outlive its target
-// VideoCaptureController. This is a shallow class meant to convert incoming
+// VideoFrameReceiver. This is a shallow class meant to convert incoming
// frames and holds no significant state.
//
// Methods of this class may be called from any thread, and in practice will
@@ -40,8 +41,10 @@ class CONTENT_EXPORT VideoCaptureDeviceClient
public base::SupportsWeakPtr<VideoCaptureDeviceClient> {
public:
VideoCaptureDeviceClient(
- const base::WeakPtr<VideoCaptureController>& controller,
- const scoped_refptr<VideoCaptureBufferPool>& buffer_pool);
+ std::unique_ptr<VideoFrameReceiver> receiver,
+ const scoped_refptr<VideoCaptureBufferPoolInterface>& buffer_pool,
+ std::unique_ptr<VideoCaptureJpegDecoderFactory> jpeg_decoder_factory,
+ const base::Closure& check_thread_closure);
~VideoCaptureDeviceClient() override;
// VideoCaptureDevice::Client implementation.
@@ -91,17 +94,17 @@ class CONTENT_EXPORT VideoCaptureDeviceClient
uint8_t** u_plane_data,
uint8_t** v_plane_data);
- // The controller to which we post events.
- const base::WeakPtr<VideoCaptureController> controller_;
+ // The receiver to which we post events.
+ std::unique_ptr<VideoFrameReceiver> receiver_;
mcasas 2016/09/07 22:43:40 maybe const? Also, there's a subtle change here i
chfremer 2016/09/08 17:28:51 Not sure if my understanding of the threading issu
mcasas 2016/09/08 20:25:45 Notwithstanding any offline discussions, I see thi
chfremer 2016/09/09 00:55:37 Discussed offline. mcasas@ found out that after co
- // Hardware JPEG decoder.
- std::unique_ptr<VideoCaptureGpuJpegDecoder> external_jpeg_decoder_;
+ std::unique_ptr<VideoCaptureJpegDecoderFactory> jpeg_decoder_factory_;
mcasas 2016/09/07 22:43:40 const
chfremer 2016/09/08 17:28:51 Done.
+ std::unique_ptr<VideoCaptureJpegDecoder> external_jpeg_decoder_;
// Whether |external_jpeg_decoder_| has been initialized.
bool external_jpeg_decoder_initialized_;
// The pool of shared-memory buffers used for capturing.
- const scoped_refptr<VideoCaptureBufferPool> buffer_pool_;
+ const scoped_refptr<VideoCaptureBufferPoolInterface> buffer_pool_;
#if DCHECK_IS_ON()
// Counter used to track the number of times consecutive capture buffers are

Powered by Google App Engine
This is Rietveld 408576698