Re: [pulseaudio-discuss] [PATCH] osx: don't build the once-test binary on OS X
2011/10/1 Colin Guthrie gm...@colin.guthr.ie: 'Twas brillig, and Daniel Mack at 29/09/11 12:25 did gyre and gimble: From: Daniel Mack dan...@caiaq.de This patch was already added earlier with commit ID 2f86ba4f, but the changes got reverted by commit 3adc43b (win32: Make once-test work). However, this still doesn't work on OSX as here, pthread is in general available, but the barrier APIs aren't. Thanks pushed for now pending (perhaps?) a fix to actually make the test work. A good solution would be to make the test compile and run on OSX, but then, if ther's now way it will pass on OSX or the result is just not meaningful, return 77 or add the test to XFAIL_TESTS, so that the failing on OSX is ignored. Maarten ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] osx: don't build the once-test binary on OS X
2011/10/3 Maarten Bosmans mkbosm...@gmail.com: A good solution would be to make the test compile and run on OSX, but then, if ther's now way it will pass on OSX or the result is just not meaningful, return 77 or add the test to XFAIL_TESTS, so that the failing on OSX is ignored. See http://www.gnu.org/s/hello/manual/automake/Simple-Tests.html Maarten ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] webrtc pulseaudio plugin
Hi, Is there any plan to add webrtc in pulseaudio? Regards, Ashwani ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] webrtc pulseaudio plugin
ok. what is the expected time frame. regards Ashwani ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] webrtc pulseaudio plugin
'Twas brillig, and ashwani.kumar at 03/10/11 12:21 did gyre and gimble: ok. what is the expected time frame. Hmm, you're reply totally broke threading. Please try to use a proper mail client so as not to do this (especially when you do not include any context in the mail you send. Not sure of precise time frames but I believe Arun has some branches with initial support in it somewhere so I shouldn't think it will be too far from landing. Col -- Colin Guthrie gmane(at)colin.guthr.ie http://colin.guthr.ie/ Day Job: Tribalogic Limited http://www.tribalogic.net/ Open Source: Mageia Contributor http://www.mageia.org/ PulseAudio Hacker http://www.pulseaudio.org/ Trac Hacker http://trac.edgewall.org/ ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] webrtc pulseaudio plugin
Hi Arun, can you share branch link and tell us the expected time. Regards, Abdul Moiz On Mon, Oct 3, 2011 at 6:47 PM, Colin Guthrie gm...@colin.guthr.ie wrote: 'Twas brillig, and ashwani.kumar at 03/10/11 12:21 did gyre and gimble: ok. what is the expected time frame. Hmm, you're reply totally broke threading. Please try to use a proper mail client so as not to do this (especially when you do not include any context in the mail you send. Not sure of precise time frames but I believe Arun has some branches with initial support in it somewhere so I shouldn't think it will be too far from landing. Col -- Colin Guthrie gmane(at)colin.guthr.ie http://colin.guthr.ie/ Day Job: Tribalogic Limited http://www.tribalogic.net/ Open Source: Mageia Contributor http://www.mageia.org/ PulseAudio Hacker http://www.pulseaudio.org/ Trac Hacker http://trac.edgewall.org/ ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] webrtc pulseaudio plugin
On Mon, 2011-10-03 at 16:51 +0530, ashwani.kumar wrote: ok. what is the expected time frame. http://cgit.collabora.co.uk/git/user/arun/webrtc-audio-processing.git/ http://cgit.collabora.com/git/user/arun/pulseaudio.git/log/?h=webrtc Those are some work in progress bits. There are patches in my local tree that need some cleaning before I push them out, but the basic canceller in that branch works. The mobile version is broken and I've not yet been able to determine why. There's still a bit to be done for drift compensation (which I'm looking at) and gain control to be hooked in, as well. I hope to get these done over time. Cheers, Arun ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [PATCH] alsa-card: Handle the profile modarg.
--- src/modules/alsa/module-alsa-card.c |4 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/src/modules/alsa/module-alsa-card.c b/src/modules/alsa/module-alsa-card.c index 6d1a5e1..a8d9c59 100644 --- a/src/modules/alsa/module-alsa-card.c +++ b/src/modules/alsa/module-alsa-card.c @@ -291,6 +291,7 @@ int pa__init(pa_module *m) { struct userdata *u; pa_reserve_wrapper *reserve = NULL; const char *description; +const char *profile = NULL; char *fn = NULL; pa_bool_t namereg_fail = FALSE; @@ -387,6 +388,9 @@ int pa__init(pa_module *m) { goto fail; } +if ((profile = pa_modargs_get_value(ma, profile, NULL))) +pa_card_new_data_set_profile(data, profile); + u-card = pa_card_new(m-core, data); pa_card_new_data_done(data); -- 1.7.6.3 ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] Pulseaudio A2dp - Audio data loss and stutter
We are trying to get a2dp work using pulse audio 1.0 on arm 11 based evaluation board. The porting of pulseaudio 1.0 to an ARM 11 board did not take any additional effort at all unlike the previous versions. The module loopback for hfp works very well. But when we try a2dp streaming, we get continuous stutter in the audio. we are using 'trivial' resampler, as with others there is no audio at all. Someone else might be able to answer about why module-loopback does this, but what's the CPU utilisation like? To make sure that doesn't play a part in all this, do ensure that the SBC code bundled with PA is built with NEON, or if your CPU doesn't have it, ARMv6 optimisations. Does the hfp routing use a PCM/ALSA output (HCI bypass)? If yes, I would think the latency estimation reported by the A2DP sink is not correct, and the loopback fails to estimate the right sampling frequency. There are some messages in your log along these lines. It's been bugging me for some time, the frequency estimation based on the latency snapshot seems broken with A2DP or RTP outputs. We would need some low-pass filter I guess. -Pierre ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] Configuring alsa mixers in the off profile.
Hi, I have some hardware that needs some mixer configuration when selecting the off profile for the alsa card in order to save power. Now that I think about it, I'm not sure why the driver can't turn off the power when nobody's using the device... I'll have to ask from the driver developer. Anyway, if we assume that there's a valid reason for keeping the device powered whenever the mixer element isn't in the Off position, how should we handle this in Pulseaudio? My suggestion is to add an off path to profile sets. That is, the profile set configuration file would have an option in the [General] section called off-path, which would have a path name as its value. Whenever the off profile is activated, the off path is activated too. Does that sound ok? -- Tanu ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [RFC] [PATCH 0/2] PulseAudio pass-through VLC support
Hello, This is an hopefully better patch series, based on IRC feedback from Arun Raghavan. Unfortunately, this is still untested, except for the PCM fallback case due to lack of hardware on my side. Timer trigger as suggested by David Henningsson was already pushed to VLC master git as of today. I am still unsure how the tlength buffer attribute should be dealt with when there are more than one negotiated audio format. The following changes since commit 01ec282c28ddf128a4d43d65a1f7d05c408bda4c: Use a timer rather zero padding to trigger the PulseAudio stream (2011-10-03 20:13:37 +0300) are available in the git repository at: git://git.remlab.net/vlc.git spadif Rémi Denis-Courmont (2): PulseAudio: add stream event callback and handle format-lost PulseAudio: negotiate digital pass-through for A/52 and DTS modules/audio_output/pulse.c | 92 +- 1 files changed, 91 insertions(+), 1 deletions(-) -- Rémi Denis-Courmont http://www.remlab.net/ http://fi.linkedin.com/in/remidenis ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [PATCH 1/2] PulseAudio: add stream event callback and handle format-lost
--- modules/audio_output/pulse.c | 20 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/modules/audio_output/pulse.c b/modules/audio_output/pulse.c index c3c0aa0..fc7cdb8 100644 --- a/modules/audio_output/pulse.c +++ b/modules/audio_output/pulse.c @@ -355,6 +355,24 @@ static void stream_state_cb(pa_stream *s, void *userdata) (void) userdata; } +static void stream_event_cb(pa_stream *s, const char *name, pa_proplist *pl, +void *userdata) +{ +audio_output_t *aout = userdata; + +/* FIXME: expose aout_Restart() directly */ +if (!strcmp(name, format-lost)) { +vlc_value_t dummy = { .i_int = 0 }; + +msg_Dbg (aout, format lost); +aout_ChannelsRestart (VLC_OBJECT(aout), audio-device, + dummy, dummy, NULL); +} else +msg_Warn (aout, unhandled event %s, name); +(void) s; +(void) pl; +} + static void stream_moved_cb(pa_stream *s, void *userdata) { audio_output_t *aout = userdata; @@ -791,6 +809,7 @@ static int Open(vlc_object_t *obj) } sys-stream = s; pa_stream_set_state_callback(s, stream_state_cb, NULL); +pa_stream_set_event_callback(s, stream_event_cb, aout); pa_stream_set_latency_update_callback(s, stream_latency_cb, aout); pa_stream_set_moved_callback(s, stream_moved_cb, aout); pa_stream_set_overflow_callback(s, stream_overflow_cb, aout); @@ -856,6 +875,7 @@ static void Close (vlc_object_t *obj) /* Clear all callbacks */ pa_stream_set_state_callback(s, NULL, NULL); +pa_stream_set_event_callback(s, NULL, NULL); pa_stream_set_latency_update_callback(s, NULL, NULL); pa_stream_set_moved_callback(s, NULL, NULL); pa_stream_set_overflow_callback(s, NULL, NULL); -- 1.7.6.3 ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [PATCH 2/2] PulseAudio: negotiate digital pass-through for A/52 and DTS
--- modules/audio_output/pulse.c | 72 +- 1 files changed, 71 insertions(+), 1 deletions(-) diff --git a/modules/audio_output/pulse.c b/modules/audio_output/pulse.c index fc7cdb8..cf2ed09 100644 --- a/modules/audio_output/pulse.c +++ b/modules/audio_output/pulse.c @@ -646,6 +646,9 @@ static int Open(vlc_object_t *obj) /* Sample format specification */ struct pa_sample_spec ss; vlc_fourcc_t format = aout-format.i_format; +#if PA_CHECK_VERSION(1,0,0) +pa_encoding_t encoding = PA_ENCODING_INVALID; +#endif switch(format) { @@ -686,6 +689,28 @@ static int Open(vlc_object_t *obj) case VLC_CODEC_U8: ss.format = PA_SAMPLE_U8; break; +#if PA_CHECK_VERSION(1,0,0) +case VLC_CODEC_A52: +format = VLC_CODEC_SPDIFL; +encoding = PA_ENCODING_AC3_IEC61937; +ss.format = HAVE_FPU ? PA_SAMPLE_FLOAT32NE : PA_SAMPLE_S16NE; +break; +/*case VLC_CODEC_EAC3: +format = VLC_CODEC_SPDIFL FIXME; +encoding = PA_ENCODING_EAC3_IEC61937; +ss.format = HAVE_FPU ? PA_SAMPLE_FLOAT32NE : PA_SAMPLE_S16NE; +break; +case VLC_CODEC_MPGA: +format = VLC_CODEC_SPDIFL FIXME; +encoding = PA_ENCODING_MPEG_IEC61937; +ss.format = HAVE_FPU ? PA_SAMPLE_FLOAT32NE : PA_SAMPLE_S16NE; +break;*/ +case VLC_CODEC_DTS: +format = VLC_CODEC_SPDIFL; +encoding = PA_ENCODING_DTS_IEC61937; +ss.format = HAVE_FPU ? PA_SAMPLE_FLOAT32NE : PA_SAMPLE_S16NE; +break; +#endif default: if (HAVE_FPU) { @@ -800,9 +825,39 @@ static int Open(vlc_object_t *obj) sys-base_volume = PA_VOLUME_NORM; pa_cvolume_set(sys-cvolume, ss.channels, PA_VOLUME_NORM); -vlc_pa_lock(); +#if PA_CHECK_VERSION(1,0,0) +pa_format_info *formatv[2]; +unsigned formatc = 0; + +/* Favor digital pass-through if available*/ +if (encoding != PA_ENCODING_INVALID) { +formatv[formatc] = pa_format_info_new(); +formatv[formatc]-encoding = encoding; +pa_format_info_set_rate(formatv[formatc], ss.rate); +pa_format_info_set_channels(formatv[formatc], ss.channels); +formatc++; +} + +/* Fallback to PCM */ +formatv[formatc] = pa_format_info_new(); +formatv[formatc]-encoding = PA_ENCODING_PCM; +pa_format_info_set_sample_format(formatv[formatc], ss.format); +pa_format_info_set_rate(formatv[formatc], ss.rate); +pa_format_info_set_channels(formatv[formatc], ss.channels); +formatc++; + /* Create a playback stream */ +pa_stream *s; + +vlc_pa_lock(); +s = pa_stream_new_extended(ctx, audio stream, formatv, formatc, NULL); + +for (unsigned i = 0; i formatc; i++) +pa_format_info_free(formatv[i]); +#else +vlc_pa_lock(); pa_stream *s = pa_stream_new(ctx, audio stream, ss, map); +#endif if (s == NULL) { vlc_pa_error(obj, stream creation failure, ctx); goto fail; @@ -823,6 +878,21 @@ static int Open(vlc_object_t *obj) goto fail; } +#if PA_CHECK_VERSION(1,0,0) +if (encoding != PA_ENCODING_INVALID) { +const pa_format_info *info = pa_stream_get_format_info(s); + +assert (info != NULL); +if (pa_format_info_is_pcm (info)) { +msg_Dbg(aout, digital pass-through not available); +format = HAVE_FPU ? VLC_CODEC_FL32 : VLC_CODEC_S16N; +} else { +msg_Dbg(aout, digital pass-through enabled); +pa_stream_set_latency_update_callback(s, NULL, NULL); +} +} +#endif + const struct pa_buffer_attr *pba = pa_stream_get_buffer_attr(s); msg_Dbg(aout, using buffer metrics: maxlength=%u, tlength=%u, prebuf=%u, minreq=%u, -- 1.7.6.3 ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH 2/2] PulseAudio: negotiate digital pass-through for A/52 and DTS
+#if PA_CHECK_VERSION(1,0,0) +case VLC_CODEC_A52: +format = VLC_CODEC_SPDIFL; +encoding = PA_ENCODING_AC3_IEC61937; +ss.format = HAVE_FPU ? PA_SAMPLE_FLOAT32NE : PA_SAMPLE_S16NE; +break; This test doesn't seem right. Probably a copy/paste mistake? The IEC data need to be stored in 16-bit data no matter if your hardware has a FPU or not. -Pierre ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH 2/2] PulseAudio: negotiate digital pass-through for A/52 and DTS
On Mon, 2011-10-03 at 21:57 +0300, Rémi Denis-Courmont wrote: Le lundi 3 octobre 2011 21:50:52 Pierre-Louis Bossart, vous avez écrit : +#if PA_CHECK_VERSION(1,0,0) +case VLC_CODEC_A52: +format = VLC_CODEC_SPDIFL; +encoding = PA_ENCODING_AC3_IEC61937; +ss.format = HAVE_FPU ? PA_SAMPLE_FLOAT32NE : PA_SAMPLE_S16NE; +break; This test doesn't seem right. Probably a copy/paste mistake? The IEC data need to be stored in 16-bit data no matter if your hardware has a FPU or not. That is the fallback PCM format in case the sink rejects S/PDIF. That ALSA wants S16 for S/PDIF is the internal cooking of the PulseAudio sink, right? Yes. However, I got confused when I saw that code the first time as well. Maybe a comment there would be useful. Will test with this new code tomorrow and let you know how it goes. Cheers, Arun ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH 0/3] Results from debugging a rewind problem
'Twas brillig, and Tanu Kaskinen at 29/09/11 16:54 did gyre and gimble: module-null-sink has a bug (fix to be posted later) that causes it to use 10 second buffer instead of the intended 2 second buffer. That's actually sort of nice, because that made another bug visible. When moving streams away from the null sink, streams sometimes played silence for a while to the new sink. The culprit turned out to be a bug in rewind handling when a stream moving is finished. The first patch fixes that. The second patch just adds some documentation and FIXME notes - a result of thinking through what really should happen when a stream is moved. The third patch adds some assistance for debugging future bugs. The added memblockq information was successfully used in debugging this rewinding bug. Incidentally, I'm currently fiddling about with a problem I'm seeing with SDL audio (using the built in pulse support) under a VM. Basically the problem is about a 0.4s delay in the audio. I cannot reproduce on my own (bare-metal) machine with or without tsched=0 (IIRC VMs disable tsched automatically). When the problem happens it is preceded by the message relating to being woken up by the alsa driver but with no data to write. This happens on both the snd-intel8x0 and snd-hda-intel h/w (VirtualBox supports both as emulated devices) I'm not sure why but I have got half an inkling this is related to rewinding behaviour (i.e. rewinding too far and then having to play through the silence this results in, which results in the delay). Does anyone have any ideas about this? Col -- Colin Guthrie gmane(at)colin.guthr.ie http://colin.guthr.ie/ Day Job: Tribalogic Limited http://www.tribalogic.net/ Open Source: Mageia Contributor http://www.mageia.org/ PulseAudio Hacker http://www.pulseaudio.org/ Trac Hacker http://trac.edgewall.org/ ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] Google ChromeOS reinventing the wheel, ignoring PulseAudio
On Mon, Oct 3, 2011 at 5:04 AM, Mark Brown broo...@sirena.org.uk wrote: On Fri, Sep 30, 2011 at 08:23:46PM +0200, David Henningsson wrote: First, look at the What's next section of the 1.0 notes [1]. That points out what we think are the most important shortcomings of PulseAudio currently, one of them is Routing infrastructure: while it is possible to write your own policy modules today, we're still lacking a really good solution for handling device priority in combination with hotplugging in combination with user configurable overrides. Yeah, this is why the embedded users I'm aware of chose to do their own thing here (often completely outside of Pulse). This is what WebOS is doing. Separate daemon from pulseaudio that controls routing via ALSA UCM, listens to events for hardware changes (jack insertion, bluetooth, etc ...) -- -baeksanchang ___ pulseaudio-discuss mailing list pulseaudio-discuss@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss