summaryrefslogtreecommitdiffstats
path: root/content/browser/renderer_host/video_capture_controller.h
diff options
context:
space:
mode:
Diffstat (limited to 'content/browser/renderer_host/video_capture_controller.h')
-rw-r--r--content/browser/renderer_host/video_capture_controller.h47
1 files changed, 12 insertions, 35 deletions
diff --git a/content/browser/renderer_host/video_capture_controller.h b/content/browser/renderer_host/video_capture_controller.h
index 18341ad..9eae8c7 100644
--- a/content/browser/renderer_host/video_capture_controller.h
+++ b/content/browser/renderer_host/video_capture_controller.h
@@ -22,6 +22,7 @@
#include "base/process.h"
#include "base/synchronization/lock.h"
#include "base/task.h"
+#include "content/browser/renderer_host/video_capture_controller_event_handler.h"
#include "media/video/capture/video_capture_device.h"
#include "media/video/capture/video_capture_types.h"
#include "ui/gfx/surface/transport_dib.h"
@@ -30,51 +31,27 @@ class VideoCaptureController
: public base::RefCountedThreadSafe<VideoCaptureController>,
public media::VideoCaptureDevice::EventHandler {
public:
- // Id used for identifying an object of VideoCaptureController.
- typedef std::pair<int32, int> ControllerId;
- class EventHandler {
- public:
- // An Error have occurred in the VideoCaptureDevice.
- virtual void OnError(ControllerId id) = 0;
-
- // An TransportDIB have been filled with I420 video.
- virtual void OnBufferReady(ControllerId id,
- TransportDIB::Handle handle,
- base::Time timestamp) = 0;
-
- // The frame resolution the VideoCaptureDevice capture video in.
- virtual void OnFrameInfo(ControllerId id,
- int width,
- int height,
- int frame_rate) = 0;
-
- // Report that this object can be deleted.
- virtual void OnReadyToDelete(ControllerId id) = 0;
-
- protected:
- virtual ~EventHandler() {}
- };
-
- VideoCaptureController(ControllerId id,
+ VideoCaptureController(const VideoCaptureControllerID& id,
base::ProcessHandle render_process,
- EventHandler* event_handler);
+ VideoCaptureControllerEventHandler* event_handler);
virtual ~VideoCaptureController();
// Starts video capturing and tries to use the resolution specified in
// params.
- // When capturing has started EventHandler::OnFrameInfo is called with
- // resolution that best matches the requested that the video capture device
- // support.
+ // When capturing has started VideoCaptureControllerEventHandler::OnFrameInfo
+ // is called with resolution that best matches the requested that the video
+ // capture device support.
void StartCapture(const media::VideoCaptureParams& params);
// Stop video capture.
// When the capture is stopped and all TransportDIBS have been returned
- // EventHandler::OnReadyToDelete will be called.
+ // VideoCaptureControllerEventHandler::OnReadyToDelete will be called.
// stopped_task may be null but it can be used to get a notification when the
// device is stopped.
void StopCapture(Task* stopped_task);
- // Return a DIB previously given in EventHandler::OnBufferReady.
+ // Return a DIB previously given in
+ // VideoCaptureControllerEventHandler::OnBufferReady.
void ReturnTransportDIB(TransportDIB::Handle handle);
// Implement media::VideoCaptureDevice::EventHandler.
@@ -101,13 +78,13 @@ class VideoCaptureController
// All DIBS created by this object.
DIBMap owned_dibs_;
- EventHandler* event_handler_;
+ VideoCaptureControllerEventHandler* event_handler_;
// The parameter that was requested when starting the capture device.
media::VideoCaptureParams params_;
- // Id used for identifying this object.
- ControllerId id_;
+ // ID used for identifying this object.
+ VideoCaptureControllerID id_;
media::VideoCaptureDevice::Capability frame_info_;
DISALLOW_IMPLICIT_CONSTRUCTORS(VideoCaptureController);