32 #ifndef OPAL_OPAL_TRANSCODERS_H
33 #define OPAL_OPAL_TRANSCODERS_H
127 #define OPAL_REGISTER_TRANSCODER(cls, input, output) \
128 PFACTORY_CREATE(OpalTranscoderFactory, cls, MakeOpalTranscoderKey(input, output), false)
205 RTP_DataFrameList & output
226 const BYTE * instance = NULL,
227 unsigned instanceLen = 0
307 const PNotifier & notifier
330 const BYTE * instance,
533 #define OPAL_REGISTER_L16_MONO() \
534 OPAL_REGISTER_TRANSCODER(Opal_Linear16Mono_PCM, OpalL16_MONO_8KHZ, OpalPCM16); \
535 OPAL_REGISTER_TRANSCODER(Opal_PCM_Linear16Mono, OpalPCM16, OpalL16_MONO_8KHZ)
550 #define OPAL_DECLARE_EMPTY_TRANSCODER(fmt) \
551 class Opal_Empty_##fmt##_Encoder : public OpalEmptyFramedAudioTranscoder \
554 Opal_Empty_##fmt##_Encoder() \
555 : OpalEmptyFramedAudioTranscoder(OpalPCM16, fmt) \
558 class Opal_Empty_##fmt##_Decoder : public OpalEmptyFramedAudioTranscoder \
561 Opal_Empty_##fmt##_Decoder() \
562 : OpalEmptyFramedAudioTranscoder(fmt, OpalPCM16) \
566 #define OPAL_DEFINE_EMPTY_TRANSCODER(fmt) \
567 OPAL_REGISTER_TRANSCODER(Opal_Empty_##fmt##_Encoder, OpalPCM16, fmt); \
568 OPAL_REGISTER_TRANSCODER(Opal_Empty_##fmt##_Decoder, fmt, OpalPCM16); \
570 #endif // OPAL_OPAL_TRANSCODERS_H
PFactory< OpalTranscoder, OpalTranscoderKey >::KeyList_T OpalTranscoderList
Definition: transcoders.h:114
bool inputIsRTP
Definition: transcoders.h:355
PINDEX outputBytesPerFrame
Definition: transcoders.h:447
RTP_DataFrame::PayloadTypes GetPayloadType(PBoolean input) const
bool acceptOtherPayloads
Definition: transcoders.h:357
Definition: transcoders.h:524
unsigned m_outClockRate
Definition: transcoders.h:359
virtual PINDEX GetOptimalDataFrameSize(PBoolean input) const =0
virtual int ConvertOne(int sample) const
virtual PBoolean Convert(const RTP_DataFrame &input, RTP_DataFrame &output)
virtual PBoolean ConvertSilentFrame(BYTE *output)
Definition: transcoders.h:515
void CopyTimestamp(RTP_DataFrame &dst, const RTP_DataFrame &src, bool inToOut) const
virtual PBoolean ExecuteCommand(const OpalMediaCommand &command)
bool outputIsRTP
Definition: transcoders.h:355
PINDEX maxOutputDataSize
Definition: transcoders.h:448
Definition: transcoders.h:459
bool acceptEmptyPayload
Definition: transcoders.h:356
OpalStreamedTranscoder(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat, unsigned inputBits, unsigned outputBits)
static OpalMediaFormatList GetSourceFormats(const OpalMediaFormat &dstFormat)
virtual PINDEX GetOptimalDataFrameSize(PBoolean input) const
OpalTranscoder(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
PayloadTypes
Definition: rtp.h:86
virtual bool AcceptComfortNoise() const
Definition: transcoders.h:338
unsigned m_sessionID
Definition: transcoders.h:354
virtual bool AcceptOtherPayloads() const
Definition: transcoders.h:340
std::pair< PString, PString > OpalTranscoderKey
Definition: transcoders.h:112
OpalFramedTranscoder(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
void NotifyCommand(const OpalMediaCommand &command) const
Notify command notifier of command.
unsigned GetSessionID() const
Get session ID for the transcoder (from OpalMediaStream)
Definition: transcoders.h:322
Definition: transcoders.h:538
__inline OpalTranscoderKey MakeOpalTranscoderKey(const OpalMediaFormat &from, const OpalMediaFormat &to)
Definition: transcoders.h:117
static OpalMediaFormatList GetPossibleFormats(const OpalMediaFormatList &formats)
Definition: transcoders.h:137
virtual bool UpdateMediaFormats(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
PMutex updateMutex
Definition: transcoders.h:352
virtual PBoolean ConvertFrames(const RTP_DataFrame &input, RTP_DataFrameList &output)
PINDEX GetMaxOutputSize() const
Definition: transcoders.h:294
PINDEX maxOutputSize
Definition: transcoders.h:350
void SetCommandNotifier(const PNotifier ¬ifier)
Definition: transcoders.h:306
void SetMaxOutputSize(PINDEX size)
Definition: transcoders.h:298
PBoolean ConvertFrame(const BYTE *, PINDEX &, BYTE *, PINDEX &)
Definition: transcoders.h:546
static OpalTranscoder * Create(const OpalMediaFormat &srcFormat, const OpalMediaFormat &dstFormat, const BYTE *instance=NULL, unsigned instanceLen=0)
Definition: transcoders.h:370
unsigned outputBitsPerSample
Definition: transcoders.h:509
OpalEmptyFramedAudioTranscoder(const char *inFormat, const char *outFormat)
Definition: transcoders.h:542
void SetSessionID(unsigned id)
Set session ID for the transcoder (from OpalMediaStream)
Definition: transcoders.h:325
PNotifier commandNotifier
Definition: transcoders.h:351
PFactory< OpalTranscoder, OpalTranscoderKey > OpalTranscoderFactory
Definition: transcoders.h:113
virtual int ConvertOne(int sample) const
static OpalMediaFormatList GetDestinationFormats(const OpalMediaFormat &srcFormat)
PFactory< OpalTranscoder, OpalTranscoderKey >::KeyList_T::iterator OpalTranscoderIterator
Definition: transcoders.h:115
virtual bool AcceptEmptyPayload() const
Definition: transcoders.h:339
virtual PBoolean ConvertFrame(const BYTE *input, BYTE *output)
virtual PINDEX GetOptimalDataFrameSize(PBoolean input) const
virtual void SetInstanceID(const BYTE *instance, unsigned instanceLen)
static bool FindIntermediateFormat(const OpalMediaFormat &srcFormat, const OpalMediaFormat &dstFormat, OpalMediaFormat &intermediateFormat)
virtual bool UpdateMediaFormats(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
PINDEX inputBytesPerFrame
Definition: transcoders.h:446
static bool SelectFormats(const OpalMediaType &mediaType, const OpalMediaFormatList &srcFormats, const OpalMediaFormatList &dstFormats, const OpalMediaFormatList &allFormats, OpalMediaFormat &srcFormat, OpalMediaFormat &dstFormat)
unsigned m_inClockRate
Definition: transcoders.h:358
virtual PBoolean Convert(const RTP_DataFrame &input, RTP_DataFrame &output)
virtual void GetStatistics(OpalMediaStatistics &statistics) const
virtual int ConvertOne(int sample) const =0
virtual PBoolean Convert(const RTP_DataFrame &input, RTP_DataFrame &output)=0
unsigned inputBitsPerSample
Definition: transcoders.h:508
const PNotifier & GetCommandNotifier() const
Definition: transcoders.h:314