27 #ifndef OPAL_CODEC_RFC4175_H
28 #define OPAL_CODEC_RFC4175_H
40 #include <ptclib/random.h>
47 #define OPAL_RFC4175_YCbCr420 "RFC4175_YCbCr-4:2:0"
49 #define OpalRFC4175YCbCr420 GetOpalRFC4175_YCbCr420()
51 #define OPAL_RFC4175_RGB "RFC4175_RGB"
53 #define OpalRFC4175RGB GetOpalRFC4175_RGB()
135 virtual bool DecodeFrames(RTP_DataFrameList & output) = 0;
228 #define OPAL_REGISTER_RFC4175_VIDEO(oformat, rformat) \
229 OPAL_REGISTER_TRANSCODER(Opal_RFC4175##rformat##_to_##oformat, OpalRFC4175##rformat, Opal##oformat); \
230 OPAL_REGISTER_TRANSCODER(Opal_##oformat##_to_RFC4175##rformat, Opal##oformat, OpalRFC4175##rformat);
232 #define OPAL_REGISTER_RFC4175() \
233 OPAL_REGISTER_RFC4175_VIDEO(YUV420P, YCbCr420); \
234 OPAL_REGISTER_RFC4175_VIDEO(RGB24, RGB)
239 #endif // OPAL_RFC4175
241 #endif // OPAL_CODEC_RFC4175_H
BYTE * m_srcCbPlane
Definition: rfc4175.h:187
virtual void StartEncoding(const RTP_DataFrame &input)
BYTE * m_rgbBase
Definition: rfc4175.h:224
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:214
DWORD m_firstSequenceOfFrame
Definition: rfc4175.h:148
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:179
Opal_YUV420P_to_RFC4175YCbCr420()
Definition: rfc4175.h:174
PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:215
Definition: rfc4175.h:118
PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:200
PINDEX m_dstScanLineCount
Definition: rfc4175.h:111
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:161
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:217
OpalRFC4175Encoder(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:176
BYTE * m_srcYPlane
Definition: rfc4175.h:186
virtual PINDEX GetPgroupSize() const =0
ScanLineHeader * m_dstScanLineTable
Definition: rfc4175.h:113
PINDEX GetPgroupSize() const
Definition: rfc4175.h:160
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:218
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:165
bool DecodeFrames(RTP_DataFrameList &output)
Definition: rfc4175.h:193
bool ConvertFrames(const RTP_DataFrame &input, RTP_DataFrameList &output)
RTP_DataFrameList m_inputFrames
Definition: rfc4175.h:137
DWORD m_lastTimeStamp
Definition: rfc4175.h:146
PINDEX m_maxHeight
Definition: rfc4175.h:144
std::vector< PINDEX > m_dstScanlineCounts
Definition: rfc4175.h:110
const OpalVideoFormat & GetOpalRFC4175_YCbCr420()
#define OpalRGB24
Definition: vidcodec.h:54
PINDEX GetPgroupSize() const
Definition: rfc4175.h:175
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:202
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:164
DWORD m_nextSequenceNumber
Definition: rfc4175.h:145
Opal_RFC4175YCbCr420_to_YUV420P()
Definition: rfc4175.h:159
PINDEX GetPgroupSize() const
Definition: rfc4175.h:198
DWORD m_srcTimestamp
Definition: rfc4175.h:107
#define OpalRFC4175RGB
Definition: rfc4175.h:53
std::vector< PINDEX > m_scanlineCounts
Definition: rfc4175.h:138
void EncodeScanLineSegment(PINDEX y, PINDEX offs, PINDEX width)
PINDEX m_dstPacketSize
Definition: rfc4175.h:112
unsigned m_frameWidth
Definition: rfc4175.h:105
OpalRFC4175Transcoder(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
void DecodeFramesAndSetFrameSize(RTP_DataFrameList &output)
bool ConvertFrames(const RTP_DataFrame &input, RTP_DataFrameList &output)
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:180
virtual PINDEX PixelsToBytes(PINDEX pixels) const =0
PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:162
PINDEX m_frameHeight
Definition: rfc4175.h:139
PINDEX GetPgroupSize() const
Definition: rfc4175.h:213
#define OpalRFC4175YCbCr420
Definition: rfc4175.h:49
virtual bool DecodeFrames(RTP_DataFrameList &output)=0
DWORD m_timeStampOfFrame
Definition: rfc4175.h:147
Definition: rfc4175.h:155
Definition: rfc4175.h:208
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:199
const OpalVideoFormat & GetOpalRFC4175_RGB()
virtual void EndEncoding()=0
PINDEX m_maxWidth
Definition: rfc4175.h:143
bool DecodeFrames(RTP_DataFrameList &output)
Opal_RFC4175RGB_to_RGB24()
Definition: rfc4175.h:197
unsigned m_frameHeight
Definition: rfc4175.h:104
void StartEncoding(const RTP_DataFrame &input)
PINDEX RFC4175HeaderSize(PINDEX lines)
PINDEX m_frameWidth
Definition: rfc4175.h:139
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:203
virtual PINDEX GetColsPerPgroup() const =0
PINDEX m_maximumPacketSize
Definition: rfc4175.h:103
BYTE * m_srcCrPlane
Definition: rfc4175.h:188
#define OpalYUV420P
Definition: vidcodec.h:58
virtual PINDEX GetRowsPerPgroup() const =0
virtual PINDEX BytesToPixels(PINDEX pixels) const =0
PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:177
RTP_DataFrameList * m_dstFrames
Definition: rfc4175.h:109
Opal_RGB24_to_RFC4175RGB()
Definition: rfc4175.h:212
DWORD m_extendedSequenceNumber
Definition: rfc4175.h:102
OpalRFC4175Decoder(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
Definition: rfc4175.h:170
bool m_missingPackets
Definition: rfc4175.h:142
void StartEncoding(const RTP_DataFrame &input)
virtual PINDEX PixelsToBytes(PINDEX pixels) const =0
bool m_first
Definition: rfc4175.h:141
Definition: vidcodec.h:142