mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Amlogic fix
fix ge2d mode added ge2d single/combined ioctl call speed up imageresampler speed up amvideocap0 mode added config to choose if amvideocap0 or ge2d grabber should be used
This commit is contained in:
@@ -40,29 +40,15 @@ GE2D_FORMAT_S24_RGB
|
||||
#define AMVIDEO_EXT_CURRENT_VIDEOFRAME_GET_GE2D_FORMAT _IOR((AMVIDEO_MAGIC), 0x03, uint32_t)
|
||||
#define AMVIDEO_EXT_CURRENT_VIDEOFRAME_GET_SIZE _IOR((AMVIDEO_MAGIC), 0x04, uint64_t)
|
||||
#define AMVIDEO_EXT_CURRENT_VIDEOFRAME_GET_CANVAS0ADDR _IOR((AMVIDEO_MAGIC), 0x05, uint32_t)
|
||||
#define AMVIDEO_EXT_CURRENT_VIDEOFRAME_GET_DATA _IOR((AMVIDEO_MAGIC), 0x06, struct amvideo_grabber_data)
|
||||
|
||||
// GE2D commands
|
||||
#define GE2D_IOC_MAGIC 'G'
|
||||
#define GE2D_STRETCHBLIT_NOALPHA 0x4702
|
||||
#define GE2D_CONFIG_EX 0x46fa
|
||||
#define GE2D_CONFIG_EX _IOW(GE2D_IOC_MAGIC, 0x01, struct config_para_ex_s)
|
||||
|
||||
|
||||
// data structures
|
||||
struct rectangle_s {
|
||||
int x; /* X coordinate of its top-left point */
|
||||
int y; /* Y coordinate of its top-left point */
|
||||
int w; /* width of it */
|
||||
int h; /* height of it */
|
||||
};
|
||||
|
||||
struct ge2d_para_s {
|
||||
unsigned int color;
|
||||
struct rectangle_s src1_rect;
|
||||
struct rectangle_s src2_rect;
|
||||
struct rectangle_s dst_rect;
|
||||
int op;
|
||||
};
|
||||
|
||||
|
||||
enum ge2d_src_dst_e {
|
||||
OSD0_OSD0 = 0,
|
||||
OSD0_OSD1,
|
||||
@@ -81,7 +67,6 @@ enum ge2d_src_canvas_type_e {
|
||||
CANVAS_TYPE_INVALID,
|
||||
};
|
||||
|
||||
|
||||
struct src_dst_para_s {
|
||||
int xres;
|
||||
int yres;
|
||||
@@ -98,81 +83,3 @@ enum ge2d_op_type_e {
|
||||
GE2D_OP_BLEND,
|
||||
GE2D_OP_MAXNUM
|
||||
};
|
||||
|
||||
struct config_planes_s {
|
||||
unsigned long addr;
|
||||
unsigned int w;
|
||||
unsigned int h;
|
||||
};
|
||||
|
||||
struct src_key_ctrl_s {
|
||||
int key_enable;
|
||||
int key_color;
|
||||
int key_mask;
|
||||
int key_mode;
|
||||
};
|
||||
|
||||
struct config_para_s {
|
||||
int src_dst_type;
|
||||
int alu_const_color;
|
||||
unsigned int src_format;
|
||||
unsigned int dst_format; /* add for src&dst all in user space. */
|
||||
|
||||
struct config_planes_s src_planes[4];
|
||||
struct config_planes_s dst_planes[4];
|
||||
struct src_key_ctrl_s src_key;
|
||||
};
|
||||
|
||||
struct src_dst_para_ex_s {
|
||||
int canvas_index;
|
||||
int top;
|
||||
int left;
|
||||
int width;
|
||||
int height;
|
||||
int format;
|
||||
int mem_type;
|
||||
int color;
|
||||
unsigned char x_rev;
|
||||
unsigned char y_rev;
|
||||
unsigned char fill_color_en;
|
||||
unsigned char fill_mode;
|
||||
};
|
||||
|
||||
struct config_para_ex_s {
|
||||
struct src_dst_para_ex_s src_para;
|
||||
struct src_dst_para_ex_s src2_para;
|
||||
struct src_dst_para_ex_s dst_para;
|
||||
|
||||
/* key mask */
|
||||
struct src_key_ctrl_s src_key;
|
||||
struct src_key_ctrl_s src2_key;
|
||||
|
||||
int alu_const_color;
|
||||
unsigned src1_gb_alpha;
|
||||
unsigned op_mode;
|
||||
unsigned char bitmask_en;
|
||||
unsigned char bytemask_only;
|
||||
unsigned int bitmask;
|
||||
unsigned char dst_xy_swap;
|
||||
|
||||
/* scaler and phase releated */
|
||||
unsigned hf_init_phase;
|
||||
int hf_rpt_num;
|
||||
unsigned hsc_start_phase_step;
|
||||
int hsc_phase_slope;
|
||||
unsigned vf_init_phase;
|
||||
int vf_rpt_num;
|
||||
unsigned vsc_start_phase_step;
|
||||
int vsc_phase_slope;
|
||||
unsigned char src1_vsc_phase0_always_en;
|
||||
unsigned char src1_hsc_phase0_always_en;
|
||||
/* 1bit, 0: using minus, 1: using repeat data */
|
||||
unsigned char src1_hsc_rpt_ctrl;
|
||||
/* 1bit, 0: using minus 1: using repeat data */
|
||||
unsigned char src1_vsc_rpt_ctrl;
|
||||
|
||||
/* canvas info */
|
||||
struct config_planes_s src_planes[4];
|
||||
struct config_planes_s src2_planes[4];
|
||||
struct config_planes_s dst_planes[4];
|
||||
};
|
||||
|
Reference in New Issue
Block a user