Index: content/renderer/pepper/pepper_platform_video_capture.h |
diff --git a/content/renderer/pepper/pepper_platform_video_capture.h b/content/renderer/pepper/pepper_platform_video_capture.h |
index 1d0b47c68ae554ad73c552358af0aa57938f77b5..89642b413b948aa5a9456a7cf4e53435aad861ac 100644 |
--- a/content/renderer/pepper/pepper_platform_video_capture.h |
+++ b/content/renderer/pepper/pepper_platform_video_capture.h |
@@ -8,66 +8,42 @@ |
#include <string> |
#include "base/basictypes.h" |
+#include "base/callback.h" |
#include "base/compiler_specific.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
-#include "media/video/capture/video_capture.h" |
+#include "base/threading/thread_checker.h" |
+#include "content/common/media/video_capture.h" |
#include "media/video/capture/video_capture_types.h" |
class GURL; |
-namespace media { |
-class VideoCaptureHandlerProxy; |
-} |
- |
namespace content { |
class PepperMediaDeviceManager; |
class PepperVideoCaptureHost; |
class RenderViewImpl; |
-class VideoCaptureHandle; |
-class PepperPlatformVideoCapture |
- : public media::VideoCapture, |
- public base::RefCounted<PepperPlatformVideoCapture>, |
- public media::VideoCapture::EventHandler { |
+// This is a single-threaded object. All methods must be called on the |
+// same thread. |
bbudge
2014/04/26 00:27:12
I don't really get this comment. I think it's assu
|
+class PepperPlatformVideoCapture { |
public: |
PepperPlatformVideoCapture(const base::WeakPtr<RenderViewImpl>& render_view, |
const std::string& device_id, |
const GURL& document_url, |
PepperVideoCaptureHost* handler); |
+ virtual ~PepperPlatformVideoCapture(); |
// Detaches the event handler and stops sending notifications to it. |
void DetachEventHandler(); |
- // media::VideoCapture implementation. |
- virtual void StartCapture(media::VideoCapture::EventHandler* handler, |
- const media::VideoCaptureParams& params) OVERRIDE; |
- virtual void StopCapture(media::VideoCapture::EventHandler* handler) OVERRIDE; |
- virtual bool CaptureStarted() OVERRIDE; |
- virtual int CaptureFrameRate() OVERRIDE; |
- virtual void GetDeviceSupportedFormats(const DeviceFormatsCallback& callback) |
- OVERRIDE; |
- virtual void GetDeviceFormatsInUse(const DeviceFormatsInUseCallback& callback) |
- OVERRIDE; |
- |
- // media::VideoCapture::EventHandler implementation |
- virtual void OnStarted(VideoCapture* capture) OVERRIDE; |
- virtual void OnStopped(VideoCapture* capture) OVERRIDE; |
- virtual void OnPaused(VideoCapture* capture) OVERRIDE; |
- virtual void OnError(VideoCapture* capture, int error_code) OVERRIDE; |
- virtual void OnRemoved(VideoCapture* capture) OVERRIDE; |
- virtual void OnFrameReady(VideoCapture* capture, |
- const scoped_refptr<media::VideoFrame>& frame) |
- OVERRIDE; |
- |
- protected: |
- friend class base::RefCounted<PepperPlatformVideoCapture>; |
- virtual ~PepperPlatformVideoCapture(); |
+ void StartCapture(const media::VideoCaptureParams& params); |
+ void StopCapture(); |
private: |
- void Initialize(); |
- |
void OnDeviceOpened(int request_id, bool succeeded, const std::string& label); |
+ void OnStateUpdate(VideoCaptureState state); |
+ void OnFrameReady(const scoped_refptr<media::VideoFrame>& frame, |
+ const media::VideoCaptureFormat& format); |
PepperMediaDeviceManager* GetMediaDeviceManager(); |
@@ -76,22 +52,20 @@ class PepperPlatformVideoCapture |
std::string device_id_; |
std::string label_; |
int session_id_; |
- |
- scoped_ptr<media::VideoCaptureHandlerProxy> handler_proxy_; |
+ base::Closure release_device_cb_; |
+ base::Closure stop_capture_cb_; |
PepperVideoCaptureHost* handler_; |
- scoped_ptr<VideoCaptureHandle> video_capture_; |
- |
- // StartCapture() must be balanced by StopCapture(), otherwise this object |
- // will leak. |
- bool unbalanced_start_; |
- |
// Whether we have a pending request to open a device. We have to make sure |
// there isn't any pending request before this object goes away. |
bool pending_open_device_; |
int pending_open_device_id_; |
+ base::ThreadChecker thread_checker_; |
+ |
+ base::WeakPtrFactory<PepperPlatformVideoCapture> weak_factory_; |
+ |
DISALLOW_COPY_AND_ASSIGN(PepperPlatformVideoCapture); |
}; |