NVIDIA DeepStream SDK API Reference

8.0 Release
lidar_file_source_impl.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2021-2023 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 _DS3D_DATALOADER_LIDARSOURCE_LIDAR_FILE_SOURCE_IMPL_H
14 #define _DS3D_DATALOADER_LIDARSOURCE_LIDAR_FILE_SOURCE_IMPL_H
15 
16 #include "lidar_file_source.h"
17 #include "lidar_file_config.h"
22 
23 namespace ds3d { namespace impl { namespace lidarsource {
24 
25 using MemPtr = std::unique_ptr<MemData>;
26 
38 public:
39  LidarFileSourceImpl() = default;
40  ~LidarFileSourceImpl() override = default;
41 
42 protected:
50  ErrCode startImpl(const std::string& content, const std::string& path) override;
59  ErrCode readDataImpl(GuardDataMap& datamap) override;
64  ErrCode flushImpl() final { return ErrCode::kGood; }
70  ErrCode stopImpl() override;
71 
72 private:
76  ErrCode reserveMem(
77  Ptr<BufferPool<MemPtr>>& pool, size_t memSize, uint32_t count, const std::string& name);
78 
79  Ptr<BufferPool<MemPtr>> _bufMem;
80  std::vector<uint8_t> _tmpStrideBuf;
81  Ptr<MemData> _cpuSwapBuf;
82  Config _config;
83  profiling::FileReader _dataReader;
84  uint32_t _bytesPerFrame = 0;
85  uint32_t _bytesStrideFrame = 0;
86  uint32_t _totalNumFrames = 0;
87  uint32_t _totalFrameDuration = 0;
88  uint32_t _readFrameCount = 0;
89  bool _isFirstFrame = true;
90 };
91 
92 }}}
93 
94 #endif
ds3d::impl::lidarsource::LidarFileSourceImpl::stopImpl
ErrCode stopImpl() override
Stop and close all resources.
ds3d::impl::lidarsource::LidarFileSourceImpl::LidarFileSourceImpl
LidarFileSourceImpl()=default
ds3d::BufferPool
Definition: safe_queue.h:85
ds3d::impl::lidarsource::LidarFileSourceImpl::~LidarFileSourceImpl
~LidarFileSourceImpl() override=default
memdata.h
ds3d::impl::SyncImplDataLoader
Definition: impl_dataloader.h:70
ds3d::ErrCode::kGood
@ kGood
lidar_file_source.h
ds3d::ErrCode
ErrCode
Definition: common.h:43
ds3d::impl::lidarsource::LidarFileSourceImpl
Class for lidar data file reader,.
Definition: lidar_file_source_impl.h:37
ds3d::impl::lidarsource::MemPtr
std::unique_ptr< MemData > MemPtr
Definition: lidar_file_source_impl.h:25
ds3d::impl::lidarsource::LidarFileSourceImpl::readDataImpl
ErrCode readDataImpl(GuardDataMap &datamap) override
Read a frame, create new output datamap and fill the frame into it.
ds3d::impl::lidarsource::LidarFileSourceImpl::flushImpl
ErrCode flushImpl() final
flush all frames, Implementation of this function could be skipped.
Definition: lidar_file_source_impl.h:64
ds3d::Ptr
ShrdPtr< T > Ptr
Definition: obj.hpp:33
profiling.hpp
ds3d::impl::lidarsource::Config
Definition: lidar_file_config.h:32
ds3d::GuardDataMap
Definition: datamap.hpp:21
ds3d::impl::lidarsource::LidarFileSourceImpl::startImpl
ErrCode startImpl(const std::string &content, const std::string &path) override
Parse yaml config content and prepare all of the resource ready to fill into each frame datamap.
impl_frames.h
lidar_file_config.h
ds3d
Definition: abi_dataprocess.h:21
cuda_utils.h
ds3d::profiling::FileReader
Definition: profiling.hpp:110