XBMC源代码分析 3:核心部分(core)-综述
前文分析了XBMC的整体结构以及皮肤部分:
XBMC源代码分析 1:整体结构以及编译方法
XBMC源代码分析 2:Addons(皮肤Skin)
本文以及以后的文章主要分析XBMC的VC工程中的源代码。XBMC源代码体积庞大,想要完全分析所有代码是比较困难的。在这里我们选择它和音视频编解码有关的部分进行分析。在本文里,我们主要分析其核心部分(core)代码。
核心部分(core)源代码结构如图所示:
我目前理解的有以下3个,其他的有时间研究后再补上:
AudioEngine:音频引擎。其封装了所有不同的媒体类型的混音、采样率转换、格式转换、编码、上混、缩混等。
dvdplayer:视频播放器。其中封装了FFMPEG等一些库,是我们分析的重点。
paplayer:XBMC自行开发出来的音频播放器。
本系列文章将会重点分析dvdplayer这个播放器。
下面我们先来看看dvdplayer的代码结构:
先不说一大堆cpp文件。dvdplayer包含以下5个文件夹,我们分析以下3个文件夹中的内容
DVDCodecs:封装各种解码器
DVDDemuxers:封装各种解复用器
DVDHeaders:封装各种Dll的头文件
DVDCodecs里面包含各种解码器的封装,下图列出了封装视频解码器的文件。
DVDDemuxers里面包含了各种解复用器(视音频分离器)的封装,如下图所示。
DVDHeaders里面包含了封装各种Dll的头文件,如下图所示。
详细的分析会在后续文章中完成。
XBMC源代码分析 3:核心部分(core)-综述相关推荐
- XBMC源代码分析 7:视频播放器(dvdplayer)-输入流(以libRTMP为例)
前文分析了XBMC的基本结构: XBMC源代码分析 1:整体结构以及编译方法 XBMC源代码分析 2:Addons(皮肤Skin) XBMC源代码分析 3:核心部分(core)-综述 XBMC源代码分 ...
- XBMC源代码分析 6:视频播放器(dvdplayer)-文件头(以ffmpeg为例)
XBMC分析系列文章: XBMC源代码分析 1:整体结构以及编译方法 XBMC源代码分析 2:Addons(皮肤Skin) XBMC源代码分析 3:核心部分(core)-综述 XBMC源代码分析 4: ...
- XBMC源代码分析 4:视频播放器(dvdplayer)-解码器(以ffmpeg为例)
XBMC分析系列文章: XBMC源代码分析 1:整体结构以及编译方法 XBMC源代码分析 2:Addons(皮肤Skin) XBMC源代码分析 3:核心部分(core)-综述 本文我们分析XBMC中视 ...
- Linux内核源代码分析——vmstat核心代码注释
一次和圈子里的朋友群聊的时候,谈到了vmstat的实现机制.我当时正在轻轨上,幻想着从轻轨飞下去的快感.在轻轨上我发表了自己的一些看法,不过都是意淫. 现在,已经过去半周了,今天终于闲下来把vmsta ...
- XBMC源代码简析 5:视频播放器(dvdplayer)-解复用器(以ffmpeg为例)
XBMC分析系列文章: XBMC源代码分析 1:整体结构以及编译方法 XBMC源代码分析 2:Addons(皮肤Skin) XBMC源代码分析 3:核心部分(core)-综述 XBMC源代码分析 4: ...
- Spark SQL 源代码分析系列
从决定写Spark SQL文章的源代码分析,到现在一个月的时间,一个又一个几乎相同的结束很快,在这里也做了一个综合指数,方便阅读,下面是读取顺序 :) 第一章 Spark SQL源代码分析之核心流程 ...
- linux关机机器语言,Linux 核心源代码分析 - 第十章 开机 关机 [续二] [超星]...
版权声明:本文档录自超星阅览器"免费图书馆"中的<Linux 核心源代码分析>.原文为扫描版,本文本文档是在下(大天赐)[http://blog.sina.com.cn ...
- Media Player Classic - HC 源代码分析 4:核心类 (CMainFrame)(3)
===================================================== Media Player Classic - HC 源代码分析系列文章列表: Media P ...
- Media Player Classic - HC 源代码分析 3:核心类 (CMainFrame)(2)
===================================================== Media Player Classic - HC 源代码分析系列文章列表: Media P ...
最新文章
- 分页存储过程性能比较 二分法
- python开发环境配置config_manjaro与python开发环境配置
- python+opencv获取最小外接矩形
- ae saber插件_【AE插件】 用于做动画制作/设计的五个免费插件 非常好用
- Oracle(二):查询、函数、集合运算
- 杭电4554 叛逆的小明
- 2143亿!2018年天猫“双11”成交总额是这样预测的
- 编译telepresence:没有规则可制作目标“tinywrap/ActionConfig.cxx”,由“telepresence-ActionConfig.o” 需求。
- Linux之unzip命令
- 雷达人体静止感应技术,云望爱希ISee雷达感应成品,高精度探测应用
- dvwa安装教程(LNMP一套Linux+Nginx+MariaDB+PHP)
- 官方rom提取原签名工具_ROM修改工具:Dragonface+昂达OTA签名工具
- 20款优秀的数据可视化工具 (建议收藏)
- 转:用AutoCAD 系统变量编程
- html上下箭头动态效果,使用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果...
- [人物] “在人间播种子,在天上洒甘霖。” 国士无双,袁老千古。
- 常用笔刷(blender)
- TEM TE TM模的区别和电磁波模式
- locust快速入门
- 数据库的学习笔记(一)