- 论坛徽章:
- 0
|
根据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 编辑 ] |
|