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) 166 virtual bool UpdateMediaFormats(
179 virtual PBoolean ExecuteCommand(
189 virtual PINDEX GetOptimalDataFrameSize(
203 virtual PBoolean ConvertFrames(
205 RTP_DataFrameList & output
214 virtual PBoolean Convert(
226 const BYTE * instance = NULL,
227 unsigned instanceLen = 0
244 static bool SelectFormats(
265 static bool FindIntermediateFormat(
300 ) { maxOutputSize = size; }
307 const PNotifier & notifier
308 ) { commandNotifier = notifier; }
329 virtual void SetInstanceID(
330 const BYTE * instance,
399 virtual bool UpdateMediaFormats(
410 virtual PINDEX GetOptimalDataFrameSize(
420 virtual PBoolean Convert(
428 virtual PBoolean ConvertFrame(
432 virtual PBoolean ConvertFrame(
438 virtual PBoolean ConvertSilentFrame(
444 void CalculateSizes();
483 virtual PINDEX GetOptimalDataFrameSize(
493 virtual PBoolean Convert(
504 virtual int ConvertOne(
int sample)
const = 0;
518 virtual int ConvertOne(
int sample)
const;
527 virtual int ConvertOne(
int sample)
const;
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
PINDEX outputBytesPerFrame
Definition: transcoders.h:447
bool acceptOtherPayloads
Definition: transcoders.h:357
const PNotifier & GetCommandNotifier() const
Definition: transcoders.h:314
PINDEX GetMaxOutputSize() const
Definition: transcoders.h:294
Definition: transcoders.h:524
unsigned m_outClockRate
Definition: transcoders.h:359
virtual bool AcceptOtherPayloads() const
Definition: transcoders.h:340
Definition: transcoders.h:515
bool outputIsRTP
Definition: transcoders.h:355
PINDEX maxOutputDataSize
Definition: transcoders.h:448
Definition: transcoders.h:459
virtual bool AcceptEmptyPayload() const
Definition: transcoders.h:339
bool acceptEmptyPayload
Definition: transcoders.h:356
PayloadTypes
Definition: rtp.h:86
unsigned m_sessionID
Definition: transcoders.h:354
std::pair< PString, PString > OpalTranscoderKey
Definition: transcoders.h:112
Definition: transcoders.h:538
__inline OpalTranscoderKey MakeOpalTranscoderKey(const OpalMediaFormat &from, const OpalMediaFormat &to)
Definition: transcoders.h:117
unsigned GetSessionID() const
Get session ID for the transcoder (from OpalMediaStream)
Definition: transcoders.h:322
Definition: transcoders.h:137
PMutex updateMutex
Definition: transcoders.h:352
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
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
PFactory< OpalTranscoder, OpalTranscoderKey >::KeyList_T::iterator OpalTranscoderIterator
Definition: transcoders.h:115
PINDEX inputBytesPerFrame
Definition: transcoders.h:446
unsigned m_inClockRate
Definition: transcoders.h:358
virtual bool AcceptComfortNoise() const
Definition: transcoders.h:338
unsigned inputBitsPerSample
Definition: transcoders.h:508