OPAL  Version 3.18.8
PluginCodec< NAME > Class Template Referenceabstract

#include <opalplugin.hpp>

Inheritance diagram for PluginCodec< NAME >:
Collaboration diagram for PluginCodec< NAME >:

Public Types

typedef
PluginCodec_MediaFormat< NAME > 
MediaFormat
 

Public Member Functions

virtual ~PluginCodec ()
 
virtual bool Construct ()
 Complete construction of the plug in codec. More...
 
virtual bool Transcode (const void *fromPtr, unsigned &fromLen, void *toPtr, unsigned &toLen, unsigned &flags)=0
 Convert from one media format to another. More...
 
virtual int GetStatistics (char *, unsigned)
 Gather any statistics as a string into the provide buffer. More...
 
virtual size_t GetOutputDataSize ()
 Get the required output buffer size to be passed into Transcode. More...
 
virtual bool SetInstanceID (const char *, unsigned)
 
virtual bool GetActiveOptions (PluginCodec_OptionMap &)
 Get options that are "active" and may be different from the last SetOptions() call. More...
 
virtual bool SetOptions (const char *const *options)
 Set all the options for the codec. More...
 
virtual bool OnChangedOptions ()
 Callback for if any options are changed. More...
 
virtual bool SetOption (const char *optionName, const char *optionValue)
 Set an individual option of the given name. More...
 
template<typename T >
bool SetOptionUnsigned (T &oldValue, const char *optionValue, unsigned minimum, unsigned maximum=UINT_MAX)
 
bool SetOptionUnsigned (unsigned &oldValue, const char *optionValue, unsigned minimum, unsigned maximum=UINT_MAX)
 
template<typename T >
bool SetOptionBoolean (T &oldValue, const char *optionValue)
 
bool SetOptionBoolean (bool &oldValue, const char *optionValue)
 
bool SetOptionBit (int &oldValue, unsigned bit, const char *optionValue)
 
bool SetOptionBit (unsigned &oldValue, unsigned bit, const char *optionValue)
 

Static Public Member Functions

static bool Terminate ()
 
template<class CodecClass >
static void * Create_s (const PluginCodec_Definition *defn)
 
static void Destroy_s (const PluginCodec_Definition *, void *context)
 
static int Transcode_s (const PluginCodec_Definition *, void *context, const void *fromPtr, unsigned *fromLen, void *toPtr, unsigned *toLen, unsigned int *flags)
 
static int GetOutputDataSize_s (const PluginCodec_Definition *, void *context, const char *, void *, unsigned *)
 
static int ToNormalised_s (const PluginCodec_Definition *defn, void *, const char *, void *parm, unsigned *len)
 
static int ToCustomised_s (const PluginCodec_Definition *defn, void *, const char *, void *parm, unsigned *len)
 
static int GetActiveOptions_s (const PluginCodec_Definition *, void *context, const char *, void *parm, unsigned *parmLen)
 
static int FreeOptions_s (const PluginCodec_Definition *, void *, const char *, void *parm, unsigned *len)
 
static int GetOptions_s (const struct PluginCodec_Definition *codec, void *, const char *, void *parm, unsigned *len)
 
static int SetOptions_s (const PluginCodec_Definition *, void *context, const char *, void *parm, unsigned *len)
 
static int ValidForProtocol_s (const PluginCodec_Definition *defn, void *, const char *, void *parm, unsigned *len)
 
static int SetInstanceID_s (const PluginCodec_Definition *, void *context, const char *, void *parm, unsigned *len)
 
static int GetStatistics_s (const PluginCodec_Definition *, void *context, const char *, void *parm, unsigned *len)
 
static int Terminate_s (const PluginCodec_Definition *, void *context, const char *, void *, unsigned *)
 
static struct
PluginCodec_ControlDefn
GetControls ()
 
- Static Public Member Functions inherited from PluginCodec_Utilities
static unsigned String2Unsigned (const std::string &str)
 
static void AppendUnsigned2String (unsigned value, std::string &str)
 
static void Unsigned2String (unsigned value, std::string &str)
 
static void Change (const char *value, PluginCodec_OptionMapBase &original, PluginCodec_OptionMapBase &changed, const char *option)
 
static void Change (unsigned value, PluginCodec_OptionMapBase &original, PluginCodec_OptionMapBase &changed, const char *option)
 
static void ClampMax (unsigned maximum, PluginCodec_OptionMapBase &original, PluginCodec_OptionMapBase &changed, const char *option, bool forceIfZero=false)
 
static void ClampMin (unsigned minimum, PluginCodec_OptionMapBase &original, PluginCodec_OptionMapBase &changed, const char *option)
 
static unsigned GetMacroBlocks (unsigned width, unsigned height)
 
static bool ClampResolution (unsigned &width, unsigned &height, unsigned &maxFrameSize)
 
static bool ClampResolution (PluginCodec_OptionMapBase &original, PluginCodec_OptionMapBase &changed, unsigned maxWidth, unsigned maxHeight, unsigned &maxMacroBlocks, const char *widthKey=PLUGINCODEC_OPTION_FRAME_WIDTH, const char *heightKey=PLUGINCODEC_OPTION_FRAME_HEIGHT, const char *maxWidthKey=PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH, const char *maxHeightKey=PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT, const char *minWidthKey=PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH, const char *minHeightKey=PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT)
 

Protected Member Functions

 PluginCodec (const PluginCodec_Definition *defn)
 

Protected Attributes

const PluginCodec_Definitionm_definition
 
bool m_optionsSame
 
unsigned m_maxBitRate
 
unsigned m_frameTime
 

Member Typedef Documentation

template<typename NAME >
typedef PluginCodec_MediaFormat<NAME> PluginCodec< NAME >::MediaFormat

Constructor & Destructor Documentation

template<typename NAME >
virtual PluginCodec< NAME >::~PluginCodec ( )
inlinevirtual

Member Function Documentation

template<typename NAME >
virtual bool PluginCodec< NAME >::Construct ( )
inlinevirtual

Complete construction of the plug in codec.

template<typename NAME >
template<class CodecClass >
static void* PluginCodec< NAME >::Create_s ( const PluginCodec_Definition defn)
inlinestatic

References PTRACE.

template<typename NAME >
static void PluginCodec< NAME >::Destroy_s ( const PluginCodec_Definition ,
void *  context 
)
inlinestatic
template<typename NAME >
static int PluginCodec< NAME >::FreeOptions_s ( const PluginCodec_Definition ,
void *  ,
const char *  ,
void *  parm,
unsigned *  len 
)
inlinestatic
template<typename NAME >
virtual bool PluginCodec< NAME >::GetActiveOptions ( PluginCodec_OptionMap )
inlinevirtual

Get options that are "active" and may be different from the last SetOptions() call.

Reimplemented in PluginVideoEncoder< NAME >.

Referenced by PluginCodec< NAME >::GetActiveOptions_s().

template<typename NAME >
static int PluginCodec< NAME >::GetActiveOptions_s ( const PluginCodec_Definition ,
void *  context,
const char *  ,
void *  parm,
unsigned *  parmLen 
)
inlinestatic
template<typename NAME >
static int PluginCodec< NAME >::GetOptions_s ( const struct PluginCodec_Definition codec,
void *  ,
const char *  ,
void *  parm,
unsigned *  len 
)
inlinestatic
template<typename NAME >
virtual size_t PluginCodec< NAME >::GetOutputDataSize ( )
inlinevirtual

Get the required output buffer size to be passed into Transcode.

Reimplemented in PluginVideoDecoder< NAME >, and PluginVideoEncoder< NAME >.

Referenced by PluginCodec< NAME >::GetOutputDataSize_s().

template<typename NAME >
static int PluginCodec< NAME >::GetOutputDataSize_s ( const PluginCodec_Definition ,
void *  context,
const char *  ,
void *  ,
unsigned *   
)
inlinestatic
template<typename NAME >
virtual int PluginCodec< NAME >::GetStatistics ( char *  ,
unsigned   
)
inlinevirtual

Gather any statistics as a string into the provide buffer.

Reimplemented in PluginVideoCodec< NAME >.

Referenced by PluginCodec< NAME >::GetStatistics_s().

template<typename NAME >
static int PluginCodec< NAME >::GetStatistics_s ( const PluginCodec_Definition ,
void *  context,
const char *  ,
void *  parm,
unsigned *  len 
)
inlinestatic
template<typename NAME >
virtual bool PluginCodec< NAME >::OnChangedOptions ( )
inlinevirtual

Callback for if any options are changed.

Referenced by PluginCodec< NAME >::SetOptions().

template<typename NAME >
virtual bool PluginCodec< NAME >::SetInstanceID ( const char *  ,
unsigned   
)
inlinevirtual

Set the instance ID for the codec. This is used to match up the encode and decoder pairs of instances for a given call. While most codecs like G.723.1 are purely unidirectional, some a bidirectional and have information flow between encoder and decoder.

Referenced by PluginCodec< NAME >::SetInstanceID_s().

template<typename NAME >
static int PluginCodec< NAME >::SetInstanceID_s ( const PluginCodec_Definition ,
void *  context,
const char *  ,
void *  parm,
unsigned *  len 
)
inlinestatic
template<typename NAME >
virtual bool PluginCodec< NAME >::SetOption ( const char *  optionName,
const char *  optionValue 
)
inlinevirtual
template<typename NAME >
bool PluginCodec< NAME >::SetOptionBit ( int &  oldValue,
unsigned  bit,
const char *  optionValue 
)
inline
template<typename NAME >
bool PluginCodec< NAME >::SetOptionBit ( unsigned &  oldValue,
unsigned  bit,
const char *  optionValue 
)
inline
template<typename NAME >
template<typename T >
bool PluginCodec< NAME >::SetOptionBoolean ( T &  oldValue,
const char *  optionValue 
)
inline
template<typename NAME >
bool PluginCodec< NAME >::SetOptionBoolean ( bool &  oldValue,
const char *  optionValue 
)
inline
template<typename NAME >
virtual bool PluginCodec< NAME >::SetOptions ( const char *const *  options)
inlinevirtual
template<typename NAME >
static int PluginCodec< NAME >::SetOptions_s ( const PluginCodec_Definition ,
void *  context,
const char *  ,
void *  parm,
unsigned *  len 
)
inlinestatic
template<typename NAME >
template<typename T >
bool PluginCodec< NAME >::SetOptionUnsigned ( T &  oldValue,
const char *  optionValue,
unsigned  minimum,
unsigned  maximum = UINT_MAX 
)
inline
template<typename NAME >
bool PluginCodec< NAME >::SetOptionUnsigned ( unsigned &  oldValue,
const char *  optionValue,
unsigned  minimum,
unsigned  maximum = UINT_MAX 
)
inline
template<typename NAME >
static bool PluginCodec< NAME >::Terminate ( )
inlinestatic

Terminate operation of plug in codec. This is generally not needed but sometimes (e.g. fax) there is some clean up required to be done on completion of the codec run.

Referenced by PluginCodec< NAME >::Terminate_s().

template<typename NAME >
static int PluginCodec< NAME >::Terminate_s ( const PluginCodec_Definition ,
void *  context,
const char *  ,
void *  ,
unsigned *   
)
inlinestatic
template<typename NAME >
static int PluginCodec< NAME >::ToCustomised_s ( const PluginCodec_Definition defn,
void *  ,
const char *  ,
void *  parm,
unsigned *  len 
)
inlinestatic
template<typename NAME >
static int PluginCodec< NAME >::ToNormalised_s ( const PluginCodec_Definition defn,
void *  ,
const char *  ,
void *  parm,
unsigned *  len 
)
inlinestatic
template<typename NAME >
virtual bool PluginCodec< NAME >::Transcode ( const void *  fromPtr,
unsigned &  fromLen,
void *  toPtr,
unsigned &  toLen,
unsigned &  flags 
)
pure virtual

Convert from one media format to another.

template<typename NAME >
static int PluginCodec< NAME >::Transcode_s ( const PluginCodec_Definition ,
void *  context,
const void *  fromPtr,
unsigned *  fromLen,
void *  toPtr,
unsigned *  toLen,
unsigned int *  flags 
)
inlinestatic

References PTRACE.

template<typename NAME >
static int PluginCodec< NAME >::ValidForProtocol_s ( const PluginCodec_Definition defn,
void *  ,
const char *  ,
void *  parm,
unsigned *  len 
)
inlinestatic

Field Documentation

template<typename NAME >
const PluginCodec_Definition* PluginCodec< NAME >::m_definition
protected
template<typename NAME >
unsigned PluginCodec< NAME >::m_frameTime
protected
template<typename NAME >
unsigned PluginCodec< NAME >::m_maxBitRate
protected

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