33 #ifndef PTLIB_CONVERT_H
34 #define PTLIB_CONVERT_H
42 #include <ptbuildopts.h>
61 const PString & srcColourFormat,
62 const PString & destColourFormat
218 const BYTE * srcFrameBuffer,
219 BYTE * dstFrameBuffer,
220 PINDEX * bytesReturned = NULL
224 const BYTE * srcFrameBuffer,
225 BYTE * dstFrameBuffer,
227 PINDEX * bytesReturned = NULL
248 PINDEX * bytesReturned = NULL,
249 PBoolean noIntermediateFrame =
false
262 const PString & srcColourFormat,
263 const PString & destColourFormat,
300 unsigned r,
unsigned g,
unsigned b,
301 unsigned & y,
unsigned & u,
unsigned & v
304 unsigned r,
unsigned g,
unsigned b,
305 BYTE & y, BYTE & u, BYTE & v
312 unsigned srcX,
unsigned srcY,
unsigned srcWidth,
unsigned srcHeight,
314 unsigned dstX,
unsigned dstY,
unsigned dstWidth,
unsigned dstHeight,
320 unsigned x,
unsigned y,
int width,
int height,
321 unsigned frameWidth,
unsigned frameHeight, BYTE * yuv,
322 unsigned r,
unsigned g,
unsigned b
362 #define PCOLOUR_CONVERTER2(cls,ancestor,srcFmt,dstFmt) \
363 class cls : public ancestor { \
365 cls(const PVideoFrameInfo & src, const PVideoFrameInfo & dst) \
366 : ancestor(src, dst) { } \
367 virtual PBoolean Convert(const BYTE *, BYTE *, PINDEX * = NULL); \
368 virtual PBoolean Convert(const BYTE *, BYTE *, unsigned int , PINDEX * = NULL); \
370 static class cls##_Registration : public PColourConverterRegistration { \
371 public: cls##_Registration() \
372 : PColourConverterRegistration(srcFmt,dstFmt) { } \
373 protected: virtual PColourConverter * Create(const PVideoFrameInfo & src, const PVideoFrameInfo & dst) const; \
374 } p_##cls##_registration_instance; \
375 PColourConverter * cls##_Registration::Create(const PVideoFrameInfo & src, const PVideoFrameInfo & dst) const \
376 { return new cls(src, dst); } \
377 PBoolean cls::Convert(const BYTE *srcFrameBuffer, BYTE *dstFrameBuffer, unsigned int p_srcFrameBytes, PINDEX * bytesReturned) \
378 { srcFrameBytes = p_srcFrameBytes;return Convert(srcFrameBuffer, dstFrameBuffer, bytesReturned); } \
379 PBoolean cls::Convert(const BYTE *srcFrameBuffer, BYTE *dstFrameBuffer, PINDEX * bytesReturned)
387 #define PCOLOUR_CONVERTER(cls,src,dst) \
388 PCOLOUR_CONVERTER2(cls,PColourConverter,src,dst)
403 virtual PBoolean Convert(
const BYTE *, BYTE *,
unsigned int , PINDEX * = NULL);
427 #define PSYNONYM_COLOUR_CONVERTER(from,to) \
428 static PSynonymColourRegistration p_##from##_##to##_registration_instance(#from,#to)
433 #endif // PTLIB_CONVERT_H