• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 // Implementation of a VideoCaptureDeviceFactoryLinux class.
6 
7 #ifndef MEDIA_VIDEO_CAPTURE_LINUX_VIDEO_CAPTURE_DEVICE_FACTORY_LINUX_H_
8 #define MEDIA_VIDEO_CAPTURE_LINUX_VIDEO_CAPTURE_DEVICE_FACTORY_LINUX_H_
9 
10 #include "media/video/capture/video_capture_device_factory.h"
11 
12 #include "media/video/capture/video_capture_types.h"
13 
14 namespace media {
15 
16 // Extension of VideoCaptureDeviceFactory to create and manipulate Linux
17 // devices.
18 class MEDIA_EXPORT VideoCaptureDeviceFactoryLinux
19     : public VideoCaptureDeviceFactory {
20  public:
21   explicit VideoCaptureDeviceFactoryLinux(
22       scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner);
23   virtual ~VideoCaptureDeviceFactoryLinux();
24 
25   virtual scoped_ptr<VideoCaptureDevice> Create(
26       const VideoCaptureDevice::Name& device_name) OVERRIDE;
27   virtual void GetDeviceNames(VideoCaptureDevice::Names* device_names) OVERRIDE;
28   virtual void GetDeviceSupportedFormats(
29       const VideoCaptureDevice::Name& device,
30       VideoCaptureFormats* supported_formats) OVERRIDE;
31 
32  private:
33   scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
34   DISALLOW_COPY_AND_ASSIGN(VideoCaptureDeviceFactoryLinux);
35 };
36 
37 }  // namespace media
38 #endif  // MEDIA_VIDEO_CAPTURE_LINUX_VIDEO_CAPTURE_DEVICE_FACTORY_LINUX_H_
39