OPAL Version 3.10.4

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

Data Structures | Protected Member Functions | Protected Attributes
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< OpalConnection > | GetFirstConnection (PSafetyMode mode=PSafeReference) const
const OpalMixerNodeInfo & | GetNodeInfo ()
const PTime & | GetCreationTime () const

## Protected Member Functions

void | Construct ()

## Protected Attributes

OpalMixerNodeManager & | m_manager
PGloballyUniqueID | m_guid
PStringList | m_names
OpalMixerNodeInfo * | m_info
PTime | m_creationTime
PSafeList< OpalConnection > | m_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::OpalMixerNode | ( | OpalMixerNodeManager & | manager,
|  | OpalMixerNodeInfo * | info
| ) |  |

Create a new node.

Parameters:

  manager | Manager for this node
  info | Configuration information

OpalMixerNode::OpalMixerNode | ( | OpalMixerEndPoint & | endpoint,
|  | OpalMixerNodeInfo * | info
| ) |  |

Parameters:

  endpoint | Endpoint for this node
  info | Configuration information

OpalMixerNode::~OpalMixerNode | ( |  | ) |

Destroy node.

## Member Function Documentation

void OpalMixerNode::AddName | ( | const PString & | name | ) |

Add a name for this node.

void OpalMixerNode::AttachConnection | ( | OpalConnection * | connection | ) |

Attach a connection.

Parameters:

  connection | Connection to attach

bool OpalMixerNode::AttachStream | ( | OpalMixerMediaStream * | stream | ) |

Attach a stream for output.

Parameters:

  stream | Stream to attach

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

virtual

Send a user input indication to all connections.

Parameters:

  connection | Connection NOT to send to
  value | String value of indication

void OpalMixerNode::Construct | ( |  | ) |

protected

void OpalMixerNode::DetachConnection | ( | OpalConnection * | connection | ) |

Detach a connection.

Parameters:

  connection | Connection to detach

void OpalMixerNode::DetachStream | ( | OpalMixerMediaStream * | stream | ) |

Detach a stream for output.

Parameters:

  stream | Stream 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.

const OpalMixerNodeInfo& OpalMixerNode::GetNodeInfo | ( |  | ) |

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.

Parameters:

  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,
|  | 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:

  key | key for mixer stream
  minJitterDelay | Minimum jitter buffer delay in RTP timestamp units
  maxJitterDelay | Maximum jitter buffer delay in RTP timestamp units

References m_audioMixer, and OpalAudioMixer::SetJitterBufferSize().

void OpalMixerNode::ShutDown | ( |  | ) |

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:

  sessionID | Session ID to bypass, 0 indicates all
  connection | Just deleted connection

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

inline

Write data to mixer.

Parameters:

  key | key for mixer stream
  input | Input 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:

  key | key for mixer stream
  input | Input RTP data for media

References m_videoMixer, and OpalBaseMixer::WriteStream().

## Field Documentation

AudioMixer OpalMixerNode::m_audioMixer

protected

Referenced by SetJitterBufferSize(), and WriteAudio().

PSafeList<OpalConnection> OpalMixerNode::m_connections

protected

Referenced by GetConnectionCount(), and GetFirstConnectionAs().

PTime OpalMixerNode::m_creationTime

protected

Referenced by GetCreationTime().

PGloballyUniqueID OpalMixerNode::m_guid

protected

Referenced by GetGUID().

OpalMixerNodeInfo* OpalMixerNode::m_info

protected

Referenced by GetNodeInfo().

OpalMixerNodeManager& OpalMixerNode::m_manager

protected

PStringList OpalMixerNode::m_names

protected

Referenced by GetNames().

VideoMixer OpalMixerNode::m_videoMixer

protected

Referenced by WriteVideo().

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

- opalmixer.h