Defines the image streamer function, enabling streaming images between different APIs.
Data Structures | |
struct | dwImageStreamerCrossProcessModeParams |
Sets of parameters for cross-process image streamer creation. More... | |
Typedefs | |
typedef struct dwImageStreamerObject * | dwImageStreamerHandle_t |
Handle for image streamer. More... | |
typedef enum dwImageStreamerCrossProcessMode | dwImageStreamerCrossProcessMode |
Cross-process image streamer operation modes. More... | |
typedef struct dwImageStreamerCrossProcessModeParams | dwImageStreamerCrossProcessModeParams |
Sets of parameters for cross-process image streamer creation. More... | |
Enumerations | |
enum | dwImageStreamerCrossProcessMode { DW_IMAGE_STREAMER_CROSS_PROCESS_PRODUCER, DW_IMAGE_STREAMER_CROSS_PROCESS_CONSUMER } |
Cross-process image streamer operation modes. More... | |
Functions | |
DW_API_PUBLIC dwStatus | dwImageStreamer_setCUDAStream (cudaStream_t stream, dwImageStreamerHandle_t streamer) |
Sets the CUDA stream for CUDA related streaming operations such as post and receive. More... | |
DW_API_PUBLIC dwStatus | dwImageStreamer_getCUDAStream (cudaStream_t *stream, dwImageStreamerHandle_t streamer) |
Get CUDA stream used by the image streamer. More... | |
DW_API_PUBLIC dwStatus | dwImageStreamer_getOutputProperties (dwImageProperties *props, dwImageStreamerHandle_t const streamer) |
Get image properties of the image received from the streamer. More... | |
DW_API_PUBLIC dwStatus | dwImageStreamer_initialize (dwImageStreamerHandle_t *streamer, const dwImageProperties *from, dwImageType to, dwContextHandle_t ctx) |
Creates and initializes the image streamer capable of moving images between different API types. More... | |
DW_API_PUBLIC dwStatus | dwImageStreamer_producerSend (dwImageHandle_t image, dwImageStreamerHandle_t const streamer) |
Sends an image through the streamer acting as the producer. More... | |
DW_API_PUBLIC dwStatus | dwImageStreamer_producerReturn (dwImageHandle_t *const image, dwTime_t const timeoutUs, dwImageStreamerHandle_t const streamer) |
The producer streamer waits for the image sent to be returned by the consumer. More... | |
DW_API_PUBLIC dwStatus | dwImageStreamer_consumerReceive (dwImageHandle_t *image, dwTime_t const timeoutUs, dwImageStreamerHandle_t const streamer) |
Receive a pointer to a dwImageHandle_t from the streamer, acting as a consumer. More... | |
DW_API_PUBLIC dwStatus | dwImageStreamer_consumerReturn (dwImageHandle_t *image, dwImageStreamerHandle_t const streamer) |
Return the received image back to the producer. More... | |
DW_API_PUBLIC dwStatus | dwImageStreamer_release (dwImageStreamerHandle_t streamer) |
Releases the image streamer. More... | |
Cross-process image streamer operation modes.
Sets of parameters for cross-process image streamer creation.
typedef struct dwImageStreamerObject* dwImageStreamerHandle_t |
Handle for image streamer.
Definition at line 48 of file ImageStreamer.h.
Cross-process image streamer operation modes.
Enumerator | |
---|---|
DW_IMAGE_STREAMER_CROSS_PROCESS_PRODUCER | |
DW_IMAGE_STREAMER_CROSS_PROCESS_CONSUMER |
Definition at line 53 of file ImageStreamer.h.
DW_API_PUBLIC dwStatus dwImageStreamer_consumerReceive | ( | dwImageHandle_t * | image, |
dwTime_t const | timeoutUs, | ||
dwImageStreamerHandle_t const | streamer | ||
) |
Receive a pointer to a dwImageHandle_t from the streamer, acting as a consumer.
Can wait until timeout before failing.
[out] | image | A pointer to a dwImageHandle_t sent by the producer, not null if successfully converted. |
[in] | timeoutUs | Timeout in milliseconds before interrupting the waiting for producer. |
[in] | streamer | A handle to the image streamer. |
DW_API_PUBLIC dwStatus dwImageStreamer_consumerReturn | ( | dwImageHandle_t * | image, |
dwImageStreamerHandle_t const | streamer | ||
) |
Return the received image back to the producer.
Ownership is given back and image goes back to null
[in] | image | A pointer to the dwImageHandle_t to return to the producer. |
[in] | streamer | A handle to the image streamer. |
DW_API_PUBLIC dwStatus dwImageStreamer_getCUDAStream | ( | cudaStream_t * | stream, |
dwImageStreamerHandle_t | streamer | ||
) |
Get CUDA stream used by the image streamer.
[out] | stream | CUDA stream used by the streamer |
[in] | streamer | A handle to the image streamer. |
DW_API_PUBLIC dwStatus dwImageStreamer_getOutputProperties | ( | dwImageProperties * | props, |
dwImageStreamerHandle_t const | streamer | ||
) |
Get image properties of the image received from the streamer.
[out] | props | Properties of the resulting images |
[in] | streamer | A handle to the image streamer. |
DW_API_PUBLIC dwStatus dwImageStreamer_initialize | ( | dwImageStreamerHandle_t * | streamer, |
const dwImageProperties * | from, | ||
dwImageType | to, | ||
dwContextHandle_t | ctx | ||
) |
Creates and initializes the image streamer capable of moving images between different API types.
For example an image can be moved from NvMedia API into GL textured type or from CPU memory to CUDA.
In general an image streamer does not perform any modifications on the format of the stored pixel data. However, in certain cases when going between APIs some meta information might be lost or transformed. Especially if an image contains embedded data lines, in some cases the embedded information is lost, while in others it became part of the image. To find all supported src/dst pairs as well as supported formats refer to the user guide. After successful streamer creation 'dwImageStreamer_getOutputProperties()' will return the expected properties of resulting images.
[out] | streamer | A handle to the image streamer (if successfully initialized.) |
[in] | from | The properties of the source image for streaming. |
[in] | to | The type of the destination image. |
[in] | ctx | The DriveWorks context. |
DW_API_PUBLIC dwStatus dwImageStreamer_producerReturn | ( | dwImageHandle_t *const | image, |
dwTime_t const | timeoutUs, | ||
dwImageStreamerHandle_t const | streamer | ||
) |
The producer streamer waits for the image sent to be returned by the consumer.
Waits for a max timeout. Returns a pointer to the dwImageHandle of the returned image, if the pointer passed is not null, otherwise it does not return a pointer
[out] | image | A pointer to a dwImageHandle_t returned by the producer |
[in] | timeoutUs | Timeout in milliseconds before interrupting the waiting and return a timeout error. Image was not returned |
[in] | streamer | A handle to the image streamer. |
DW_API_PUBLIC dwStatus dwImageStreamer_producerSend | ( | dwImageHandle_t | image, |
dwImageStreamerHandle_t const | streamer | ||
) |
Sends an image through the streamer acting as the producer.
[in] | image | A dwImageHandle_t to send through the streamer |
[in] | streamer | A handle to the image streamer. |
DW_API_PUBLIC dwStatus dwImageStreamer_release | ( | dwImageStreamerHandle_t | streamer | ) |
Releases the image streamer.
This releases all memory and closes all related resources. The handle is set to null.
[in] | streamer | A handle to the image streamer. |
DW_API_PUBLIC dwStatus dwImageStreamer_setCUDAStream | ( | cudaStream_t | stream, |
dwImageStreamerHandle_t | streamer | ||
) |
Sets the CUDA stream for CUDA related streaming operations such as post and receive.
[in] | stream | The CUDA stream to be used. |
[in] | streamer | A handle to the image streamer. |