NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
Container.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2020-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
13 #ifndef DW_SENSORS_CONTAINERS_CONTAINER_H_
14 #define DW_SENSORS_CONTAINERS_CONTAINER_H_
15 
16 #include <dw/core/base/Types.h>
17 #include <dw/sensors/codecs/Codec.h>
18 #include <dw/sensors/containers/Metadata.h>
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
24 #define DW_CONTAINER_MAX_TIMESTAMPS 8U
25 #define DW_CONTAINER_MAX_META_TYPES 8U
26 
28 typedef enum {
39 } dwTimeType;
40 
42 typedef struct dwContainerProperties
43 {
44  uint32_t fileMagicNumber;
45  uint32_t fileVersion;
46  uint32_t prefixHeaderSize;
47  uint32_t suffixHeaderSize;
48  uint64_t trackHeaderOffset;
50 
52 typedef struct dwContainerTrackInfo
53 {
55  uint32_t timeTypesCount;
57  void const* metadata;
59 
61 typedef enum dwContainerFrameFlags {
65 
67 typedef enum dwContainerType {
72 
74 typedef struct dwContainerMetaConfig
75 {
77  uint32_t metaTypesCount;
81 
82 #ifdef __cplusplus
83 }
84 #endif
85 
86 #endif //DW_SENSORS_CONTAINERS_CONTAINER_H_
DW_CONTAINER_TYPE_MP4
@ DW_CONTAINER_TYPE_MP4
MP4 Container.
Definition: Container.h:69
dwContainerProperties
struct dwContainerProperties dwContainerProperties
Holds container properties.
dwContainerMetaConfig::capacity
uint32_t capacity[DW_CONTAINER_MAX_META_TYPES]
Maximum metadata item count for each metadata type specified in metaTypes.
Definition: Container.h:79
dwContainerProperties
Holds container properties.
Definition: Container.h:42
dwContainerTrackInfo::mediaType
dwMediaType mediaType
Media type defined in Codec.h.
Definition: Container.h:54
dwContainerMetaType
dwContainerMetaType
Enum representing supported metadata types.
Definition: Metadata.h:21
dwContainerMetaConfig::metaTypes
dwContainerMetaType metaTypes[DW_CONTAINER_MAX_META_TYPES]
Types of metadata.
Definition: Container.h:78
DW_TIME_TYPE_TSC
@ DW_TIME_TYPE_TSC
TSC time.
Definition: Container.h:31
DW_CONTAINER_TYPE_UNKNOWN
@ DW_CONTAINER_TYPE_UNKNOWN
Unknow Container.
Definition: Container.h:68
DW_CONTAINER_TYPE_DWPOD
@ DW_CONTAINER_TYPE_DWPOD
Product Container.
Definition: Container.h:70
dwContainerFrameFlags
dwContainerFrameFlags
Enum representing a container frame flags.
Definition: Container.h:61
dwContainerProperties::fileMagicNumber
uint32_t fileMagicNumber
Container ID.
Definition: Container.h:44
DW_CONTAINER_MAX_TIMESTAMPS
#define DW_CONTAINER_MAX_TIMESTAMPS
Definition: Container.h:24
dwMediaType
dwMediaType
Media Type for Codec.
Definition: Codec.h:47
dwContainerMetaConfig::metaTypesCount
uint32_t metaTypesCount
Number of different metadata types.
Definition: Container.h:77
dwContainerProperties::trackHeaderOffset
uint64_t trackHeaderOffset
Offset of the track header in the single-track containers.
Definition: Container.h:48
DW_TIME_TYPE_ABSOLUTE
@ DW_TIME_TYPE_ABSOLUTE
Absolute time.
Definition: Container.h:34
dwContainerProperties::fileVersion
uint32_t fileVersion
Container version.
Definition: Container.h:45
DW_TIME_TYPE_NONE
@ DW_TIME_TYPE_NONE
None time type.
Definition: Container.h:29
dwContainerTrackInfo::timeTypesCount
uint32_t timeTypesCount
Number of time types.
Definition: Container.h:55
DW_TIME_TYPE_SERIALIZATION
@ DW_TIME_TYPE_SERIALIZATION
Serialization time.
Definition: Container.h:35
DW_TIME_TYPE_PRIOR_KEY_FRAME
@ DW_TIME_TYPE_PRIOR_KEY_FRAME
Key Frame.
Definition: Container.h:38
DW_TIME_TYPE_HOST
@ DW_TIME_TYPE_HOST
Host time.
Definition: Container.h:30
DW_TIME_TYPE_POS_OFFSET
@ DW_TIME_TYPE_POS_OFFSET
Postition Offset.
Definition: Container.h:37
DW_CONTAINER_FRAME_SEEKABLE
@ DW_CONTAINER_FRAME_SEEKABLE
This frame represents the beginning of a sequence resulting in a decodable frame.
Definition: Container.h:62
DW_CONTAINER_MAX_META_TYPES
#define DW_CONTAINER_MAX_META_TYPES
Definition: Container.h:25
dwContainerMetaConfig
struct dwContainerMetaConfig dwContainerMetaConfig
Holds the container metadata configuration.
DW_TIME_TYPE_SEQUENCE_NUMBER
@ DW_TIME_TYPE_SEQUENCE_NUMBER
Sequence Number.
Definition: Container.h:36
dwContainerType
dwContainerType
Enum representing a supported container types.
Definition: Container.h:67
dwContainerTrackInfo
Holds container track information.
Definition: Container.h:52
dwContainerTrackInfo
struct dwContainerTrackInfo dwContainerTrackInfo
Holds container track information.
DW_TIME_TYPE_RELATIVE_PTS
@ DW_TIME_TYPE_RELATIVE_PTS
PTS time.
Definition: Container.h:32
dwContainerProperties::prefixHeaderSize
uint32_t prefixHeaderSize
Size of the prefix header(s) in the beginning of the container.
Definition: Container.h:46
DW_TIME_TYPE_RELATIVE_DTS
@ DW_TIME_TYPE_RELATIVE_DTS
DTS time.
Definition: Container.h:33
dwContainerMetaConfig
Holds the container metadata configuration.
Definition: Container.h:74
dwContainerTrackInfo::metadata
void const * metadata
Serialized track metadata.
Definition: Container.h:57
dwTimeType
dwTimeType
Enum representing a supported time domains.
Definition: Container.h:28
DW_CONTAINER_FRAME_COMPLETE
@ DW_CONTAINER_FRAME_COMPLETE
This frame represents the end of a sequence resulting in a decodable frame.
Definition: Container.h:63
dwContainerProperties::suffixHeaderSize
uint32_t suffixHeaderSize
Size of the suffix header(s) in the end of the container.
Definition: Container.h:47
dwContainerTrackInfo::timeTypes
dwTimeType timeTypes[DW_CONTAINER_MAX_TIMESTAMPS]
Array of time types.
Definition: Container.h:56
dwContainerMetaConfig::containerType
dwContainerType containerType
Container type.
Definition: Container.h:76