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

📄 vpp.h

📁 Sunplus 8202S source code.
💻 H
字号:
#ifndef	__VPP_H
#define	__VPP_H

#ifdef DVD728
#include "mytypes.h"
#endif

//
// setVPP_Display()
// parameter
//
#define DISPLAY_NORMAL     (0)
#define DISPLAY_LETTERBOX  (0)
#define DISPLAY_PANSCAN    (1)
#define DISPLAY_ZOOM_1_2   (2)
#define DISPLAY_ZOOM_1_6   (3)
#define DISPLAY_ZOOM_2_0   (4)
#define DISPLAY_ZOOM_3_0   (5)
#define DISPLAY_ZOOM_4_0   (6)
#define DISPLAY_ZOOM_MAX   DISPLAY_ZOOM_4_0

#ifdef TWELVE_ZOOMFACTORS//axel2004/5/3 12:35pm
#define	VPP_ZOOM0	0
#define	VPP_ZOOM1	1
#define	VPP_ZOOM2	2
#define	VPP_ZOOM3	3
#define	VPP_ZOOM4	4
#define	VPP_ZOOM5	5
#define	VPP_ZOOM6	6
#define	VPP_ZOOM7	7
#define	VPP_ZOOM8	8
#define	VPP_ZOOM9	9
#define	VPP_ZOOMOUT1	10
#define	VPP_ZOOMOUT2	11
#define VPP_ZOOMOUT3    12
#define	VPP_ZOOM_MAX	VPP_ZOOMOUT3
#else
#define	VPP_ZOOM0	0
#define	VPP_ZOOM1	1
#define	VPP_ZOOM2	2
#define	VPP_ZOOM3	3
#define	VPP_ZOOM4	4
#define	VPP_ZOOM5	5
#define	VPP_ZOOMOUT1	6
#define	VPP_ZOOMOUT2	7
#define VPP_ZOOMOUT3    8
#define	VPP_ZOOM_MAX	VPP_ZOOMOUT3
#endif//#ifdef TWELVE_ZOOMFACTORS
// Source Aspect Ratio
#define ASPECT_4_3      		(0)
#define ASPECT_16_9     		(1)
#define ASPECT_ALMOST_FULL    (2)

// pixel aspect ratio: used for MPEG-4
#define PIXEL_ASPECT_FORBIDDEN	0	// forbidden
#define PIXEL_ASPECT_SQUARE		1	// 1:1		(square pixel)
#define PIXEL_ASPECT_PAL_4_3		2	// 12:11	(625 type for 4:3 picture)
#define PIXEL_ASPECT_NTSC_4_3		3	// 10:11	(525 type for 4:3 picture)
#define PIXEL_ASPECT_PAL_16_9		4	// 16:11	(625 type for 16:9 picture)
#define PIXEL_ASPECT_NTSC_16_9	5	// 40:33	(525 type for 16:9 picture)
#define PIXEL_ASPECT_ALMOST_FULL	6	// 40:33	(525 type for 16:9 picture)
#define PIXEL_ASPECT_EXTENDED		15	// extended parameters from MPEG-4

#define	VPP_EXPANSION_FIXED	0
#define	VPP_EXPANSION_ASPECT	1
#define	VPP_EXPANSION_FREE	2

#define	OFFSET_CENTER	    0
#define	OFFSET_ZERO         1
#define	OFFSET_USER         2
#define	OFFSET_USER_CENTER  3

void            setVPP_OffsetMode(int);
void            setVPP_OffsetX(int);
void            setVPP_OffsetY(int);

#define	VPP_MATRIX_ENTRY(src,aspect,tv,zoom) \
	(((src)<<5) | ((aspect)<<4) | ((tv)<<3) | (zoom))

//
// Source Resoultion
//
#define VPP_RES_720x480    (0)
#define VPP_RES_720x576    (1)
#define VPP_RES_480x480    (2)
#define VPP_RES_480x576    (3)
#define VPP_RES_352x480    (4)
#define VPP_RES_352x576    (5)
#define VPP_RES_352x240    (6)
#define VPP_RES_352x288    (7)

#define	is_res_pal(res)		((res)&0x01)

//
#define	VPP_RES_PAL	(0x01)
#define	VPP_RES_720	(0x00)
#define	VPP_RES_480	(0x02)
#define	VPP_RES_352	(0x04)


void		setVPP_ParamInit(int source_res, int source_aspect, int tv);

void		setVPP_SourceRes(int source_res);
void		setVPP_PictureSize(int w, int h);
unsigned        setVPP_PictureWidth(void);
unsigned        setVPP_PictureHeight(void);

//
// tv format
void		setVPP_TVformat(int);           // 0:525-line system,
                                                // 1:625-line system
// tv aspect-ratio
void            set_vpp_tv_aspect(int);         // 0:4:3, 1:16:9

// video-source aspect-ratio
void            set_vpp_src_aspect(int);        // 0:4:3, 1:16:9

// vpp on/off
void		setVPP_VideoOn(void);
void		setVPP_VideoOff(void);

void		setVPP_chroma_vint_field(void);
void		setVPP_chroma_vint_frame(void);
void		setVPP_luma_vint_field(void);
void		setVPP_luma_vint_frame(void);

void		setVPP_Display(int mode);
void		setVPP_DoIt(void);
void		setVPP_DoItNow(void);
void		setVPP_ExpansionMode(int exp_mode);

void		fieldintr_vpp(int field, int use_pixel_aspect_ratio);

void		setVPP_YOffset(int yoff);

int		getVPP_PictureWidth();
int		getVPP_PictureHeight();

int		getVPP_HOffset();
int		getVPP_VOffset();

void		vpp_reset_framebuf_state(void);

void		setVPP_EnableVideo();
void		setVPP_DisableVideoFields(int n);
void 		update_dip_config(void);
#define		setVPP_DisableVideo()	setVPP_DisableVideoFields(-1)

void		init_vpp(void);

extern	UINT8	pic_offsetx_max;
extern	UINT8	pic_offsety_max;

#define	getVPP_XOffsetMax()	pic_offsetx_max
#define	getVPP_YOffsetMax()	pic_offsety_max


//
// vpp register structure
//
typedef struct
{
   INT16	pic_w;		// 0
   INT16	pic_h;		// 2

   INT16	dis_x_start;	// 4
   INT16	dis_y_start;	// 6
   INT16	dis_x_size ;	// 8
   INT16	dis_y_size ;	// a

#ifdef DVD728
   UINT32	vfactor;	// c
   UINT16	hfactor;	// e

   DS_CFG	vpp_cfg;		// 10
   DS_CFG	ds_field_cfg;	// 12
   DS_CFG	dip_cfg;		// 14
   DS_CFG	dip_param;		// 16
#else
   UINT16	vfactor;	// c
   UINT16	hfactor;	// e

   UINT16	field_exchange;	// 10	vpp parameters
#endif

   UINT16	y_offset;	// 12
   UINT16	cbcr_offset;	// 14	[15:8] cb  [7:0] cr

#ifdef DVD728
   UINT16	line_offset;	// 1c
   UINT16	pix_offset;	// 1d
#else
   UINT8	line_offset;	// 15
   UINT8	pix_offset;	// 16
#endif
} t_vpp_reg;

extern	t_vpp_reg	vpp_reg;

//
// TV format and aspect-ratio
extern  INT8            vppsetup_tv_aspect;
extern	INT8		vppsetup_tv_system;
#define getVPP_TVsystem()	(vppsetup_tv_system)

//
// Source format and aspect-ratio
extern  INT8            vppsetup_src_aspect;

extern UINT8 	Ksetup_jpeg_h_aspect;
extern UINT8 	Ksetup_jpeg_v_aspect;

INT8    dec_field_dip_cntr;


//
// display size
void    set_vpp_disp_size(int w, int h);
int     get_vpp_disp_width(void);
int     get_vpp_disp_height(void);


//
// OLD
// for vpp.c compatible
void vpp_set_pic(int w, int h);
#define VPP_AUTOEXP         (1<<0)      // expansion or not
#define VPP_ASPECT_RATIO    (1<<1)      // keeping aspect ratio
#define VPP_CENTERED        (1<<2)      // put the picture in center

#endif/*__VPP_H*/

⌨️ 快捷键说明

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