ffmpeg代码解析

void avdevice_register_all(void)
{
    static int
initialized;
    if
(initialized)
       
return;
    initialized = 1;

    /*
devices */
   
REGISTER_INOUTDEV(ALSA,            
alsa);
    REGISTER_INDEV  
(AVFOUNDATION,     avfoundation);
   
REGISTER_INDEV  
(BKTR,            
bktr);
    REGISTER_OUTDEV 
(CACA,            
caca);
    REGISTER_OUTDEV 
(DECKLINK,        
decklink);
    REGISTER_INDEV  
(DSHOW,           
dshow);
    REGISTER_INDEV  
(DV1394,          
dv1394);
   
REGISTER_INOUTDEV(FBDEV,           
fbdev);
    REGISTER_INDEV  
(GDIGRAB,         
gdigrab);
    REGISTER_INDEV  
(IEC61883,        
iec61883);
    REGISTER_INDEV  
(JACK,            
jack);
    REGISTER_INDEV  
(LAVFI,           
lavfi);
    REGISTER_INDEV  
(OPENAL,          
openal);
    REGISTER_OUTDEV 
(OPENGL,          
opengl);
   
REGISTER_INOUTDEV(OSS,             
oss);
   
REGISTER_INOUTDEV(PULSE,           
pulse);
    REGISTER_INDEV  
(QTKIT,           
qtkit);
    REGISTER_OUTDEV 
(SDL,             
sdl);
   
REGISTER_INOUTDEV(SNDIO,           
sndio);
   
REGISTER_INOUTDEV(V4L2,            
v4l2);
//    REGISTER_INDEV  
(V4L,             
v4l
    REGISTER_INDEV  
(VFWCAP,          
vfwcap);
    REGISTER_INDEV  
(X11GRAB,         
x11grab);
    REGISTER_OUTDEV 
(XV,              
xv);

    /* external libraries */
   
REGISTER_INDEV  
(LIBCDIO,         
libcdio);
    REGISTER_INDEV  
(LIBDC1394,       
libdc1394);
}

ALSA(高级Linux声音架构的简称)

ALSA是Advanced Linux Sound
Architecture,高级Linux声音架构的简称,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital
Interface,音乐设备数字化接口)的支持
。在2.6系列内核中,ALSA已经成为默认的声音子系统,用来替换2.4系列内核中的OSS(Open Sound
System,开放声音系统)。[2]

ALSA的主要特性包括:高效地支持从消费类入门级声卡到专业级音频设备所有类型的音频接口,完全模块化的设计, 支持对称多处理(SMP)和线程安全,对OSS的向后兼容,以及提供了用户空间的alsa-lib库来简化应用程序的开发。

ALSA是一个完全开放源代码的音频驱动程序集,除了像OSS那样提供了一组内核驱动程序模块之外,ALSA还专门为简化应用程序的编写提供了相应的函数库,与OSS提供的基于ioctl的原始编程接口相比,ALSA函数库使用起来要更加方便一些。利用该函数库,开发人员可以方便快捷的开发出自己的应用程序,细节则留给函数库内部处理。当然
ALSA也提供了类似于OSS的系统接口,不过ALSA的开发者建议应用程序开发者使用音频函数库而不是驱动程序的API。

Linux中ALSA的主要文件:

include/sound/driver.h

sound/core/*.c

注:OSS(Open Sound System)是Linux中的另外一个音频驱动程序框架。

OpenCL

编辑

OpenCL(全称Open Computing
Language,开放运算语言)是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、娱乐、科研、医疗等各种领域都有广阔的发展前景。

ffmpeg代码解析,码迷,mamicode.com

时间: 2024-08-08 09:26:26

ffmpeg代码解析的相关文章

[nRF51822] 10、基础实验代码解析大全 · 实验15 - RTC

一.实验内容: 配置NRF51822 的RTC0 的TICK 频率为8Hz,COMPARE0 匹配事件触发周期为3 秒,并使能了TICK 和COMPARE0 中断. TICK 中断中驱动指示灯D1 翻转状态, 即指示灯D1 以8Hz 的速率翻转状态 COMPARE0 中断中点亮指示灯D2 二.nRF51822的内部RTC结构: NRF51822 有两个RTC 时钟:RTC0,RTC1.两个RTC 均为24 位,使用LFCLK 低频时钟,并带有12 位分频器,可产生TICK.compare 和溢出

(转)Java二进制指令代码解析

转自http://www.blogjava.net/DLevin/archive/2011/09/13/358497.html Java二进制指令代码解析 Java源码在运行之前都要编译成为字节码格式(如.class文件),然后由ClassLoader将字节码载入运行.在字节码文件中,指令代码只是其中的一部分,里面还记录了字节码文件的编译版本.常量池.访问权限.所有成员变量和成员方法等信息(详见Java字节码格式详解).本文主要简单介绍不同Java指令的功能以及在代码中如何解析二进制指令. Ja

Storm中的LocalState 代码解析

官方的解释这个类为: /** * A simple, durable, atomic K/V database. *Very inefficient*, should only be * used for occasional reads/writes. Every read/write hits disk. */ 简单来理解就是这个类每次读写都会将一个Map<Object, Object>的对象序列化存储到磁盘中,读的时候将其反序列化. 构造函数指定的参数就是你在磁盘中存储的目录,同时也作为

Java二进制指令代码解析

http://www.blogjava.net/DLevin/archive/2011/09/13/358497.html http://blog.csdn.net/sum_rain/article/details/39892219 http://www.blogjava.net/DLevin/archive/2011/09/13/358497.html Java二进制指令代码解析 小注:去年在看<深入解析JVM>书的时候做的一些记录,同时参考了<Java虚拟机规范>.只是对指令的

[nRF51822] 12、基础实验代码解析大全 &#183; 实验19 - PWM

一.PWM概述: PWM(Pulse Width Modulation):脉冲宽度调制技术,通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形. PWM 的几个基本概念: 1) 占空比:占空比是指在一个周期内,信号处于高电平的时间占整个信号周期的百分比,方波的占空比是50%. 2) 调制频率:周期的倒数. 3) 脉冲宽度:信号处于高电平的时间. 二.nRF51822的PWM产生: NRF51822 通过Timer.PPI 和GPIOTE 的配合实现PWM 的功能,由Timer 产生一个事件,

[nRF51822] 11、基础实验代码解析大全 &#183; 实验16 - 内部FLASH读写

 一.实验内容: 通过串口发送单个字符到NRF51822,NRF51822 接收到字符后将其写入到FLASH 的最后一页,之后将其读出并通过串口打印出数据. 二.nRF51822芯片内部flash知识: EN-nRF51D 开发板使用NRF51822 芯片为nRF51822-QFAA,如下图所示,共有256KBFLASH,256 页,页大小为1024 字节. NRF51822 内部FLASH 写流程如下: 三.代码解析: main: 1 int main(void) 2 { 3 ... 4 5

java集合框架之java HashMap代码解析

 java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/article/java-hashmap-java-collection.html 签名(signature) public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Se

KTV播放重要代码解析

KTV播放重要代码解析 第一步: 搭建好KTV点歌界面,然后要实现的是歌星点歌,点击窗体的Load事件写如下代码: private void FrmZhu_Load(object sender, EventArgs e) { //读取MyResource表中的图片路径,放入到imagePath变量中 string sql = "select resource_path from resource_path  where resource_id=1"; SqlConnection con

ffmpeg代码笔记2:如何判断MP4文件里面的流是音频还是视频流

http://blog.csdn.net/qq_19079937/article/details/43191211 在MP4结构体系里面,hdlr字段(具体在root->moov->trak->mdia->hdlr)里面包含了该流是视频or音频or字母. ffmpeg代码: 在ffmpeg代码里面,使用流中得codec->codec_type来判断该流是哪种类型的流. 在ISO_IEC_14496国际标准第十二部分标注如下: 在MP4文件里面搜68 64 6C 72(hdlr