From 2393be4543a14000f3b0186af888637ed7c9202e Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 12 Jun 2025 12:12:28 +0200 Subject: [PATCH] spa: add SPA_LATENCY_INFO_UNSET Add a initializer for an unset latency info. Use this for combining latency info. --- spa/include/spa/param/latency-utils.h | 22 +++++++++------------- spa/include/spa/param/latency.h | 4 ++++ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/spa/include/spa/param/latency-utils.h b/spa/include/spa/param/latency-utils.h index 907c92816..bd3c274dd 100644 --- a/spa/include/spa/param/latency-utils.h +++ b/spa/include/spa/param/latency-utils.h @@ -44,28 +44,24 @@ spa_latency_info_compare(const struct spa_latency_info *a, const struct spa_late SPA_API_LATENCY_UTILS void spa_latency_info_combine_start(struct spa_latency_info *info, enum spa_direction direction) { - *info = SPA_LATENCY_INFO(direction, - .min_quantum = FLT_MAX, - .max_quantum = FLT_MIN, - .min_rate = INT32_MAX, - .max_rate = INT32_MIN, - .min_ns = INT64_MAX, - .max_ns = INT64_MIN); + *info = SPA_LATENCY_INFO_UNSET(direction); } + SPA_API_LATENCY_UTILS void spa_latency_info_combine_finish(struct spa_latency_info *info) { - if (info->min_quantum == FLT_MAX) + struct spa_latency_info unset = SPA_LATENCY_INFO_UNSET(info->direction); + if (info->min_quantum == unset.min_quantum) info->min_quantum = 0; - if (info->max_quantum == FLT_MIN) + if (info->max_quantum == unset.max_quantum) info->max_quantum = 0; - if (info->min_rate == INT32_MAX) + if (info->min_rate == unset.min_rate) info->min_rate = 0; - if (info->max_rate == INT32_MIN) + if (info->max_rate == unset.max_rate) info->max_rate = 0; - if (info->min_ns == INT64_MAX) + if (info->min_ns == unset.min_ns) info->min_ns = 0; - if (info->max_ns == INT64_MIN) + if (info->max_ns == unset.max_ns) info->max_ns = 0; } diff --git a/spa/include/spa/param/latency.h b/spa/include/spa/param/latency.h index 0e9cfffa2..fdc479858 100644 --- a/spa/include/spa/param/latency.h +++ b/spa/include/spa/param/latency.h @@ -57,6 +57,10 @@ struct spa_latency_info { }; #define SPA_LATENCY_INFO(dir,...) ((struct spa_latency_info) { .direction = (dir), ## __VA_ARGS__ }) +#define SPA_LATENCY_INFO_UNSET(dir) SPA_LATENCY_INFO(dir, \ + .min_quantum = FLT_MAX, .max_quantum = FLT_MIN, \ + .min_rate = INT32_MAX, .max_rate = INT32_MIN, \ + .min_ns = INT64_MAX, .max_ns = INT64_MIN) /** * Properties for SPA_TYPE_OBJECT_ParamProcessLatency