Home | History | Annotate | Download | only in linux
      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