Chinaunix首页 | 论坛 | 博客
  • 博客访问: 197831
  • 博文数量: 68
  • 博客积分: 529
  • 博客等级: 中士
  • 技术积分: 721
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-10 16:38
文章分类

全部博文(68)

文章存档

2014年(2)

2013年(4)

2012年(16)

2011年(34)

2010年(4)

2009年(8)

分类: LINUX

2010-02-21 15:30:14

mplayer 首先调用open_stream_full其参数Mode 和 options都为0
open_stream_full 将根据网络协议在  auto_open_streams  中搜索不同的stream info,对于live555 server , 由于通用的rtsp stream info不能够识别出 server的类型。所以会继续往下搜索也就会搜索到livestream ,也就会调用open_live_rtsp_sip 次函数在stream/stream_live555.c 中。
 
 
其中返回的file_format 将存储在mpctx->file_format 并且传送到demux_open函数中。
 
 
 
 
demux_open 会调用demux_rtp.cpp:demux_open_rtp , 并且在rtpCodecInitialize_audio和rtpCodecInitialize_video中获得sh_video->format, 这个值是根据subsession->codecName 获得的.
 
 
 
vo 的调用关系:
preinit: is called by init_best_video_out  <--reinit_video_chain <--Main
 
 
 下面调用control in mpcodecs_config_vo <--init_vo
 
 
 
 
随后将调用vf_vo.c的query_format 根据当前的格式,更新flags.
video_out.c 中将调用config_video_out 将调用vo->control(VOCTRL_UPDATE_SCREENINFO, NULL),然后在调用vo 的config
 
从上面的分析知道,我们需要好好的研究一下vf_vo.c,它调用的大部分的vo的函数。
 
 
 
 
阅读(1056) | 评论(0) | 转发(0) |
0

上一篇:肝火旺表现症状

下一篇:android repo issue

给主人留下些什么吧!~~