原因是:

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;

本文转自:http://blog.csdn.net/smilestone322/article/details/7289716

directdraw显示yuv视频,出现屏保时,yuv显示不出来,表面丢失相关推荐

  1. V4L2采集yuv视频花屏:Linux视频采集与编码(一)

    V4L2采集yuv视频花屏:Linux视频采集与编码(一) 标签: linuxvideobufferiostructnull 2012-05-01 20:35 16179人阅读 评论(42) 收藏 举 ...

  2. ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步4屏带中文显示

    ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步4屏带中文显示 最新视频链接 气象站 气象站+图形轮回播放 2 ESP8266气象站+图形轮回播放 3 ESP8266气象站+图像显示播 ...

  3. ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示版本迭代持续更新

    ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示版本迭代持续更新 ✨版本更新说明:✨

  4. ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步5屏带中文显示改进版

    ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步5屏带中文显示改进版 在原来5屏内容基础上,进行了显示细节的优化, 1.湿度显示改成中文标识. 2.刷出第五页出现重影问题,添加了清屏处 ...

  5. ESP8266+SH1106 OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示V7.5版

    ESP8266+SH1106 OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示V7.5版 最新补充到V8.6 在上一版本基础上,添加了一屏幕城市地标ICON显示. 显示效果如下: 其他屏 ...

  6. ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示V9.2.1

    ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示V9.2.1 作品展示:https://www.ixigua.com/6974696416463553039?logTag ...

  7. html全屏播放一段视频,显示HTML5视频全屏(Show HTML5 Video Fullscreen)

    这对我的作品. 我发现在使Web应用程序与VIMEO影片"怪癖解决方案". 我测试了两种设备. 一个是Android的4.2.x版的版本,另一种是4.4.x到版本. 一个是能够以全 ...

  8. html怎么让视频只显示字幕,视频加字幕快速调整字幕显示位置 视频画面任意位置添加艺术字幕...

    快捷精确调整字幕位置,有多种方法: 方法一.通过九宫格快速定位字幕位置 通过"字体设置"栏目,"快速定位摆放的位置"处的九宫格,即可快捷定位字幕位置. 不建议仅 ...

  9. FFmpeg学习之二 (yuv视频渲染)

    FFmpeg学习之二 (yuv视频渲染) yuv简介 1.yuv是什么 2.yuv采集方式 3.yuv存储方式 4.yuv格式 yuv视频渲染 1. iOS YUV视频渲染 1.1 IOS利用open ...

  10. RGB和YUV视频存储格式

    RGB和YUV视频存储格式 视频数据,图像数据在存储中的存储格式主要有RGB和YUV.RGB是多媒体数据进行数据存储采用的主流格式:YUV格式所需存储空间一般是RGB格式存储空间的一半,所以YUV格式 ...

最新文章

  1. 【组队学习】【35期】李宏毅机器学习(含深度学习)
  2. 汇编语言 第3版 王爽 检测点习题部分—答案及详细解析 检测点3.1
  3. 【数理知识】《随机过程》方兆本老师-第6章-鞅过程及其性质
  4. 绝大部分项目都是跟金融创新、互联网、移动互联网、社区经济、分享经济、互联网金融有关...
  5. Vue关于axios跨域问题的解决
  6. Windows 2008 Core 常用命令
  7. Android菜鸟的成长笔记(23)——获取网络和SIM卡信息
  8. 评:网瘾不是问题 两代人文化冲突是根本
  9. kido机器人用流量吗_海底捞、呷哺、巴奴都在用!送餐机器人会成为“火锅标配”吗?...
  10. html链接安装包,磁力宅资源链接地址
  11. VSCODE如何汉化成中文
  12. 移动混合开发框架+Android原生模块化/组件化
  13. 大数据时代,数据分析师的职业发展规划
  14. 干眼症久治不愈?反复发作,小心可能不是干眼症!
  15. 用谷歌浏览器模拟打开天眼查网站并爬取需要的数据
  16. java中获取一天的开始时间和结束时间
  17. MyEclipse快捷键Alt+Shift+s详解
  18. 【架构师之路】四、系统架构
  19. 图书推荐:《Web前端黑客技术揭秘》
  20. 华为 GRE实验(GRE隧道)

热门文章

  1. 使用webpack前端重构感受
  2. quot;数据结构翻转课堂quot;答疑实录——链表
  3. [linux/ unix] 查看占用端口的 进程ID 的区别
  4. C++类中的static数据成员,static成员函数
  5. 问题十八:怎么对ray tracing图形进行消锯齿
  6. java实现lof,LOF异常检测算法实现
  7. 大数据分析应注意哪些问题
  8. java冒泡排序_冒泡排序法丨java、python冒泡排序实现代码
  9. oracle将字符串转成数组_【算法打卡】上升下降字符串
  10. 计算机操作员有关大学专业,如何根据自身特长选大学专业,这样操作最简单直接!...