- cmd
cmd | note | cmddata |
---|---|---|
FBIOGET_VSCREENINFO | 获取屏幕可变信息 | struct fb_var_screeninfo |
FBIOPUT_VSCREENINFO | 设置屏幕可变信息 | |
FBIOGET_FSCREENINFO | 获取屏幕固定信息 | struct fb_fix_screeninfo |
FBIOPAN_DISPLAY | 设置 PAN显示 | struct fb_var_screeninfo |
FBIOGET_CAPABILITY_HIFB | 获取叠加层的支持能力 | HIFB_CAPABILITY_S |
FBIOGET_SCREEN_ORIGIN_HIFB | 获取叠加层坐标原点 | HIFB_POINT_S |
FBIOPUT_SCREEN_ORIGIN_HIFB | 设置叠加层坐标原点 | |
FBIOGET_SHOW_HIFB | 获取叠加层显示状态 | |
FBIOPUT_SHOW_HIFB | 设置叠加层显示状态 | |
FBIOGET_ALPHA_HIFB | 获取叠加层 Alpha | HIFB_ALPHA_S |
FBIOPUT_ALPHA_HIFB | 设置叠加层 Alpha | |
FBIOGET_COLORKEY_HIFB | 获取叠加层的 Colorkey属性 | |
FBIOPUT_COLORKEY_HIFB | 设置叠加层的 Colorkey属性 | |
FBIOGET_MDDRDETECT_HIFB | 获取内存侦测属性 | |
FBIOPUT_MDDRDETECT_HIFB | 设置内存侦测属性 |
- FBIOGET_VSCREENINFO
* 获取屏幕可变信息 struct fb_var_screeninfo
- 高清设备的图形层默认分辨率为 1280x720
- 标清设备的图形层的默认分辨率为 720x576
- 素格式默认为 ARGB1555 * Hi3535 支持像素格式 ARGB1555、ARGB4444 和 ARGB8888
- ex1: 设置 Framebuffer的屏幕分辨率和像素格式等
- 设置实际分辨率为 720x576,虚拟分辨率为 720x576, 偏移为(0,0) ,像素格式为 ARGB1555
struct fb_bitfield r32 = {10, 5, 0};
struct fb_bitfield g32 = {5, 5, 0};
struct fb_bitfield b32 = {0, 5, 0};
struct fb_bitfield a32 = {15, 1, 0};
- FBIOGET_SHOW_HIFB
* 获取当前叠加层的显示状态
- bShow = HI_TRUE:当前叠加层处于显示状态
- bShow = HI_FALSE:当前叠加层处于藏状态
- 为正常显示,在显示之前,应将 bShow的值设为HI_TRUE, 即使能对应图形层
- HiSilicon digital media processing platform (HiMPP)
- Two-dimensional engine (TDE) 硬件加速对图形图像进行处理
- HiSilicon frame buffer (HiFB) 在 Linux Framebuffer 的基础上增加层间 colorkey、层间 Alpha
可通过命令 cat /proc/graphics/hifbn(n为图形层号)查看各个图形层的状态
- 查看layer bind
- cat /proc/umap/vo
-----GRAPHICS LAYER------------------------------------------------------------
Layer BindDev
HC0 0
- 使用ARGB1555且設定Alpha0為0,即可以顯示vo layout
/proc/graphics # cat hifb0
layer name :layer_0
Open count :1
Show state :ON
Start position :(0, 0)
xres, yres :(1280, 720)
xres_virtual, yres_virtual :(1280, 1440)
xoffset, yoffset :(0, 0)
fix.line_length :2560
Mem size: :8100 KB
Layer Scale (hw): :NO
ColorFormat: :ARGB1555
Alpha Enable :ON
AlphaChannel Enable :ON
Alpha0, Alpha1 :0, 255
Alpha Global :255
Colorkey Enable :OFF
Colorkey value :0x0
Deflicker Mode: :NONE
Deflicker Level: :AUTO
Display Buffer mode :unkown
Displaying addr (register) :0xa4e10000
display buffer[0] addr :0xa4e10000
display buffer[1] addr :0xa4fd2000
displayrect :(1280, 720)
screenrect :(1280, 720)
device max resolution :1280, 720
IsNeedFlip(2buf) :NO
BufferIndexDisplaying(2buf) :0
refresh request num(2buf) :0
switch buf num(2buf) :0
union rect (2buf) :(0,0,0,0)
canavas updated addr :0xa4e10000
canavas updated (w, h) :1280,720
canvas width :1280
canvas height :720
canvas pitch :2560
canvas format :ARGB1555
IsCompress :NO
Is DDR Dettect :NO
DDR Detect Zones :0
- 使用ARGB888可以顯示vo layout
- AlphaChannel Enable(off)
- Alpha0, Alpha1 (0, 255) , 0表示全透明
layer name :layer_0
Open count :1
Show state :ON
Start position :(0, 0)
xres, yres :(1280, 720)
xres_virtual, yres_virtual :(1280, 720)
xoffset, yoffset :(0, 0)
fix.line_length :5120
Mem size: :8100 KB
Layer Scale (hw): :NO
ColorFormat: :ARGB8888
Alpha Enable :ON
AlphaChannel Enable :OFF
Alpha0, Alpha1 :0, 255
Alpha Global :255
Colorkey Enable :OFF
Colorkey value :0x0
Deflicker Mode: :NONE
Deflicker Level: :AUTO
Display Buffer mode :unkown
Displaying addr (register) :0xa4e10000
display buffer[0] addr :0xa4e10000
display buffer[1] addr :0xa5194000
displayrect :(1280, 720)
screenrect :(1280, 720)
device max resolution :1280, 720
IsNeedFlip(2buf) :NO
BufferIndexDisplaying(2buf) :0
refresh request num(2buf) :0
switch buf num(2buf) :0
union rect (2buf) :(0,0,0,0)
canavas updated addr :0xa4e10000
canavas updated (w, h) :1280,720
canvas width :1280
canvas height :720
canvas pitch :5120
canvas format :ARGB8888
IsCompress :NO
Is DDR Dettect :NO
DDR Detect Zones :0
- EX1_DVR_FBStart
- 開啟/dev/fb0之後不可以離開程式,若離開則會自動關閉,如下 Open count :0 Show state :OFF
/proc/graphics # cat hifb0
layer name :layer_0
Open count :0
Show state :OFF
Start position :(0, 0)
xres, yres :(1280, 720)
xres_virtual, yres_virtual :(1280, 720)
xoffset, yoffset :(0, 0)
fix.line_length :2560
Mem size: :8100 KB
Layer Scale (hw): :NO
ColorFormat: :ARGB1555
Alpha Enable :OFF
AlphaChannel Enable :OFF
Alpha0, Alpha1 :0, 255
Alpha Global :0
Colorkey Enable :ON
Colorkey value :0x7c1f
Deflicker Mode: :NONE
Deflicker Level: :AUTO
Display Buffer mode :unkown
Displaying addr (register) :0xa4e10000
display buffer[0] addr :0xa4e10000
display buffer[1] addr :0xa4fd2000
displayrect :(1280, 720)
screenrect :(1280, 720)
device max resolution :1280, 720
IsNeedFlip(2buf) :NO
BufferIndexDisplaying(2buf) :0
refresh request num(2buf) :0
switch buf num(2buf) :0
union rect (2buf) :(0,0,0,0)
canavas updated addr :0x0
canavas updated (w, h) :0,0
canvas width :0
canvas height :0
canvas pitch :0
canvas format :RGB565
IsCompress :NO
Is DDR Dettect :NO
DDR Detect Zones :0
- EX1_DVR_FBStart
- 開啟/dev/fb0,無離開程式,但此時無vo layer輸出畫面(?) Open count :1 Show state :ON
/proc/graphics # cat hifb0
layer name :layer_0
Open count :1
Show state :ON
Start position :(0, 0)
xres, yres :(1280, 720)
xres_virtual, yres_virtual :(1280, 720)
xoffset, yoffset :(0, 0)
fix.line_length :2560
Mem size: :8100 KB
Layer Scale (hw): :NO
ColorFormat: :ARGB1555
Alpha Enable :OFF
AlphaChannel Enable :OFF
Alpha0, Alpha1 :0, 255
Alpha Global :0
Colorkey Enable :ON
Colorkey value :0x7c1f
Deflicker Mode: :NONE
Deflicker Level: :AUTO
Display Buffer mode :unkown
Displaying addr (register) :0xa4e10000
display buffer[0] addr :0xa4e10000
display buffer[1] addr :0xa4fd2000
displayrect :(1280, 720)
screenrect :(1280, 720)
device max resolution :1280, 720
IsNeedFlip(2buf) :NO
BufferIndexDisplaying(2buf) :0
refresh request num(2buf) :0
switch buf num(2buf) :0
union rect (2buf) :(0,0,0,0)
canavas updated addr :0x0
canavas updated (w, h) :0,0
canvas width :0
canvas height :0
canvas pitch :0
canvas format :RGB565
IsCompress :NO
Is DDR Dettect :NO
DDR Detect Zones :0
- EX1_DVR_FBStart
- 開啟/dev/fb0無離開程式
- 開啟Alpha Enable並且設定Alpha0為0x0(即全透明)
- 關閉Color Key
/proc/graphics # cat hifb0
layer name :layer_0
Open count :1
Show state :ON
Start position :(0, 0)
xres, yres :(1280, 720)
xres_virtual, yres_virtual :(1280, 720)
xoffset, yoffset :(0, 0)
fix.line_length :2560
Mem size: :8100 KB
Layer Scale (hw): :NO
ColorFormat: :ARGB1555
Alpha Enable :OFF
AlphaChannel Enable :ON
Alpha0, Alpha1 :0, 255
Alpha Global :0
Colorkey Enable :OFF
Colorkey value :0x0
Deflicker Mode: :NONE
Deflicker Level: :AUTO
Display Buffer mode :unkown
Displaying addr (register) :0xa4e10000
display buffer[0] addr :0xa4e10000
display buffer[1] addr :0xa4fd2000
displayrect :(1280, 720)
screenrect :(1280, 720)
device max resolution :1280, 720
IsNeedFlip(2buf) :NO
BufferIndexDisplaying(2buf) :0
refresh request num(2buf) :0
switch buf num(2buf) :0
union rect (2buf) :(0,0,0,0)
canavas updated addr :0x0
canavas updated (w, h) :0,0
canvas width :0
canvas height :0
canvas pitch :0
canvas format :RGB565
IsCompress :NO
Is DDR Dettect :NO
DDR Detect Zones :0
/proc/graphics #
- ex2_hifb_colorkey
- 使用colorkey RED(0xfc00)
/proc/graphics # cat hifb0
layer name :layer_0
Open count :2
Show state :ON
Start position :(0, 0)
xres, yres :(1280, 720)
xres_virtual, yres_virtual :(1280, 1440)
xoffset, yoffset :(0, 0)
fix.line_length :2560
Mem size: :8100 KB
Layer Scale (hw): :NO
ColorFormat: :ARGB1555
Alpha Enable :OFF
AlphaChannel Enable :OFF
Alpha0, Alpha1 :0, 255
Alpha Global :255
Colorkey Enable :ON
Colorkey value :0xfc00
Deflicker Mode: :NONE
Deflicker Level: :AUTO
Display Buffer mode :unkown
Displaying addr (register) :0xa4e10000
display buffer[0] addr :0xa4e10000
display buffer[1] addr :0xa4fd2000
displayrect :(1280, 720)
screenrect :(1280, 720)
device max resolution :1280, 720
IsNeedFlip(2buf) :NO
BufferIndexDisplaying(2buf) :0
refresh request num(2buf) :0
switch buf num(2buf) :0
union rect (2buf) :(0,0,0,0)
canavas updated addr :0xa4e10000
canavas updated (w, h) :1280,720
canvas width :1280
canvas height :720
canvas pitch :2560
canvas format :ARGB1555
IsCompress :NO
Is DDR Dettect :NO
DDR Detect Zones :0