video1层不能显示完整视频的解决过程
来源:互联网 发布:淘宝认证服务商 编辑:程序博客网 时间:2024/04/29 05:58
2011-11-14写的一个DVS6446调试文档,今天突然发现,贴出来,自己备用。
用TI的例程soln07d_video_loopthru,在显示器上半部分显示很小的一块,显示花屏(完全看不清图像),但显示部分会随着摄像头的移动而变化。
不能采用这个例程进行学习,只能分步进行。首先搞定视频采集,才能进行视频显示。
视频采集,调用的是V4L2驱动,使用soln07b_video_record例程,能够采集摄像头视频,保存为UYVY格式(每个像素占2字节空间),该例程采集的视频可以在windows下用UYVY播放器打开显示。对该例程稍作修改,采集一帧图像(/dev/video0采集),保存为target# /tmp/video.raw。
为了将这一帧UYVY图像显示,做了如下测试:
target# cp /tmp/video.raw/dev/fb/3 ;将其送到video1显示,但显示花屏
而video.raw是完好的,可以用UYVY播放器播放,说明montavista linux的framebuffer驱动做的不是很好,不能直接用cp完成显示(而RGB565图片可以直接cp到OSD窗口,前提是要将attribute窗口每一个像素都先置为0x7,表示100%显示osd层)。
framebuffer驱动不支持cp,就只能用其它方式进行试验,看video层到底怎么回事,为什么不能显示。所以,自己写代码,利用fbdev驱动,写video层(/dev/fb/3)。同时也要注意写attribute层的对应位置,否则可能会出现(0%video, 100%osd)。
但是,发现不能写满屏,写了半个屏幕,在往下就写不下去了(单步调试,写了200多行,再往下虽然代码上有写屏,但显示器上不会在显示了)。
并且,不仅仅是写不下去的问题,进行了某些操作(dd 清屏,清不同层,或用TI的demo,cp一些文件如allvideo到attribute)后,是可以显示大概0.7个整屏的,但都是屏幕靠上半部分显示,下半部分显示不了。
显示不了,可能是attribute层的设置有问题,导致下半部分video被透明掉!!于是通过ioctl查看framebuffer与显卡的参数,发现attribute层的没行720个像素,每个像素用4个位表示,理论上虽然没行只需要360个字节表示,但显卡的属性表明每行需要1440个字节来表示(显卡本身的特性与framebuffer本身对attribute层的驱动出现矛盾,应该是framebuffer的一个bug)。
最后,将写attribute层的数据字节数补齐,能够正常显示了。总结一下,同样是linux下写framebuffer的代码,TI给的代码在它官方的板子上能跑,在合众达的板子上就不行,可能是合众达板子硬件在设计上与TI不同吧。虽然显示半屏这个问题网上也有人发帖,我搜索过几乎所有中文和英文(用 half-scale做关键词)的网页,davinci社区邮件列表,都没有解决方案。
我是通过用dd指令、cp指令将不同的数据送向不同层的窗口,写代码获取不同层窗口的所有参数,多次调试,才发现framebuffer对attribute层驱动与显卡本身有矛盾。
- video1层不能显示完整视频的解决过程
- U盘盘符不能显示的解决过程
- View的完整显示过程
- 解决百度ueditor富文本编辑器不能插入视频的问题/src掉链/src清空,不能显示视频
- (转)解决word插入图片不能完整显示
- word图片不能完整显示
- [Android]浮层视频效果,在另外一个Window使用SurfaceView无法正常显示的问题排查与解决
- 解决百度富文本编辑不能上传视频成功但是在IE浏览器不能播放、显示的问题、解决浏览器不支持video标签
- 关于linux中面板不能完整显示的问题
- 不能显示隐藏文件或文件夹的完整解决方案
- listView中嵌套GridView不能完整显示的解决办法
- jsp不能将数据完整的显示出来
- 用IVideoWindow显示视频刷新的问题(不能显示)
- 怎么解决jsoup不能完整获取响应内容的问题
- OracleDBConsole不能启动的解决过程
- 解决MySQL不能显示中文的方法
- 解决ImageIcon不能显示图像的方法
- 解决图片不能显示的问题
- iOS获取当前位置信息
- Exception in thread "main" java.lang.AbstractMethodError
- du结果与ls -l结果相比偏高偏低的原因分析
- 循环中断
- USACO Chapter2 The Castle
- video1层不能显示完整视频的解决过程
- osganimationskinning例子
- 可以用第三方工具将jar包打成exe文件
- [设计模式]AbstractFactory抽象工厂模式
- linux 编程--目录相关
- 你不能忽视的HTML代码2精编篇
- android 屏幕旋转
- 关于VMWARE虚拟机安装GHOST版XP后不能硬盘启动问题
- SQL Server 2012 T_SQL新特性之一:使用Snippets代码段