Re: [pulseaudio-discuss] [RFC] Pulseaudio jack sense
On Tue, 2011-04-12 at 21:58 +0100, Mark Brown wrote: On Tue, Apr 12, 2011 at 02:14:04PM -0500, pl bossart wrote: Jack detect does not use the ALSA kernel subsystem but does instead use the input subsystem for jack status. It makes sense to create a new module so we can then use jack detect for non ALSA sound devices. I'm a bit lost here. What are 'non ALSA sound devices'? And to the best of my knowledge these events are only generated by ALSA drivers... Am I missing something here? These events can be generated by anything - prior to my implementing the ALSA support for this all the implementations in mainline were doing this via the gpio-keys driver since they were detecting a microswitch in the jack. I'd expect that non-audio jacks may also end up reporting via the same interface (video for example), but I'm not sure if Pulse would be interested in anything non-ALSA. Yeah, this was one of the considerations here along with any OSS audio cards (as there are still a few OSS drivers upstream). This can be moved and integrated into module-alsa-card if desired ? Liam ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] review+pull-request: Passthrough support
Hey folks, My passthrough work is now at a point where I think it's good to pull to master. All the core code for clients to signal that they are providing a compressed format, and sinks to signal what formats they support is there. The API is essentially the same as discussed earlier on-list, with some small tweaks along the way as necessary. Still pending are proper detection/signalling of available formats on ALSA devices is to be done (Colin's looking at some of the plumbing for S/PDIF, and HDMI ELD/EDID-based lookups are something that we need as well), and better handling of monitors (we suspend them for now, which works), and volumes (Tanu's got some on-going work on this). NOTE: given the above about ALSA, topmost patch should probably not be pulled, but is handy to have for testing. In addition to the passthrough branch, there is a passthrough-bt branch which has changes to the bluetooth sink to support streaming MP3 to headsets that support it. This also needs some work before being ready to pull. The changes needed to actually use this in GStreamer are also done, but not upstream yet. I need to do some rebasing to make this stuff good to push out, so details on this in a following mail. Comments, feedback will be very much appreciated. :) Cheers, Arun The following changes since commit aaab340d4e3c57d58755151310f59a0ee96554b1: bluetooth-device: fix rounding errors caused by few bt volume steps (2011-04-05 11:24:12 +0100) are available in the git repository at: git://git.collabora.co.uk/git/user/arun/pulseaudio.git passthrough Arun Raghavan (37): sink: Trivial typo fix sample: Use PA_SAMPLE_INVALID instead of numeric value core: Add a pa_format_info structure format: Add some properties and internal API sink: Extend API for compressed formats support core: Add extended stream API to support compressed formats format: Add convenience API to check if a format is PCM or not sink: Remove PASSTHROUGH flag tests: Add a trivial test for the extended API sink-input: Minor cleanups sink-input: Return NOTSUPPORTED if format negotiation fails sink-input: Don't assert on bad formats format: Avoid some code duplication sink: Fix leak in pa_sink_check_formats() sink-input: Kill passthrough streams if moving to an unsupported sink core: Fix some FIXMEs for the extended API alsa-mixer: Remove passthrough profiles sink: Trivial typo fix in comment core: Suspend monitor when a sink enters passthrough mode alsa: Reconfigure sink sample rate for passthrough inputs format: Const-ify some parameters format: Add some convenience functions for printing stream: Add API to get a stream's pa_format_info introspect: Get formats for sinks introspect: Get format of sink input format: Add a type for DTS core: Factor out passthrough checks into their own functions sink-input: Don't assert if passthrough connection fails sink-input: Don't restore volume for passthrough streams sink-input: Add a format-lost event format: Export pa_format_info_is_compatible in API format: Add correct sample spec conversion for E-AC3 sink-input: Provide more information to client when format is lost stream-restore: Check for readability before reading volume format: Extend properties to handle lists/ranges format: Add some convenience API for setting properties alsa: WIP AC3/E-AC3/DTS passthrough negotiation support Pierre-Louis Bossart (1): sink-input: Don't resample passthrough inputs PROTOCOL | 28 ++ configure.ac |8 +- po/POTFILES.in |1 + src/Makefile.am| 22 +- src/map-file | 19 + src/modules/alsa/alsa-sink.c | 110 +- .../mixer/paths/iec958-passthrough-output.conf | 19 - src/modules/alsa/mixer/profile-sets/default.conf |7 - src/modules/echo-cancel/module-echo-cancel.c |2 +- src/modules/module-combine.c |2 +- src/modules/module-device-manager.c|4 +- src/modules/module-equalizer-sink.c|2 +- src/modules/module-intended-roles.c| 10 +- src/modules/module-ladspa-sink.c |2 +- src/modules/module-loopback.c |2 +- src/modules/module-remap-sink.c|2 +- src/modules/module-sine.c |2 +- src/modules/module-stream-restore.c| 10 +- src/modules/module-virtual-sink.c |2 +- src/modules/rtp/module-rtp-recv.c |2 +- src/pulse/def.h| 17 +- src/pulse/format.c
Re: [pulseaudio-discuss] starting multiple pulseaudio instances for the same user
I have found a workaround for this problem by setting a different $HOME before launching each pulseaudio instance for the same $USER. Since the pid file option says: use-pid-file= Create a PID file in /tmp/pulse-$USER/pid. Of this is enabled you may use commands like --kill or --check. If you are planning to start more than one PulseAudio process per user, you better disable this option since it effectively disables multiple instances. Takes a boolean argument, defaults to yes. The --no-cpu-limit command line option takes precedence. I think it is fair to assume that multiple instances per user should work, shouldn't it? The problem seems to come from the softlink from: $HOME/.pulse/${MACHINE_ID}-runtime Where MACHINE_ID=`cat /var/lib/dbus/machine-id` And when this link exists you cannot start another instance as it will block on the autospawn.lock. (tested on a fully up to date Fedora 14 system) Thanks Antoine On 04/09/2011 03:20 AM, Antoine Martin wrote: Hi, How can I start multiple copies of pulseaudio for the same $USER, but in different contexts? This was working a while back (last year or so - not sure about version numbers).. but doesn't any more? My software starts a virtual X server (xpra, vnc..), dbus and a dedicated pulseaudio server for each session application it launches. This allows it to redirect the sound (in and out) to/from remote machines (potentially multiple at once too, some directly, some via gstreamer+vorbis over ssh) - all this together with the display. see (1) Each application session gets its own environment and starts pulseaudio with: /usr/bin/pulseaudio --start - --disable-shm=true --daemonize=false --use-pid-file=false --system=false --exit-idle-time=-1 -n --load=module-suspend-on-idle --load=module-null-sink --load=module-native-protocol-unix socket=/tmp/pulse-$DISPLAY/native A single $USER may start dozens of those sessions, each with a different (virtual) $DISPLAY. Now, when I start the second instance I can see that it somehow finds the previous copy (not the one used by my local X11 session) [pid 3044] open(/home/antoine/.pulse/70a1ab2a8c9d6cb7625f1706000d-runtime/autospawn.lock, O_RDWR|O_CREAT|O_NOCTTY|O_NOFOLLOW, 0600) = 5 [pid 3044] fcntl(5, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0} From that point onwards, nothing happens. Can you please advise on how to restore this functionality? Thanks Antoine (1) http://winswitch.org/ ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] Please help me to understand this
Hello ! While running a program, it entered a fatal error state. See about the backtrace when running under gdb. I'm not sure if this is an error in pulseaudio and if this bug is known. Please help me. Many thanks ! Claude Program received signal SIGSEGV, Segmentation fault. pa_atomic_load (l=0x5a81471c) at pulsecore/atomic.h:57 57 return a-value; (gdb) bt #0 pa_atomic_load (l=0x5a81471c) at pulsecore/atomic.h:57 #1 pa_flist_pop (l=0x5a81471c) at pulsecore/flist.c:191 #2 0x0738e680 in mempool_allocate_slot (p=0xadc0b9c0) at pulsecore/memblock.c:250 #3 0x07390a4a in pa_memblock_new_pool (p=0xadc0b9c0, length=40960) at pulsecore/memblock.c:325 #4 0x07390b80 in pa_memblock_new (p=0xadc0b9c0, length=40960) at pulsecore/memblock.c:213 #5 0x0703a308 in pa_stream_write (s=0xadc02e08, data=0xadc052a8, length=40960, free_cb=0, offset=0, seek=PA_SEEK_RELATIVE) at pulse/stream.c:1354 #6 0x009b8c65 in ?? () from /usr/lib/alsa-lib/libasound_module_pcm_pulse.so #7 0x0427cb92 in ?? () from /lib/libasound.so.2 #8 0x042392e8 in ?? () from /lib/libasound.so.2 #9 0x0427cf97 in ?? () from /lib/libasound.so.2 #10 0x04231af5 in snd_pcm_writei () from /lib/libasound.so.2 #11 0x0142943e in ?? () from /usr/lib/libportaudio.so.2 #12 0x014299c8 in ?? () from /usr/lib/libportaudio.so.2 #13 0x0142e37d in ?? () from /usr/lib/libportaudio.so.2 #14 0x01423f4a in Pa_WriteStream () from /usr/lib/libportaudio.so.2 #15 0xae564a1d in soundout_ (idevout=0xae58fd6c, nrate0=0xae582e64, recordedSamples=0xb2d16500, nframes0=0xae55f35c, iqmode=0xae58fdb8) at sound.c:134 ---Type return to continue, or q return to quit--- #16 0xae56c91e in tx () at tx.f90:198 #17 0x00458e99 in start_thread () from /lib/libpthread.so.0 #18 0x00397d2e in clone () from /lib/libc.so.6 (gdb) ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] Please help me to understand this
On Wed, Apr 13, 2011 at 6:03 PM, Claude Frantz claudefrantzx...@lavabit.com wrote: Hello ! While running a program, it entered a fatal error state. See about the backtrace when running under gdb. I'm not sure if this is an error in pulseaudio and if this bug is known. AFAIK, this bug is not known, and I haven't seen any such effects yet. Which program is that? Can you reproduce the bug? To me, it smells like a memory corruption outside the PulseAudio code, but that's just guessing. Could you try running the binary in valgrind? Maybe that shows anything. Daniel ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] starting multiple pulseaudio instances for the same user
'Twas brillig, and Antoine Martin at 08/04/11 22:20 did gyre and gimble: Hi, How can I start multiple copies of pulseaudio for the same $USER, but in different contexts? This was working a while back (last year or so - not sure about version numbers).. but doesn't any more? My software starts a virtual X server (xpra, vnc..), dbus and a dedicated pulseaudio server for each session application it launches. This allows it to redirect the sound (in and out) to/from remote machines (potentially multiple at once too, some directly, some via gstreamer+vorbis over ssh) - all this together with the display. see (1) Each application session gets its own environment and starts pulseaudio with: /usr/bin/pulseaudio --start - --disable-shm=true --daemonize=false --use-pid-file=false --system=false --exit-idle-time=-1 -n --load=module-suspend-on-idle --load=module-null-sink --load=module-native-protocol-unix socket=/tmp/pulse-$DISPLAY/native A single $USER may start dozens of those sessions, each with a different (virtual) $DISPLAY. Now, when I start the second instance I can see that it somehow finds the previous copy (not the one used by my local X11 session) [pid 3044] open(/home/antoine/.pulse/70a1ab2a8c9d6cb7625f1706000d-runtime/autospawn.lock, O_RDWR|O_CREAT|O_NOCTTY|O_NOFOLLOW, 0600) = 5 [pid 3044] fcntl(5, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0} From that point onwards, nothing happens. Can you please advise on how to restore this functionality? This is something that is not supported. PA is, plain and simple, a per-user daemon. If you want to direct sound from different DISPLAYs to different PA servers/sinks you can use the PULSE_SERVER and/or PULSE_SINK property on the X11 root window. This functionality will get even more difficult to hack round in the future when XDG_SESSION_DIR is supported (i.e. when it's rolled out via systemd and supported by PA) so I'd recommend trying to find a way that works where just one PA daemon per-user is started but appropriate hacking of the X11 root window properties is done instead to acheive the same result. There will ultimately likely always be ways to get the end result you need tho' :) 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@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] Please help me to understand this
On 04/13/2011 06:32 PM, Daniel Mack wrote: AFAIK, this bug is not known, and I haven't seen any such effects yet. Which program is that? The program is wspr. It is started whith python and it includes some modules in FORTRAN and C. Can you reproduce the bug? Yes ! To me, it smells like a memory corruption outside the PulseAudio code, but that's just guessing. Could you try running the binary in valgrind? Maybe that shows anything. I have tried it. You will find attached some extract from the output. If you want, I can send you the full output. Thanks for your help, Daniel ! Claude ==4461== HEAP SUMMARY: ==4461== in use at exit: 1,487 bytes in 47 blocks ==4461== total heap usage: 77 allocs, 30 frees, 10,050 bytes allocated ==4461== ==4461== Searching for pointers to 47 not-freed blocks ==4461== Checked 312,572 bytes ==4461== ==4461== LEAK SUMMARY: ==4461==definitely lost: 0 bytes in 0 blocks ==4461==indirectly lost: 0 bytes in 0 blocks ==4461== possibly lost: 0 bytes in 0 blocks ==4461==still reachable: 1,487 bytes in 47 blocks ==4461== suppressed: 0 bytes in 0 blocks ==4461== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 21 from 10) --4461-- --4461-- used_suppression: 21 dl-hack3-cond-1 ==4461== ==4461== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 21 from 10) ==4450== Thread 3: ==4450== Invalid write of size 2 ==4450==at 0x5691BE: ??? (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x56BDE7: ??? (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x57536A: ??? (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x56AF49: Pa_WriteStream (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x884EA1C: soundout_ (sound.c:134) ==4450==by 0x885691D: tx_ (tx.f90:198) ==4450==by 0x458E98: start_thread (in /lib/libpthread-2.13.so) ==4450==by 0x397D2D: clone (in /lib/libc-2.13.so) ==4450== Address 0x5f3d712 is 0 bytes after a block of size 8,194 alloc'd ==4450==at 0x400522F: calloc (vg_replace_malloc.c:418) ==4450==by 0x570569: ??? (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x575161: ??? (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x57533F: ??? (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x56AF49: Pa_WriteStream (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x884EA1C: soundout_ (sound.c:134) ==4450==by 0x885691D: tx_ (tx.f90:198) ==4450==by 0x458E98: start_thread (in /lib/libpthread-2.13.so) ==4450==by 0x397D2D: clone (in /lib/libc-2.13.so) ==4450== ==4450== Invalid read of size 1 ==4450==at 0x4007CE8: memcpy (mc_replace_strmem.c:602) ==4450==by 0x6BE9328: pa_stream_write (string3.h:52) ==4450==by 0x699BC64: ??? (in /usr/lib/alsa-lib/libasound_module_pcm_pulse.so) ==4450==by 0x6B1EB91: ??? (in /lib/libasound.so.2.0.0) ==4450==by 0x6ADB2E7: ??? (in /lib/libasound.so.2.0.0) ==4450==by 0x6B1EF96: ??? (in /lib/libasound.so.2.0.0) ==4450==by 0x6AD3AF4: snd_pcm_writei (in /lib/libasound.so.2.0.0) ==4450==by 0x57043D: ??? (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x5709C7: ??? (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x57537C: ??? (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x56AF49: Pa_WriteStream (in /usr/lib/libportaudio.so.2.0.0) ==4450==by 0x884EA1C: soundout_ (sound.c:134) ==4450== Address 0x5f4570f is 1 bytes before a block of size 48 free'd ==4450==at 0x4005B0A: free (vg_replace_malloc.c:325) ==4450==by 0x11F2AD: TclpFree (in /usr/lib/libtcl8.5.so) ==4450==by 0x129E0D: Tcl_Free (in /usr/lib/libtcl8.5.so) ==4450==by 0x1E11DD: TclBN_mp_clear (in /usr/lib/libtcl8.5.so) ==4450==by 0x1E1516: TclBN_mp_div (in /usr/lib/libtcl8.5.so) ==4450==by 0x1C1D2D: ??? (in /usr/lib/libtcl8.5.so) ==4450==by 0x1CE72A: Tcl_PrintDouble (in /usr/lib/libtcl8.5.so) ==4450==by 0x1A7182: ??? (in /usr/lib/libtcl8.5.so) ==4450==by 0x1A7E1E: Tcl_GetString (in /usr/lib/libtcl8.5.so) ==4450==by 0x592CF80: ??? (in /usr/lib/libtk8.5.so) ==4450==by 0x59225B2: ??? (in /usr/lib/libtk8.5.so) ==4450==by 0x125764: ??? (in /usr/lib/libtcl8.5.so) ==4450== ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] Please help me to understand this
On Wed, Apr 13, 2011 at 7:15 PM, Claude Frantz claudefrantzx...@lavabit.com wrote: On 04/13/2011 06:32 PM, Daniel Mack wrote: AFAIK, this bug is not known, and I haven't seen any such effects yet. Which program is that? The program is wspr. It is started whith python and it includes some modules in FORTRAN and C. Can you reproduce the bug? Yes ! To me, it smells like a memory corruption outside the PulseAudio code, but that's just guessing. Could you try running the binary in valgrind? Maybe that shows anything. I have tried it. You will find attached some extract from the output. The invalid write sounds suspicious. I assume the test binaries from the PulseAudio source tree work fine for you? I think you need to put some more efford in debugging this. IOW, go ahead and build a minimal PortAudio tool and see if it also shows the bug. Or go the other way around and strip down the program you use and see if you can get it to the point where it doesn't crash anymore. Sorry I can't provide more information at this point, but please keep us posted about anything you find. Daniel ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] Please help me to understand this
On 04/13/2011 07:40 PM, Daniel Mack wrote: The invalid write sounds suspicious. I assume the test binaries from the PulseAudio source tree work fine for you? I'm using Fedora 14, all available upgrades installed. The version is reported as pulseaudio-0.9.21-7.fc14.i686 I think you need to put some more efford in debugging this. IOW, go ahead and build a minimal PortAudio tool and see if it also shows the bug. My knowledge about pulseaudio is too limited. Or go the other way around and strip down the program you use and see if you can get it to the point where it doesn't crash anymore. The same problem here. I do not really understand wspr's structure and operating mode. Sorry I can't provide more information at this point, Many thanks for your help, anyway. but please keep us posted about anything you find. OK ! I will do it. Claude ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] rygel mediaserver
A tiny bit more detail - I tried running wireshark while trying to play the stream, the WDTV asks for the stream: HEAD /listen/source/alsa_output.pci-_00_06.1.analog-stereo.monitor HTTP/1.0\r\n [...] And pulseaudio responds: HTTP/1.0 500 Internal Server Error\n :) The body returned contains no more useful info. Testing the same with curl give the same result: curl -I http://localhost:4714/listen/source/alsa_input.pci-_00_06.1.analog-stereo HTTP/1.0 500 Internal Server Error Connection: close Content-Type: text/html; charset=utf-8 Cache-Control: no-cache Expires: 0 Server: pulseaudio/0.9.22 Actually HTTP GET'ing the stream with curl works fine. I made a ticket: http://pulseaudio.org/ticket/933 Cheers! - Gunnar On 12/04/11 21:50, Gunnar Aastrand Grimnes wrote: I think you have to load module-protocol-http as well (not sure I've got the name totally correct). That's the one I meant when I said I have also enabled the http-tcp module, - it's called module-http-protocol-tcp I tried it with my PS3 but never got very far (it defo did try to talk to the http module tho') If you get it working with your WDTV box just by loading http protocol, please report back and I'll tweak paprefs. No such luck. Running pa in a console it says: I: socket-server.c: TCP connection accepted by tcpwrap. I: client.c: Created 12 HTTP client (TCP/IP client from 192.168.178.99:41994) I: client.c: Freed 12 HTTP client (TCP/IP client from 192.168.178.99:41994) immediately, and the WDTV says unable to play the selected file. With my LG HB405SU there is on such message, but rygel says: ** (rygel:10171): WARNING **: rygel-http-request.vala:91: Invalid seek request When I try to play the stream. Cheers, - Gunnar ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
[pulseaudio-discuss] [PATCH] pa_poll(): Simplify detectin of invalid fds in select() emulation mode
Attached is a patch to fix for one out of the few problems I still fight with on OS X. I'm not sure whether this change breaks Windows support, so I'd be happy if someone could give it a try. Thanks, Daniel 0001-pa_poll-Simplify-detectin-of-invalid-fds-in-select-e.patch Description: Binary data ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
Re: [pulseaudio-discuss] [PATCH] pa_poll(): Simplify detectin of invalid fds in select() emulation mode
2011/4/13 Daniel Mack zon...@gmail.com: Attached is a patch to fix for one out of the few problems I still fight with on OS X. I'm not sure whether this change breaks Windows support, so I'd be happy if someone could give it a try. This is indeed a problem. return (fd = 0) (fcntl(fd, F_GETFL) != -1); For Windows, both fcntl and F_GETFL are not available. Thanks, Daniel Maarten ___ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss