您尚未登录。

楼主 #1 2018-05-23 10:49:29

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

N32926 OSD的使用问题

n32926的vpost 显示接口模块提供了两个层,一个是视频输出层,一个是OSD层。   

我在官方vin_demo程序的基础上,调试实验了一下该功能,发现有几个问题:

1) 摄像头为YUV格式,在图像预览输出的时候,需要将Framebuffer(第一层)设置为YUV格式,此时OSD也需要设置为YUV,否则不能正常工作。不知道结论是否准确,大家有没有碰到该问题?   非视频预览状态,FB一般是设置为RGB模式的,一般GUI均支持RGB格式,不支持YUV格式,如果OSD必须用YUV,就给UI的实现带来了很多了限制。   

2)OSD和视频的Alpha混合貌似只能全局的,这样的话,局部的半透明怎么实现呢?

离线

楼主 #3 2018-05-25 13:28:33

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

Re: N32926 OSD的使用问题

不好意思各位,前面判断错误。。。在视频预览为yuv模式下,也可以使用rgb模式的osd

这样的话,osd实现就要方便很多了,可以统一使用rgb模式

离线

楼主 #5 2018-05-25 14:52:05

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

Re: N32926 OSD的使用问题

官方有linux 应用程序有一个osd的demo,里面默认就是RGB的,可以直接看效果,里面的功能比较完整,我只是测试下自己的想法

离线

楼主 #7 2018-05-25 15:19:32

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

Re: N32926 OSD的使用问题

我是这样理解的:
1) OSD层其实也是做成了FB驱动,在内存分配的时候是紧靠着第一层(fb0),只是没有像多数厂商做法,直接弄成fb1、fb2。
2)如果系统中没有视频相关,我觉得放哪一层都无所谓;如果有视频,因为视频层一般都是硬件辅助实现,如果和ui放到同一层用软件实现,势必加重cpu负担。

离线

楼主 #8 2018-05-25 15:24:35

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

Re: N32926 OSD的使用问题

nuvoton的fb驱动我分析过,在视频采集端口开启预览的时候,直接将该视频地址指向fb的地址,这样就省去了从采集端口到输出端口的内存copy步骤,提高了实时性,降低了cpu负担。

离线

楼主 #10 2018-05-25 18:09:56

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

Re: N32926 OSD的使用问题

默认驱动应该是不支持你说的这个情况。视频dma可以设置行跳跃寄存器(Output Frame Pixel Stride Width 【VSTRIDE】),结合起始地址,可以控制视频在FB中的位置,前提是视频的尺寸要小于FB的尺寸。

离线

楼主 #12 2018-12-28 15:35:29

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

Re: N32926 OSD的使用问题

视频采集驱动源码路径linux-2.6.35.4\drivers\media\video\w55fa92_dev1
涉及到几个关键文件:
videoin.c                      驱动入口文件
sensor_nt99141.c      sensor控制
DevVin1.c         采集端口1的控制
vin_ioctl.c                      V4L驱动的ioctl
Sensor_ctl.c      辅助功能,控制sensor电源

nuvoton提供了一个vin_demo程序,里面有StartPreview()  StopPreview() 函数,顺着这些函数调用的ioctl,找到驱动里面的对应函数,可以分析出每步的具体操作。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn