【GStreamer开发】GStreamer基础教程15——继承Clutter
来源:互联网 发布:.net水电管理系统源码 编辑:程序博客网 时间:2024/06/17 06:03
目标
Clutter是一个开源的库,用来创建快速、可移植和动态的GUI。GStreamer可以通过cluttersink这个element把clutter集成进来,允许视频像纹理一样使用。本教程会展示:
如何把GStreamer pipeline的视频输出在clutter里面作为纹理来处理
介绍
连接GStreamer和clutter的流程实际上非常简单。我们必须使用cluttersink这个element(或者autocluttersink)并把它作为视频的sink。通过texture这个属性,这个element接受一个被GStreamer刷新的clutter的纹理。
一个3D的媒体播放器
工作流程
这篇教程的目的不是教你如何使用clutter,而是如何把它集成到GStreamer里来。这个工作通过clutter-gst库来完成,所以它的头文件必须包含进来。
这个库的第一件事是初始化GStreamer和Clutter,所以你调用clutter-gst-init()方法而不是自己来初始化。
GStreamer视频是作为Clutter的纹理来播放,所以我们需要创建一个纹理。请记住关闭纹理的切片:
我们注册size-change信号,这样我们一旦知道视频的尺寸之后就可以做最后的设置。
正确创建的Clutter sink element是autocluttersink,这个element工作起来或多或少的像autovideosink。然而,autocluttersink在2012.7后发布的SDK里面才有,如果找不到这个element,那么创建cluttersink来代替。
这个纹理是GStreamer唯一需要了解的关于Clutter的内容。
最后,告诉playbin2使用我们创建的sink而不是默认的。
然后GStreamer的pipeline和Clutter的timeline就开始工作了。一旦pipeline获得了视频的尺寸,我们在收到一个通知后更新Clutter的纹理,调用size_change的回调。这个方法会把纹理设置正确地尺寸,把它输出到窗口的中心然后开始做动画旋转(仅供演示使用),当然,这个和GStreamer就没有任何关系了。
- 【GStreamer开发】GStreamer基础教程15——继承Clutter
- GStreamer基础教程15——继承Clutter
- GStreamer基础教程15——继承Clutter
- 【GStreamer开发】GStreamer基础教程02——GStreamer概念
- 【GStreamer开发】GStreamer基础教程10——GStreamer工具
- 【GStreamer开发】GStreamer基础教程01——Hello World
- 【GStreamer开发】GStreamer基础教程03——动态pipeline
- 【GStreamer开发】GStreamer基础教程04——时间管理
- 【GStreamer开发】GStreamer基础教程05——集成GUI工具
- 【GStreamer开发】GStreamer基础教程09——收集媒体信息
- 【GStreamer开发】GStreamer基础教程11——调试工具
- 【GStreamer开发】GStreamer基础教程12——流
- 【GStreamer开发】GStreamer基础教程13——播放速度
- 【GStreamer开发】GStreamer基础教程14——常用的element
- GStreamer基础教程02——GStreamer概念
- GStreamer基础教程10——GStreamer工具
- GStreamer基础教程02——GStreamer概念
- GStreamer基础教程02——GStreamer概念
- 如何免费获取腾讯云SSL证书
- 【GStreamer开发】GStreamer基础教程14——常用的element
- PL/SQL编程基本概念
- Linux(centos7.2/6.5)安装oracle12c
- 腾讯云-mysql数据库的操作
- 【GStreamer开发】GStreamer基础教程15——继承Clutter
- 关闭 Ubuntu 中的关机/重启确认的小技巧
- uC/OS-ii内核源码理解(五)创建任务函数
- Android 属性动画 PropertyValuesHolder与Keyframe
- PL/SQL经典练习
- 【GStreamer开发】GStreamer基础教程16——平台相关的element
- BZOJ 3196 Tyvj 1730 二逼平衡树
- 安卓常用第三方框架-FastJson
- POJ3617 Best Cow Line【水题】