TCPMP中使用GDI、Direct及DirectDraw效果对比

简介: 早先跟ZL讨论过WinCE6.0下使用TCPMP播放视频的问题。他认为直接写显存应该可以让视频播放更流畅。今天我在我们的平台上实际测试了一下,分别使用GDI、Direct和DirectDraw三种方式做了Benchmark,其中Direct就是他所说的直接写显存的方式。

       早先跟ZL讨论过WinCE6.0下使用TCPMP播放视频的问题。他认为直接写显存应该可以让视频播放更流畅。今天我在我们的平台上实际测试了一下,分别使用GDI、Direct和DirectDraw三种方式做了Benchmark,其中Direct就是他所说的直接写显存的方式。

      为了让TCPMP支持Direct的方式,需要修改overlay_direct.c中的相关代码,使其能够直接访问CE设备的显存。具体方法就不再这里赘述了,请参考前一篇随笔。正如上一篇所说,这里提供的方法目前只能专款专用,针对自己的平台做一些优化。实现了Direct的方式后,可以在“选项”——“视频设置”中看见目前系统支持的几种方式,如下图所示。

 image

      测试用的视频文件是“魅族Miniplayer.mp4”,M8里自带的广告片,三种模式测试报告的对比如下。image

      以上是Direct和GDI的对比图。可以看到使用Direct确实比GDI快一些,前者的Average Speed比后者的高10%。

      Direct和DirectDraw的对比图如下。可以看到他们两个基本上是平分秋色,不相上下。image

      另外,在WinCE6.0中启动TCPMP时会有一些异常的打印信息。如果看着不舒服,可以修改cpu.c的第78行代码,改为“#if !defined(TARGET_PALMOS) && !defined(TARGET_SYMBIAN) && !defined(TARGET_WINCE)”,也就是不调用CheckARM5E()等函数。

目录
相关文章
|
4月前
[MFC] 数据转换:Hobject转Bitmap
[MFC] 数据转换:Hobject转Bitmap
42 0
|
C++ Windows
UWP中的Direct2D
原文:UWP中的Direct2D 介绍 DirectX一直是Windows平台中高性能图形的代名词,自Win7开始,微软又推出了Direct2D技术,包装于Direct3D,但专注于2D图形,并且准备取代GDI这样的传统2D图形技术。
1457 0