directdraw显示yuv视频,出现屏保时,yuv显示不出来,表面丢失
原因是:
DDrawSurface 丢失, DDraw表面在很多情况下都会丢失(如:启动其他全屏独占程序,屏保,或锁屏时), 表面丢失其实就是表面所使用的内存或显存被DirectDraw系统释放, 分配给其他程序. 如果表面丢失, 对此表面的操作都会返回 DDERR_SURFACELOST , 此时应该调用 IDirectDrawSurface 接口方法 Restore 来恢复表面(重新申请内存或显存)。
伪代码如下:
hr = m_lpDDSOffscreen- Lock(rcDest, ddsd,DDLOCK_SURFACEMEMORYPTR|DDLOCK_WAIT,NULL);
if (hr==DDERR_SURFACELOST)
{
hr = m_lpDDSOffscreen- Restore();
hr = m_lpDDSOffscreen- Lock(rcDest, ddsd,DDLOCK_WAIT,NULL);
}
if (FAILED(hr))
{
return DD_FALSE;
}
//将数据拷贝到离屏表面,然后使用blt块传输到主表面
HRESULT ddrval;
ddrval=lpDDSPrimary- Blt(NULL, lpDDSOffscreen, NULL, DDBLT_WAIT, NULL);
if (ddrval==DDERR_SURFACELOST)
{
lpDDSPrimary- Restore();
}
这样当屏保,锁屏,修改屏幕分辨率,表面都可以恢复,视频显示正常
这里也可以使用 ddraw对象,恢复所有表面,方法如下:
lpDD- RestoreAllSurfaces();
其中
LPDIRECTDRAW7 lpDD;
Gprinter热敏打印机光栅位图点阵数据解析工具 最近参与的项目有一个需求,解析佳博热敏打印机的光栅位图点阵数据并保存为图片文件。数据是通过Bus Hound抓取的,如下图所示。 其中1b 40为初始化打印机的指令,对应的ASCII码为ESC @,1b 4a 18为打印并走纸的指令,对应的ASCII码为ESC J,1d 76 30为打印光栅位图的指令,对应的ASCII码为GS v 0,其后紧跟光栅位图模式(0x00)、水平方向位图字节数(0x0036)和垂直方向位图点数(0x0018),后面则为本帧的位图数据(0x36*0x18=1296字节)。
本文是自己对VGA图像显示的练习,附上自己在博客链接http://bbs.ednchina.com/BLOG_ARTICLE_3032085.HTM
最简单的视音频播放示例2:GDI播放YUV, RGB 前一篇文章对“Simplest Media Play”工程作了概括性介绍。后续几篇文章打算详细介绍每个子工程中的几种技术。在记录Direct3D,OpenGL这两种相对复杂的技术之前,打算先记录一种和它们属于同一层面的的简单的技术——GDI作为热身。
DirectX--yuv420p上实现的字符叠加 p img src= http://img.blog.csdn.net/20141217111324616?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFvMDUxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center alt= br
最简单的视音频播放示例3:Direct3D播放YUV,RGB(通过Surface) 上一篇文章记录了GDI播放视频的技术。打算接下来写两篇文章记录Direct3D(简称D3D)播放视频的技术。Direct3D应该Windows下最常用的播放视频的技术。实际上视频播放只是Direct3D的“副业”,它主要用于3D游戏制作。
最简单的视音频播放示例7:SDL2播放RGB/YUV 本文记录SDL播放视频的技术。在这里使用的版本是SDL2。实际上SDL本身并不提供视音频播放的功能,它只是封装了视音频播放的底层API。在Windows平台下,SDL封装了Direct3D这类的API用于播放视频;封装了DirectSound这类的API用于播放音频。
相关文章
- DataGridView依据下拉列表显示数据
- highlight_file() 函数对文件进行语法高亮显示
- CSS3怎样实现超出指定文本以省略号显示效果
- CH451 点阵LED显示模块
- OpenCV1.x下的灰度直方图绘制及显示的源码,带详细注释
- Allegro走线时如何自动关闭其它网络飞线显示操作指导
- Allegro如何通过视图显示区分动态和静态铜皮操作指导
- 解决微信小程序使用wxcharts在屏幕不固定问题-开发工具里也显示好了布局,为啥到真机就是乱的
- CSDN博客:使用Markdown编辑器使图片居中显示
- iPhone 显示中国农历节气以及法定节假日
- Android实现小圆点显示未读功能
- checkbox显示选中内容个数
- Qt音视频开发27-ffmpeg视频旋转显示
- Qt音视频开发24-视频显示QOpenGLWidget方式(占用GPU)
- 动手写一个快速集成网易新闻,腾讯视频,头条首页的ScrollPageView,显示滚动视图
- ubuntu下使用PIL中的show函数,无法显示图片的问题
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(三)显示地图坐标系模块
- 51驱动AS608光学指纹识别模块 12864显示
- 使用C# 链接 Mysql 显示??? 乱码 的解决方案
- Microsoft TFS 如何显示在Windows 的上下文菜单中