DriveWorks SDK Reference
4.0.0 Release
For Test and Development only

Demuxer.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 
46 #ifndef DW_SENSORS_CONTAINERS_DEMUXER_H_
47 #define DW_SENSORS_CONTAINERS_DEMUXER_H_
48 
49 #include <dw/core/base/Exports.h>
50 #include <dw/core/base/Types.h>
51 #include <dw/core/base/Status.h>
53 
55 #include <dw/sensors/CodecHeader.h>
56 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60 
62 typedef struct dwDemuxerFrameInfo
63 {
64  // The track id.
65  uint64_t trackId;
66  // The id of the logical bundling of different frames.
67  // This is useful for presenting data together that
68  // may have different timestamps.
69  uint64_t bundleId;
70  // The zero-based index representing the order of the frame in the container.
71  uint64_t index;
72  // The length of the frame payload.
73  uint64_t size;
74  // The offset of the frame payload in the stream.
75  uint64_t offset;
76  // Optional flags.
77  uint64_t flags;
78  // Generic timestamps that can be used
81 
83 typedef struct dwDemuxerObject* dwDemuxerHandle_t;
84 
85 // TODO(lukea) - move this to IOStream.hpp when the C interface moves to core.
87 typedef struct dwIOStreamObject* dwIOStreamHandle_t;
88 
90 typedef struct dwDemuxerParams
91 {
93  dwIOStreamHandle_t inputStream;
95 
96 #ifdef __cplusplus
97 }
98 #endif
99 
100 #endif // DW_EXPERIMENTAL_SENSORS_CODEC_DEMUXER_H_
NVIDIA DriveWorks API: Core Types
dwTime_t timestamps[DW_CONTAINER_MAX_TIMESTAMPS]
Definition: Demuxer.h:79
uint64_t index
Definition: Demuxer.h:71
Holds demuxer frame info.
Definition: Demuxer.h:62
uint64_t bundleId
Definition: Demuxer.h:69
NVIDIA DriveWorks API: CodecHeader Method
uint64_t flags
Definition: Demuxer.h:77
uint64_t trackId
Definition: Demuxer.h:65
uint64_t offset
Definition: Demuxer.h:75
int64_t dwTime_t
Specifies a timestamp unit, in microseconds.
Definition: Types.h:82
#define DW_CONTAINER_MAX_TIMESTAMPS
Definition: Container.h:41
Holds demuxer params.
Definition: Demuxer.h:90
dwIOStreamHandle_t inputStream
Handle representing input stream.
Definition: Demuxer.h:93
NVIDIA DriveWorks API: Core Methods
struct dwIOStreamObject * dwIOStreamHandle_t
Handle to IO stream object.
Definition: Demuxer.h:87
struct dwDemuxerObject * dwDemuxerHandle_t
Demuxer handle.
Definition: Demuxer.h:83
NVIDIA DriveWorks API: Core Status Methods
NVIDIA DriveWorks API: Core Exports
uint64_t size
Definition: Demuxer.h:73