Configure NvSciStreamBlock to Use External NvSciEventService for Internal Events#
The application can configure the block for the user-provided NvSciEventService
to wait for internal event notifications and trigger the corresponding handlers.
NvSciError
NvSciStreamBlockInternalEventServiceSetup(
NvSciStreamBlock const block,
NvSciEventService* const eventService,
uint32_t* const notifierCount,
NvSciEventNotifier** const eventNotifierArray
);
This function binds the internal event notifiers to the user-provided NvSciEventService
and registers the NvSciStream
internal handlers for each internal event notifier. The application must wait for events on these returned NvSciEventNotifiers
. When there is a new event on the notifier, the corresponding handler is triggered automatically to process the NvSciStream
internal event. These handlers are registered by NvSciStream
internally and the application does not need to assign handlers to these notifiers.
When called on a IpcSrc
or IpcDst
block, the notifiers are associated with internal NvIpc
events and messages. The internal handler processes message I/O.
If this function is not called before the block connection, the IpcSrc
or IpcDst
block automatically creates an internal NvSciEventService
and spawns a dispatch thread to wait for and handle the internal events.
The application is responsible for destroying the NvSciEventNotifier
and NvSciEventService
when it is no longer needed. The event-notification behavior of a block is undefined after its associated NvSciEventNotifier
object is deleted.