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

Side by Side Diff: media/video/capture/mac/video_capture_device_factory_mac.h

Issue 294893006: VideoCaptureDeviceFactory: Change device enumeration to callback + QTKit enumerates in UI thread. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: QTKit/AVFoundation Factory create of inexistent device and associated unit tests Created 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Implementation of a VideoCaptureDeviceFactory class for Mac. 5 // Implementation of a VideoCaptureDeviceFactory class for Mac.
6 6
7 #ifndef MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_FACTORY_MAC_H_ 7 #ifndef MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_FACTORY_MAC_H_
8 #define MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_FACTORY_MAC_H_ 8 #define MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_FACTORY_MAC_H_
9 9
10 #include "media/video/capture/video_capture_device_factory.h" 10 #include "media/video/capture/video_capture_device_factory.h"
11 11
12 namespace media { 12 namespace media {
13 13
14 // Extension of VideoCaptureDeviceFactory to create and manipulate Mac devices. 14 // Extension of VideoCaptureDeviceFactory to create and manipulate Mac devices.
15 class MEDIA_EXPORT VideoCaptureDeviceFactoryMac : 15 class MEDIA_EXPORT VideoCaptureDeviceFactoryMac :
16 public VideoCaptureDeviceFactory { 16 public VideoCaptureDeviceFactory {
17 public: 17 public:
18 VideoCaptureDeviceFactoryMac(); 18 static bool PlatformSupportsAVFoundation();
19 virtual ~VideoCaptureDeviceFactoryMac() {} 19
20 explicit VideoCaptureDeviceFactoryMac(
21 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner);
22 virtual ~VideoCaptureDeviceFactoryMac();
20 23
21 virtual scoped_ptr<VideoCaptureDevice> Create( 24 virtual scoped_ptr<VideoCaptureDevice> Create(
22 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
23 const VideoCaptureDevice::Name& device_name) OVERRIDE; 25 const VideoCaptureDevice::Name& device_name) OVERRIDE;
24 virtual void GetDeviceNames(VideoCaptureDevice::Names* device_names) OVERRIDE; 26 virtual void GetDeviceNames(VideoCaptureDevice::Names* device_names) OVERRIDE;
27 virtual void EnumerateDeviceNames(const base::Callback<
28 void(scoped_ptr<media::VideoCaptureDevice::Names>)>& callback) OVERRIDE;
25 virtual void GetDeviceSupportedFormats( 29 virtual void GetDeviceSupportedFormats(
26 const VideoCaptureDevice::Name& device, 30 const VideoCaptureDevice::Name& device,
27 VideoCaptureFormats* supported_formats) OVERRIDE; 31 VideoCaptureFormats* supported_formats) OVERRIDE;
28 32
29 private: 33 private:
34 // Cache of |ui_task_runner| for enumerating devices there for QTKit.
35 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
36
30 DISALLOW_COPY_AND_ASSIGN(VideoCaptureDeviceFactoryMac); 37 DISALLOW_COPY_AND_ASSIGN(VideoCaptureDeviceFactoryMac);
31 }; 38 };
32 39
33 } // namespace media 40 } // namespace media
34 41
35 #endif // MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_FACTORY_MAC_H_ 42 #endif // MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_FACTORY_MAC_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698