SDL 锁屏视频卡死bug原因

        最近在封装播放库,我用的是FFMPEG+SDL库封装,这个库其实用起来不难,因为网上可供参考的资源也多,所以我自己也封装了一个,但是播放视频时只要我电脑一锁屏再重新打开,我靠视频卡住不动了,我调试看来下渲染也是正常的,最后终于解决了

方法一:网上介绍的,获取windows锁屏信号,然后重新播放,但是这种我感觉不太友好

方法二:渲染和纹理不在同一个线程运行,这个就是我遇到的问题。

最后 

 m_SdlRender = SDL_CreateRenderer(m_SdlWindow, -1, SDL_RendererFlags::SDL_RENDERER_ACCELERATED);

SDL_CreateTexture(m_SdlRender, SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_STREAMING, 1920, 1080);

SDL_UpdateYUVTexture(m_SdlTexture, NULL, y, y_pitch, u, u_pitch, v, v_pitch);

    SDL_RenderClear(m_SdlRender);

SDL_RenderCopy(m_SdlRender, m_SdlTexture, NULL, prect);

SDL_RenderPresent(m_SdlRender);

这些放在同一个线程就解决啦。。。。浪费我两天时间。。。

后续我回头把封装好的库上传下,有需要的话关注下,谢谢!!!

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

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

相关文章

gitlab自动部署是什么 gitlab自动部署如何进行操作

在现代软件开发流程中,自动化部署是提高效率和确保软件质量的关键环节。GitLab作为一个强大的DevOps平台,提供了完整的自动部署工具,帮助开发团队实现代码从编写到生产的无缝转换。本文将详细解析GitLab的自动部署功能是什么,如何…

C语言典型例题37

《C程序设计教程(第四版)——谭浩强》 例题3.5 按照按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为 60~69分,D等在60分以下,成绩的等级从键盘输入 代码: //…

搜维尔科技:Varjo XR-4 功能详解:实现业界首个凝视驱动自动对焦系统

对可变焦光学元件的需求 目前,所有其他XR HMD都在视频直通摄像头中使用定焦光学元件,其焦距无法改变。人眼可以辨别高达约 60 像素/度 ( PPD ) 的细节,但定焦光学元件的问题在于,在实践中,它们的分辨率极限约为 30 PP…

vulnhub靶机 DC-9(渗透测试详解)

一、靶机信息收集 1、靶机下载 https://download.vulnhub.com/dc/DC-9.zip 2、靶机IP扫描 3、探测靶机主机、端口、服务版本信息 4、靶机目录扫描 二、web渗透测试 1、访问靶机IP 查看页面功能点,发现一个搜索框和登录框 2、测试一下是否存在sql注入 查看当前数…

激光雷达点云投影到图像平面

将激光雷达点云投影到图像平面涉及几何变换和相机模型的应用。以下是该过程的基本原理: 1. 坐标系转换 激光雷达生成的点云通常位于激光雷达的坐标系中,而图像则在相机坐标系中。为了将点云投影到图像上,首先需要将点云从激光雷达坐标系转换…

GitHub Actions 遭利用,14个热门开源项目令牌泄露风险激增

近日,有攻击者通过 CI/CD 工作流中的 GitHub Actions 工具窃取了谷歌、微软、AWS 和 Red Hat 等多个知名开源项目的 GitHub 身份验证令牌。 窃取这些令牌的攻击者可在未经授权的情况下访问私有存储库、窃取源代码或向项目中注入恶意代码。 Palo Alto Networks Un…

docker部署redis

1.搜索镜像 docker search redis 2.拉取镜像 可省略第二步,直接执行第三步 docker pull redis 3.创建Redis容器并设置密码 也可以不设置密码 不设置密码: docker run -d -p 6379:6379 \ -v /Users/hal/DevelopmentToolkit/redis/redis.conf:/etc/red…

【漏洞复现】某骋BPM系统——Handler.ashx——sql注入

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 某骋BPM系统是一款功能全面的商业流程管理平台,旨在帮助企业实现…

SpringCloud Sleuth2

继SpringCloud Sleuth-CSDN博客 使用RabbitMQ收集链路数据 引导 通过Spring Cloud Sleuth整合Zipkin,已经实现了通过HTTP方式收集链路跟踪信息,除了使用HTTP方式之外,还可以使用RabbitMQ消息中间件异步收集链路跟踪信息。本节讲解如何通过R…

STM32cubemxide v1.0.0开发烧录

STM32cubemxide v1.0.0开发烧录 1.介绍2.烧录 1.介绍 使用STM32cubemxide v1.0.0是因为他自带的freertos版本是10.0.1版本,虽然里面也有做更改而且也加入了亚马逊的代码,但是比较接近未被修改的freertos9版本的代码,也可以去官网下载。 STM32Cubemxide …

day 26网络编程—协议

1、协议:通信双方约定的一套标准 2、国际网络通信协议标准: 1.OSI协议: 应用层 发送的数据内容 表示层 数据是否加密 会话层 是否建立会话连接 传输层 数据传输的…

Processing用多方形绘制代码

案例代码如下: import processing.pdf.*; import java.util.Calendar; boolean recordPDF false; void setup(){ size(720,720); smooth(); noFill(); background(255); } void draw(){ if(mousePressed){ translate(width/2,height/2); int c…

超越GPT-4 ,金融分析新突破:FinTral多模态大模型

人工智能咨询培训老师叶梓 转载标明出处 在金融领域,对大量非结构化数据的处理和分析一直是行业面临的重要挑战。为了解决这一问题,由不列颠哥伦比亚大学和Invertible AI的研究团队共同提出了一套名为FinTral的先进多模态大模型(LLMs&#xf…

C#中的多线程案例

使用Task写一个进度条 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.For…

Docker——常用命令

1.Docker是做什么的? Docker 是一个开源的应用容器引擎,它让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。它可以帮助我们下载应用镜像,创建并运行镜…

Spring DI 简单演示三层架构——Setter 注入

Spring IOC 的常见注入方法有3种:Setter注入、构造注入和属性注入。想了解更多可点击链接:Spring 注入、注解以及相关内容补充 属性注入 不推荐。原因:使用私有的成员属性变量,依靠反射实现,破坏封装,只能依…

opencv 控制鼠标键盘实现功能setMouseCallback

鼠标事件类型 OpenCV 支持多种鼠标事件类型,常见的包括: cv2.EVENT_LBUTTONDOWN:左键按下 cv2.EVENT_RBUTTONDOWN:右键按下 cv2.EVENT_MBUTTONDOWN:中键按下 cv2.EVENT_LBUTTONUP:左键释放 cv2.EVENT_RBUTT…

HOW - 用腾讯蓝盾部署一个 Web 应用

目录 一、介绍二、项目、流水线和 Stage1. 项目(Project)2. 流水线(Pipeline)3. Stage(阶段)示例:配置一个简单的 CI/CD 流程的基本步骤总结 三、一条完整的流水线包括什么 Stage1. 源代码管理&…

数据库-DML语言-数据操作语言

定义 DML是对表中数据进行操作的语言,涉及的关键字:INSERT UPDATE DELETE INSERT:向表中插入新数据的语句UPDATE:修改表中数据的语句DELETE:删除表中数据的语句 准备工作 USE mydb; 使用mydb库 CREATE TABLE person( 创建表personname VARCHAR(30),age INT…

麒麟v10(ky10.x86_64)升级——openssl-3.2.2、openssh-9.8p1

系统版本: ky10.x86_64 下载安装包并上传 openssh下载地址 https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable openssl下载地址 https://openssl-library.org/source/index.html zlib下载地址 https://zlib.net/fossils/ 上传安装包 备份配置文件 cp -r /etc/ssh /et…