您的位置:首页 > 其它

SDL详情介绍

2017-08-25 11:47 204 查看
SDL库的作用说白了就是封装了复杂的视音频底层操作,简化了视音频处理的难度。主要用于播放视频,与FFmpeg的区别就是,FFmpeg是用于编解码视频文件,而SDL是把FFmpeg解码后的视频像素数据就行播放展示出来。

SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。

SDL库分为 Video、Audio、CD-ROM、Joystick 和 Timer 等若干子系统,除此之外,还有一些单独的官方扩充函数库。这些库由官方网站提供,并包含在官方文档中,共同组成了SDL的“标准库”:

SDL_image—支持时下流行的图像格式:BMP、PPM、XPM、 PCX、GIF、JPEG、PNG、TGA。

SDL_mixer—更多的声音输出函数以及更多的声音格式支持。

SDL_net—网络支持。

SDL_ttf—TrueType字体渲染支持。

SDL_rtf—简单的RTF渲染支持。

子系统

SDL将功能分成下列数个子系统(subsystem):

Video(图像)—图像控制以及线程(thread)和事件管理(event)。

Audio(声音)—声音控制

Joystick(摇杆)—游戏摇杆控制

CD-ROM(光盘驱动器)—光盘媒体控制

Window Management(视窗管理)-与视窗程序设计集成

Event(事件驱动)-处理事件驱动

SDL功能

视频

设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持,可以选择转化为另一模式。 直接写入线性的图像帧缓冲(framebuffer)。 用颜色键值(colorkey)或者alpha混合属性创建surface。

Surface的blit能自动的转化为目标格式。blit是优化过的,并能使用硬件加速。x86平台上有针对MMX优化过的blit。

硬件加速的blit和fill(填充)操作,如果硬件支持的话。

事件

提供以下事件: 应用程序的visibility发生改变 键盘输入 鼠标输入 用户要求的退出

每种事件都能通过SDL_EventState()关闭或者打开。 事件经由用户指定的过滤函数再被加入到内部的事件队列。 线程安全的事件队列。

音频

设置8位和16位的音频,单声道或者立体声,如果格式硬件不支持,可以选择转换。

由独立的线程执行音频部分,并提供用户回调(callback)机制。

设计上考虑到了客户定制的软混音器,但实际上在例程中就包含了一个完整的音频/音乐输出库。

CD音频

完整的CD音频控制API 线程 简单的线程创建API 用于同步的简单的二进制信号量(semaphores)

定时器

读取已流逝的毫秒数。 等待指定的毫秒数。 设置一个10毫秒精度的周期性定时器。

字节序无关

侦测当前系统的字节序 快速转换数据的函数 读写指定字节序的数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sdl 视频