[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