Gstreamer
datamining2005
这个作者很懒,什么都没留下…
展开
-
多媒体GStreamer应用原理
假设一种场景,正常播放一个mp4文件。整个调用原理是什么样的呢?我觉得流程应该是这样:第一部分:准备阶段1,用户点击文件或视频后,player的线程将被创建,初始化一系列参数(callback...),创建pipleline,创建decodebin1然后转到ready状态,2, 随即player转到pause状态,去激活并调用callback来选择demux,其实这个时候已经提前原创 2017-10-14 10:32:32 · 474 阅读 · 0 评论 -
G_LIKELY 和G_UNLIKELY
#define G_LIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 1)) #define G_UNLIKELY(expr) (__builtin_expect (_G_BOOLEAN_EXPR(expr), 0)) if (__builtin_expect (x, 0))的目的只是告诉编译器我们期望表达式x的值为0,这样其实是原创 2017-11-02 15:37:36 · 1380 阅读 · 0 评论 -
g_signal_connect
信号注册函数:gulong g_signal_connect( gpointer instance,const gchar *detailed_signal,GCallback c_handler,gpointer data );instance:信号发出者,可以认为我们操作原创 2017-11-04 15:09:26 · 4916 阅读 · 0 评论 -
Gstreamer 小结
Pipeline EOS当source filter遇上了流结束,会沿着downstream的方向向下一个element发送一个EOS的event,这个event依次传送给每一个element,接收到EOS event的element不再接收数据。启动了线程的element发送了EOS event后就不再发送数据。EOS event最终会到达sink element。sink转载 2017-12-25 14:03:45 · 626 阅读 · 0 评论 -
平台相关的 GStreamer element
虽然GStreamer是跨平台的framework,但不是所有的element都是在所有平台下都有的。比如,音频和视频的sink都非常依赖于当前的window系统,根据当前的平台需要选择不同的element。当然,你在运行playbin2或者autovideosink这些element时不需要考虑跨平台的问题,但是,当你使用仅仅在特定的平台存在的sink时,这个问题就绕不过去了。本教程会介绍这...转载 2018-04-24 09:07:57 · 249 阅读 · 0 评论 -
Gstreamer动态插件的实现与原理
我认为目前为止,下面这篇文章是GStreamer总结的最好得一篇,而且很具有实用指导意义Gstreamer动态插件的实现与原理转载 2014年06月01日 15:14:321640原文:http://blog.chinaunix.net/uid-24922718-id-3267099.htmlgstremer的插件机制是其核心,所有的元件的都是以插件的形式绑定在管道中用来实现媒体播放的效果。动态加...转载 2018-04-21 15:39:25 · 906 阅读 · 0 评论 -
【Gstreamer】PUSH/PULL mode生动解析
gstreamer 在处理资料的流动有两种主要的模式,一个是「推」,一个是「拉」。两种模式需要实作的 routine 不同,在对资料的操作 (manipulation) 上的重点也不一样,很容易被搞得摸不清方向(其实我到现在还是有很多没搞懂的地方…)。首先先解释一下两者的不同。「推」模式就是由上游的插件控制资料的大小、流速,向下「推」到下游的插件,所以下游的插件并不会事先知道有多少资料会被送进来,...转载 2018-04-21 16:59:52 · 1783 阅读 · 0 评论