NDI Changes
NDI Changes
NDI Changes
NDI 5.1.3
Bug fix in the NDI SDK where decoding 10-bit HEVC on an NVIDIA video card could lead to a crash.
Bug fix for NDI Screen Capture on Windows 11 to lead to webcam devices being unusable.
Bug fix for Premiere plugin where audio channels were mapped incorrectly for NDI output.
NDI 5.1.2
Bug fix for NDI Bridge using high bandwidth for H.264 and HEVC streams.
Bug fix in the NDI SDK where a reported tally change was not notified properly in the NDI sender.
Bug fix where the bandwidth for interlaced video was double the intended bandwidth.
Bug fix in NDI Bridge for HEVC video not being generated appropriately when running on an Intel-
only system.
Fix in Premiere plugin that would lead to unstableness when reconnecting audio devices while the
NDI output was enabled.
NDI 5.1.1
Fix for a problem in which HX sources might not have been decoded correctly on NVIDIA hardware
when asking for RGB output data.
NDI 5.1.0
Fix in Premiere plugin that solved A/V sync problems when the NDI side-car index files have been
deleted. In recent versions of NDI we moved our recording to use 64bit MOV indexing in the headers
which allows for much longer files to be recorded, this change needed to be reflected in the Premiere
plugin.
Discovery servers may now be specified by a DNS name and not just as an IP address.
The NDI SDK uses typed values for returning “instances” instead of relying on void*. For most code
this will be a change that does not require any updates, however if your code assumes that these
types are void* then you will need to update it. Most importantly however, this avoids the potential
for mixing up the types passed into NDI functions which reduces the chances of potential bugs in
code that uses the NDI SDK.
Fix for memory leak when using “chop” on NDI recording code.
The NDI installer and uninstallers will silently shut-down the tools launcher and no longer give you a
warning when installing.
The NDI SDK will validate XML messages being sent before they are transmitted, this ensures that
there is no vulnerability in which a remote application might be able to be crashed by sending data
that is not XML. The only SDK assumption of course is that down-stream NDI receivers correctly parse
XML being received which is something that the SDK is unable to control directly.
NDI Studio Monitor has much lower GPU usage when running in Low Latency mode.
NDI Bridge will transcode into full-bandwidth with increased compatibility for hardware high-
bandwidth decoders that do not have full support for the entire set of NDI codec capabilities. This
should significantly improve compatibility with hardware decoders.
NDI Bridge includes an option that allows it to avoid automatic detection of the external IP and port
number (and detection of whether port forwarding is enabled). This allows you to use NDI Bridge
when you are not on a public network at all.
Important changes to the performance of RUDP on Linux platforms that enables Generic
Segmentation Offload (GSO) for UDP sending, which might also be referred to as UDP_SEGMENT
which was made available in Linux Kernel 4.18. This results in significantly reduced CPU overhead.
Removed limitation on how many NDI senders can be created on a single machine.
NDI 5.0.11
Bug fix for the NDI Transmit plug-in for Adobe CC applications.
Version number update to match public launch of NDI Tools that includes NDI Bridge.
MOV files recorded by the NDI SDK or Tools where technically limited to about 14 hours long because
the indexes for this file format have a size limitation of 32bits in “number of clock samples”. By using
the extended version of these headers there is no longer any reasonable restriction on the length of
recordings.
NDI 5.0.10
First version that includes full NDI Bridge. The NDI Bridge executable supports three command line
options, the first is “/join” which will start the application in the Join mode. “/local” and “/host” start the
application in Local and Host mode respectively.
Support for hardware rendering of the mouse cursor in Screen Capture without “trails” and without
any performance overhead.
KVM support for applications has been added to the Advanced SDK.
Support for the latest version of the Adobe CC applications that have been updated.
Reliable UDP sending is likely to use lower CPU usage than previous versions. NDI will take advantage
of computer systems with NICs that support hardware accelerated UDP segmentation offload. This
can be used to offload much of the CPU burden of high bandwidth UDP sending. Better reliable UDP
spreading of sending and receiving across multiple CPU cores.
If you are connected to an NDI discovery server and the network connection is physically lost (i.e. the
application or device on one side does not gracefully close the connection), this will now be detected
and handled much more quickly than previous versions.
Lower CPU usage in many situations through more efficient use of queues without CPU locking.
The NDI installer on Windows will check whether “Media Foundation” is available on your operating
system and notify you if it needs to be installed. There are some local versions of Windows (e.g.
Windows 10 Pro N) that might not include this as a default option.
The NDI installer will backup your NDI configuration when it is being installed so that each update to
Tools does not wipe out your configuration. When you uninstall NDI Tools completely, the
configuration should be completely removed.
Fix on Apple SDKs for cases in which extra data was incorrect in HX2 streams, we now handle this
condition gracefully.
Apple SDKs with Free NDI SDK now bring back all of the Apple platforms into a single installer which
unfortunately significantly increases the install size. It does mean one SDK covers Mac, iPad, iOS, tvOS
however.
NDI 5.0.9
Launching an NDI application no longer will try to configure the firewall for you unless you have
administration privileges. This avoids the potential for the annoying user-access-control dialog to
come up each time you launch an NDI application – you are likely still then to see a firewall warning
which you will have to click on “Allow” access for, or NDI will not be able to access you network
correctly.
The NDI screensaver is now aware of multi-DPI settings when you have multiple monitors on the
system with different DPI settings.
The NDI Webcam tool will no longer show an NDI logo when connecting to sources. This makes the
tool better for people who are using it in production.
When auto-focus is switched off for a PTZ Monitor in Studio Monitor, we do not resend the previous
focus distance which makes the operation “feel better” because the focus stays set on the last value it
was seen when auto-focus was used.
Reliable UDP sending is likely to use lower CPU usage than previous versions. NDI will take advantage
of computer systems with NICs that support hardware accelerated UDP segmentation offload. This
can be used to offload much of the CPU burden of high bandwidth UDP sending.
NDI 5.0.8
Very significant changes have been made to RUDP sending to allow for much better network
utilization on network with high round-trip time or packet loss. In addition, RUDP support has
significant updates with much improved performance on WAN and MTU discovery. Significant
improvements on macOS, iOS and Android have been made. Some important notes have been
added to the Advanced SDK documentation regarding how to efficiently send compressed frames to
the network under poor conditions with the SDK.
NDI SDK documentation has been updated with comments on performance, particularly related to
some ARM platforms.
NDI 5.0.7
The NDI redistributable that was included with the SDK was not digitally signed, this has been
corrected.
Fix for NDI Screen Capture HX in which a lockup was possible if a device (e.g. blue-tooth keyboard)
was removed at almost the same time that an NDI connection was closed.
Fix for a problem with Screen Capture in which we might not send the first frame if the current screen
was not changing at the time the NDI connection was made.
A condition was fixed in which Panasonic NDI cameras might not be detected on the network if they
had been added after NDI started and had not yet been running for more than a few minutes.
NDI 5.0.6
Change to the RUDP receiver (and somewhat the sender) to have higher performance on multi-core
machines that are under load or running many threads. When possible, we now keep a thread in a
wake-able state on each CPU core so that upon receiving data we always know that it can be
processed if there is any CPU time on the machine.
In Screen Capture it was possible that if a screen was not currently being updated that new NDI
connections that occur do not receive a frame. The primary problem occurred when there was more
than one connection at a time.
The NDI Launcher application will notify you when there is a newer version available, so you do not
always need to track our web site for changes!
The NDI launcher will give you access to the NDI changes list so you can quickly see what has been
updated in this version of NDI.
A crash that could occur based on timing when applications connected and disconnected from the
“Web Cam input” on Windows has been fixed.
The discovery server allows you to specify a port number using the flag “-port 5959”. You can now
choose any port you want and in Access Manager or the configuration files you can specify a
discovery server address that includes a port number. This allows you for instance to run multiple
discovery servers on a single machine that control different sets of NDI sources.
NDI 5.0.5
Using NDI | HX v1 cameras with the Bridge Local mode (our transcoder) could cause video artifacts
under certain network conditions due to the potential for compressed frames to be missed. This is
now no longer possible.
There was an issue where if a configuration file had a NIC filter set up that specified adapter that did
not exist on your machine then we would bind to a NIC that does not exist which would fail but might
slow down the creation of connections or other possibly symptoms. We now validate the
configuration files against the NICs that are on the machine and check that the IP addresses are truly
valid before attempting to bind to them.
SDK sample code that shows how to display the average frame time and jitter in the advanced SDK.
NDI 5.0.4
NDI Remote had an issue with some cameras when moving between the high quality and proxy
streams. This has been resolved.
Reliable UDP sending was always asynchronous in all sending, however it still needed to use a single
thread per sending destination to ensure that individual connections could not interfere with other
ones (which might have stalled). This is no longer the case and RUDP can now send across all
destinations with all buffers in flight without needing any additional threads to service the sending.
NDI 5.0.3
Improvement to Windows based Audio and Video drivers that will make them much more robust to
applications that are less tolerant of “strange clocking”. In general, this makes things far more robust
and should result in much better results. A placeholder image is shown when you are not connected
to a source so that the application receives video instead of simply receiving no data.
In the NDI Tools on Windows, clicking on the “Balloon help popups” in Screen Capture and Webcam
input no longer opens the help, but instead opens the context menu for that tool. This is very
convenient and much less annoying! (Help is still available on the context menus).
The Webcam tool on Windows will connect to audio much faster. It was previously a problem that
when you started a call (e.g. with Skype, Teams or Zoom) that it took about half a second for the
audio to even start which meant that communication was hard. This should no longer happen.
Importantly, if you are using the Webcam plugins with applications like Skype, Teams or Zoom and
you are using audio content that is not just speech, it is important to disable noise suppression and
echo cancellation. These effects are designed to make speech more audible against background
sounds however can also create significant audio artifacts on music or other non-speech content.
Audio support on some much older NDI HX v1 converter devices was not working, this has now been
solved.
NDI 5.0.2
NDI discovery server has an optional parameter that allows you to bind it to a single NIC on your
machine for improved security.
NDI discovery server displays output that is designed to be read by another application that might
want to provide a UI on top of it.
NDI 5.0.1
Example code for showing how to connect to a device (as a receiver) and recover the tally state. This
makes the implementation of external tally devices very simple. This uses the tally_echo functionality.
RUDP is available as a specific connection type setting on macOS, previously “auto” selected it
because it is now the default but there should be a specific setting that enables it.
The “preferred NIC” is not a guarantee that a NIC will be used on all protocols since there are some
cases where it might not be possible; this is particularly true for the older transfer protocols. We have
extended the support for NIC selection to include more modes and increasing both sides of the
connection (both sending and receiving).
Bug fix for a case in which connection sharing might not have always worked, particularly when using
loop-back on the local machine. This did not actually cause any visible problem but caused NDI to
work a little less efficiently than it should have.
Studio Monitor PTZ keyboard shortcuts handled “left” at a slightly different speed from “right”. These
now match exactly.
Changes to HX drivers on iOS that make them more compliant with app store rules.
Bug fix for crash using NDI Audio Direct with Adobe Audition.
NDI 5.0.0
The first launch of NDI 5 !