SDL视频显示进阶
原文地址:http://blog.csdn.net/qingkongyeyue/article/details/53024467
1、SDL中事件和线程(函数同时运行)
2、练习
(1)创建线程
第一个参数是一个函数,创建线程后refresh_video这个函数和下面的while()循环同时执行
(2)refresh_video函数
不断循环,这里的REFRESH_EVENT用于刷新视频的画面,发一个REFRESH_EVENT就延时40ms,用到SDL_PushEvent函数
(3)在循环里(主循环不再有延时,而是放到子线程中,不断循环发送事件,主循环接收事件,改成这样的好处主循环可以响应鼠标的操作,窗口就可以移动啦)
用到REFRESH_EVENT,循环到SDL_waitEvent函数就不往下执行了,如果refresh_video函数发送一个REFRESH_EVENT,就会继续往下执行
(4)屏幕可以随便拉伸,每拉伸一次也是一个事件,对事件进行处理,把窗口设成响应的宽度下面的SDL_WINDOWEVENT是windows系统自带的event,这个event当来回拉伸窗口时被触发,加入没有任何处理函数,拉伸后窗口变化,但是画面大小不变,SDL_GetWindowSize这个函数从SDL的windows中获得拉伸后当前窗口的宽和高存到screen_w和screen_h,在下一次循环的过程中,从而使screen_w和screen_h这两个值发生变化,从而使里面的值发生变化,所以视频自动适应窗口的大小。SDL_QUIT是SDL自带的事件,只要点窗口右上角的叉(X)就会触发这个事件
SDL视频显示进阶的更多相关文章
- FFmpeg再学习 -- SDL 环境搭建和视频显示
继续看雷霄骅的 课程资料 - 基于FFmpeg+SDL的视频播放器的制作 一.SDL 简介 参看:WIKI -- Simple DirectMedia Layer 参看:最简单的视音频播放示例9:SD ...
- 音视频处理之FFmpeg+SDL视频播放器20180409
一.FFmpeg视频解码器 1.视频解码知识 1).纯净的视频解码流程 压缩编码数据->像素数据. 例如解码H.264,就是“H.264码流->YUV”. 2).一般的视频解码流程 视频码 ...
- ffmpeg学习笔记-初识ffmpeg
ffmpeg用来对音视频进行处理,那么在使用ffmpeg前就需要ffmpeg有一个大概的了解,这里使用雷神的ppt素材进行整理,以便于复习 音视频基础知识 视频播放器的原理 播放视频的流程大致如下: ...
- (原)关于sdl在部分机器上做视频显示,改变显示窗口大小会崩溃
今天测试人员反应,之前做的视频绘图显示,会在她机器上,会出现崩溃现象,最后我在她机器上对代码进行跟踪,发现在某种情况,确实会崩溃. 最主要的原因是,视频显示窗口变成非活动窗口的时候,sdl内部会循环消 ...
- SDL 截图、录像、录像播放
截图 使用sdl很简单,视频显示窗口大小,不是视频分辨率大小 int i = Sdl.SDL_SaveBMP(surfacePtr, path); if(i != 0) { MessageBox.Sh ...
- ffmpeg 和 SDL 的结合使用
FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视 频的完整解决方案.它包含了非常先进的音频/视频编解码库 ...
- Beginning SDL 2.0(1) SDL功能简介
原文链接为 http://wiki.libsdl.org/Introduction. 由于近期整理音视频可视化的技术,发现好久不更新的SDL发布了2.0版本,以前也没有过于关注,这里准备尝试下.了解S ...
- Ffmpeg和SDL创建线程(转)
Spawning Threads Overview Last time we added audio support by taking advantage of SDL's audio functi ...
- SDL介绍
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成.SDL提供了数种控制图像.声音.输出入的函数,让开发者只要用相同或是相似的代码就可以开发 ...
随机推荐
- Use a TL431 shunt regulator to limit high ac input voltage
Most isolated, offline SMPSs (switched-mode power supplies), including flyback, forward, and resonan ...
- 畅通工程_hdu_1232(并查集)
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- linux下启动tomcat出现“This file is needed to run this program ”
使用sh startup.sh启动tomcat 出现This file is needed to run this program 原因.sh文件都不是可执行文件,于是找到命令: chmod +x * ...
- 【资料】wod强壮护符
泛用耗材 损坏的 卡罗先活力护符 小型的 强壮护符 改良的 鲁比斯护符 否定护符 活跃护符 自然防御护符 防御疾病护符 特定职业使用耗材护符 野蛮人 诗人 祭司 泛用 仪式用巴博许教的 ...
- EF6 MVC5译文
Contoso大学的Web应用程序 你在本教程中将建立一个简单的大学网站. 用户可以查看和更新学生信息,当然也包括教师的.下列图表是你将创建的应用程序截屏. 本网站的UI样式来源于内置的模板,所以教程 ...
- inno setup检查是否已经安装
[Registry] Root: HKLM; Subkey: "Software\MCS"; ValueType: string; ValueName: "MCSVers ...
- [译林军] 译~CrossBridge 简介
本文由 9ria 社区译林军翻译,转载请注明出处.加入译林军 :http://bbs.9ria.com/thread-286920-1-1.html CrossBridge 是 Adobe Fla ...
- spm教程
1.spm初学者教程:http://www.ernohermans.com/wp-content/uploads/2011/11/spm8_startersguide.pdf 2.spm官方mannu ...
- (原)将Oracle迁移到SQLServer
背景:中了一个标,Oracle改成SQLServer解决办法: 1.首先想到微软的解决方案:Microsoft SQL Server Migration Assistant v7.4 for Orac ...
- Microsoft Visual C++ 6.0预处理器参考手册
返回总目录 Microsoft Visual C++ 6.0 预处理器参考手册 目录引言........................................................ ...