如何设置非标准 gstreamer 属性 的类型?
How to set the type for a non-standard gstreamer property?
我正在尝试为 videotestsrc
设置 pattern
属性。按照正常逻辑,我尝试将变量设置为 i32
和字符串。两者都因要求特定类型的错误而失败。
查看 gstreamer API,我找不到设置 属性 的方法。
如何强制变量类型与预期匹配?
let pattern = "snow";
src.set_property("pattern", &pattern)
.expect("setting pattern error");
错误信息
thread 'main' panicked at 'setting pattern error: BoolError { message: "property \'pattern\' of type \'GstVideoTestSrc\' can\'t be set from the given type (expected: \'GstVideoTestSrcPattern\', got: \'gchararray\')",
您可以通过 src.set_property_from_str("snow")
.
按字符串设置
或者您可以使用 glib::EnumClass
API to get all the possible values for the type. You can get the type via src.find_property("pattern")
and then get_value_type()
。
我正在尝试为 videotestsrc
设置 pattern
属性。按照正常逻辑,我尝试将变量设置为 i32
和字符串。两者都因要求特定类型的错误而失败。
查看 gstreamer API,我找不到设置 属性 的方法。
如何强制变量类型与预期匹配?
let pattern = "snow";
src.set_property("pattern", &pattern)
.expect("setting pattern error");
错误信息
thread 'main' panicked at 'setting pattern error: BoolError { message: "property \'pattern\' of type \'GstVideoTestSrc\' can\'t be set from the given type (expected: \'GstVideoTestSrcPattern\', got: \'gchararray\')",
您可以通过 src.set_property_from_str("snow")
.
或者您可以使用 glib::EnumClass
API to get all the possible values for the type. You can get the type via src.find_property("pattern")
and then get_value_type()
。