文档章节

XBMC源代码分析 3:核心部分(core)-综述

雷霄骅
 雷霄骅
发布于 2014/08/16 13:58
字数 440
阅读 49
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

前文分析了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的头文件,如下图所示。


详细的分析会在后续文章中完成。



本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/17512743

雷霄骅

雷霄骅

粉丝 212
博文 419
码字总数 2129
作品 4
朝阳
程序员
私信 提问
交通仿真系统--TrafficSim

本文开发一个的简单的交通仿真系统。论文的第一章对现有的交通仿真系统进行了简单的综述和论述,对部分软件的特点进行了分析。为交通系统的功能设计和体系设计提供基础。论文的第二章首先对元...

sapperjiang
2015/01/03
5.7K
0
来自 OpenSource 的 2016 十大开源项目

在这份年度最佳开源项目列表中,回顾了我们的作者在 2016 年涵盖的流行项目,还包括 opensource.com 社区版主收藏里面最喜欢的。 每年出现、成长、改变和发展的优秀开源项目继续给我们留下深...

局长
2016/12/27
4.4K
4
XBMC 10.0 Beta 1发布增加新的Add-ons功能

XBMC 项目在上一个版本发布9个月之后,宣布了10.0 Beta1版本。代号为:“Dharm” 。根据开发者这个最新的跨平台媒体播放器软件和娱乐系统框架引入了新的插件系统,允许用户使用script-writer...

红薯
2010/09/01
665
0
基于 GPU 的 OLAP 系统 MapD 开源其核心数据库

MapD 是最近较火的 SQL 数据库和可视化分析平台,基于 GPU 的并行功能交互查询和可视化大量数据集。项目于5月8日宣布,开源其核心数据库和相关的可视化库。 源代码在 Github 上以 Apache 2.0...

王练
2017/05/09
3.1K
4
[总结]视音频编解码技术零基础学习方法

一直想把视音频编解码技术做一个简单的总结,可是苦于时间不充裕,一直没能完成。今天有着很大的空闲,终于可以总结一个有关视音频技术的入门教程,可以方便更多的人学习从零开始学习视音频技...

leixiaohua1020
2014/06/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何管stderr,而不是stdout?

我有一个要写入信息的程序stdout和stderr ,我需要grep通过什么是未来标准错误 ,而忽视标准输出 。 我当然可以分2步完成: command > /dev/null 2> temp.filegrep 'something' temp.file...

技术盛宴
22分钟前
4
0
centos7.5上通过docker安装并运行mysql5.7

1. docker pull mysql:5.7 2. docker run --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7...

Ryub
26分钟前
5
0
什么是比赛条件?

在编写多线程应用程序时,遇到的最常见问题之一是竞争条件。 我对社区的问题是: 什么是比赛条件? 您如何检测到它们? 您如何处理它们? 最后,如何防止它们发生? #1楼 当设备或系统试图同...

javail
37分钟前
5
0
SpringMVC源码分析-DispatcherServlet-init方法分析

上一篇:SpringMVC源码分析-DispatcherServlet实例化干了些什么 先吐槽一下。。。写了两小时的博客突然被俺家小屁孩按了刷新,东西不见了,建议OSCHINA能够自动定时保存啊。让我先安静一下。...

特拉仔
45分钟前
6
0
python协程 生成器

协程,又称微线程,纤程。英文名Coroutine。 线程是系统级别的它们由操作系统调度,而协程则是程序级别的由程序根据需要自己调度。在一个线程中会有很多函数,我们把这些函数称为子程序,在子...

沙门行道
55分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部