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

📄 osd.h

📁 Zoran V966 DVD 解码 Soc芯片的源程序
💻 H
字号:
/**********************************************************************************
 *  Copyright (c) 2004 ZORAN Corporation, All Rights Reserved
 *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
 *
 *  File: $Workfile: osd.h $
 *
 * Description:
 * ============
 * Video Processing Unit(VPU) API
 * 
 * Log:
 * ====
 * $Revision:  $
 * Last Modified by $Author:  $ at $Modtime:  $ 
 **********************************************************************************
 * Updates:
 **********************************************************************************
 * $Log: $
 * 
 * 
 *********************************************************************************/
#include "Config.h"		/* Global Configuration - do not remove! */


#ifndef _OSD_H_
#define _OSD_H_


/*** Include Files ***************************************************************/
#include "Include\sysdefs.h"


/*** Defines *********************************************************************/
#define OSD_LL_COLOR_PALETTE_0		0
#define OSD_LL_COLOR_PALETTE_1		1

#define	OSD_TRANSP_VIDEO_ONLY       0x00		//OSD-0 data-1
#define OSD_TRANSP_QUARTER_VIDEO    0x02		//OSD-1/4 data-3/4
#define OSD_TRANSP_HALF_VIDEO       0x04		//OSD-1/2 data-1/2 
#define OSD_TRANSP_OSD_ONLY         0x07		//OSD-1 data-0 


/*** Typedefs ********************************************************************/
typedef BYTE OSD_LL_COLOR_PALETTE_TYPE;


typedef BYTE OSD_LL_TRANSPARENCY_VALUE;


typedef enum
{
	OSD_LL_DOT_WIDTH_SINGLE	= 0x0000,
	OSD_LL_DOT_WIDTH_PAIR	= 0x1000,
	OSD_LL_DOT_WIDTH_MASK	= 0x1000	
} OSD_LL_DOT_WIDTH;


typedef enum
{
	OSD_LL_FORMAT_1BIT	= 0x0000,
	OSD_LL_FORMAT_2BIT	= 0x0400,
	OSD_LL_FORMAT_4BIT	= 0x0800,
	OSD_LL_FORMAT_8BIT	= 0x0c00,
	OSD_LL_FORMAT_MASK	= 0x0c00	
} OSD_LL_FORMAT;


typedef enum
{
	OSD_LL_NORMAL_MODE	= 0x0000,
	OSD_LL_SCALING_MODE	= 0x2000,
	OSD_LL_MODE_MASK	= 0x2000	
} OSD_LL_MODE;


typedef enum 
{
    OSD_LL_TRANSP_VIDEO_ONLY       = 0x0000,
    OSD_LL_TRANSP_QUARTER_VIDEO    = 0x0100,
    OSD_LL_TRANSP_HALF_VIDEO       = 0x0200,
    OSD_LL_TRANSP_OSD_ONLY         = 0x0300,
    OSD_LL_TRANSP_MASK             = 0x0300
} OSD_LL_TRANSP_VALUE;


typedef enum
{
	OSD_LL_STATUS_OFF,
	OSD_LL_STATUS_START,
	OSD_LL_STATUS_DISPLAY
} OSD_LL_STATUS;

typedef enum 
{
    OSD_LL_SWITCH_OFF  = 0x0,
    OSD_LL_SWITCH_ON   = 0x1,
    OSD_LL_SWITCH_MASK = 0x1   
} OSD_LL_SWITCH;


typedef enum 
{
    X_1PIX_Y_1PIX		= 0x00,		/* Every pix is really 1 pixel on the OSD */
    X_2PIX_Y_1PIX		= 0x01,		/* Pixels are stretched in X */
    X_1PIX_Y_2PIX		= 0x02,		/* Pixels are stretched in Y */
    X_2PIX_Y_2PIX		= 0x03,		/* Every pix is stretched in X and Y (2 pixs on the OSD) */
	MASK_1PLANE			= 0xFD		/* Mask for 1 planes, mask the bit Y pixel. */
} OSD_LL_PIXEL_RESOLUTION;


typedef struct 
{
	OSD_LL_TRANSPARENCY_VALUE	t;
	BYTE						y;
	BYTE						u;
	BYTE						v;
} OSD_Palette; 


typedef struct 
{
	OSD_LL_STATUS		status;
	OSD_LL_SWITCH		mode;
	UINT32				firstPlaneAddr;
	UINT32				secondPlaneAddr;
	UINT32				firstPlaneEndAddr;
	UINT32				secondPlaneEndAddr;
} OSD_ll_Info; 

 
/*** Public Functions ************************************************************/
void OSD_LL_SetLayout(void);
void OSD_LL_SetPalette(CONST OSD_Palette *posdPalette ,UINT8	cMaxColorNum, UINT8 cPaletteAddr);
void OSD_LL_SetControl(OSD_LL_PIXEL_RESOLUTION pix_res);
void OSD_LL_Switch(OSD_LL_SWITCH on_off);
void OSD_LL_SetMemoryRange(UINT32 start_address, UINT32 plane_offset,UINT32 bufZiseInWords,BYTE isProg);
void OSD_LL_SetDisplayRange(UINT16 first_line, UINT16 last_line, UINT16 start_x,BYTE isProg);
void OSD_LL_SetStatus(OSD_LL_STATUS osd_status);
void OSD_LL_SetDotWidth(OSD_LL_DOT_WIDTH dot_width);
void OSD_LL_SetFormat(OSD_LL_FORMAT format);
void OSD_LL_SetMode(OSD_LL_MODE mode);


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -