Skip to content

Implement XML metadata transmission #26

@unvermuthet

Description

@unvermuthet

The metadata part of the NDI SDK is unimplemented. The main use cases are tally messages. Since metadata can flow bi-directionally, both NDIOutput and VideoStreamNDI need to be able to send and receive metadata. An implementation would likely make use of

NDIOutput

  • NDIlib_send_send_metadata for sending general metadata
  • NDIlib_send_get_tally for getting the tally state
  • NDIlib_send_add_connection_metadata
  • NDIlib_send_clear_connection_metadata

VideoStreamNDI

  • NDIlib_recv_send_metadata for sending general metadata
  • NDIlib_recv_capture_v3 for receiving general metadata
  • NDIlib_recv_set_tally for setting the tally state
  • NDIlib_recv_add_connection_metadata
  • NDIlib_recv_clear_connection_metadata

These functions are documented in the SDK's header files under ndi/.

Exposing this functionality to VideoStreamNDI will be a challenge since the actual NDI Receiver lives in VideoStreamPlaybackNDI, which isn't accessible. To solve this, I'd consider passing a Ref of VideoStreamNDI to VideoStreamPlaybackNDI on instantiation.

This should be a low-level implementation that just exposes the API. XML parsing and such should be left to the user.

This issue serves as a rough implementation guideline for now, as I will not work on this within the near future, unless incentivized. So feel free to pick this up! (Just leave a little note here to indicate your intention to me and others)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions