OPAL  Version 3.10.10
OpalMixerNode Class Reference

#include <opalmixer.h>

Inheritance diagram for OpalMixerNode:

Data Structures

struct  AudioMixer
 
struct  MediaMixer
 
struct  VideoMixer
 

Public Member Functions

Construction
 OpalMixerNode (OpalMixerNodeManager &manager, OpalMixerNodeInfo *info)
 
 OpalMixerNode (OpalMixerEndPoint &endpoint, OpalMixerNodeInfo *info)
 
 ~OpalMixerNode ()
 
void ShutDown ()
 
Overrides from PObject
void PrintOn (ostream &strm) const
 
Operations
void AttachConnection (OpalConnection *connection)
 
void DetachConnection (OpalConnection *connection)
 
bool AttachStream (OpalMixerMediaStream *stream)
 
void DetachStream (OpalMixerMediaStream *stream)
 
void UseMediaPassThrough (unsigned sessionID, OpalConnection *connection=NULL)
 
bool SetJitterBufferSize (const OpalBaseMixer::Key_T &key, unsigned minJitterDelay, unsigned maxJitterDelay)
 
bool WriteAudio (const OpalBaseMixer::Key_T &key, const RTP_DataFrame &input)
 
bool WriteVideo (const OpalBaseMixer::Key_T &key, const RTP_DataFrame &input)
 
virtual void BroadcastUserInput (const OpalConnection *connection, const PString &value)
 
Member variable access
const PGloballyUniqueID & GetGUID () const
 
const PStringList & GetNames () const
 
void AddName (const PString &name)
 
void RemoveName (const PString &name)
 
PINDEX GetConnectionCount () const
 
template<class Subclass >
PSafePtr< Subclass > GetFirstConnectionAs (PSafetyMode mode=PSafeReference) const
 
PSafePtr< OpalConnectionGetFirstConnection (PSafetyMode mode=PSafeReference) const
 
const OpalMixerNodeInfoGetNodeInfo ()
 
const PTime & GetCreationTime () const
 

Protected Member Functions

void Construct ()
 

Protected Attributes

OpalMixerNodeManagerm_manager
 
PGloballyUniqueID m_guid
 
PStringList m_names
 
OpalMixerNodeInfom_info
 
PTime m_creationTime
 
PSafeList< OpalConnectionm_connections
 
AudioMixer m_audioMixer
 
VideoMixer m_videoMixer
 

Detailed Description

Mixer node. This class represents a group of connections that are being mixed.

Constructor & Destructor Documentation

◆ OpalMixerNode() [1/2]

OpalMixerNode::OpalMixerNode ( OpalMixerNodeManager manager,
OpalMixerNodeInfo info 
)

Create a new node.

Parameters
managerManager for this node
infoConfiguration information

◆ OpalMixerNode() [2/2]

OpalMixerNode::OpalMixerNode ( OpalMixerEndPoint endpoint,
OpalMixerNodeInfo info 
)
Parameters
endpointEndpoint for this node
infoConfiguration information

◆ ~OpalMixerNode()

OpalMixerNode::~OpalMixerNode ( )

Destroy node.

Member Function Documentation

◆ AddName()

void OpalMixerNode::AddName ( const PString &  name)

Add a name for this node.

◆ AttachConnection()

void OpalMixerNode::AttachConnection ( OpalConnection connection)

Attach a connection.

Parameters
connectionConnection to attach

◆ AttachStream()

bool OpalMixerNode::AttachStream ( OpalMixerMediaStream stream)

Attach a stream for output.

Parameters
streamStream to attach

◆ BroadcastUserInput()

virtual void OpalMixerNode::BroadcastUserInput ( const OpalConnection connection,
const PString &  value 
)
virtual

Send a user input indication to all connections.

Parameters
connectionConnection NOT to send to
valueString value of indication

◆ Construct()

void OpalMixerNode::Construct ( )
protected

◆ DetachConnection()

void OpalMixerNode::DetachConnection ( OpalConnection connection)

Detach a connection.

Parameters
connectionConnection to detach

◆ DetachStream()

void OpalMixerNode::DetachStream ( OpalMixerMediaStream stream)

Detach a stream for output.

Parameters
streamStream to detach

◆ GetConnectionCount()

PINDEX OpalMixerNode::GetConnectionCount ( ) const
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.

◆ GetCreationTime()

const PTime& OpalMixerNode::GetCreationTime ( ) const
inline

Get the creation time of the node.

◆ GetFirstConnection()

PSafePtr<OpalConnection> OpalMixerNode::GetFirstConnection ( PSafetyMode  mode = PSafeReference) const
inline

Get first connection in the connections list.

◆ GetFirstConnectionAs()

template<class Subclass >
PSafePtr<Subclass> OpalMixerNode::GetFirstConnectionAs ( PSafetyMode  mode = PSafeReference) const
inline

Get first connection in the connections list as type.

◆ GetGUID()

const PGloballyUniqueID& OpalMixerNode::GetGUID ( ) const
inline

Get globally unique identifier for node.

◆ GetNames()

const PStringList& OpalMixerNode::GetNames ( ) const
inline

Get list of names for this node.

◆ GetNodeInfo()

const OpalMixerNodeInfo& OpalMixerNode::GetNodeInfo ( )
inline

Get the raw audio accumulation buffer.

◆ PrintOn()

void OpalMixerNode::PrintOn ( ostream &  strm) const

Standard stream print function. The PObject class has a << operator defined that invokes this function polymorphically.

Parameters
strmStream to output text representation

◆ RemoveName()

void OpalMixerNode::RemoveName ( const PString &  name)

Remove a name for this node.

◆ SetJitterBufferSize()

bool OpalMixerNode::SetJitterBufferSize ( const OpalBaseMixer::Key_T key,
unsigned  minJitterDelay,
unsigned  maxJitterDelay 
)
inline

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.

Parameters
keykey for mixer stream
minJitterDelayMinimum jitter buffer delay in RTP timestamp units
maxJitterDelayMaximum jitter buffer delay in RTP timestamp units

◆ ShutDown()

void OpalMixerNode::ShutDown ( )

Shut down node. This clears all attached connections, removes all names and generally shuts the node down.

◆ UseMediaPassThrough()

void OpalMixerNode::UseMediaPassThrough ( unsigned  sessionID,
OpalConnection connection = NULL 
)

Use media bypass if applicable.

Parameters
sessionIDSession ID to bypass, 0 indicates all
connectionJust deleted connection

◆ WriteAudio()

bool OpalMixerNode::WriteAudio ( const OpalBaseMixer::Key_T key,
const RTP_DataFrame input 
)
inline

Write data to mixer.

Parameters
keykey for mixer stream
inputInput RTP data for media

◆ WriteVideo()

bool OpalMixerNode::WriteVideo ( const OpalBaseMixer::Key_T key,
const RTP_DataFrame input 
)
inline

Write data to mixer.

Parameters
keykey for mixer stream
inputInput RTP data for media

Field Documentation

◆ m_audioMixer

AudioMixer OpalMixerNode::m_audioMixer
protected

◆ m_connections

PSafeList<OpalConnection> OpalMixerNode::m_connections
protected

◆ m_creationTime

PTime OpalMixerNode::m_creationTime
protected

◆ m_guid

PGloballyUniqueID OpalMixerNode::m_guid
protected

◆ m_info

OpalMixerNodeInfo* OpalMixerNode::m_info
protected

◆ m_manager

OpalMixerNodeManager& OpalMixerNode::m_manager
protected

◆ m_names

PStringList OpalMixerNode::m_names
protected

◆ m_videoMixer

VideoMixer OpalMixerNode::m_videoMixer
protected

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