Re: [pulseaudio-discuss] [PATCH] alsa: get avail, delay, timestamps in a single kernel call

2012-11-03 Thread David Henningsson

Hi Pierre,

sorry for the long delay.

This seems to make a lot of sense, but a question - does this impose a 
requirement on a certain version of alsa-lib and/or the linux kernel?


// David


2012-07-30 02:46, Pierre-Louis Bossart skrev:

Refactor code to fetch avail, delay and timestamp values
in a single call to snd_pcm_status().
The information reported is exactly the same as before,
however it is extracted in a more atomic manner to
improve timer-based scheduling.

Signed-off-by: Pierre-Louis Bossart pierre-louis.boss...@linux.intel.com
---
  src/modules/alsa/alsa-sink.c   |   12 
  src/modules/alsa/alsa-source.c |   12 
  src/modules/alsa/alsa-util.c   |   17 -
  src/modules/alsa/alsa-util.h   |2 +-
  4 files changed, 21 insertions(+), 22 deletions(-)

diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c
index 544399e..e4baa1f 100644
--- a/src/modules/alsa/alsa-sink.c
+++ b/src/modules/alsa/alsa-sink.c
@@ -825,6 +825,7 @@ static void update_smoother(struct userdata *u) {
  int err;
  pa_usec_t now1 = 0, now2;
  snd_pcm_status_t *status;
+snd_htimestamp_t htstamp = { 0, 0 };
  
  snd_pcm_status_alloca(status);
  
@@ -833,18 +834,13 @@ static void update_smoother(struct userdata *u) {
  
  /* Let's update the time smoother */
  
-if (PA_UNLIKELY((err = pa_alsa_safe_delay(u-pcm_handle, delay, u-hwbuf_size, u-sink-sample_spec, FALSE))  0)) {

+if (PA_UNLIKELY((err = pa_alsa_safe_delay(u-pcm_handle, status, delay, u-hwbuf_size, 
u-sink-sample_spec, FALSE))  0)) {
  pa_log_warn(Failed to query DSP status data: %s, 
pa_alsa_strerror(err));
  return;
  }
  
-if (PA_UNLIKELY((err = snd_pcm_status(u-pcm_handle, status))  0))

-pa_log_warn(Failed to get timestamp: %s, pa_alsa_strerror(err));
-else {
-snd_htimestamp_t htstamp = { 0, 0 };
-snd_pcm_status_get_htstamp(status, htstamp);
-now1 = pa_timespec_load(htstamp);
-}
+snd_pcm_status_get_htstamp(status, htstamp);
+now1 = pa_timespec_load(htstamp);
  
  /* Hmm, if the timestamp is 0, then it wasn't set and we take the current time */

  if (now1 = 0)
diff --git a/src/modules/alsa/alsa-source.c b/src/modules/alsa/alsa-source.c
index 94d4a09..17566e7 100644
--- a/src/modules/alsa/alsa-source.c
+++ b/src/modules/alsa/alsa-source.c
@@ -767,6 +767,7 @@ static void update_smoother(struct userdata *u) {
  int err;
  pa_usec_t now1 = 0, now2;
  snd_pcm_status_t *status;
+snd_htimestamp_t htstamp = { 0, 0 };
  
  snd_pcm_status_alloca(status);
  
@@ -775,18 +776,13 @@ static void update_smoother(struct userdata *u) {
  
  /* Let's update the time smoother */
  
-if (PA_UNLIKELY((err = pa_alsa_safe_delay(u-pcm_handle, delay, u-hwbuf_size, u-source-sample_spec, TRUE))  0)) {

+if (PA_UNLIKELY((err = pa_alsa_safe_delay(u-pcm_handle, status, delay, u-hwbuf_size, 
u-source-sample_spec, TRUE))  0)) {
  pa_log_warn(Failed to get delay: %s, pa_alsa_strerror(err));
  return;
  }
  
-if (PA_UNLIKELY((err = snd_pcm_status(u-pcm_handle, status))  0))

-pa_log_warn(Failed to get timestamp: %s, pa_alsa_strerror(err));
-else {
-snd_htimestamp_t htstamp = { 0, 0 };
-snd_pcm_status_get_htstamp(status, htstamp);
-now1 = pa_timespec_load(htstamp);
-}
+snd_pcm_status_get_htstamp(status, htstamp);
+now1 = pa_timespec_load(htstamp);
  
  /* Hmm, if the timestamp is 0, then it wasn't set and we take the current time */

  if (now1 = 0)
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
index bb4e307..4a29a9a 100644
--- a/src/modules/alsa/alsa-util.c
+++ b/src/modules/alsa/alsa-util.c
@@ -1141,10 +1141,11 @@ snd_pcm_sframes_t pa_alsa_safe_avail(snd_pcm_t *pcm, 
size_t hwbuf_size, const pa
  return n;
  }
  
-int pa_alsa_safe_delay(snd_pcm_t *pcm, snd_pcm_sframes_t *delay, size_t hwbuf_size, const pa_sample_spec *ss, pa_bool_t capture) {

+int pa_alsa_safe_delay(snd_pcm_t *pcm, snd_pcm_status_t *status, 
snd_pcm_sframes_t *delay, size_t hwbuf_size, const pa_sample_spec *ss,
+   pa_bool_t capture) {
  ssize_t k;
  size_t abs_k;
-int r;
+int err;
  snd_pcm_sframes_t avail = 0;
  
  pa_assert(pcm);

@@ -1154,10 +1155,16 @@ int pa_alsa_safe_delay(snd_pcm_t *pcm, 
snd_pcm_sframes_t *delay, size_t hwbuf_si
  
  /* Some ALSA driver expose weird bugs, let's inform the user about

   * what is going on. We're going to get both the avail and delay values so
- * that we can compare and check them for capture */
+ * that we can compare and check them for capture.
+ * This is done with snd_pcm_status() which provides
+ * avail, delay and timestamp values in a single kernel call to improve
+ * timer-based scheduling */
  
-if ((r = snd_pcm_avail_delay(pcm, avail, delay))  0)

-return r;
+if ((err = 

Re: [pulseaudio-discuss] master volume at zero and muted when pulseaudio starts

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Frank Wilson at 04/06/12 23:37 did gyre and gimble:
 On 4 June 2012 22:35, Frank Wilson fajwil...@gmail.com wrote:

 Only when I had done alsactl init 0, could I hear the mp3 given to 
 gstreamer.

 
 And in this case it works for both alsasink and pulsesink.

A very late reply I know but for the record, chances are PA was
activating a profile that required Master to be zeroed.

Typically this would be a profile that you can tweak in various GUIs and
will then be saved across reboots. You have perhaps enabled e.g. digital
output rather than analog or something similar.

pacmd ls output is good for debugging here.

Also pacmd dump-volumes is sometimes useful.

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] a question about audio synchronization between local sink and tunnel sink

2012-11-03 Thread Tanu Kaskinen
On Fri, 2012-11-02 at 01:02 +, Sun, Xiaodong wrote:
 Tanu,
 
 This is pa_sink_render_noise():
 void pa_sink_render_noise(pa_sink*s, size_t length, pa_memchunk *result) {
 pa_mix_info info[MAX_MIX_CHANNELS];
 unsigned n;
 size_t block_size_max;
 
 pa_sink_assert_ref(s);
 pa_sink_assert_io_context(s);
 pa_assert(PA_SINK_IS_LINKED(s-thread_info.state));
 pa_assert(pa_frame_aligned(length, s-sample_spec));
 pa_assert(result);
 
 pa_assert(!s-thread_info.rewind_requested);
 pa_assert(s-thread_info.rewind_nbytes == 0);
 
 result-memblock = pa_memblock_ref(s-silence.memblock);
 result-index = s-silence.index;
 result-length = PA_MIN(s-silence.length, length);
 return;
 }

Ok, no problems there then. (I don't understand the logic behind the
function name, but that's not important.)

 stream_get_latency_callback() in module-tunnel.c returns delay 0. I
 think it is normal because remote device current latency is 0  (event
 though fixed latency may not be 0)

Zero device latency is impossible, so if the remote device latency is
reported as 0, the report is wrong.

  and server-side buffer are empty (no playback started yet).

There's also the transport delay, which i'd expect not to be 0.

 Because tunnel sink's latency includes remote device current latency,
 server-side buffer and client-side buffer (output render buffer)
 introduced latency, its value is different when any one of them
 changes. Its initial value (the one we get after
 SINK_MESSAGE_UPDATE_LATENCY  is processed) for sure is not a stable
 one. Am I wrong?

I'm not sure what you mean by stable. Latency reports give you the
latency at a certain point in time. The device latency will inevitably
get lower and lower all the time, until more data is pushed to the
device, at which point the latency will jump up. The latency from the
buffered audio jumps up and down when the client (module-tunnel) writes
more data and when the device asks for more data. There will never be
stable latency.

You don't need stable latency to synchronize the combine sink's streams.
You only need an accurate latency report once. It seems that the problem
is that you're not getting an accurate latency report.

-- 
Tanu

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] Different apps, different outputs under Gnome3?

2012-11-03 Thread Colin Guthrie
'Twas brillig, and David Hagood at 17/06/12 16:47 did gyre and gimble:
 Under Gnome 2, you could easily set different applications to have
 different outputs: I could put my music player on the digital link to my
 stereo, incidental beeps and such on the internal speakers, and so on.
 
 Under Gnome 3, that seems to have been removed from the applet - now
 there is one output selection only, and no good way to pick a given
 application and route only its audio.
 
 Or am I missing something?


Correct, this is missing in gnome3. You have to use pavucontrol or some
other mixer to move individual apps.


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] strange pulse / jack behaviour

2012-11-03 Thread David Henningsson

2012-10-30 12:45, Richard Bown skrev:

On Tue, 2012-10-30 at 22:05 +1100, Patrick Shirkey wrote:

On Tue, October 30, 2012 8:17 pm, Richard Bown wrote:

On Tue, 30 Oct 2012 11:16:18 +1100
Patrick Shirkey pshir...@boosthardware.com wrote:

 a large bit of snipping

Thanks Richard. In this case there is only one device.

My concern here is that I was expecting pulse and jack to automatically
reconfigure if using the dbus option. Isn't that the point of the
module-jackdbus-detect?

It seems to be asking alot of the user (especially those not initiated in
the audio system) to expect them to find and then disable the offending
module to get things running.


You are asking a lot to get the developers of dbus, pulseaudio,
portaudio, jack, alsa  all to iron out a few wrinkles.

Also you need to be running the latest version of all the apps to make
sure that they have not already been sorted, so add the OS version
maintainers to the list to keep their packages up to date.
Running Debian will not keep you up to date with package changes.
Studio64 , one of the debian based DAW  distros is very outdated.
I wrote module-jackdbus-detect a while ago, and never really got it 
elegantly working to the degree that I wanted. It does simplify things, 
but last time I tested we still had a few issues [1].


Sorry about not having had the time to sort out all the wrinkles.

[1] 
https://lists.ubuntu.com/archives/ubuntu-studio-devel/2011-September/003471.html


--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] [PATCH] man pulse-daemon.conf: Correct typoes

2012-11-03 Thread Tanu Kaskinen
On Wed, 2012-10-31 at 18:50 +0100, Wieland Hoffmann wrote:
 ---
  man/pulse-daemon.conf.5.xml.in | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/man/pulse-daemon.conf.5.xml.in b/man/pulse-daemon.conf.5.xml.in
 index a824178..49f9f22 100644
 --- a/man/pulse-daemon.conf.5.xml.in
 +++ b/man/pulse-daemon.conf.5.xml.in
 @@ -113,8 +113,8 @@ USA.
  /option
  
  option
 -  poptenable-lfe-remixing=/opt if disabeld when upmixing or
 -  downmixing ignore LFE channels. When this option is dsabled the
 +  poptenable-lfe-remixing=/opt If disabled when upmixing or
 +  downmixing ignore LFE channels. When this option is disabled the
output LFE channel will only get a signal when an input LFE
channel is available as well. If no input LFE channel is
available the output LFE channel will always be 0. If no output

Thanks, applied.

-- 
Tanu

___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] How to mix streams?

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Vadim Peretokin at 16/10/12 09:04 did gyre and gimble:
 I'd like to mix mic input and output into one stream, to be passed to my
 ALSA-based app as one channel so it can record it in sync with video.
 How can I do this with PulseAudio?

So if I understand correctly you want to record whatever sound is
playing and mix that with input from the mic?

If that's correct then it's a bit fiddly, but it is possible.

Essentially what you want is a module-combine-source to combine two
sources into one. Sadly this doesn't exist :p We do have a
module-combine-sink which allows one stream to be played to multiple
sinks, but this is the opposite.

So in order to do what you need there are a couple different options.

The easiest is to simply load a loopback module and loop your mic to
your output device. This means that everything you say will be heard on
the output. This might cause echo and feedback and thus might not be ideal!

 I tried adding the loopback module and making the input stream of the
 app be the monitor of my output - that seemed to have worked at the
 expense of me getting the input echoed back to me. However the next time
 I tried this, the input echo kept building lag - after recording for a
 few minutes the echo was 2-3s late and getting slower, so this solution
 is unacceptable.

Ha! I should really read to the end of emails before writing replies!

OK, so the second suggestion is as foolows:

1. Load a null sink.
2. Load a loopback module that connects the monitor of the real sound
card to the null sink.
3. Load a second loopback module that connects your mic to the null sink.
4. Record from the null sinks monitor.

That should get things working as you need.

HTHs

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] paid pulse audio support

2012-11-03 Thread Colin Guthrie
'Twas brillig, and info at 11/10/12 20:41 did gyre and gimble:
 i have killed 2 full days and my time is precious now for various
 reasons; i do not want to tell u my problem and have u suggest answer -
 i want you online realtime with me on instant messaging till the problem
 is solved;
 
 i am currently in riyadh, ksa gmt +3 ;
 
 i am running f17, kde, nvidia gt430 graphics card with hdmi, and
 pulseaudio is installed so i have skype support and skype works full
 audio and video;
 
 i only have video and audio when playing a local file on my HD if i do
 the following
 mplayer -ao alsa:device=hw=2.9 file.ext
 
 if i hit test on the hdmi device in kde i get nothing
 
 the main problem is no audio with online video eg youtube
 
 i have been on linux since fedora 4, and we use it professionally but
 none of my techs have experience with linux as a desktop platform only
 as a telco server
 
 i am wasted, tired, defeated, enervated, and unhappy
 
 pls kindly consent to an hourly rate with a 30 minute minimum and pls
 kindly advise when u would be free online
 
 thx and cheers
 al


Sorry for the late reply.

I'd be happy to help you out. If you would like to arrange a time when
I'll be online I'll do my best to help with the issue.

I wouldn't want to do this on a commercial basis and am happy to help
out (provided it doesn't take too long of course!) I'm generally on GMT
timezone and can likely arrange to be online most evenings mid-week at
some point.

If you would prefer to debug the issue via email, just supply pacmd ls
output and if possible the output from PHONON_PULSEAUDIO_DEBUG=99
kcmshell4 kcm_phonon

Thanks!

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] [PATCH] device-restore: When restoring volume, print the restored volume to the log.

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Tanu Kaskinen at 23/10/12 17:55 did gyre and gimble:
 ---
  src/modules/module-device-restore.c |   16 ++--
  1 file changed, 10 insertions(+), 6 deletions(-)
 
 diff --git a/src/modules/module-device-restore.c 
 b/src/modules/module-device-restore.c
 index b9bd498..c9ffbb1 100644
 --- a/src/modules/module-device-restore.c
 +++ b/src/modules/module-device-restore.c
 @@ -779,12 +779,13 @@ static pa_hook_result_t 
 sink_fixate_hook_callback(pa_core *c, pa_sink_new_data *
  
  if (!new_data-volume_is_set) {
  pa_cvolume v;
 +char buf[PA_CVOLUME_SNPRINT_MAX];
  
  pa_log_info(Restoring volume for sink %s., new_data-name);
 -
  v = e-volume;
  pa_cvolume_remap(v, e-channel_map, 
 new_data-channel_map);
  pa_sink_new_data_set_volume(new_data, v);
 +pa_log_info(Restored volume: %s, pa_cvolume_snprint(buf, 
 PA_CVOLUME_SNPRINT_MAX, new_data-volume));
  
  new_data-save_volume = TRUE;
  } else
 @@ -823,14 +824,15 @@ static pa_hook_result_t sink_port_hook_callback(pa_core 
 *c, pa_sink *sink, struc
  if ((e = perportentry_read(u, name, (sink-active_port ? 
 sink-active_port-name : NULL {
  
  if (u-restore_volume  e-volume_valid) {
 -
 +char buf[PA_CVOLUME_SNPRINT_MAX];
  pa_cvolume v;
  
  pa_log_info(Restoring volume for sink %s., sink-name);
 -
  v = e-volume;
  pa_cvolume_remap(v, e-channel_map, sink-channel_map);
  pa_sink_set_volume(sink, v, TRUE, FALSE);
 +pa_log_info(Restored volume: %s, pa_cvolume_snprint(buf, 
 PA_CVOLUME_SNPRINT_MAX, sink-reference_volume));
 +
  sink-save_volume = TRUE;
  }
  
 @@ -919,13 +921,14 @@ static pa_hook_result_t 
 source_fixate_hook_callback(pa_core *c, pa_source_new_da
  if (u-restore_volume  e-volume_valid) {
  
  if (!new_data-volume_is_set) {
 +char buf[PA_CVOLUME_SNPRINT_MAX];
  pa_cvolume v;
  
  pa_log_info(Restoring volume for source %s., 
 new_data-name);
 -
  v = e-volume;
  pa_cvolume_remap(v, e-channel_map, 
 new_data-channel_map);
  pa_source_new_data_set_volume(new_data, v);
 +pa_log_info(Restored volume: %s, pa_cvolume_snprint(buf, 
 PA_CVOLUME_SNPRINT_MAX, new_data-volume));
  
  new_data-save_volume = TRUE;
  } else
 @@ -964,14 +967,15 @@ static pa_hook_result_t 
 source_port_hook_callback(pa_core *c, pa_source *source,
  if ((e = perportentry_read(u, name, (source-active_port ? 
 source-active_port-name : NULL {
  
  if (u-restore_volume  e-volume_valid) {
 -
 +char buf[PA_CVOLUME_SNPRINT_MAX];
  pa_cvolume v;
  
  pa_log_info(Restoring volume for source %s., source-name);
 -
  v = e-volume;
  pa_cvolume_remap(v, e-channel_map, source-channel_map);
  pa_source_set_volume(source, v, TRUE, FALSE);
 +pa_log_info(Restored volume: %s, pa_cvolume_snprint(buf, 
 PA_CVOLUME_SNPRINT_MAX, source-reference_volume));
 +
  source-save_volume = TRUE;
  }
  
 

Looks sensible to me. Applied to my tree but with the very anal change
that I move char buf declaration to be second (i.e. after v) in all
cases rather than the inconsistent order here. Makes me feel mildly
important by making such a trivial change :D


In my tree now!

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] [PATCH] stream: Return error in case a client peeks to early

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Tanu Kaskinen at 05/10/12 13:58 did gyre and gimble:
 On Wed, 2012-10-03 at 08:50 +0200, David Henningsson wrote:
 On 10/02/2012 10:38 PM, Tanu Kaskinen wrote:
 On Mon, 2012-10-01 at 17:06 +0200, David Henningsson wrote:
 If there is no silence memblock and no data, pa_memblockq_peek can
 return NULL. In this case, do not crash on an assertion in
 pa_memblock_acquire, but instead return a proper error to the client.

 If there is no data in the buffer, pa_stream_peek() is supposed to
 return NULL according to the documentation. And it does that: if there's
 no data, pa_memblock_peek() will return a negative value, causing
 pa_stream_peek() to return NULL.

 The problem is the case where the buffer does contain data, but not at
 the read index. That is, there is a hole in the buffer. The client
 documentation doesn't have any warnings about holes, so the only safe
 way to handle holes is to return silence. Fixing this should be a simple
 matter of giving a silence memchunk when creating record_memblockq.

 I'm not so sure. Silence, as in all zeroes, might work for S16 audio 
 data, but what about other formats? Compressed audio? Peak audio (which 
 I think is the case here)? Etc.
 
 Good point. Regarding PCM, if pa_memchunk_silence() is used, the
 function will take care of filling the memory with appropriate content.
 But that doesn't work with compressed audio.
 
 Also maybe it could also be valuable for the client to distinguish 
 between no data available, and valid zero data.

 How about returning NULL and adding to the documentation something like:

 -If no data is available this will return a NULL pointer.
 +If no data is available (at the current read position), this will 
 return a NULL pointer.
 
 An addition: the client probably wants to know how large the hole is. It
 might be possible to figure that out somehow from the read index, but I
 think it would make sense to return the hole size in the length
 parameter.

This discussion seemed to stagnate. Is this worth fixing/documenting for
the 3.0 release?

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] pulseaudio lag at sound end

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Tanu Kaskinen at 02/10/12 22:54 did gyre and gimble:
 On Tue, 2012-10-02 at 22:16 +0200, Samuele Carcagno wrote:
  Hi,
  
  I have the same issue that is described in this post (not mine)
  
  http://unix.stackexchange.com/questions/7067/do-the-play-utility-in-linux-really-have-a-delay-to-stop-its-process-with-r
  
  basically, when I play a sound with aplay or other command line
  utilities, when the sound ends there is a long delay (about 3 seconds)
  before the program returns. This is an issue for me because I play two
  or more sounds in sequence from a python program for
  psychoacoustics research, and the silent interval between two sounds
  needs to be roughly controlled. I could make wav files
  with the sounds in sequence and silence between them, but the sounds
  need to be synchronized with lights, and this is not
  so easy to achieve with a single long wav file.
  
  I was wondering whether there are any settings in pulseaudio that can
  be tweaked to reduce this sound offset lag to negligible levels.
  I should add that with alsa (that is when I remove pulseaudio from my
  system) there is not such problem, aplay starts and returns
  without noticeable delays. For this reason I have been living without
  pulseaudio so far, but some programs start not running well
  without it (skype on Kubuntu Precise), so it would be great if I could
  solve the issue.
  
  Thanks for any help!

 First of all, this is a known issue: http://pulseaudio.org/ticket/866 .
 It's a bit tricky to fix, and so far nobody has volunteered to work on
 it

For what it's worth, this was one of the issues discussed yesterday at
our PulseConf meeting.

David said he would like to improve this behaviour. No guarantee on when
this will be done but at least there is an end in sight for this issue!

Cheers

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] [PATCH] bluetooth: Unregister endpoints when unloading

2012-11-03 Thread Colin Guthrie
Hi,

'Twas brillig, and Mikel Astiz at 27/09/12 10:28 did gyre and gimble:
 This would require to properly handle AdapterRemoved as well, inside 
 filter_cb.
 
 I would even suggest splitting the patch into two patches, the first
 one tracking the existing adapters, and the second one fixing the
 original problem you are addressing.

Arun, did you ever finish this off? Or is this now on your post-3.0 list?

Cheers

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] PulseAudio on OSX

2012-11-03 Thread Colin Guthrie
'Twas brillig, and rong deng at 14/09/12 16:11 did gyre and gimble:
 Hi,
 
 2012/9/13 Jared Sohn jared.s...@gmail.com:
 I want to use PulseAudio to separately control the volume of processes
 on OSX.  Is this possible, and if so what is the best way for doing
 this?

 I have found some instructions at
 http://www.freedesktop.org/wiki/Software/PulseAudio/Ports/OSX and also
 have found an OSX-specific port at
 https://github.com/zonque/PulseAudioOSX along with an accompanying PDF
 and presentation describing the work.  My impression is that if I
 follow the instructions at the first link, it will allow me to play
 sounds created on other computers, but because I don't think it
 includes a HAL plug-in and other OSX-specific code, I don't think it
 will let me control the volumes for OSX processes.

 Is this an accurate state of affairs?  If so, is development
 continuing for OSX integration? (the github project hasn't been
 updated in 11 months), how does integrating in the OSX-specific port
 fit into the roadmap?, and is there further information about how well
 the existing PulseAudioOSX works?

 
 Last time I tried it, it can't even run through the configure part, it
 needs a separate patch (I've submitted it to this mailing list before,
 but it hasn't been accepted.)

Has the patch been rejected or just not reviewed? I'm battling my way
through my backlog (down to just 650 emails now from 1700+!!).

If you could point it out (assuming no-one has since dealt with it) that
would be great.

Cheers

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] gnome-shell hangs, waiting for pulse-audio

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Henrik /KaarPoSoft at 10/09/12 21:13 did gyre and gimble:
 Dear all,
 
 I am running gnome 3.4 and pulse-audio 2.1.
 
 When closing a window, gnome-shell sometimes hangs,
 waiting for pulse-audio.
 
 To reproduce:
 Open a gnome-terminal, press backspace which produces a nice beep,
 press the [X] in the window's title-bar.
 Now the whole desktop is unresponsive (the cursor moves with the mouse,
 but button presses are ignored).
 
 This also happens with other applications (eg. firefox), and happens
 both with pulse-audio debugging output turned on and off.
 
 The GNU debugger (gdb) gives the following back-trace for gnome-shell:
 
 
 #0  0xb7735424 in __kernel_vsyscall ()
 #1  0xb4ff26cd in pthread_cond_wait@@GLIBC_2.3.2 () at
 ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:143
 #2  0xb56aa26b in pa_cond_wait (c=0x9bc3ea0, m=0x9a53bd0) at
 pulsecore/mutex-posix.c:139
 #3  0xb570743e in pa_threaded_mainloop_wait (m=0x9bae118) at
 pulse/thread-mainloop.c:206
 #4  0xb35a54cb in pulse_driver_play (c=0x9b3c740, id=1,
 proplist=0x954dd30, cb=0, userdata=0x0) at pulse.c:955
 #5  0xb6f15733 in driver_play (c=c@entry=0x9b3c740, id=id@entry=1,
 pl=pl@entry=0x954dd30, cb=cb@entry=0, userdata=userdata@entry=0x0) at
 dso.c:342
 #6  0xb6f0dff0 in ca_context_play_full (c=c@entry=0x9b3c740,
 id=id@entry=1, p=0x954dd30, cb=cb@entry=0, userdata=userdata@entry=0x0)
 at common.c:522
 #7  0xb6f0e339 in ca_context_play (c=0x9b3c740, id=id@entry=1) at
 common.c:462
 #8  0xb74fb5eb in workspace_switch_sound (to=0x9efbaf0, from=0x9ef6338)
 at core/workspace.c:496
 #9  meta_workspace_activate_with_focus
 (workspace=workspace@entry=0x9efbaf0, focus_this=focus_this@entry=0x0,
 timestamp=timestamp@entry=0) at core/workspace.c:551
 #10 0xb74fb73b in meta_workspace_activate
 (workspace=workspace@entry=0x9efbaf0, timestamp=timestamp@entry=0) at
 core/workspace.c:686
 #11 0xb74df414 in meta_screen_remove_workspace (screen=0x911f8b8,
 workspace=0x9ef6338, timestamp=0) at core/screen.c:1476
 #12 0xb513f44e in ffi_call_SYSV () at ../src/x86/sysv.S:64
 #13 0xb513f239 in ffi_call (cif=cif@entry=0xad020864, fn=0xb74df2a0
 meta_screen_remove_workspace, rvalue=rvalue@entry=0xbfd7e154,
 avalue=avalue@entry=0xbfd7e070) at ../src/x86/ffi.c:413
 #14 0xb7455e57 in gjs_invoke_c_function
 (context=context@entry=0x93ad578, function=0xad020858,
 obj=obj@entry=0xabea1500, js_argc=js_argc@entry=2,
 js_argv=js_argv@entry=0xac3ff0a8, js_rval=js_rval@entry=0xbfd7e278) at
 gi/function.c:930
 #15 0xb74575bd in function_call (context=0x93ad578, js_argc=2,
 vp=0xac3ff098) at gi/function.c:1245
 #16 0xb71dcb7c in js::Invoke(JSContext*, js::CallArgs const, unsigned
 int) () from //lib/libmozjs185.so.1.0
 #17 0xb71c6082 in js::Interpret(JSContext*, JSStackFrame*, unsigned int,
 JSInterpMode) () from //lib/libmozjs185.so.1.0
 #18 0xb71dad04 in js::RunScript(JSContext*, JSScript*, JSStackFrame*) ()
 from //lib/libmozjs185.so.1.0
 #19 0xb71dca59 in js::Invoke(JSContext*, js::CallArgs const, unsigned
 int) () from //lib/libmozjs185.so.1.0
 #20 0xb71dcf0c in js::ExternalInvoke(JSContext*, js::Value const,
 js::Value const, unsigned int, js::Value*, js::Value*) () from
 //lib/libmozjs185.so.1.0
 #21 0xb7150056 in JS_CallFunctionValue () from //lib/libmozjs185.so.1.0
 #22 0xb7455037 in gjs_callback_closure (cif=0x9f09160,
 result=0xbfd7ea30, args=0xbfd7e9e0, data=0x9f09148) at gi/function.c:291
 #23 0xb513f2f4 in ffi_closure_SYSV_inner (closure=0xabf5f1c0,
 respp=0xbfd7ea3c, args=0xbfd7ea50) at ../src/x86/ffi.c:498
 #24 0xb513f50a in ffi_closure_SYSV () at ../src/x86/sysv.S:188
 #25 0xb74e6463 in run_repaint_laters (data=0x0) at core/util.c:794
 #26 0xb65e52ed in _clutter_run_repaint_functions
 (flags=flags@entry=CLUTTER_REPAINT_FLAGS_PRE_PAINT) at
 ./clutter-main.c:3572
 #27 0xb65e77d4 in master_clock_update_stages (stages=0x9f020a8,
 master_clock=0x9362d28) at ./clutter-master-clock.c:369
 #28 clutter_clock_dispatch (source=source@entry=0x91475f0, callback=0,
 user_data=0x0) at ./clutter-master-clock.c:519
 #29 0xb5089de3 in g_main_dispatch (context=0x9121898) at gmain.c:2539
 #30 g_main_context_dispatch (context=context@entry=0x9121898) at
 gmain.c:3075
 #31 0xb508a180 in g_main_context_iterate (context=0x9121898,
 block=block@entry=1, dispatch=dispatch@entry=1, self=error reading
 variable: Unhandled dwarf expression opcode 0xfa) at gmain.c:3146
 #32 0xb508a5db in g_main_loop_run (loop=0x913d4c8) at gmain.c:3340
 #33 0xb74d5c68 in meta_run () at core/main.c:555
 #34 0x08049c87 in main (argc=1, argv=0xbfd7ed94) at main.c:334
 
 
 As far as I can see,
 gnome-shell calls the mutter main loop,
 which has clutter repaint,
 which in turns calls some JavaScript,
 which ask canberra to play a sound,
 and pulse-audio is trying to play the sound,
 but hangs in a condition wait.
 
 back-trace for pulseaudio:
 

Re: [pulseaudio-discuss] alternate sample rate

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Sladjan Ri at 28/08/12 01:32 did gyre and gimble:
 Hi,
 
 how does the alternate rate work in daemon.conf? I can't find
 documentation in the manual or on the website, aside from one sentence
 in release notes.
 If I remember correctly, there was an option to specify an alternative
 rate so there is no resampling done always. I asked about this in IRC
 a week ago or so, and I set this up in Debian, but now after I
 reinstalled to Ubuntu, I can't find anything about it in the manual,
 and of course I have no backup of my config files.

From man pulse-daemon.conf:


   default-sample-rate= The default sample frequency.

   alternate-sample-rate The alternate sample frequency. Sinks and
sources will use either the default-rate-rate value or this alternate
value, typically 44.1 or
   48kHz.  Switching  between default and alternate values is
enabled only when the sinks/sources are suspended. This option is
ignored in passthrough mode where
   the stream rate will be used. If set to zero, this feature is
disabled.


So this only allows you to configure two native sample rates. If you
supply data in a third, different sample rate, then PA will still do
automatic resampling as needed.

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] [PATCH] resampler: Fix crash if 'auto' resampler chooses ffmpeg with variable rate

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Frédéric Dalleau at 22/08/12 15:42 did gyre and gimble:
 To reproduce, add resampler-method = ffmpeg in daemon.conf
 then start PA, and load module-loopback

Seems like a reasonable fix and as it's been sitting on the list for a
while, I've added it to my tree.

While I think Arun's comments are valid (i.e. trivial is a bit rubbish),
it's better than a crash!

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] Mic volume goes automaticly down

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Sascha Manns at 13/08/12 07:48 did gyre and gimble:
 Hello Listmates,
 
 i'm using Pulseaudio with ALSA on openSUSE 12.2 RC2. The issue i had already 
 on earlier versions of openSUSE.
 The output of alsa-info.sh is published there:
 http://www.alsa-project.org/db/?f=2216a57a427b1498313a8bada6d323fd1ea72780
 
 I'm not sure if this is a pulseaudio-issue or not. The problem is the 
 following.
 In ALSA my Microphone is set with vol 100%. Also i've set 100% in the 
 pulseaudio volumesettings.
 But if i make a call (with skype echo) the input volume goes automaticly down 
 to 0%.
 The inputstream itself works if i manually hold the input stream by 100%. 
 Otherwise i can hear me in the echo call, but very silent.
 
 I'm searching a solution which allows me to set the volume just one and then 
 he leaves it.
 
 Maybe anyone has an idea how to fix it?

Yup, as Luke said untick the option inside Skype that says Allow Skype
to automatically [ruin] my mixer levels. (slightly paraphrasing :p)

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] pulseaudio / ffmpeg resample code

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Peter Meerwald at 23/07/12 11:20 did gyre and gimble:
 Hello,
 
 regarding our discussion about external code dependencies that are copied 
 into the PulseAudio source tree, I halfheartedly propose a patch that 
 brings the ffmpeg resample code up-to-date
 
 the new code fixes some overflows (according to the ffmpeg commit log, not 
 sure how relevant) and pulls in lots of needed code from ffmeg
 
 the better solution seems to be to use the very recently added 
 libavresample library exported from ffmpeg


Personally I'd be in favour of using libavresample as an optional build
time dep, but I'm not sure if David would feel the same if this is not
already something available easily to him in Ubuntu.

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] [PATCH] build: fix Mac OS X configure process

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Deng Zhengrong at 19/07/12 10:41 did gyre and gimble:
 The original header file doesn't exist on Lion (10.7.4).
 ---
  configure.ac |5 -
  1 files changed, 4 insertions(+), 1 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
 index 0290fa0..e600fba 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -473,7 +473,10 @@ if test x$os_is_darwin = x1 ; then
  # How do I check a framework library - AC_CHECK_LIB prob. won't 
 work??, just assign LIBS  hope
  AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
  [LIBS=$LIBS -framework CoreServices],
 -[AC_MSG_ERROR([CoreServices.h header file not found])]
 +
 [AC_CHECK_HEADERS([/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h],
 +[LIBS=$LIBS -framework CoreServices],
 +[AC_MSG_ERROR([CoreServices.h header file not found])]
 +)]
  )
  
  AC_MSG_RESULT([ok])
 

Ahh, this is likely the patch I asked after in an earlier reply :)

It looks harmless to me in terms of regressions, so applied in my tree.

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] Module dependencies

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Arun Raghavan at 23/07/12 05:16 did gyre and gimble:
 Hello
 Folks using the Rygel module are currently facing the problem of having
 to remember to manually add the http module to the auto-loaded list. As
 I see it, there are two ways of fixing this:
 
 1. Just try to load the http protocol module in the Rygel module (it'll
 fail if it's already loaded)
 
 2. Add a mechanism to specify such dependencies in modules.
 
 The latter is more generic, obviously, but I think this would be
 overkill. Does anyone know of cases where such a mechanism would be
 required? If not, we should just go with (1) soon.

3. Make paprefs do it when it adds the rygel module...

I'll volunteer to do this if this is the best solution, but really I'd
rather avoid doing any major paprefs changes!

So maybe option 1 would be good for v3.0. If approved I will do 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] Issue: running error

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Dongjiu Geng at 17/10/12 13:57 did gyre and gimble:
 Dear Tanu:
 
  Thank you for your mail, I mainly use this command:
 /system/bin/pulseaudio –systemto run the pulseaudio.
 
 As shown in the attachment. In my board don’t have this file
 /etc/pulse/default.pa, could you told me how to disable
 
 loading the startup script?  and also could you send the default.pa file
 to me?  Thank you very much.

Note that if you are running in in system mode (--system)  then the
startup script is defined as system.pa, not default.pa.

Perhaps that's one of the problems?

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] gnome-shell hangs, waiting for pulse-audio

2012-11-03 Thread Henrik /KaarPoSoft

On 11/03/12 19:20, Colin Guthrie wrote:

'Twas brillig, and Henrik /KaarPoSoft at 10/09/12 21:13 did gyre and gimble:

Dear all,

I am running gnome 3.4 and pulse-audio 2.1.

When closing a window, gnome-shell sometimes hangs,
waiting for pulse-audio.

To reproduce:
Open a gnome-terminal, press backspace which produces a nice beep,
press the [X] in the window's title-bar.
Now the whole desktop is unresponsive (the cursor moves with the mouse,
but button presses are ignored).

This also happens with other applications (eg. firefox), and happens
both with pulse-audio debugging output turned on and off.

The GNU debugger (gdb) gives the following back-trace for gnome-shell:


#0  0xb7735424 in __kernel_vsyscall ()
#1  0xb4ff26cd in pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:143
#2  0xb56aa26b in pa_cond_wait (c=0x9bc3ea0, m=0x9a53bd0) at
pulsecore/mutex-posix.c:139
#3  0xb570743e in pa_threaded_mainloop_wait (m=0x9bae118) at
pulse/thread-mainloop.c:206
#4  0xb35a54cb in pulse_driver_play (c=0x9b3c740, id=1,
proplist=0x954dd30, cb=0, userdata=0x0) at pulse.c:955
#5  0xb6f15733 in driver_play (c=c@entry=0x9b3c740, id=id@entry=1,
pl=pl@entry=0x954dd30, cb=cb@entry=0, userdata=userdata@entry=0x0) at
dso.c:342
#6  0xb6f0dff0 in ca_context_play_full (c=c@entry=0x9b3c740,
id=id@entry=1, p=0x954dd30, cb=cb@entry=0, userdata=userdata@entry=0x0)
at common.c:522
#7  0xb6f0e339 in ca_context_play (c=0x9b3c740, id=id@entry=1) at
common.c:462
#8  0xb74fb5eb in workspace_switch_sound (to=0x9efbaf0, from=0x9ef6338)
at core/workspace.c:496
#9  meta_workspace_activate_with_focus
(workspace=workspace@entry=0x9efbaf0, focus_this=focus_this@entry=0x0,
timestamp=timestamp@entry=0) at core/workspace.c:551
#10 0xb74fb73b in meta_workspace_activate
(workspace=workspace@entry=0x9efbaf0, timestamp=timestamp@entry=0) at
core/workspace.c:686
#11 0xb74df414 in meta_screen_remove_workspace (screen=0x911f8b8,
workspace=0x9ef6338, timestamp=0) at core/screen.c:1476
#12 0xb513f44e in ffi_call_SYSV () at ../src/x86/sysv.S:64
#13 0xb513f239 in ffi_call (cif=cif@entry=0xad020864, fn=0xb74df2a0
meta_screen_remove_workspace, rvalue=rvalue@entry=0xbfd7e154,
avalue=avalue@entry=0xbfd7e070) at ../src/x86/ffi.c:413
#14 0xb7455e57 in gjs_invoke_c_function
(context=context@entry=0x93ad578, function=0xad020858,
obj=obj@entry=0xabea1500, js_argc=js_argc@entry=2,
js_argv=js_argv@entry=0xac3ff0a8, js_rval=js_rval@entry=0xbfd7e278) at
gi/function.c:930
#15 0xb74575bd in function_call (context=0x93ad578, js_argc=2,
vp=0xac3ff098) at gi/function.c:1245
#16 0xb71dcb7c in js::Invoke(JSContext*, js::CallArgs const, unsigned
int) () from //lib/libmozjs185.so.1.0
#17 0xb71c6082 in js::Interpret(JSContext*, JSStackFrame*, unsigned int,
JSInterpMode) () from //lib/libmozjs185.so.1.0
#18 0xb71dad04 in js::RunScript(JSContext*, JSScript*, JSStackFrame*) ()
from //lib/libmozjs185.so.1.0
#19 0xb71dca59 in js::Invoke(JSContext*, js::CallArgs const, unsigned
int) () from //lib/libmozjs185.so.1.0
#20 0xb71dcf0c in js::ExternalInvoke(JSContext*, js::Value const,
js::Value const, unsigned int, js::Value*, js::Value*) () from
//lib/libmozjs185.so.1.0
#21 0xb7150056 in JS_CallFunctionValue () from //lib/libmozjs185.so.1.0
#22 0xb7455037 in gjs_callback_closure (cif=0x9f09160,
result=0xbfd7ea30, args=0xbfd7e9e0, data=0x9f09148) at gi/function.c:291
#23 0xb513f2f4 in ffi_closure_SYSV_inner (closure=0xabf5f1c0,
respp=0xbfd7ea3c, args=0xbfd7ea50) at ../src/x86/ffi.c:498
#24 0xb513f50a in ffi_closure_SYSV () at ../src/x86/sysv.S:188
#25 0xb74e6463 in run_repaint_laters (data=0x0) at core/util.c:794
#26 0xb65e52ed in _clutter_run_repaint_functions
(flags=flags@entry=CLUTTER_REPAINT_FLAGS_PRE_PAINT) at
./clutter-main.c:3572
#27 0xb65e77d4 in master_clock_update_stages (stages=0x9f020a8,
master_clock=0x9362d28) at ./clutter-master-clock.c:369
#28 clutter_clock_dispatch (source=source@entry=0x91475f0, callback=0,
user_data=0x0) at ./clutter-master-clock.c:519
#29 0xb5089de3 in g_main_dispatch (context=0x9121898) at gmain.c:2539
#30 g_main_context_dispatch (context=context@entry=0x9121898) at
gmain.c:3075
#31 0xb508a180 in g_main_context_iterate (context=0x9121898,
block=block@entry=1, dispatch=dispatch@entry=1, self=error reading
variable: Unhandled dwarf expression opcode 0xfa) at gmain.c:3146
#32 0xb508a5db in g_main_loop_run (loop=0x913d4c8) at gmain.c:3340
#33 0xb74d5c68 in meta_run () at core/main.c:555
#34 0x08049c87 in main (argc=1, argv=0xbfd7ed94) at main.c:334


As far as I can see,
gnome-shell calls the mutter main loop,
which has clutter repaint,
which in turns calls some JavaScript,
which ask canberra to play a sound,
and pulse-audio is trying to play the sound,
but hangs in a condition wait.

back-trace for pulseaudio:

#0  

Re: [pulseaudio-discuss] gnome-shell hangs, waiting for pulse-audio

2012-11-03 Thread Colin Guthrie
'Twas brillig, and Henrik /KaarPoSoft at 03/11/12 23:07 did gyre and gimble:
 On 11/03/12 19:20, Colin Guthrie wrote:
 'Twas brillig, and Henrik /KaarPoSoft at 10/09/12 21:13 did gyre and
 gimble:
 Dear all,

 I am running gnome 3.4 and pulse-audio 2.1.

 When closing a window, gnome-shell sometimes hangs,
 waiting for pulse-audio.

 To reproduce:
 Open a gnome-terminal, press backspace which produces a nice beep,
 press the [X] in the window's title-bar.
 Now the whole desktop is unresponsive (the cursor moves with the mouse,
 but button presses are ignored).

 This also happens with other applications (eg. firefox), and happens
 both with pulse-audio debugging output turned on and off.

 The GNU debugger (gdb) gives the following back-trace for gnome-shell:

 
 #0  0xb7735424 in __kernel_vsyscall ()
 #1  0xb4ff26cd in pthread_cond_wait@@GLIBC_2.3.2 () at
 ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:143

 #2  0xb56aa26b in pa_cond_wait (c=0x9bc3ea0, m=0x9a53bd0) at
 pulsecore/mutex-posix.c:139
 #3  0xb570743e in pa_threaded_mainloop_wait (m=0x9bae118) at
 pulse/thread-mainloop.c:206
 #4  0xb35a54cb in pulse_driver_play (c=0x9b3c740, id=1,
 proplist=0x954dd30, cb=0, userdata=0x0) at pulse.c:955
 #5  0xb6f15733 in driver_play (c=c@entry=0x9b3c740, id=id@entry=1,
 pl=pl@entry=0x954dd30, cb=cb@entry=0, userdata=userdata@entry=0x0) at
 dso.c:342
 #6  0xb6f0dff0 in ca_context_play_full (c=c@entry=0x9b3c740,
 id=id@entry=1, p=0x954dd30, cb=cb@entry=0, userdata=userdata@entry=0x0)
 at common.c:522
 #7  0xb6f0e339 in ca_context_play (c=0x9b3c740, id=id@entry=1) at
 common.c:462
 #8  0xb74fb5eb in workspace_switch_sound (to=0x9efbaf0, from=0x9ef6338)
 at core/workspace.c:496
 #9  meta_workspace_activate_with_focus
 (workspace=workspace@entry=0x9efbaf0, focus_this=focus_this@entry=0x0,
 timestamp=timestamp@entry=0) at core/workspace.c:551
 #10 0xb74fb73b in meta_workspace_activate
 (workspace=workspace@entry=0x9efbaf0, timestamp=timestamp@entry=0) at
 core/workspace.c:686
 #11 0xb74df414 in meta_screen_remove_workspace (screen=0x911f8b8,
 workspace=0x9ef6338, timestamp=0) at core/screen.c:1476
 #12 0xb513f44e in ffi_call_SYSV () at ../src/x86/sysv.S:64
 #13 0xb513f239 in ffi_call (cif=cif@entry=0xad020864, fn=0xb74df2a0
 meta_screen_remove_workspace, rvalue=rvalue@entry=0xbfd7e154,
 avalue=avalue@entry=0xbfd7e070) at ../src/x86/ffi.c:413
 #14 0xb7455e57 in gjs_invoke_c_function
 (context=context@entry=0x93ad578, function=0xad020858,
 obj=obj@entry=0xabea1500, js_argc=js_argc@entry=2,
 js_argv=js_argv@entry=0xac3ff0a8, js_rval=js_rval@entry=0xbfd7e278) at
 gi/function.c:930
 #15 0xb74575bd in function_call (context=0x93ad578, js_argc=2,
 vp=0xac3ff098) at gi/function.c:1245
 #16 0xb71dcb7c in js::Invoke(JSContext*, js::CallArgs const, unsigned
 int) () from //lib/libmozjs185.so.1.0
 #17 0xb71c6082 in js::Interpret(JSContext*, JSStackFrame*, unsigned int,
 JSInterpMode) () from //lib/libmozjs185.so.1.0
 #18 0xb71dad04 in js::RunScript(JSContext*, JSScript*, JSStackFrame*) ()
 from //lib/libmozjs185.so.1.0
 #19 0xb71dca59 in js::Invoke(JSContext*, js::CallArgs const, unsigned
 int) () from //lib/libmozjs185.so.1.0
 #20 0xb71dcf0c in js::ExternalInvoke(JSContext*, js::Value const,
 js::Value const, unsigned int, js::Value*, js::Value*) () from
 //lib/libmozjs185.so.1.0
 #21 0xb7150056 in JS_CallFunctionValue () from //lib/libmozjs185.so.1.0
 #22 0xb7455037 in gjs_callback_closure (cif=0x9f09160,
 result=0xbfd7ea30, args=0xbfd7e9e0, data=0x9f09148) at gi/function.c:291
 #23 0xb513f2f4 in ffi_closure_SYSV_inner (closure=0xabf5f1c0,
 respp=0xbfd7ea3c, args=0xbfd7ea50) at ../src/x86/ffi.c:498
 #24 0xb513f50a in ffi_closure_SYSV () at ../src/x86/sysv.S:188
 #25 0xb74e6463 in run_repaint_laters (data=0x0) at core/util.c:794
 #26 0xb65e52ed in _clutter_run_repaint_functions
 (flags=flags@entry=CLUTTER_REPAINT_FLAGS_PRE_PAINT) at
 ./clutter-main.c:3572
 #27 0xb65e77d4 in master_clock_update_stages (stages=0x9f020a8,
 master_clock=0x9362d28) at ./clutter-master-clock.c:369
 #28 clutter_clock_dispatch (source=source@entry=0x91475f0, callback=0,
 user_data=0x0) at ./clutter-master-clock.c:519
 #29 0xb5089de3 in g_main_dispatch (context=0x9121898) at gmain.c:2539
 #30 g_main_context_dispatch (context=context@entry=0x9121898) at
 gmain.c:3075
 #31 0xb508a180 in g_main_context_iterate (context=0x9121898,
 block=block@entry=1, dispatch=dispatch@entry=1, self=error reading
 variable: Unhandled dwarf expression opcode 0xfa) at gmain.c:3146
 #32 0xb508a5db in g_main_loop_run (loop=0x913d4c8) at gmain.c:3340
 #33 0xb74d5c68 in meta_run () at core/main.c:555
 #34 0x08049c87 in main (argc=1, argv=0xbfd7ed94) at main.c:334
 

 As far as I can see,
 gnome-shell calls the mutter main loop,
 which has clutter repaint,
 which in turns calls some JavaScript,
 which ask canberra to play a sound,
 and 

Re: [pulseaudio-discuss] Mic volume goes automaticly down

2012-11-03 Thread Raymond Yau
 
  i'm using Pulseaudio with ALSA on openSUSE 12.2 RC2. The issue i had
already
  on earlier versions of openSUSE.
  The output of alsa-info.sh is published there:
 
http://www.alsa-project.org/db/?f=2216a57a427b1498313a8bada6d323fd1ea72780
 
  I'm not sure if this is a pulseaudio-issue or not. The problem is the
  following.
  In ALSA my Microphone is set with vol 100%. Also i've set 100% in the
  pulseaudio volumesettings.
  But if i make a call (with skype echo) the input volume goes
automaticly down
  to 0%.
  The inputstream itself works if i manually hold the input stream by
100%.
  Otherwise i can hear me in the echo call, but very silent.
 
  I'm searching a solution which allows me to set the volume just one and
then
  he leaves it.
 
  Maybe anyone has an idea how to fix it?

 Yup, as Luke said untick the option inside Skype that says Allow Skype
 to automatically [ruin] my mixer levels. (slightly paraphrasing :p)


cm8378 does not provide any dB info for volume control

how does pa handle this case ?

are there any warning message in the log ?

control.15 {
iface MIXER
name 'Mic Playback Volume'
value 31
comment {
access 'read write'
type INTEGER
count 1
range '0 - 31'
}
}
___
pulseaudio-discuss mailing list
pulseaudio-discuss@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


Re: [pulseaudio-discuss] gnome-shell hangs, waiting for pulse-audio

2012-11-03 Thread Henrik /KaarPoSoft

On 11/03/12 23:36, Colin Guthrie wrote:

'Twas brillig, and Henrik /KaarPoSoft at 03/11/12 23:07 did gyre and gimble:

On 11/03/12 19:20, Colin Guthrie wrote:

'Twas brillig, and Henrik /KaarPoSoft at 10/09/12 21:13 did gyre and
gimble:

Dear all,

I am running gnome 3.4 and pulse-audio 2.1.

When closing a window, gnome-shell sometimes hangs,
waiting for pulse-audio.

To reproduce:
Open a gnome-terminal, press backspace which produces a nice beep,
press the [X] in the window's title-bar.
Now the whole desktop is unresponsive (the cursor moves with the mouse,
but button presses are ignored).

This also happens with other applications (eg. firefox), and happens
both with pulse-audio debugging output turned on and off.

The GNU debugger (gdb) gives the following back-trace for gnome-shell:


#0  0xb7735424 in __kernel_vsyscall ()
#1  0xb4ff26cd in pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:143

#2  0xb56aa26b in pa_cond_wait (c=0x9bc3ea0, m=0x9a53bd0) at
pulsecore/mutex-posix.c:139
#3  0xb570743e in pa_threaded_mainloop_wait (m=0x9bae118) at
pulse/thread-mainloop.c:206
#4  0xb35a54cb in pulse_driver_play (c=0x9b3c740, id=1,
proplist=0x954dd30, cb=0, userdata=0x0) at pulse.c:955
#5  0xb6f15733 in driver_play (c=c@entry=0x9b3c740, id=id@entry=1,
pl=pl@entry=0x954dd30, cb=cb@entry=0, userdata=userdata@entry=0x0) at
dso.c:342
#6  0xb6f0dff0 in ca_context_play_full (c=c@entry=0x9b3c740,
id=id@entry=1, p=0x954dd30, cb=cb@entry=0, userdata=userdata@entry=0x0)
at common.c:522
#7  0xb6f0e339 in ca_context_play (c=0x9b3c740, id=id@entry=1) at
common.c:462
#8  0xb74fb5eb in workspace_switch_sound (to=0x9efbaf0, from=0x9ef6338)
at core/workspace.c:496
#9  meta_workspace_activate_with_focus
(workspace=workspace@entry=0x9efbaf0, focus_this=focus_this@entry=0x0,
timestamp=timestamp@entry=0) at core/workspace.c:551
#10 0xb74fb73b in meta_workspace_activate
(workspace=workspace@entry=0x9efbaf0, timestamp=timestamp@entry=0) at
core/workspace.c:686
#11 0xb74df414 in meta_screen_remove_workspace (screen=0x911f8b8,
workspace=0x9ef6338, timestamp=0) at core/screen.c:1476
#12 0xb513f44e in ffi_call_SYSV () at ../src/x86/sysv.S:64
#13 0xb513f239 in ffi_call (cif=cif@entry=0xad020864, fn=0xb74df2a0
meta_screen_remove_workspace, rvalue=rvalue@entry=0xbfd7e154,
avalue=avalue@entry=0xbfd7e070) at ../src/x86/ffi.c:413
#14 0xb7455e57 in gjs_invoke_c_function
(context=context@entry=0x93ad578, function=0xad020858,
obj=obj@entry=0xabea1500, js_argc=js_argc@entry=2,
js_argv=js_argv@entry=0xac3ff0a8, js_rval=js_rval@entry=0xbfd7e278) at
gi/function.c:930
#15 0xb74575bd in function_call (context=0x93ad578, js_argc=2,
vp=0xac3ff098) at gi/function.c:1245
#16 0xb71dcb7c in js::Invoke(JSContext*, js::CallArgs const, unsigned
int) () from //lib/libmozjs185.so.1.0
#17 0xb71c6082 in js::Interpret(JSContext*, JSStackFrame*, unsigned int,
JSInterpMode) () from //lib/libmozjs185.so.1.0
#18 0xb71dad04 in js::RunScript(JSContext*, JSScript*, JSStackFrame*) ()
from //lib/libmozjs185.so.1.0
#19 0xb71dca59 in js::Invoke(JSContext*, js::CallArgs const, unsigned
int) () from //lib/libmozjs185.so.1.0
#20 0xb71dcf0c in js::ExternalInvoke(JSContext*, js::Value const,
js::Value const, unsigned int, js::Value*, js::Value*) () from
//lib/libmozjs185.so.1.0
#21 0xb7150056 in JS_CallFunctionValue () from //lib/libmozjs185.so.1.0
#22 0xb7455037 in gjs_callback_closure (cif=0x9f09160,
result=0xbfd7ea30, args=0xbfd7e9e0, data=0x9f09148) at gi/function.c:291
#23 0xb513f2f4 in ffi_closure_SYSV_inner (closure=0xabf5f1c0,
respp=0xbfd7ea3c, args=0xbfd7ea50) at ../src/x86/ffi.c:498
#24 0xb513f50a in ffi_closure_SYSV () at ../src/x86/sysv.S:188
#25 0xb74e6463 in run_repaint_laters (data=0x0) at core/util.c:794
#26 0xb65e52ed in _clutter_run_repaint_functions
(flags=flags@entry=CLUTTER_REPAINT_FLAGS_PRE_PAINT) at
./clutter-main.c:3572
#27 0xb65e77d4 in master_clock_update_stages (stages=0x9f020a8,
master_clock=0x9362d28) at ./clutter-master-clock.c:369
#28 clutter_clock_dispatch (source=source@entry=0x91475f0, callback=0,
user_data=0x0) at ./clutter-master-clock.c:519
#29 0xb5089de3 in g_main_dispatch (context=0x9121898) at gmain.c:2539
#30 g_main_context_dispatch (context=context@entry=0x9121898) at
gmain.c:3075
#31 0xb508a180 in g_main_context_iterate (context=0x9121898,
block=block@entry=1, dispatch=dispatch@entry=1, self=error reading
variable: Unhandled dwarf expression opcode 0xfa) at gmain.c:3146
#32 0xb508a5db in g_main_loop_run (loop=0x913d4c8) at gmain.c:3340
#33 0xb74d5c68 in meta_run () at core/main.c:555
#34 0x08049c87 in main (argc=1, argv=0xbfd7ed94) at main.c:334


As far as I can see,
gnome-shell calls the mutter main loop,
which has clutter repaint,
which in turns calls some JavaScript,
which ask canberra to play a sound,
and pulse-audio is trying to play the sound,
but hangs