我正在编写一个gstreamer元素,并且想添加一个属性,该属性选择该元素将用来执行其功能的算法。
gst-launch ... ! myelement algo=1 ! ...
现在,假设我有两个算法,并且我需要能够为每种算法指定不同的参数,自然地,我希望用户能够通过属性设置这些参数。
例如,算法1将使用名为x的属性:
gst-launch ... ! myelement algo=1 x=10 ! ...
但是算法2将使用名为y的属性(并且不需要x):
gst-launch ... ! myelement algo=2 y=20 ! ...
本质上,某些属性仅根据另一个属性的值才有意义。
处理此问题的标准方法是什么?我是否应该添加属性“ x”和“ y”,并证明“ x”仅在algo = 1时有效,而“ y”仅在algo = 2时有效?
或者,我应该忘掉“ algo”属性并做出两个不同的元素吗?
在gstreamer中寻找处理事情的标准方法,始终是检查其他元素在做什么的好主意。一个很好的例子就是元素“ multifilesink”,它有几种处理文件分段的方法。查看属性(在cmdline上运行gst-inspect multifilesink),您可以看到,只有将“ next-file”属性设置为4时,属性“ max-file-size”才有意义。因此,其描述用于指定它 :
“ max-file-size:在以最大大小模式启动新文件之前的最大文件大小”
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句