Defines sensor serializer.
- Note
- SW Release Applicability: These APIs are available in both NVIDIA DriveWorks and NVIDIA DRIVE Software releases.
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_attachTo (dwSensorSerializerHandle_t serializer, dwSensorSerializerHandle_t masterSerializer) |
| Starts and stops serialization of a sensor with a master serializer. More...
|
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_detachFrom (dwSensorSerializerHandle_t serializer, dwSensorSerializerHandle_t masterSerializer) |
| This method detaches the serializer previously attached with dwSensorSerializer_attachTo(). More...
|
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_initialize (dwSensorSerializerHandle_t *serializer, const dwSerializerParams *params, dwSensorHandle_t sensor) |
| Initializes a sensor serializer with the parameters provided. More...
|
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_isAttached (bool *isAttached, dwSensorSerializerHandle_t serializer) |
| Query method to check whether the serializer is attached to another. More...
|
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_release (dwSensorSerializerHandle_t serializer) |
| Releases a sensor serializer. More...
|
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_serializeCameraFrame (dwCameraFrameHandle_t frame, dwSensorSerializerHandle_t serializer) |
| Pushes a camera frame to the serializer.This method must only be used if 'dwSensorSerializer_start' is not called. More...
|
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_serializeCameraFrameAsync (dwCameraFrameHandle_t frame, dwSensorSerializerHandle_t serializer) |
| Pushes a camera frame to the serializer. More...
|
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_serializeData (const uint8_t *data, size_t size, dwSensorSerializerHandle_t serializer) |
| Pushes data to the serializer. More...
|
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_serializeDataAsync (const uint8_t *data, size_t size, dwSensorSerializerHandle_t serializer) |
| Pushes data to the serializer. More...
|
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_start (dwSensorSerializerHandle_t serializer) |
| Starts serialization of sensor. More...
|
|
DW_API_PUBLIC dwStatus | dwSensorSerializer_stop (dwSensorSerializerHandle_t serializer) |
| Starts serialization of sensor. More...
|
|
◆ dwSerializerParams
struct dwSerializerParams |
Data Fields |
dwSensorSerializerOnDataFunc_t |
onData |
Callback executed by the serializer on new data available. |
const char * |
parameters |
Array for additional parameters provided to sensor serializer creation. The parameters argument is an array in the form of key-value pairs separated by commas, i.e., key1=value1,key2=value2,key3=value3.
Supported 'keys' are:
- 'type' - Required. Specifies data-sink settings.
- If the value of 'type' is 'disk', the serializer streams data to the file specified in the 'file' key. For an example, see dwSensorSerializer_initialize().
- If the value of 'type' is 'user', the serializer uses the provided callback to stream data. When new data is available, the serializer calls the function provided in onData and puts the data in the buffer provided by userData.
- 'file' - See description for 'type'.
- 'file-buffer-size' - Size of output buffer to use for file operations.
- 'format' - Required. Specifies the video format. Supported values are 'h264' and 'raw'.
- 'bitrate' - Required if 'format' is 'h264'; optional if it is 'raw'.
- 'framerate' - Optional.
For a code snippet, see dwSensorSerializer_initialize().
|
void * |
userData |
User data to be passed to the callback. |
◆ dwSensorSerializerHandle_t
◆ dwSensorSerializerOnDataFunc_t
typedef void(* dwSensorSerializerOnDataFunc_t) (const uint8_t *data, size_t size, void *userData) |
Callback type for getting data from sensor serializer.
- Parameters
-
[in] | data | A pointer to the byte array of serialized data. |
[in] | size | A pointer to the size of the byte array. |
Definition at line 69 of file SensorSerializer.h.
◆ dwSensorSerializer_attachTo()
Starts and stops serialization of a sensor with a master serializer.
This method attaches the serializer to the same thread of the master serializer. The slave serializer handle is still used to call dwSensorSerializer_serializeDataAsync().
- Note
- To ensure you don't miss any data, activate serialization before calling dwSensorSerializer_startSensor().
- Parameters
-
[in] | serializer | Specifies the sensor serializer handle. |
[in] | masterSerializer | Specifies the sensor serializer handle that is the main thread. |
- Returns
- DW_INVALID_HANDLE - if given handle is not valid.
DW_SUCCESS
◆ dwSensorSerializer_detachFrom()
This method detaches the serializer previously attached with dwSensorSerializer_attachTo().
Due to the asyncronous nature of this call, the serializer may still be attached to the serializing thread immediately following this call. dwSensorSerializer_isAttached() must be polled for status.
- Note
- To ensure you don't miss any data, activate serialization before calling dwSensorSerializer_startSensor().
- Parameters
-
[in] | serializer | Specifies the sensor serializer handle. |
[in] | masterSerializer | Specifies the sensor serializer handle that takes ownership of the serializer. |
- Returns
- DW_NOT_AVAILABLE - serializer is not attached to another serializer.
DW_INVALID_HANDLE - if given handle is not valid.
DW_SUCCESS
◆ dwSensorSerializer_initialize()
Initializes a sensor serializer with the parameters provided.
- Parameters
-
[out] | serializer | A pointer to the sensor serializer handle. |
[in] | params | A pointer to the sensor serializer parameters. |
[in] | sensor | Specifies the sensor used to create the serializer. This is necessary because each sensor has its own unique serializer. For example, camera provides a serializer that can encode the data, while GPS serializes RAW data. |
- Returns
- DW_INVALID_HANDLE - if provided inputs are invalid
DW_INVALID_ARGUMENT
DW_SUCCESS
◆ dwSensorSerializer_isAttached()
Query method to check whether the serializer is attached to another.
- See also
- dwSensorSerializer_attachTo()
- Parameters
-
[out] | isAttached | Specifies whether the sensor serializer handle is attached to another. |
[in] | serializer | The sensor serializer handle. |
- Returns
- DW_INVALID_HANDLE - if given handle is not valid.
DW_SUCCESS
◆ dwSensorSerializer_release()
Releases a sensor serializer.
If the serializer has been attached to a master serializer via dwSensorSerializer_attachTo(), this method fails with DW_NOT_AVAILABLE. If this happens, dwSensorSerializer_detachFrom() must be called, and then this method succeeds. If the serializer is a master serializer that has other serializers attached, it releases as normal and the slave serializers are no longer be attached.
- Parameters
-
[in] | serializer | The sensor serializer handle. |
- Returns
- DW_INVALID_HANDLE - if provided inputs are invalid.
DW_INVALID_ARGUMENT
DW_NOT_AVAILABLE - if provided serializer is attached to another. DW_SUCCESS
◆ dwSensorSerializer_serializeCameraFrame()
Pushes a camera frame to the serializer.This method must only be used if 'dwSensorSerializer_start' is not called.
This pushes the serialized image directly to the sink.
- Parameters
-
[in] | frame | Handle to the camera frame. |
[in] | serializer | Specifies the sensor serializer handle. |
- Returns
- DW_NOT_AVAILABLE - serialization is not available at this moment,
DW_INVALID_HANDLE - if given handle is not valid.
DW_SUCCESS
◆ dwSensorSerializer_serializeCameraFrameAsync()
Pushes a camera frame to the serializer.
This method is thread-safe.
- Parameters
-
[in] | frame | Handle to the camera frame. |
[in] | serializer | Specifies the sensor serializer handle. |
- Returns
- DW_NOT_AVAILABLE - serialization is not available at this moment,
DW_INVALID_HANDLE - if given handle is not valid.
DW_SUCCESS
◆ dwSensorSerializer_serializeData()
Pushes data to the serializer.
This method is thread-safe and thus can be used on the capture thread (or any other thread).
- Parameters
-
[in] | data | A pointer to the byte array of data. |
[in] | size | Specifies the size of the byte array. |
[in] | serializer | Specifies the handle to the sensor serializer. |
- Returns
- DW_NOT_AVAILABLE - serialization is not available at this moment.
DW_INVALID_HANDLE - if given handle is not valid.
DW_SUCCESS
◆ dwSensorSerializer_serializeDataAsync()
Pushes data to the serializer.
This method is thread-safe and thus can be used on the capture thread (or any other thread). Use this method in conjunction with 'dwSensorSerializer_start'/'dwSensorSerializer_stop'.
- Parameters
-
[in] | data | A pointer to the byte array of data. |
[in] | size | Specifies the size of the byte array. |
[in] | serializer | Specifies the handle to the sensor serializer. |
- Returns
- DW_NOT_AVAILABLE - serialization is not available at this moment.
DW_BUFFER_FULL - serializer buffer is full, data was not pushed to serializer.
DW_INVALID_HANDLE - if given handle is not valid.
DW_SUCCESS
◆ dwSensorSerializer_start()
Starts serialization of sensor.
This method creates a new thread and begins the serialization loop.
- Note
- To ensure you don't miss any data, activate serialization before calling dwSensorSerializer_startSensor().
- Parameters
-
[in] | serializer | Specifies the sensor serializer handle. |
- Returns
- DW_NOT_AVAILABLE - serialization is not available at this moment.
DW_INVALID_HANDLE - if given handle is not valid.
DW_SUCCESS
◆ dwSensorSerializer_stop()
Starts serialization of sensor.
This method stops the thread and the serialization loop.
- Parameters
-
[in] | serializer | Specifies the sensor serializer handle. |
- Returns
- DW_NOT_AVAILABLE - serialization is not available at this moment.
DW_INVALID_HANDLE - if given handle is not valid.
DW_SUCCESS