video_capture_device_chromeos.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef MEDIA_VIDEO_CAPTURE_LINUX_VIDEO_CAPTURE_DEVICE_CHROMEOS_H_
6#define MEDIA_VIDEO_CAPTURE_LINUX_VIDEO_CAPTURE_DEVICE_CHROMEOS_H_
7
8#include "media/video/capture/linux/video_capture_device_linux.h"
9
10namespace gfx {
11class Display;
12}  // namespace gfx
13
14namespace media {
15
16// This class is functionally the same as VideoCaptureDeviceLinux, with the
17// exception that it is aware of the orientation of the internal Display.  When
18// the internal Display is rotated, the frames captured are rotated to match.
19class VideoCaptureDeviceChromeOS : public VideoCaptureDeviceLinux {
20 public:
21  explicit VideoCaptureDeviceChromeOS(
22      scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
23      const Name& device_name);
24  virtual ~VideoCaptureDeviceChromeOS();
25
26  void SetDisplayRotation(const gfx::Display& display);
27
28 private:
29  class ScreenObserverDelegate;
30
31  scoped_refptr<ScreenObserverDelegate> screen_observer_delegate_;
32  DISALLOW_IMPLICIT_CONSTRUCTORS(VideoCaptureDeviceChromeOS);
33};
34
35}  // namespace media
36
37#endif  // MEDIA_VIDEO_CAPTURE_LINUX_VIDEO_CAPTURE_DEVICE_CHROMEOS_H_
38