| 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 |