31 #ifndef OPAL_CODEC_RFC4175_H
32 #define OPAL_CODEC_RFC4175_H
44 #include <ptclib/random.h>
51 #define OPAL_RFC4175_YCbCr420 "RFC4175_YCbCr-4:2:0"
53 #define OpalRFC4175YCbCr420 GetOpalRFC4175_YCbCr420()
55 #define OPAL_RFC4175_RGB "RFC4175_RGB"
57 #define OpalRFC4175RGB GetOpalRFC4175_RGB()
139 virtual bool DecodeFrames(RTP_DataFrameList & output) = 0;
232 #define OPAL_REGISTER_RFC4175_VIDEO(oformat, rformat) \
233 OPAL_REGISTER_TRANSCODER(Opal_RFC4175##rformat##_to_##oformat, OpalRFC4175##rformat, Opal##oformat); \
234 OPAL_REGISTER_TRANSCODER(Opal_##oformat##_to_RFC4175##rformat, Opal##oformat, OpalRFC4175##rformat);
236 #define OPAL_REGISTER_RFC4175() \
237 OPAL_REGISTER_RFC4175_VIDEO(YUV420P, YCbCr420); \
238 OPAL_REGISTER_RFC4175_VIDEO(RGB24, RGB)
243 #endif // OPAL_RFC4175
245 #endif // OPAL_CODEC_RFC4175_H
BYTE * m_srcCbPlane
Definition: rfc4175.h:191
virtual void StartEncoding(const RTP_DataFrame &input)
BYTE * m_rgbBase
Definition: rfc4175.h:228
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:218
DWORD m_firstSequenceOfFrame
Definition: rfc4175.h:152
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:183
Opal_YUV420P_to_RFC4175YCbCr420()
Definition: rfc4175.h:178
PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:219
Definition: rfc4175.h:122
PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:204
PINDEX m_dstScanLineCount
Definition: rfc4175.h:115
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:165
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:221
OpalRFC4175Encoder(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:180
BYTE * m_srcYPlane
Definition: rfc4175.h:190
virtual PINDEX GetPgroupSize() const =0
ScanLineHeader * m_dstScanLineTable
Definition: rfc4175.h:117
PINDEX GetPgroupSize() const
Definition: rfc4175.h:164
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:222
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:169
bool DecodeFrames(RTP_DataFrameList &output)
Definition: rfc4175.h:197
bool ConvertFrames(const RTP_DataFrame &input, RTP_DataFrameList &output)
RTP_DataFrameList m_inputFrames
Definition: rfc4175.h:141
DWORD m_lastTimeStamp
Definition: rfc4175.h:150
PINDEX m_maxHeight
Definition: rfc4175.h:148
std::vector< PINDEX > m_dstScanlineCounts
Definition: rfc4175.h:114
const OpalVideoFormat & GetOpalRFC4175_YCbCr420()
#define OpalRGB24
Definition: vidcodec.h:59
PINDEX GetPgroupSize() const
Definition: rfc4175.h:179
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:206
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:168
DWORD m_nextSequenceNumber
Definition: rfc4175.h:149
Opal_RFC4175YCbCr420_to_YUV420P()
Definition: rfc4175.h:163
PINDEX GetPgroupSize() const
Definition: rfc4175.h:202
DWORD m_srcTimestamp
Definition: rfc4175.h:111
#define OpalRFC4175RGB
Definition: rfc4175.h:57
std::vector< PINDEX > m_scanlineCounts
Definition: rfc4175.h:142
void EncodeScanLineSegment(PINDEX y, PINDEX offs, PINDEX width)
PINDEX m_dstPacketSize
Definition: rfc4175.h:116
unsigned m_frameWidth
Definition: rfc4175.h:109
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:184
virtual PINDEX PixelsToBytes(PINDEX pixels) const =0
PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:166
PINDEX m_frameHeight
Definition: rfc4175.h:143
PINDEX GetPgroupSize() const
Definition: rfc4175.h:217
#define OpalRFC4175YCbCr420
Definition: rfc4175.h:53
virtual bool DecodeFrames(RTP_DataFrameList &output)=0
DWORD m_timeStampOfFrame
Definition: rfc4175.h:151
Definition: rfc4175.h:159
Definition: rfc4175.h:212
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:203
const OpalVideoFormat & GetOpalRFC4175_RGB()
virtual void EndEncoding()=0
PINDEX m_maxWidth
Definition: rfc4175.h:147
bool DecodeFrames(RTP_DataFrameList &output)
Opal_RFC4175RGB_to_RGB24()
Definition: rfc4175.h:201
unsigned m_frameHeight
Definition: rfc4175.h:108
void StartEncoding(const RTP_DataFrame &input)
PINDEX RFC4175HeaderSize(PINDEX lines)
PINDEX m_frameWidth
Definition: rfc4175.h:143
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:207
virtual PINDEX GetColsPerPgroup() const =0
PINDEX m_maximumPacketSize
Definition: rfc4175.h:107
BYTE * m_srcCrPlane
Definition: rfc4175.h:192
#define OpalYUV420P
Definition: vidcodec.h:61
virtual PINDEX GetRowsPerPgroup() const =0
virtual PINDEX BytesToPixels(PINDEX pixels) const =0
PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:181
RTP_DataFrameList * m_dstFrames
Definition: rfc4175.h:113
Opal_RGB24_to_RFC4175RGB()
Definition: rfc4175.h:216
DWORD m_extendedSequenceNumber
Definition: rfc4175.h:106
OpalRFC4175Decoder(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
Definition: rfc4175.h:174
bool m_missingPackets
Definition: rfc4175.h:146
void StartEncoding(const RTP_DataFrame &input)
virtual PINDEX PixelsToBytes(PINDEX pixels) const =0
bool m_first
Definition: rfc4175.h:145
Definition: vidcodec.h:72