- 04 Aug, 2020 4 commits
-
-
Kai-Heng Feng authored
UAC v2 and v3 support insertion control (jack detection), and the created jack mixers have "- Input" suffix and "- Output" suffix for input jack and output jack, respectively. Add these jacks so we don't always need to rely on UCM or PulseAudio profile-set.
-
Fixes: pulseaudio/pulseaudio#820
-
Tanu Kaskinen authored
The test was missing from the build system.
-
Tanu Kaskinen authored
The function seems to be essential to the test, so the test has to be disabled entirely if pthread_setaffinity_np() is not available. Fixes: #850
-
- 03 Aug, 2020 1 commit
-
-
Wim Taymans authored
Fix the check for a digit by checking if the value is between the *character* '0' (not *value* 0) and '9'.
-
- 26 Jul, 2020 4 commits
-
-
-
-
They were unused since 20f1fa17.
-
-
- 22 Jul, 2020 1 commit
-
-
The lack of change events caused GUIs to not update the port status. Related bug report: #941
-
- 21 Jul, 2020 2 commits
-
-
Eero Nurkkala authored
When compiled with ASAN: -O1 -fsanitize=address -fno-omit-frame-pointer, the following issues are seen: ==17217==ERROR: LeakSanitizer: detected memory leaks Direct leak of 32 byte(s) in 1 object(s) allocated from: #0 0x7fceba414b40 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb40) #1 0x7fceb9b3eac9 in pa_xmalloc pulse/xmalloc.c:63 #2 0x7fceb9b3ed22 in pa_xmemdup pulse/xmalloc.c:94 #3 0x7fceb9e1eed5 in _pa_xnewdup_internal pulse/xmalloc.h:86 #4 0x7fceb9e1eed5 in init_remap_c pulsecore/remap.c:580 #5 0x7fceb9e1efe5 in pa_init_remap_func pulsecore/remap.c:608 #6 0x5574e72422b7 in remap_init2_test_channels tests/cpu-remap-test.c:303 #7 0x5574e7242420 in rearrange_special_test tests/cpu-remap-test.c:345 #8 0x5574e7245ce5 in srunner_run (/home/eenurkka/pulse/pulseaudio/src/.libs/cpu-remap-test+0x9ce5) ... SUMMARY: AddressSanitizer: 192 byte(s) leaked in 6 allocation(s). Fix those issues by freeing the allocated resources properly. Signed-off-by:
Eero Nurkkala <eero.nurkkala@offcode.fi>
-
Eero Nurkkala authored
When compiled with ASAN: -O1 -fsanitize=address -fno-omit-frame-pointer, the following issue is seen: ==14272==ERROR: LeakSanitizer: detected memory leaks Direct leak of 1072 byte(s) in 1 object(s) allocated from: #0 0x7f0180966d28 in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xded28) #1 0x7f018039f043 in pa_xmalloc0 pulse/xmalloc.c:74 #2 0x7f01803c5cc8 in pa_hashmap_new_full pulsecore/hashmap.c:61 #3 0x7f01803c5df9 in pa_hashmap_new pulsecore/hashmap.c:76 #4 0x556ee75ff7f4 in remove_all_test tests/hashmap-test.c:96 #5 0x556ee7602965 in srunner_run (/home/eenurkka/pulse/pulseaudio/src/.libs/hashmap-test+0x6965) SUMMARY: AddressSanitizer: 1072 byte(s) leaked in 1 allocation(s). Fix it by freeing the resource properly. Signed-off-by:
Eero Nurkkala <eero.nurkkala@offcode.fi>
-
- 20 Jul, 2020 2 commits
-
-
When the Thumb instructions set is used and frame pointers are enabled (-fno-omit-frame-pointer), r7 can't be used, because it's used for the frame pointer. Trying to use r7 caused the compilation to fail. Thanks to Andre McCurdy for suggesting[1] this fix, all I had to do was to test that it works. The code builds now, and cpu-remap-test also succeeds. [1] https://lists.openembedded.org/g/openembedded-core/message/136786
-
zhaochengyi authored
When playing music for a period of time, the Shared Memory is frequently accessed, and occasionally read/write errors occur, which causes the program to crash [Current thread is 1 (Thread 0xffff86823010 (LWP 2841))] (gdb) bt 0 0x0000ffff8702a714 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 1 0x0000ffff870188e8 in __GI_abort () at abort.c:79 2 0x0000ffff873b5728 in do_read (p=p@entry=0x3673a170, re=re@entry=0x3673a338) at pulsecore/pstream.c:856 3 0x0000ffff873b7fd8 in do_pstream_read_write (p=0x3673a170) at pulsecore/pstream.c:248 4 0x0000ffff873b8368 in srb_callback (srb=<optimized out>, userdata=0x3673a170) at pulsecore/pstream.c:287 5 0x0000ffff873b8bec in srbchannel_rwloop (sr=0x36766ae0) at pulsecore/srbchannel.c:190 6 0x0000ffff87339c70 in dispatch_pollfds (m=0x36670db0) at pulse/mainloop.c:655 7 0x0000ffff87339c70 in pa_mainloop_dispatch (m=m@entry=0x36670db0) at pulse/mainloop.c:898 8 0x0000ffff8733a01c in pa_mainloop_iterate (m=0x36670db0, block=<optimized out>, retval=0xffffd9683030) at pulse/mainloop.c:929 9 0x0000ffff8733a0d8 in pa_mainloop_run (m=m@entry=0x36670db0, retval=retval@entry=0xffffd9683030) at pulse/mainloop.c:945 10 0x0000000000406894 in main (argc=<optimized out>, argv=<optimized out>) at daemon/main.c:1144 Signed-off-by:
zhaochengyi <zhaochengyi@uniontech.com>
-
- 18 Jul, 2020 1 commit
-
-
Rafael Fontenelle authored
-
- 17 Jul, 2020 1 commit
-
-
On the machines with the ucm used, the different input/output devices often have different pcm stream, so they often belong to different sources and sinks, this is greatly different from the design of all devices connected to a codec (without ucm). For example, on a machine with ucm2 used: the internal dmic is on source#0 the external mic is on the source#1 the internal spk is on sink#0 the external headphone is on sink#1 Users expect that after plugging the external device, it will become the active device automatically. The switch-on-port-available could make it to be the active_port on its own source/sink, but can't make source/sink to be default_source/sink since the sources/sinks belong to the same profile (HiFi usually). If we adjust the source/sink priority according to ucm ports priority, the device_port.c could handle the default_source/sink changing then. Usually we set higher priority for external device than internal device in the ucm. In order to bring the lowest side effect on the source/sink priority, I change the ucm priority to units digit first, then add it to the original priority. Signed-off-by:
Hui Wang <hui.wang@canonical.com>
-
- 11 Jul, 2020 1 commit
-
-
Tanu Kaskinen authored
This was forgotten in commit 861836c5.
-
- 10 Jul, 2020 4 commits
-
-
Tanu Kaskinen authored
-
Currently translated at 100.0% (517 of 517 strings) Translation: pulseaudio/pulseaudio Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/fr/
-
Currently translated at 100.0% (533 of 533 strings) Translation: pulseaudio/pulseaudio Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/pl/
-
Currently translated at 100.0% (527 of 527 strings) Translation: pulseaudio/pulseaudio Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/tr/
-
- 09 Jul, 2020 1 commit
-
-
Hui Wang authored
We met a weird situation on a couple of Lenovo machines and at least on one Dell machine. First we open the gnome-sound-setting, then suspend and resume the system, after the system resume back, the audio devices change to dummy, the audio doesn't work anymore. And pacmd list-cards shows no available sound card. Through debugging I found after resume, the alsa receives POLLERR events and it will call unsuspend to recover the pcm, but at that moment, the device nodes in /dev/snd/ is not accessible, so the snd_pcm_open() fails and the pulseaudio unload the module-alsa-card. Here I add retry and pa_msleep if snd_pcm_open fails, I tested it on all machines which have this problem, pa_msleep(25) is ok for most of them, there is only one machine which needs to call pa_msleep(25) twice, so for safety reason, I set the max retry times to 4. Signed-off-by:
Hui Wang <hui.wang@canonical.com>
-
- 06 Jul, 2020 2 commits
-
-
Tanu Kaskinen authored
get_mixer_device() can return NULL when no mixer device is configured for the device, so mdev2 can be NULL.
-
It's possible for mdev to be NULL. In this case, an assert is taken in pa_alsa_open_mixer_by_name() with debug builds, and a crash with release builds. However, it's possible to bypass this trouble by taking the error path if mdev is NULL. Reported-by:
Jarkko Sankala <jarkko.sankala@offcode.fi> Signed-off-by:
Eero Nurkkala <eero.nurkkala@offcode.fi>
-
- 30 Jun, 2020 1 commit
-
-
- 22 Jun, 2020 4 commits
-
-
-
In single profile mode (headphone and speaker use different PCMs), when headphone is plugged in, pa_device_port_set_available() will call pa_core_update_default_sink/source() before posting PA_SUBSCRIPTION_EVENT_CARD|PA_SUBSCRIPTION_EVENT_CHANGE to the gnome. And pa_core_update_default_sink/source() will post PA_SUBSCRIPTION_EVENT_SERVER | PA_SUBSCRIPTION_EVENT_CHANGE to the gnome. So the original event sequence is: 1. PA_SUBSCRIPTION_EVENT_SERVER | PA_SUBSCRIPTION_EVENT_CHANGE 2. PA_SUBSCRIPTION_EVENT_CARD | PA_SUBSCRIPTION_EVENT_CHANGE In gnome-control-center: When it receives PA_SUBSCRIPTION_EVENT_SERVER, it will call req_update_server_info () to update the panel; When it receives PA_SUBSCRIPTION_EVENT_CARD, it will update the card information, for example, when the headphone is connected, it will call gtk_list_store_append() to append the headphone. Let's use an example to clarify the correct sequence. Assume we plug in headphone. PA will set the default sink to headphone from speaker, and hope gnome sound setting "Output Deivce" to highlight to "headphone". PA should send PA_SUBSCRIPTION_EVENT_CARD firstly to notify gnome-control-center "headphone" is plugged in. And then it sends PA_SUBSCRIPTION_EVENT_SERVER to trigger sound setting to highlight to "headphone". Signed-off-by:
Libin Yang <libin.yang@intel.com>
-
Previously avoid_resampling was always false unless the sink or source implementation explicitly configured the variable. The null sink doesn't explicitly configure it, so it didn't switch the sample rate as expected when avoid_resampling was enabled. This change means that also sinks that don't support rate switching can have avoid_resampling set to true, but I think that's fine, because pa_sink_reconfigure() doesn't try to do anything if the reconfigure() callback isn't set. Fixes: #923
-
I spent a little time working through the implementation of pa_hashmap, and wrote a test suite while doing so. It tests a few basic edge cases, like saturating all buckets of the hashtable.
-
- 21 Jun, 2020 1 commit
-
-
- 20 Jun, 2020 1 commit
-
- 17 Jun, 2020 9 commits
-
-
Jan Alexander Steffens authored
It's a define resolving to a number, not a function.
-
Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
Create automatically the groups per paths where the similar jacks are used. Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
The clients might wanna to know for which purpose is the port. Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-
In some cases, the I/O connector functionality can be shared and we cannot determine the proper purpose automatically. We just know that something was inserted to the jack. Introduce a group identifier (a simple string - unique per group) which helps to determine the proper ports for the application. The user interface may be used to set the wanted behaviour. Signed-off-by:
Jaroslav Kysela <perex@perex.cz>
-