Skip to content

NDI Sink filter

Datastead NDI Sink publishes the audio and video streams of a DirectShow graph as an NDI source on the local network.

Filter name Datastead NDI Sink
CLSID {B3521313-F725-4694-AADD-6362B2C70060}
Category DirectShow Filters
Pins Video and Audio, both input (rendered) pins
Interfaces IDatasteadNDISink, IDatasteadNDISink2, IPersistStream

How it is used

  1. Add the filter to the graph.
  2. Query IDatasteadNDISink and call SetNDIName with the stream name to publish (see NDI source names).
  3. Connect the Video pin, the Audio pin, or both.
  4. Run the graph: the NDI source appears on the network as COMPUTERNAME (streamname).

Both pins are optional: a video-only or an audio-only NDI stream is published when only one of them is connected.

Accepted input formats

Video, in a FORMAT_VideoInfo media type:

  • MEDIASUBTYPE_RGB32
  • MEDIASUBTYPE_ARGB32
  • MEDIASUBTYPE_UYVY
  • MEDIASUBTYPE_YV12
  • MEDIASUBTYPE_NV12
  • MEDIASUBTYPE_I420

Audio: PCM (WAVE_FORMAT_PCM, FORMAT_WaveFormatEx).

Insert a color-space converter upstream when the source delivers a format that is not in this list.

Frame rate

The frame rate announced to the NDI receivers is taken from the media type of the connected video pin. When the upstream filter does not provide a usable one, it is measured from the incoming samples.

SetAvgTimePerFrame forces it explicitly, in 100 ns units (for example 400000 for 25 fps, 333333 for 30 fps). 0, the default, means "auto".

Field order

ConfigureSetting on IDatasteadNDISink2 sets the frame format type announced in the NDI metadata, with the setting id 1 (NDISINK2_SETTINGID_FORMATTYPE):

Value Meaning
0 interleaved (interlaced)
1 progressive (default)
2 field 0
3 field 1

This is what the TVideoGrabber NDIFormatType property sets.

Pause and stop

The filter follows the DirectShow states: while the graph is paused, the frames are held and nothing is sent to the network; the sending resumes when the graph runs again. Stopping the graph closes the NDI session, and the source disappears from the network.