00001
00002
00003
00004
00006
00007 #ifndef _ROKU_INCLUDE_DESCHUTES_LIBRARIES_HDMACHINEX225_VIDEOSCALER_H
00008 #define _ROKU_INCLUDE_DESCHUTES_LIBRARIES_HDMACHINEX225_VIDEOSCALER_H
00009
00010 #include <cascade/graphics/CascadeRect.h>
00011 #include <cascade/graphics/CascadeDims.h>
00012
00014
00015 class VideoScaler
00016 {
00017 public:
00018 VideoScaler();
00019 virtual ~VideoScaler();
00020
00021 public:
00022 typedef enum ScalerColorFormat
00023 {
00024 kColorFormatInvalid = -1,
00025 kColorFormatARGB888 = 0,
00026 kColorFormatARGB4888 = 1,
00027 kColorFormatARGB4444 = 2,
00028 kColorFormatARGB1555 = 3,
00029 kColorFormatRGB565 = 4,
00030 kColorFormatARGB8888_32 = 6,
00031 kColorFormatVYUY422 = 11,
00032 kColorFormatYVYU422 = 12,
00033 kColorFormatYOverV = 13,
00034 kColorFormatVBID_Raw = 20
00035 };
00036
00037 bool Open( ScalerColorFormat format = kColorFormatVYUY422 );
00038
00039
00040
00041
00042 bool Close();
00043
00044
00045
00046
00047 bool IsOpen();
00048
00049
00050 bool SetSourceWindow(const CascadeDims & sourceWindowDims,
00051 u32 & outPitch );
00052
00053
00054
00055
00056
00057
00058 bool SetSourceVRAM( u8 * pVRAMSourceWindow );
00059
00060
00061
00062
00063 bool SetDestWindow(const CascadeRect & destWindowRect,
00064 bool bPreserveAspectRatio);
00065
00066
00067 bool SetCropWindow(const CascadeRect & cropWindowRect);
00068
00069
00070 typedef enum ScalerColorConversionFormat
00071 {
00072 kColorConversionInvalid = 0,
00073 kColorConversionRGB,
00074 kColorConversionYCbCr709,
00075 kColorConversionYCbCr601,
00076 kColorConversionYCbCr240,
00077 kColorConversionYCbCr444
00078 };
00079
00080 bool SetSourceColorConversionFormat( ScalerColorConversionFormat format );
00081
00082
00083 u8 * AllocateScalerVRAM(u32 nBytes);
00084
00085
00086
00087 bool FreeScalerVRAM(u8 * pVRAM);
00088
00089
00090 typedef enum ScalerBlendMode
00091 {
00092 kBlendModeAdd,
00093 kBlendModeMultiply
00094 };
00095
00096 bool Show( ScalerBlendMode mode = kBlendModeMultiply );
00097
00098
00099
00100
00101 bool Hide();
00102
00103
00104 bool IsShowing();
00105
00106
00107 private:
00108 void * m_pScalerInternal;
00109 };
00110
00111 #endif // #ifndef _ROKU_INCLUDE_DESCHUTES_LIBRARIES_HDMACHINEX225_VIDEOSCALER_H
00112
00114
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125