public bool StartInput(int modeIndex, int numAudioChannels, bool delayResourceCreationUntilFramesStart = false) { #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN bool result = false; if (modeIndex == -1) { return(false); } if (!CanInput()) { Debug.LogWarning("[AVProDeckLink] Warning: Unable to start input for device " + _name + " as it is currently busy"); return(false); } if (DeckLinkPlugin.StartInputStream(_deviceIndex, modeIndex, numAudioChannels)) { _audioChannels = numAudioChannels; _currentMode = _inputModes[modeIndex]; result = true; if (_currentMode.Width > 0 && _currentMode.Width <= 4096 && _currentMode.Height > 0 && _currentMode.Height <= 4096) { _formatConverter.AutoDeinterlace = _autoDeinterlace; if (_formatConverter.Build(_deviceIndex, _currentMode, delayResourceCreationUntilFramesStart)) { ResetFPS(); IsActive = true; IsStreaming = true; IsPicture = false; IsPaused = false; result = true; _isStreamingInput = true; } else { Debug.LogWarning("[AVProDeckLink] unable to convert camera format"); } } else { Debug.LogWarning("[AVProDeckLink] invalid width or height"); } } else { Debug.LogWarning("[AVProDeckLink] Unable to start input stream on device " + _name); } if (!result) { StopInput(); } return(result); #else return(false); #endif }
public bool StartInput(int modeIndex, int numAudioChannels, bool delayResourceCreationUntilFramesStart = false, bool useHdr = false) { #if UNITY_EDITOR_WIN || UNITY_STANDALONE_WIN bool result = false; if (modeIndex == -1) { return(false); } if (!CanInput()) { Debug.LogWarning("[AVProDeckLink] Warning: Unable to start input for device " + _name + " as it is currently busy"); return(false); } if (_formatConverter.Enable3DInput) { if (!DeckLinkPlugin.IsInputMode3DSupported(_deviceIndex, modeIndex)) { _formatConverter.Enable3DInput = false; Debug.LogWarning("[AVProDeckLink] Input mode does not support stereo mode " + modeIndex + ", disabling"); } } DeckLinkPlugin.Set3DCaptureEnabled(_deviceIndex, _formatConverter.Enable3DInput); DeckLinkPlugin.SetAncillaryDataCaptureEnabled(_deviceIndex, EnableAncillaryDataInput); DeckLinkPlugin.SetTimeCodeCaptureEnabled(_deviceIndex, EnableTimeCodeInput); if (DeckLinkPlugin.StartInputStream(_deviceIndex, modeIndex, numAudioChannels)) { _audioChannels = numAudioChannels; _currentMode = _inputModes[modeIndex]; result = true; IsActive = true; IsStreaming = true; IsPicture = false; IsPaused = false; DroppedInputSignalCount = 0; result = true; _isStreamingInput = true; ResetFPS(); if (_currentMode.Width > 0 && _currentMode.Width <= MaxWidth && _currentMode.Height > 0 && _currentMode.Height <= MaxHeight) { _formatConverter.AutoDeinterlace = _autoDeinterlace; _formatConverter.Build(_deviceIndex, _currentMode, delayResourceCreationUntilFramesStart, useHdr); } else { Debug.LogWarning("[AVProDeckLink] invalid width or height"); } } else { Debug.LogWarning("[AVProDeckLink] Unable to start input stream on device " + _name); } if (!result) { StopInput(); } return(result); #else return(false); #endif }