首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

怎么阅读mplayer源码

2012-09-25 
如何阅读mplayer源码?由于这学期需要完成一个mplayer相关开发的项目,所以最近开始了mplayer源码的阅读。Mpl

如何阅读mplayer源码?

由于这学期需要完成一个mplayer相关开发的项目,所以最近开始了mplayer源码的阅读。

Mplayer源码号称是最难读懂的源码之一,真正开始阅读之后,发现真是名不虚传。时间过去了好几天,完全没有什么进展。网上相关的源码解析文档很少,所以只能够靠自己了。

如何应对这块难啃的骨头呢?我大致有了这么一个思路:


1.对播放器的整体原理和架构有一个梳理和认识。

这一块内容更多是从理论性的角度对播放器有一个全面大概的认识,不涉及具体实现细节,只是了解它们的播放原理,整体流程以及大概架构是怎样的。


2.对照播放器原理,利用ffmpeg实现一个简单的播放器,完成播放的各项基本功能。

任何程序的开发过程都是从一个简单的核心出发,不断的完善与整合其他功能,最后形成一个复杂的程序。倘若 一开始就陷入对各种与核心无关的复杂技术的困惑中,我们将很难走出下一歩。所以,比较好的方式是能够先清楚掌握这个核心程序,再模拟程序开发的过程,去阅读后期被添加进来的模块。

mplayer源码解析的文档,网上是很少的(好吧,我没有翻墙,学校上网被实名制了 ==!)。要从这样庞大的代码中愁去出核心体系对我来说,难度是很大的。所以我选取了一个折中的方法。因为mplayer是基于ffmpeg的,所以,我先利用它实现一个简易的播放器,实现基本功能。一方面是深化自己对于播放器架构的认识,另一方面,是自己实现播放器的核心,通过实践加深对于核心的理解。

这个时候,你可能要问了,mplayer的核心程序怎么会和你自己写的程序一样呢?当然,我没有那么大的能力写出mplayer核心程序一样优秀的程序。可是,播放器虽然分成几种不同的架构,但是它们大致相似,并且原理一样。所以,通过实现一个播放器,你能有一个大概的关于核心程序的认识,不同的地方只是一些细节,在后期的学习中加以修正就是了。并且,重要的是,通过自己动手写代码这个主动参与的过程,学习会更有动力和持久性。


3.对mplayer源码,自顶向下进行分层与分模块的阅读。

在完成了自己的简易播放器的基础上,终于可以切入正题了。这个时候,就需要花时间和功夫从mplayer中提取出核心程序了,因为有了前面的基础,现在做这件事情应该会很有心得。在提取之后,紧跟着深入理解核心程序与自己程序的不同点。最后,我们需要做的就是,对于我们想要重点了解的功能模块,进行层次性的学习,从下到上。比如,我们想给播放器实现某项功能,我们需要做的是,了解如何通过这个核心程序来实现这项功能,由核心功能出发,一层一层往走,直到实现这个功能的最顶层。



程序设计应是自顶向下的,以架构和模块化为主,降低程序设计的复杂性。而阅读程序代码,应该反其道而行之,从下到上,从核心到复杂。


以上我自己的一点想法,难免会有疏漏之处,不对的地方还希望大家指正。后面,我会把自己的学习过程整理成博文,希望能对大家有点帮助。

1楼ww2000e昨天 12:43
ffmpeg有小例子吧,能看懂具体实现不容易阿
Re: Mars_Universe昨天 13:18
回复ww2000en嗯,是有小例子的,没有文档,但是官网上有一个教程,我是准备按照这个教程写一个播放器。http://dranger.com/ffmpeg/tutorial01.html

热点排行