Re: [pulseaudio-discuss] [PATCH] osx: don't build the once-test binary on OS X

2011-10-03 Thread Maarten Bosmans
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-03 Thread Maarten Bosmans
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

2011-10-03 Thread ashwani.kumar

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

2011-10-03 Thread ashwani.kumar

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

2011-10-03 Thread Colin Guthrie
'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

2011-10-03 Thread ABDUL MOIZ
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

2011-10-03 Thread Arun Raghavan
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.

2011-10-03 Thread Tanu Kaskinen
---
 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

2011-10-03 Thread Pierre-Louis Bossart
  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.

2011-10-03 Thread Tanu Kaskinen
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

2011-10-03 Thread Rémi Denis-Courmont
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

2011-10-03 Thread Rémi Denis-Courmont
---
 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

2011-10-03 Thread Rémi Denis-Courmont
---
 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

2011-10-03 Thread Pierre-Louis Bossart
 +#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

2011-10-03 Thread Arun Raghavan
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

2011-10-03 Thread Colin Guthrie
'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

2011-10-03 Thread Baek Chang
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