⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pvrvadd.h

📁 Lido PXA270平台开发板的最新BSP,包括源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
	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 + -