OPAL  Version 3.14.3
OpalPluginVideoTranscoder Class Reference

#include <opalpluginmgr.h>

Inheritance diagram for OpalPluginVideoTranscoder:
Collaboration diagram for OpalPluginVideoTranscoder:

Public Member Functions

 OpalPluginVideoTranscoder (const OpalTranscoderKey &key, const PluginCodec_Definition *codec, bool isEncoder)
 
 ~OpalPluginVideoTranscoder ()
 
virtual void GetStatistics (OpalMediaStatistics &statistics) const
 
PBoolean ConvertFrames (const RTP_DataFrame &src, RTP_DataFrameList &dstList)
 
bool UpdateMediaFormats (const OpalMediaFormat &input, const OpalMediaFormat &output)
 
PBoolean ExecuteCommand (const OpalMediaCommand &command)
 
- Public Member Functions inherited from OpalVideoTranscoder
 OpalVideoTranscoder (const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
 
virtual PINDEX GetOptimalDataFrameSize (PBoolean input) const
 
virtual PBoolean Convert (const RTP_DataFrame &input, RTP_DataFrame &output)
 
virtual bool HasErrorConcealment () const
 
bool WasLastFrameIFrame () const
 
void ForceIFrame ()
 
virtual void SendIFrameRequest (unsigned sequenceNumber, unsigned timestamp)
 
virtual bool HandleIFrameRequest ()
 
- Public Member Functions inherited from OpalTranscoder
 OpalTranscoder (const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
 
PINDEX GetMaxOutputSize () const
 
void SetMaxOutputSize (PINDEX size)
 
void SetCommandNotifier (const PNotifier &notifier)
 
const PNotifier & GetCommandNotifier () const
 
void NotifyCommand (const OpalMediaCommand &command) const
 Notify command notifier of command. More...
 
unsigned GetSessionID () const
 Get session ID for the transcoder (from OpalMediaStream) More...
 
void SetSessionID (unsigned id)
 Set session ID for the transcoder (from OpalMediaStream) More...
 
virtual void SetInstanceID (const BYTE *instance, unsigned instanceLen)
 
RTP_DataFrame::PayloadTypes GetPayloadType (PBoolean input) const
 
virtual bool AcceptComfortNoise () const
 
virtual bool AcceptEmptyPayload () const
 
virtual bool AcceptOtherPayloads () const
 
void CopyTimestamp (RTP_DataFrame &dst, const RTP_DataFrame &src, bool inToOut) const
 
- Public Member Functions inherited from OpalMediaFormatPair
 OpalMediaFormatPair (const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
 
void PrintOn (ostream &strm) const
 
virtual Comparison Compare (const PObject &obj) const
 
const OpalMediaFormatGetInputFormat () const
 
const OpalMediaFormatGetOutputFormat () const
 
- Public Member Functions inherited from OpalPluginTranscoder
 OpalPluginTranscoder (const PluginCodec_Definition *defn, bool isEnc)
 
 ~OpalPluginTranscoder ()
 
bool UpdateOptions (OpalMediaFormat &fmt)
 
bool ExecuteCommand (const OpalMediaCommand &command)
 
bool Transcode (const void *from, unsigned *fromLen, void *to, unsigned *toLen, unsigned *flags) const
 

Protected Member Functions

bool EncodeFrames (const RTP_DataFrame &src, RTP_DataFrameList &dstList)
 
bool DecodeFrames (const RTP_DataFrame &src, RTP_DataFrameList &dstList)
 
bool DecodeFrame (const RTP_DataFrame &src, RTP_DataFrameList &dstList)
 

Protected Attributes

RTP_DataFramem_bufferRTP
 
DWORD m_lastSequenceNumber
 
DWORD m_lastDecodedTimestamp
 
DWORD m_lastMarkerTimestamp
 
unsigned m_consecutiveMarkers
 
bool m_badMarkers
 
- Protected Attributes inherited from OpalVideoTranscoder
PINDEX m_inDataSize
 
PINDEX m_outDataSize
 
bool m_errorConcealment
 
bool m_freezeTillIFrame
 
bool m_frozenTillIFrame
 
bool m_forceIFrame
 
bool m_lastFrameWasIFrame
 
PSimpleTimer m_throttleRequestIFrameTimer
 
PSimpleTimer m_throttleSendIFrameTimer
 
PTimeInterval m_lastReceivedIFrameRequest
 
DWORD m_totalFrames
 
DWORD m_keyFrames
 
- Protected Attributes inherited from OpalTranscoder
PINDEX maxOutputSize
 
PNotifier commandNotifier
 
PMutex updateMutex
 
unsigned m_sessionID
 
bool outputIsRTP
 
bool inputIsRTP
 
bool acceptEmptyPayload
 
bool acceptOtherPayloads
 
unsigned m_inClockRate
 
unsigned m_outClockRate
 
RTP_DataFrame::PayloadTypes m_lastPayloadType
 
unsigned m_consecutivePayloadTypeMismatches
 
- Protected Attributes inherited from OpalMediaFormatPair
OpalMediaFormat inputMediaFormat
 
OpalMediaFormat outputMediaFormat
 
- Protected Attributes inherited from OpalPluginTranscoder
const PluginCodec_DefinitioncodecDef
 
bool isEncoder
 
void * context
 
OpalPluginControl setCodecOptionsControl
 
OpalPluginControl getActiveOptionsControl
 
OpalPluginControl freeOptionsControl
 
OpalPluginControl getOutputDataSizeControl
 
OpalPluginControl getCodecStatistics
 

Additional Inherited Members

- Public Types inherited from OpalVideoTranscoder
typedef
PluginCodec_Video_FrameHeader 
FrameHeader
 
- Static Public Member Functions inherited from OpalVideoTranscoder
static
OpalVideoFormat::VideoFrameType 
GetVideoFrameType (const PCaselessString &rtpEncodingName, const BYTE *payloadPtr, PINDEX payloadSize, PBYTEArray &context)
 
- Static Public Member Functions inherited from OpalTranscoder
static OpalTranscoderCreate (const OpalMediaFormat &srcFormat, const OpalMediaFormat &dstFormat, const BYTE *instance=NULL, unsigned instanceLen=0)
 
static bool SelectFormats (const OpalMediaType &mediaType, const OpalMediaFormatList &srcFormats, const OpalMediaFormatList &dstFormats, const OpalMediaFormatList &allFormats, OpalMediaFormat &srcFormat, OpalMediaFormat &dstFormat)
 
static bool FindIntermediateFormat (const OpalMediaFormat &srcFormat, const OpalMediaFormat &dstFormat, OpalMediaFormat &intermediateFormat)
 
static OpalMediaFormatList GetDestinationFormats (const OpalMediaFormat &srcFormat)
 
static OpalMediaFormatList GetSourceFormats (const OpalMediaFormat &dstFormat)
 
static OpalMediaFormatList GetPossibleFormats (const OpalMediaFormatList &formats)
 

Constructor & Destructor Documentation

OpalPluginVideoTranscoder::OpalPluginVideoTranscoder ( const OpalTranscoderKey key,
const PluginCodec_Definition codec,
bool  isEncoder 
)
OpalPluginVideoTranscoder::~OpalPluginVideoTranscoder ( )

Member Function Documentation

PBoolean OpalPluginVideoTranscoder::ConvertFrames ( const RTP_DataFrame input,
RTP_DataFrameList &  output 
)
virtual

Convert the data from one format to another. This function takes the input data as a RTP_DataFrame and converts it to its output format, placing it (possibly) into multiple RTP_DataFrame objects.

The default behaviour makes sure the output list has only one element in it and calls the Convert() function.

Returns false if the conversion fails.

Reimplemented from OpalTranscoder.

bool OpalPluginVideoTranscoder::DecodeFrame ( const RTP_DataFrame src,
RTP_DataFrameList &  dstList 
)
protected
bool OpalPluginVideoTranscoder::DecodeFrames ( const RTP_DataFrame src,
RTP_DataFrameList &  dstList 
)
protected
bool OpalPluginVideoTranscoder::EncodeFrames ( const RTP_DataFrame src,
RTP_DataFrameList &  dstList 
)
protected
PBoolean OpalPluginVideoTranscoder::ExecuteCommand ( const OpalMediaCommand command)
virtual

Execute the command specified to the transcoder. The commands are highly context sensitive, for example OpalVideoUpdatePicture would only apply to a video transcoder.

The default behaviour checks for a OpalVideoUpdatePicture and sets the updatePicture member variable if that is the command.

Returns
true if command is handled.

Reimplemented from OpalVideoTranscoder.

virtual void OpalPluginVideoTranscoder::GetStatistics ( OpalMediaStatistics statistics) const
virtual

Reimplemented from OpalVideoTranscoder.

bool OpalPluginVideoTranscoder::UpdateMediaFormats ( const OpalMediaFormat inputMediaFormat,
const OpalMediaFormat outputMediaFormat 
)
virtual

Update the input and output media formats. This can be used to adjust the parameters of a codec at run time. Note you cannot change the basic media format, eg change GSM0610 to G.711, only options for that format, eg 6k3 mode to 5k3 mode in G.723.1. If the formats are different then a OpalMediaFormat::Merge() is performed.

If a format is empty (invalid) it is ignored and does not update the internal variable. In this way only the input or output side can be updated.

The default behaviour updates the inputMediaFormat and outputMediaFormat member variables.

Reimplemented from OpalVideoTranscoder.

Field Documentation

bool OpalPluginVideoTranscoder::m_badMarkers
protected
RTP_DataFrame* OpalPluginVideoTranscoder::m_bufferRTP
protected
unsigned OpalPluginVideoTranscoder::m_consecutiveMarkers
protected
DWORD OpalPluginVideoTranscoder::m_lastDecodedTimestamp
protected
DWORD OpalPluginVideoTranscoder::m_lastMarkerTimestamp
protected
DWORD OpalPluginVideoTranscoder::m_lastSequenceNumber
protected

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