免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5164 | 回复: 4
打印 上一主题 下一主题

mplayer代码分析问题求教! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-06 14:17 |只看该作者 |倒序浏览
目前正在分析mplayer源码包,准备使用其中的一部分信息。
还不清楚如何高效的进行分析,目前想从GTK的菜单入口,驱动它的函数调用(从打开url入手),可是发现始终没有进入到分析阶段。总是在界面上来回调用,真正的解码和数据流分析到哪里去了?

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2008-11-06 15:15 |只看该作者

回复 #1 kingink1983 的帖子

我觉得你的路线还是没有找对,跟代码特别要注意函数指针,就是这些函数指针,使得代码跟踪变得比较困难,但这又是C语言灵活性的体现。

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
3 [报告]
发表于 2008-11-06 15:42 |只看该作者
声音解码?应该有对应的decode的接口,往里面扔数据就可以了,接完后出来的应该是pcm的数据了
看代码的话,现看看目录结构,分析分析他的Makefile
然后看看main函数,接着跟着接口进去,不用进的太深入,现看看大概的结构
架构了解了再细看

评分

参与人数 1可用积分 +15 收起 理由
bitmilong + 15 鼓励

查看全部评分

论坛徽章:
0
4 [报告]
发表于 2008-11-12 22:12 |只看该作者
根据MPLAYER的源码,进行了一些跟踪,发现其在对mms://的解析主要还是使用tcp协议进行传输的,mpct
x结构里的stream_t的buf负责将数据存储,然后经过demux_open()将数据进行分离,?stream_out_buffers()将demux中的缓冲中的数据交给decode进行解码,再由play()进行播放,现在还是有些东西不明白:
(1)当用tcp时,有两个函数很关键,asf_mmst_stream_read ,asf_mmst_stream_seek(),我认为前一个函数就是将mms的数据读到缓冲区的,可是我还没明确的找到它给缓冲区的方法.
(2)被demux分离后的数据也是在缓冲的,这个缓冲之间应该和前面的没分离的数据的缓冲区应该不是同一个区域,但是截止到目前,还没发现这两个缓冲的数据传递
(3)该播放器在默认的时候,有缓冲,当stream_enable_cache()关闭后,数据间的传递更荫蔽.

以上mplayer版本为1.0RC2(官方下载),希望有经验的朋友们给指导,但就它使用的一些结构而言,里面的变量太多,结构的嵌套很深,眼花僚乱的.

希望大家不吝赐教

[ 本帖最后由 kingink1983 于 2008-11-12 22:43 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-11-18 12:03 |只看该作者
我最近也在阅读mplayer源码,包括live555流媒体。不知道大家是否已经有组织了? 如果没有就来我的QQ群吧,开源技术研究QQ群:31789160
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP