文档章节

Media Player Classic - HC 源代码分析 1:整体结构

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

注:写了一系列分析Media Player Classic - HC 源代码的文章,在此列一个列表:

Media Player Classic - HC 源代码分析 1:整体结构
Media Player Classic - HC 源代码分析 2:核心类 (CMainFrame)(1)
Media Player Classic - HC 源代码分析 3:核心类 (CMainFrame)(2)
Media Player Classic - HC 源代码分析 4:核心类 (CMainFrame)(3)
Media Player Classic - HC 源代码分析 5:关于对话框 (CAboutDlg)
Media Player Classic - HC 源代码分析 6:MediaInfo选项卡 (CPPageFileMediaInfo)
Media Player Classic - HC 源代码分析 7:详细信息选项卡(CPPageFileInfoDetails)


Media Player Classic - Home Cinema (mpc-hc)播放器一个经典的影音播放器,可播放CD、VCD、DVD、及MP3、MP4、AVI、AAC等多种影音格式。与此同时,它还是开源的。很多知名的视频播放器都是在它的基础上建立起来的,在这里就不例举了。本文将会对其源代码进行简要的分析。

之前一篇博客中曾经介绍了它的编译过程:VC2010 编译 Media Player Classic - Home Cinema (mpc-hc)

在这里就不再重复说明了,直入主题,看看它的工程是什么样子:


相信大部分人看到这个工程的第一反应就是:好大啊!确实,我看到这个工程的时候也是这个反应。mpc-hc总体上分为3个部分:Apps,Filters,Libraries。其中Apps是其主程序;Filters是其附带的一些directshow filter,比如说AVI分离器,FLV分离器等等;Libraries则是其依赖的一些库:像Zlib这类的。

来细看看mpc-hc都有什么directshow filter吧(截图都放不下了...)


Filters分为以下几种:

Muxer(封装),Parser(解封装,或称为分离器),Reader(读取),Renderer(显示),Source(源),Switcher(这个我不懂),Transform(处理)

在这里就不一一例举各种Filter了,因为数量实在太多,大部分Filter工程都可以通过名称来判断其功能。

再看看主程序Apps工程吧:


可见主程序包含了巨量的代码,截图也只能显示其中的一部分。因此在代码分析的时候,不可能做到面面俱到,只能选择其中的重点部分进行详细的分析。

mpc-hc的对话框数量也很惊人:


在这里就不再花篇幅形容mpc-hc工程的巨大了。赶紧说说如何来研究分析它的代码。本文主要分析它的主程序即在Apps目录下的工程。先介绍一下我总结出来的一些规则:

1.以PPage开头的.cpp或.h文件通常是一些属性选项卡的对话框对应的类。随后会详细介绍一个“视频信息”选项卡的代码(在这里用到了开源库MediaInfo)

2.主框架所在的位置是Mainfrm.cpp

目前只有这两条规则,以后会随着研究的不断深入,进一步完善这些规则。

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

雷霄骅

雷霄骅

粉丝 212
博文 419
码字总数 2129
作品 4
朝阳
程序员
私信 提问
MPC-BE 1.0.1.0 1122 beta 版发布

Media Player Classic Home Cinema,简称MPC-HC,是一款简洁的媒体播放器,Media Player Classic 的后续版本,有32位元和64位元版本。Media Player Classic 是由名为 "Gabest" 的程序员建立,...

aoniao
2012/09/12
590
0
MPC-HC/MPC-BE/LAV Filter播放器相关

> MPC-HC MPC-HC,全称Media Player Classic Home Cinema,是Windows平台上一个非常轻量级的开源媒体播放器。它支持所有常见的视频和音频文件格式的播放。它是100%免费的,没有任何广告或后门...

shareus
2017/11/22
0
0
Media Player Classic - BE

Media Player Classic - BE (MPC-BE)播放器是基于Media Player Classic - Home Cinema (MPC-HC)的开源播放器。是俄国人写的。MPC-BE发现总体上和MPC-HC 差别不大。但是界面做了皮肤,更加的美...

雷霄骅
2013/09/17
1.3K
0
MPC-HC v1.7.13 发布,或成为最后一个版本

经典的第三方媒体播放器 MPC-HC v1.7.13 已发布,这是该项目的最新版本,但据项目负责人表示,该版本可能还是最后一个版本。 项目负责人在发布说明中提到,近几个月甚至近几年,活跃开发者的...

局长
2017/07/17
5.7K
46
Windows 媒体播放器--MPC-HC

MPC-HC,全称 Media Player Classic Home Cinema,是 Windows 平台上一个非常轻量级的开源媒体播放器。它支持所有常见的视频和音频文件格式的播放。它是 100% 免费的。...

叶秀兰
2014/07/07
2.9K
0

没有更多内容

加载失败,请刷新页面

加载更多

存储过程/函数列表Mysql命令行

如何在mysql命令行(如show tables;查看存储过程或存储函数的列表show tables; 或show databases; 命令。 #1楼 以名称方式查看程序 select name from mysql.proc 下面的代码用于列出所有过...

技术盛宴
29分钟前
57
0
Flutter学习-Dart基础

dart语言基础 https://www.dartcn.com/guides/language/language-tour 在学习 Dart 语言时, 应该基于以下事实和概念: 任何保存在变量中的都是一个_对象_, 并且所有的对象都是对应一个_类_...

小树coding
29分钟前
49
0
服务器升级至centos8 网站配置-php与mysql从5.6升级到php7与msyql

linux centos8 安装php7 nginx1.4 mysql8 ,运行php网站,各个模块从零开始配置 CentOS7与centOS8的抉择 目前国内各大云服务器的默认centos 系统版本还是7,目前没有centos配套支持,国外云服...

zhoulujun
37分钟前
39
0
记一次 MySQL主从复制 从库主键冲突 导致从库中继日志持续增大

问题描述 同事反馈 MySQL主从复制主键冲突 , 导致从库大量relay中继日志 持续增长 导空间不足 查看从库复制状态 master10.23.234.140mysql> show master status\G;***************...

雁南飞丶
39分钟前
43
0
CentOS 7 安装最新版本 Git-2.25.0

Git-2.25.0 最新版本已发布,Windows 系统下已有人安装体验了 2.25.0 的版本,下面我把作者原创的 blog 帖上来分享给大家,方便查看体验。 https://blog.csdn.net/ynzhang_it/article/detai...

万事通
45分钟前
49
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部