DriveWorks SDK Reference
4.0.0 Release
For Test and Development only
Codec.h
Go to the documentation of this file.
1
// This code contains NVIDIA Confidential Information and is disclosed
3
// under the Mutual Non-Disclosure Agreement.
4
//
5
// Notice
6
// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
7
// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
8
// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
9
// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
10
//
11
// NVIDIA Corporation assumes no responsibility for the consequences of use of such
12
// information or for any infringement of patents or other rights of third parties that may
13
// result from its use. No license is granted by implication or otherwise under any patent
14
// or patent rights of NVIDIA Corporation. No third party distribution is allowed unless
15
// expressly authorized by NVIDIA. Details are subject to change without notice.
16
// This code supersedes and replaces all information previously supplied.
17
// NVIDIA Corporation products are not authorized for use as critical
18
// components in life support devices or systems without express written approval of
19
// NVIDIA Corporation.
20
//
21
// Copyright (c) 2020-2021 NVIDIA Corporation. All rights reserved.
22
//
23
// NVIDIA Corporation and its licensors retain all intellectual property and proprietary
24
// rights in and to this software and related documentation and any modifications thereto.
25
// Any use, reproduction, disclosure or distribution of this software and related
26
// documentation without an express license agreement from NVIDIA Corporation is
27
// strictly prohibited.
28
//
30
44
#ifndef DW_EXPERIMENTAL_CODECS_CODEC_H_
45
#define DW_EXPERIMENTAL_CODECS_CODEC_H_
46
47
#include <
dw/core/base/Types.h
>
48
#include <
dw/sensors/camera/Camera.h
>
49
50
#ifdef __cplusplus
51
extern
"C"
{
52
#endif
53
55
typedef
enum
{
56
DW_MEDIA_TYPE_VIDEO
= 0,
57
DW_MEDIA_TYPE_LIDAR
= 1,
58
DW_MEDIA_TYPE_RADAR
= 2,
59
DW_MEDIA_TYPE_IMU
= 3,
60
DW_MEDIA_TYPE_GPS
= 4,
61
DW_MEDIA_TYPE_CAN
= 5,
62
DW_MEDIA_TYPE_DATA
= 6,
63
DW_MEDIA_TYPE_TIME
= 7,
64
DW_MEDIA_TYPE_ROADCAST
= 8,
65
DW_MEDIA_TYPE_ULTRASONIC
= 9,
66
DW_MEDIA_TYPE_COUNT
= 10
67
}
dwMediaType
;
68
70
typedef
enum
{
71
DW_CODEC_TYPE_VIDEO_H264
= 0,
72
DW_CODEC_TYPE_VIDEO_H265
= 1,
73
DW_CODEC_TYPE_VIDEO_VP9
= 2,
74
DW_CODEC_TYPE_VIDEO_AV1
= 3,
75
DW_CODEC_TYPE_VIDEO_LRAW
= 4,
76
DW_CODEC_TYPE_VIDEO_LRAW_V2
= 5,
77
DW_CODEC_TYPE_VIDEO_XRAW
= 6,
78
DW_CODEC_TYPE_VIDEO_RAW
= 7,
79
DW_CODEC_TYPE_LIDAR_CUSTOM
= 8,
80
DW_CODEC_TYPE_LIDAR_HESAI_P128
= 9,
81
DW_CODEC_TYPE_LIDAR_HESAI_P128_V4P5
= 10,
82
DW_CODEC_TYPE_LIDAR_LUMINAR_H
= 11,
83
DW_CODEC_TYPE_LIDAR_OUSTER_OS1
= 12,
84
DW_CODEC_TYPE_LIDAR_OUSTER_OS2_128
= 13,
85
DW_CODEC_TYPE_LIDAR_VELODYNE_HDL32E
= 14,
86
DW_CODEC_TYPE_LIDAR_VELODYNE_HDL64E
= 15,
87
DW_CODEC_TYPE_LIDAR_VELODYNE_VLP16
= 16,
88
DW_CODEC_TYPE_LIDAR_VELODYNE_VLP16HR
= 17,
89
DW_CODEC_TYPE_LIDAR_VELODYNE_VLP32C
= 18,
90
DW_CODEC_TYPE_LIDAR_VELODYNE_VLS128
= 19,
91
DW_CODEC_TYPE_RADAR_CONTINENTAL_ARS430
= 20,
92
DW_CODEC_TYPE_RADAR_CONTINENTAL_ARS430CAN
= 21,
93
DW_CODEC_TYPE_RADAR_CONTINENTAL_ARS430RDI
= 22,
94
DW_CODEC_TYPE_RADAR_CONTINENTAL_ARS430RDI_V2
= 23,
95
DW_CODEC_TYPE_RADAR_CUSTOM
= 24,
96
DW_CODEC_TYPE_RADAR_DELPHI
= 25,
97
DW_CODEC_TYPE_IMU_BOSCH
= 26,
98
DW_CODEC_TYPE_IMU_CAN
= 27,
99
DW_CODEC_TYPE_IMU_CONTINENTAL
= 28,
100
DW_CODEC_TYPE_IMU_CUSTOM
= 29,
101
DW_CODEC_TYPE_IMU_DATASPEED
= 30,
102
DW_CODEC_TYPE_IMU_NOVATEL_ASCII
= 31,
103
DW_CODEC_TYPE_IMU_NOVATEL_BINARY
= 32,
104
DW_CODEC_TYPE_IMU_NV_SIM
= 33,
105
DW_CODEC_TYPE_IMU_XSENS_BINARY
= 34,
106
DW_CODEC_TYPE_IMU_XSENS_CAN
= 35,
107
DW_CODEC_TYPE_IMU_XSENS_NMEA
= 36,
108
DW_CODEC_TYPE_GPS_CUSTOM
= 37,
109
DW_CODEC_TYPE_GPS_DATASPEED
= 38,
110
DW_CODEC_TYPE_GPS_DW_BINARY
= 39,
111
DW_CODEC_TYPE_GPS_NMEA
= 40,
112
DW_CODEC_TYPE_GPS_NOVATEL
= 41,
113
DW_CODEC_TYPE_GPS_NOVATEL_BINARY
= 42,
114
DW_CODEC_TYPE_GPS_NOVATEL_ASCII
= 43,
115
DW_CODEC_TYPE_GPS_NV_SIM
= 44,
116
DW_CODEC_TYPE_GPS_UBLOX
= 45,
117
DW_CODEC_TYPE_GPS_XSENS_BINARY
= 46,
118
DW_CODEC_TYPE_CAN_DW_BINARY
= 47,
119
DW_CODEC_TYPE_TIMESENSOR_DW_BINARY
= 48,
120
DW_CODEC_TYPE_DATA_DW_BINARY
= 49,
121
DW_CODEC_TYPE_ION
= 50,
122
DW_CODEC_TYPE_ULTRASONIC_VALEO_USV
= 51,
123
DW_CODEC_TYPE_RADAR_CUSTOM_EX
= 52,
124
DW_CODEC_TYPE_LIDAR_CUSTOM_EX
= 53,
125
DW_CODEC_TYPE_COUNT
= 54,
126
}
dwCodecType
;
127
129
typedef
enum
{
130
DW_CODEC_CAPABILITY_HARDWARE
= 0,
131
DW_CODEC_CAPABILITY_SOFTWARE
= 1,
132
DW_CODEC_CAPABILITY_UNSUPPORTED
= 2,
133
}
dwCodecCapability
;
134
138
typedef
struct
dwCodecPacket
139
{
140
/* Any flags necessary for the frame. */
141
uint64_t
flags
;
142
/* Presentation time stamp. */
143
dwTime_t
pts
;
144
/* Decoding time stamp. */
145
dwTime_t
dts
;
146
/* Encoded data. */
147
uint8_t*
data
;
148
/* Size of the data pointer in bytes. */
149
uint64_t
dataSizeBytes
;
150
void
*
reserved
[4];
151
}
dwCodecPacket
;
152
154
typedef
struct
dwEncoderConfigRateControl
155
{
156
uint32_t
gopSize
;
// number of pictures in one GOP(Group Of Pictures)
157
uint32_t
bFrames
;
// Number of bFrames between two reference frames
158
uint32_t
pFrames
;
// whether there should be p frames; boolean value
159
uint32_t
quality
;
// Target quality, range(0 - 51)
160
uint32_t
profile
;
// MPEG-4 encoding Profile
161
uint32_t
level
;
// MPEG-4 encoding Level range (1 - 6.2)
162
}
dwEncoderConfigRateControl
;
163
165
typedef
struct
dwEncoderConfigNVMedia
166
{
167
uint8_t
encoderInstance
;
// NVMedia-only
168
}
dwEncoderConfigNVMedia
;
169
171
typedef
struct
dwEncoderConfig
172
{
173
dwEncoderConfigRateControl
rateControl
;
174
dwEncoderConfigNVMedia
nvMedia
;
175
}
dwEncoderConfig
;
176
177
#ifdef __cplusplus
178
}
179
#endif
180
182
#endif // DW_EXPERIMENTAL_CODECS_CODEC_H_
Types.h
NVIDIA DriveWorks API: Core Types
DW_CODEC_TYPE_IMU_CONTINENTAL
Definition:
Codec.h:99
dwCodecPacket::dataSizeBytes
uint64_t dataSizeBytes
Definition:
Codec.h:149
DW_CODEC_TYPE_VIDEO_H264
Definition:
Codec.h:71
dwEncoderConfigRateControl
Encoder rate control parameters.
Definition:
Codec.h:154
DW_CODEC_TYPE_RADAR_CONTINENTAL_ARS430RDI_V2
Definition:
Codec.h:94
DW_MEDIA_TYPE_RADAR
Definition:
Codec.h:58
DW_MEDIA_TYPE_TIME
Definition:
Codec.h:63
DW_CODEC_CAPABILITY_HARDWARE
Definition:
Codec.h:130
DW_CODEC_TYPE_GPS_NV_SIM
Definition:
Codec.h:115
DW_MEDIA_TYPE_CAN
Definition:
Codec.h:61
dwEncoderConfigRateControl::profile
uint32_t profile
Definition:
Codec.h:160
DW_MEDIA_TYPE_IMU
Definition:
Codec.h:59
Camera.h
NVIDIA DriveWorks API: Cameras
DW_CODEC_TYPE_GPS_NOVATEL_ASCII
Definition:
Codec.h:114
dwEncoderConfigNVMedia::encoderInstance
uint8_t encoderInstance
Definition:
Codec.h:167
DW_CODEC_TYPE_VIDEO_VP9
Definition:
Codec.h:73
DW_CODEC_TYPE_VIDEO_LRAW_V2
Definition:
Codec.h:76
dwEncoderConfig
Encoder specific configs.
Definition:
Codec.h:171
DW_CODEC_TYPE_DATA_DW_BINARY
Definition:
Codec.h:120
DW_CODEC_TYPE_GPS_XSENS_BINARY
Definition:
Codec.h:117
DW_CODEC_TYPE_IMU_CUSTOM
Definition:
Codec.h:100
DW_CODEC_TYPE_RADAR_CUSTOM
Definition:
Codec.h:95
DW_CODEC_CAPABILITY_SOFTWARE
Definition:
Codec.h:131
DW_CODEC_TYPE_IMU_XSENS_CAN
Definition:
Codec.h:106
dwEncoderConfigRateControl::quality
uint32_t quality
Definition:
Codec.h:159
DW_CODEC_CAPABILITY_UNSUPPORTED
Definition:
Codec.h:132
DW_MEDIA_TYPE_ULTRASONIC
Definition:
Codec.h:65
DW_CODEC_TYPE_LIDAR_VELODYNE_VLP16HR
Definition:
Codec.h:88
DW_CODEC_TYPE_IMU_NV_SIM
Definition:
Codec.h:104
DW_CODEC_TYPE_RADAR_CUSTOM_EX
Definition:
Codec.h:123
dwCodecPacket::flags
uint64_t flags
Definition:
Codec.h:141
DW_CODEC_TYPE_IMU_NOVATEL_BINARY
Definition:
Codec.h:103
dwEncoderConfigRateControl::level
uint32_t level
Definition:
Codec.h:161
DW_CODEC_TYPE_ULTRASONIC_VALEO_USV
Definition:
Codec.h:122
DW_CODEC_TYPE_LIDAR_OUSTER_OS1
Definition:
Codec.h:83
dwEncoderConfig::nvMedia
dwEncoderConfigNVMedia nvMedia
Definition:
Codec.h:174
DW_CODEC_TYPE_LIDAR_VELODYNE_HDL64E
Definition:
Codec.h:86
dwCodecPacket::data
uint8_t * data
Definition:
Codec.h:147
dwEncoderConfigRateControl::bFrames
uint32_t bFrames
Definition:
Codec.h:157
DW_CODEC_TYPE_COUNT
Definition:
Codec.h:125
DW_CODEC_TYPE_CAN_DW_BINARY
Definition:
Codec.h:118
DW_CODEC_TYPE_LIDAR_HESAI_P128
Definition:
Codec.h:80
DW_CODEC_TYPE_RADAR_CONTINENTAL_ARS430CAN
Definition:
Codec.h:92
DW_CODEC_TYPE_IMU_XSENS_NMEA
Definition:
Codec.h:107
dwMediaType
dwMediaType
Media Type for Codec.
Definition:
Codec.h:55
dwEncoderConfig::rateControl
dwEncoderConfigRateControl rateControl
Definition:
Codec.h:173
dwTime_t
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition:
Types.h:82
dwEncoderConfigNVMedia
NVMedia encoder configs.
Definition:
Codec.h:165
DW_CODEC_TYPE_VIDEO_LRAW
Definition:
Codec.h:75
DW_MEDIA_TYPE_LIDAR
Definition:
Codec.h:57
DW_CODEC_TYPE_GPS_NMEA
Definition:
Codec.h:111
DW_CODEC_TYPE_LIDAR_HESAI_P128_V4P5
Definition:
Codec.h:81
DW_CODEC_TYPE_GPS_UBLOX
Definition:
Codec.h:116
DW_CODEC_TYPE_GPS_DW_BINARY
Definition:
Codec.h:110
DW_CODEC_TYPE_IMU_DATASPEED
Definition:
Codec.h:101
dwCodecPacket::pts
dwTime_t pts
Definition:
Codec.h:143
DW_CODEC_TYPE_RADAR_CONTINENTAL_ARS430
Definition:
Codec.h:91
dwCodecType
dwCodecType
Codec Type.
Definition:
Codec.h:70
dwCodecPacket::reserved
void * reserved[4]
Definition:
Codec.h:150
DW_CODEC_TYPE_LIDAR_VELODYNE_VLS128
Definition:
Codec.h:90
DW_CODEC_TYPE_LIDAR_CUSTOM_EX
Definition:
Codec.h:124
DW_CODEC_TYPE_VIDEO_H265
Definition:
Codec.h:72
DW_CODEC_TYPE_IMU_CAN
Definition:
Codec.h:98
DW_CODEC_TYPE_LIDAR_VELODYNE_VLP32C
Definition:
Codec.h:89
dwCodecCapability
dwCodecCapability
Codec Capability.
Definition:
Codec.h:129
DW_CODEC_TYPE_GPS_CUSTOM
Definition:
Codec.h:108
DW_CODEC_TYPE_GPS_NOVATEL_BINARY
Definition:
Codec.h:113
dwEncoderConfigRateControl::gopSize
uint32_t gopSize
Definition:
Codec.h:156
DW_MEDIA_TYPE_GPS
Definition:
Codec.h:60
DW_CODEC_TYPE_VIDEO_AV1
Definition:
Codec.h:74
DW_CODEC_TYPE_GPS_DATASPEED
Definition:
Codec.h:109
DW_CODEC_TYPE_VIDEO_XRAW
Definition:
Codec.h:77
DW_MEDIA_TYPE_ROADCAST
Definition:
Codec.h:64
DW_CODEC_TYPE_RADAR_CONTINENTAL_ARS430RDI
Definition:
Codec.h:93
DW_CODEC_TYPE_VIDEO_RAW
Definition:
Codec.h:78
dwCodecPacket::dts
dwTime_t dts
Definition:
Codec.h:145
DW_CODEC_TYPE_IMU_BOSCH
Definition:
Codec.h:97
DW_CODEC_TYPE_LIDAR_OUSTER_OS2_128
Definition:
Codec.h:84
dwCodecPacket
Generic struct storing data output from codec.
Definition:
Codec.h:138
DW_MEDIA_TYPE_DATA
Definition:
Codec.h:62
DW_CODEC_TYPE_RADAR_DELPHI
Definition:
Codec.h:96
DW_CODEC_TYPE_LIDAR_CUSTOM
Definition:
Codec.h:79
DW_CODEC_TYPE_LIDAR_VELODYNE_HDL32E
Definition:
Codec.h:85
dwEncoderConfigRateControl::pFrames
uint32_t pFrames
Definition:
Codec.h:158
DW_MEDIA_TYPE_VIDEO
Definition:
Codec.h:56
DW_CODEC_TYPE_GPS_NOVATEL
Definition:
Codec.h:112
DW_CODEC_TYPE_IMU_XSENS_BINARY
Definition:
Codec.h:105
DW_MEDIA_TYPE_COUNT
Definition:
Codec.h:66
DW_CODEC_TYPE_LIDAR_LUMINAR_H
Definition:
Codec.h:82
DW_CODEC_TYPE_ION
Definition:
Codec.h:121
DW_CODEC_TYPE_TIMESENSOR_DW_BINARY
Definition:
Codec.h:119
DW_CODEC_TYPE_IMU_NOVATEL_ASCII
Definition:
Codec.h:102
DW_CODEC_TYPE_LIDAR_VELODYNE_VLP16
Definition:
Codec.h:87
Advance Information | Subject to Change | Prepared and Provided under NDA | Generated by NVIDIA | PR-08397-V5.0