关于SDL SDL_CreateWindowFrom和SDL_DestroyWindow第二次后无法将视频显示出来。

最近自己用QT搞一个监控平台的程序UI,然后后台一些视频处理是使用FFMPEG和SDL来做的。
在关闭播放窗口SDL_DestroyWindow后,再次去显示视频就会发现显示不出来。代码如下

int SDLPlayer::SDLPlay()
{SDL_Window *sdlScreen{ NULL };//窗口SDL_Renderer* sdlRenderer{ NULL };//渲染器SDL_Texture* sdlTexture{ NULL };//纹理SDL_Init(SDL_INIT_VIDEO);sdlScreen = SDL_CreateWindowFrom(m_handle);//sdlScreen = SDL_CreateWindow("Simplest Video Play SDL2", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,//1024, 800, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);if (sdlScreen == 0){printf("SDL: could not create SDL_Window - exiting:%s\n", SDL_GetError());return -1;}sdlRenderer = SDL_CreateRenderer(sdlScreen, -1, SDL_RENDERER_ACCELERATED);if (sdlRenderer == NULL){printf("SDL: could not create SDL_Renderer - exiting:%s\n", SDL_GetError());return -1;}sdlTexture = SDL_CreateTexture(sdlRenderer, SDL_PIXELFORMAT_YV12, SDL_TEXTUREACCESS_STREAMING, 1920, 1080);if (sdlTexture == NULL){printf("SDL: could not create SDL_Texture - exiting:%s\n", SDL_GetError());return -1;}m_bInitWindow = true;AVFrame* yuvframe = av_frame_alloc();while (getPlayFlag()){Sleep(40);if (GetDisplayFlag() && m_bInitWindow){GetYUVFrame(yuvframe);if (yuvframe == NULL || yuvframe->data[0] == NULL){continue;}SDL_UpdateYUVTexture(sdlTexture, NULL,yuvframe->data[0], yuvframe->linesize[0],yuvframe->data[1], yuvframe->linesize[1],yuvframe->data[2], yuvframe->linesize[2]);SDL_RenderClear(sdlRenderer);SDL_RenderCopy(sdlRenderer, sdlTexture, NULL, NULL);SDL_RenderPresent(sdlRenderer);}}SDL_DestroyWindow(sdlScreen);SDL_DestroyTexture(sdlTexture);SDL_Quit();//ShowWindow(m_handle, true);return 0;
}

也就是第二次调用时发现视频出不来了,但是程序什么的都是正常运行的。细心的就会发现界面上的窗口都不见了。

SDL_DestroyWindow(sdlScreen);

在这里插入图片描述

这一句代码会将窗口隐藏起来,所以我们在最后再将窗口显示出来就好了。

ShowWindow(m_handle, true);

加 ShowWindow不让窗口隐藏。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/267962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单概念

一、数据库查询I. 直接生成sql语句。 sql server每次都要对其进行编译,在性能方面不会有很大的提高。另外也不够安全。容易被攻击.II. 使用带参数的sql命令。这种方式sql server只对其编译一次,对于不同的参数可以重复使用编译后的命令。提高了性能.III.…

瘦子的肠道菌群和胖子的区别_胖子和瘦子的终极 PK:比基因?比运动?比肠道细菌!...

学术会议的自助餐厅里碰见了小师妹,小师妹餐盘里的食物堆成了小山,几位同学指指小师妹的「救生圈」说道:「多日不见,增肥不少,看来这世间没有无缘无故的胖,也没有无缘无故的瘦啊!」小师妹一脸委…

转: Vim快捷键分类

Vim快捷键分类 http://www.cnblogs.com/jikey/archive/2011/12/28/2304341.html 一. 移动&#xff1a;h,j,k,l: 左&#xff0c;下&#xff0c;上&#xff0c;右。w: 下一个词的词首。e:下一个词的词尾。b:上一个词的词首。<>: v 模式选中后进行缩进。二. 跳转&#xff1a…

FFMPEG av_frame_move_ref 使用

最近使用ffmpeg总会碰到视频帧拷贝的问题&#xff0c;其中av_frame_move_ref 就可以实现视频帧的拷贝功能。 函数原型&#xff1a; void av_frame_move_ref(AVFrame *dst, AVFrame *src);使用方法&#xff1a; AVFrame *dst av_frame_alloc(); AVFrame *src av_frame_alloc…

HTTP详解(转载)

HTTP是一个属于应用层的面向对象的协议&#xff0c;由于其简捷、快速的方式&#xff0c;适用于分布式超媒体信息系统。它于1990年提出&#xff0c;经过几年的使用与发展&#xff0c;得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版&#xff0c;HTTP/1.1的规范化工作…

cmos存储器中存放了_CMOS存储器中存放了计算机的一些参数和信息,其中不包含在内的是( )。_学小易找答案...

【单选题】在计算机网络中,( )用于验证消息发送方的真实性。【单选题】【单选题】质点做半径为 R 的变速圆周运动时 , 加速度大小为 ( v 表示任一时刻质点的速率 ) ( )【单选题】在PC机中,输入/输出设备通过( )与各自的控制器连接起来。【多选题】一质点沿半径为R的圆周运动,路…

vos限制客户呼出时间

问题&#xff1a; 公司希望自己的卡线晚上 21&#xff1a;00-24&#xff1a;00 早上00&#xff1a;00-7&#xff1a;30不能打出电话&#xff0c;以防遭投拆&#xff0c; 那么如何设置&#xff1f; 方法&#xff1a; 找到客户使用的落地网关&#xff0c; 落地网关——补充设置…

QT-监视平台

空余时间学习QT的UI&#xff0c;做了一个监视平台&#xff0c;直接上图。 页面1&#xff1a;视频监控 页面2&#xff1a;视频回放 页面3&#xff1a;系统设置 未完成。。。。。。。。 做的不好的地方请大家指正&#xff0c;项目现在还在开发阶段&#xff0c;仅供学习参考…

Orchard架构介绍

在如何使用Orchard搭建敏捷个人的网站&#xff08;2&#xff09;中 介绍了如何使用Orchard&#xff0c;但对于我们来说&#xff0c;更重要的是学习Orchard是如何架构的&#xff0c;如果我们自己编写一个类似应用该如何做。今天有空再次看看 Orchard的其它内容&#xff0c;本篇介…

【服务器】一次对Close_Wait 状态故障的排查经历

最近接连听说一台线上服务器总是不响应客户端请求。 登录服务器后查询iis状态&#xff0c;发现应用程序池状态变为已停止。 按经验想&#xff0c;重启后应该就ok&#xff0c;第一次遇到也确实起了作用&#xff0c;当时完全没在意&#xff0c;以为是其他人无意把服务关闭了而已。…

听力阈值计算_中耳功能分析:临床听力测试的重要手段!

点击甘峰听力关注我们中耳功能测试是临床听力学测试中一个重要部分&#xff0c;和常规的气、骨导纯音测试不一样&#xff0c;中耳功能测试从测试的内容看&#xff0c;主要有鼓室声导抗测试、声順值测试、镫骨肌反射阈值测试、咽鼓管功能测试等。从测试的原理看&#xff0c;现代…

大话移动开发之QT-Quick

大话移动开发之QT-Quick 这是一段关于移动开发之QT-Quick开发的音频&#xff0c;由嘉文&鲜橙&李唐三位朋友录制&#xff0c;内容非常丰富&#xff0c;希望大家喜欢。 节目介绍&#xff1a; 如今的智能终端市场风起云涌&#xff0c;移动开发也成了许多开发人员创造梦想的…

go json 自定义_Go语言Echo Web框架9-日志

上一节:Go语言Echo Web框架8-JWT 这一节介绍日志echo自带的日志中间件记录有关每个HTTP请求的信息日志日志中间件用法e.Use(middleware.Logger())样本输出{ "time":"2020-09-13T21:58:07.372015644-08:00", "remote_ip":"::1", &…

C++提取PDF页成BMP图片

背景&#xff1a;之前接了一个小单子&#xff0c;需求就是将PDF转成.tif图片&#xff0c;刚好闲着&#xff0c;就搜了许多资料&#xff0c;最后选择的是PDFium SDK。 1、首先是打开PDF文件&#xff0c; //chPDF为文件路径 FPDF_DOCUMENT pdf_doc FPDF_LoadDocument(chPDF, NU…

Agile in a Flash:重新定义纪律

今天偶遇《Agile in a Flash》一书&#xff0c;第一眼就有想一口气读完的冲动。但好书需要的是慢慢品味&#xff0c;偶尔翻翻也会有不一样的感悟。看过一部分后就有了翻译它的想法&#xff0c;一方面可以让自己慢下来细细研读&#xff0c;另一方面也可以和更多人分享。 专注工作…

cad文字递增快捷键_十年经验总结,100个CAD快捷键。

CAD绘图快捷键命令&#xff1a;1. 圆 > C2. 点 > PO3. 直线 > L4. 圆弧 > A5. 椭圆 > EL6. 表格 > TB7. 矩形 > REC8. 面域 > REG9. 创建块 > B10. 插入块 > I11. 多段线 > PL12. 构造线 > XL13. 图案填充 > H14. 样条曲线 > SPL15.…

【MySql】linux下,设置mysql表名忽略大小写

【障碍再现】 状况描述01&#xff1a;在LINUX下调一个程序经常报出找不到表&#xff0c;但是我明明是建了表的&#xff0c;测试的时候&#xff0c;遇到一些问题&#xff0c;从Windows平台访问虚拟机中的Web应用&#xff0c;经常报出找不到表&#xff0c;但自己明明在数据库中看…

HDOJ1861 游船出租

题目&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1861 代码&#xff1a; #include<stdio.h> #include<stdlib.h> struct info{//记录的数据结构&#xff1b; int id;//船号&#xff1b; char key;//键值&#xff1b; int time;//时间(分钟表示)&#x…

BZOJ 2588 Spoj 10628 Count on a tree | 树上主席树

BZOJ 2588 Count on a tree 题面 求树上两点之间路径上第k大的点权。 题解 一开始看到这道题觉得是树剖&#xff0c;然后又听说是主席树&#xff0c;然后以为是主席树树剖&#xff0c;差点没吓死…… 然后发现&#xff0c;如果每个点都挂一棵主席树&#xff0c;每棵都通过修改父…

会计未来十年发展趋势_谈未来十年会计行业的发展趋势

谈未来十年会计行业的发展方向&#xff0c;会计行业未来十年将变成什么样子?信息化和数据化改变着各行各业&#xff0c;会计行业也不例外&#xff0c;近十年会计行业发生了翻天覆地的变化&#xff0c;10年后&#xff0c;我想还会有巨大的变化。具体变化预想如下&#xff1a;1.…