6410怎么实现7寸屏和TV-OUT同时显示不同的图像
6410如何实现7寸屏和TV-OUT同时显示不同的图像要问的问题如题,这两天看了下S3C6410数据手册中对TV-OUT和显
6410如何实现7寸屏和TV-OUT同时显示不同的图像
要问的问题如题,这两天看了下S3C6410数据手册中对TV-OUT和显示相关的资料,把我的理解也与大家分享下:
1、TV-OUT输出视频的过程:先由MFC(MULTI-FORMAT VIDEO CODEC)将MPEG-4格式的视频文件转换成一帧一帧的RGB或YCbCR格式的像素数据,并存储在SDRAM中,然后TV-Scale模块从SDRAM读RGB或YCbCr像素数据,经过大小缩放、色差调整后输出至TV Encoder进行数字信号到模拟信号的转换,再出来的信号就是TV-OUT——要完成TV out,这个流程一项都少不了。
2、在这个过程中,TV-Scaler是个协处理器,从Memery取数到送到TV Encoder都是通过DMA的方式,不需要CPU的参与,CPU只要给它指定好要转换文件的起始地址、结束地址和偏移就可以,当然一开始要进行初始化。
3、整个TV-OUT的过程其实就是一个简单的播放器要做的工作——协调好MFC、TV-Scaler、TV-Encoder和控制DA输出;换句话说,在有效控制以上模块的同时,编写一个类试TCPMP的播放器软件,只是这个软件在后台运行罢了。
4、在以上几个模块中,对MFC的控制接口比较简单,是个标准的流接口。
以上理解还有很多不明白的地方,视频专业名词太多。甚至有理解错误的地方。
三星的BSP里提供了一个“tvout_test_Switch.exe”,这个文件的作用是将显示切换到TV-OUT输出,但没有源码,我想这个是现在唯一的救命稻草了。不知道哪里能找到这个的源码,参考它应该能提供些思路。
不知道大家都有什么好的思路吗?
[解决办法]
tvout_test_Switch.exe 使用IDA破解一下,看看调用了什么函数即可。
[解决办法]
[解决办法]是可以支持显示不同东西的,由于TVOUT只能输出一层,而6410最多支持5层,只要想把你在TVout显示的东西放在TVout那一层就可以了,LCD上的层级别高于TVOut那层就不会有问题,但是双输出是非常消耗资源,所以要评估资源状况。
[解决办法]今天看了6410相关DISPLAY的东西。要自己控制TV什么的,只能通过DISPLAY,DLL里面的一个流接口驱动----前缀是VDE。6410的DISPLAY。DLL里面也是通过打开这个VDE流接口驱动从而取得对DISP/TV/POST/FIMD/ROTATOR的控制权的。三星的VIDEODRIVER文档里面提到了这些,VDE的每个IOCTL控制宏的功能与介绍都有。
还有三星随BSP发出的一些SAMPLE里面也是去打开VDE这个流接口去控制DISP/TV/POST的那些硬件的。
有了VDE这个接口你应该可以做很多事,包括WIN0-WIN4的申请,OSD/PIP功能什么的。
[解决办法][解决办法]看了一下6410的DISP的代码,不知道下面的理解是不是对的。
1。LCD的输出----LCD正常的工作在WIN1上-----看申请分配的资源是WIN1
2。OVERLAY的输出----应该工作在WIN0上-----看申请分配的资源是WIN0
你的TV-OUT弄到WIN0层是不是就可以了?!----还不是很清楚6410的DISP驱动。
[解决办法]三星只给了基本驱动和基本接口了,很多东西要靠自己来发挥的,道理都是一样,难而不会,会而不难,需要深刻自己去体会芯片的内涵,这样才能用好,不过一点始终是绕不过去的,那就是带宽问题,6410只有133MHz,理论上的很多东西实际上是受带宽限制,做真正想做的东西6410还是不够的,只能实现个基本。