#include <mediastrm.h>
Inheritance diagram for OpalRTPMediaStream:
Public Member Functions | |
Construction | |
OpalRTPMediaStream (OpalRTPConnection &conn, const OpalMediaFormat &mediaFormat, bool isSource, RTP_Session &rtpSession, unsigned minAudioJitterDelay, unsigned maxAudioJitterDelay) | |
~OpalRTPMediaStream () | |
Overrides of OpalMediaStream class | |
virtual PBoolean | Open () |
virtual bool | SetPaused (bool pause, bool fromPatch=false) |
virtual PBoolean | ReadPacket (RTP_DataFrame &packet) |
virtual PBoolean | WritePacket (RTP_DataFrame &packet) |
virtual PBoolean | SetDataSize (PINDEX dataSize, PINDEX frameTime) |
virtual PBoolean | IsSynchronous () const |
virtual PBoolean | RequiresPatchThread () const |
virtual bool | EnableJitterBuffer (bool enab=true) const |
virtual PBoolean | SetPatch (OpalMediaPatch *patch) |
virtual RTP_Session & | GetRtpSession () const |
virtual void | GetStatistics (OpalMediaStatistics &statistics, bool fromPatch=false) const |
Protected Member Functions | |
virtual void | InternalClose () |
Protected Attributes | |
RTP_Session & | rtpSession |
unsigned | minAudioJitterDelay |
unsigned | maxAudioJitterDelay |
OpalRTPMediaStream::OpalRTPMediaStream | ( | OpalRTPConnection & | conn, | |
const OpalMediaFormat & | mediaFormat, | |||
bool | isSource, | |||
RTP_Session & | rtpSession, | |||
unsigned | minAudioJitterDelay, | |||
unsigned | maxAudioJitterDelay | |||
) |
Construct a new media stream for RTP sessions. This will add a reference to the rtpSession passed in.
conn | Connection that owns the stream |
mediaFormat | Media format for stream |
isSource | Is a source stream |
rtpSession | RTP session to stream to/from |
minAudioJitterDelay | Minimum jitter buffer size (if applicable) |
maxAudioJitterDelay | Maximum jitter buffer size (if applicable) |
OpalRTPMediaStream::~OpalRTPMediaStream | ( | ) |
Destroy the media stream for RTP sessions. This will release the reference to the rtpSession passed into the constructor.
virtual bool OpalRTPMediaStream::EnableJitterBuffer | ( | bool | enab = true |
) | const [virtual] |
Enable jitter buffer for the media stream. Returns true if a jitter buffer is enabled/disabled. Returns false if no jitter buffer exists for the media stream.
The default behaviour sets the RTP_Session jitter buffer size according to the connection parameters, then returns true.
Reimplemented from OpalMediaStream.
virtual RTP_Session& OpalRTPMediaStream::GetRtpSession | ( | ) | const [inline, virtual] |
Return current RTP session
virtual void OpalRTPMediaStream::GetStatistics | ( | OpalMediaStatistics & | statistics, | |
bool | fromPatch = false | |||
) | const [virtual] |
Reimplemented from OpalMediaStream.
virtual void OpalRTPMediaStream::InternalClose | ( | ) | [protected, virtual] |
Close any internal components of the stream. This should be used in preference to overriding the Close() function as it is guaranteed to be called exactly once and avoids race conditions in the shut down sequence of a media stream.
Implements OpalMediaStream.
virtual PBoolean OpalRTPMediaStream::IsSynchronous | ( | ) | const [virtual] |
Indicate if the media stream is synchronous. Returns false for RTP streams.
Implements OpalMediaStream.
virtual PBoolean OpalRTPMediaStream::Open | ( | ) | [virtual] |
Open the media stream using the media format.
The default behaviour simply sets the isOpen variable to true.
Reimplemented from OpalMediaStream.
virtual PBoolean OpalRTPMediaStream::ReadPacket | ( | RTP_DataFrame & | packet | ) | [virtual] |
Read an RTP frame of data from the source media stream. The new behaviour simply calls RTP_Session::ReadData().
Reimplemented from OpalMediaStream.
virtual PBoolean OpalRTPMediaStream::RequiresPatchThread | ( | ) | const [virtual] |
Indicate if the media stream requires a OpalMediaPatch thread (active patch). The default behaviour dermines if the media will be flowing between two RTP sessions within the same process. If so the OpalRTPConnection::OnLocalRTP() is called, and if it returns true indicating local handling then this function returns faklse to disable the patch thread.
Reimplemented from OpalMediaStream.
virtual PBoolean OpalRTPMediaStream::SetDataSize | ( | PINDEX | dataSize, | |
PINDEX | frameTime | |||
) | [virtual] |
Set the data size in bytes that is expected to be used.
dataSize | New data size (in total) |
frameTime | Individual frame time (if applicable) |
Reimplemented from OpalMediaStream.
virtual PBoolean OpalRTPMediaStream::SetPatch | ( | OpalMediaPatch * | patch | ) | [virtual] |
Set the patch thread that is using this stream.
patch | Media patch thread |
Reimplemented from OpalMediaStream.
virtual bool OpalRTPMediaStream::SetPaused | ( | bool | pause, | |
bool | fromPatch = false | |||
) | [virtual] |
Set the paused state for stream. This will stop reading/writing data from the stream.
pause | Indicate that the stream should be paused |
fromPatch | Is being called from OpalMediaPatch |
Reimplemented from OpalMediaStream.
virtual PBoolean OpalRTPMediaStream::WritePacket | ( | RTP_DataFrame & | packet | ) | [virtual] |
Write an RTP frame of data to the sink media stream. The new behaviour simply calls RTP_Session::WriteData().
Reimplemented from OpalMediaStream.
unsigned OpalRTPMediaStream::maxAudioJitterDelay [protected] |
unsigned OpalRTPMediaStream::minAudioJitterDelay [protected] |
RTP_Session& OpalRTPMediaStream::rtpSession [protected] |