| 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_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ | 8 #ifndef MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ |
| 9 #define MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ | 9 #define MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ |
| 10 | 10 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 static void EnumerateDevices(VideoCaptureDevice::Names* device_names); | 34 static void EnumerateDevices(VideoCaptureDevice::Names* device_names); |
| 35 | 35 |
| 36 // Gets the supported formats of a particular device attached to the system, | 36 // Gets the supported formats of a particular device attached to the system, |
| 37 // identified by |device|. Formats are retrieved from the DeckLink SDK. | 37 // identified by |device|. Formats are retrieved from the DeckLink SDK. |
| 38 // Following the enumeration, each camera will have only one capability. | 38 // Following the enumeration, each camera will have only one capability. |
| 39 static void EnumerateDeviceCapabilities( | 39 static void EnumerateDeviceCapabilities( |
| 40 const VideoCaptureDevice::Name& device, | 40 const VideoCaptureDevice::Name& device, |
| 41 VideoCaptureFormats* supported_formats); | 41 VideoCaptureFormats* supported_formats); |
| 42 | 42 |
| 43 explicit VideoCaptureDeviceDeckLinkMac(const Name& device_name); | 43 explicit VideoCaptureDeviceDeckLinkMac(const Name& device_name); |
| 44 virtual ~VideoCaptureDeviceDeckLinkMac(); | 44 ~VideoCaptureDeviceDeckLinkMac() override; |
| 45 | 45 |
| 46 // Copy of VideoCaptureDevice::Client::OnIncomingCapturedData(). Used by | 46 // Copy of VideoCaptureDevice::Client::OnIncomingCapturedData(). Used by |
| 47 // |decklink_capture_delegate_| to forward captured frames. | 47 // |decklink_capture_delegate_| to forward captured frames. |
| 48 void OnIncomingCapturedData(const uint8* data, | 48 void OnIncomingCapturedData(const uint8* data, |
| 49 size_t length, | 49 size_t length, |
| 50 const VideoCaptureFormat& frame_format, | 50 const VideoCaptureFormat& frame_format, |
| 51 int rotation, // Clockwise. | 51 int rotation, // Clockwise. |
| 52 base::TimeTicks timestamp); | 52 base::TimeTicks timestamp); |
| 53 | 53 |
| 54 // Forwarder to VideoCaptureDevice::Client::OnError(). | 54 // Forwarder to VideoCaptureDevice::Client::OnError(). |
| 55 void SendErrorString(const std::string& reason); | 55 void SendErrorString(const std::string& reason); |
| 56 | 56 |
| 57 // Forwarder to VideoCaptureDevice::Client::OnLog(). | 57 // Forwarder to VideoCaptureDevice::Client::OnLog(). |
| 58 void SendLogString(const std::string& message); | 58 void SendLogString(const std::string& message); |
| 59 | 59 |
| 60 private: | 60 private: |
| 61 // VideoCaptureDevice implementation. | 61 // VideoCaptureDevice implementation. |
| 62 virtual void AllocateAndStart( | 62 void AllocateAndStart(const VideoCaptureParams& params, |
| 63 const VideoCaptureParams& params, | 63 scoped_ptr<VideoCaptureDevice::Client> client) override; |
| 64 scoped_ptr<VideoCaptureDevice::Client> client) override; | 64 void StopAndDeAllocate() override; |
| 65 virtual void StopAndDeAllocate() override; | |
| 66 | 65 |
| 67 // Protects concurrent setting and using of |client_|. | 66 // Protects concurrent setting and using of |client_|. |
| 68 base::Lock lock_; | 67 base::Lock lock_; |
| 69 scoped_ptr<VideoCaptureDevice::Client> client_; | 68 scoped_ptr<VideoCaptureDevice::Client> client_; |
| 70 | 69 |
| 71 // Reference counted handle to the DeckLink capture delegate, ref counted by | 70 // Reference counted handle to the DeckLink capture delegate, ref counted by |
| 72 // the DeckLink SDK as well. | 71 // the DeckLink SDK as well. |
| 73 scoped_refptr<DeckLinkCaptureDelegate> decklink_capture_delegate_; | 72 scoped_refptr<DeckLinkCaptureDelegate> decklink_capture_delegate_; |
| 74 | 73 |
| 75 // Checks for Device (a.k.a. Audio) thread. | 74 // Checks for Device (a.k.a. Audio) thread. |
| 76 base::ThreadChecker thread_checker_; | 75 base::ThreadChecker thread_checker_; |
| 77 | 76 |
| 78 DISALLOW_COPY_AND_ASSIGN(VideoCaptureDeviceDeckLinkMac); | 77 DISALLOW_COPY_AND_ASSIGN(VideoCaptureDeviceDeckLinkMac); |
| 79 }; | 78 }; |
| 80 | 79 |
| 81 } // namespace media | 80 } // namespace media |
| 82 | 81 |
| 83 #endif // MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ | 82 #endif // MEDIA_VIDEO_CAPTURE_VIDEO_CAPTURE_DEVICE_DECKLINK_MAC_H_ |
| OLD | NEW |