Re: [pulseaudio-discuss] [PATCH] alsa: get avail, delay, timestamps in a single kernel call
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
'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
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?
'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-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
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?
'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
'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.
'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
'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
'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
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
'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
'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
'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
'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
'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
'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
'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
'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
'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
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
'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
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
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