Gstreamer元素属性依赖于另一个属性

时间:2014-05-27 23:27:48

标签: gstreamer

我正在写一个gstreamer元素,我想添加一个属性来选择元素用来执行其功能的算法。

gst-launch ... ! myelement algo=1 ! ...

现在,假设我有两个alghoritms,我需要能够为每个算法指定不同的参数,当然我希望用户能够通过属性设置这些参数。

例如,算法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'财产和制造两个不同的元素?

1 个答案:

答案 0 :(得分:2)

要在gstreamer中寻找处理事物的标准方法,最好还是检查其他元素的作用。这种情况的一个很好的例子可能是元素'multifilesink',它有几种处理文件分割的方法;查看属性(在cmdline上运行gst-inspect multifilesink),您可以看到属性“max-file-size”仅在“next-file”属性设置为4时才有意义,因此其描述用于指定它:

“max-file-size:在max-size模式下启动新文件之前的最大文件大小”

相关问题