NVIDIA DeepStream SDK API Reference
9.1 Release
9.1/service-maker/includes/data_feeder.hpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: Copyright (c) 2024-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
23
#ifndef NVIDIA_DEEPSTREAM_DATA_FEEDER
24
#define NVIDIA_DEEPSTREAM_DATA_FEEDER
25
26
#include <thread>
27
#include <mutex>
28
#include <condition_variable>
29
30
#include "
signal_handler.hpp
"
31
#include "
buffer.hpp
"
32
33
namespace
deepstream
{
34
44
class
DataFeeder :
public
SignalHandler {
45
public
:
52
class
IDataProvider {
53
public
:
65
virtual
Buffer
read
(
DataFeeder
& feeder,
unsigned
int
size,
bool
& eos) = 0;
66
virtual
~IDataProvider
() {}
67
};
68
77
DataFeeder
(
const
std::string &name, IDataProvider* provider);
78
88
DataFeeder
(
const
std::string &name,
const
char
* factory, IDataProvider* provider);
89
91
virtual
~DataFeeder
();
92
94
void
startFeed
(
void
* appsrc,
unsigned
int
size);
96
void
stopFeed
();
98
bool
doFeed
(
void
* appsrc,
unsigned
int
size);
99
100
protected
:
101
std::unique_ptr<IDataProvider>
data_provider_
;
102
std::thread
worker_
;
103
std::mutex
mutex_
;
104
std::condition_variable
cv_data_
;
105
unsigned
int
data_size_
;
106
bool
data_ready_
;
107
void
*
appsrc_
;
108
bool
eos_
;
109
110
};
111
}
112
113
#endif
deepstream::DataFeeder::worker_
std::thread worker_
Definition:
service-maker/includes/data_feeder.hpp:102
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:106
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:108
deepstream::DataFeeder::IDataProvider::~IDataProvider
virtual ~IDataProvider()
Definition:
9.1/service-maker/includes/data_feeder.hpp:66
deepstream
Definition:
service-maker/includes/buffer.hpp:38
deepstream::DataFeeder::mutex_
std::mutex mutex_
Definition:
service-maker/includes/data_feeder.hpp:103
deepstream::DataFeeder::~DataFeeder
virtual ~DataFeeder()
Destructor.
deepstream::DataFeeder::cv_data_
std::condition_variable cv_data_
Definition:
service-maker/includes/data_feeder.hpp:104
signal_handler.hpp
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:101
deepstream::DataFeeder::data_size_
unsigned int data_size_
Definition:
service-maker/includes/data_feeder.hpp:105
deepstream::DataFeeder::appsrc_
void * appsrc_
Definition:
service-maker/includes/data_feeder.hpp:107
Privacy Policy
|
Manage My Privacy
|
Do Not Sell or Share My Data
|
Terms of Service
|
Accessibility
|
Corporate Policies
|
Product Security
|
Contact
© 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
NVIDIA Confidential | Subject to Change | For test and development only.
Thu Jul 9 2026 11:48:18 | PR-09318-R32