NVIDIA DeepStream SDK API Reference

6.4 Release
abi_frame.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2022 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 
14 #ifndef _DS3D_COMMON_ABI_FRAME__H
15 #define _DS3D_COMMON_ABI_FRAME__H
16 
17 #include <ds3d/common/abi_obj.h>
18 #include <ds3d/common/common.h>
19 
20 namespace ds3d {
21 
22 struct abiFrame {
23  abiFrame() = default;
24  virtual ~abiFrame() = default;
25 
26  // define all ABI interface
27  virtual DataType dataType() const = 0;
28  virtual FrameType frameType() const = 0;
29  virtual MemType memType() const = 0;
30  virtual int64_t devId() const = 0;
31  virtual size_t bytes() const = 0;
32  // plane is for some planner 2D only
33  virtual const Shape& shape() const = 0;
34  virtual void* base() const = 0;
35  REGISTER_TYPE_ID(0x20001)
36 
37 private:
38  DS3D_DISABLE_CLASS_COPY(abiFrame);
39 };
40 
42 
43 struct Frame2DPlane {
44  uint32_t width;
45  uint32_t height;
46  uint32_t pitchInBytes;
47  uint32_t bytesPerPixel;
48  size_t offset;
49  REGISTER_TYPE_ID(0x20003)
50 };
51 
52 struct abi2DFrame : public abiFrame {
53  abi2DFrame() = default;
54  virtual uint32_t planes() const = 0;
55  virtual const Frame2DPlane& getPlane(uint32_t idx) const = 0;
56 };
57 
59 
60 } // namespace ds3d
61 
62 #endif // _DS3D_COMMON_ABI_FRAME__H
ds3d::abi2DFrame::getPlane
virtual const Frame2DPlane & getPlane(uint32_t idx) const =0
ds3d::abiFrame::frameType
virtual FrameType frameType() const =0
ds3d::Frame2DPlane::pitchInBytes
uint32_t pitchInBytes
Definition: abi_frame.h:46
REGISTER_TYPE_ID
#define REGISTER_TYPE_ID(uint64Id)
Definition: defines.h:131
ds3d::Frame2DPlane::offset
size_t offset
Definition: abi_frame.h:48
ds3d::abiFrame::memType
virtual MemType memType() const =0
ds3d::Frame2DPlane::width
uint32_t width
Definition: abi_frame.h:44
ds3d::Frame2DPlane::height
uint32_t height
Definition: abi_frame.h:45
ds3d::DataType
DataType
Definition: idatatype.h:77
ds3d::abiFrame::devId
virtual int64_t devId() const =0
ds3d::Frame2DPlane
Definition: abi_frame.h:43
ds3d::abi2DFrame::abi2DFrame
abi2DFrame()=default
ds3d::abiRefFrame
abiRefT< abiFrame > abiRefFrame
Definition: abi_frame.h:41
ds3d::Frame2DPlane::bytesPerPixel
uint32_t bytesPerPixel
Definition: abi_frame.h:47
ds3d::abiFrame::shape
virtual const Shape & shape() const =0
ds3d::abiRef2DFrame
abiRefT< abi2DFrame > abiRef2DFrame
Definition: abi_frame.h:58
ds3d::abiFrame::bytes
virtual size_t bytes() const =0
ds3d::abiFrame::base
virtual void * base() const =0
ds3d::abiRefT
Definition: abi_obj.h:39
ds3d::abi2DFrame::planes
virtual uint32_t planes() const =0
ds3d::abiFrame::abiFrame
abiFrame()=default
ds3d::abi2DFrame
Definition: abi_frame.h:52
common.h
abi_obj.h
ds3d::FrameType
FrameType
Definition: idatatype.h:90
ds3d::Shape
Definition: idatatype.h:117
ds3d::abiFrame::~abiFrame
virtual ~abiFrame()=default
ds3d
Definition: lidar_3d_datatype.h:33
ds3d::MemType
MemType
Definition: idatatype.h:101
ds3d::abiFrame::dataType
virtual DataType dataType() const =0
ds3d::abiFrame
Definition: abi_frame.h:22