NvSciSync Functions for Specific Imaging Components

This section gives an overview of the NvSciSync functions supported for various NvMedia imaging components (2D, ICP, VPI, etc.).

NvSciSync supports a group of functions to each of several imaging components: NvMedia2D, NvMediaICP, NvMediaVPI, etc. The groups of functions have parallel names. For example, NvMedia XX RegisterNvSciSyncObj() registers an NvSciSync object with a component, where XX is 2D for NvMedia2D, ICP for NvMediaICP, etc.

NvSciSync supports the following functions for each component, with a few exceptions detailed below:

  • Query a component's NvSciSyncObj attributes for waiting or signaling.

    Call NvMediaXXFillNvSciSyncAttrList() to query the NvSciSync attributes of component XX. The function sets (fills) the attributes in memory provided by the caller. NvSciSync objects allocated with such NvSciSyncAttrList objects are only accepted by component XX functions.

  • Register and unregister an NvSciSync object.

    Call NvMedia XX RegisterNvSciSyncObj() to register NvSciSyncObj objects with component XX. You must register every NvSciSyncObj that component XX is to use.

    During teardown, call NvMediaXXUnRegisterNvSciSyncObj() to unregister the registered NvSciSyncObj objects with component XX.

  • Set an NvSciSyncObj object for SOF usage with the component.

    Call NvMedia XX SetNvSciSyncObjforSOF() to tell component XX to use a particular NvSciSyncObj for signaling start of frame (SOF). You must call this function before you call any of the component's main image processing functions.

  • Set an NvSciSyncObj for EOF usage with the component.

    Call NvMedia XX SetNvSciSyncObjforEOF() to tell component XX to use a particular NvSciSyncObj for signaling end of frame (EOF). You must call this function before you call any of the component's main image processing functions.

  • Wait for an NvSciSyncFence.

    Call NvMediaXXInsertPreNvSciSyncFence() to tell component XX to wait on an NvSciSyncFence before actually starting image processing. You must call this function before you call any of the component's main image processing functions.

  • Get an NvSciSyncFence SOF.

    Call NvMediaXXGetSOFNvSciSyncFence() to get an NvSciSyncFence from component XX whose expiry indicates that the last submitted image processing request has started. You must call this function only after you call the component's main image processing functions.

  • Get an NvSciSyncFence EOF.

    Call NvMediaXXGetEOFNvSciSyncFence() to get an NvSciSyncFence from component XX whose expiry indicates that the last submitted image processing request has completed. You must call this function only after you call the component's main image processing functions.

The functions are implemented for each of the following NvMedia imaging components.

Component

Notes

2D

LDC

SIPL

the ISP hardware engine does not generate any fence to indicate the start of a frame.

IEP

OFA

DLA

Not every function is implemented for every imaging component. The following table shows functions implemented for each supported component. For SIPL APIs, refer to the NVIDIA DRIVE OS API Reference Guide.

Generic function

Description

2D

LDC

IEP

OFA

DLA

NvMediaXXFillNvSciSyncAttrList()

Fills attributes in an NvSciSyncAttrList.

X

X

X

X

X

NvMediaXXRegisterNvSciSyncObj()

Registers an NvSciSyncObj with a component object.

X

X

X

X

X

NvMediaXXUnregisterNvSciSyncObj()

Unregisters an NvSciSyncObj with a component object.

X

X

X

X

X

NvMediaXXSetNvSciSyncObjforSOF()

Specifies an NvSciSyncObj to use as an SOF NvSciSyncFence.

X

NvMediaXXSetNvSciSyncObjforEOF()

Specifies an NvSciSyncObj to use as an EOF NvSciSyncFence.

X

X

X

X

X

NvMediaXXInsertPreNvSciSyncFence()

Sets an NvSciSyncFence as a prefence.

X

X

X

X

X

NvMediaXXGetSOFNvSciSyncFence()

Gets an SOF NvSciSyncFence for an NvMediaXXProcess () operation.

X

NvMediaXXGetEOFNvSciSyncFence()

Gets an EOF NvSciSyncFence for an NvMediaXXProcess () operation.

X

X

X

X

X