70

帖子

0

TA的资源

一粒金砂(初级)

21
 
现有的6410的,实现的BSP好像输出都是一样的信号

回复

95

帖子

0

TA的资源

一粒金砂(初级)

22
 
   是的,LCD和TV Scaler共用了一个FRAMBUFFER,而且昨天测试的结果很不满意,D1像素的视频,播放25帧/s的速度,LCD播放顺畅,TV-OUT便成了红屏,现在怀疑,TV Encoder的转换速率不够,好好看看资料啊得……
    今天新的NJM2561F1回来了,赶紧换上进行测试。也验证了之前对tvout_test_Switch.exe源码实现的猜想,现在主要的问题有两:
     一、刚提到过的可能是TV Encoder转换速率的问题;
     二、现BSP不支持显示不同的东西,恐怕这得找三星FAE了。
   

引用 20 楼 wswwxk 的回复:
现有的6410的,实现的BSP好像输出都是一样的信号
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

23
 
继续跟踪学习。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

24
 
今天TV OUT输出正常了,是因为TCPMP设置的问题。
在TCPMP播放器的选项里昨天选的是directshow,今天选GDI就可以了。
现在对directshow和GDI的概念只从网上了解了些,但具体到我的平台上。我还不能有个合理的理解。
为什么选GDI就行,而directshow就不行了呢?
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

25
 
LZ 这个"7寸屏和TV-OUT同时显示不同的图像"是指前后台播放吗?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

26
 
引用 24 楼 littleblack1987 的回复:
LZ 这个"7寸屏和TV-OUT同时显示不同的图像"是指前后台播放吗?


也可以这么理解吧,7寸屏显示业务软件,同时这个业务软件控制TV-OUT输出广告视频。
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

27
 
引用 23 楼 haiou_arm 的回复:
今天TV OUT输出正常了,是因为TCPMP设置的问题。
在TCPMP播放器的选项里昨天选的是directshow,今天选GDI就可以了。
现在对directshow和GDI的概念只从网上了解了些,但具体到我的平台上。我还不能有个合理的理解。
为什么选GDI就行,而directshow就不行了呢?


今天终于明白了这其中的缘故……
因为:
1、To map the frame buffer into a client application space, DirectDraw tries to determine where the start of video memory is. It calls the function HalGetDriverInfo(GUID_GetDriverInfo_VidMemBase, &pVidMemBase) in your video driver to find out if the driver can return information about the location of the beginning of video memory. If this call succeeds, pVidMemBase will be non-NULL. If the call fails, typically because the driver does not implement GUID_GetDriverInfo_VidMemBase, then it will assume that the first byte of the primary buffer is the first byte of video memory. Therefore, it determines where the first byte of the primary buffer is located. To do this, it calls HalCreateSurface, HalLock, HalUnlock, and then it frees the surface. It also provides logic to handle rotated surfaces;

2、而DirecDraw在调用HalGetDriverInfo时,真正获取地址的代码段被“#if 0”掉了,所以……
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

28
 
引用 23 楼 haiou_arm 的回复:
今天TV OUT输出正常了,是因为TCPMP设置的问题。
在TCPMP播放器的选项里昨天选的是directshow,今天选GDI就可以了。
现在对directshow和GDI的概念只从网上了解了些,但具体到我的平台上。我还不能有个合理的理解。
为什么选GDI就行,而directshow就不行了呢?


学习,学习了。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

29
 
学习,学习了
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

30
 
1. 不支持LCD和TV显示不同的东西
2. 不支持LCD和TV显示不同的分辨率

总之,比较差劲。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

31
 
是可以支持显示不同东西的,由于TVOUT只能输出一层,而6410最多支持5层,只要想把你在TVout显示的东西放在TVout那一层就可以了,LCD上的层级别高于TVOut那层就不会有问题,但是双输出是非常消耗资源,所以要评估资源状况。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

32
 
引用 30 楼 xbsmail 的回复:
是可以支持显示不同东西的,由于TVOUT只能输出一层,而6410最多支持5层,只要想把你在TVout显示的东西放在TVout那一层就可以了,LCD上的层级别高于TVOut那层就不会有问题,但是双输出是非常消耗资源,所以要评估资源状况。


谢谢你!~
1、现在发现BSP包支持Primary Surface和Overlay surface。但无论哪一层,TV-out的vidiomemery都指向了同一个IMAGE_FRAMEBUFFER_PA_START。这也是现在为什么LCD和TV-OUT输出同步的原因;
2、目前的思路就是重新在DRAM中划出videomemery专有的BUFFER,然后在把通过MFC解码过的数据往里面放;
3、顺着这个思路,今天试着将一张16BPP的RGB格式图片放在了这个BUFFER中,如果顺利,TV上应该显示这个图片,LCD上想显示什么就什么;
4、继续的结果是这样,LCD上确实是想显示什么就显示什么,TV-OUT可以肯定有输出而且不受LCD影响,但TV上出现一行一行的显示,行距稍大于行宽,看不清图片,但换了图片会有变化——说明有效果。
5、目前这种状况不知道问题出在什么地方?是RGB图片的格式不对,还是TV本身显示的问题(听说过隔行显示的概念,但不懂)。

    目前我手里的BSP包,我觉得对S3C6410的资源并没有完全支持,就像你说的5个surface——也不知道自己理解的对不对?
    另外,谁手头有bmp转16BPP的RGB工具,请支持下,谢谢。


 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

33
 
引用 30 楼 xbsmail 的回复:
是可以支持显示不同东西的,由于TVOUT只能输出一层,而6410最多支持5层,只要想把你在TVout显示的东西放在TVout那一层就可以了,LCD上的层级别高于TVOut那层就不会有问题,但是双输出是非常消耗资源,所以要评估资源状况。


另外,Overlay surface是专供video显示的,它必须寄生在这5层中的一层中,这样理解对吗?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

34
 
今天看了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功能什么的。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

35
 
引用 33 楼 xqhrs232 的回复:
今天看了6410相关DISPLAY的东西。要自己控制TV什么的,只能通过DISPLAY,DLL里面的一个流接口驱动----前缀是VDE。6410的DISPLAY。DLL里面也是通过打开这个VDE流接口驱动从而取得对DISP/TV/POST/FIMD/ROTATOR的控制权的。三星的VIDEODRIVER文档里面提到了这些,VDE的每个IOCTL控制宏的功能与介绍都有。


还有三星随BSP发……


1、其实三星6410的BSP里只写了Win0的驱动码,其它的根本不支持(或许它后续还会完善):
如下:        
case SVE_LOCALPATH_SET_WIN1_START:
            VDE_ERR((_T("[VDE:ERR] SVE_LocalPath_API_Proc() : SVE_LOCALPATH_SET_WIN1_START : Not Implemented Yet...\n\r")));
            bRet = FALSE;
            break;
        case SVE_LOCALPATH_SET_WIN1_STOP:
            VDE_ERR((_T("[VDE:ERR] SVE_LocalPath_API_Proc() : SVE_LOCALPATH_SET_WIN1_STOP : Not Implemented Yet...\n\r")));
            bRet = FALSE;
            break;
        case SVE_LOCALPATH_SET_WIN2_START:
            VDE_ERR((_T("[VDE:ERR] SVE_LocalPath_API_Proc() : SVE_LOCALPATH_SET_WIN2_START : Not Implemented Yet...\n\r")));
            bRet = FALSE;
            break;
        case SVE_LOCALPATH_SET_WIN2_STOP:
            VDE_ERR((_T("[VDE:ERR] SVE_LocalPath_API_Proc() : SVE_LOCALPATH_SET_WIN2_STOP : Not Implemented Yet...\n\r")));
            bRet = FALSE;
            break;
当然可能是因为我的BSP包版本比较老的缘故……

2、确实是这样:Post Processor、TV Scaler、TV Encoder等都需要通过显示驱动(DDHAL)才能够访问,而DDHAL又交给了DirectDrew来控制。但不太明白你说的VDE接口,因为我在BSP包里根本没有找到VDE打头的函数,另外现在看代码,DDHAL就交给了我们唯一的一个控制接口:ExtEscape函数,至于这个函数能干什么,只有下面几个宏:
#define DRVESC_OUTPUT_BASE                (0x00020100)
#define DRVESC_OUTPUT_RGB                    (DRVESC_OUTPUT_BASE+0)
#define DRVESC_OUTPUT_TV                    (DRVESC_OUTPUT_BASE+1)
#define DRVESC_OUTPUT_SWITCH                (DRVESC_OUTPUT_BASE+2)
#define DRVESC_TV_DMA_DISABLE                (DRVESC_OUTPUT_BASE+10)
#define DRVESC_TV_DMA_PRIMARY                (DRVESC_OUTPUT_BASE+11)
#define DRVESC_TV_DMA_OVERLAY                (DRVESC_OUTPUT_BASE+12)
而这几个宏根本就满足不了我现在的需求!~

3、今天按照昨天的思路,在TV上输出了一张完整的图片,而LCD上显示它自己的东西。
昨天就错在对物理地址直接memcpy了,根本就没有对物理内寸存放16BPP的RGB成功,所以……

4、现在的思路就是开始研究TCPMP播放器,然后将通过MFC解码的视频流往videobuffer对应的物理内存里放就应该OK了。

5、刚刚把TCPMP的播放器编程通过,下载到平台上打开MPEG-4文件时出现:“播放器:视频解码(MPEG-4 Video)不被播放器支持!”,怎么回事呢?

 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

36
 
引用 34 楼 haiou_arm 的回复:
引用 33 楼 xqhrs232 的回复:
今天看了6410相关DISPLAY的东西。要自己控制TV什么的,只能通过DISPLAY,DLL里面的一个流接口驱动----前缀是VDE。6410的DISPLAY。DLL里面也是通过打开这个VDE流接口驱动从而取得对DISP/TV/POST/FIMD/ROTATOR的控制权的。三星的VIDEODRIVER文档里面提到了这些,VDE的每个IOCTL控制宏的……

6410有两个DISPLAY相关的驱动。s3c6410_disp.dll+s3c6410_video.dll.

s3c6410_disp.dll通过s3c6410_video.dll控制各种硬件。你的6410的BSP包是那个版本?现在到V0。79了,听说最新的包是V0。85了。

 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

37
 
引用 34 楼 haiou_arm 的回复:
引用 33 楼 xqhrs232 的回复:
今天看了6410相关DISPLAY的东西。要自己控制TV什么的,只能通过DISPLAY,DLL里面的一个流接口驱动----前缀是VDE。6410的DISPLAY。DLL里面也是通过打开这个VDE流接口驱动从而取得对DISP/TV/POST/FIMD/ROTATOR的控制权的。三星的VIDEODRIVER文档里面提到了这些,VDE的每个IOCTL控制宏的……


我看了一下,我的BSP也没有去代码实现WIN0外的窗口。我说的VDE是比你提到的更上一层。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

38
 
看了一下6410的DISP的代码,不知道下面的理解是不是对的。

1。LCD的输出----LCD正常的工作在WIN1上-----看申请分配的资源是WIN1

2。OVERLAY的输出----应该工作在WIN0上-----看申请分配的资源是WIN0


你的TV-OUT弄到WIN0层是不是就可以了?!----还不是很清楚6410的DISP驱动。
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

39
 
LZ我想问一下,从TV-IN进来的数据时什么封装格式?是经过处理后的MPEG-4,H.264等格式还是未处理的一些以太网数据帧,然后经过硬件编解码,最终显示呢?
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

40
 
引用 34 楼 haiou_arm 的回复:
引用 33 楼 xqhrs232 的回复:
今天看了6410相关DISPLAY的东西。要自己控制TV什么的,只能通过DISPLAY,DLL里面的一个流接口驱动----前缀是VDE。6410的DISPLAY。DLL里面也是通过打开这个VDE流接口驱动从而取得对DISP/TV/POST/FIMD/ROTATOR的控制权的。三星的VIDEODRIVER文档里面提到了这些,VDE的每个IOCTL控制宏的……


不一定非得走LOCALPATH方式吧.难道不能不走LOCALPATH方式?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电源解决方案和技术 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表