Difference between revisions of "Detailed changes v1.0.26 v1.0.27"
From AlsaProject
m (1 revision) |
Latest revision as of 10:46, 12 April 2013
[edit] Detailed changelog between 1.0.25 and 1.0.27 releases
[edit] Changelog between 1.0.26 and 1.0.27 releases
[edit] alsa-firmware
[edit] Core
- - Release v1.0.27
- - configure.in: Remove emi_26_62 reference
- - Remove emi_26_62 firmwares
- These are incldued in kernel-firmware for long time, and they are anyway
- wrongly generated / installed (the firmware loader driver reads the
- binary ihex format files *.fw)
- Reported-by: Karl Grill <kgrill@chello.at>
- - Add firmware for CA0132 DSP
[edit] Emagic EMI 2|6 Audio Interface Firmware
- - Remove emi_26_62 firmwares
- These are incldued in kernel-firmware for long time, and they are anyway
- wrongly generated / installed (the firmware loader driver reads the
- binary ihex format files *.fw)
- Reported-by: Karl Grill <kgrill@chello.at>
[edit] Sound Blaster HDA CA0132 Firmware
- - Update ca0132 firmware files
- ctefx.bin:
- Update the CA0132 DSP image firmware file. This version:
- - Includes key-click reduction feature.
- - Fixes noisy output when GraphicEQ and SpeakerEQ are both turned on.
- ctspeq.bin:
- Add firmware file containing coefficient preset for SpeakerEQ
- DSP feature. This preset has been tuned for Chromebook Pixel hardware.
- Other CA0132 systems will run without loading this binary.
- - Add firmware for CA0132 DSP
[edit] Detailed changelog between 1.0.26 and 1.0.27 releases
[edit] Changelog between 1.0.26 and 1.0.27 releases
[edit] alsa-lib
[edit] Core
- - Release v1.0.27
- - all places: doxygen cleanups
- I see no errors with these changes using doxygen 1.8.1.1 .
- - Add sys/types.h to include list
- This is needed by snd_pcm_format_silence* functions which
- return u_int*_t. It was discovered while trying to compile ALSA
- programs with eglibc 2.17.
- Credits to Richard Shaw, Gary Buhrmaster, Matthieu Baerts and
- Adam Conrad for this fix.
- BugLink: https://bugs.launchpad.net/bugs/1109298
- BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=885306
- - Add snd_lib_error_set_local() to install a thread-local error handler.
- This is required so we can make other functions reentrant (such as
- snd_device_name_hint()).
- The default error handling function snd_lib_error_default() now checks
- if a local handler exists, and if so, calls it. Otherwise, the previous
- behavior is unchanged.
- - configure: do not detect incorrect cross-compiler
- On Ubuntu 11.04, configuring with --build=x86_64-unknown-linux-gnu
- --host=x86_64-linux-gnu finds a wrong cross-compiler:
- checking for cross-compiler... x86_64-x86_64-pc-linux-gnu-gcc
- This happens because of a dash vs underscore inconsistency in configure.in:
- host=x86_64-pc-linux-gnu
- host_cpu=x86_64
- host_os=linux-gnu
- which ${host_cpu}-${host_os}-gcc >/dev/null 2>&1 && echo ${host_cpu}-${host-os}-gcc
- This bug has been introduced in the initial --with-host support from
- 2002, commit eb267ade29c9a49c07b1c33dc9bf7a6790217400
- This configure command is about "cross-compiling for i586", where the
- system compiler is used, which just -m32 additional options.
- The --build value comes from config.guess.
- - Fix endian check in local.h
- SNDRV_LITTLE_ENDIAN and SNDRV_BIG_ENDIAN checks have been removed from
- sound/asound.h during UAPI header move, and this resulted in a wrong
- detected endian.
- Move together with the similar check for SND_*_ENDIAN at the earlier
- place in local.h.
- - configure: Quite AM_CONDITIONAL() arguments
- Otherwise it won't be processed properly with the recent automake.
- - Add workaround for conflicting snd_seq_event_t definitions
- - Merge kernel uapi/sound/asound.h and asequencer.h
- Instead of keeping modified asound.h and asequencer.h, copy the files
- in the kernel include/uapi/sound as is, and give some renames for
- avoiding conflicts with alsa-lib's definitions.
- Some structs, unions and typedefs in asound.h and asequencer.h are
- once renamed in local.h before inclusion, then renamed back again.
- A bonus by this action is that some local codes don't have to refer to
- sndrv_xxx any longer. However, some codes like src/seq/seq.c need
- explicit cast because of unavoidable conflicts of struct types.
- Another significant change is that now snd_pcm_sw_params.period_event
- field is removed. Instead, try to access the last reserved field
- internally.
[edit] Control API
- - control: enhance doc for snd_ctl_ascii_value_parse() function
- - control, pcm: implement snd_ctl_abort() and snd_pcm_abort() functions
- Upon an interrupt, it is necessary to abort the wait loops with the EINTR
- error code. Introduce snd_*_abort() functions to handle this case.
- - Add workaround for conflicting IEC958 controls for HD-audio
- When both an SPDIF and an HDMI output are present on HD-audio, both
- try to access IEC958 controls with index=0 although one of them must
- be wrong. For avoiding this conflict, the recent kernel code (3.9 and
- 3.8 stable) moves the IEC958 controls of an SPDIF with index=16 once
- when the conflict happens.
- In this patch, the corresponding support is added in alsa-lib side.
- The new "skip_rest" boolean flag is added to the hooked element
- definition which indicates that the rest of element array will be
- ignored once when this element is present and evaluated. With this
- new flag, the HD-audio config takes index=16 primarily, then take
- index=0 as fallback.
- - control: Simplify using snd_config_get_bool()
- snd_config_get_bool() was improved to parse also ASCII strings now,
- so we don't have to open-code the boolean parser in
- src/control/setup.c any longer.
- - snd_device_name_hint(): do not use global snd_config.
- This commit and its parent make the function reentrant.
- - snd_device_name_hint(): do not change the global error handler.
- This is the first step towards making this function reentrant.
- - Merge kernel uapi/sound/asound.h and asequencer.h
- Instead of keeping modified asound.h and asequencer.h, copy the files
- in the kernel include/uapi/sound as is, and give some renames for
- avoiding conflicts with alsa-lib's definitions.
- Some structs, unions and typedefs in asound.h and asequencer.h are
- once renamed in local.h before inclusion, then renamed back again.
- A bonus by this action is that some local codes don't have to refer to
- sndrv_xxx any longer. However, some codes like src/seq/seq.c need
- explicit cast because of unavoidable conflicts of struct types.
- Another significant change is that now snd_pcm_sw_params.period_event
- field is removed. Instead, try to access the last reserved field
- internally.
- - Implement the channel mapping API
- Added new channel-mapping API functions.
- Not all plugins are covered, especially the route, multi and external
- plugins don't work yet.
[edit] Mixer API
- - all places: doxygen cleanups
- I see no errors with these changes using doxygen 1.8.1.1 .
- - snd_mixer_poll_descriptors_revents should loop over pollfd
- - mixer: Don't build simple_abst when no libdl is available
- Check BUILD_MODULES conditional not to compile simple_abst.c.
- Also return -ENXIO to caller statically in that case.
- - Reduce compilation warnings
[edit] PCM API
- - pcm: direct plugins: do more safe IPC semaphore handling
- As reported dead-lock, do local lock counting and invoke abort() when
- the lock counts do not match at close() time.
- Reported-by: <mateen abdulmateen.shaikh@gmail.com>
- - all places: doxygen cleanups
- I see no errors with these changes using doxygen 1.8.1.1 .
- - control, pcm: implement snd_ctl_abort() and snd_pcm_abort() functions
- Upon an interrupt, it is necessary to abort the wait loops with the EINTR
- error code. Introduce snd_*_abort() functions to handle this case.
- - pcm: fix typo, should be SND_PCM_STATE_PREPARED.
- - pcm: fix and optimize snd_pcm_areas_copy function
- The memcpy() function in snd_pcm_area_copy() should not be called
- with the overlapped areas. Alex discovered - using own LD_PRELOAD checked
- for memcpy() input - that the memcpy() is called with src == dst.
- For some special plugin combos (rate+softvol+hw for example), the same
- areas with same offsets can be asked to be copied (softvol). The collapse
- check uses own areas created on heap, causing dst_area == src_area &&
- dst_offset == src_offset check bypassed.
- Two fixes are in this patch:
- - use assert to check the memcpy() input for future triggers
- - bypass the snd_pcm_area_copy() call for collapsed identical areas
- Reported-by: Alexander Kruppa <akruppa@gmail.com>
- - snd_pcm_direct_parse_open_conf(): use thread-safe getgrnam_r()
- Fixes a thread safety issue with snd_pcm_open().
- - PCM: Fix conflict of _snd_pcm_hw_params definitions
- Fix the call of _snd_pcm_hw_params() to _snd_pcm_hw_params_internal().
- The build passed wrongly because of _snd_pcm_hw_params define.
- Having the same function name as the struct name is is simply
- confusing...
- Also, to be sure, _snd_pcm_hw_params is undef'ed in pcm_local.h, too.
- - PCM: shut up a compile "unused parameter" compile warning in pcm_multi.c
- - PCM: Add more chmap definitions for UAC2
- The new PCM chmap positions have been added in (to be) 3.8-rc1 kernel,
- and now updated alsa-lib, too.
- - Merge kernel uapi/sound/asound.h and asequencer.h
- Instead of keeping modified asound.h and asequencer.h, copy the files
- in the kernel include/uapi/sound as is, and give some renames for
- avoiding conflicts with alsa-lib's definitions.
- Some structs, unions and typedefs in asound.h and asequencer.h are
- once renamed in local.h before inclusion, then renamed back again.
- A bonus by this action is that some local codes don't have to refer to
- sndrv_xxx any longer. However, some codes like src/seq/seq.c need
- explicit cast because of unavoidable conflicts of struct types.
- Another significant change is that now snd_pcm_sw_params.period_event
- field is removed. Instead, try to access the last reserved field
- internally.
- - PCM: Avoid busy loop in snd_pcm_write_areas() with rate plugin
- snd_pcm_write_areas() tries to wait until avail >= avail_min condition
- is satisfied. This doesn't work always well when a rate plugin is in
- the play.
- When a partial data with a smaller size than a period is written, the
- rate plugin doesn't transfer the data immediately to the slave PCM,
- but kept in an internal buffer and it changes only the hwptr of the
- plugin. Thus, the condition "avail < avail_min" is triggered for a
- wait check although the underlying slave PCM has enough room. This
- results in a call of snd_pcm_wait() which returns immediately after
- poll() call, and the snd_pcm_write_areas() loop continues. As a
- consequence, it falls into a CPU hog.
- This patch fixes that busy loop by introducing a new fast_ops to check
- the availability for wait of avail_min. Then a plugin can ask the
- slave PCM whether the wait is required (or possible).
- A few plugins like multi plugin need a special handling. Otherwise a
- generic plugin function can be used.
- Reported-by: Trent Piepho <tpiepho@gmail.com>
- - Reduce compilation warnings
- - PCM: Fix memory leak for pcm empty and asym plugins
- The init-only plugins do not have own pcm handle, so free the references
- to open function immediately after open.
- - pcm: support for audio timestamps
- add new snd_pcm_status_get_audio_htstamp() routine to
- query the audio timestamps provided by the kernel.
- This change provides applications with better ways
- to track elapsed time. Before this patch, applications
- would subtract queued samples (delay) from written samples,
- resulting in a 1-2 sample error.
- Also add snd_pcm_hw_params_supports_audio_wallclock_ts()
- to query what the hardware supports.
- TODO: check protocol compatibility?
- - PCM: Fix the invalid snd_pcm_close() calls in rate plugin
- It happens in the error path, should call snd_pcm_free() instead.
- - PCM: Fix infinite loop in htimestamp of dmix, dsnoop and dshare plugins
- - PCM: Fill SND_CHMAP_NA to silent channels in route plugin
- Instead of SND_CHMAP_UNKNOWN, fill SND_CHMAP_NA to the silent channels.
- - PCM: A few doxygen fixes for chmap stuff
- - PCM: Fix the conversion from string to chmap position
- Use strncasecmp() to allow lower cases, and also evaluate the inverted
- phase suffix, too.
- - PCM: Define MONO and other channel map positions
- Follow the new definitions in the kernel side. MONO and others have
- been added, and the order of position table was changed again.
- - PCM: Use compounds for overriding / enhancing chmaps
- Instead of a single channel map, multiple channel maps can be provided
- in a form of compound (array) to hw and null plugins. In null
- get_chmap, the channel map corresponding to the current channels is
- copied from the given channel maps.
- - PCM: Add the missing query_chmaps for route plugin
- Also fix the channel count in get_chmap for route plugin.
- - PCM: Add chmap options to hw and null plugins
- Add a config definition "chmap" to override (or enhance) the channel
- maps. So far, only a single channel map can be provided, and the
- channel count consistency isn't strictly tested at all.
- - PCM: Add query_chmaps support to multi plugin
- Also fix some bugs in get_chmap().
- - PCM: Add snd_pcm_chmap_long_name()
- Just return a more verbose name than snd_pcm_chmap_name(), but
- including white spaces.
- - PCM: Add SND_CHMAP_API_VERSION definition
- Just to make it easier for apps to support chmap conditionally via
- simple ifdefs.
- - PCM: Add string conversion helper functions for chmap
- Added a few helper functions between chmap and string.
- snd_pcm_chmap_type_name() -- a string of the given chmap type
- snd_pcm_chmap_name() -- a string of the given channel position
- snd_pcm_chmap_print() -- print channel map on the given buffer
- snd_pcm_chmap_from_string() -- get a channel position from string
- snd_pcm_parse_string() -- parse the whole channel map from string
- - PCM: Fix prefix for snd_pcm_chmap_type enum members
- Add _TYPE prefix to distinguish from the channel position.
- Also add SND_CHMAP_TYPE_LAST entry pointing the last one like other
- enums.
- - PCM: Implement snd_pcm_query_chmaps_from_hw()
- This is a function similar like snd_pcm_query_chmaps() but performs
- the query without a PCM handle. The card, device and substream
- numbers are passed as well as stream direction.
- - PCM: Introduce snd_pcm_chmap_t and snd_pcm_chmap_query_t
- Instead of passing ambiguous integer array, define snd_pcm_chmap_t and
- snd_pcm_chmap_query_t so that user can understand more easily which
- element is for what.
- - Add SND_CHMAP_NA and bit flag definitions
- - Follow channel position definitions to mixer channel in mixer.h
- mixer.h already contains some channel position definitions.
- To be more consistent over all systems, better to follow the same
- order for the new channel map, too. But since UNKNOWN channel must be
- zero but the definition in mixer.h contains -1 as UNKNOWN, simply
- shift the value with 1.
- If the conversion is required between SND_CHMAP and SND_MIXER_SCHN,
- just increment/decrement 1. Eventually I'll provide helper functions
- for that...
- - Define channel map position enum in pcm.h
- The original definition is in sound/asound.h, but we need to export to
- alsa-lib users, too.
- - Cache the chmap operation errors
- ... not to retry the same error again.
- - Implement get_chmap/set_chmap for PCM extplug/ioplug plugins
- Added the new ops for both external plugins, so the protocol numbers
- are incremented.
- - Implement get_chmap/set_chmap for PCM plug, route and multi plugins
- Still incomplete implementations. The query and set ops are missing
- for route and multi plugins.
- - Implement the channel mapping API
- Added new channel-mapping API functions.
- Not all plugins are covered, especially the route, multi and external
- plugins don't work yet.
[edit] Sequencer API
- - Merge kernel uapi/sound/asound.h and asequencer.h
- Instead of keeping modified asound.h and asequencer.h, copy the files
- in the kernel include/uapi/sound as is, and give some renames for
- avoiding conflicts with alsa-lib's definitions.
- Some structs, unions and typedefs in asound.h and asequencer.h are
- once renamed in local.h before inclusion, then renamed back again.
- A bonus by this action is that some local codes don't have to refer to
- sndrv_xxx any longer. However, some codes like src/seq/seq.c need
- explicit cast because of unavoidable conflicts of struct types.
- Another significant change is that now snd_pcm_sw_params.period_event
- field is removed. Instead, try to access the last reserved field
- internally.
- - Reduce compilation warnings
[edit] Timer API
- - Merge kernel uapi/sound/asound.h and asequencer.h
- Instead of keeping modified asound.h and asequencer.h, copy the files
- in the kernel include/uapi/sound as is, and give some renames for
- avoiding conflicts with alsa-lib's definitions.
- Some structs, unions and typedefs in asound.h and asequencer.h are
- once renamed in local.h before inclusion, then renamed back again.
- A bonus by this action is that some local codes don't have to refer to
- sndrv_xxx any longer. However, some codes like src/seq/seq.c need
- explicit cast because of unavoidable conflicts of struct types.
- Another significant change is that now snd_pcm_sw_params.period_event
- field is removed. Instead, try to access the last reserved field
- internally.
[edit] Use Case Manager API
- - ucm: Set uc_mgr->ctl to NULL after closing it.
- Fixes a double-free bug.
[edit] ALSA Lisp
- - Reduce compilation warnings
[edit] Configuration
- - USB-audio: Add "HP Digital Stereo Headset" to SPDIF blacklist
- Yet another headset without digital I/O.
- - Add workaround for conflicting IEC958 controls for HD-audio
- When both an SPDIF and an HDMI output are present on HD-audio, both
- try to access IEC958 controls with index=0 although one of them must
- be wrong. For avoiding this conflict, the recent kernel code (3.9 and
- 3.8 stable) moves the IEC958 controls of an SPDIF with index=16 once
- when the conflict happens.
- In this patch, the corresponding support is added in alsa-lib side.
- The new "skip_rest" boolean flag is added to the hooked element
- definition which indicates that the rest of element array will be
- ignored once when this element is present and evaluated. With this
- new flag, the HD-audio config takes index=16 primarily, then take
- index=0 as fallback.
- - conf: Fix a memory access violation resulting from improper error propogation
- Fixes an issue where a variable is used undeclared, which can cause seg
- faults on some systems if the configuration file is not formatted
- properly.
- - conf: Add chmap definitions to TRIDENT and SI7018 configurations
- Manually add the channel map definitions as the channel front/rear is
- determined dynamically.
- - PCM: Use compounds for overriding / enhancing chmaps
- Instead of a single channel map, multiple channel maps can be provided
- in a form of compound (array) to hw and null plugins. In null
- get_chmap, the channel map corresponding to the current channels is
- copied from the given channel maps.
- - Add chmap override definitions for Emu10k1, Audigy and Audigy2 cards
- These cards won't provide the channel maps from the driver itself
- because of the dynamic routing. For simplicity, define chmaps in the
- configurations, so that chmap querying of individual stereo streams
- and combined multi streams works properly.
[edit] Documentation
- - all places: doxygen cleanups
- I see no errors with these changes using doxygen 1.8.1.1 .
[edit] Dynamic Loader helpers
- - Optimize NULL check in snd_dlobj_cache_put()
- - Clean up dlobj cache only when no user is present
- Cleaning up the dlobj cache seems crashing some cases when the library
- is used from another plugin like openal-soft. A simple workaround is
- to do the cleanup only when really no user is left, i.e. after all
- close calls.
- Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=814250
[edit] Error handler
- - Add snd_lib_error_set_local() to install a thread-local error handler.
- This is required so we can make other functions reentrant (such as
- snd_device_name_hint()).
- The default error handling function snd_lib_error_default() now checks
- if a local handler exists, and if so, calls it. Otherwise, the previous
- behavior is unchanged.
[edit] External Control Plugin SDK
- - all places: doxygen cleanups
- I see no errors with these changes using doxygen 1.8.1.1 .
[edit] External PCM Filter Plugin SDK
- - PCM: Introduce snd_pcm_chmap_t and snd_pcm_chmap_query_t
- Instead of passing ambiguous integer array, define snd_pcm_chmap_t and
- snd_pcm_chmap_query_t so that user can understand more easily which
- element is for what.
- - Implement get_chmap/set_chmap for PCM extplug/ioplug plugins
- Added the new ops for both external plugins, so the protocol numbers
- are incremented.
[edit] External PCM I/O Plugin SDK
- - PCM: Introduce snd_pcm_chmap_t and snd_pcm_chmap_query_t
- Instead of passing ambiguous integer array, define snd_pcm_chmap_t and
- snd_pcm_chmap_query_t so that user can understand more easily which
- element is for what.
- - Implement get_chmap/set_chmap for PCM extplug/ioplug plugins
- Added the new ops for both external plugins, so the protocol numbers
- are incremented.
[edit] Kernel Headers
- - PCM: Add more chmap definitions for UAC2
- The new PCM chmap positions have been added in (to be) 3.8-rc1 kernel,
- and now updated alsa-lib, too.
- - Merge kernel uapi/sound/asound.h and asequencer.h
- Instead of keeping modified asound.h and asequencer.h, copy the files
- in the kernel include/uapi/sound as is, and give some renames for
- avoiding conflicts with alsa-lib's definitions.
- Some structs, unions and typedefs in asound.h and asequencer.h are
- once renamed in local.h before inclusion, then renamed back again.
- A bonus by this action is that some local codes don't have to refer to
- sndrv_xxx any longer. However, some codes like src/seq/seq.c need
- explicit cast because of unavoidable conflicts of struct types.
- Another significant change is that now snd_pcm_sw_params.period_event
- field is removed. Instead, try to access the last reserved field
- internally.
- - pcm: fix 64-bit SNDRV_PCM_IOCTL_STATUS ABI breakage
- Commit cf40ea169aad (pcm: support for audio timestamps) added the new
- audio_tstamp field to struct sndrv_pcm_status. However, struct timespec
- requires 64-bit alignment, so the 64-bit compiler would insert
- 32 bits of padding before this field, which broke SNDRV_PCM_IOCTL_STATUS
- with error messages like this:
- kernel: unknown ioctl = 0x80984120
- To solve this, insert the padding explicitly so that it can be taken
- into account when calculating the ABI structure size.
- - pcm: support for audio timestamps
- add new snd_pcm_status_get_audio_htstamp() routine to
- query the audio timestamps provided by the kernel.
- This change provides applications with better ways
- to track elapsed time. Before this patch, applications
- would subtract queued samples (delay) from written samples,
- resulting in a 1-2 sample error.
- Also add snd_pcm_hw_params_supports_audio_wallclock_ts()
- to query what the hardware supports.
- TODO: check protocol compatibility?
- - PCM: Define MONO and other channel map positions
- Follow the new definitions in the kernel side. MONO and others have
- been added, and the order of position table was changed again.
- - Add SND_CHMAP_NA and bit flag definitions
- - Follow channel position definitions to mixer channel in mixer.h
- mixer.h already contains some channel position definitions.
- To be more consistent over all systems, better to follow the same
- order for the new channel map, too. But since UNKNOWN channel must be
- zero but the definition in mixer.h contains -1 as UNKNOWN, simply
- shift the value with 1.
- If the conversion is required between SND_CHMAP and SND_MIXER_SCHN,
- just increment/decrement 1. Eventually I'll provide helper functions
- for that...
- - Implement the channel mapping API
- Added new channel-mapping API functions.
- Not all plugins are covered, especially the route, multi and external
- plugins don't work yet.
[edit] Test/Example code
- - pcm: support for audio timestamps
- add new snd_pcm_status_get_audio_htstamp() routine to
- query the audio timestamps provided by the kernel.
- This change provides applications with better ways
- to track elapsed time. Before this patch, applications
- would subtract queued samples (delay) from written samples,
- resulting in a 1-2 sample error.
- Also add snd_pcm_hw_params_supports_audio_wallclock_ts()
- to query what the hardware supports.
- TODO: check protocol compatibility?
- - test: add audio_time
- Simple test to create playback and capture streams, and
- check elapsed time vs. sample counts reported by driver.
- This should be helpful for driver developers and anyone
- interested in system/audio time drift.
- tested only on HDAudio
- [added Makefile.am change by tiwai]
- TODO:
- - make period configurable
- - better output messages
- - support for wall clock when it's in the mainline
- - test/chmap: Fix wrong malloc size
- - PCM: Add string conversion helper functions for chmap
- Added a few helper functions between chmap and string.
- snd_pcm_chmap_type_name() -- a string of the given chmap type
- snd_pcm_chmap_name() -- a string of the given channel position
- snd_pcm_chmap_print() -- print channel map on the given buffer
- snd_pcm_chmap_from_string() -- get a channel position from string
- snd_pcm_parse_string() -- parse the whole channel map from string
- - Fix duplicated channel entry in test/chmap.c
- - Add SND_CHMAP_NA and bit flag definitions
- - Follow channel position definitions to mixer channel in mixer.h
- mixer.h already contains some channel position definitions.
- To be more consistent over all systems, better to follow the same
- order for the new channel map, too. But since UNKNOWN channel must be
- zero but the definition in mixer.h contains -1 as UNKNOWN, simply
- shift the value with 1.
- If the conversion is required between SND_CHMAP and SND_MIXER_SCHN,
- just increment/decrement 1. Eventually I'll provide helper functions
- for that...
- - Add test/chmap program
[edit] alsa-utils
[edit] Core
- - Release v1.0.27
- - alsactl: add --with-alsactl-daemonswitch=FILE to the global configure.in
- It may be useful to have the file location configurable.
- - alsactl: move systemd config to the daemon mode
- - configure: Fix obsolete AM_CONFIG_HEADER macro
- Automake-1.13 removed long obsolete AM_CONFIG_HEADER completely (
- http://lists.gnu.org/archive/html/automake/2012-12/msg00038.html )
- and errors out upon seeing it.
- Attached patch replaces it with proper AC_CONFIG_HEADERS.
[edit] ALSA Control (alsactl)
- - alsactl: add --with-alsactl-daemonswitch=FILE to the global configure.in
- It may be useful to have the file location configurable.
- - alsactl: revert back old systemd static units with the /etc/alsa/state-daemon.conf switch
- - alsactl: add --nice and --sched-idle options
- The state management can run at low priority, add --nice and --sched-idle
- options to set the scheduler.
- - alsactl: daemon mode - remove disconnected cards
- - alsactl: move systemd config to the daemon mode
- - alsactl: add event filter and cache for the daemon mode
- - alsactl: Improved command line argument handling...
- Improve command line argument handling for future extensions.
- - alsactl: add the daemon mode
- For the plug-and-play hardware, like USB devices, it may be helpful
- to manage the sound state periodically, before the devices are removed.
- This change implements new commands 'daemon' and 'rdaemon' to save
- the sound state in defined intervals when the sound controls are changed.
- The udev rules can notify the daemon using the 'kill' or 'nrestore'
- commands to rescan available cards in the system.
- - alsactl: small code reorder to avoid memory leaks
- - alsactl: safe state store and memory allocation cleanups
- - store new configuration to file + ".new" extension, rename later
- - free the configuration tree on exit from load_state()/save_state()
- - call snd_config_update_free_global() at the end of command blocks
[edit] Speaker Test
- - speaker-test: change the interrupt handling logic to follow aplay/arecord
- - speaker-test: try to call snd_pcm_close() when a signal is received
- - speaker-test: increase the maximum supported rate to 384000
- There are some devices around supporting this sample rate so let's make
- speaker-test capable to deal with them.
- - speaker-test: Update man page for chmap option
- - speaker-test: Add support for channel mapping API
- The surround channel map follows the given channel map from the
- driver if available.
- Also, the channels can be specified manually via -m option.
- Pass the channel map like "FL,FR,FC,LFE".
[edit] alsaloop
- - alsaloop: Fix missing #endif
- Sorry, forgotten.
- - alsaloop: Make alsaloop working without libsamplerate
- When alsaloop is built with libsamplerate, it quits immediately with
- No libsamplerate suppor
- message. It's because the check of -A option and it's set as default
- non-zero value.
[edit] alsamixer
- - alsamixer: Use isatty() to check the terminal (interactive) availability
- - alsamixer: fix handling of removed controls
- When we get a notification that an element has been removed, we have to
- recreate our internal control representation to avoid accessing freed
- memory. (And the checking for SND_CTL_EVENT_MASK_REMOVE should actually
- be done correctly while we're at it.)
[edit] amixer
- - amixer: Use the alsa-lib functions for id print and parse and value parse
- - amixer: Fix dB value outputs in amixer contents
- Add missing cast to signed int for DB_MINMAX* types.
- - amixer: Fix parsing container TLV entries
- Fix the wrong calculation of the size of a container TLV entry, which
- resulted in "TLV size error" messages.
- - amixer: fix rounding of relative changes
- When doing control changes by a relative amount, amixer used the wrong
- rounding direction, which would make it possible to stay at the same raw
- value if the step was not big enough to reach the next value.
- Reported-by: Honza Javorek <jan.javorek@gmail.com>
[edit] aplay/arecord
- - aplay/arecord: change the interrupt handling using snd_pcm_abort()
- It is required (exclude the fatal SIGABRT) to call snd_pcm_close() and
- the end of work (outside of the interrupt handler). Use new snd_pcm_abort()
- function to inform alsa-lib to not ignore EINTR and move the in_aborting
- variable to the global scope to be checked in the i/o loops.
- - aplay/arecord: added isatty() check (interactive mode)
- Turn off the interactive mode when stdin is not a tty.
- - aplay: Add the support for big-endian WAV format (RIFX)
- - aplay: Show usage if no parameter is passed
- When aplay/arecord are called without any argument the application hangs forever.
- Instead of hanging, print the usage and exit.
- - aplay: fix typo & silence warning..
- - aplay: More support for channel map option
- Now aplay tries to follow the given channel map by rearranging the
- channels even when the channel map override isn't allowed but if the
- device is still capable to return a channel map.
- Also update the man page appropriately.
- - aplay: Add support for channel mapping
- With -m option, user can specify the order of channel map.
- As of this commit, it just tries to override the channel map, thus it
- works only on devices that support the channel map override like HDMI.
- Adjusting the channel order in aplay itself will be added later.
[edit] alsa-tools
[edit] Core
- - Release v1.0.27
- - ac3dec: Remove the ac3dec tool
- There may be some licencing issues for the name and decoder (it is not
- build in the Fedora distro anyway).
- Sources will stay in repos, but almost all current players are able
- to handle DD AC-3.
- - Release v1.0.26.1
[edit] HDA Jack Retask
- - hdajackretask: Some more UI fixes
- - don't overwrite a set advanced override unless necessary
- - fix "not present" never selected
- - remove some trailing whitespaces
- - hdajackretask: Fix "advanced override" bug
- The values were not correctly retreived from the comboboxes.
- - Add foreign automake option to hdajackretask/Makefile.am
- - hdajackretask: Add missing header files to tar-ball distribution
[edit] ac3dec (Dolby Digital Decoder)
- - ac3dec: Remove the ac3dec tool
- There may be some licencing issues for the name and decoder (it is not
- build in the Fedora distro anyway).
- Sources will stay in repos, but almost all current players are able
- to handle DD AC-3.
- - ac3dec: Show usage if no parameter is passed
- When ac3dec is called without any argument the application hangs forever.
- Instead of hanging, print the usage and exit.
[edit] ld10k1 (EMU10K1+ DSP Code Loader)
- - (q)lo10k1: updated INSTALL files
[edit] qlo10k1
- - (q)lo10k1: updated INSTALL files
[edit] alsa-plugins
[edit] Core
- - Release v1.0.27
[edit] A52 Output plugin
- - a52: Fix build errors
- I merged somehow a half-baked patch mistakenly. Fixed now.
- - a52: Add the support of recent libavcodec / libavutil
- The recent avcodec requires the planar support, which is essentially
- non-interleaved formats. We need to limit the accepted access types
- depending on it.
[edit] PulseAudio -> ALSA plugin
- - pulse: pulse_pcm_poll_revents should return 0 on success
- - pcm_pulse: set prebuf parameter according to software parameters
- The current default value for prebuf is very high, almost the full
- virtual ALSA buffer. This breaks some application especially where
- low latency is involved.
- This patch makes pcm_pulse implement the sw_params callback and get
- the prebuf value from the ALSA software parameters. Thus the
- trigger latency is much more like what an ALSA application should
- expect from an ALSA PCM device.

Custom Search