diff --git a/spa/include/spa/pod/filter.h b/spa/include/spa/pod/filter.h index da99363b9..b7a477a21 100644 --- a/spa/include/spa/pod/filter.h +++ b/spa/include/spa/pod/filter.h @@ -397,7 +397,7 @@ SPA_API_POD_FILTER int spa_pod_filter_object_make(struct spa_pod_object *pod) int count = 0; SPA_POD_OBJECT_FOREACH(pod, res) { - if (res->value.type == SPA_TYPE_Choice && + if (spa_pod_is_choice(res->value) && !SPA_FLAG_IS_SET(res->flags, SPA_POD_PROP_FLAG_DONT_FIXATE)) { uint32_t nvals, choice; struct spa_pod *v = spa_pod_get_values(&res->value, &nvals, &choice); diff --git a/spa/include/spa/pod/iter.h b/spa/include/spa/pod/iter.h index 0a93b026d..72df7fb81 100644 --- a/spa/include/spa/pod/iter.h +++ b/spa/include/spa/pod/iter.h @@ -451,7 +451,7 @@ SPA_API_POD_ITER int spa_pod_object_fixate(struct spa_pod_object *pod) { struct spa_pod_prop *res; SPA_POD_OBJECT_FOREACH(pod, res) { - if (res->value.type == SPA_TYPE_Choice && + if (spa_pod_is_choice(&res->value) && !SPA_FLAG_IS_SET(res->flags, SPA_POD_PROP_FLAG_DONT_FIXATE)) ((struct spa_pod_choice*)&res->value)->body.type = SPA_CHOICE_None; } @@ -461,7 +461,7 @@ SPA_API_POD_ITER int spa_pod_object_is_fixated(const struct spa_pod_object *pod) { struct spa_pod_prop *res; SPA_POD_OBJECT_FOREACH(pod, res) { - if (res->value.type == SPA_TYPE_Choice && + if (spa_pod_is_choice(&res->value) && ((struct spa_pod_choice*)&res->value)->body.type != SPA_CHOICE_None) return 0; }