SDL
文章平均质量分 69
SuperDali
写写博客,记记生活
展开
-
SDL2:第一个程序(Mac)
SDL官网:https://www.libsdl.org/SDL2.0文档地址:http://wiki.libsdl.org/Introduction简介直接翻译了一下官网介绍:简单的DirectMedia Layer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频,键盘,鼠标,操纵杆和图形硬件的低层访问。 它被视频播放软件,模拟器和流行游戏使用,包括Valve屡获殊荣...原创 2019-05-02 21:21:38 · 7661 阅读 · 4 评论 -
SDL2:第四个程序(Mac):显示YUV数据
在上一个程序SDL2:第三个程序(Mac):显示任意图片我们利用sdl2_image库已经可以做到显示任意格式的图片了。可我这种最终要利用SDL2做视频工具的男人,怎么会满足于小小的图片呢。因为FFmpeg解码出来的视频帧数据是以YUV数据的格式展现,所以我必须先弄清楚YUV格式,在SDL2中是怎么显示的。为此,我专门用FFmpeg命令,将小王子的图片从jpg格式,转成了I420的YUV4:...原创 2019-05-10 21:04:15 · 778 阅读 · 2 评论 -
SDL2常用函数&结构分析:SDL_Texture&SDL_CreateTexture&SDL_UpdateTexture
SDL_TextureSDL_Texture是计算机图形图像中,如何在屏幕上显示图像的一个数据的抽象。中文也已翻译为纹理。这种概念在OpenGL中也有出现。对于SDL_Texture本身来说,它包含了显示驱动用于显示的特定数据结构。SDL_Texture的创建一半通过SDL_CreateTexture创建,创建一次后,可以重复使用,通过SDL_UpdateTexture函数更新数据。SDL_...原创 2019-05-10 20:54:39 · 4802 阅读 · 0 评论 -
FFmpeg播放器(一):FFmpeg+SDL2播放视频数据
基本调用流程做了一个利用ffmpeg解码出yuv数据,通过SDL2显示数据的demo,记录一下。视频源使用的是网上源:http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4也不知道是谁家的,先感谢一下吧。代码算是最基本的代码了,没有做过度的抽取封装,个人觉得这种代码更加易学。能够直观的看出FFmpeg和SDL2的接口调用顺序。其中FFmpeg...原创 2019-05-14 23:41:30 · 1676 阅读 · 2 评论 -
SDL2常用函数&结构分析:SDL_Renderer&SDL_CreateRenderer&SDL_RenderCopy&SDL_RenderPresent
SDL_RendererSDL_Renderer是一个结构体,用来表示SDL2中渲染器的状态。从代码的使用上来讲,你也可以把它视为渲染器本身。我们可以利用它产生纹理,也可以用来渲染视图。通常,SDL_Renderer实例由SDL_CreateRenderer函数创建。SDL_CreateRenderer函数原型:SDL_Renderer* SDL_CreateRenderer(SDL_Wi...原创 2019-05-09 23:30:31 · 4024 阅读 · 0 评论 -
SDL_UpdateTexture+ffmpeg播放YUV数据程序异常崩溃:VM Regions Near 0x113e3d000:MALLOC_LARGE
异常代码:#include <iostream>#include <map>#include <pthread.h>extern "C" {#include <libavformat/avformat.h>#include <libavcodec/avcodec.h>#include <libswscale/swsc...原创 2019-05-14 13:19:06 · 22362 阅读 · 1 评论 -
SDL2:第三个程序(Mac):显示任意图片
在上一个程序SDL2:第二个程序(Mac):显示BMP位图中,我们利用SDL2的公共API,在SDL窗体上加载了一个位图(BMP)。要加载任意格式的图片,仅仅依靠默认API是不够的,需要引入另外的图片库:sdl2_image安装sdl2_image执行命令:brew install sdl2_image执行结果:==> Installing dependencies for s...原创 2019-05-04 00:54:42 · 933 阅读 · 0 评论 -
SDL2:第二个程序(Mac):显示BMP位图
继上一个SDL2程序(SDL2:第一个程序(Mac)),我们使用SDL2打开了一个黑色的窗口。世界应该是彩色的,怎么能让黑色霸占呢,是时候让阳光驱逐黑暗了,今天,我要用SDL2显示一张图片。为此,我花重金请了位模特,拍了张照片。我待会儿就要让小王子进入SDL的世界。代码还是第一个程序的代码,只不过在上面稍作修改。首先是CMakeLists.txt文件cmake_minimum_req...原创 2019-05-03 18:44:00 · 758 阅读 · 2 评论 -
SDL2常用函数&结构分析:SDL_BlitSurface&SDL_UpdateWindowSurface
SDL_BlitSurface函数功能:将一个surface的数据快速复制到目标surface中。函数原型:int SDL_BlitSurface(SDL_Surface* src, const SDL_Rect* srcrect, SDL_Surface* dst, ...原创 2019-05-03 17:47:08 · 2408 阅读 · 0 评论 -
SDL2常用函数&结构分析:SDL_Surface&SDL_GetWindowSurface&SDL_LoadBMP
SDL_SurfaceSDL_Surface的官方定义为:A collection of pixels used in software blitting.(软件blitting中使用的像素集合)这么一看,还真不好理解,blitting到底是个啥意思,起初我以为是文化差异造成的。Google了一下,发现有搜索这个解释的国外大兄弟还有很多,在Stack overflow中找到一个比较靠谱易懂的说...原创 2019-05-03 17:23:29 · 5484 阅读 · 1 评论 -
SDL2常用函数&结构分析:SDL_Event&SDL_PollEvent
SDL_EventSDL_Event是个联合体,是SDL中所有事件处理的核心。 SDL_Event是SDL中使用的所有事件结构的并集。 只要知道了那个事件类型对应SDL_Event结构的那个成员,使用它是一个简单的事情。下表罗列了所有SDL_Event的所有成员和对应类型。Uint32typeevent type, shared with all eventsSDL_C...原创 2019-05-03 15:16:19 · 5229 阅读 · 0 评论 -
SDL2常用函数&结构分析:SDL_Window&SDL_CreateWindow
SDL2常用函数&结构分析:SDL_Window&SDL_CreateWindowSDL_WindowSDL_Window:结构体,描述了一个窗体对象,表示的是会呈现在设备上一个窗体,所有图像的载体。一般通过SDL_CreateWindow函数创建,和SDL_DestroyWindow销毁。SDL_CreateWindow函数原型:SDL_Window* SDL_Crea...原创 2019-05-03 15:13:08 · 4838 阅读 · 0 评论 -
SDL2常用函数&结构分析:SDL_Init
SDL_Init函数原型如下:int SDL_Init(Uint32 flags)使用此函数初始化SDL库,必须在使用大多数其他SDL函数之前调用它。参数:flags 表示需要初始化那些子系统。常见的子系统和对应的flag如下:flags子系统SDL_INIT_TIMER计时器子系统SDL_INIT_AUDIO音频子系统SDL_INIT_VIDEO...原创 2019-05-03 15:09:51 · 1346 阅读 · 1 评论 -
SDL2:第五个程序:播放pcm数据
播放音频数据对一个播放器来说是不可或缺的,索性SDL2支持播放视频数据之外,也支持播放音频数据。废话不多说,先来试试吧!使用FFmpeg命令提取PCM数据这里从网上下了一首歌Forevermore,非常好听,是mp3格式的:Forevermore.mp3。在提取Forevermore中的pcm数据时,为了使提取数据的基本采样率编解码格式等不发生改变,先用ffprobe命令探测一下该原数据的基...原创 2019-05-17 00:26:58 · 2083 阅读 · 4 评论