![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sdl
、、、、南山小雨、、、、
秋风吹湘水,落叶满南山.
展开
-
sdl的线程和锁api
SDL_CreateThread //创建线程SDL_WaitThread //等待线程SDL_CreateMutex/SDL_DestroyMutexSDL_LockMutex/SDL_UnlockMutex值得注意的是sdl只含有互斥锁这一种,并没有多种锁。SDL条件变量:SDL_CreateCond/SDL_DestroyCondSDL_CondWait/SDL_CondSignal //等待一个信号量/发送一个信号量注意在SDL_CondSignal源码中,如果它在一个锁锁住的区域,原创 2022-01-10 14:54:22 · 505 阅读 · 0 评论 -
实战--实现任意格式文件的音视频播放器
打开读取文件->解复用->1.如果是视频流->解码成yuv->纹理->渲染器->播放2.如果是音频流->不解码放入缓存队列->sdl音频回调函数(同时解码)->播放其中打开文件,解复用,解码使用ffmpeg,纹理,渲染,播放是sdl完成的。#include <stdio.h>#include <assert.h>#include <SDL.h>#include <libavcodec/avcod原创 2022-01-08 21:33:48 · 197 阅读 · 0 评论 -
实战--ffmpeg与sdl实现最简单的视频播放器
webrtc,udp,tcp,rtsp,rtmp,srt/nginx+rtmp等流媒体协议和服务器。哎呦喂ヾ(✿゚▽゚)ノ~路长馆小,雪轻帘薄,酒热乎,这位爷~您ヾ(✿゚▽゚)ノ~ 里面坐~鉴于国内音视频圈子小,起步晚,以致分享少,门槛高,特开通分享,一起扇动这阵风吧!本公众号专注分享C++,ffmpeg,opencv等相关音视频知识。解复用->解码->yuv->交给纹理->交给渲染器->播放。偶尔分享下程序员梦呓碎碎念(๑•॒̀ ູ॒•́๑)啦啦啦。其中前三步使用ffmpeg实现,后三步用sdl实现。原创 2022-01-08 17:06:02 · 601 阅读 · 0 评论 -
sdl实战--播放pcm音频
流程:打开音频设备->给设备设置音频参数->向声卡喂pcm 数据->播放音频->关闭设备设置音频参数,包括声道,采样率,位深,使得设备知道怎么播放这些音频播放音频的基本原则:1.声卡向你要数据而不是你主动推给声卡,无论使用sdl还是其他库都是这样,这是声卡的工作原理。当声卡需要数据时它会调用回调函数,来向我们要数据。我们要写这个回调函数。2.每次要的数据大小由之前设置的音频参数决定。且声卡会维护一个缓冲区,用来存放接收的数据。SDL_OpenAudio()/SDL_Clo原创 2022-01-04 21:44:58 · 1588 阅读 · 0 评论 -
sdl实战--从yuv文件中读取数据,用显卡渲染视频
大体流程如下:从文件中读取yuv数据->交给纹理->copy到显卡(GPU)->播放其中时间控制为40ms渲染一帧,用一个线程间隔40ms发送一个事件,主线程接收后即开始渲染一帧。#include <stdio.h>#include <string.h>#include <SDL.h>const int bpp=12;int screen_w=500,screen_h=500;#define BLOCK_SIZE 4096000原创 2022-01-03 11:33:02 · 551 阅读 · 0 评论 -
sdl的api基本使用流程
只需要添加一个头文件即可#include<SDL.h>SDL_Init()/SDL_Quit() //初始化和销毁SDL_CreateWindow()/SDL_DestoryWindow() //创建窗口和销毁SDL_CreateRender() //创建一个渲染器作用把视屏帧汇到窗口里去SDL事件基本原理:1.SDL将所有的事件都放在一个队列中。2.所有对事件的操作就是对队列的操作,用户触发一个事件,即是像队列中添加对应的事件,执行完,即弹出一个事件。SDL事件类型:1.窗口原创 2022-01-02 17:17:40 · 738 阅读 · 0 评论 -
sdl编译
http://www.libsdl.org有各种平台的,macos的,windows的,这些都是已经编译好的,如果想自己编译,下载源码就好。./configure --prefix=/usr/local./configure要做的是使用系统的automake产生makefile文件make -j8sudo make install因为sdl是c语言,所以make会调用gcc编译,-j 8是指用八个线程编......原创 2022-01-02 15:03:46 · 773 阅读 · 0 评论