DriveWorks recording tools use a DriveWorks Rig Configuration File to specify which sensors are to be recorded.
An example of a Rig Configuration file is available at
/usr/local/driveworks/tools/capture/configs/hyperion7_1/release.json
In addition to the the standard sensor parameters documented in the Sensor Querying section, there are additional recorder-specific sensor parameters. When required these parameters should be updated in the sensor parameter string in the rig configuration file.
This mandatory parameter specifies the encoding format for a camera sensor recording.
It can be specified as:
...,format=[raw,lraw,h264],...
The format
selected also dictates which output-format
parameter must be specified for a camera sensor. The table below describes the compatibility between these two parameters:
Encoding Format | format | output-format |
---|---|---|
RAW | raw | raw+yuv |
LRAW | lraw | raw+yuv |
H264 | h264 | yuv |
H265 | h265 | yuv |
MP4 | mp4 | yuv |
This optional parameter specifies the size (in bytes) of the Operating System write file buffer. It can be specified as:
...,file-buffer-size=XXXXX,...
file-buffer-size
This optional parameter specifies the bit rate (in bps) for compressed recording formats in Constant Bit Rate (CBR) mode. It can be specified as:
...,bitrate=XXXXXXXX,...
The default bit rate is 8mbps.
This optional parameter specifies the quantization parameter for constant quality in compressed recording formats. It can be specified as:
...,quality=XX,...
The default mode is CBR so there is no default quality. Quality of 0 is lossless. Higher numbers are worse quality, but smaller in size. The maximum quantization parameter is 50, resulting in the worst quality.
This optional parameter specifies whether to record the sensor in asynchronus mode and it can be specified as:
...,async-record=1,...
This optional parameter specifies to record every Nth camera frame and it can be specified as:
...,frame-mod=XXX,...
Ex: frame-mod=5 records every 5th frame and skips the other frames.
This optional parameter allows specification of which hardware encoder will be used for a given sensor, for example to manually allocate hardware resources. It can be specified as:
...,encoder-instance=0,...
Valid options vary based on hardware. On Xavier options are 0 and 1.
This optional parameter allows specification of the H264 Entropy encoder type.
...,entropy=cavlc,...
Valid options are 'cabac' and 'cavlc'. The default is 'cabac'.
This optional parameter allows specification of the GOP Length of the encoded video. GOP length holds the number of pictures in one GOP
...,gop-length=XXX,...
Ex: gop-length=10 will be 1 I frame followed by 9 P frames
This optional parameter allows use to specify which codec to use for serializing sensor data. The value supplied to the parameter should either be 0 or 1.
...,newcodecstack=[0|1],...
Distributed recording across multiple Xavier processors is supported via both TextUI Recording Tool and GUI Recording Tool
Instead of passing a single rig file, a rig_directory
containing a rig file per Xavier processor should be passed to the respective tool.
Below is an example of the directory structure:
<rig_directory> |___10.42.0.28<_rigConfiguration_seqNum>.json |___10.42.0.29<_rigConfiguration_seqNum>.json |___setup.sh
rigConfiguration is the rig name generated in aux_info, if its not provided then 'default' is generated as rig name in aux_info
For master-slave recording: The seqNum determines order of the initialization, which is important when some sensors are in master/slave combination. SeqNum is used for orchestration of recorders, for all the masters seqNum should be provided(in ascending order in the format of IP_rigConfiguration_seqNum) and for slaves its optional. If seqNum is not provided ordering will be same as the internal file system order.
As shown above, the IP address of each Xavier is specified within the rig file name. In additional, if any of the following scripts are present in the rig_directory
, they will be run based on the respective trigger cadence on each target processor/IP provided via the input rigs.
File name | Trigger cadence | Arguments |
---|---|---|
recorder-platform-setup.sh | App launch | None |
recorder-platform-cleanup.sh | App exit | None |
recorder-pre-start.sh | Recording session start | List of disk sinks |
recorder-post-stop.sh | Recording session end | List of disk sinks |