VLC整体架构分析

bin/:此目录下的winvlc.c文件用于生成exe执行文件

compat/:生成libcompat库的源代码,此目录下包含了与平台相关的一些代码

contrib/:第三方库,此目录下包含很多空的目录,如果想要编译这些第三方库,需要自己单独下

doc/:一些log等说明信息

extras/:一些额外的文件

include/:所有头文件的集合

lib/:生成libvlc库的源文件

m4/:宏处理器

modules/:VLC的模块部分,这些模块只在程序载入它们时有效;每一个模块,可提供不同的功能,他们适合特定文件或某一特定的环境;此外,audio_output/video_output/interface模块都写成了可跨平台的代码,方便支持新的平台。如果你想编译某个模块可以通过:./configure –enable-module_name;如果不想编译某个模块可以通过:./configure–disable-module_name;如果想得到某个模块的帮助信息,可通过:vlc—advanced –p module_name;

po/:i18n(语言翻译)文件

share/:图标、脚本等等

src/:生成libvlccore库的源文件

test/:一些脚本和测试代码

 ​​​​

2.1 libvlc

VLC媒体播放器的核心是libvlc ,它提供了界面,应用处理功能,如播放列表管理,音频和视频解码和输出,线程系统。所有libvlc源文件设在的/src目录及其子目录:

android/:andriod平台专用模块

os2/:os/2平台专用模块

darwin/:Mac(Darwin)平台专用模块

win32/:window平台专用模块

config/:从命令行和配置文件加载配置,提供功能模块的读取和写入配置

extras/:大多是平台的特殊代码

interface/:包含于用户交互的代码,如按键和设备弹出

modules/:模块管理

network/:提供网络接口(socket管理,网络错误等)

test/:libvlc测试模块

text/:字符集

playlist/:管理播放功能,如停止,播放,下一首,随机播放等

input/:建立并读取一个输入流,并且分离其中的音频和视频,然后把分离的音频流和视频流发送给解码器

video_output/:初始化视频播放器,把从解码器得到的视频画面转化格式(从YUV转为RGB)然后播放它们

audio_output/:初始化音频播放器,即设置正确的同步频率,并对从解码器传来的音频流重新取样

stream_output/:输出音频流和视频流到网络

misc/:libvlc使用的其他部分功能,如线程系统,消息队列,CPU的检测,对象查找系统,或平台的特定代码。

posix/:与POSIX(可移植操作系统接口)相关的模块

 

2.2 组件module

vlc是一个纯粹围绕着libvlc写成的程序。它是非常小的,但是功能很齐全的媒体播放器,归功于libvlc的动态组件支持。

组件位于modules\子目录,在运行时被加载。每一个组件提供不同的特征适应特定的文件的环境。另外,大量的不断编写的可移植功能位于audio_output\,vidco_output\和interface\组件,以支持新的平台(如:BeoS Mae OS X)。

access/:从不同的源获取流;

access_output/:以不同的形式输出流;

arm_neon/:arm架构,一些汇编代码;

audio_filter/:各种音频滤波器;

audio_mixer/:音量设置模块;

audio_output/:音频输出模块,声音将会输出到你的音频系统中;

codec/:音视频编解码模块;

control/:动作控制功能,如鼠标手势控制vlc等;

demux/:将合在一起的音频和视频分离(还有可能包括字幕);

gui/:不同平台的用户界面模块;

hw/vdpau/:VDPAU(VideoDecodeand Presentation API for Unix)的API可以让视频播放器把一部分的视频解码和视频图像补偿交给GPU,最初由NVIDIA开发;

lua/:与Lua脚本语言相关的模块;

meta_engine/:

misc/:杂项,包括webservice解析、xml解析、playlist输出模块等;

mux/:将视频、音频、字幕合并为某一个视频格式,如.avi、.mp4等;

notify/:notificationplugin;

packetizer/:音视频打包模块,如H264/AVC、MLP/TrueHD等;

services_discovery/:servicesdiscoverymodule;

stream_filter/:streamfilter;

stream_out/:流输出模块;

text_renderer/:文本渲染模块;

video_chroma/:图像格式转换默认,如YUV到RGB等;

video_filter/:视频各种滤波模块,例如对渲染的图像进行色度、对比度、饱和度的调整等;

video_output/:视频输出模块,允许VLC显示视频到你的屏幕上;

video_splitter/:视频分割模块;

visualization/:可视化模块,包括projectM、GOOM等;



http://blog.sina.com.cn/s/blog_87fad56a0102vo7e.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值