summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Update NEWSv14.2stable-14.xTanu Kaskinen2021-01-161-0/+11
|
* switch-on-port-available: Pass correct port_pointers to switch_to_port()Tanu Kaskinen2021-01-161-2/+4
| | | | | | | | | The pp variable contains information for the port that became unavailable, but switch_to_port() needs the information for the port that we're switching to. Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1096 Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/468>
* Update NEWSv14.1Arun Raghavan2021-01-121-0/+23
| | | | Add notes for 14.1.
* Update NEWSArun Raghavan2021-01-121-0/+117
| | | | | | Missed this in the 14.0 release. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/465>
* cli: Fix crash when using .include with an empty directoryPatrick Gaskin2021-01-121-23/+23
| | | | | | This would previously fail the size > 0 assertion in pa_xmalloc. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/454>
* database: clean up remaining references to CANONICAL_HOSTIgor V. Kovalenko2021-01-123-5/+0
| | | | Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/425>
* database: pick old database file from any archIgor V. Kovalenko2021-01-125-54/+42
| | | | Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/425>
* database: drop arch from newly created database file nameIgor V. Kovalenko2021-01-121-29/+31
| | | | Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/425>
* database: use existing database matching same architecture prefixIgor V. Kovalenko2021-01-123-2/+41
| | | | | | | | | | | | | | | | | State database binary file format may depend on system architecture, for instance gdbm binary format depends on architecture word size, making x86 and x64 gdbm files incompatible. If this is the case, it is handled by adding system architecture name to database file name using automatically configured CANONICAL_HOST string. Meson build define CANONICAL_HOST to be system architecture name, while autotools build extends this with vendor and and operating system components. Switch autotools build to use host_cpu for CANONICAL_HOST to match Meson configuration. For backwards compatibility always use existing database file matching CANONICAL_HOST prefix if it exists. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/425>
* database: extract common method to handle machine id and architectureIgor V. Kovalenko2021-01-1212-64/+153
| | | | Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/425>
* build-sys: meson: use target_machine.cpu_family() for CANONICAL_HOSTIgor V. Kovalenko2021-01-121-1/+1
| | | | | | | | | target_machine provides information about the machine on which the compiled binary's output will run. cpu_family() returns CPU family name (such as x86_64, not more specific amd64) Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/426>
* ladspa-sink: do not call pa_sink_suspend if PA_SINK_IS_LINKED is falseIgor V. Kovalenko2021-01-071-0/+3
| | | | | | | | | | | While module-ladspa-sink is still being loaded and before pa_sink_put() is called there may be an attempt to reconfigure master sink when avoid-resampling is true. This breaks attempting to suspend ladspa-sink which is still in INIT state. Fix this by skipping pa_sink_suspend if PA_SINK_IS_LINKED is false. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/445>
* alsa-mixer: Add support for the Headphone,1 elementTanu Kaskinen2021-01-076-0/+30
| | | | | | | | | | | | | | | This is seen at least on HP EliteDesk 800 DM and HP EliteDesk 800 SFF. This is used by the analog-output-headphones-2 path, but all other paths on the same sink need to handle the element too. The existing configuration is inconsistent between files regarding whether headphone outputs should be muted or not when not using them. I chose to be consistent within files, which means that Headphone,1 handling is inconsistent between files in the same way that the existing Headphone and Headphone2 handling is. (My opinion is that unused paths should be always muted, but I didn't want to do that policy change in this patch.) Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/272>
* alsa-mixer: Move HP EliteDesk 800 SFF/DM second headphone output to path ↵Tanu Kaskinen2021-01-072-10/+10
| | | | | | | | | analog-output-headphones-2 The two headphone outputs should be handled in separate paths so that volume control can be implemented properly for both outputs. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/272>
* alsa-mixer: Use unambiguous descriptions with dual headphone outputsTanu Kaskinen2021-01-072-1/+1
| | | | | | | | | | Previously both paths had description "Headphones", which I assume can cause confusion with users who see two ports with identical names. I don't have this kind of hardware myself nor have I heard complaints from users, this is just something I noticed while reading the configuration files. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/272>
* alsa-mixer: Support dual Front Headphone JackKai-Heng Feng2021-01-071-0/+12
| | | | | | | | There are dual Front Headphone Jacks with different indices or with different names, they can be found on HP EliteDesk 800 SFF and HP EliteDesk 800 DM, respectively. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/272>
* alsa-mixer: Handle the index for ALSA mixer jack identifiersKai-Heng Feng2021-01-076-58/+73
| | | | | | | Some systems have two jacks with same name but different index, we need to take index into consideration to use both jacks. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/272>
* bluetooth: correct possible segmentation faultmorrishoresh2021-01-071-2/+1
| | | | Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/443>
* switch-on-port-available: Switch to headset or mic on unknown availHui Wang2021-01-071-12/+20
| | | | | | | | | | | | | | | | | | | | On some Dell AIO machines, there is no internal mic, only a multi function audio jack, so the only input devices are headphone-mic and headset-mic, and they share the Jack with headphone. When there is no headset plugged in that Jack, the headphone-mic and headset-mic are off. And since there is no available port under the analog input source, this source is unlinked (if there is internal mic, the source will not be unlinked). so the only pa-source left in the PA is analog-stereo-monitor. After the headset is plugged, we need to let switch_to_port() handle headset-mic and headphone-mic conditionally, this will guarantee the source will be created if it is unlinked before plugging, and then the input profile could be selected correctly. Signed-off-by: Hui Wang <hui.wang@canonical.com> Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/390>
* alsa: mixer - add support up 8 mixer channelsJaroslav Kysela2021-01-072-21/+103
| | | | | | | | | | | | | | | | | | | | | | | | We have at least one USB hardware which supports the 8 channels in one mixer element: https://github.com/alsa-project/alsa-ucm-conf/pull/25 POSITION_MASK_CHANNELS define was added for the future extensions. The override_map variable was changed from bool to mask (unsigned int). The channel map override settings is handled for channels up to eight now. Also added missing override-map.3 .. override-map.8 to the configuration parser array. The driver channel position was added to the override mask arguments (syntax is driver:pulseaudio like left:all-left). If ommited, the ALSA's channel positions are guessed by index. Link: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/292 Signed-off-by: Jaroslav Kysela <perex@perex.cz> Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/389>
* alsa: mixer - use safe dB range values when the override mask is unsetJaroslav Kysela2021-01-071-3/+16
| | | | | | | | | | | | | Use safe values for the min_dB and max_dB fields when the position mask is unset to avoid breakage for the upper levels. If the range is incorrect, the volume range shown in pavucontrol shows strange values. (Thanks to Wim Taymans for the idea.) Signed-off-by: Jaroslav Kysela <perex@perex.cz> Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/389>
* build-sys: Bump libpulse soversionv14.0Arun Raghavan2020-11-232-2/+2
| | | | | This is because we reverted the previous API breaking change to the meaning of the pa_mainloop_prepare() timeout argument.
* Revert "mainloop: fix timeout assignment in pa_mainloop_prepare"Arun Raghavan2020-11-232-5/+3
| | | | | | | This reverts commit 6b1719d0ed100ce5a65f28c3c4d4f3b59f3f56a0, as it inadvertently broke the semantics of timeout in the API. Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1039
* build-sys: Disable GStreamer by default with AutotoolsTanu Kaskinen2020-11-231-2/+2
| | | | | With Meson GStreamer is already disabled by default, let's match that with Autotools.
* alsa: Fix compile warningsPali Rohár2020-11-233-5/+5
| | | | | | | | | | | | | | | | | | | | | | modules/alsa/alsa-sink.c: In function ‘pa_alsa_sink_new’: modules/alsa/alsa-sink.c:2603:15: warning: declaration of ‘state’ shadows a previous local [-Wshadow] void *state; ^~~~~ modules/alsa/alsa-sink.c:2270:11: note: shadowed declaration is here void *state = NULL; ^~~~~ CC modules/alsa/module_alsa_sink_la-module-alsa-sink.lo modules/alsa/alsa-source.c: In function ‘pa_alsa_source_new’: modules/alsa/alsa-source.c:2289:15: warning: declaration of ‘state’ shadows a previous local [-Wshadow] void *state; ^~~~~ modules/alsa/alsa-source.c:1975:11: note: shadowed declaration is here void *state = NULL; ^~~~~ modules/alsa/module-alsa-card.c: In function ‘prune_singleton_availability_groups’: modules/alsa/module-alsa-card.c:691:71: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith] pa_hashmap_put(group_counts, p->availability_group, count + 1); ^
* switch-on-port-available: Fix switching away from unplugged headphonesTanu Kaskinen2020-11-231-26/+28
| | | | | | | | | | | | | | | | Commits 323195e305 ("switch-on-port-available: Switch to headphones on unknown availability") and d83ad6990e ("module-alsa-card: Drop availability groups with only one port") broke switching from headphones to speakers when headphones are unplugged. switch_from_port() selects speakers, whose availability is unknown and availability group is unset, and then calls switch_to_port(). The new logic in switch_on_port() unintentionally blocked that switch. This patch moves the problematic logic from switch_to_port() to port_available_hook_callback() where it doesn't interfere with switch_from_port(). Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1043
* alsa-mixer: Document the description and description-key mapping optionsTanu Kaskinen2020-11-221-1/+5
|
* Translated using Weblate (Bulgarian)Emanuil Novachev2020-11-211-6/+73
| | | | | | | Currently translated at 2.6% (14 of 521 strings) Translation: pulseaudio/pulseaudio Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/bg/
* Translated using Weblate (Slovak)Dusan Kazik2020-11-211-8/+10
| | | | | | | Currently translated at 69.2% (364 of 526 strings) Translation: pulseaudio/pulseaudio Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/sk/
* Translated using Weblate (Spanish)Emilio Herrera2020-11-211-12/+17
| | | | | | | Currently translated at 100.0% (521 of 521 strings) Translation: pulseaudio/pulseaudio Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/es/
* Translated using Weblate (Norwegian Nynorsk)Karl Ove Hufthammer2020-11-211-7/+6
| | | | | | | Currently translated at 100.0% (527 of 527 strings) Translation: pulseaudio/pulseaudio Translate-URL: https://translate.fedoraproject.org/projects/pulseaudio/pulseaudio/nn/
* switch-on-port-available: Add logging for port availability groupIgor V. Kovalenko2020-11-211-2/+6
|
* module-alsa-card: Add debug logging if availability group was prunedIgor V. Kovalenko2020-11-211-0/+2
|
* i18n: Update pulseaudio.potIgor V. Kovalenko2020-11-211-190/+194
|
* pactl: explicitly print if port availability is unknownIgor V. Kovalenko2020-11-211-10/+12
| | | | | Port availability is a tristate -- not-available / unknown / available. Explicitly print if availability is unknown to reduce confusion.
* module-alsa-card: Drop availability groups with only one portArun Raghavan2020-11-172-2/+36
| | | | | | These are not really meaningful, and can be confusing for clients. Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1022
* switch-on-port-available: Switch to headphones on unknown availabilityArun Raghavan2020-11-151-0/+23
| | | | | | | | | | | | | Since not all users will have environments that asks what they plugged in when their hardware supports TRRS inputs but don't have impedance sensing, let's emulate our previous default behaviour of enabling the headphone port at least. This can likely be improved so users can configure the module to select for the device they are most likely to plug in (so an option to enable just the microphone, or headphones+headset-mic ports). Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1028
* alsa-mixer: Remove references to non-existent multichannel pathsTanu Kaskinen2020-10-311-2/+0
| | | | We don't have any mixer configuration for the multichannel mappings.
* gitlab: Remove trailing whitespace from the issue templateTanu Kaskinen2020-10-311-20/+19
|
* alsa-mixer: Fix jack name comparisonv13.99.3Tanu Kaskinen2020-10-301-1/+1
| | | | | | | | | | | | | HDMI jacks are configured like this: [Jack HDMI/DP] append-pcm-to-name = yes The pa_alsa_jack.name field is then "HDMI/DP" and pa_alsa_jack.alsa_name is set to "HDMI/DP,pcm=3 Jack" or similar. If we compare the name fields of HDMI paths, they appear to use the same jack element even though they are different in reality, so all HDMI ports got incorrectly assigned to the same availability group.
* alsa-mixer: Set availability groups once per cardTanu Kaskinen2020-10-301-11/+27
| | | | | | Previously they were set once per mapping, which caused the numbering to restart from 1 for every mapping, so ports were incorrectly assigned to the same group.
* sink, source: Skip filter streams while changing default sink/sourceArun Raghavan2020-10-262-0/+8
| | | | | | | | Streams connecting filter devices to their target devices shouldn't move because of default settings (they are intended to be filtering the specific device that are attached to). Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1015
* alsa: move the exceptionally large value errors from error to debug levelJaroslav Kysela2020-10-261-8/+8
| | | | | | | | | | | | | | | Almost all reports from users, I have seen in last years, were not valid. The report is also printed when the system scheduler does not wake the pulseaudio thread in the right time. Users are not able to distinguish between slow machine and the real problem. Move the log level from 'error' to 'debug' for those messages. The right fix should be to measure the time between the call invocation and return to determine (and skip) the scheduling problems, but it is another extra code just to debug things. Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* build-sys: Set the GStreamer RTP backend to disabled by defaultArun Raghavan2020-10-231-1/+1
| | | | | | Packaging shouldn't be using the automatic setting anyway, and let's disable by default for one release and mark this as experimental so we can flush out any corner cases.
* rtp: gstreamer: Account for rounding errors in RTP timestamp conversionArun Raghavan2020-10-231-0/+17
| | | | | | | Since the RTP timestamp is converted to time units and back, a small error can creep up, which then results in a single frame error in where we place the buffer in the output memblockq. This results in minor glitches, so we check for and eliminate the error.
* rtp: gstreamer: Don't count on buffer DTS for capture timeArun Raghavan2020-10-233-6/+51
| | | | | | | | | | | With GStreamer 1.18, the old behaviour of storing the capture time in DTS is gone (which is reasonable, since the semantics really don't match). So instead, we get a capture timestamp when the buffer is being pushed from udpsrc. This should eventually move into udpsrc, and the timestamp should come from the cmsg instead of the clock. We still fallback to the DTS if the meta isn't available, as the meta might be dropped in older versions of rtpL16pay due to a bug.
* module-bluez5-discover: avoid use after free on de-initIgor V. Kovalenko2020-10-231-3/+3
| | | | | | | | Hashmap loaded_device_paths contain objects holding keys to entries, and these objects must be alive while map is emptied. Reorder freeing this hashmap before destroying device objects to fix crash on exit.
* build-sys: meson: adjust path to gsettings-helper runing from build treeIgor V. Kovalenko2020-10-201-0/+4
|
* build-sys: meson: Add libm dep to raop moduleArun Raghavan2020-10-201-1/+1
| | | | This is required for using pow().
* device-port: fire port available changed hook after streams are movedIgor V. Kovalenko2020-10-201-2/+5
| | | | | | | | | If port becomes unavailable then PA_CORE_HOOK_PORT_AVAILABLE_CHANGED callbacks may eventually destroy related source or sink object. Call this hook after stream is moved to prevent crash reading from freed memory. Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1008