private void InitNdiFind() { Ndi.AddRuntimeDir(); var findDesc = new NDIlib_find_create_t() { p_groups = IntPtr.Zero, show_local_sources = true, p_extra_ips = IntPtr.Zero }; _ndiFindInstance = Ndi.NDIlib_find_create2(ref findDesc); }
static VideoPreviewViewmodel() { Ndi.AddRuntimeDir(); var findDesc = new NDIlib_find_create_t { p_groups = IntPtr.Zero, show_local_sources = true, p_extra_ips = IntPtr.Zero }; NdiFindInstance = Ndi.NDIlib_find_create2(ref findDesc); var sourcesPoolThread = new Thread(() => { try { while (true) { if (Ndi.NDIlib_find_wait_for_sources(NdiFindInstance, int.MaxValue)) { RefreshSources(); } } } catch (Exception e) { Console.WriteLine(e); } }) { Name = "NDI source list pooling thread", Priority = ThreadPriority.BelowNormal, IsBackground = true }; sourcesPoolThread.Start(); }