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;
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) {
* to using the sample spec and channel map after all decisions w.r.t.
* routing are complete. */
pa_idxset *tmp = pa_idxset_new(NULL, NULL);
- pa_format_info *f = pa_format_info_from_sample_spec(&data->sample_spec, &data->channel_map);
+ pa_format_info *f = pa_format_info_from_sample_spec(&data->sample_spec,
+ data->channel_map_is_set ? &data->channel_map : NULL);
pa_idxset_put(tmp, f, NULL);
pa_sink_input_new_data_set_formats(data, tmp);
}