NVIDIA DeepStream SDK API Reference

6.4 Release
ds3d::gst::PipelineContext Class Reference

Detailed Description

Definition at line 62 of file nvds3d_pipeline_context.h.

Collaboration diagram for ds3d::gst::PipelineContext:

Public Member Functions

 PipelineContext ()
 
virtual ~PipelineContext ()
 
void setMainloop (GMainLoop *loop)
 
void setEosAutoQuit (bool enable)
 
virtual ErrCode init (const std::string &name)
 
PipelineContextadd (const gst::ElePtr &ele)
 
virtual ErrCode start (std::function< void()> loopQuitCb)
 
virtual ErrCode stop ()
 
virtual void deinit ()
 
bool isRunning (size_t timeout=0)
 
void quitMainLoop ()
 
void waitLoopQuit ()
 
ErrCode playPipeline ()
 
ErrCode stopPipeline ()
 
ErrCode runMainLoop (std::function< void()> loopQuitCb)
 
ErrCode sendEOS ()
 
GstPipeline * pipeline () const
 
GstBus * bus () const
 
GMainLoop * mainLoop () const
 

Static Public Member Functions

static gboolean GSourceCb (gpointer user_data)
 

Protected Member Functions

ErrCode setPipelineState (GstState state)
 
ErrCode setState (GstElement *ele, GstState state)
 
ErrCode getState (GstElement *ele, GstState *state, GstState *pending=nullptr, size_t timeout=0)
 
std::mutex & mutex () const
 
 DS3D_DISABLE_CLASS_COPY (PipelineContext)
 

Static Protected Member Functions

static gboolean sBusCall (GstBus *bus, GstMessage *msg, gpointer data)
 

Protected Attributes

gst::ElePtr _pipeline
 
gst::BusPtr _bus
 
uint32_t _busWatchId = 0
 
std::vector< gst::ElePtr_elementList
 
ds3d::UniqPtr< GMainLoop > _mainLoop {nullptr, g_main_loop_unref}
 
bool _eosAutoQuit = false
 
std::unique_ptr< std::thread > _mainLoopThread
 
std::atomic_bool _mainStopped {false}
 
std::atomic_bool _eosReceived {false}
 
std::mutex _pipelineMutex
 
std::condition_variable _StatusCond
 

Constructor & Destructor Documentation

◆ PipelineContext()

ds3d::gst::PipelineContext::PipelineContext ( )
inline

Definition at line 64 of file nvds3d_pipeline_context.h.

◆ ~PipelineContext()

virtual ds3d::gst::PipelineContext::~PipelineContext ( )
inlinevirtual

Definition at line 65 of file nvds3d_pipeline_context.h.

References deinit().

Member Function Documentation

◆ add()

PipelineContext& ds3d::gst::PipelineContext::add ( const gst::ElePtr ele)
inline

◆ bus()

GstBus* ds3d::gst::PipelineContext::bus ( ) const
inline

Definition at line 304 of file nvds3d_pipeline_context.h.

References _bus, and ds3d::gst::GstPtr< GstObjT, ObjFunc >::get().

Referenced by deinit(), init(), and sBusCall().

◆ deinit()

virtual void ds3d::gst::PipelineContext::deinit ( )
inlinevirtual

◆ DS3D_DISABLE_CLASS_COPY()

ds3d::gst::PipelineContext::DS3D_DISABLE_CLASS_COPY ( PipelineContext  )
protected

◆ getState()

ErrCode ds3d::gst::PipelineContext::getState ( GstElement *  ele,
GstState *  state,
GstState *  pending = nullptr,
size_t  timeout = 0 
)
inlineprotected

Definition at line 371 of file nvds3d_pipeline_context.h.

References DS_ASSERT, ds3d::kGood, ds3d::kGst, and ds3d::kUnknown.

Referenced by stopPipeline().

◆ GSourceCb()

static gboolean ds3d::gst::PipelineContext::GSourceCb ( gpointer  user_data)
inlinestatic

Definition at line 224 of file nvds3d_pipeline_context.h.

References DS_ASSERT.

Referenced by runMainLoop().

◆ init()

virtual ErrCode ds3d::gst::PipelineContext::init ( const std::string &  name)
inlinevirtual

◆ isRunning()

bool ds3d::gst::PipelineContext::isRunning ( size_t  timeout = 0)
inline

Definition at line 133 of file nvds3d_pipeline_context.h.

References _eosAutoQuit, _eosReceived, _mainStopped, mainLoop(), mutex(), and pipeline().

Referenced by stop().

◆ mainLoop()

GMainLoop* ds3d::gst::PipelineContext::mainLoop ( ) const
inline

Definition at line 305 of file nvds3d_pipeline_context.h.

References _mainLoop.

Referenced by isRunning(), quitMainLoop(), runMainLoop(), stop(), and waitLoopQuit().

◆ mutex()

std::mutex& ds3d::gst::PipelineContext::mutex ( ) const
inlineprotected

◆ pipeline()

GstPipeline* ds3d::gst::PipelineContext::pipeline ( ) const
inline

Definition at line 303 of file nvds3d_pipeline_context.h.

References _pipeline, and ds3d::gst::GstPtr< GstObjT, ObjFunc >::get().

Referenced by add(), init(), isRunning(), and sendEOS().

◆ playPipeline()

ErrCode ds3d::gst::PipelineContext::playPipeline ( )
inline

Definition at line 191 of file nvds3d_pipeline_context.h.

References _eosReceived, _pipeline, DS_ASSERT, mutex(), and setPipelineState().

Referenced by start().

◆ quitMainLoop()

void ds3d::gst::PipelineContext::quitMainLoop ( )
inline

Definition at line 164 of file nvds3d_pipeline_context.h.

References _StatusCond, mainLoop(), and mutex().

Referenced by runMainLoop(), and stop().

◆ runMainLoop()

ErrCode ds3d::gst::PipelineContext::runMainLoop ( std::function< void()>  loopQuitCb)
inline

◆ sBusCall()

static gboolean ds3d::gst::PipelineContext::sBusCall ( GstBus *  bus,
GstMessage *  msg,
gpointer  data 
)
inlinestaticprotected

Definition at line 389 of file nvds3d_pipeline_context.h.

References bus(), and DS_ASSERT.

Referenced by init().

◆ sendEOS()

ErrCode ds3d::gst::PipelineContext::sendEOS ( )
inline

Definition at line 282 of file nvds3d_pipeline_context.h.

References ds3d::kGood, LOG_DEBUG, LOG_INFO, pipeline(), and ds3d::gst::SendEosOnSrc().

Referenced by stop().

◆ setEosAutoQuit()

void ds3d::gst::PipelineContext::setEosAutoQuit ( bool  enable)
inline

Definition at line 68 of file nvds3d_pipeline_context.h.

References _eosAutoQuit.

◆ setMainloop()

void ds3d::gst::PipelineContext::setMainloop ( GMainLoop *  loop)
inline

Definition at line 67 of file nvds3d_pipeline_context.h.

References _mainLoop.

◆ setPipelineState()

ErrCode ds3d::gst::PipelineContext::setPipelineState ( GstState  state)
inlineprotected

◆ setState()

ErrCode ds3d::gst::PipelineContext::setState ( GstElement *  ele,
GstState  state 
)
inlineprotected

Definition at line 360 of file nvds3d_pipeline_context.h.

References DS3D_FAILED_RETURN, DS_ASSERT, ds3d::kGood, and ds3d::kGst.

Referenced by setPipelineState(), and stopPipeline().

◆ start()

virtual ErrCode ds3d::gst::PipelineContext::start ( std::function< void()>  loopQuitCb)
inlinevirtual

◆ stop()

virtual ErrCode ds3d::gst::PipelineContext::stop ( )
inlinevirtual

◆ stopPipeline()

ErrCode ds3d::gst::PipelineContext::stopPipeline ( )
inline

◆ waitLoopQuit()

void ds3d::gst::PipelineContext::waitLoopQuit ( )
inline

Definition at line 173 of file nvds3d_pipeline_context.h.

References _mainLoopThread, _mainStopped, _StatusCond, LOG_DEBUG, mainLoop(), and mutex().

Referenced by stop().

Field Documentation

◆ _bus

gst::BusPtr ds3d::gst::PipelineContext::_bus
protected

Definition at line 400 of file nvds3d_pipeline_context.h.

Referenced by bus(), deinit(), and init().

◆ _busWatchId

uint32_t ds3d::gst::PipelineContext::_busWatchId = 0
protected

Definition at line 401 of file nvds3d_pipeline_context.h.

Referenced by init().

◆ _elementList

std::vector<gst::ElePtr> ds3d::gst::PipelineContext::_elementList
protected

Definition at line 402 of file nvds3d_pipeline_context.h.

Referenced by add(), deinit(), and stopPipeline().

◆ _eosAutoQuit

bool ds3d::gst::PipelineContext::_eosAutoQuit = false
protected

Definition at line 404 of file nvds3d_pipeline_context.h.

Referenced by isRunning(), and setEosAutoQuit().

◆ _eosReceived

std::atomic_bool ds3d::gst::PipelineContext::_eosReceived {false}
protected

Definition at line 407 of file nvds3d_pipeline_context.h.

Referenced by isRunning(), and playPipeline().

◆ _mainLoop

ds3d::UniqPtr<GMainLoop> ds3d::gst::PipelineContext::_mainLoop {nullptr, g_main_loop_unref}
protected

Definition at line 403 of file nvds3d_pipeline_context.h.

Referenced by deinit(), init(), mainLoop(), and setMainloop().

◆ _mainLoopThread

std::unique_ptr<std::thread> ds3d::gst::PipelineContext::_mainLoopThread
protected

Definition at line 405 of file nvds3d_pipeline_context.h.

Referenced by runMainLoop(), and waitLoopQuit().

◆ _mainStopped

std::atomic_bool ds3d::gst::PipelineContext::_mainStopped {false}
protected

Definition at line 406 of file nvds3d_pipeline_context.h.

Referenced by isRunning(), runMainLoop(), and waitLoopQuit().

◆ _pipeline

gst::ElePtr ds3d::gst::PipelineContext::_pipeline
protected

◆ _pipelineMutex

std::mutex ds3d::gst::PipelineContext::_pipelineMutex
mutableprotected

Definition at line 408 of file nvds3d_pipeline_context.h.

Referenced by mutex().

◆ _StatusCond

std::condition_variable ds3d::gst::PipelineContext::_StatusCond
protected

Definition at line 409 of file nvds3d_pipeline_context.h.

Referenced by quitMainLoop(), runMainLoop(), stop(), and waitLoopQuit().


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