Sending Objects
After allocating the synchronization objects, the application must inform the stream.
For each asynchronous element, it calls
                NvSciStreamBlockElementSignalObjSet(), which is operational after
            event NvSciStreamEventType_WaiterAttr is queried from the block.
            Ownership of the synchronization object handle remains with the caller. The stream
            creates a duplicate before the function returns.
After specifying all the synchronization objects, the endpoint applications call the
                NvSciStreamBlockSetupStatusSet() function with a value of
                NvSciStreamSetup_SignalObjExport
NvSciError
NvSciStreamBlockElementSignalObjSet(
    NvSciStreamBlock const block,
    Uint32_t         const elemIndex,
    NvSciSyncObj     const SignalSyncObj
)