OPAL  Version 3.10.4
OpalMixerNode Class Reference

#include <opalmixer.h>

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

Create a new node.

Parameters:
managerManager for this node
infoConfiguration information
Parameters:
endpointEndpoint for this node
infoConfiguration information

Destroy node.


Member Function Documentation

void OpalMixerNode::AddName ( const PString &  name)

Add a name for this node.

Attach a connection.

Parameters:
connectionConnection to attach

Attach a stream for output.

Parameters:
streamStream to attach
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
void OpalMixerNode::Construct ( ) [protected]

Detach a connection.

Parameters:
connectionConnection to detach

Detach a stream for output.

Parameters:
streamStream to detach
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.

References m_connections.

const PTime& OpalMixerNode::GetCreationTime ( ) const [inline]

Get the creation time of the node.

References m_creationTime.

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

Get first connection in the connections list.

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

Get first connection in the connections list as type.

References m_connections.

const PGloballyUniqueID& OpalMixerNode::GetGUID ( ) const [inline]

Get globally unique identifier for node.

References m_guid.

const PStringList& OpalMixerNode::GetNames ( ) const [inline]

Get list of names for this node.

References m_names.

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.

Parameters:
strmStream to output text representation
void OpalMixerNode::RemoveName ( const PString &  name)

Remove a name for this node.

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

References m_audioMixer, and OpalAudioMixer::SetJitterBufferSize().

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

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

Use media bypass if applicable.

Parameters:
sessionIDSession ID to bypass, 0 indicates all
connectionJust deleted connection
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

References m_audioMixer, and OpalBaseMixer::WriteStream().

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

References m_videoMixer, and OpalBaseMixer::WriteStream().


Field Documentation

PTime OpalMixerNode::m_creationTime [protected]

Referenced by GetCreationTime().

PGloballyUniqueID OpalMixerNode::m_guid [protected]

Referenced by GetGUID().

PStringList OpalMixerNode::m_names [protected]

Referenced by GetNames().


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