NVIDIA DeepStream SDK API Reference
8.0 Release
9.0/service-maker/includes/data_feeder.hpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: Copyright (c) 2024 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
18
#ifndef NVIDIA_DEEPSTREAM_DATA_FEEDER
19
#define NVIDIA_DEEPSTREAM_DATA_FEEDER
20
21
#include <thread>
22
#include <mutex>
23
#include <condition_variable>
24
25
#include "
signal_handler.hpp
"
26
#include "
buffer.hpp
"
27
28
namespace
deepstream
{
29
39
class
DataFeeder :
public
SignalHandler {
40
public
:
47
class
IDataProvider {
48
public
:
60
virtual
Buffer
read
(
DataFeeder
& feeder,
unsigned
int
size,
bool
& eos) = 0;
61
virtual
~IDataProvider
() {}
62
};
63
72
DataFeeder
(
const
std::string &name, IDataProvider* provider);
73
83
DataFeeder
(
const
std::string &name,
const
char
* factory, IDataProvider* provider);
84
86
virtual
~DataFeeder
();
87
89
void
startFeed
(
void
* appsrc,
unsigned
int
size);
91
void
stopFeed
();
93
bool
doFeed
(
void
* appsrc,
unsigned
int
size);
94
95
protected
:
96
std::unique_ptr<IDataProvider>
data_provider_
;
97
std::thread
worker_
;
98
std::mutex
mutex_
;
99
std::condition_variable
cv_data_
;
100
unsigned
int
data_size_
;
101
bool
data_ready_
;
102
void
*
appsrc_
;
103
bool
eos_
;
104
105
};
106
}
107
108
#endif
signal_handler.hpp
deepstream::DataFeeder::worker_
std::thread worker_
Definition:
service-maker/includes/data_feeder.hpp:97
deepstream::DataFeeder::DataFeeder
DataFeeder(const std::string &name, IDataProvider *provider)
Constructor.
deepstream::DataFeeder::doFeed
bool doFeed(void *appsrc, unsigned int size)
Complete the feeding, called by the feeding thread.
deepstream::DataFeeder::data_ready_
bool data_ready_
Definition:
service-maker/includes/data_feeder.hpp:101
deepstream::DataFeeder::IDataProvider::read
virtual Buffer read(DataFeeder &feeder, unsigned int size, bool &eos)=0
Read a data block.
deepstream::DataFeeder::startFeed
void startFeed(void *appsrc, unsigned int size)
Start feeding, called by the pipeline.
deepstream::DataFeeder::eos_
bool eos_
Definition:
service-maker/includes/data_feeder.hpp:103
deepstream::DataFeeder::IDataProvider::~IDataProvider
virtual ~IDataProvider()
Definition:
9.0/service-maker/includes/data_feeder.hpp:61
deepstream
Definition:
service-maker/includes/buffer.hpp:33
deepstream::DataFeeder::mutex_
std::mutex mutex_
Definition:
service-maker/includes/data_feeder.hpp:98
deepstream::DataFeeder::~DataFeeder
virtual ~DataFeeder()
Destructor.
deepstream::DataFeeder::cv_data_
std::condition_variable cv_data_
Definition:
service-maker/includes/data_feeder.hpp:99
buffer.hpp
deepstream::DataFeeder::stopFeed
void stopFeed()
Stop feeding, called by the pipeline.
deepstream::DataFeeder::data_provider_
std::unique_ptr< IDataProvider > data_provider_
Definition:
service-maker/includes/data_feeder.hpp:96
deepstream::DataFeeder::data_size_
unsigned int data_size_
Definition:
service-maker/includes/data_feeder.hpp:100
deepstream::DataFeeder::appsrc_
void * appsrc_
Definition:
service-maker/includes/data_feeder.hpp:102
Privacy Policy
|
Manage My Privacy
|
Do Not Sell or Share My Data
|
Terms of Service
|
Accessibility
|
Corporate Policies
|
Product Security
|
Contact
© 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
NVIDIA Confidential | Subject to Change | For test and development only.
Tue Mar 17 2026 09:30:34 | PR-09318-R32