Detailed changes v1.2.5 v1.2.5.1: Difference between revisions

From AlsaProject
Jump to navigation Jump to search
No edit summary
 
m (1 revision)
 
(No difference)

Latest revision as of 12:34, 14 June 2021

Detailed changelog between 1.2.5 and 1.2.5.1 releases

Changelog between 1.2.5 and 1.2.5.1 releases

alsa-lib

Core

- Release v1.2.5.1 - Fix EXPORT_SYMBOL attribute for clang

Clang doesn't have the externally_visible attribute.

    src/pcm/pcm.c:1503:1: error: unknown attribute 'externally_visible' ignored [-Werror,-Wunknown-attributes]
    #define EXPORT_SYMBOL __attribute__((visibility("default"),externally_visible))                                                         ^

- configure: check if eaccess() is available

To fix the build error on Android:
  src/ucm/parser.c:2521:7: error: implicit declaration of function 'eaccess' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                if (eaccess(filename, R_OK))
                    ^
  src/ucm/parser.c:2521:7: note: did you mean 'access'?

Control API

- control: remap - fix an infinite recursive call in the async callback

The function snd_ctl_remap_async will call itself infinitely. Looks like
a typo.

- control: remap - fix uninitialized value in parse_map_vindex()

PCM API

- pcm: direct - remove dead code - pcm: softvol - fix early exit in add_tlv_info() - pcm: remove extra NULL checks in snd_pcm_dshare_open() - pcm: remove extra NULL checks in snd_pcm_dsnoop_open() - pcm: remove extra NULL checks in snd_pcm_dmix_open() - pcm: direct - fix pcmp error path in _snd_pcm_direct_new()

Timer API

- timer: remove dead code in _snd_timer_hw_open()

Use Case Manager API

- configure: check if eaccess() is available

To fix the build error on Android:
  src/ucm/parser.c:2521:7: error: implicit declaration of function 'eaccess' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                if (eaccess(filename, R_OK))
                    ^
  src/ucm/parser.c:2521:7: note: did you mean 'access'?

- ucm: include sys/wait.h to fix build on Android

    src/ucm/main.c:788:8: error: implicit declaration of function 'WIFSIGNALED' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                        if (WIFSIGNALED(err)) {
                            ^
    src/ucm/main.c:790:10: error: implicit declaration of function 'WIFEXITED' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                        } if (WIFEXITED(err)) {
                              ^
    src/ucm/main.c:791:34: error: implicit declaration of function 'WEXITSTATUS' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                                if (ignore_error == false && WEXITSTATUS(err) != 0) {

- ucm_exec.c: Include limits.h explicitly to fix build on musl

Fixes:
| ../../../alsa-lib-1.2.5/src/ucm/ucm_exec.c: In function 'find_exec':
| ../../../alsa-lib-1.2.5/src/ucm/ucm_exec.c:43:18: error: 'PATH_MAX' undeclared (first use in this function)
|    43 |         char bin[PATH_MAX];
|       |                  ^~~~~~~~
| ../../../alsa-lib-1.2.5/src/ucm/ucm_exec.c:43:18: note: each undeclared identifier is reported only once for each function it appears in
| ../../../alsa-lib-1.2.5/src/ucm/ucm_exec.c: In function 'uc_mgr_exec':
| ../../../alsa-lib-1.2.5/src/ucm/ucm_exec.c:177:18: error: 'PATH_MAX' undeclared (first use in this function)
|   177 |         char bin[PATH_MAX];
|       |                  ^~~~~~~~

- ucm: compound_merge() - fix use after free (and logic) - ucm: fix possible memory leak in parse_verb_file() - ucm: fix out-of-array access in rval_device_lookup_init() - ucm: check error value in parse_lookup_query() - ucm: fix possible NULL pointer dereference in uc_mgr_exec() - ucm: find_exec() - fix memory leak (dir) - ucm: fix if_eval_path() - access NULL pointer - ucm: fix use after free in if_eval_regex_match() - ucm: fix error path in execute_cfgsave() - ucm: fix _alibpref string (add '.' delimiter to the end) - ucm: add _alibpref to get the private device prefix

It may be useful to get the device prefix for the local configuration.

Link: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1251

Configuration

- conf: snd_config_get_card() remove unused assignment - conf: remove dead code in snd_config_get_card() - conf: fix load_for_all_cards()

The 63f7745b commit is loading the driver specific configuration
multiple times which ends with the array merges (see the bug).

Introduce the loaded compound which traces the already loaded
driver configurations and skip the multiple load requests.

alsa-utils

Core

- Release v1.2.5.1

ALSA Control (alsactl)

- utils.c: Include limits.h explicitly to fix build on musl

Fixes:
| ../../alsa-utils-1.2.5/alsactl/utils.c: In function 'snd_card_clean_cfgdir':
| ../../alsa-utils-1.2.5/alsactl/utils.c:309:19: error: 'PATH_MAX' undeclared (first use in this function)
|   309 |         char path[PATH_MAX];
|       |                   ^~~~~~~~
| ../../alsa-utils-1.2.5/alsactl/utils.c:309:19: note: each undeclared identifier is reported only once for each function it appears in

- alsactl: load_state: Only delete config if one was loaded

If load_configuration fails with open_failed == true, load_state will
jump to the out label without config being initialized and pass this
uninitialized config value to snd_config_delete. This commit fixes this
issue by initializing config with NULL and checking if it is non-null
before invoking snd_config_delete.

BugLink: https://github.com/alsa-project/alsa-utils/issues/93

- alsactl: load_state() - initialize config variable for the open_failed case - alsactl: fix lock_fd unlock in load_configuration() - error path - alsactl: state - fix ‘item’ may be used uninitialized gcc warning - alsactl: check for error values from snd_config_get...() - alsactl: init() - return error value from snd_card_iterator_sinit() call - alsactl: return error value in dump_config_tree() - alsactl: fix the nested iteration

There may be nested iterations for hw: card names.
Handle this card name in snd_card_iterator_sinit().

BugLink: https://github.com/alsa-project/alsa-lib/issues/142

Audio Transfer utility

- axfer: fix wrong calloc() item size in allocate_containers()

alsatplg (topology)

- topology: fix few coverity detected defects - topology: fix potential null pointer from strchr

This patch adds check to the return pointer from strchr,
because it may be null and cause segment fault, if component
is not properly constructed.

aplay/arecord

- arecord: Inform users when 8-bit sampling is used on tty

When we reverted 0c5948e ("aplay: try to use 16-bit format to
increase capture quality"), we should also handle the original
problem somehow. This code shows a warning with a hint to
the right parameter.

- Revert "aplay: try to use 16-bit format to increase capture quality"

This reverts commit 0c5948e98a6a8535c89b7bcab13017d7732181c6.

Link: https://github.com/alsa-project/alsa-utils/issues/96

aseqnet

- added an option to aseqnet to optionally set the midi process name

This option allows to run multiple instances of aseqnet without having
to double check the assigned port number, since each one can get spawned
with a unique name.

alsa-ucm-conf

Configuration

- tegra: Add UCM for Nvidia Tegra HDMI Audio - HDA-Intel: the lookups are supported from syntax 4 - tegra: shuffle ASUS Google Nexus 7 files

BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/94

- tegra: shuffle Acer Iconia Tab A500 files

BugLink: https://github.com/alsa-project/alsa-ucm-conf/pull/94