mplayer 源码分析报告.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一.Mplayer支持的格式 MPlayer是一个LINUX下的视频播放器,它支持相当多的媒体格式,无论在音频播放还是在视频播放方面,可以说它支持的格式是相当全面的。 视频格式支持:MPEG、AVI、ASF 与WMV、QuickTime 与 OGG/OGM、SDP、PVA、GIF。 音频格式支持:MP3、WAV、OGG/OGM 文件(Vorbis)、WMA 与 ASF、MP4、CD音频、XMMS。 二. Mplayer 中头文件的功能分析 config.h?//?各种本地配置宏定义头?? version.h?//?版本定义头?#define?VERSION?1.0pre7try2-3.4.2?? mp_msg.h?//?消息处理头?? help_mp.h?//?根据配置自动生成的帮助头?#include?help/help_mpen.h?? cfg-mplayer-def.h?//?Mplayer?运行时的选项缺省值头文件?char*?? default_config?=?? sub_reader.h?//?拥有格式自动发现功能的字幕(subtitle)阅读器?? libvo/video_out.h?//?该文件包含?libvo?视频输出的公共函数、变量?? libvo/font_load.h?//?有关字体装载的例程?? libao2/audio_out.h?//?音频输出驱动程序相关结构定义和全局数据?? libmpcodecs/dec_audio.h?//?音频解码?? libmpcodecs/dec_video.h?//?视频解码?? libmpdemux/matroska.h?//?多路解复用,媒体容器格式?matroska?处理头?? libmpdemux/stream.h?//?流处理?? libmpdemux/demuxer.h?//?多路解复用头文件?? libmpdemux/stheader.h?//?媒体流头处理?? get_path.c?//?路径获取头文件?? spudec.h?//?SPU?子画面单元头,DVD?字幕流?? edl.h?//?剪辑控制清单?? m_option.h?//?选项类型处理头?? m_config.h?//?配置处理头文件?? 三. MPlayer.main 主流程简要说明 int?main()?{?? 1)?变量声明,电影信息?movie?info:?? 2)?初始化,消息系统……?? play_next_file:?? 3)播放文件?filename?的循环?goto?play_next_file?开始?? main:?? 4)?主处理?main?? 5)?播放真正主循环?2010?~3541?while?(!eof)?? while?(!eof)?{?? 5.1)?播放音频?PLAY?AUDIO?2017?~?2064?decode_audio(sh_audio,?...);?? 5.2)?播放视频?PLAY?VIDEO,?2068?~?2300?decode_video(sh_video,?...);?? 5.3)?处理暂停?PAUSE?? 5.4)?处理?EDL?? 5.5)?键盘事件处理,?搜索2400~3216?while?(!brk_cmd??? (cmd=mp_input_get_cmd(0,0,0))!=NULL)?? 5.6)?时间寻道(秒)?if?(seek_to_sec)?? 5.7)?寻道?3243?~?3306,?if?(rel_seek_secs?||?abs_seek_pos)?? 5.8)?处理?GUI?? 5.9)?变更?Update?OSD?? 5.10)?找到字幕?find?sub?? 5.11)?处理?X11?窗口?? 5.12)?DVD?字幕?sub:?? }?? goto_next_file:?? 6)?播放结束,转到下个文件?goto_next_file:?? }?? 四.Mplayer源码分析 从Mplayer.c的main开始处理参数 mconfig?=?m_config_new();?? m_config_register_options(mconfig,mplayer_opts);?? //?TODO?:?add?something?to?let?modules?register?their?options?? mp_input_register_options(mconfig);?? parse_cfgfiles(mconfig);?? 初始化mpctx结构体,mpctx应该是mplayer context的意思,顾名思义是一个统筹全局的变量。 [cpp]? \o view plain view pla

文档评论(0)

linlin921 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档