[pulseaudio-discuss] [ANNOUNCE] A testing release of 0.9.15
Lennart Poettering
lennart at poettering.net
Wed Feb 4 13:05:42 PST 2009
Heya!
I just rolled a tarball for a testing release of what is supposed to
become the official 0.9.15 release:
http://0pointer.de/public/pulseaudio-0.9.15-test1.tar.gz
I'd be very thankful for bug reports about this release.
Colin Guthrie already pointed out that module-positional-event-sounds
is completely borked. So, while testing make sure not to load it
otherwise volumes of all your streams might start moving in strangest
ways as if controlled by some ghost. It is loaded by default though,
hence you need to manually disable it.
There are a lot of changes in this release. For the full shortlog see
below. Biggest visible changes are the flat volume stuff that's based
on Marc-Andre's contributions, Colin's Airport Express work, and
the ability to switch output profiles on-the-fly (i.e switch between
Analog Stereo/Analog 5.1/SPDIF Stereo/.. without having your stream
stop. There's no UI for this yet unfortunately, but there is pactl and
pacmd.)
It was my intention to make this the big "Bluetooth Audio Works"
release. Unfortunately that didn't really turn out to be
possible. There has been a lot of work in this area (all based on
Paulo Rechi Vita's original implementation) but most if is virtually
untested because the kernel in this area is still a bit too
unstable. A2DP should basically work, but since there is no UI to
activate a headset you need to use d-feet for this. HSP/HFP hasn't
been tested at all.
The final 0.9.15 is planned for later next week.
Packagers, this might be a good time to start preparing preliminary
packages!
Oh, and for the folks who care about translations: it might be a good
idea to update them now, since strings will most likely stay stable
until the release.
Here's the git shortlog:
A S Alam (1):
Add Punjabi Translation for Module
Colin Guthrie (63):
Add a small lib to interpret and produce headers as used in http style requests.
Add a RTSP client impelmentation.
Add a simple base64 library that will be used by the sink
Start the raop sink. It's based on pipe sink and isn't anywhere near finished. It does however compile.
Use pa_sprintf_malloc to do simple concatenation rather than using the higher overhead of pa_strbuf
Use _free rather than _destroy so as not to mix naming conventions.
Convert to using pa_socket_client rather than using blocking IO.
Convert the return values to fit with the rest of pulse 0 == success, < 0 == failure
Fix svn properties and some minor indentation
Trivial change to allocate memory using pulse methods.
Move closer to an asynchronous structure (still some parsing code to be converted).
Add a skeleton raop client which builds on the rtsp client.
Some minor tidyup to remove code now in raop client. Still nowhere near functional.
Add a function for packing bits into a byte buffer. This will be needed when encoding the audio data in ALAC format.
Add a pa_iochannel callback for when the RAOP connection connects.
Use a more stateful response parser.
Wrap the io_callback to ensure that all data is written before asking for more.
Rename rtsp.{c,h} to rtsp_client.{c,h}.
Combine pa_raop_client_new and pa_raop_client_connect (no point in having them separate)
Properly duplicate the hostname passed in on connect.
Add more libraries to librtp now that it's doing a lot more.
A very rough first version of the sink.
Do not assert on NULL values of s. This means the connection was closed. This change somehow kills the mainloop with an assert, so I need to sort that out.
Move the ownership of the encoded data memchunk into the raop_client.
Add a new callback structure to propigate when the RTSP connection dies
Listen to the on_close callback. This still causes asserts in the mainloop, so this is not a complete solution
Various changes suggested by Lennart.
Change suggested by Lennart. Do not return a memchunk, instead pass in the pointer.
Fix up IPv6 address format to enclose it in []
Some misc fixes. consts, base64 optimisation (not that it will be with us long anyway), and c comments
unref the raw data memblock before requesting more data.
Don't try to free stack variables.
Do not prefix internal function rtsp_exec.
Do tidy up on disconnection.
Move the encoding loop around a bit such that it does not grab the data and keep it for the next loop iteration.
Set the send buffer size to prevent rendering silence in amongst our good data (this should be more sophisticated but that can wait for a glitch-free port)
Set forgotten keyword property
Keep track of the memblock pointer internally and do not rely on subsequent calls to pass it back in for unref'ing
A few related changes:
Fix up a couple of values related to encoding overhead.
Minor update to copywrite (I still plan to replace this completely but in the mean time....)
Add seq and rtptime params to record/flush with a view to using these for timing and device suspension
Remove unneeded headers accidentially added in r2500.
Change the API of the RTSP client a bit.
Add some new public API functions to connect and flush.
Still send silence when we are not doing anything else, but also flush the buffers correctly upon recovery from suspension.
Minor correction of help text
Automatic discovery of airtunes devices via Bonjour/Avahi.
Add Lennart back in to Copyright as I copied these files from his originals and was a bit overzealous in changing things ;)
Use the new pa_namereg_make_valid_name() function.
Implement a set volume function to expose this capability to higher layers
Implement hardware volume control. This allows near instant change of volume when controlling the hardware but the stream volume still suffers from a sizable delay.
Make module-raop-sink/discover work with 0.9.11 API
Remove $Id$ lines left over from SVN
Modularise the RAOP stuff that requires OpenSSL and make it optional at compile time
Follow master change r34dd4a and fix shutdown when --disallow-module-loading=1 is passed
Fix a potential C++/C99 ism, add a log message on error condition
Fix two typos that broke tunnels
Fix a potentially non-returning function in base64 code.
Fix the message processing for PA_SINK_MESSAGE_GET_LATENCY by returning rather than breaking and falling through.
Clean up volume/mute settings a bit. As the APEX device only has one channel of volume (e.g. it's always matched) we emulate any variation in channel volumes in software. Remove the unnecessary callback defininitions.
Trivial typo in a comment
A couple of dependancy ordering fixes.
Diego 'Flameeyes' Pettenò (4):
Bump autoconf requirement to 2.62 (latest released version).
Remove gettext macros from configure.ac, intltool is used.
Create an m4 directory for common macros and use it.
Update code to use libtool 2.2. Use convenience recursive libltdl.
Diego E. 'Flameeyes' Pettenò (9):
Create only the directory the current target should be created into.
Add proper -I directives for out-of-tree builds.
Allow to opt-out from building tests.
Include the alsa/ subdirectory for modules in the search path.
Remove support for internal distributing and bundling of libltdl.
Fix logic thinko.
Move the safety check about pkg-config in bootstrap.sh.
Improve the ltdl discovery code by checking for libtool 2.x functions.
Use #ifdef to avoid warning about undefined macro.
Diego Elio 'Flameeyes' Pettenò (1):
Disable portability warnings from automake.
Domingo Becker (1):
updated spanish translation
Fabian Affolter (3):
Some strings done in German translation
Some strings done in German translation
Updated German translation
Henrique Junior (1):
Updated brazilian portuguese translation
Herli Joaquim de Menezes (3):
Strings do PulseAudio traduzidas para o português do Brasil.
Transmitted-via: Transifex (translate.fedoraproject.org)
Transmitted-via: Transifex (translate.fedoraproject.org)
Igor Pires Soares (1):
pt_BR added to LINGUAS
Jared D. McNeill (7):
NetBSD needs to include sys/uio.h for some socket functions
NetBSD doesn't know RLIMIT_AS
NetBSD specific atomic operation implementation
It is more portable to assume that SO_RCVBUF/SO_SNDBUF takes and int instead of a size_t
NetBSD doesn't know ENOLINK
NetBSD doesn't know getgrnam_r()/getpwnam_r()
NetBSD sometimes doesn't know SNDCTL_DSP_GETODELAY
Lennart Poettering (322):
Initialize exit_idle_time to -1 instead of 0 when in system mode.
Initialize exit_idle_time to -1 instead of 0 when in system mode.
instead of resetting virtual_volume unconditionally on initialization, do so only when no volume was set before
when the volume is changed make sure we send out a subscription event
modernize a few checks
use pa_channel_map_init_extend() instead of pa_channel_map_init_auto() as channel map for sink inputs/source outputs in case no map is specified
if the channel map was modified due to PA_SINK_INPUT_FIX_CHANNELS, remap the specified volume properly
additional validity checks
after calling PA_CORE_HOOK_SINK_SET_VOLUME hook, check again whether the volume changed
if a stream comes with now sensible properties attached, use common fallback db entry.
add a comment that pa_sink_input_set_volume and module-flat-volume.c are related
remove $Id$
ignore sinks that do not carry decibel information
some minor reformatting
check the maximum volume of all sink inputs instead of the average volume to avoid digital amplification in favour of attenuation
use pa_sink_set_volume() for changing the volume
query the sink volume outside of the loop because it might be quite expensive
enable flat volumes by default
define 0dB in PA as maximum amplification
correctly load module-flat-volume instead of module-flat-volumes
properly remove dbus matches an filters when unloading m-b-d
always check for libtool prefix binary name to avoid confusion when using both installed and run-from-build-tree versions of PA in parallel
Fix spelling of privilige
Make missing git-changelog.perl non-fatal
fix invalid validity check
add new virtual function may_move_to to sink inputs/source outputs to allow modules to forbid certain connections
implement may_move_to for ladspa/remap sinks
fix return value of pa_frame_aligned()
convert argument to boolean int in PA_UNLIKELY, too
fix arguments to format string
add pa_config_parse_unsigned()
include log.h near the end so that macro.h can be included in log.h and defines pa_bool_t properly
Support showing a backtrace on log messages
support changing logging parameters during runtime using the CLI
Make log meta, time, backtrace configurable using config file
make log meta, time, backtrace configurable using command line
Try to catch certain driver errors
make the debug trap macro a proper macro in macro.h
reorder setting of AM_CFLAGS a bit
temporary commit to allow flameeyes a look
update map file
make new build logic actually work
a lot more build system updates
reorder setting of AM_CFLAGS a bit
update map file
don't set the volume of pacat unless it is explicitly set
warn if ALSA wakes us up and there is actually nothing to do
make sure to use 64bit rounding even on 32bit machines when converting to pa_usec_t
bump micro version
Implement new flags DONT_INHIBIT_AUTO_SUSPEND and START_UNMUTED
a bit of pa_bool_t'ization
Make sure libpulse never gets unloaded
make shm marker architecture independant, patch from michich, closes #401
Check if environ is actually set before we use it
libtool 2.2 updates
Fix return value of --dump-resample-methods
fix implementation of bind now ltdl loader for libtool 2.2
Don't mix front-center into rear channels
Pass GDBM_NOLOCK to gdbm
Load module-volume-restore and module-device-restore before all other modules
Don't hit an assert when checking for idleness
introduce new function pa_module_unload_request_by_index
Don't store pointer to pa_module
actually unload the modules from a new stack frame
unload tunnel modules from a new stack frame
it's better to always use the index of a module instead of the pa_module*
downgrade a few warnings
Make sure we drop CAP_NICE if RT is not allowed
Allow access("/dev/dsp", W_OK) succeed
Use FIONREAD instead of TIOCINQ
Implement PA_SOURCE_MESSAGE_GET_LATENCY
make sure we don't hit an assert when we issue two rewind requests in a single iteration
If we cannot open an ALSA device with SND_PCM_NO_AUTO_FORMAT retry without
fix a gcc warning
Add new API functions pa_volume_snprint() and pa_sw_volume_snprint_dB()
Add APIs to pass pa_volume_t fields in a tagstruct
Add "base volume" field to sinks/sources
Implement base_volume for ALSA sinks/sources
Rework handling of the PA_SINK_LATENCY/PA_SOURCE_LATENCY flags
-Wconvert is pain, let's drop it again
Prefer mixer controls with volumes over switches
run "make update-po"
Add new debuuging API pa_memchunk_dump_to_file()
A few minor cleanups and updates
Add new test source module-sine-source
drop a few warning options, add a few new ones
add a few missing parens
make things compile again
Add new pa_reduce() and pa_gcd() functions
show maximum usable slot size
make module-sine-source actually work
Make sure we don't drop any data on the client side
fix version check
for record streams fill in the latency as the fragsize
read base volume only in proto 15
Fix suspending of all sinks/sources
Extend command name lookup tables to cover complete protocol
add new API function pa_memchunk_sine()
Port sine modules to pa_memchunk_sine()
bump version/soname
Fix version info
add pa_proplist_size() and pa_proplist_isempty()
fix calculation of avail_min
include new proplist functions in export list
remove calc_sine() since we don't need it anymore
Fix a typo I know owe Marc-Andre a beer for.
make pa_asyncq_push() fail under no circumstances.
document that PA_API_VERSION is only for incompatible API changes
fix a potential format string vulnerability
don't rely on PA_SINK_RUNNING vs. PA_SINK_IDLE for optimizations since it might not be fully up to date
add new dont_rewind_render flag to allow quick starts of newly created streams
convert pa_client instantiation to use a pa_client_new_data struct and add hooks for manipulating it
port missing modules to new pa_client_new() API
make PA_CONTEXT_IS_GOOD/PA_STREAM_IS_GOOD a macro so that we can easily check for its availability
fix bad memory access
add new pa_card object as a way to logically combine multiple sinks and sources
maintain a list of sink inputs/source outputs as part of the pa_client object
add functionality to dump list of cards
redirect folks to the ALSA developers not me when their sound drivers are broken
kill autoload stuff as planned
we don't support glib1.2 anymore
make things compile again
make proplist inheritance scheme automatic and implicit
don't show autoload flag anymore since it is obsolete
rework module usage counter stuff to be pull based
move alsa and oss modules into their own subdirectories
add stub makefiles for oss and alsa subdirs
include libcli.la in libprotocol-cli's dependencies
rename card config to card profile
Add SPDIF/HDMI ALSA devices and device descriptions to device search table
fix version info in protocol history
add support for 24bit packed samples
Add support for 24bit samples encoded in the LSB of 32 bit words
make use of PR_SET_TIMERSLACK
remvoe a bit of duplicate code
add card profile prober
add pa_strbuf_isempty
add pa_proplist_to_string_sep()
Split up pa_alsa_init_proplist into two seperate functions for the card and snd_pcm_t specific parts
Don't enumerate invalid profile
actually create pa_card object in module-alsa-card
dump profiles when listing cards
beautify cli output a bit
get rid of pa_module_get_info because it is not used
add api for manipulating volume balances
show balance value in CLI listings
allow setting properties for modules, too
fix bad free()
fix doxygen version references
fix up balance format string a bit
show dB and balance for cached samples
Beef pactl output up a bit
Document explicitly that the internal sink/source states are not considered part of the ABI/API
include sink/source state in pactl output
remove misplaced whitespace
document that I am a retard
add missing eof checks
fix profile names to include input/output specifier
don't divide by zero if no left resp. no right channels are defined
fix destruction when no profiles are defined
dump active profile
add client API for querying card information
show active profile
remove unused variable
always add 'disabled' profile
add priority logic to find best default profile
export pa_channel_map_superset()
add new call pa_alsa_open_by_device_id_profile()
add an API to create arbitrary alsa sinks/sources dynamically without having to load/unload modules
fix copy/paste error
allow cards be referenced by their index
add set-card-profile CLI command
remove bogus pa_core_check_idle() call
when changing profiles do the actual assignment in the generic implementation
remove leftover define
fill in dev_id properly
make implementation of module-alsa-card complete
make pa_card_new_data::active_profile a string
don't restore mute/volume when already set
minor cleanups
add a card profile restore module
enable module-card-restore by default
implement PA_COMMAND_SET_CARD_PROFILE
implement pactl set-card-profile
require autoconf 2.63
don't include full path in driver name.
mark a few more ALSA dB values as 'valid' for valgrind
add new function pa_card_suspend()
add new function pa_strna
fix copy'n'paste error
make gcc shut up a bit more
only reread volume if we actually have a good mixer. Closes #466
fix segfault when in record-only mode
make gcc shut up
rework logic how alsa sinks/sources/cards are named
fix minor memleak in prober
include PA_SINK_INVALID_STATE in all switch/case statements to make gcc shut up
rework module-hal-detect and make it use module-alsa-card instead of module-alsa-sink/-source
When resuming an OSS device ask for the very same fragment settings as we did the first time
add API pa_ncpus()
make rtstutter use pa_ncpus()
use pthread_setaffinity_np() only when it is available
don't overflow when we do digital amplification of 16 bit samples
add a simple abstraction for SIMD operations
drop --ltdl from the libtoolize invocation, since we don't ship ltdl anymore
allow sample spec/channel map to be queried for pa_resampler objects
maintain a pa_core state variable
teach module-rescue-streams and module-always-sink to not do anything if we are shutting down anyway
include list of sinks/source in card dump
in most cases we can use i->core instead of i->sink->core and o->coure instead of o->source->core
move sink input/source output move functions into two parts so that we can start the move, delete the original sink, create a new sink, finish the move; similar for source outputs
add functions to move all inputs of a sink away/similar for source outputs
make module-alsa-card move streams between the old and new sink/source, allowing 'hot' switching between profiles
add support for static mutexes
add generic rate limiting implementation
add pa_log_rate_limit()
use pa_log_ratelimit() at a few places
include a few HAL properties in our card/sink/source properties for ALSA devices
rate limit a warning
add a bitset implementation
implement new API functions pa_channel_map_can_balance(), pa_channel_map_to_name() and pa_channel_map_to_pretty_name()
implement pa_cvolume_scale()
check for availability of RLIMIT_NOFILE and RLIMIT_AS before we make use of it
make a few comments appear in doxygen
store requested resampling method in a seperate field and use it when create a new resampler after a move
remove redundant cast
show pretty channel map name if possible
invert an ill-placed assert
always define PA_MAJOR/PA_MINOR/PA_MICRO to ease feature checking in client applications
import version.h in all header files to make sure that version-based feature testing works
add a few missing doxygen comments
swap argument order of pa_cvolume_get_balance() to be a bit more systematic
allow samples to be played with 'default' (i.e. unspecified) volume.
get rid of module-flat-volumes since we are moving this into the core
fix size calculation
move flat volume logic into the core. while doing so add n_volume_steps field to sinks/sources
add new paramter ignore_dB= to alsa modules
add missing 'const'
when changing volume, store whether it is worth remembering or no
only store volume/device information that has been flagged for saving, and store both relative and absolute volumes
make m-p-e-s use pa_cvolume_set_balance()
instead of making the volume relative our own, let' pa_sink_input_new() do it for us
don't make m-e-s hit an assert when the latency is queried
add missing usage strings
make m-v-r a stub that simply load m-s-r
print the right software volume
fix two typos
store the default sink/source in proper pa_sink*/pa_source* pointers instead of a string
Run make update-po
make things compile again
add new functions pa_dbus_add_matches()/pa_dbus_remove_matches()
make use of new functions pa_dbus_add_matches/pa_dbus_remove_matches
get rid of nonsensical late initialization of namereg/scache and things
add some helpers for dealing with DBusPendingCall based on Mrc-Andre's work in module-bluetooth-discover
temporary commit of lennarts new bt changes
add missing files
properly deal with the case when l/r is silent when adjust balance
fix a bogus assert
implement pa_cvolume_{get|set}_fade
Add a little Gtk test tool to show how balance/fade/value and the channel volumes play together
add new function pa_alsa_get_driver_name()
include ALSA driver in properties for cards/sink
suppress lines made up only of whitespace
dump properties when we create a new sink or source
drop -Wpacked
implement pa_channel_map_can_fade
look for libpulse in multiple different places
allow passing of channel map on command line and hide unused sliders
check for NULL before accessing the name
use uintpr_t when casting between pointers and integers
work around dlsym() return value mistyping as suggested in POSIX
introduce PA_PROP_APPLICATION_PROCESS_MACHINE_ID
add a few new form factors
download everything from gitweb twice to make sure we don't get a 'Generating...' message
drop -pedantic
store the module index shifted by 1 to map PA_INVALID_INDEX to NULL
when determining the minimum volume of all sink inputs make sure to handle the case when there are no sink inputs correctly
try to use glib's g_get_application_name() to set PA_PROP_APPLICATION_NAME
set PA_PROP_WINDOW_X11_DISPLAY from :0.0 and initialize PA_PROP_APPLICATION_PROCESS_MACHINE_ID properly
add new functions pa_bluetooth_cleanup_name() and pa_bluetooth_get_form_factor()
Fix a few sink/source calls when they are called in suspended state.
shortcut pa_sink_process_rewind() when no rewind is happenning and none was requested
reset rewind_requested when we enter suspend mode
update sbc stuff
fix soft_mute handling
handle EAGAIN properly
whitespace cleanup
make rtp.h ANSI C compliant
big module-bluetooth-device.c rework
don't use PA_STREAM_NOT_MONOTONOUS anymore
pull in new SBC/BT files
make update-sbc should also update other BT related sources
make iterating with pa_idxset_next() robust in regards to idxset modifications
implement PA_STREAM_FAIL_ON_SUSPEND logic
add new error code PA_ERR_NOTIMPLEMENTED
make a few functions return void where the retval isn't used/never != 0
make a couple of functions return proper error codes
add a macro definition for each error code
before applying balance/fade check it actually makes sense
when moving a sink between sinks make volume relative
add new API pa_cvolume_compatible_with_channel_map()
add a bit of missing i18n
add a lot of validity checking
add pa_sample_size_of_format()
add new API pa_ascii_valid(), pa_ascii_filter()
fix up parser in pa_proplist_from_string() to handle escapes correctly; make pa_proplist_to_string() escape quotes properly
in addition to per-property env vars PULSE_PROP_xxx look for for a stringified PULSE_PROP env var
beef up proplist test a bit
simplify code a bit by using pa_sample_size_of_format()
rearrange a few things
make gcc shut up
add new calls pa_replace() and pa_unescape()
add a few additional validity checks
clarify things a bit
merge in properties earlier to make identification of streams from hooks easier
version all entries in the database
fix a validity check
properly handle failing stream creation
remove soft volume from pa_sink_input_new_info since it should be handled internally and automatically by the sink input
rate limit underrun messages
make pacmd work in a pipe
bump version and soname
Luiz Augusto von Dentz (10):
Unload module-bluetooth-device if the remote device disconnects.
Fix possible invalid read while attempting to load module-bluetooth-device.
Fix bug walking on module list.
Disable warnings for bluetooth-device-module.
Update module-bluetooth-device to the new ipc.
Send packets with proper size.
Fix send and recv message sizes.
Fix sending wrong codec capability length.
Fix hsp rate and channels.
Prevent changing volume on wrong device.
Marc-Andre Lureau (2):
volume hooks
flat-volume thingy
Marc-André Lureau (29):
build: use pkg-config for X11
build: compile libltdl directory first
build: Don't include builddir, but only srcdir.
build: introduce $SKIP_GIT for make dist (off-line or behind a proxy).
build: add atomic.h and refcnt.h to libpulsecommon
build: Use proper -disable-static instead of removing .a
build: run some tests during make check (and distcheck)
bluetooth: add update-sbc and friends
bluetooth: Update sbc from git upstream.
build: fix missing x11 modules dependencies
core: add pa_sink_update_proplist
core: add pa_source_update_proplist
core: report remaining shared objects when cleanup
libpulse: add proplist_from_string
cli: update-sink-proplist
build: print more informations about preopen
core: add source, si, so proplist_update
cli: add missing update-*-proplist
build: fix few warnings
sink: add a virtual_volume to sink
match: can now change properties also
match: add "key" argument to match different properties
flat-volume: use pa_sink_get_volume(s, TRUE) to work with slaved sink
pulse: introspect sink state
sink: trigger subscribe event on sink state change
cli: fix broken array access with signed state enums
pulse: share private enum values with client side
bluetooth: hsp volume control
bluetooth: cold hsp/a2dp device detection
Micha Pietsch (1):
German translation done.
PabloMartin-Gomez (1):
Last strings translated to French
Petr Kovář (3):
Added Czech translation.
LINGUAS: Added cs.
Updated Czech translation.
Piotr Drąg (7):
Initial Polish translation
Added Polish translation to LINGUAS
Updated Polish translation
Updated LINGUAS
Updated Polish translation
Updated Polish translation
Updated Polish translation
Sean McNamara (1):
--check: Updated manpage slightly and pulseaudio --help slightly.
Sjoerd Simons (1):
Load module gconf earlier
Timo Jyrinki (3):
Add Finnish (fi) translation by Timo Jyrinki.
Add fi (Finnish) to LINGUAS.
Argh, send pulseaudio Finnish translation (instead of paprefs) by Timo Jyrinki.
Tom Bamford (1):
Multicast SDP packets sent with same IP TTL as RTP packets
Wang Zeguo (1):
Updated Chinese(zh_CN) translation.
Xavier Conde (3):
Added catalan translation
Added catalan locale
Updated catalan po
chocolateboy (1):
Fix typo in log message: s/Recevied/Received/
daniel cabrera (1):
Updated Spanich translation
sainrysec (1):
Only creat zh_CN.po
甘露(Gan Lu) (1):
Add zh_CN entry for Chinese Simplified translation.
Lennart
--
Lennart Poettering Red Hat, Inc.
lennart [at] poettering [dot] net ICQ# 11060553
http://0pointer.net/lennart/ GnuPG 0x1A015CC4
More information about the pulseaudio-discuss
mailing list