displaydev.h

来自「AMLOGIC DPF source code」· C头文件 代码 · 共 506 行 · 第 1/2 页

H
506
字号
/*******************************************************************
 * 
 *  Copyright C 2005 by Amlogic, Inc. All Rights Reserved.
 *
 *  Description: 
 *
 *  Author: Amlogic Software
 *  Created: Fri Nov 11 01:04:43 2005
 *
 *******************************************************************/

#ifndef DISPLAYDEV_H
#define DISPLAYDEV_H

/****************************************
* displayctl device defines
*
*****************************************/
#define DISPCTLIO_REGISTER      _IO('D',1)
#define DISPCTLIO_UNREGISTER    _IO('D',2)
#define DISPCTLIO_SETMODE       _IO('D', 3)
#define DISPCTLIO_DISABLE       _IO('R',4)
#define DISPCTLIO_ENABLE        _IO('R',5)
#define DISPCTLIO_GETMODE       _IO('R', 6)
#define DISPCTLIO_GETWIDTH      _IO('R', 7)
#define DISPCTLIO_GETHEIGHT     _IO('R', 8)
#define DISPCTLIO_GET_HDFREQ_FUNC    _IO('R', 9)
#define DISPCTLIO_SET_LCD_GAMMA _IO('R', 10)
#define DISPCTLIO_ADJUST_VIDEO  _IO('R', 11)
#define DISPCTLIO_GET_VIDEO_ADJUSTMENT  _IO('R', 12)

#define DISPCTL_MODE_480I	0
#define DISPCTL_MODE_576I	1
#define DISPCTL_MODE_480P	2
#define DISPCTL_MODE_576P	3
#define DISPCTL_MODE_720P	4
#define DISPCTL_MODE_1080I	5
#define DISPCTL_MODE_1080P	6
#define DISPCTL_MODE_VGA	7
#define DISPCTL_MODE_SVGA	8
#define DISPCTL_MODE_XGA	9
#define DISPCTL_MODE_SXGA	10
#define DISPCTL_MODE_LCD    11
#define DISPCTL_MODE_KEEP   12

#define VIDEO_APPVMODE_480_480      0x0
#define VIDEO_APPVMODE_576_576      0x1
#define VIDEO_APPVMODE_576_480      0x2
#define VIDEO_APPVMODE_480_576      0x3
#define VIDEO_APPVMODE_240_480      0x4
#define VIDEO_APPVMODE_288_576      0x5
#define VIDEO_APPVMODE_288_480      0x6
#define VIDEO_APPVMODE_240_576      0x7
#define VIDEO_APPVMODE_480_480_LB   0x8
#define VIDEO_APPVMODE_576_576_LB   0x9
#define VIDEO_APPVMODE_576_480_LB   0xa
#define VIDEO_APPVMODE_480_576_LB   0xb
#define VIDEO_APPVMODE_480_480_PS   0xc
#define VIDEO_APPVMODE_576_576_PS   0xd
#define VIDEO_APPVMODE_576_480_PS   0xe
#define VIDEO_APPVMODE_480_576_PS   0xf

#define VIDEO_APPHMODE_720          0x0
#define VIDEO_APPHMODE_704          0x1
#define VIDEO_APPHMODE_480          0x2
#define VIDEO_APPHMODE_352          0x3
#define VIDEO_APPHMODE_320          0x4

typedef enum {
    VPP_EFFECT_NONE = 0,
    VPP_EFFECT_VEXPAND_TOP,
    VPP_EFFECT_VEXPAND_BOTTOM,
    VPP_EFFECT_VEXPAND_MIDDLE,
    VPP_EFFECT_HEXPAND_LEFT,
    VPP_EFFECT_HEXPAND_RIGHT,
    VPP_EFFECT_HEXPAND_MIDDLE,
    VPP_EFFECT_COLOR_FADE_OUT,
    VPP_EFFECT_COLOR_FADE_IN,
    VPP_EFFECT_END
} vpp_effect_t;

/****************************************
* video device defines
*
*****************************************/
#define VIDEOIO_GETMODE			        _IO('V', 0)
#define VIDEOIO_SETMODE  		        _IO('V', 1)
#define VIDEOIO_FORCESETMODE            _IO('V', 2)
#define VIDEOIO_GETAPPMODE  	        _IO('V', 3)
#define VIDEOIO_SETAPPMODE  	        _IO('V', 4)
#define VIDEOIO_FORCESETAPPMODE         _IO('V', 5)
#define VIDEOIO_GETBUF 			        _IO('R', 6)
#define VIDEOIO_PUTBUF  		        _IO('R', 7)
#define VIDEOIO_CLRBUF  		        _IO('R', 8)
#define VIDEOIO_CLRBUF_KEEPCUR	        _IO('R', 9)
#define VIDEOIO_ATTACH_DECODER 		    _IO('R', 10)
#define VIDEOIO_DETACH_DECODER 		    _IO('R', 11)
#define VIDEOIO_SMOKE   		        _IO('R', 12)
#define VIDEOIO_PAN        		        _IO('R', 13)
#define VIDEOIO_ATTACH_DISPLAYCTL 	    _IO('R', 14)
#define VIDEOIO_DETACH_DISPLAYCTL       _IO('R', 15)
#define VIDEOIO_ENABLE			        _IO('R', 16)
#define VIDEOIO_DISABLE			        _IO('R', 17)
#define VIDEOIO_SETSYNC			        _IO('R', 18)
#define VIDEOIO_GETSYNC			        _IO('R', 19)
#define VIDEOIO_GETQ			        _IO('R', 20)
#define VIDEOIO_PLAYCTRL		        _IO('R', 21)
#define VIDEOIO_INSTALL_AUDIOIF         _IO('R', 22)
#define VIDEOIO_REQUEST_DISPLAY_NOTIFY  _IO('R', 23)
#define VIDEOIO_GETLAST_FRAME           _IO('R', 24)

#if defined(AML_ATHENA)
#define VIDEOIO_SET_POSITION            _IO('R', 25)
#define VIDEOIO_SET_WIDEOPTION          _IO('R', 26)
#define VIDEOIO_GET_WIDEOPTION          _IO('R', 27)
#define VIDEOIO_EFFECT                  _IO('R', 28)
#endif

/****************************************
	Video Command Interface
****************************************/	
#define VIDEO_PLAY					0x0000
#define VIDEO_STEP					0x1000

#define VIDEO_PAN_UP                0
#define VIDEO_PAN_DOWN              1
#define VIDEO_PAN_LEFT              2
#define VIDEO_PAN_RIGHT             3

#define VIDMODE_ROUND_UP 	0
#define VIDMODE_ROUND_DOWN 	1

#define VIDEO_WIDEOPTION_NORMAL     0
#define VIDEO_WIDEOPTION_WIDE       1
#define VIDEO_WIDEOPTION_CINEMAWIDE 2

typedef struct {
	unsigned short outmode;        /* DISPCTL_MODE_480I/576I/480p/576p */
	unsigned short src_width;      /* decoded picture width */
	unsigned short src_height;     /* decoded picture height */
    unsigned short zoom_level;
    unsigned short hdmode;
} video_mode_t;

typedef struct {
	unsigned short outmode;        /* DISPCTL_MODE_480I/576I/480p/576p */
    unsigned short convertion_type_v;
    unsigned short convertion_type_h;
    unsigned short zoom_level;
    unsigned short hdmode;
} video_appmode_t;

typedef int (*video_jpegenc_putdata_func_t)(unsigned char data);

/****************************************
* decoder device defines
*
*****************************************/
#define DECODERIO_START     _IO('R',1)
#define DECODERIO_STOP      _IO('R',2)
#define DECODERIO_PUTBUF    _IO('R',3)
#define DECODERIO_SENDBUF   _IO('R',4)
#define DECODERIO_SYSINFO   _IO('R',5)
#define DECODERIO_DRAW      _IO('R',6)
#define DECODERIO_ROTATE    _IO('R',7)
#define DECODERIO_SETBUFSPEC    _IO('R',8)
#define DECODERIO_SETFRAMEDUR   _IO('R',9)
#define DECODERIO_HOLD          _IO('R',10)
#define DECODERIO_I             _IO('R',11)
#define DECODERIO_SET_DEINTERLACE_LEVEL     _IO('R',12)
#define DECODERIO_SET_DEINTERLACE_PARAMETERS    _IO('R',13)
#define DECODERIO_FEATURES      _IO('R',14)
#define DECODERIO_SETBUF    _IO('R',15)
#define DECODERIO_DECODEINFO    _IO('R',16)
#define DECODERIO_SYNC_BUF  _IO('R',17) 
#define DECODERIO_SET_USER_ASPECT_RATIO _IO('R',18)

/* NULL decoder DECODERIO_DRAW */
typedef enum {
    DRAW_CMD_HLINE = 0,
    DRAW_CMD_VLINE,
    DRAW_CMD_SCALE,
    MAX_DRAW_COMMAND
} draw_command_e;

typedef struct {
    unsigned pY_src;
    unsigned pU_src;
    unsigned pV_src;
    int     src_top;
    int     src_left;
    int     src_width;
    int     src_height;
    int     src_mb_width;
    
    unsigned pY_dst;
    unsigned pU_dst;
    unsigned pV_dst;
    int     dst_top;
    int     dst_left;
    int     dst_width;
    int     dst_height;
    int     dst_mb_width;
} draw_scale_cmd_t;

/* NULL decoder DECODERIO_PUTBUF */
typedef enum {
	SHOW_BOTTOM2TOP = 0,
	SHOW_TOP2BOTTOM,
	SHOW_LEFT2RIGHT,
	SHOW_RIGHT2LEFT,
	SHOW_TOPLEFT2BOTTOMRIGHT,
	SHOW_TOPRIGHT2BOTTOMLEFT,
	SHOW_BOTTOMLEFT2TOPRIGHT,
	SHOW_BOTTOMRIGHT2TOPLEFT,
	SHOW_HORDOORCLOSE,
	SHOW_HORDOOROPEN,
	SHOW_HORINTERCROSS,
	SHOW_VERINTERCROSS,
	SHOW_FADE_OUT_FADE_IN,
    SHOW_VPP_EFFECT_VEXPAND_TOP,
    SHOW_VPP_EFFECT_VEXPAND_BOTTOM,
    SHOW_VPP_EFFECT_VEXPAND_MIDDLE,
    SHOW_VPP_EFFECT_HEXPAND_LEFT,
    SHOW_VPP_EFFECT_HEXPAND_RIGHT,
    SHOW_VPP_EFFECT_HEXPAND_MIDDLE,
    SHOW_VPP_EFFECT_COLOR_FADING,
	MAX_SHOW_COMMAND
} show_command_e;

typedef struct{
    unsigned type;
    unsigned data0;
    unsigned data1;
    unsigned data2;
    unsigned data3;
} decode_start_arg_t;

/* type of DECODERIO_START */
#define DECODE_ONE    		0x1
#define I_ONLY        		0x2 
#define VMIX_COMP     		0x4
#define BYPASS_DEINTERLACE	0x8
#define SET_PIC_SIZE            0x10

#define PLAY_RATE_15        6400
#define PLAY_RATE_23_976    4000//8008       
#define PLAY_RATE_24        4000
#define PLAY_RATE_25        3840        
#define PLAY_RATE_29_97     3200//6406
#define PLAY_RATE_30        3200        
#define PLAY_RATE_50        1920        
#define PLAY_RATE_59_94     1600//3203     

⌨️ 快捷键说明

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