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

Unified Diff: media/capture/video/linux/video_capture_device_chromeos.cc

Issue 2837273004: media: add video capture device for ARC++ camera HAL v3 (Closed)
Patch Set: RELAND: media: add video capture device for ARC++ camera HAL v3 Created 3 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: media/capture/video/linux/video_capture_device_chromeos.cc
diff --git a/media/capture/video/linux/video_capture_device_chromeos.cc b/media/capture/video/linux/video_capture_device_chromeos.cc
index 3ba9f50330cc058623e577a62f8faadc5fbc7d30..329939be1f9ced92a6fe43acb1c95d45a0a5becd 100644
--- a/media/capture/video/linux/video_capture_device_chromeos.cc
+++ b/media/capture/video/linux/video_capture_device_chromeos.cc
@@ -22,83 +22,6 @@ static CameraConfigChromeOS* GetCameraConfig() {
return config;
}
-// This is a delegate class used to transfer Display change events from the UI
-// thread to the media thread.
-class VideoCaptureDeviceChromeOS::ScreenObserverDelegate
- : public display::DisplayObserver,
- public base::RefCountedThreadSafe<ScreenObserverDelegate> {
- public:
- ScreenObserverDelegate(
- VideoCaptureDeviceChromeOS* capture_device,
- scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
- : capture_device_(capture_device),
- ui_task_runner_(ui_task_runner),
- capture_task_runner_(base::ThreadTaskRunnerHandle::Get()) {
- ui_task_runner_->PostTask(
- FROM_HERE,
- base::Bind(&ScreenObserverDelegate::AddObserverOnUIThread, this));
- }
-
- void RemoveObserver() {
- DCHECK(capture_task_runner_->BelongsToCurrentThread());
- capture_device_ = NULL;
- ui_task_runner_->PostTask(
- FROM_HERE,
- base::Bind(&ScreenObserverDelegate::RemoveObserverOnUIThread, this));
- }
-
- private:
- friend class base::RefCountedThreadSafe<ScreenObserverDelegate>;
-
- ~ScreenObserverDelegate() override { DCHECK(!capture_device_); }
-
- void OnDisplayAdded(const display::Display& /*new_display*/) override {}
- void OnDisplayRemoved(const display::Display& /*old_display*/) override {}
- void OnDisplayMetricsChanged(const display::Display& display,
- uint32_t metrics) override {
- DCHECK(ui_task_runner_->BelongsToCurrentThread());
- if (!(metrics & DISPLAY_METRIC_ROTATION))
- return;
- SendDisplayRotation(display);
- }
-
- void AddObserverOnUIThread() {
- DCHECK(ui_task_runner_->BelongsToCurrentThread());
- display::Screen* screen = display::Screen::GetScreen();
- if (screen) {
- screen->AddObserver(this);
- SendDisplayRotation(screen->GetPrimaryDisplay());
- }
- }
-
- void RemoveObserverOnUIThread() {
- DCHECK(ui_task_runner_->BelongsToCurrentThread());
- display::Screen* screen = display::Screen::GetScreen();
- if (screen)
- screen->RemoveObserver(this);
- }
-
- // Post the screen rotation change from the UI thread to capture thread
- void SendDisplayRotation(const display::Display& display) {
- DCHECK(ui_task_runner_->BelongsToCurrentThread());
- capture_task_runner_->PostTask(
- FROM_HERE,
- base::Bind(&ScreenObserverDelegate::SendDisplayRotationOnCaptureThread,
- this, display));
- }
-
- void SendDisplayRotationOnCaptureThread(const display::Display& display) {
- DCHECK(capture_task_runner_->BelongsToCurrentThread());
- if (capture_device_)
- capture_device_->SetDisplayRotation(display);
- }
-
- VideoCaptureDeviceChromeOS* capture_device_;
- scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
- scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner_;
- DISALLOW_IMPLICIT_CONSTRUCTORS(ScreenObserverDelegate);
-};
-
VideoCaptureDeviceChromeOS::VideoCaptureDeviceChromeOS(
scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
const VideoCaptureDeviceDescriptor& device_descriptor)

Powered by Google App Engine
This is Rietveld 408576698