Thanks for the info. It seems the channel mapping init is the problem. pa_channel_map_init_auto() >From the docs it seems like it does not have a default mapping for 7 or more channels. Is the distro supposed to somehow define the default mappings or is this part of the PA source? I would rather not have to define the mapping myself, but at least for the moment I can try the auto init and if that fails just specify a reasonably sensible default mapping in my code. Thanks, Brendon. On 23 June 2010 17:43:05 UTC+10, Colin Guthrie <gmane at colin.guthr.ie> wrote: > 'Twas brillig, and Brendon Costa at 23/06/10 06:36 did gyre and gimble: >> Hi all, >> >> I have an app that is using the async interface of pulse that comes >> with Ubuntu 10.04 >> >> Server Version: 0.9.21-63-gd3efa-dirty >> Linked to Library Version: 0.9.21-63-gd3efa-dirty >> Compiled with Library Version: 0.9.14 >> >> The sink info structure reports that it has 8 channels available >> (which is expected as it is using a 7.1 surround sound device). I find >> that if I try to open a stream to the sink with 1 - 6 channels >> everything works as expected, but if I try to open 7 or 8 channels, >> then pa_stream_new() returns NULL with "Invalid argument" set in the >> context errno. >> >> Are there any known issues with using Pulse with a 7.1 surround system? > > I've not heard of any specific issue, but I wouldn't rule it out. 7.1 > wont have had nearly as much testing as say, 5.1 or stereo. > > Looking at the code for pa_stream_new_with_proplist (pa_stream_new just > calls this) there are a few test cases at the top: > > ? ?PA_CHECK_VALIDITY_RETURN_NULL(c, ss && pa_sample_spec_valid(ss), > PA_ERR_INVALID); > ? ?PA_CHECK_VALIDITY_RETURN_NULL(c, !map || (pa_channel_map_valid(map) > && map->channels == ss->channels), PA_ERR_INVALID); > ? ?PA_CHECK_VALIDITY_RETURN_NULL(c, name || (p && > pa_proplist_contains(p, PA_PROP_MEDIA_NAME)), PA_ERR_INVALID); > > ? ?if (!map) > ? ? ? ?PA_CHECK_VALIDITY_RETURN_NULL(c, map = > pa_channel_map_init_auto(&tmap, ss->channels, PA_CHANNEL_MAP_DEFAULT), > PA_ERR_INVALID); > > > So chances are it's one of these that you're running up against. Perhaps > try the tests in your calling code to make sure they pass before calling > pa_stream_new and that may highlight a client-side bug or point at > where, specifically, the server side bug may lie. > > Col > > > -- > > Colin Guthrie > gmane(at)colin.guthr.ie > http://colin.guthr.ie/ > > Day Job: > ?Tribalogic Limited [http://www.tribalogic.net/] > Open Source: > ?Mandriva Linux Contributor [http://www.mandriva.com/] > ?PulseAudio Hacker [http://www.pulseaudio.org/] > ?Trac Hacker [http://trac.edgewall.org/] > > _______________________________________________ > pulseaudio-discuss mailing list > pulseaudio-discuss at mail.0pointer.de > https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss >