📄 pvrvadd.h
字号:
M24VAError_IllegalFunctionCall,
} M24VAError;
#ifdef IMG_M24VAe
/* IZZ mode */
typedef enum _M24VA_IZZMODE_
{
M24VA_ZigZagScanOrder = 0,
M24VA_AltVertScanOrder = 1,
M24VA_AltHorzScanOrder = 2,
M24VA_RasterScanOrder = 3,
} M24VA_IZZMODE;
#endif /* #ifdef IMG_M24VAe */
/* Destination formations of the colour space convertor */
typedef enum
{
M24VA_SURF_FORMAT_420,
M24VA_SURF_FORMAT_422,
M24VA_SURF_FORMAT_RGB24,
} M24VA_SURF_FORMAT;
/* Configuration of M24VA core */
#define M24VA_CONFIG_FORMAT_CONVERSION_SUPPORTED (0x1)
#define M24VA_CONFIG_IZZ_IDCT_SUPPORTED (0x2)
/*****************************************************************************/
/********************** M24VA API Function Prototypes ************************/
/*****************************************************************************/
//Frame Management (Stream level)
M24VAError PVRAPI M24VA_FrameDimensions(IMG_UINT32 ui32Height, IMG_UINT32 ui32Width);
M24VAError PVRAPI M24VA_FrameAllocate(SMSurface *phFrames, IMG_UINT32 ui32FrameCnt);
M24VAError PVRAPI M24VA_FrameFree(SMSurface *phFrames, IMG_UINT32 ui32FrameCnt);
//Frame Control (Per Frame)
M24VAError PVRAPI M24VA_BeginFrame(SMSurface hOutputSurface, IMG_BOOL bEnableIDCT);
M24VAError PVRAPI M24VA_EndFrame(IMG_BOOL bSyncHardware);
M24VAError PVRAPI M24VA_SetReferenceFrameAddress(IMG_UINT32 ui32FrameNo, SMSurface hSurface);
//Frame Access
M24VAError PVRAPI M24VA_FrameBeginAccess(SMSurface hSurface,
IMG_UINT8 **ppuint8FrameAddress,
IMG_UINT32 *pui32FrameStride,
IMG_BOOL bSyncHardware);
M24VAError PVRAPI M24VA_FrameEndAccess(SMSurface hSurface);
//Frame decode
#ifdef IMG_M24VAe
M24VAError PVRAPI M24VA_WriteIZZData(IMG_INT32 i32Coeff, IMG_UINT32 ui32Index, IMG_BOOL bEOB);
M24VAError PVRAPI M24VA_WriteIZZBlock(IMG_INT32 *pi32Data, IMG_UINT32 ui32Count);
M24VAError PVRAPI M24VA_SetIZZMode(M24VA_IZZMODE eMode);
#endif /* #ifdef IMG_M24VAe */
M24VAError PVRAPI M24VA_WriteResidualDifferenceData(IMG_INT16 *pi16Data, IMG_UINT32 ui32Count);
M24VAError PVRAPI M24VA_WriteMCCmdData(IMG_UINT32 ui32Data);
M24VAError PVRAPI M24VA_WriteMCCmdBlock(IMG_UINT32 *pui32Data, IMG_UINT32 ui32Count);
//Frame format conversion*/
M24VAError PVRAPI M24VA_FCFrameAllocate(SMSurface *phFrame, M24VA_SURF_FORMAT eFormat);
M24VAError PVRAPI M24VA_FrameConvert(SMSurface hDestSurface, SMSurface hSourSurface);
M24VAError PVRAPI M24VA_MakeSMHandle(SMSurface *phSurface,
LPDIRECTDRAWSURFACE4 pDDSurface);
M24VAError PVRAPI M24VA_FreeSMHandle(SMSurface hSurface);
// General, defined in all API's
M24VAError PVRAPI M24VA_Initialise(IMG_PVOID pvParam);
M24VAError PVRAPI M24VA_Deinitialise();
M24VAError PVRAPI M24VA_Configuration(IMG_UINT32 *pui32Config);
M24VAError PVRAPI M24VA_Reset();
M24VAError PVRAPI M24VA_FlushHardware(IMG_BOOL bMCUnit, IMG_BOOL bFCUnit);
/******************************************** Internal debug only functions */
IMG_BOOL PVRAPI M24VA_SimScriptOpen(char *pszFileName, int Wipe);
void PVRAPI M24VA_SimScriptClose();
void PVRAPI M24VA_SimScriptFlush();
void PVRAPI M24VA_SimScriptLog(char *str,...);
void PVRAPI M24VA_SetScriptMode(IMG_UINT32 ui32ScriptMode);
void PVRAPI M24VA_GetStats(IMG_UINT32 *pui32IDCTAccessCount,
IMG_UINT32 *pui32RegAccessCount,
IMG_UINT32 *pui32CmdCount);
void PVRAPI M24VA_GetSlavePortStats(IMG_UINT32 ui32SlavePortType,
IMG_UINT32 *pui32CmdCount,
IMG_UINT32 *pui32CmdPolls,
IMG_UINT32 *pui32CmdTrys,
IMG_UINT32 *pui32CmdOverflows);
/*****************************************************************************/
/******************************* PDP Overlay Defines *************************/
/*****************************************************************************/
typedef enum {
VDISPError_OK = 0,
VDISPError_GenericError,
VDISPError_InvalidParameter,
VDISPError_IncorrectSurfaceFormat,
VDISPError_OutOfMemory,
VDISPError_HardwareNotAvailable,
VDISPError_NotInitialised,
VDISPError_IllegalFunctionCall,
} VDISPError;
typedef struct _VDISP_Tag_CSCCoeffs
{
IMG_UINT16 ui16RyCoeff;
IMG_UINT16 ui16RuCoeff;
IMG_UINT16 ui16RvCoeff;
IMG_UINT16 ui16GyCoeff;
IMG_UINT16 ui16GuCoeff;
IMG_UINT16 ui16GvCoeff;
IMG_UINT16 ui16ByCoeff;
IMG_UINT16 ui16BuCoeff;
IMG_UINT16 ui16BvCoeff;
}VDISP_CSCCoeffs, *PVDISP_CSCCoeffs;
typedef enum _VDISP_DEINTERLACE_
{
VDISP_NONE=0,
VDISP_WEAVE=1,
VDISP_BOB_ODD,
VDISP_BOB_EVEN,
VDISP_BOB_EVEN_NONINTERLEAVED
} VDISP_DEINTERLACE,*PVDISP_DEINTERLACE;
#define VDISP_OVERLAYATTRIB_VALID_DSTPOSITION 0x0001
#define VDISP_OVERLAYATTRIB_VALID_SRCPOSITION 0x0002
#define VDISP_OVERLAYATTRIB_VALID_CKEY 0x0004
#define VDISP_OVERLAYATTRIB_VALID_VISIBILITY 0x0010
#define VDISP_OVERLAYATTRIB_VALID_ROTATION 0x0020
#define VDISP_OVERLAYATTRIB_VALID_VERIFY 0x8000 // Can we create an overlay?
typedef struct _VDISP_OVERLAYATTRIBS_
{
IMG_UINT16 ui16ValidFlags; // Flags to say which members of this structure are valid
IMG_INT16 i16Top; // Signed position of top of overlay (overlay starts on this line)
IMG_INT16 i16Left; // Signed position of left of overlay (overlay starts on this column)
IMG_INT16 i16Bottom; // Signed position of bottom of overlay (line above this one is last line of overlay)
IMG_INT16 i16Right; // Signed position of right overlay (pixel before this one is last line of overlay)
IMG_UINT16 ui16SrcX1; // SrcX1 position of overlay data within buffer
IMG_UINT16 ui16SrcY1; // SrcY1 position of overlay data within buffer
IMG_UINT16 ui16SrcX2; // SrcX2 position of overlay data within buffer
IMG_UINT16 ui16SrcY2; // SrcY2 position of overlay data within buffer
IMG_BOOL bCKeyOn; // Turn on/off colorkey;
IMG_UINT32 ui32CKeyValue; // ColorKey value
IMG_BOOL bOverlayOn; // Turn the overlay on/off
IMG_BOOL bDisableRotation; // force video to be displayed unrotated for extra performance
}VDISP_OVERLAYATTRIBS,*PVDISP_OVERLAYATTRIBS;
typedef struct _VDISP_OVERLAYADDRESS_
{
IMG_UINT32 ui32YAddress; // Position of Y Plane
IMG_UINT32 ui32UAddress; // Position of U Plane
IMG_UINT32 ui32VAddress; // Position of V Plane
}VDISP_OVERLAYADDRESS,*PVDISP_OVERLAYADDRESS;
/*****************************************************************************/
/**************** PDP Overlay API Function Prototypes ************************/
/*****************************************************************************/
VDISPError PVRAPI VDISP_Initialise(IMG_PVOID pvParam);
VDISPError PVRAPI VDISP_Deinitialise();
VDISPError PVRAPI VDISP_OverlaySetAttributes(PVDISP_OVERLAYATTRIBS psOverlayAttributes,
SMSurface hSurface);
VDISPError PVRAPI VDISP_OverlayFlipSurface(SMSurface hSurfaceFlipTo, VDISP_DEINTERLACE eDeinterlace);
VDISPError PVRAPI VDISP_OverlayContrast(IMG_UINT32 ui32Contrast);
VDISPError PVRAPI VDISP_OverlayGamma(IMG_UINT32 ui32Gamma);
VDISPError PVRAPI VDISP_OverlayBrightness(IMG_UINT32 ui32Brightness);
VDISPError PVRAPI VDISP_OverlaySetColorspaceConversion(PVDISP_CSCCoeffs psCoeffs);
VDISPError PVRAPI VDISP_GetOverlayAddress(SMSurface hSurface,PVDISP_OVERLAYADDRESS pOverlayAddress);
/*****************************************************************************/
/******************* Implementation specific defines *************************/
/*****************************************************************************/
#ifdef SUPPORT_MARATHON_DEVICE
typedef struct
{
IMG_UINT32 ui32Reserved; /* Reserved for internal use only, must be set to zero */
} VADD_PLATFORM_INIT, *PVADD_PLATFORM_INIT;
#endif /* SUPPORT_MARATHON_DEVICE */
#endif /* _PVRVADD_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -