ndilibdotnet2

Ndilibdotnet2 < LIMITED >

// Simulate one frame int width = 1920, height = 1080; byte[] pixelData = new byte[width * height * 4]; // RGBA black GCHandle handle = GCHandle.Alloc(pixelData, GCHandleType.Pinned);

Console.WriteLine("Failed to initialize NDI"); return;

p_ndi_name = "My .NET Sender", // visible on network p_groups = null, // optional group filtering clock_video = true, // auto timestamp clock_audio = true ; IntPtr sender = NDIlib.send_create(ref sendSettings); // Prepare frame (e.g., 1920x1080, RGBA) var videoFrame = new NDIlib.video_frame_v2_t ndilibdotnet2

xres = 1920, yres = 1080, FourCC = NDIlib.FourCC_type_e.FourCC_type_RGBA, frame_format_type = NDIlib.frame_format_type_e.frame_format_type_progressive, timecode = 0, p_data = yourPixelBufferPtr, // IntPtr to raw RGBA data line_stride_in_bytes = 1920 * 4 ; NDIlib.send_send_video_v2(sender, ref videoFrame);

// Your code here

var videoFrame = new NDIlib.video_frame_v2_t(); var audioFrame = new NDIlib.audio_frame_v2_t(); var metadataFrame = new NDIlib.metadata_frame_t(); NDIlib.recv_recv_v3(receiver, out videoFrame, out audioFrame, out metadataFrame);

static void Main()

4.1 Create a Sender var sendSettings = new NDIlib.send_create_t

var metadata = new NDIlib.metadata_frame_t p_data = "\"command\":\"tally\"" ; NDIlib.send_send_metadata(sender, ref metadata); Receive: // Simulate one frame int width = 1920,

source_to_connect_to = selectedSource, color_format = NDIlib.recv_color_format_e.recv_color_format_RGBX_RGBA, bandwidth = NDIlib.recv_bandwidth_e.recv_bandwidth_highest, allow_video_fields = true ; IntPtr receiver = NDIlib.recv_create_v3(ref recvSettings); while (running)