[pulseaudio-discuss] 7.1 surround problem

Brendon Costa brendon.j.costa at gmail.com
Wed Jun 23 23:38:46 PDT 2010


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
>



More information about the pulseaudio-discuss mailing list