Exemple #1
0
        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);
        }
Exemple #2
0
        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();
        }