2.5.20 IDeckLinkVideoFrameAncillaryPackets Interface

The IDeckLinkVideoFrameAncillaryPackets interface represents the collection of ancillary data packets associated with a video frame. It is the preferred interface for the capture and output of SMPTE 291M Type 2 VANC packets, replacing the legacy IDeckLinkVideoFrameAncillary interface.

An IDeckLinkVideoFrameAncillaryPackets interface may be obtained from an IDeckLinkVideoFrame interface using QueryInterface.

Related Interfaces

Interface

Interface ID

Description

IDeckLinkVideoFrame

IID_IDeckLinkVideoFrame

An IDeckLinkVideoFrameAncillaryPackets object interface may be obtained from IDeckLinkVideoFrame using QueryInterface

IDeckLinkAncillaryPacketIterator

IID_IDeckLinkAncillaryPacketIterator

IDeckLinkVideoFrameAncillaryPackets::GetPacketIterator() outputs an IDeckLinkAncillaryPacketIterator object interface

IDeckLinkAncillaryPacket

IID_IDeckLinkAncillaryPacket

IDeckLinkVideoFrameAncillaryPackets::GetFirstPacketByID() outputs an IDeckLinkAncillaryPacket object interface

IDeckLinkAncillaryPacket

IID_IDeckLinkAncillaryPacket

An IDeckLinkAncillaryPacket object interface is attached to a video frame with IDeckLinkVideoFrameAncillaryPackets::AttachPacket()

IDeckLinkAncillaryPacket

IID_IDeckLinkAncillaryPacket

An IDeckLinkAncillaryPacket object interface is detached from a video frame with IDeckLinkVideoFrameAncillaryPackets::DetachPacket()

2.5.20.1 IDeckLinkVideoFrameAncillaryPackets::GetPacketIterator method

HRESULT IDeckLinkVideoFrameAncillaryPackets::GetPacketIterator(IDeckLinkAncillaryPacketIterator **iterator);

The GetPacketIterator method returns an iterator that enumerates the available ancillary packets for a video frame.

Parameters:

iterator – Pointer to ancillary packet iterator. This object must be released by the caller when no longer required.

Return values:
  • E_INVALIDARG – Parameter iterator variable is NULL

  • E_OUTOFMEMORY – Unable to create iterator

  • S_OK – Success

2.5.20.2 IDeckLinkVideoFrameAncillaryPackets::GetFirstPacketByID method

HRESULT IDeckLinkVideoFrameAncillaryPackets::GetFirstPacketByID(uint8_t DID, uint8_t SDID, IDeckLinkAncillaryPacket **packet);

The GetFirstPacketByID method returns the first ancillary packet in the video frame matching a given DID/SDID pair.

Parameters:
  • DID – Data ID (DID)

  • SDID – Secondary Data ID (SDID)

  • packet – Pointer to ancillary packet. This object must be released by the caller when no longer required.

Return values:
  • E_INVALIDARG – Parameter packet variable is NULL

  • E_FAIL – Failure

  • S_OK – Success

2.5.20.3 IDeckLinkVideoFrameAncillaryPackets::AttachPacket method

HRESULT IDeckLinkVideoFrameAncillaryPackets::AttachPacket(IDeckLinkAncillaryPacket *packet);

The AttachPacket method adds an ancillary packet to the video frame.

Parameters:

packet – Ancillary packet to attach

Return values:
  • E_INVALIDARG – Parameter packet variable is NULL or has invalid data stream index

  • E_OUTOFMEMORY – Unable to allocate memory for packet

  • E_FAIL – Failure

  • S_OK – Success

2.5.20.4 IDeckLinkVideoFrameAncillaryPackets::DetachPacket method

HRESULT IDeckLinkVideoFrameAncillaryPackets::DetachPacket(IDeckLinkAncillaryPacket *packet);

The DetachPacket method removes an ancillary packet from the video frame.

Parameters:

packet – Ancillary packet to detach

Return values:
  • S_FALSE – Packet not found

  • S_OK – Success

2.5.20.5 IDeckLinkVideoFrameAncillaryPackets::DetachAllPackets method

HRESULT IDeckLinkVideoFrameAncillaryPackets::DetachAllPackets();

The DetachAllPackets method removes all ancillary packets from the video frame.

Return values:

S_OK – Success