PTLib
Version 2.14.3
|
Define synonym colour format converter. More...
#include <vconvert.h>
Public Member Functions | |
PSynonymColour (const PVideoFrameInfo &src, const PVideoFrameInfo &dst) | |
virtual PBoolean | Convert (const BYTE *, BYTE *, PINDEX *=NULL) |
Convert from one colour format to another. More... | |
![]() | |
PColourConverter (const PString &srcColourFormat, const PString &dstColourFormat, unsigned width, unsigned height) | |
Create a new converter. More... | |
PColourConverter (const PVideoFrameInfo &src, const PVideoFrameInfo &dst) | |
virtual void | PrintOn (ostream &strm) const |
Print description of converter. More... | |
bool | GetVFlipState () const |
Get the video conversion vertical flip state. More... | |
void | SetVFlipState (bool vFlipState) |
Set the video conversion vertical flip state. More... | |
virtual PBoolean | SetFrameSize (unsigned width, unsigned height) |
Set the frame size to be used. More... | |
virtual PBoolean | SetSrcFrameInfo (const PVideoFrameInfo &info) |
Set the source frame info to be used. More... | |
virtual PBoolean | SetDstFrameInfo (const PVideoFrameInfo &info) |
Set the destination frame info to be used. More... | |
virtual void | GetSrcFrameInfo (PVideoFrameInfo &info) |
Get the source frame info to be used. More... | |
virtual void | GetDstFrameInfo (PVideoFrameInfo &info) |
Get the destination frame info to be used. More... | |
virtual PBoolean | SetSrcFrameSize (unsigned width, unsigned height) |
Set the source frame size to be used. More... | |
virtual PBoolean | SetDstFrameSize (unsigned width, unsigned height) |
Set the destination frame size to be used. More... | |
virtual PBoolean | SetDstFrameSize (unsigned width, unsigned height, PBoolean bScale) |
const PString & | GetSrcColourFormat () const |
Get the source colour format. More... | |
const PString & | GetDstColourFormat () const |
Get the destination colour format. More... | |
PINDEX | GetMaxSrcFrameBytes () const |
Get the maximum frame size in bytes for source frames. More... | |
void | SetSrcFrameBytes (PINDEX frameBytes) |
Set the actual frame size in bytes for source frames. More... | |
PINDEX | GetMaxDstFrameBytes () const |
Get the maximum frame size in bytes for destination frames. More... | |
virtual PBoolean | ConvertInPlace (BYTE *frameBuffer, PINDEX *bytesReturned=NULL, PBoolean noIntermediateFrame=false) |
Convert from one colour format to another. More... | |
PBoolean | GetDstFrameSize (unsigned &width, unsigned &height) const |
Get the output frame size. More... | |
PBoolean | GetSrcFrameSize (unsigned &width, unsigned &height) const |
Get the input frame size. More... | |
unsigned | GetSrcFrameWidth () const |
unsigned | GetSrcFrameHeight () const |
unsigned | GetDstFrameWidth () const |
unsigned | GetDstFrameHeight () const |
void | SetResizeMode (PVideoFrameInfo::ResizeMode mode) |
Set the resize mode to be used. More... | |
PVideoFrameInfo::ResizeMode | GetResizeMode () const |
Get the resize mode to be used. More... | |
![]() | |
unsigned | GetTraceContextIdentifier () const |
Get PTRACE context identifier. More... | |
void | SetTraceContextIdentifier (unsigned id) |
void | GetTraceContextIdentifier (PObject &obj) |
void | GetTraceContextIdentifier (PObject *obj) |
void | SetTraceContextIdentifier (const PObject &obj) |
void | SetTraceContextIdentifier (const PObject *obj) |
virtual | ~PObject () |
virtual PObject * | Clone () const |
Create a copy of the class on the heap. More... | |
template<class CLS > | |
CLS * | CloneAs () const |
As for Clone() but converts to specified type. More... | |
virtual PINDEX | HashFunction () const |
This function yields a hash value required by the PDictionary class. More... | |
virtual const char * | GetClass (unsigned ancestor=0) const |
Get the current dynamic type of the object instance. More... | |
PBoolean | IsClass (const char *cls) const |
virtual PBoolean | InternalIsDescendant (const char *clsName) const |
Determine if the dynamic type of the current instance is a descendent of the specified class. More... | |
__inline const PObject * | PTraceObjectInstance () const |
virtual Comparison | Compare (const PObject &obj) const |
Compare the two objects and return their relative rank. More... | |
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const |
Determine the byte wise comparison of two objects. More... | |
bool | operator== (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator!= (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator< (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator> (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator<= (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator>= (const PObject &obj) const |
Compare the two objects. More... | |
virtual void | PrintOn (ostream &strm) const |
Output the contents of the object to the stream. More... | |
virtual void | ReadFrom (istream &strm) |
Input the contents of the object from the stream. More... | |
Additional Inherited Members | |
![]() | |
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 } |
Result of the comparison operation performed by the Compare() function. More... | |
![]() | |
static PColourConverter * | Create (const PVideoFrameInfo &src, const PVideoFrameInfo &dst) |
Create an instance of a colour conversion function. More... | |
static PColourConverter * | Create (const PString &srcColourFormat, const PString &destColourFormat, unsigned width, unsigned height) |
static void | RGBtoYUV (unsigned r, unsigned g, unsigned b, unsigned &y, unsigned &u, unsigned &v) |
Convert RGB to YUV. More... | |
static void | RGBtoYUV (unsigned r, unsigned g, unsigned b, BYTE &y, BYTE &u, BYTE &v) |
static bool | CopyYUV420P (unsigned srcX, unsigned srcY, unsigned srcWidth, unsigned srcHeight, unsigned srcFrameWidth, unsigned srcFrameHeight, const BYTE *srcYUV, unsigned dstX, unsigned dstY, unsigned dstWidth, unsigned dstHeight, unsigned dstFrameWidth, unsigned dstFrameHeight, BYTE *dstYUV, PVideoFrameInfo::ResizeMode resizeMode) |
Copy a section of the source frame to a section of the destination frame with scaling/cropping as required. More... | |
static bool | RotateYUV420P (int angle, unsigned width, unsigned height, BYTE *srcYUV, BYTE *dstYUV=NULL) |
Rotate the video buffer image. More... | |
static bool | FillYUV420P (unsigned x, unsigned y, unsigned width, unsigned height, unsigned frameWidth, unsigned frameHeight, BYTE *yuv, unsigned r, unsigned g, unsigned b) |
Fill a rectangle of the video buffer with the specified colour. More... | |
![]() | |
void | Construct (const PVideoFrameInfo &src, const PVideoFrameInfo &dst) |
P_REMOVE_VIRTUAL (PBoolean, Convert(const BYTE *, BYTE *, unsigned, PINDEX *), false) | |
![]() | |
PString | m_srcColourFormat |
PString | m_dstColourFormat |
unsigned | m_srcFrameWidth |
unsigned | m_srcFrameHeight |
PINDEX | m_srcFrameBytes |
unsigned | m_dstFrameWidth |
unsigned | m_dstFrameHeight |
PINDEX | m_dstFrameBytes |
PVideoFrameInfo::ResizeMode | m_resizeMode |
bool | m_verticalFlip |
PBYTEArray | m_intermediateFrameStore |
![]() |
Define synonym colour format converter.
This is a class that defines for which no conversion is required between the specified colour format names.
|
inline |
|
virtual |
Convert from one colour format to another.
This version will copy the data from one frame buffer to another. An implementation of this function should allow for the case of where srcFrameBuffer and dstFrameBuffer are the same, if the conversion algorithm allows for that to occur without an intermediate frame store.
The function should return false if srcFrameBuffer and dstFrameBuffer are the same and that form pf conversion is not allowed
Implements PColourConverter.