source-output: Do not use unset channel map in pa_source_output_new
authorDavid Henningsson <david.henningsson@canonical.com>
Wed, 5 Oct 2011 09:15:53 +0000 (11:15 +0200)
committerArun Raghavan <arun.raghavan@collabora.co.uk>
Wed, 5 Oct 2011 15:28:14 +0000 (20:58 +0530)
This problem was found when tracing down a crash coming from the
esound protocol, which does not set a channel map.

BugLink: http://bugs.launchpad.net/bugs/864071
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
N.B.: As Colin notes, this is because commit 117c7145 was incomplete
("format: Fix channel map handling")

src/pulsecore/source-output.c

index ea0e760..f6ad009 100644 (file)
@@ -243,7 +243,8 @@ int pa_source_output_new(
          * 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_source_output_new_data_set_formats(data, tmp);
     }