OPAL
Version 3.18.8
|
#include <opalmixer.h>
Inherits PSafeObject.
Public Member Functions | |
Construction | |
OpalMixerNode (OpalMixerNodeManager &manager, OpalMixerNodeInfo *info) | |
~OpalMixerNode () | |
void | ShutDown () |
Overrides from PObject | |
void | PrintOn (ostream &strm) const |
Operations | |
virtual void | AttachConnection (OpalConnection *connection) |
virtual void | DetachConnection (OpalConnection *connection) |
virtual bool | AttachStream (OpalMixerMediaStream *stream) |
virtual void | DetachStream (OpalMixerMediaStream *stream) |
virtual void | UseMediaPassThrough (unsigned sessionID, OpalConnection *connection=NULL) |
bool | SetJitterBufferSize (const OpalBaseMixer::Key_T &key, const OpalJitterBuffer::Init &init) |
bool | WritePacket (const OpalMixerMediaStream &stream, const RTP_DataFrame &input) |
virtual void | BroadcastUserInput (const OpalConnection *connection, const PString &value) |
virtual void | GetConferenceState (OpalConferenceState &state) const |
Member variable access | |
const PGloballyUniqueID & | GetGUID () const |
const PStringSet & | GetNames () const |
bool | AddName (const PString &name) |
void | RemoveName (const PString &name) |
PINDEX | GetConnectionCount () const |
template<class Subclass > | |
PSafePtr< Subclass > | GetFirstConnectionAs (PSafetyMode mode=PSafeReference) const |
PSafePtr< OpalConnection > | GetFirstConnection (PSafetyMode mode=PSafeReference) const |
const OpalMixerNodeInfo & | GetNodeInfo () |
const PTime & | GetCreationTime () const |
void | SetOwnerConnection (const PString &connectionIdentifier) |
Protected Types | |
typedef std::map < OpalVideoFormat::ContentRole, OpalVideoStreamMixer * > | VideoMixerMap |
typedef std::map< PString, OpalBaseMixer * > | MixerByIdMap |
Protected Attributes | |
OpalMixerNodeManager & | m_manager |
PGloballyUniqueID | m_guid |
PStringSet | m_names |
OpalMixerNodeInfo * | m_info |
PTime | m_creationTime |
atomic< bool > | m_shuttingDown |
PSafeArray< OpalConnection > | m_connections |
PString | m_ownerConnection |
OpalAudioStreamMixer * | m_audioMixer |
VideoMixerMap | m_videoMixers |
MixerByIdMap | m_mixerById |
Mixer node. This class represents a group of connections that are being mixed.
|
protected |
|
protected |
OpalMixerNode::OpalMixerNode | ( | OpalMixerNodeManager & | manager, |
OpalMixerNodeInfo * | info | ||
) |
Create a new node.
manager | Manager for this node |
info | Configuration information |
OpalMixerNode::~OpalMixerNode | ( | ) |
Destroy node.
bool OpalMixerNode::AddName | ( | const PString & | name | ) |
Add a name for this node.
|
virtual |
Attach a connection.
connection | Connection to attach |
|
virtual |
Attach a stream for output.
stream | Stream to attach |
|
virtual |
Send a user input indication to all connections.
connection | Connection NOT to send to |
value | String value of indication |
|
virtual |
Detach a connection.
connection | Connection to detach |
|
virtual |
Detach a stream for output.
stream | Stream to detach |
|
virtual |
Get Conference state information. This obtains the state information about a conference this connection is directly a part of. If the connection type does not embody a conference then false is returned.
The state
parameter, if non-NULL, is illed with the state of the conference. When NULL, this just indicates that the connection is part of a conference with the return value.
Default behaviour is to return false which indicates this connection is not part of a conference.
state | Conference state information |
|
inline |
Get count of connections. Note that as this value can change ata any moent, it is really not that useful and should definitely not be used for enumeration of the connections.
References m_connections.
|
inline |
Get the creation time of the node.
References m_creationTime.
|
inline |
Get first connection in the connections list.
|
inline |
Get first connection in the connections list as type.
References m_connections.
|
inline |
Get globally unique identifier for node.
References m_guid.
|
inline |
Get list of names for this node.
References m_names.
|
inline |
Get the raw audio accumulation buffer.
References m_info.
void OpalMixerNode::PrintOn | ( | ostream & | strm | ) | const |
Standard stream print function. The PObject class has a << operator defined that invokes this function polymorphically.
strm | Stream to output text representation |
void OpalMixerNode::RemoveName | ( | const PString & | name | ) |
Remove a name for this node.
bool OpalMixerNode::SetJitterBufferSize | ( | const OpalBaseMixer::Key_T & | key, |
const OpalJitterBuffer::Init & | init | ||
) |
Sets the size of the jitter buffer to be used by the specified stream in this mixer. A mixer defaults to not having any jitter buffer enabled.
If either jitter delay parameter is zero, it destroys the jitter buffer attached to this mixer.
key | key for mixer stream |
init | Initialisation information |
|
inline |
Set the owner connection. If a connection with GetToken(), GetLocalPartyURL() or GetRemotePartyURL() equal to connectionIdentifier
disconnects from the node, then the node is shut down and all other participants disconnected.
References m_ownerConnection.
void OpalMixerNode::ShutDown | ( | ) |
Shut down node. This clears all attached connections, removes all names and generally shuts the node down.
|
virtual |
Use media bypass if applicable.
sessionID | Session ID to bypass, 0 indicates all |
connection | Just deleted connection |
bool OpalMixerNode::WritePacket | ( | const OpalMixerMediaStream & | stream, |
const RTP_DataFrame & | input | ||
) |
Write data to mixer.
stream | key for mixer stream |
input | Input RTP data for media |
|
protected |
|
protected |
Referenced by GetConnectionCount(), and GetFirstConnectionAs().
|
protected |
Referenced by GetCreationTime().
|
protected |
Referenced by GetGUID().
|
protected |
Referenced by GetNodeInfo().
|
protected |
|
protected |
|
protected |
Referenced by GetNames().
|
protected |
Referenced by SetOwnerConnection().
|
protected |
|
protected |