| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // VideoCaptureDevice is the abstract base class for realizing video capture | 5 // VideoCaptureDevice is the abstract base class for realizing video capture |
| 6 // device support in Chromium. It provides the interface for OS dependent | 6 // device support in Chromium. It provides the interface for OS dependent |
| 7 // implementations. | 7 // implementations. |
| 8 // The class is created and functions are invoked on a thread owned by | 8 // The class is created and functions are invoked on a thread owned by |
| 9 // VideoCaptureManager. Capturing is done on other threads, depending on the OS | 9 // VideoCaptureManager. Capturing is done on other threads, depending on the OS |
| 10 // specific implementation. | 10 // specific implementation. |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 // Linux/CrOS targets Capture Api type: it can only be set on construction. | 55 // Linux/CrOS targets Capture Api type: it can only be set on construction. |
| 56 enum CaptureApiType { | 56 enum CaptureApiType { |
| 57 V4L2_SINGLE_PLANE, | 57 V4L2_SINGLE_PLANE, |
| 58 API_TYPE_UNKNOWN | 58 API_TYPE_UNKNOWN |
| 59 }; | 59 }; |
| 60 #elif defined(OS_WIN) | 60 #elif defined(OS_WIN) |
| 61 // Windows targets Capture Api type: it can only be set on construction. | 61 // Windows targets Capture Api type: it can only be set on construction. |
| 62 enum CaptureApiType { MEDIA_FOUNDATION, DIRECT_SHOW, API_TYPE_UNKNOWN }; | 62 enum CaptureApiType { MEDIA_FOUNDATION, DIRECT_SHOW, API_TYPE_UNKNOWN }; |
| 63 #elif defined(OS_MACOSX) | 63 #elif defined(OS_MACOSX) |
| 64 // Mac targets Capture Api type: it can only be set on construction. | 64 // Mac targets Capture Api type: it can only be set on construction. |
| 65 enum CaptureApiType { AVFOUNDATION, QTKIT, DECKLINK, API_TYPE_UNKNOWN }; | 65 enum CaptureApiType { AVFOUNDATION, DECKLINK, API_TYPE_UNKNOWN }; |
| 66 // For AVFoundation Api, identify devices that are built-in or USB. | 66 // For AVFoundation Api, identify devices that are built-in or USB. |
| 67 enum TransportType { USB_OR_BUILT_IN, OTHER_TRANSPORT }; | 67 enum TransportType { USB_OR_BUILT_IN, OTHER_TRANSPORT }; |
| 68 #elif defined(OS_ANDROID) | 68 #elif defined(OS_ANDROID) |
| 69 // Android targets Capture Api type: it can only be set on construction. | 69 // Android targets Capture Api type: it can only be set on construction. |
| 70 // Automatically generated enum to interface with Java world. | 70 // Automatically generated enum to interface with Java world. |
| 71 // | 71 // |
| 72 // A Java counterpart will be generated for this enum. | 72 // A Java counterpart will be generated for this enum. |
| 73 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.media | 73 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.media |
| 74 enum CaptureApiType { | 74 enum CaptureApiType { |
| 75 API1, | 75 API1, |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 const char* GetCaptureApiTypeString() const; | 126 const char* GetCaptureApiTypeString() const; |
| 127 #endif | 127 #endif |
| 128 #if defined(OS_WIN) | 128 #if defined(OS_WIN) |
| 129 // Certain devices need an ID different from the |unique_id_| for | 129 // Certain devices need an ID different from the |unique_id_| for |
| 130 // capabilities retrieval. | 130 // capabilities retrieval. |
| 131 const std::string& capabilities_id() const { return capabilities_id_; } | 131 const std::string& capabilities_id() const { return capabilities_id_; } |
| 132 void set_capabilities_id(const std::string& id) { capabilities_id_ = id; } | 132 void set_capabilities_id(const std::string& id) { capabilities_id_ = id; } |
| 133 #endif // if defined(OS_WIN) | 133 #endif // if defined(OS_WIN) |
| 134 #if defined(OS_MACOSX) | 134 #if defined(OS_MACOSX) |
| 135 TransportType transport_type() const { return transport_type_; } | 135 TransportType transport_type() const { return transport_type_; } |
| 136 bool is_blacklisted() const { return is_blacklisted_; } | |
| 137 void set_is_blacklisted(bool is_blacklisted) { | |
| 138 is_blacklisted_ = is_blacklisted; | |
| 139 } | |
| 140 #endif // if defined(OS_MACOSX) | 136 #endif // if defined(OS_MACOSX) |
| 141 | 137 |
| 142 private: | 138 private: |
| 143 std::string device_name_; | 139 std::string device_name_; |
| 144 std::string unique_id_; | 140 std::string unique_id_; |
| 145 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \ | 141 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) || \ |
| 146 defined(OS_ANDROID) | 142 defined(OS_ANDROID) |
| 147 // This class wraps the CaptureApiType to give it a by default value if not | 143 // This class wraps the CaptureApiType to give it a by default value if not |
| 148 // initialized. | 144 // initialized. |
| 149 class CaptureApiClass { | 145 class CaptureApiClass { |
| (...skipping 11 matching lines...) Expand all Loading... |
| 161 }; | 157 }; |
| 162 | 158 |
| 163 CaptureApiClass capture_api_class_; | 159 CaptureApiClass capture_api_class_; |
| 164 #endif | 160 #endif |
| 165 #if defined(OS_WIN) | 161 #if defined(OS_WIN) |
| 166 // ID used for capabilities retrieval. By default is equal to |unique_id|. | 162 // ID used for capabilities retrieval. By default is equal to |unique_id|. |
| 167 std::string capabilities_id_; | 163 std::string capabilities_id_; |
| 168 #endif | 164 #endif |
| 169 #if defined(OS_MACOSX) | 165 #if defined(OS_MACOSX) |
| 170 TransportType transport_type_; | 166 TransportType transport_type_; |
| 171 // Flag used to mark blacklisted devices for QTKit Api. | |
| 172 bool is_blacklisted_; | |
| 173 #endif | 167 #endif |
| 174 // Allow generated copy constructor and assignment. | 168 // Allow generated copy constructor and assignment. |
| 175 }; | 169 }; |
| 176 | 170 |
| 177 // Manages a list of Name entries. | 171 // Manages a list of Name entries. |
| 178 typedef std::list<Name> Names; | 172 typedef std::list<Name> Names; |
| 179 | 173 |
| 180 // Interface defining the methods that clients of VideoCapture must have. It | 174 // Interface defining the methods that clients of VideoCapture must have. It |
| 181 // is actually two-in-one: clients may implement OnIncomingCapturedData() or | 175 // is actually two-in-one: clients may implement OnIncomingCapturedData() or |
| 182 // ReserveOutputBuffer() + OnIncomingCapturedVideoFrame(), or all of them. | 176 // ReserveOutputBuffer() + OnIncomingCapturedVideoFrame(), or all of them. |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 | 305 |
| 312 private: | 306 private: |
| 313 // Gets the power line frequency from the current system time zone if this is | 307 // Gets the power line frequency from the current system time zone if this is |
| 314 // defined, otherwise returns 0. | 308 // defined, otherwise returns 0. |
| 315 PowerLineFrequency GetPowerLineFrequencyForLocation() const; | 309 PowerLineFrequency GetPowerLineFrequencyForLocation() const; |
| 316 }; | 310 }; |
| 317 | 311 |
| 318 } // namespace media | 312 } // namespace media |
| 319 | 313 |
| 320 #endif // MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_H_ | 314 #endif // MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_H_ |
| OLD | NEW |