[pulseaudio-discuss] [ANNOUNCE] A testing release of 0.9.15

Lennart Poettering lennart at poettering.net
Wed Feb 4 13:05:42 PST 2009


I just rolled a tarball for a testing release of what is supposed to
become the official 0.9.15 release:


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

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

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
      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
      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 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
      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 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