#include <SH.h>
Inheritance diagram for SH::Base:
Public Types | |
enum | Direction { ReportUpstream, ReportDownstream } |
Public Member Functions | |
Base (SHGraphManager *mgr, u_int32_t runtimeId, MNSelector &sel) | |
virtual | ~Base () |
SHGraphManager * | mgr () |
MNSelector & | mainSelector () |
virtual SH_RC | initSH () |
virtual SH_RC | uninitSH () |
virtual SH_RC | startStreaming () |
virtual SH_RC | stopStreaming () |
virtual u_int16 | get_rtp_seq () |
virtual u_int32 | get_rtp_time () |
virtual SH_RC | changePos (u_int64 bytepos) |
bool | match (Base *downstream) |
bool | match (SourceEndpoint *ep, Base *otherSH, SinkEndpoint *otherEP) |
SH_RC | connectSourceEndpoint (Endpoint *ep, Base *otherSH, Endpoint *otherEP) |
SH_RC | connectSinkEndpoint (Endpoint *ep, Base *otherSH, Endpoint *otherEP) |
SH_RC | releaseSourceEndpoint (Endpoint *ep) |
SH_RC | releaseSinkEndpoint (Endpoint *ep) |
Protected Member Functions | |
virtual void | pushReport (ReportPtr report, Direction d) |
u_int32_t | runtimeId () const |
|
|
|
Constructor.
|
|
Destructor.
|
|
Reimplemented in SH::FileSourceSH.
|
|
|
|
Connect the endpoints of a sink and a source stream handler. The graph manager will call connectSourceEndpoint(), the source stream handler will then in turn call connectSinkEndpoint() on the other SH. |
|
Reimplemented in SH::RTPSinkSH.
|
|
Reimplemented in SH::RTPSinkSH.
|
|
initSH() initializes the stream handler, initializes the EndpointSpecs if necessary etc. Child classes should overload this function instead of using the constructor for initialization tasks, since virtual functions used in the process do not exist during the constructor call (unavailability of virtual functions is a restriction of the C++ standard). initSH() : Uninitialized -> Initialized * -> ( error, - ) Reimplemented in SH::DummyLayerSinkSH, SH::DummyLayerSourceSH, SH::GstMpegDemuxSinkSH, SH::ConcatinizerSH, SH::FileSinkSH, SH::FileSourceSH, SH::RTPDecoderSH, SH::RTPEncoderSH, SH::RTPSinkSH, SH::RTPSourceSH, SH::NopIntegratedSH, SH::SendBlockSH, SH::ActiveSH, SH::PushPullSH, SH::NopSubGraphSH, SH::PullResizeSH, and SH::SubGraphSH.
|
|
|
|
|
|
|
|
Retrieve a pointer to the controlling graph manager. |
|
pushReport(r) can be called on source and sink endpoints, which will in turn call their owning stream handler for forwarding the report into the same general direction. The specific stream handler must overload this call if it wants to evaluate the reports, or if it has downstream or well as upstream endpoints. If the SH does not care about reports and has endpoints on only one side, it needs not overload this function. The reports are ignored and deleted in that case. Reimplemented in SH::DevNullSH, SH::DummyLayerSinkSH, SH::DynMultiplierSH, SH::ConcatinizerSH, SH::PacketMultiplierSH, SH::RTPSinkSH, SH::RTPSourceSH, SH::NopSinkSH, SH::ActiveSH, and SH::PushPullSH.
|
|
|
|
Disconnect endpoints. |
|
Retrieve the runtime id for internal use in the child classes. |
|
Activate the stream handler. Threads may start at this time. The data starts to flow through this stream handler. Initialized -> Running Running -> - * -> ( error, - ) Reimplemented in SH::DummyLayerSourceSH, SH::ConcatinizerSH, SH::FileSourceSH, SH::RTPDecoderSH, SH::RTPEncoderSH, SH::RTPSinkSH, SH::RTPSourceSH, SH::NopIntegratedSH, SH::SendBlockSH, SH::ActiveSH, SH::PushPullSH, SH::NopSubGraphSH, SH::PullResizeSH, and SH::SubGraphSH.
|
|
Deactivate the stream handler. The data stops flowing through this stream handler. When this function returns, this stream handler's endpoints will not call pull() or push() on their peers any more. Running -> Initialized Reimplemented in SH::GstMpegDemuxSinkSH, SH::ConcatinizerSH, SH::RTPDecoderSH, SH::RTPEncoderSH, SH::RTPSinkSH, SH::RTPSourceSH, SH::NopIntegratedSH, SH::SendBlockSH, SH::ActiveSH, SH::PushPullSH, SH::NopSubGraphSH, SH::PullResizeSH, and SH::SubGraphSH.
|
|
For symmetry only. Could be performed by the destructor as well. uninitSH() : Initialized -> Uninitialized Reimplemented in SH::DummyLayerSinkSH, SH::DummyLayerSourceSH, SH::GstMpegDemuxSinkSH, SH::ConcatinizerSH, SH::FileSinkSH, SH::FileSourceSH, SH::RTPDecoderSH, SH::RTPEncoderSH, SH::RTPSinkSH, SH::RTPSourceSH, SH::NopIntegratedSH, SH::SendBlockSH, SH::ActiveSH, SH::PushPullSH, SH::NopSubGraphSH, SH::PullResizeSH, and SH::SubGraphSH.
|