NVIDIA DeepStream SDK API Reference

9.1 Release
sources/includes/ds3d/common/abi_frame.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: Apache-2.0
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef _DS3D_COMMON_ABI_FRAME__H
19 #define _DS3D_COMMON_ABI_FRAME__H
20 
21 #include <ds3d/common/abi_obj.h>
22 #include <ds3d/common/common.h>
23 
24 namespace ds3d {
25 
26 struct abiFrame {
27  abiFrame() = default;
28  virtual ~abiFrame() = default;
29 
30  // define all ABI interface
31  virtual DataType dataType() const = 0;
32  virtual FrameType frameType() const = 0;
33  virtual MemType memType() const = 0;
34  virtual int64_t devId() const = 0;
35  virtual size_t bytes() const = 0;
36  // plane is for some planner 2D only
37  virtual const Shape& shape() const = 0;
38  virtual void* base() const = 0;
39  REGISTER_TYPE_ID(0x20001)
40 
41 private:
42  DS3D_DISABLE_CLASS_COPY(abiFrame);
43 };
44 
46 
47 struct Frame2DPlane {
48  uint32_t width;
49  uint32_t height;
50  uint32_t pitchInBytes;
51  uint32_t bytesPerPixel;
52  size_t offset;
53  REGISTER_TYPE_ID(0x20003)
54 };
55 
56 struct abi2DFrame : public abiFrame {
57  abi2DFrame() = default;
58  virtual uint32_t planes() const = 0;
59  virtual const Frame2DPlane& getPlane(uint32_t idx) const = 0;
60 };
61 
63 
64 } // namespace ds3d
65 
66 #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: sources/includes/ds3d/common/abi_frame.h:50
ds3d::Frame2DPlane::offset
size_t offset
Definition: sources/includes/ds3d/common/abi_frame.h:52
ds3d::abiFrame::memType
virtual MemType memType() const =0
ds3d::Frame2DPlane::width
uint32_t width
Definition: sources/includes/ds3d/common/abi_frame.h:48
ds3d::abiRef2DFrame
abiRefT< abi2DFrame > abiRef2DFrame
Definition: sources/includes/ds3d/common/abi_frame.h:62
ds3d::Frame2DPlane::height
uint32_t height
Definition: sources/includes/ds3d/common/abi_frame.h:49
ds3d::DataType
DataType
Definition: sources/includes/ds3d/common/idatatype.h:82
ds3d::abiFrame::devId
virtual int64_t devId() const =0
ds3d::Frame2DPlane
Definition: sources/includes/ds3d/common/abi_frame.h:47
ds3d::abi2DFrame::abi2DFrame
abi2DFrame()=default
REGISTER_TYPE_ID
#define REGISTER_TYPE_ID(uint64Id)
Definition: sources/includes/ds3d/common/defines.h:136
ds3d::Frame2DPlane::bytesPerPixel
uint32_t bytesPerPixel
Definition: sources/includes/ds3d/common/abi_frame.h:51
ds3d::abiFrame::shape
virtual const Shape & shape() const =0
ds3d::abiFrame::bytes
virtual size_t bytes() const =0
ds3d::abiFrame::base
virtual void * base() const =0
ds3d::abiRefT
Definition: sources/includes/ds3d/common/abi_obj.h:43
ds3d::abi2DFrame::planes
virtual uint32_t planes() const =0
ds3d::abiFrame::abiFrame
abiFrame()=default
ds3d::abi2DFrame
Definition: sources/includes/ds3d/common/abi_frame.h:56
ds3d::FrameType
FrameType
Definition: sources/includes/ds3d/common/idatatype.h:95
ds3d::Shape
Definition: sources/includes/ds3d/common/idatatype.h:122
ds3d::abiFrame::~abiFrame
virtual ~abiFrame()=default
ds3d
Definition: sources/includes/ds3d/common/abi_dataprocess.h:25
ds3d::abiRefFrame
abiRefT< abiFrame > abiRefFrame
Definition: sources/includes/ds3d/common/abi_frame.h:45
ds3d::MemType
MemType
Definition: sources/includes/ds3d/common/idatatype.h:106
ds3d::abiFrame::dataType
virtual DataType dataType() const =0
ds3d::abiFrame
Definition: sources/includes/ds3d/common/abi_frame.h:26