kennybluezy

kennybluezy

0个粉丝

16

问答

0

专栏

0

资料

kennybluezy  发布于  2015-07-27 09:08:36
采纳率 0%
16个问答
8137

hi3531 fb层是否支持ARGB8888?

 
各位好,我现在3531平台上开发HIFB相关内容,SDK包版本为Hi3531_SDK_V2.0.A.0。首先利用FBIOGET_CAPABILITY_HIFB查询,发现stCap.bColFmt[HIFB_FMT_ABGR8888]为false,stCap.bColFmt[HIFB_FMT_ABGR1555]为true,按照海思文档,是否意味着支持ARGB1555,不支持ARGB8888?
然后将sample_hifb中的SAMPLE_HIFB_REFRESH()函数中的fb_var_screeninfo变量中颜色相关部分设为32bpp及32位ARGB格式,Canvas颜色格式也设为ARGB8888。运行后发现不能画出两条红线。恢复成原来的ARGB1555格式后能画出来。
从论坛及网上相关帖子得知3531 fb层是支持ARGB8888的,并可利用它来实现QT层的透明显示。故这里还请各位前辈确认3531 fb层是否支持ARGB8888?如果不支持,如何实现QT控件层的部分区域透明显示? 我尝试过TDE方法,可能是因为需要显示1280x720的高清内容,TDE无效。QT控件层透明与否还是由其显示的fb层透明度决定的,如果fb层alaphEnable为false,TDE2_SURFACE_S变量中透明度设置无效,整个QT层不透明。
文字比较杂乱,还请各位见谅。希望能提供一定指点,在此先行谢过!
我来回答
回答7个
时间排序
认可量排序

goodman

4个粉丝

30

问答

18

专栏

17

资料

goodman 2015-07-27 09:14:09
认可0
首先是支持ARGB8888的,其次界面层可以使用单独的/dev/fb4..

kennybluezy

0个粉丝

16

问答

0

专栏

0

资料

kennybluezy 2015-07-27 09:44:36
认可0
非常感谢版主的热心回复。 首先请看我的主要设置(sample_hifb的SAMPLE_HIFB_REFRESH函数):
1. fb_var_screeninfo.xres =fb_var_screeninfo.xres_virtual = 1920;
   fb_var_screeninfo.yres = fb_var_screeninfo.yres_virtual = 1080;
    fb_var_screeninfo.bits_per_pixel = 32;
    fb_var_screeninfo.transp = {24, 8, 0};
    fb_var_screeninfo.red = {16, 8, 0};
    fb_var_screeninfo.green = {8, 8, 0};
    fb_var_screeninfo.blue = {0, 8, 0};
    fb_var_screeninfo.activate = FB_ACTIVATE_NOW;
2. HIFB_BUFFER_S.stCanvas.enFmt = HIFB_FMT_ARGB8888;
3. memset(pBuf, 0xFF000000, stCanvasBuf.stCanvas.u32Pitch*stCanvasBuf.stCanvas.u32Height); //HI_U32 *pBuf
4. *(pBuf + y * maxW + x) = 0xFFFF0000;//HIFB_RED_1555;//

取消了其余两个线程的创建执行,即创建此线程后即pthread_join()。运行后发现输出1080p信号,背景为VO层设置的绿色;但不能画出两条红线,仅出现一条竖直的、不连续的(隔行有空格)红线。

其次,由于目前我基于QDialog设计的界面没有放置任何控件,目前仅想使界面的一部分完全透明,使视频层的图像显示出来。故仅用到fb0层,Dialog的大小为1920x1080,alaphEnable为true,当alaph0和alaph1为0时,QT界面层完全透明,为255时完全不透明,遮盖了视频层。
从海思文档了解到,fb0和fb4能同时绑定到一个输出设备上,但不知道这两者有何区别?从文档内容看,应该差距不大。针对我目前需要达到的目的(使QT界面部分透明),fb0和fb4应该没有区别的吧?

最后,再次感谢goodman版主的热心关注。还请再次指点如何设置,以实现ARGB8888显示,因为从sample_hifb来看,不能基于ARGB8888绘制两条红线?方便的话,不知是否有例程可以验证? 再次感谢

goodman

4个粉丝

30

问答

18

专栏

17

资料

goodman 2015-07-27 22:35:24
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=18471&ptid=8209]kennybluezy 发表于 2015-7-27 09:44[/url]
非常感谢版主的热心回复。 首先请看我的主要设置(sample_hifb的SAMPLE_HIFB_REFRESH函数):
1. fb_var_s ...[/quote]

源码不方便听给你,但是我可以告诉你,ARGB8888是绝对没哟问题的,我以前是FB0做OSD,fb4座GUI的,这样做比较简单,图形层是独立的,和OSD没哟冲突,仅供参考!

kennybluezy

0个粉丝

16

问答

0

专栏

0

资料

kennybluezy 2015-07-28 09:25:42
认可0
好的,非常感谢您的热心帮助。后来我还是基于上述参数,再修改了其余相关参数,在SAMPLE_HIFB_REFRESH()函数中实现了ARGB8888绘制,并进一步实现了QT界面的显示。
但有个疑问是HIFB的标准模式和扩展模式究竟有什么区别?比如要显示一副图像,是否用标准模式的FBIOPAN_DISPLAY以及扩展模式的FBIO_REFRESH均能显示,两者是否有区别?这两种模式各有什么特点?
再次感谢您的热心帮助!

z12oo

0个粉丝

5

问答

0

专栏

0

资料

z12oo 2015-08-10 09:51:42
认可0
楼主好,我也是想将Qt透明叠加到视频层上去,
但遇到类似的问题。
现象:我是Qt窗体本身透明,QWS这里也设置透明(去掉绿色),但在sample_hifb打开fb0,还是出现遮挡视频的现象,调节Alpha,Qt界面与视频层可以叠加,但有阴影区域,而且Qt图标也会变得不清晰,网上有说需要更改像素格式为ARGB8888,不知道是修改参数哪里出错,Qt界面显示不出来了。希望楼主指导下,谢谢了!

9527

0个粉丝

3

问答

0

专栏

0

资料

9527 2016-03-02 14:58:39
认可0
请问楼主解决方案?  

ljr13141503189

0个粉丝

32

问答

0

专栏

0

资料

ljr13141503189 2017-09-19 14:03:15
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=18511&ptid=8209]kennybluezy 发表于 2015-7-28 09:25[/url]
好的,非常感谢您的热心帮助。后来我还是基于上述参数,再修改了其余相关参数,在SAMPLE_HIFB_REFRESH()函 ...[/quote]

你好  请问方便把REFRESH修改成1920*1080的代码放一下吗
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区