OPAL
Version 3.18.8
|
#include <opalmixer.h>
Data Structures | |
struct | CachedAudio |
Public Member Functions | |
OpalAudioStreamMixer (const OpalMixerNodeInfo &info) | |
~OpalAudioStreamMixer () | |
virtual bool | OnPush () |
![]() | |
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) |
![]() | |
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_DataFrame * | ReadMixed () |
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 |
![]() | |
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) |
![]() | |
virtual Stream * | CreateStream () |
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) |
![]() | |
void | PushThreadMain () |
PDECLARE_MUTEX (m_mutex) | |
Protected Attributes | |
std::map< PString, CachedAudio > | m_cache |
![]() | |
bool | m_stereo |
unsigned | m_sampleRate |
AudioStream * | m_left |
AudioStream * | m_right |
std::vector< int > | m_mixedAudio |
![]() | |
bool | m_pushThread |
unsigned | m_periodMS |
unsigned | m_periodTS |
StreamMap_T | m_inputStreams |
unsigned | m_outputTimestamp |
RTP_DataFrame * | m_pushFrame |
PThread * | m_workerThread |
bool | m_threadRunning |
![]() | |
StreamDict | m_outputStreams |
Additional Inherited Members | |
![]() | |
typedef PString | Key_T |
![]() | |
typedef std::map< Key_T, Stream * > | StreamMap_T |
![]() | |
typedef PSafeDictionary < PString, OpalMixerMediaStream > | StreamDict |
Audio mixer. This class represents the store for the mixed audio.
OpalAudioStreamMixer::OpalAudioStreamMixer | ( | const OpalMixerNodeInfo & | info | ) |
OpalAudioStreamMixer::~OpalAudioStreamMixer | ( | ) |
|
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.
|
protected |
|
protected |