コード例 #1
0
        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
        }
コード例 #2
0
        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
        }
コード例 #3
0
        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
        }