PDA

View Full Version : Exposing sender capabilities to receiver



DarkMorford
11-12-2017, 11:09 AM
I'm implementing an NDI sender that generates frames dynamically, and I'd like to use a web interface to to adjust various renderer parameters. I'm also considering adding recording support so I can review the generated video later. I can see how to get the address of the web interface and control the recording on the receiver end, but there don't appear to be any functions in the SDK for the sender to inform the receiver that it can do these things. The SDK documentation does mention an "NDIlib_Send_Capabilities" sample, but it is missing from the download I got.

How can I inform downstream receivers that my source is capable of web control/recording/PTZ? Is it just a matter of sending the right XML metadata along the connection (and if so, what format does it need to be in)? Did this functionality get pulled from the SDK at the last minute? Or is there something that I'm just straight-up missing?

livepad
11-13-2017, 07:26 AM
I'm implementing an NDI sender that generates frames dynamically, and I'd like to use a web interface to to adjust various renderer parameters. I'm also considering adding recording support so I can review the generated video later. I can see how to get the address of the web interface and control the recording on the receiver end, but there don't appear to be any functions in the SDK for the sender to inform the receiver that it can do these things. The SDK documentation does mention an "NDIlib_Send_Capabilities" sample, but it is missing from the download I got.

How can I inform downstream receivers that my source is capable of web control/recording/PTZ? Is it just a matter of sending the right XML metadata along the connection (and if so, what format does it need to be in)? Did this functionality get pulled from the SDK at the last minute? Or is there something that I'm just straight-up missing?


// This will provide a web control on the current IP address under the name http://URL/MyControl/
// You should have a web server running locally that can serve these files and allow your application
// to be configured correctly.
//
// To test : Run NDI Video Monitor (from NDI Tools 2.5 or later). When viewing this source it will
// have a gadget in the lower right of the display. If you click on this it will take you
// to the URL defined below.
//
static const char* p_capabilities = "<ndi_capabilities web_control="http://%IP%//MyControl"/>";
const NDIlib_metadata_frame_t NDI_connection_type = {
// The length
(int)::strlen(p_capabilities),
// Timecode (synthesized for us !)
NDIlib_send_timecode_synthesize,
// The string
(char*)p_capabilities
};
NDIlib_send_add_connection_metadata(pNDI_send, &NDI_connection_type);

Nithin Pradeep
04-09-2018, 10:31 PM
// This will provide a web control on the current IP address under the name http://URL/MyControl/
// You should have a web server running locally that can serve these files and allow your application
// to be configured correctly.
//
// To test : Run NDI Video Monitor (from NDI Tools 2.5 or later). When viewing this source it will
// have a gadget in the lower right of the display. If you click on this it will take you
// to the URL defined below.
//
static const char* p_capabilities = "<ndi_capabilities web_control="http://%IP%//MyControl"/>";
const NDIlib_metadata_frame_t NDI_connection_type = {
// The length
(int)::strlen(p_capabilities),
// Timecode (synthesized for us !)
NDIlib_send_timecode_synthesize,
// The string
(char*)p_capabilities
};
NDIlib_send_add_connection_metadata(pNDI_send, &NDI_connection_type);



Can I specify any URL over there or is that specific to any perticular class?