NVIDIA DeepStream SDK API Reference

8.0 Release
deepstream::DataFeeder Class Reference

Detailed Description

A specific signal handler for feeding data.

Users must implement the IDataProvider interface to create a data feeder. Data feeder can only be attached to elements that supports "need-data/enough-data" signal, typically an "appsrc".

Definition at line 39 of file data_feeder.hpp.

Inheritance diagram for deepstream::DataFeeder:
Collaboration diagram for deepstream::DataFeeder:

Data Structures

class  IDataProvider
 required interface for a data feeder More...
 

Public Member Functions

 DataFeeder (const std::string &name, IDataProvider *provider)
 Constructor. More...
 
 DataFeeder (const std::string &name, const char *factory, IDataProvider *provider)
 Constructor. More...
 
virtual ~DataFeeder ()
 Destructor. More...
 
void startFeed (void *appsrc, unsigned int size)
 Start feeding, called by the pipeline. More...
 
void stopFeed ()
 Stop feeding, called by the pipeline. More...
 
bool doFeed (void *appsrc, unsigned int size)
 Complete the feeding, called by the feeding thread. More...
 
void * getCallbackFn (const std::string &name) const
 Return the callback for a specific signal. More...
 
const std::string getName () const
 Return the name assigned during the construction. More...
 
 operator bool () const noexcept
 Check if the object is void. More...
 
bool operator== (const Object &other) noexcept
 Check if the two objects are the same. More...
 
GstObjectgive ()
 Give up the ownership and return the opaque pointer. More...
 
GstObjectgetGObject ()
 Return the opaque object pointer. More...
 
Objecttake (GstObject *object)
 Takes the ownership of a object through the opaque pointer. More...
 
Objectseize (GstObject *object)
 Seize a opaque object to prevent it from being destroyed somewhere. More...
 
Objectset (const YAML::Node &params)
 Set the properties from key/value pairs in the yaml format. More...
 
Objectset (const std::string &name, const Value &value)
 
template<typename T , typename... Args>
Objectset (const std::string &name, const T &value, const Args &... args)
 
template<typename T , typename... Args>
ObjectgetProperty (const std::string &name, T &value, Args &... args)
 Template for getting multiple properties. More...
 
std::vector< std::string > listSignals (bool is_action)
 List all the supported signals from the object. More...
 
bool connectSignal (const std::string &signal_name, SignalHandler &handler)
 Connect a signal handler to the object. More...
 
void emitSignal (const std::string &signal_name, va_list args)
 Emit a signal. More...
 

Static Public Member Functions

static unsigned long type ()
 Return the type id assigned to signal handler. More...
 

Protected Member Functions

virtual void set_ (const std::string &name, const Value &value)
 
virtual void set_ (const std::string &name, const YAML::Node &value)
 
virtual Value get_ (const std::string &name)
 

Protected Attributes

std::unique_ptr< IDataProviderdata_provider_
 
std::thread worker_
 
std::mutex mutex_
 
std::condition_variable cv_data_
 
unsigned int data_size_
 
bool data_ready_
 
void * appsrc_
 
bool eos_
 
std::unique_ptr< IActionProviderprovider_
 
std::string param_spec_
 property spec in YAML format More...
 
std::map< std::string, Object::Valueproperties_
 property map More...
 
GstObjectobject_
 

Constructor & Destructor Documentation

◆ DataFeeder() [1/2]

deepstream::DataFeeder::DataFeeder ( const std::string &  name,
IDataProvider provider 
)

Constructor.

Create a data feeder with a user implemented data provider interface

Parameters
[in]namename of the instance
[in]handlerimplementation of the IDataProvider interface

◆ DataFeeder() [2/2]

deepstream::DataFeeder::DataFeeder ( const std::string &  name,
const char *  factory,
IDataProvider provider 
)

Constructor.

Create a data feeder with a user implemented data provider interface

Parameters
[in]namename of the instance
[in]factoryname of the factory to create the instance
[in]handlerimplementation of the IDataProvider interface

◆ ~DataFeeder()

virtual deepstream::DataFeeder::~DataFeeder ( )
virtual

Destructor.

Member Function Documentation

◆ connectSignal()

bool deepstream::Object::connectSignal ( const std::string &  signal_name,
SignalHandler handler 
)
inherited

Connect a signal handler to the object.

Parameters
[in]signal_namename of the signal to be connected
[in]handlerhandler for the signal

◆ doFeed()

bool deepstream::DataFeeder::doFeed ( void *  appsrc,
unsigned int  size 
)

Complete the feeding, called by the feeding thread.

◆ emitSignal()

void deepstream::Object::emitSignal ( const std::string &  signal_name,
va_list  args 
)
inherited

Emit a signal.

◆ get_()

virtual Value deepstream::CustomObject::get_ ( const std::string &  name)
protectedvirtualinherited

Reimplemented from deepstream::Object.

◆ getCallbackFn()

void* deepstream::SignalHandler::getCallbackFn ( const std::string &  name) const
inherited

Return the callback for a specific signal.

◆ getGObject()

GstObject* deepstream::Object::getGObject ( )
inlineinherited

Return the opaque object pointer.

Definition at line 140 of file object.hpp.

References deepstream::Object::object_.

◆ getName()

const std::string deepstream::Object::getName ( ) const
inherited

Return the name assigned during the construction.

◆ getProperty()

template<typename T , typename... Args>
Object& deepstream::Object::getProperty ( const std::string &  name,
T &  value,
Args &...  args 
)
inlineinherited

◆ give()

GstObject* deepstream::Object::give ( )
inherited

Give up the ownership and return the opaque pointer.

◆ listSignals()

std::vector<std::string> deepstream::Object::listSignals ( bool  is_action)
inherited

List all the supported signals from the object.

◆ operator bool()

deepstream::Object::operator bool ( ) const
inlineexplicitnoexceptinherited

Check if the object is void.

Definition at line 131 of file object.hpp.

References deepstream::Object::object_.

◆ operator==()

bool deepstream::Object::operator== ( const Object other)
inlinenoexceptinherited

Check if the two objects are the same.

Definition at line 134 of file object.hpp.

References deepstream::Object::object_.

◆ seize()

Object& deepstream::Object::seize ( GstObject object)
inherited

Seize a opaque object to prevent it from being destroyed somewhere.

◆ set() [1/3]

template<typename T , typename... Args>
Object& deepstream::Object::set ( const std::string &  name,
const T &  value,
const Args &...  args 
)
inlineinherited

Definition at line 161 of file object.hpp.

References deepstream::Object::set(), and deepstream::Object::set_().

◆ set() [2/3]

Object& deepstream::Object::set ( const std::string &  name,
const Value value 
)
inlineinherited

Definition at line 154 of file object.hpp.

References deepstream::Object::set_().

◆ set() [3/3]

Object& deepstream::Object::set ( const YAML::Node &  params)
inherited

Set the properties from key/value pairs in the yaml format.

Referenced by deepstream::Pipeline::add(), and deepstream::Object::set().

◆ set_() [1/2]

virtual void deepstream::CustomObject::set_ ( const std::string &  name,
const Value value 
)
protectedvirtualinherited

Reimplemented from deepstream::Object.

◆ set_() [2/2]

virtual void deepstream::CustomObject::set_ ( const std::string &  name,
const YAML::Node &  value 
)
protectedvirtualinherited

Reimplemented from deepstream::Object.

◆ startFeed()

void deepstream::DataFeeder::startFeed ( void *  appsrc,
unsigned int  size 
)

Start feeding, called by the pipeline.

◆ stopFeed()

void deepstream::DataFeeder::stopFeed ( )

Stop feeding, called by the pipeline.

◆ take()

Object& deepstream::Object::take ( GstObject object)
inherited

Takes the ownership of a object through the opaque pointer.

◆ type()

static unsigned long deepstream::SignalHandler::type ( )
staticinherited

Return the type id assigned to signal handler.

Field Documentation

◆ appsrc_

void* deepstream::DataFeeder::appsrc_
protected

Definition at line 102 of file data_feeder.hpp.

◆ cv_data_

std::condition_variable deepstream::DataFeeder::cv_data_
protected

Definition at line 99 of file data_feeder.hpp.

◆ data_provider_

std::unique_ptr<IDataProvider> deepstream::DataFeeder::data_provider_
protected

Definition at line 96 of file data_feeder.hpp.

◆ data_ready_

bool deepstream::DataFeeder::data_ready_
protected

Definition at line 101 of file data_feeder.hpp.

◆ data_size_

unsigned int deepstream::DataFeeder::data_size_
protected

Definition at line 100 of file data_feeder.hpp.

◆ eos_

bool deepstream::DataFeeder::eos_
protected

Definition at line 103 of file data_feeder.hpp.

◆ mutex_

std::mutex deepstream::DataFeeder::mutex_
protected

Definition at line 98 of file data_feeder.hpp.

◆ object_

GstObject* deepstream::Object::object_
protectedinherited

◆ param_spec_

std::string deepstream::CustomObject::param_spec_
protectedinherited

property spec in YAML format

Definition at line 51 of file custom_object.hpp.

◆ properties_

std::map<std::string, Object::Value> deepstream::CustomObject::properties_
protectedinherited

property map

Definition at line 53 of file custom_object.hpp.

◆ provider_

std::unique_ptr<IActionProvider> deepstream::SignalHandler::provider_
protectedinherited

Definition at line 91 of file signal_handler.hpp.

◆ worker_

std::thread deepstream::DataFeeder::worker_
protected

Definition at line 97 of file data_feeder.hpp.


The documentation for this class was generated from the following file: