摄像头视频播放采用sdl,下面简单介绍下。不保证正确及网址永远有效。后面文章采用tao框架http://sourceforge.net/projects/taoframework/     
SDL.dll 版本1.2.14
Tao.Sdl.dll 版本1.2.13
 
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。
 

相关网站和下载:

http://sourceforge.net/projects/taoframework/
http://www.mono-project.com/archived/tao/
http://www.libsdl.org/
http://cs-sdl.sourceforge.net/index.php/news?start=54
 

1.SDL是一个2D游戏引擎(国内这么说,但是我觉得把它称为“引擎”还是太过了,我觉得引擎级别应该至少到framework了,SDL提供的功能没有这么强大。),其提供一个游戏必要的一些简单的API接口,并且非常底层。

2.SDL最牛逼之处就在于其简单、跨平台。一切基于SDL的代码都应该是高度portable的。所以可以考虑做一个基于SDL的中间件,估计挺有卖点。

3.SDL免费,开源。

4.可以搜一下著名的linux下战略类游戏 韦诺战争(貌似没有WINDOWS版本)。就是基于SDL的大作。

5.SDL貌似经常用来写跨平台播放器,很方便。

SDL里有啥?

1.技术支持
SDL团队是我见过网上办事最有效率的团队。在Sam Latinga等帮助下,一帮牛逼志愿者维护其代码,并且不断移植到新的平台。SDL的mailing list(BY CG 请原谅我的火星,看了一下貌似国外很多网站都有这种机构,把对官方的询问EMAIL记录都贴到网上的一种机制。)为SDL用户们提供永远的快捷服务。mailing list提供庞大的SDL使用信息和在游戏开发过程中的问题解决方法。

2.初始化和释放
我们平时在每个平台下开发,都要求程序员写一些平台相关的代码,来指引操作系统做什么、硬件做什么。那么,你不得不写更多的平台相关代码。你需要设置显示模式、初始化音频系统、检测鼠标或者摇杆……而且在游戏结束之后你要清空或释放这些你用到的资源。。这些代码基本在每个工程里都相同,SDL提供一种简单的机制来检测硬件,只需要几行简单的代码你就能初始化资源,释放资源就更别提了。并且SDL离的代码可以到处拷贝和复用到其他工程。

3.基于事件的输入机制
SDL提供键盘、鼠标、摇杆输入,使用事件机制,这样就是的在X11、WINDOWS或者MAC OS上的开发者感到非常亲切了。不同的是,SDL不管你在什么操作系统上,都提供给你相同的事件,并且它不会让你处理操作系统相关的那堆让你写游戏过程中不爽的事件。

4.时间和定时器
每个游戏程序都需要知道时间,并且需要知道一个行动什么时候发生。SDL提供一个跨平台的,清晰、简单、可信的时间机制和定时器API。SDL的定时器API允许同时创建上千个定时器,而且比我以前用的其他库的定时器要用的爽。

5.声音
SDL提供一套简单的API控制声卡,根据需要操控不同的硬件设备。即时硬件支持度较低,它也能干活。在这一点上非常符合它的“精简达意”哲学观。在另一方面,还有许多SDL团队不断开发出来的SDL声音库。

6.光驱
SDL提供读、播放光驱的API。无敌了!(BY CG,谁告诉我这里 Can't beat it. 咋翻译?)

7.图像
SDL提供给你一个尽情发挥图形处理的机会。你可以从像素级拿数据然后随你怎么处理,或者你可以用OPENGL来做2D、3D的硬件加速。这是在任何硬件设备上都能做的,因为OPENGL支持所有的3D显卡,它是安全、可移植的,并且很生猛的跨平台3D库。SDL可以设置视频模式,可以访问帧缓冲区,如果你需要,还为你初始化OPENGL。SDL将解除你制作全屏游戏模式的痛苦(BY CG,不知道痛苦在哪。。没用过太底层图形库的人飘过),同样,也可以做窗口游戏。

8.网络
SDL包含了一组底层的网络API,让你可以控制基于TCP/IP或者UDP/IP的scokets。这一组API和UNIX、WINDOWS的网络API很像,不同的是它只让你用网络特性,可以跨平台。并且这些API已经实现一些底层的功能,不用让你在写网络通讯代码的时候觉得痛苦。

9.线程
SDL提供一套像pthreads简单版本(BY CG,又不知道是啥了。。我靠,我太弱了)的线程API。SDL线程提供线程管理的基本函数。而且也是跨平台的。

SDL的不足之处

唯一让我觉得不爽的就是它的文档,有的地方有小错误,有的地方给得太吝啬了。但是这比起这个伟大的游戏开发库来说不算什么,这些文档带来的疑惑你都可以在写代码的过程中 或者看其他示例代码来搞定。

SDL多少¥?

免费!SDL 基于LGPL(BY CG貌似是某种免费协议机制?),你只需要遵守一些简单的规章,每个人都能获得免费的SDL认证。

在Win32编程中,如果要操纵2D图像,可以选择使用GDI或者DirectDraw,前者速度较慢,而后者是特定针对Microsoft平台的,在非Win32平台上移植会带来很大的麻烦。这时,你可以选择使用SDL。SDL支持多种平台:Linux、Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX和QNX,同时也部分支持部分其他平台:Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS和SymbianOS。当然SDL本身是针对2D图像编程的,如果使用到3D编程,那么需要将SDL和OpenGL结合使用。

  SDL是用C编写的,但是也支持C++,同时其他多种语言,下面给出了其他语言的SDL的开发包的相关信息:

  ·Ada 
   AdaSDL - http://sourceforge.net/projects/adasdl/ 
  ·C# 
   SDL.Net - http://cs-sdl.sourceforge.net/ 
  ·Eiffel 
   ewg - http://ewg.sourceforge.net/ 
  ·Erlang 
   ESDL - http://www.ericsson.com/cslab/~dgud/esdl/ 
  ·Euphoria 
   SDL_Wrap - http://www.rapideuphoria.com/sdl_wrap.zip 
  ·Guile 
   guile-sdl - http://sourceforge.net/projects/guile-sdl/ 
  ·Java 
   JSDL - http://jsdl.sourceforge.net/ 
   sdljava - http://sdljava.sourceforge.net 
  ·Lisp 
   CL-SDL - http://cl-sdl.sourceforge.net/ 
   SDL for Corman Common Lisp - http://www.balooga.com/lisp_sdl.php3 
  ·Lua 
   luaSDL - http://lua-users.org/wiki/LuaModuleLuaSdl 
  ·ML 
   SDLML - http://www.HardcoreProcessing.com/Freeware/SDLML.html 
   OCamlSDL - http://ocamlsdl.sourceforge.net/ 
  ·Objective C 
   SDLOBJC - http://savannah.nongnu.org/projects/sdlobjc/ 
  ·Pascal 
   SDL4Freepascal - http://sdl4fp.sourceforge.net/ 
   JEDI-SDL - http://www.delphi-jedi.org/Jedi:TEAM_SDL_HOME 
  ·Perl 
   SDLPerl - http://sdl.perl.org 
  ·PHP 
   PHP SDL module - http://phpsdl.sourceforge.net 
  ·Pike 
   Natively supported (module SDL) - http://pike.ida.liu.se/ 
  ·Pliant 
   Pligame - http://pligame.sourceforge.net/ 
  ·Python 
   PyGame - http://pygame.seul.org/ 
  ·Ruby 
   Ruby/SDL - http://www.kmc.kyoto-u.ac.jp/~ohai/index.en.html 
   RUDL - http://rudl.sourceforge.net

  功能

  视频

  ·设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持,可以选择转化为另一模式。

  ·直接写入线性的图像帧缓冲(framebuffer)。

  ·用颜色键值(colorkey)或者alpha混合属性创建用于绘图的表面(surface)。

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

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

  事件

  ·提供以下事件:

  o 应用程序的visibility(可视性)发生改变

  o 键盘输入

  o 鼠标输入

  o 用户要求的退出

  ·每种事件都能通过SDL_EventState()关闭或者打开。

  ·事件经由用户指定的过滤函数再被加入到内部的事件队列。

  ·线程安全的事件队列。

  音频

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

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

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

  CD音频

  ·完整的CD音频控制API

  线程

  ·简单的线程创建API

  ·用于同步的简单的二进制信号量(semaphores)

  定时器

  ·读取已流逝的毫秒数。

  ·等待指定的毫秒数。

  ·设置一个10毫秒精度的周期性定时器。

  字节序无关

  ·侦测当前系统的字节序

  ·快速转换数据的函数

  ·读写指定字节序的数据

http://blog.chinaunix.net/uid-23544240-id-3077934.html

http://swee.iteye.com/blog/1435046

https://www.baidu.com/link?url=lseUErEN8Hx6pD31rBZw3EQuRILG35d-eiiIIcP4qHLum1mTNI1mpXWMUgsiHnXejIwjsrwmPGpcxHBLajTRha&wd=&eqid=b297a5800008b36a0000000555dd1373

SDL简介(网络汇总)的更多相关文章

  1. SDL 简介

    SDL 简介 什么是SDL? 即 Simple DirectMedia Layer,使用 LGPL 许可证. 免费的跨平台多媒体应用编程接口 用于游戏.游戏开发工具.模拟器.样本演示.多媒体应用等 它 ...

  2. DirectX的替代品 SDL 简介

    DirectX的替代品 SDL 简介 什么是SDL? 即 Simple DirectMedia Layer,使用 LGPL 许可证. 免费的跨平台多媒体应用编程接口 用于游戏.游戏开发工具.模拟器.样 ...

  3. 子网划分、变长子网掩码和TCP/IP排错__子网、掩码、网络汇总

    1.如何创建子网? 要创建子网,就需要从IP地址的主机部分中借出一定的位,并且保留它们用来定义子网地址.这意味着用于主机的位减少,所以子网越多,可用于定义主机的位越少. 2.子网划分的好处: 1)缩减 ...

  4. vCenter 部件关系简介 & 网络原理

    目录 目录 主机和集群 vCenter Datacenter Cluster Host Virtual Machine Folder Resource Pool Template 数据存储 Datas ...

  5. 软件开发架构,网络编程简介,OSI七层协议,TCP和UDP协议

    软件开发架构 什么是软件开发架构 1.软件架构是一个系统的草图. 2.软件架构描述的对象是直接构成系统的抽象组件. 3.各个组件之间的连接则明确和相对细致地描述组件之间的通讯. 4.在实现阶段,这些抽 ...

  6. 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(1): 基础知识Beautiful Soup

    开始学习网络数据挖掘方面的知识,首先从Beautiful Soup入手(Beautiful Soup是一个Python库,功能是从HTML和XML中解析数据),打算以三篇博文纪录学习Beautiful ...

  7. 多媒体开发库 之 SDL 详解

    SDL 简介 SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成.SDL提供了数种控制图像.声音.输出入的函数,让开发者只要用相同或是相似的 ...

  8. mysql案例~非常规操作汇总

    一 简介:此文汇总mysql不常见的数据库的操作二 mysql表修改最大自增ID 目的: 修复canal相关问题 语法: alter table a AUTO_INCREMENT=num; 执行速度: ...

  9. FFmpeg再学习 -- SDL 环境搭建和视频显示

    继续看雷霄骅的 课程资料 - 基于FFmpeg+SDL的视频播放器的制作 一.SDL 简介 参看:WIKI -- Simple DirectMedia Layer 参看:最简单的视音频播放示例9:SD ...

随机推荐

  1. SQLServer 日期函数大全

    一.统计语句 1.--统计当前[>当天00点以后的数据] ) ) ORDER BY dateandtime DESC 2.--统计本周 3.--统计本月 4.统计当前 SELECT * FROM ...

  2. nodejs中stream相关资料

    nodejs中流(stream)的理解 nodejs stream 手册完整中文版本 nodejs stream详细使用介绍

  3. nginx转发会 默认忽略 headers 中name带”_”的

    昨天遇到一个很蛋疼的问题,在提供的一个 http api中,有定义了一个"X_AUTH_TOKEN"自定义head,可是请求这个api时带上"X_AUTH_TOKEN&q ...

  4. spring3.0+mybatis+spring快速入门

    一.首先奉上项目目录结构: 说明: dao,mapping,model包下的所有内容可以使用Generator工具自助生成. 具体用法,可以网上学习一下,比较简单,主要做以下工作: 1.提供相关的数据 ...

  5. 【第一篇献给markdown】markdown入门

    Markdown 是一种轻量级的「标记语言」,语法十分简单,常用的标记符号也不超过十个.虽然功能很强大,但是上手估计不用十分钟. 一些认识 Markdown 官方文档 这里可以看到官方的 Markdo ...

  6. 洛谷P1373 小a和uim之大逃离[背包DP]

    题目背景 小a和uim来到雨林中探险.突然一阵北风吹来,一片乌云从北部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个 ...

  7. NYOJ 70

    描述:给定两个数n,m,其中m是一个素数. 将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m. 注:^为求幂符号. 输入: 第一行是一个整数s(0<s<=100) ...

  8. python文件读写的学习

    文件的读写: file.flush()  # 强制刷新 file.readlines()  # 将所有的内容生成一个列表,不适合操作大文件 for line in file:  # file相当于一个 ...

  9. 嵌入式Linux驱动学习之路(十五)按键驱动-定时器防抖

    在之前的定时器驱动程序中,我们发现在连续按下按键的时候,正常情况下应该是一次按下对应一次松开.而程序有时候会显示是两次按下,一次松开.这个问题是因为在按下的时候,因为是机械按键,所以电压信号会产生一定 ...

  10. [codevs 2800]送外卖

    题目描述 Description 有一个送外卖的,他手上有n份订单,他要把n份东西,分别送达n个不同的客户的手上.n个不同的客户分别在1~n个编号的城市中.送外卖的从0号城市出发,然后n个城市都要走一 ...