OLD | NEW |
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 #include "media/video/capture/file_video_capture_device_factory.h" | 5 #include "media/video/capture/file_video_capture_device_factory.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/strings/sys_string_conversions.h" | 9 #include "base/strings/sys_string_conversions.h" |
10 #include "media/base/media_switches.h" | 10 #include "media/base/media_switches.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 #else | 33 #else |
34 return scoped_ptr<VideoCaptureDevice>(new FileVideoCaptureDevice( | 34 return scoped_ptr<VideoCaptureDevice>(new FileVideoCaptureDevice( |
35 base::FilePath(device_name.name()))); | 35 base::FilePath(device_name.name()))); |
36 #endif | 36 #endif |
37 } | 37 } |
38 | 38 |
39 void FileVideoCaptureDeviceFactory::GetDeviceNames( | 39 void FileVideoCaptureDeviceFactory::GetDeviceNames( |
40 VideoCaptureDevice::Names* const device_names) { | 40 VideoCaptureDevice::Names* const device_names) { |
41 DCHECK(thread_checker_.CalledOnValidThread()); | 41 DCHECK(thread_checker_.CalledOnValidThread()); |
42 DCHECK(device_names->empty()); | 42 DCHECK(device_names->empty()); |
43 base::FilePath command_line_file_path = GetFilePathFromCommandLine(); | 43 const base::FilePath command_line_file_path = GetFilePathFromCommandLine(); |
44 #if defined(OS_WIN) | 44 #if defined(OS_WIN) |
45 device_names->push_back(VideoCaptureDevice::Name( | 45 device_names->push_back(VideoCaptureDevice::Name( |
46 base::SysWideToUTF8(command_line_file_path.value()), | 46 base::SysWideToUTF8(command_line_file_path.value()), |
47 kFileVideoCaptureDeviceName, | 47 kFileVideoCaptureDeviceName, |
48 VideoCaptureDevice::Name::DIRECT_SHOW)); | 48 VideoCaptureDevice::Name::DIRECT_SHOW)); |
49 #elif defined(OS_MACOSX) | 49 #elif defined(OS_MACOSX) |
50 device_names->push_back(VideoCaptureDevice::Name( | 50 device_names->push_back(VideoCaptureDevice::Name( |
51 command_line_file_path.value(), | 51 command_line_file_path.value(), |
52 kFileVideoCaptureDeviceName, | 52 kFileVideoCaptureDeviceName, |
53 VideoCaptureDevice::Name::AVFOUNDATION)); | 53 VideoCaptureDevice::Name::AVFOUNDATION)); |
54 #else | 54 #else |
55 device_names->push_back(VideoCaptureDevice::Name( | 55 device_names->push_back(VideoCaptureDevice::Name( |
56 command_line_file_path.value(), | 56 command_line_file_path.value(), |
57 kFileVideoCaptureDeviceName)); | 57 kFileVideoCaptureDeviceName)); |
58 #endif | 58 #endif |
59 } | 59 } |
60 | 60 |
61 void FileVideoCaptureDeviceFactory::GetDeviceSupportedFormats( | 61 void FileVideoCaptureDeviceFactory::GetDeviceSupportedFormats( |
62 const VideoCaptureDevice::Name& device, | 62 const VideoCaptureDevice::Name& device, |
63 VideoCaptureFormats* supported_formats) { | 63 VideoCaptureFormats* supported_formats) { |
64 DCHECK(thread_checker_.CalledOnValidThread()); | 64 DCHECK(thread_checker_.CalledOnValidThread()); |
65 base::File file = | 65 base::File file = |
66 FileVideoCaptureDevice::OpenFileForRead(GetFilePathFromCommandLine()); | 66 FileVideoCaptureDevice::OpenFileForRead(GetFilePathFromCommandLine()); |
| 67 if (!file.IsValid()) |
| 68 return; |
67 VideoCaptureFormat capture_format; | 69 VideoCaptureFormat capture_format; |
68 FileVideoCaptureDevice::ParseFileAndExtractVideoFormat(&file, | 70 FileVideoCaptureDevice::ParseFileAndExtractVideoFormat(&file, |
69 &capture_format); | 71 &capture_format); |
70 supported_formats->push_back(capture_format); | 72 supported_formats->push_back(capture_format); |
71 } | 73 } |
72 | 74 |
73 } // namespace media | 75 } // namespace media |
OLD | NEW |