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>
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
55 typedef enum {
67 } dwMediaType;
68 
70 typedef enum {
126 } dwCodecType;
127 
129 typedef enum {
134 
138 typedef struct dwCodecPacket
139 {
140  /* Any flags necessary for the frame. */
141  uint64_t flags;
142  /* Presentation time stamp. */
144  /* Decoding time stamp. */
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 
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)
163 
166 {
167  uint8_t encoderInstance; // NVMedia-only
169 
171 typedef struct dwEncoderConfig
172 {
176 
177 #ifdef __cplusplus
178 }
179 #endif
180 
182 #endif // DW_EXPERIMENTAL_CODECS_CODEC_H_
NVIDIA DriveWorks API: Core Types
uint64_t dataSizeBytes
Definition: Codec.h:149
Encoder rate control parameters.
Definition: Codec.h:154
NVIDIA DriveWorks API: Cameras
uint8_t encoderInstance
Definition: Codec.h:167
Encoder specific configs.
Definition: Codec.h:171
uint64_t flags
Definition: Codec.h:141
dwEncoderConfigNVMedia nvMedia
Definition: Codec.h:174
uint8_t * data
Definition: Codec.h:147
dwMediaType
Media Type for Codec.
Definition: Codec.h:55
dwEncoderConfigRateControl rateControl
Definition: Codec.h:173
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: Types.h:82
NVMedia encoder configs.
Definition: Codec.h:165
dwTime_t pts
Definition: Codec.h:143
dwCodecType
Codec Type.
Definition: Codec.h:70
void * reserved[4]
Definition: Codec.h:150
dwCodecCapability
Codec Capability.
Definition: Codec.h:129
dwTime_t dts
Definition: Codec.h:145
Generic struct storing data output from codec.
Definition: Codec.h:138