31 #ifndef OPAL_CODEC_OPALPLUGINMGR_H
32 #define OPAL_CODEC_OPALPLUGINMGR_H
38 #include <ptlib/object.h>
42 #include <ptlib/pluginmgr.h>
43 #include <ptlib/pfactory.h>
89 const char * rtpEncodingName,
98 const char * rtpEncodingName,
103 #if OPAL_T38_CAPABILITY
106 const char * fmtName,
107 const char * rtpEncodingName,
126 PluginCodec_GetCodecFunction getCodecFn);
134 const PString & _mediaFormat,
135 const PString & _baseName,
136 unsigned maxFramesPerPacket,
137 unsigned recommendedFramesPerPacket,
138 unsigned _pluginSubType);
167 int Call(
void * parm,
unsigned * parmLen,
void * context = NULL)
const
172 int Call(
void * parm,
unsigned parmLen,
void * context = NULL)
const
174 return Call(parm, &parmLen, context);
227 bool Transcode(
const void * from,
unsigned * fromLen,
void * to,
unsigned * toLen,
unsigned * flags)
const
252 const char * fmtName,
258 virtual PObject *
Clone()
const;
272 PBoolean
ConvertFrame(
const BYTE * input, PINDEX & consumed, BYTE * output, PINDEX & created);
303 const char * fmtName,
307 virtual PObject *
Clone()
const;
338 unsigned m_consecutiveIntraFrames;
353 const char * fmtName,
359 virtual PObject *
Clone()
const;
392 virtual int Encode(
const void * from,
429 template<
class TranscoderClass>
433 class Worker :
public OpalTranscoderFactory::WorkerBase
438 { OpalTranscoderFactory::Register(key,
this); }
485 virtual PObject *
Clone()
const;
495 #define OPAL_DECLARE_EMPTY_AUDIO_CAPABILITY(fmt, type) \
496 class fmt##_CapabilityRegisterer { \
498 fmt##_CapabilityRegisterer() \
499 { H323CapabilityFactory::Register(fmt, new H323AudioPluginCapability(fmt, fmt, type)); } \
502 #define OPAL_DEFINE_EMPTY_AUDIO_CAPABILITY(fmt) \
503 static fmt##_CapabilityRegisterer fmt##_CapabilityRegisterer_instance; \
517 virtual PObject *
Clone()
const;
518 virtual PBoolean
OnSendingPDU(H245_AudioCapability & cap,
unsigned packetSize)
const;
519 virtual PBoolean
OnReceivedPDU(
const H245_AudioCapability & cap,
unsigned & packetSize);
522 #define OPAL_DECLARE_EMPTY_G7231_CAPABILITY(fmt, annex) \
523 class fmt##_CapabilityRegisterer { \
525 fmt##_CapabilityRegisterer() \
526 { H323CapabilityFactory::Register(fmt, new H323PluginG7231Capability(fmt, annex)); } \
529 #define OPAL_DEFINE_EMPTY_G7231_CAPABILITY(fmt) \
530 static fmt##_CapabilityRegisterer fmt##_CapabilityRegisterer_instance; \
545 const unsigned char * data,
unsigned dataLen);
549 const unsigned char * data,
unsigned dataLen);
551 virtual PObject *
Clone()
const;
570 virtual PObject *
Clone()
const;
590 const unsigned char * data,
unsigned dataLen);
594 const unsigned char * data,
unsigned dataLen);
596 virtual PObject *
Clone()
const;
615 virtual PObject *
Clone()
const;
632 Comparison
Compare(
const PObject & obj)
const;
634 virtual PObject *
Clone()
const;
640 H245_VideoCapability & pdu
648 const H245_VideoCapability & pdu
664 Comparison
Compare(
const PObject & obj)
const;
666 virtual PObject *
Clone()
const;
672 H245_VideoCapability & pdu
680 const H245_VideoCapability & pdu
683 const PASN_Choice & subTypePDU,
684 const PString & mediaPacketization
691 #endif // OPAL_CODEC_OPALPLUGINMGR_H