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