Differencies of ParamSpecULong in different architectures
I receive a mistype error if I run this code on an aarch64 architecture. I compiled the code directly on the aarch64 machine, while on the x64 machine no error was raised.
The error:
thread 'main' panicked at 'called Result::unwrap()
on an Err
value:ValueTypeMismatchError { actual: gulong, requested: guint64 }', src/utils/converter.rs:192:44
pub fn details_from_param_specs(param: &ParamSpec, element: &gst::Element) -> Detail {
let val = element.try_property_value(param.name());
let val = match val.is_ok(){
true => val.unwrap(),
false => param.default_value().clone(),
};
return match val.value_type() {
Type::BOOL =>
Detail::Boolean(BooleanDetails{
default: val.get::<bool>().unwrap_or_default()
}),
Type::STRING =>
Detail::String(StringDetails{
default: val.get::<String>().unwrap_or_default()
}),
Type::U_LONG => {
let ulong_param = param.downcast_ref::<ParamSpecULong>().unwrap();
let default = val.get::<c_ulong>().unwrap();
let range = (ulong_param.minimum() as c_ulong, ulong_param.maximum() as c_ulong);
return Detail::ULong(ULongDetail {
default, range
});
},
...