gstreamer的一些总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/evsqiezi/article/details/82933990

以为3个插件的连接为例。

1第一次会协商。

2  第一个插件推送数据,第二个插件先检测能否识别,能识别了,再转换,再推给下一个插件,相当于一个递归的过程。

3 转换时,先判断是否需要重新创建buf(有的需要检测,有的需要转换数据),要跟下个插件协商,得到创建buf的大小。

4 后面插件的值改变后,会跟前面的协商,caps要保持一致。

 

连接element ,如camcapsfilter连接videorate,
第一步:获取前面的src,再获取后面的sink。
第二步:调用gst_base_transform_transform_caps-》klass->transform_caps(会在子类中实现),例如:
gst_base_transform_transform_caps (trans, GST_PAD_DIRECTION (otherpad), temp);//temp为同一元素内pad的模版caps。
最终分别获取caps1,caps2的相交。
第三步,互相把对对方设为peer。

猜你喜欢

转载自blog.csdn.net/evsqiezi/article/details/82933990