summaryrefslogtreecommitdiffstats
path: root/src/pulse/format.c
diff options
context:
space:
mode:
authorArun Raghavan <arun.raghavan@collabora.co.uk>2011-05-20 19:21:02 +0530
committerArun Raghavan <arun.raghavan@collabora.co.uk>2011-05-20 19:21:02 +0530
commit117c7145944fb227703d72dd2f03e88d439c187d (patch)
tree7398a2c44d446e028be5e3c9fccf65e1e5d03b5e /src/pulse/format.c
parentf4eccad1e64e1d494dbda30cccb86a848ceb1d1d (diff)
format: Fix channel map handling
Channel map handling in the extended API was broken. Thanks for Milos_SD for pointing this out on IRC.
Diffstat (limited to 'src/pulse/format.c')
-rw-r--r--src/pulse/format.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/pulse/format.c b/src/pulse/format.c
index a1a0981b..b256d72f 100644
--- a/src/pulse/format.c
+++ b/src/pulse/format.c
@@ -193,11 +193,9 @@ pa_bool_t pa_format_info_to_sample_spec(pa_format_info *f, pa_sample_spec *ss, p
if (map) {
pa_channel_map_init(map);
- if (!pa_format_info_get_prop_string(f, PA_PROP_FORMAT_CHANNEL_MAP, &m))
- goto out;
-
- if (m && pa_channel_map_parse(map, m) == NULL)
- goto out;
+ if (pa_format_info_get_prop_string(f, PA_PROP_FORMAT_CHANNEL_MAP, &m))
+ if (pa_channel_map_parse(map, m) == NULL)
+ goto out;
}
ret = TRUE;
@@ -281,7 +279,10 @@ pa_bool_t pa_format_info_get_prop_string(pa_format_info *f, const char *key, cha
pa_assert(key);
pa_assert(v);
- pa_return_val_if_fail(str = pa_proplist_gets(f->plist, key), FALSE);
+ str = pa_proplist_gets(f->plist, key), FALSE;
+ if (!str)
+ return FALSE;
+
o = json_tokener_parse(str);
pa_return_val_if_fail(!is_error(o), FALSE);
if (json_object_get_type(o) != json_type_string) {