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() 99 virtual void EndEncoding() = 0;
101 void EncodeFullFrame();
102 void EncodeScanLineSegment(PINDEX y, PINDEX offs, PINDEX width);
103 void AddNewDstFrame();
104 void FinishOutputFrame();
133 virtual PINDEX BytesToPixels(PINDEX pixels)
const = 0;
138 void DecodeFramesAndSetFrameSize(RTP_DataFrameList & output);
139 virtual bool DecodeFrames(RTP_DataFrameList & output) = 0;
171 bool DecodeFrames(RTP_DataFrameList & output);
209 bool DecodeFrames(RTP_DataFrameList & output);
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 PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:181
BYTE * m_srcCbPlane
Definition: rfc4175.h:191
PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:204
BYTE * m_rgbBase
Definition: rfc4175.h:228
DWORD m_firstSequenceOfFrame
Definition: rfc4175.h:152
Opal_YUV420P_to_RFC4175YCbCr420()
Definition: rfc4175.h:178
Definition: rfc4175.h:122
PINDEX m_dstScanLineCount
Definition: rfc4175.h:115
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:165
PINDEX GetPgroupSize() const
Definition: rfc4175.h:202
PINDEX GetPgroupSize() const
Definition: rfc4175.h:217
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:222
BYTE * m_srcYPlane
Definition: rfc4175.h:190
virtual PINDEX GetPgroupSize() const =0
ScanLineHeader * m_dstScanLineTable
Definition: rfc4175.h:117
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:221
Definition: rfc4175.h:197
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:180
RTP_DataFrameList m_inputFrames
Definition: rfc4175.h:141
DWORD m_lastTimeStamp
Definition: rfc4175.h:150
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:169
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:168
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 GetRowsPerPgroup() const
Definition: rfc4175.h:219
DWORD m_nextSequenceNumber
Definition: rfc4175.h:149
Opal_RFC4175YCbCr420_to_YUV420P()
Definition: rfc4175.h:163
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:184
DWORD m_srcTimestamp
Definition: rfc4175.h:111
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:206
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:203
#define OpalRFC4175RGB
Definition: rfc4175.h:57
std::vector< PINDEX > m_scanlineCounts
Definition: rfc4175.h:142
PINDEX m_dstPacketSize
Definition: rfc4175.h:116
virtual PBoolean ConvertFrames(const RTP_DataFrame &input, RTP_DataFrameList &output)
unsigned m_frameWidth
Definition: rfc4175.h:109
OpalRFC4175Transcoder(const OpalMediaFormat &inputMediaFormat, const OpalMediaFormat &outputMediaFormat)
virtual PINDEX PixelsToBytes(PINDEX pixels) const =0
#define OpalRFC4175YCbCr420
Definition: rfc4175.h:53
PINDEX PixelsToBytes(PINDEX pixels) const
Definition: rfc4175.h:183
DWORD m_timeStampOfFrame
Definition: rfc4175.h:151
Definition: rfc4175.h:159
Definition: rfc4175.h:212
PINDEX BytesToPixels(PINDEX bytes) const
Definition: rfc4175.h:207
const OpalVideoFormat & GetOpalRFC4175_RGB()
PINDEX m_maxWidth
Definition: rfc4175.h:147
Opal_RFC4175RGB_to_RGB24()
Definition: rfc4175.h:201
unsigned m_frameHeight
Definition: rfc4175.h:108
PINDEX RFC4175HeaderSize(PINDEX lines)
PINDEX m_frameWidth
Definition: rfc4175.h:143
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
RTP_DataFrameList * m_dstFrames
Definition: rfc4175.h:113
PINDEX GetRowsPerPgroup() const
Definition: rfc4175.h:166
Opal_RGB24_to_RFC4175RGB()
Definition: rfc4175.h:216
PINDEX GetColsPerPgroup() const
Definition: rfc4175.h:218
DWORD m_extendedSequenceNumber
Definition: rfc4175.h:106
Definition: rfc4175.h:174
bool m_missingPackets
Definition: rfc4175.h:146
PINDEX GetPgroupSize() const
Definition: rfc4175.h:164
bool m_first
Definition: rfc4175.h:145
PINDEX GetPgroupSize() const
Definition: rfc4175.h:179
Definition: vidcodec.h:72