2D/LDC/SIPL/Multimedia and NvSciBuf Interaction

This section describes 2D/LDC/SIPL/Multimedia and NvSciBuf interaction. The following steps show the typical flow to allocate and register an NvSciBuf object:

  1. The application creates a NvSciBufAttrList.
  2. The application queries 2D/LDC/SIPL/Multimedia to fill in the NvSciBufAttrList by calling the relevant APIs (NvMedia2DFillNvSciBufAttrList/NvMediaLdcFillNvSciBufAttrList/INvSIPLCamera::GetImageAttributes/NvMediaIEPFillNvSciBufAttrList/NvMediaIJPDFillNvSciBufAttrList/NvMediaIJPEFillNvSciBufAttrList/NvMediaIOFAFillNvSciBufAttrList/NvMediaIDEFillNvSciBufAttrList/etc.) on the NvSciBufAttrList
  3. The application may choose to set any of the public NvSciBuf attributes, which are not set by those APIs.
  4. If the same NvSciBuf object is shared with other UMDs, then the application can get the corresponding NvSciBufAttrList from the respective UMD.
  5. The application asks NvSciBuf to reconcile all the filled NvSciBufAttrLists and then allocates an NvSciBuf object.
  6. The allocated NvSciBufObj is then registered with 2D/LDC/SIPL/Multimedia