[pulseaudio-discuss] [ANNOUNCE] PulseAudio 0.9.16-test5

Lennart Poettering lennart at poettering.net
Wed Aug 19 06:33:34 PDT 2009


Heya,

Forgot to mention that I released another snapshot of 0.9.16
yesterday:

http://0pointer.de/public/pulseaudio-0.9.16-test5.tar.gz

As mentioned this brings a revamped flat volume logic where stream
volumes can increase sink volumes but can never lower it. Restored
volumes are always measured relative to the sink volume. The sink
volume hence operates as upper limit of everything that is played
which I think makes a lot of sense. This turned out to be a much
bigger change than anticipated but otoh the flat vol handling code
actually got simpler.

The two now are:

1.) stream volume changes can 'push' the sink volume, i.e. increase it
    to make sure the sink volume always stays >= the max of all stream
    volumes. stream volume changes will however never decrease the sink
    volume. a stream volume change of a stream A will never affect the
    volume of a stream B.

2) sink volume changes scale all stream volumes equally. if you halve
   the sink's volume this will halve the stream volume's too.

I'd like to ask everyone to test the new flat vol logic. It's quite a
big change this late in the game for 0.9.16 unfortunately, so it would
really help if this area gets some focussed testing love.

There's now only one thing left on my todo list before the final 0.9.16. 

Diego Elio Pettenò (2):
      Split OSS support in output and wrapper.
      Update the end-of-configuration summary for OSS output/wrapper split.

Juho Hämäläinen (1):
      database: simple hashmap based database implementation

Lennart Poettering (92):
      run make update-po
      core: save volume/mute changes coming from the hardware automatically
      ladspa/remap: make sure we process all requested rewinds unconditionally
      build-sys: drop libcap checks, since we don't use caps anymore
      mix-test: fix test for s24-32 samples
      Revert "build-sys: drop libcap checks, since we don't use caps anymore"
      hal: add stub module that loads module-udev-detect instead of module-hal-detect
      udev: drop definition of LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE
      hal: replace subdevs= parameter by subdevices= parameter
      volume-restore: forward module load return value of stream-restore back to caller
      alsa: adjust priority bonus of mappings that match the configured default channel map
      alsa: enable ext. amplifier by default
      daemon: install D-Bus system policy file for PA system instances
      conf: add pa_config_parse_not_bool() for parsing inverse boolean configuration options
      conf: invert all negative boolean configuration option
      daemon: unconditionally clean up priviliges
      core-util: move personality resetting into core-util
      daemon: reset scheduling priority on startup, too
      context: document why we only do minimal cleanups before the autospawn exec()
      memblock: rate limit 'Pool full' message
      pacmd: port pacmd from select() to poll() so that we notice writer side hangups
      start-child: clean up child environment a bit better
      core: add assert macros for verifying calling context
      core: add functions to query max_rewind/max_request values from streams
      pacmd: handle multi word commands in argv[] properly
      shm: bump shm size limit to 1GB
      memblockq: add pa_memblockq_get_maxrewind() API
      asyncmsgq: add pa_asyncmsgq_flush() call
      thread-mq: never drop queued messages for the main loop
      resampler: round up when estimating input/output sizes
      daemon: reset gids too, not just uids
      protocol-native: log explicitly each time a client triggers a volume change
      volume: guarantee dB/linear conversion is reversible
      module-stream-restore: don't fiddle with sinks/sources/streams that are not fully set up yet
      core: introduce pa_{sink_input|source_output}_fail_move()
      native: handle moving() callback with NULL destination properly
      core: split of FAIL_ON_SUSPEND into KILL_ON_SUSPEND and NO_CREATE_ON_SUSPEND
      rescure-stream: handle failed moves as well as dying sinks/sources
      log: place more rate limit invocations
      core: move rtpoll to thread_info sub structure
      core: make fixed latency dynamically changeable
      core: call pa_sink_get_latency_within_thread() instead of going directly via process_msg()
      core: don't update latency range if not changed
      core: document difference between IO and main thread view on requested latency
      native-protocol: downgrade volume change log messages
      hook-list: make use of PA_LLIST_FOREACH
      remap: unify argument order with other modules
      ladspa: move LADSPA_Data size check to compile time
      module-remap: allow moving of sink, forward fixed latency
      module-ladspa: allow moving of sink, forward fixed latency
      ladspa: name sink after human readable plugin name, not the id string
      combine: drop adjust_timestamp variable because it is unused
      combine: big rework
      combine: warn when the latency of a stream gets too high
      core: introduce pa_{sink|source}_update_flags()
      ladspa/remap: sync latency flags from master sink when moving between sinks
      asyncmsgq: introduce pa_asyncmsgq_dispatching()
      thread-mq: do final q flush only when we aren't dispatching anyway
      bluetooth: drop PA_BT_AUDIO_STATE_LAST since it is unused and we normally call that _MAX anyway
      bluetooth: recognize only those BT devices that implement both the Audio and either AudioSink or Headset interfaces
      bluetooth: ask first for Headset and AudioSink properties, followed by Audio
      bluetooth: move installation of mq's earlier to avoid context asserts to be triggered
      modules: add various checks to avoid selecting objects that are not linked or in another unclear state
      core: add to FIXMEs
      aupdate: implicitly call _write_swap() if it wasn't called explicitly
      volume: add pa_cvolume_merge() call
      reserver: update from upstream git
      channelmap: adjust RFC3551 channel maps to follow spec more closely
      channelmap: document where the WAVEX channelmap is documented
      channelmap: minor doxygen fix
      libpulse: some minor optimizations when checking equality
      volume: document when arguments of certain functions may overlap
      bluetooth: make NameOwnerChanged filter matches more focussed
      bluetooth: fix match syntax
      macro: add PA_ROUND_UP/PA_ROUND_DOWN macros
      macro: simplify page/word alignment macros a bit
      volume: introduce pa_cvolume_min() and pa_cvolume_min_mask()
      volume: simplify volume multiplifactions, do them in integer only
      volume: round properly when showing human readable volume percentages
      dbus: never return DBUS_HANDLER_RESULT_HANDLED in filter callbacks, since other callbacks might stell want to have the messages
      voltest: extend test to verify correctness of _multiply() and _divide()
      macro: extend comments a bit
      source: rework volume handling
      udev: allow passing of ignore_dB= parameter to alsa modules
      volume: use PA_VOLUME_MAX instead of (pa_volume_t) -1
      volume: introduce pa_cvolume_{inc|dec}()
      match: document how broken the module-match logic is
      sink: volume handling rework, new flat volume logic
      mmkbd: replace manual code by pa_cvolume_{inc|dec}()
      lirc: replace manual code by pa_cvolume_{inc|dec}()
      i18n: add ko to LINGUAS
      i18n: run make update-po

Maarten Bosmans (1):
      combine: determine sample parameters of combined sink from underlying sinks

Marc-André Lureau (3):
      bluetooth: don't call pa_sink_render with 0 bytes request
      bluetooth: fix typo with service_{read,write}_type
      pulse: even in case of record stream, let's initialize req_bytes to 0

Maxim Levitsky (1):
      Correctly deal with events in the past in calc_next_timeout

eukim (1):
      Sending translation for po/ko.po

igor (2):
      Sending translation for Brazilian Portuguese
      Sending translation for Brazilian Portuguese

logan (1):
      Sending translation for Spanish

pmkovar (1):
      Sending translation for Czech

raven (1):
      Sending translation for Polish

ruigo (3):
      Sending translation for Portuguese
      Sending translation for Portuguese
      Sending translation for Portuguese

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/           GnuPG 0x1A015CC4



More information about the pulseaudio-discuss mailing list