`

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

 
阅读更多

注:写了一系列分析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

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

分享到:
评论

相关推荐

    Media Player Classic - Home Cinema (mpc-hc)源代码

    Media Player Classic - Home Cinema(MPC-HC)是一款广受欢迎的开源媒体播放软件,它的源代码为我们揭示了这款播放器背后的编程技术与设计理念。MPC-HC以其小巧、高效、功能丰富的特点,深受用户和开发者喜爱。源...

    Media Player Classic完整源码

    Media Player Classic的完整源码。前几次在网上搜索,很多提供的都只有部分源码,并不完整,好不容易下载到个完整的,这里传上来与大家分享。其实暴风影音就是Media Player Classic,只不过暴风影音将Media Player ...

    MPC-HC.1.9.21.2.x64.zip

    Gabest 原先是以不公开源代码的方式开发 Media Player Classic,但后来他开放了 Media Player Classic 的源代码。 目前 MPC-HC 是一款开源软件,来自全世界的多位程序员在维护这个项目。 MPC-HC 继承了 MPC 的...

    万能播放器源代码mpc-hc

    【万能播放器源代码mpc-hc】是一款开源的媒体播放器项目,其核心是MPC-HC(Media Player Classic - Home Cinema),一个在Windows操作系统上广泛使用的免费媒体播放软件。这款播放器因其强大的兼容性和自定义性而受...

    mpc-hc-1.9.7.34_播放器源码_

    【标题】"mpc-hc-1.9.7.34_播放器源码_" 涉及的是MPC-HC(Media Player Classic - Home Cinema)的一个特定版本的源代码,这是一个广受欢迎的开源媒体播放器。MPC-HC在IT领域中因其轻量级、稳定性和兼容性而备受赞誉...

    MPC-HC 媒体播放器 v1.9.6 for Windows 款简洁开源免费的多媒体播放器软件64位.rar

    MPC-HC(Media Player Classic - Home Cinema)是一款广受欢迎的开源、免费的多媒体播放器,专为Windows操作系统设计。该软件的版本号为v1.9.6,表明它是该系列的一个稳定版本,适用于64位操作系统。MPC-HC的特性...

    Media Classic source

    "Media Classic source"指的是Media Player Classic的源代码,这是一个经典的媒体播放器,因其小巧、功能强大而备受赞誉。Media Player Classic(MPC)最初由Gabriel Gabro开发,后来经过多个开发者和社区的努力,...

    mpc-hc.rar_mpc-hc

    MPC-HC,全称Media Player Classic - Home Cinema,是一款广受好评的免费且开源的音频和视频播放器,专为Windows操作系统设计。这款播放器源自早期的Guliverkli项目,但在原有基础上进行了大量功能的增强和错误的...

    mpc-qt-origin:Media Player Classic Qute Theater

    Media Player Classic Qute Theater(mpc-qt)旨在在使用而不是DirectShow播放视频的同时mpc-hc的大多数界面和功能。发布发布页面上可能有Windows用户的版本。 这些使用基于时间的版本控制(例如,17.07对应于2017...

    自己动手编译的MPC-HC播放器

    MPC-HC(Media Player Classic - Home Cinema)是一款深受用户喜爱的开源媒体播放器,它基于MPC(Media Player Classic)项目并持续更新,支持Unicode编码,提供丰富的功能和出色的性能。在本文中,我们将探讨如何...

    MPC-HC 媒体播放器 v1.9.6 for Windows 一款简洁开源免费的多媒体播放器软件32位.rar

    MPC-HC(Media Player Classic - Home Cinema)是一款广受欢迎的免费开源媒体播放器,专为Windows操作系统设计。它的版本号是v1.9.6,适用于32位(x86)架构的计算机系统。这款播放器因其简洁的用户界面、强大的功能...

    mpc 播放器 源代码

    mpc播放器,全称为“MPC-BE”(Media Player Classic - Black Edition),是一款基于MPC-HC(Media Player Classic - Home Cinema)的媒体播放器。它拥有简洁的界面和强大的播放功能,支持多种视频和音频格式。通过...

    SeelWorks.MPCHC:MPC-HC API的AC#实现-开源

    SeelWorks.MPCHC是一个开源项目,它实现了与Media Player Classic - Home Cinema (MPC-HC) 的API交互,允许开发者通过编程方式控制MPC-HC播放器。MPC-HC是一款广受欢迎的免费媒体播放器,支持多种视频和音频格式,而...

    MPC播放器整套源代码,VS2008编译环境

    Media Player Classic 源代码,vs2008编译环境-Media Player Classic source code To compile you need: * TortoiseSVN Download * Microsoft Visual C++ 2008 SP1 Download * Microsoft® Windows® Software ...

    MP4播放器_mp4播放器_player_mp4_mp4ba.tw_

    【压缩包子文件的文件名称列表】: "MPC-HC.1.7.13.x64" 这个文件名代表了一个名为“Media Player Classic - Home Cinema”(MPC-HC)的播放器的版本。MPC-HC是一款免费、开源的媒体播放器,它在Windows平台上广受...

    LAVSplitters---Directshow分离器和解码器Filter

    - **稳定性:**LAV Splitters被广泛应用于知名的开源播放器如MPC-HC(Media Player Classic - Home Cinema),其稳定性得到了大量用户的验证。 **3. 解码器Filter:** 解码器是Directshow中的另一个关键组件,它的...

    MPC_HC:https

    媒体播放器经典-家庭影院 Media Player Classic-家庭影院(MPC-HC)是Windows的免费和开源(OSS)视频和音频播放器。 MPC-HC基于原始的Guliverkli项目,并包含许多其他功能和错误修复。 我们迫切需要任何类型的新...

    vsyasm yasm汇编编译器的vs2010版

    【描述】中的信息表明,这个特定的版本(vsyasm)是为了解决在构建MPC-HC(Media Player Classic - Home Cinema)项目时可能遇到的问题。MPC-HC是一个流行且免费的媒体播放器,其源代码包含了大量的汇编语言优化部分...

Global site tag (gtag.js) - Google Analytics