Exemple #1
0
        private void Connect(string sourceName)
        {
            if (string.IsNullOrEmpty(sourceName) || _ndiSources == null || !_ndiSources.ContainsKey(sourceName))
            {
                return;
            }
            NDIlib_source_t      source          = _ndiSources[sourceName];
            NDIlib_recv_create_t recvDescription = new NDIlib_recv_create_t()
            {
                source_to_connect_to = source,
                color_format         = NDIlib_recv_color_format_e.NDIlib_recv_color_format_e_BGRX_BGRA,
                bandwidth            = NDIlib_recv_bandwidth_e.NDIlib_recv_bandwidth_lowest
            };

            _ndiReceiveInstance = Ndi.NDIlib_recv_create(ref recvDescription);
            if (_ndiReceiveInstance != IntPtr.Zero)
            {
                // start up a thread to receive on
                _ndiReceiveThread = new Thread(ReceiveThreadProc)
                {
                    IsBackground = true, Name = "Newtek Ndi video preview plugin receive thread"
                };
                _ndiReceiveThread.Start();
            }
        }