NVIDIA DeepStream SDK API Reference

9.1 Release
9.1/sources/includes/ds3d/common/hpp/datamixer.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2023-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_HPP_DATA_MIXER_HPP
19 #define DS3D_COMMON_HPP_DATA_MIXER_HPP
20 
21 #include <ds3d/common/common.h>
22 #include <ds3d/common/func_utils.h>
23 #include <ds3d/common/hpp/dataprocess.hpp>
24 
25 namespace ds3d {
26 
59 class GuardDataMixer : public GuardDataProcess<abiDataMixer> {
60  using _Base = GuardDataProcess<abiDataMixer>;
61 
62 public:
63  template <typename... Args>
64  GuardDataMixer(Args&&... args) : _Base(std::forward<Args>(args)...)
65  {
66  }
67  ~GuardDataMixer() = default;
68 
70  const int portId,
71  GuardDataMap datamap,
72  abiOnDataCB::CppFunc inputConsumedCB)
73  {
74  GuardCB<abiOnDataCB> guardConsumedCb;
75  guardConsumedCb.setFn<ErrCode, const abiRefDataMap*>(std::move(inputConsumedCB));
76 
77  DS_ASSERT(ptr());
78  ErrCode code =
79  ptr()->process_i(portId, datamap.abiRef(), guardConsumedCb.abiRef());
80  return code;
81  }
82 
84  abiOnDataCB::CppFunc outputDataCB)
85  {
86  GuardCB<abiOnDataCB> guardOutputCb;
87  guardOutputCb.setFn<ErrCode, const abiRefDataMap*>(std::move(outputDataCB));
88 
89  DS_ASSERT(ptr());
90  ErrCode code =
91  ptr()->setOutputCb_i(guardOutputCb.abiRef());
92  return code;
93  }
94 
95  ErrCode updateInput(int portId, MixerUpdate updateType) { return ptr()->updateInput_i(portId, updateType); }
96 };
97 
98 } // namespace ds3d
99 
100 #endif // DS3D_COMMON_HPP_DATA_MIXER_HPP
ds3d::abiDataMixer::process_i
virtual ErrCode process_i(const int portId, const abiRefDataMap *inputData, const abiOnDataCB *dataConsumedCb)=0
ds3d::abiDataMixer::setOutputCb_i
virtual ErrCode setOutputCb_i(const abiOnDataCB *outputDataCb)=0
to configure mixer framerate and output callback
ds3d::GuardDataProcess< abiDataMixer >
ds3d::GuardDataMixer::setOutputCb
ErrCode setOutputCb(abiOnDataCB::CppFunc outputDataCB)
Definition: 9.1/sources/includes/ds3d/common/hpp/datamixer.hpp:83
ds3d::MixerUpdate
MixerUpdate
Definition: sources/includes/ds3d/common/abi_dataprocess.h:62
ds3d::GuardRef::abiRef
ref * abiRef() const
Definition: sources/includes/ds3d/common/hpp/obj.hpp:273
ds3d::abiDataMixer::updateInput_i
virtual ErrCode updateInput_i(int portId, MixerUpdate updateType)=0
ds3d::abiRefT< abiDataMap >
DS_ASSERT
#define DS_ASSERT(...)
Definition: sources/includes/ds3d/common/defines.h:36
ds3d::ErrCode
ErrCode
Definition: sources/includes/ds3d/common/common.h:47
ds3d::GuardDataMixer::process
ErrCode process(const int portId, GuardDataMap datamap, abiOnDataCB::CppFunc inputConsumedCB)
Definition: 9.1/sources/includes/ds3d/common/hpp/datamixer.hpp:69
ds3d::GuardDataMixer::GuardDataMixer
GuardDataMixer(Args &&... args)
Definition: 9.1/sources/includes/ds3d/common/hpp/datamixer.hpp:64
ds3d::GuardCB::setFn
void setFn(F f)
Definition: sources/includes/ds3d/common/hpp/obj.hpp:301
ds3d::GuardDataMixer::updateInput
ErrCode updateInput(int portId, MixerUpdate updateType)
Definition: 9.1/sources/includes/ds3d/common/hpp/datamixer.hpp:95
ds3d::GuardDataMixer::~GuardDataMixer
~GuardDataMixer()=default
ds3d::GuardDataT< abiDataMixer >::ptr
abiDataMixer * ptr() const
Definition: sources/includes/ds3d/common/hpp/obj.hpp:365
ds3d::GuardDataMap
Definition: sources/includes/ds3d/common/hpp/datamap.hpp:27
ds3d
Definition: sources/includes/ds3d/common/abi_dataprocess.h:25
ds3d::abiCallBackT::CppFunc
std::function< void(Args...)> CppFunc
Definition: sources/includes/ds3d/common/abi_obj.h:76
ds3d::GuardCB
Definition: sources/includes/ds3d/common/hpp/obj.hpp:289