MPlayer视频输出框架分析

最近要在离子二代平台上移植数字电视播放器,采用NVIDIA的VDPAU硬解码,视频输出采用VDPAU,由于VDPAU不光有视频硬解码功能,还有HW Scale的功能,所以可以基于VDPAU做浮动OSD层(频道列表)。源于这个,最近仔细地分析了一下MPlayer的视频输出框架,着重解释了VDPAU视频输出插件。
1.视频输出框架
    mplayer整体框架采用了函数指针来实现面向对象,视频输出依然不例外。mplayer视频输出包括两层:filter和video out层。video out层是被包含在filter之中。video out层的插件代码是以vo_开头,例如vo_x11.c,vo_xv.c,vo_vdpau.c等等。filter有一个典型的插件就是vf_vo.c,该filter是对video out层的包装。视频解码完毕后是通过filter(vf_vo.c)来调用vo_vdpau.c
2.视频输出插件介绍
    每一个视频输出插件都至少包含如下函数:
    1)preinit:预初始化视频输出插件,该步骤初始化和视频格式不相关的部分,例如视频输出的窗口大小和格式都不应该在该函数中完成。
    VDPAU输出插件的preinit函数:子选项解析,vdpau库初始化,变量初始化。
    2)control:控制视频输出插件。
    VDPAU输出插件的control函数:主要实现了如下功能。
     request = 2,视频输出格式查询
     request = 32,设置和屏幕相关的信息,没有涉及到媒体的格式和分辨率。
     request = 9, 为视频帧分配空间。
     request = 13&
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值