OPAL  Version 3.18.8
OpalVideoStreamMixer Class Reference

#include <opalmixer.h>

Inheritance diagram for OpalVideoStreamMixer:
Collaboration diagram for OpalVideoStreamMixer:

Public Member Functions

 OpalVideoStreamMixer (const OpalMixerNodeInfo &info)
 
 ~OpalVideoStreamMixer ()
 
virtual bool SetFrameRate (unsigned rate)
 
virtual bool OnMixed (RTP_DataFrame *&output)
 
- Public Member Functions inherited from OpalVideoMixer
 OpalVideoMixer (Styles style, unsigned width, unsigned height, unsigned rate=15, bool pushThread=true)
 
 ~OpalVideoMixer ()
 
unsigned GetFrameWidth () const
 
unsigned GetFrameHeight () const
 
unsigned GetFrameRate () const
 
bool SetFrameSize (unsigned width, unsigned height)
 
- Public Member Functions inherited from OpalBaseMixer
 OpalBaseMixer (bool pushThread, unsigned periodMS, unsigned periodTS)
 
virtual ~OpalBaseMixer ()
 
virtual bool AddStream (const Key_T &key)
 
virtual void RemoveStream (const Key_T &key)
 
virtual void RemoveAllStreams ()
 
virtual bool WriteStream (const Key_T &key, const RTP_DataFrame &input)
 
virtual RTP_DataFrameReadMixed ()
 
virtual bool ReadMixed (RTP_DataFrame &mixed)
 
virtual void StartPushThread ()
 
virtual bool OnPush ()
 
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 Types

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

Protected Attributes

TranscoderMap m_transcoders
 
- Protected Attributes inherited from OpalVideoMixer
Styles m_style
 
unsigned m_width
 
unsigned m_height
 
BYTE m_bgFillRed
 
BYTE m_bgFillGreen
 
BYTE m_bgFillBlue
 
PBYTEArray m_frameStore
 
size_t m_lastStreamCount
 
- 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 OpalVideoMixer
enum  Styles {
  eSideBySideLetterbox, eSideBySideScaled, eStackedPillarbox, eStackedScaled,
  eGrid, eUser
}
 
- Public Types inherited from OpalBaseMixer
typedef PString Key_T
 
- Protected Member Functions inherited from OpalVideoMixer
virtual StreamCreateStream ()
 
virtual bool MixStreams (RTP_DataFrame &frame)
 
virtual size_t GetOutputSize () const
 
virtual bool MixVideo ()
 
virtual bool StartMix (unsigned &x, unsigned &y, unsigned &w, unsigned &h, unsigned &left)
 
virtual bool NextMix (unsigned &x, unsigned &y, unsigned &w, unsigned &h, unsigned &left)
 
void InsertVideoFrame (const StreamMap_T::iterator &it, unsigned x, unsigned y, unsigned w, unsigned h)
 
- Protected Member Functions inherited from OpalBaseMixer
void PushThreadMain ()
 
 PDECLARE_MUTEX (m_mutex)
 

Detailed Description

Video mixer. This class represents the frame store for the mixed video.

A user would typically create a derived class to override the MixVideo() or the StartMix()/NextMix() virtual functions for new screen patterns/algorithms.

Member Typedef Documentation

typedef PDictionary<PString, OpalTranscoder> OpalVideoStreamMixer::TranscoderMap
protected

Constructor & Destructor Documentation

OpalVideoStreamMixer::OpalVideoStreamMixer ( const OpalMixerNodeInfo info)
OpalVideoStreamMixer::~OpalVideoStreamMixer ( )

Member Function Documentation

virtual bool OpalVideoStreamMixer::OnMixed ( RTP_DataFrame *&  mixed)
virtual

Mixed data is now available. For a push model system, this is called with mixed data as returned by ReadMixed().

The "mixed" parameter is a reference to a pointer, so if the consumer wishes to take responsibility for deleting the pointer to an RTP data frame, then they can set it to NULL.

If false is returned then the push thread is exited.

Reimplemented from OpalBaseMixer.

virtual bool OpalVideoStreamMixer::SetFrameRate ( unsigned  rate)
virtual

Set output video frame rate. May be dynamically changed at any time.

Reimplemented from OpalVideoMixer.

Field Documentation

TranscoderMap OpalVideoStreamMixer::m_transcoders
protected

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