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 // Implementation of VideoCaptureDevice class for Blackmagic video capture | 5 // Implementation of VideoCaptureDevice class for Blackmagic video capture |
6 // devices by using the DeckLink SDK. | 6 // devices by using the DeckLink SDK. |
7 | 7 |
8 #ifndef MEDIA_CAPTURE_VIDEO_MAC_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ | 8 #ifndef MEDIA_CAPTURE_VIDEO_MAC_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ |
9 #define MEDIA_CAPTURE_VIDEO_MAC_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ | 9 #define MEDIA_CAPTURE_VIDEO_MAC_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ |
10 | 10 |
(...skipping 16 matching lines...) Expand all Loading... |
27 } // namespace tracked_objects | 27 } // namespace tracked_objects |
28 | 28 |
29 namespace media { | 29 namespace media { |
30 | 30 |
31 // Extension of VideoCaptureDevice to create and manipulate Blackmagic devices. | 31 // Extension of VideoCaptureDevice to create and manipulate Blackmagic devices. |
32 // Creates a reference counted |decklink_capture_delegate_| that does all the | 32 // Creates a reference counted |decklink_capture_delegate_| that does all the |
33 // DeckLink SDK configuration and capture work while holding a weak reference to | 33 // DeckLink SDK configuration and capture work while holding a weak reference to |
34 // us for sending back frames, logs and error messages. | 34 // us for sending back frames, logs and error messages. |
35 class CAPTURE_EXPORT VideoCaptureDeviceDeckLinkMac : public VideoCaptureDevice { | 35 class CAPTURE_EXPORT VideoCaptureDeviceDeckLinkMac : public VideoCaptureDevice { |
36 public: | 36 public: |
37 // Gets the names of all DeckLink video capture devices connected to this | 37 // Gets descriptors for all DeckLink video capture devices connected to this |
38 // computer, as enumerated by the DeckLink SDK. To allow the user to choose | 38 // computer, as enumerated by the DeckLink SDK. To allow the user to choose |
39 // exactly which capture format she wants, we enumerate as many cameras as | 39 // exactly which capture format she wants, we enumerate as many cameras as |
40 // capture formats. | 40 // capture formats. |
41 static void EnumerateDevices(VideoCaptureDevice::Names* device_names); | 41 static void EnumerateDevices( |
| 42 VideoCaptureDeviceDescriptors* device_descriptors); |
42 | 43 |
43 // Gets the supported formats of a particular device attached to the system, | 44 // Gets the supported formats of a particular device attached to the system, |
44 // identified by |device|. Formats are retrieved from the DeckLink SDK. | 45 // identified by |device|. Formats are retrieved from the DeckLink SDK. |
45 // Following the enumeration, each camera will have only one capability. | 46 // Following the enumeration, each camera will have only one capability. |
46 static void EnumerateDeviceCapabilities( | 47 static void EnumerateDeviceCapabilities( |
47 const VideoCaptureDevice::Name& device, | 48 const VideoCaptureDeviceDescriptor& descriptor, |
48 VideoCaptureFormats* supported_formats); | 49 VideoCaptureFormats* supported_formats); |
49 | 50 |
50 explicit VideoCaptureDeviceDeckLinkMac(const Name& device_name); | 51 explicit VideoCaptureDeviceDeckLinkMac( |
| 52 const VideoCaptureDeviceDescriptor& descriptor); |
51 ~VideoCaptureDeviceDeckLinkMac() override; | 53 ~VideoCaptureDeviceDeckLinkMac() override; |
52 | 54 |
53 // Copy of VideoCaptureDevice::Client::OnIncomingCapturedData(). Used by | 55 // Copy of VideoCaptureDevice::Client::OnIncomingCapturedData(). Used by |
54 // |decklink_capture_delegate_| to forward captured frames. | 56 // |decklink_capture_delegate_| to forward captured frames. |
55 void OnIncomingCapturedData(const uint8_t* data, | 57 void OnIncomingCapturedData(const uint8_t* data, |
56 size_t length, | 58 size_t length, |
57 const VideoCaptureFormat& frame_format, | 59 const VideoCaptureFormat& frame_format, |
58 int rotation, // Clockwise. | 60 int rotation, // Clockwise. |
59 base::TimeTicks reference_time, | 61 base::TimeTicks reference_time, |
60 base::TimeDelta timestamp); | 62 base::TimeDelta timestamp); |
(...skipping 22 matching lines...) Expand all Loading... |
83 | 85 |
84 // Checks for Device (a.k.a. Audio) thread. | 86 // Checks for Device (a.k.a. Audio) thread. |
85 base::ThreadChecker thread_checker_; | 87 base::ThreadChecker thread_checker_; |
86 | 88 |
87 DISALLOW_COPY_AND_ASSIGN(VideoCaptureDeviceDeckLinkMac); | 89 DISALLOW_COPY_AND_ASSIGN(VideoCaptureDeviceDeckLinkMac); |
88 }; | 90 }; |
89 | 91 |
90 } // namespace media | 92 } // namespace media |
91 | 93 |
92 #endif // MEDIA_CAPTURE_VIDEO_MAC_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ | 94 #endif // MEDIA_CAPTURE_VIDEO_MAC_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ |
OLD | NEW |