Index: media/video/capture/video_capture_device_factory.cc |
diff --git a/media/video/capture/video_capture_device_factory.cc b/media/video/capture/video_capture_device_factory.cc |
index e63225dc178c9ea375bd62f965ccea9440b73f4f..661900c4118f11091462c670f43e4e6420af02dc 100644 |
--- a/media/video/capture/video_capture_device_factory.cc |
+++ b/media/video/capture/video_capture_device_factory.cc |
@@ -4,11 +4,47 @@ |
#include "media/video/capture/video_capture_device_factory.h" |
+#include "base/command_line.h" |
+#include "media/base/media_switches.h" |
+#include "media/video/capture/fake_video_capture_device_factory.h" |
+#include "media/video/capture/file_video_capture_device_factory.h" |
+ |
+#if defined(OS_MACOSX) |
+#include "media/video/capture/mac/video_capture_device_factory_mac.h" |
+#endif |
+ |
namespace media { |
+// static |
+scoped_ptr<VideoCaptureDeviceFactory> |
+ VideoCaptureDeviceFactory::CreateFactory() { |
+ const CommandLine* command_line = CommandLine::ForCurrentProcess(); |
+ // Use a Fake or File Video Device Factory if the command line flags are |
+ // present, otherwise use the normal, platform-dependent, device factory. |
+ if (command_line->HasSwitch(switches::kUseFakeDeviceForMediaStream)) { |
+ if (command_line->HasSwitch(switches::kUseFileForFakeVideoCapture)) { |
+ return scoped_ptr<VideoCaptureDeviceFactory>(new |
+ media::FileVideoCaptureDeviceFactory()); |
+ } else { |
+ return scoped_ptr<VideoCaptureDeviceFactory>(new |
+ media::FakeVideoCaptureDeviceFactory()); |
+ } |
+ } else { |
+#if defined(OS_MACOSX) |
+ return scoped_ptr<VideoCaptureDeviceFactory>(new |
+ VideoCaptureDeviceFactoryMac()); |
+#else |
+ return scoped_ptr<VideoCaptureDeviceFactory>(new |
+ VideoCaptureDeviceFactory()); |
+#endif |
+ } |
+} |
+ |
VideoCaptureDeviceFactory::VideoCaptureDeviceFactory() { |
thread_checker_.DetachFromThread(); |
-}; |
+} |
+ |
+VideoCaptureDeviceFactory::~VideoCaptureDeviceFactory() {} |
scoped_ptr<VideoCaptureDevice> VideoCaptureDeviceFactory::Create( |
const VideoCaptureDevice::Name& device_name) { |