织梦CMS - 轻松建站从此开始!

罗索

TCPMP花屏现象解决方法(或图像不显示)

落鹤生 发布于 2010-01-02 21:01 点击:次 
上个星期做了TCPMP的播放器,音频和图片很容易就搞定了,毕竟做了很多版本了,但在视频播放器上转了很久,总有些视频文件播放时要就不显示,要就花屏.开始以为是开发平台速度引起的(CPU 400M+DSP),后来用别人的播放器又可以正常播放,摸索了很久,终开找到原因了,和大家分享.
TAG:

   上个星期做了TCPMP的播放器,音频和图片很容易就搞定了,毕竟做了很多版本了,但在视频播放器上转了很久,总有些视频文件播放时要就不显示,要就花屏.开始以为是开发平台速度引起的(CPU 400M+DSP),后来用别人的播放器又可以正常播放,摸索了很久,终开找到原因了,和大家分享.

TCPMP花屏现象解决方法


现象:
1.完全不能播放,但不是硬件引起的原因
    
解决方法:设置显示大小时要注意比例,一般为4:3 或 15:9,还有几种,但比例一定要对,要不可能不能正常播放视频文件。

play* VideoPlayer;
#define VIDEO_VIEWPORT_X             130
#define VIDEO_VIEWPORT_Y             22
#define VIDEO_VIEWPORT_HEIGHT        178
#define VIDEO_VIEWPORT_WIDTH         340
rect Viewport;
Viewport.x = VIDEO_VIEWPORT_X;
Viewport.y = VIDEO_VIEWPORT_Y;
Viewport.Height = VIDEO_VIEWPORT_HEIGHT;
Viewport.Width = VIDEO_VIEWPORT_WIDTH;

VideoPlayer->Set(VideoPlayer,PLAYER_SKIN_VIEWPORT,&Viewport,sizeof(rect));
VideoPlayer->Set(VideoPlayer,PLAYER_UPDATEVIDEO,NULL,0);

2.有的视频可以播放,有的视频文件播放时有声音,但是看不见图像,一屏的雪花点或条纹。
   
解决方法:和视频驱动的缓存方式有关,在TCPMP中有两种缓存方式:帧缓存和GDI缓存.在有如上现象时把帧缓存改成GDI缓存.
play* VideoPlayer;
#define VIDEO_DRIVER_RAWFPS           0
#define VIDEO_DRIVER_GDI              1
#define VIDEO_DRIVER_NOVIDEO          2

//启用GDI缓冲视频驱动
int VideoAccel=0;
VideoPlayer->Set(VideoPlayer,PLAYER_VIDEO_ACCEL,&VideoAccel,sizeof(VideoAccel));
VideoPlayer->Set(VideoPlayer,PLAYER_VOUTPUTID,ARRAYBEGIN(VOutput_Video,int)+VIDEO_DRIVER_GDI,sizeof(int));

(秩名)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201001/8225.html]
本文出处:网络博客 作者:秩名
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关文章
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容