OPAL  Version 3.18.8
OpalAudioStreamMixer Class Reference

#include <opalmixer.h>

Inheritance diagram for OpalAudioStreamMixer:
Collaboration diagram for OpalAudioStreamMixer:

Data Structures

struct  CachedAudio
 

Public Member Functions

 OpalAudioStreamMixer (const OpalMixerNodeInfo &info)
 
 ~OpalAudioStreamMixer ()
 
virtual bool OnPush ()
 
- Public Member Functions inherited from OpalAudioMixer
 OpalAudioMixer (bool stereo=false, unsigned sampleRate=OpalMediaFormat::AudioClockRate, bool pushThread=true, unsigned period=10)
 
 ~OpalAudioMixer ()
 
virtual void RemoveStream (const Key_T &key)
 
virtual void RemoveAllStreams ()
 
bool IsStereo () const
 
unsigned GetSampleRate () const
 
bool SetSampleRate (unsigned rate)
 
bool SetJitterBufferSize (const Key_T &key, const OpalJitterBuffer::Init &init)
 
- Public Member Functions inherited from OpalBaseMixer
 OpalBaseMixer (bool pushThread, unsigned periodMS, unsigned periodTS)
 
virtual ~OpalBaseMixer ()
 
virtual bool AddStream (const Key_T &key)
 
virtual bool WriteStream (const Key_T &key, const RTP_DataFrame &input)
 
virtual RTP_DataFrameReadMixed ()
 
virtual bool ReadMixed (RTP_DataFrame &mixed)
 
virtual bool OnMixed (RTP_DataFrame *&mixed)
 
virtual void StartPushThread ()
 
void StopPushThread (bool lock=true)
 
unsigned GetPeriodMS () const
 
unsigned GetPeriodTS () const
 
- Public Member Functions inherited from OpalMediaStreamMixer
 OpalMediaStreamMixer ()
 
void Append (const PSafePtr< OpalMixerMediaStream > &stream)
 
void Remove (const PSafePtr< OpalMixerMediaStream > &stream)
 
void CloseOne (const PSafePtr< OpalMixerMediaStream > &stream)
 

Protected Member Functions

void PushOne (PSafePtr< OpalMixerMediaStream > &stream, CachedAudio &cache, const short *audioToSubtract)
 
- Protected Member Functions inherited from OpalAudioMixer
virtual StreamCreateStream ()
 
virtual bool MixStreams (RTP_DataFrame &frame)
 
virtual size_t GetOutputSize () const
 
void PreMixStreams ()
 
void MixStereo (RTP_DataFrame &frame)
 
void MixAdditive (RTP_DataFrame &frame, const short *audioToSubtract)
 
- Protected Member Functions inherited from OpalBaseMixer
void PushThreadMain ()
 
 PDECLARE_MUTEX (m_mutex)
 

Protected Attributes

std::map< PString, CachedAudiom_cache
 
- Protected Attributes inherited from OpalAudioMixer
bool m_stereo
 
unsigned m_sampleRate
 
AudioStreamm_left
 
AudioStreamm_right
 
std::vector< int > m_mixedAudio
 
- Protected Attributes inherited from OpalBaseMixer
bool m_pushThread
 
unsigned m_periodMS
 
unsigned m_periodTS
 
StreamMap_T m_inputStreams
 
unsigned m_outputTimestamp
 
RTP_DataFramem_pushFrame
 
PThread * m_workerThread
 
bool m_threadRunning
 
- Protected Attributes inherited from OpalMediaStreamMixer
StreamDict m_outputStreams
 

Additional Inherited Members

- Public Types inherited from OpalBaseMixer
typedef PString Key_T
 
- Protected Types inherited from OpalBaseMixer
typedef std::map< Key_T, Stream * > StreamMap_T
 
- Protected Types inherited from OpalMediaStreamMixer
typedef PSafeDictionary
< PString,
OpalMixerMediaStream
StreamDict
 

Detailed Description

Audio mixer. This class represents the store for the mixed audio.

Constructor & Destructor Documentation

OpalAudioStreamMixer::OpalAudioStreamMixer ( const OpalMixerNodeInfo info)
OpalAudioStreamMixer::~OpalAudioStreamMixer ( )

Member Function Documentation

virtual bool OpalAudioStreamMixer::OnPush ( )
virtual

Push collected input through the mixer to output. This would normally be called from a thread, on a metronomic basis, from a thread started via StartPushThread(), however if m_pushThread is false, that thread is suppressed and it is expected the application would call this function as required.

Reimplemented from OpalBaseMixer.

void OpalAudioStreamMixer::PushOne ( PSafePtr< OpalMixerMediaStream > &  stream,
CachedAudio cache,
const short *  audioToSubtract 
)
protected

Field Documentation

std::map<PString, CachedAudio> OpalAudioStreamMixer::m_cache
protected

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