protected override void BeginDevice() { #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN DeckLinkPlugin.SetAutoDetectEnabled(_deviceIndex, _autoDetectMode); UnsetInputReceivedFlag = false; _device.AutoDeinterlace = _autoDeinterlace; int actualAudioChannels = Mathf.Clamp(_audioChannels, 2, _device.MaxAudioChannels); _device.Enable3DInput = _enable3D; _device.EnableAncillaryDataInput = _enableAncillaryData; _device.EnableTimeCodeInput = _enableTimeCodeCapture; _device.SetInputBufferSizes(_inputBufferCount, _inputBufferReadCount); if (!_device.StartInput(_modeIndex, actualAudioChannels, false, _useHdr)) { _device.StopInput(); _device = null; } if (_device != null) { _enable3D = _device.Enable3DInput; _device.FlipInputX = _flipX; _device.FlipInputY = _flipY; DeviceMode mode = _device.GetInputMode(_modeIndex); _audioSource.clip = AudioClip.Create("DeckLink Input Audio", 48000 / (int)(mode.FrameRate + 0.5f), actualAudioChannels, 48000, false); _audioSource.Play(); } #endif }
protected override void Cleanup() { #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN DeckLinkPlugin.SetAutoDetectEnabled(_deviceIndex, false); _audioSource.Stop(); if (_audioSource.clip != null) { AudioClip.Destroy(_audioSource.clip); _audioSource.clip = null; } #endif }
protected override void BeginDevice() { #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN DeckLinkPlugin.SetAutoDetectEnabled(_deviceIndex, _autoDetectMode); _device.AutoDeinterlace = _autoDeinterlace; int actualAudioChannels; if (_audioChannels <= 2) { actualAudioChannels = 2; } else { actualAudioChannels = 8; } int maxSupportedChannels = DeckLinkPlugin.GetMaxSupportedAudioChannels(_deviceIndex); if (actualAudioChannels > maxSupportedChannels) { actualAudioChannels = maxSupportedChannels; } if (!_device.StartInput(_modeIndex, actualAudioChannels)) { _device.StopInput(); _device = null; } if (_device != null) { _device.FlipInputX = _flipX; _device.FlipInputY = _flipY; DeviceMode mode = _device.GetInputMode(_modeIndex); _audioSource.clip = AudioClip.Create("DeckLink Input Audio", 48000 / (int)(mode.FrameRate + 0.5f), actualAudioChannels, 48000, false); _audioSource.Play(); } #endif }