summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2012-03-28sink-input/source-output: Prevent filter sink/source cyclesDavid Henningsson2-0/+34
Misbehaving clients can try to set a filter sink to output to itself, leading to crashes later on. This patch protects us from that. Thanks to Roman Beslik for testing and finding an error in the first version of this patch. Tested-by: Roman Beslik <rabeslik@gmail.com> BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=44397 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-28module-jack-sink/source: Set fixed latency correctly on creationMaarten Lankhorst2-2/+16
Changes since v1: Use max value of jack_port_get_latency_range to calculate the latency and squash compiler warnings cased by using jack_port_get_total_latency Modifying latency only works inside a callback, and for hardware the latency is generally fixed on jack, so just take the max value. Signed-off-by: Maarten Lankhorst <m.b.lankhorst@gmail.com>
2012-03-28Fix input device for M-audio fasttrack proDavid Henningsson1-1/+3
Some M-audio fasttrack pro devices, the input device is at index 1 instead of index 0. According to http://mailman.alsa-project.org/pipermail/alsa-devel/2012-March/050701.html the reason for this is probably that the device has mutually exclusive analog and digital input. With this patch we can catch the input regardless of state. BugLink: https://bugs.launchpad.net/bugs/569932 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-28libpulse: Cope with systems not implementing SA_NOCLDWAITPino Toscano1-0/+4
Even though SA_NOCLDWAIT is a POSIX mandatory flag the Hurd doesn't implement it. So let's only check for it if it's defined.
2012-03-28Revert "resamplers: Optimize trivial resampler"Colin Guthrie1-10/+1
This causes problems with 24kHz audio (results in echoing) when upscaling to 44.1kHz or 48kHz. It can be reapplied when the optimisation works for all cases. This reverts commit 8539fe9765e5713f9863ab15d0c5b42189f98ae2.
2012-03-28core-util: Attempt to make runtime paths smaller to avoid 108 char limit.Colin Guthrie1-5/+16
When the runtime path gets long (which can happen on some NFS mounts where $HOME is not just /home/$USER), it can grow longer the 108 char limit imposed by sockaddr_un.sun_path. This just calls realpath which should ultimately point into /tmp in most cases and result in a much smaller path. Only do this when we are adding on a name component to the runtime path so creating the actual symlink will still get the original, long name, but this shouldn't be a problem as it never goes into the sockaddr_un.sun_path. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=44680
2012-03-28stream: Fix sample spec initialisation for extended APIArun Raghavan1-1/+1
This fixes pa_sample_spec init to use the correct API. Not doing so triggers a valgrind warning as we call pa_sample_spec_valid() on this later on, which checks the rate and channels fields. Thanks to Rémi Denis-Courmont for reporting this.
2012-03-26alsa-mixer: Fix a small issue when detecting required-anyDavid Henningsson1-3/+3
If somebody writes the line "required-any=ignore", that shouldn't mean a required-any element needs to be present for the path to succeed probing. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-26alsa-mixer: Show HDMI ports for older Nvidia cardsDavid Henningsson4-4/+4
Some older cards do not have jack detection. This patch makes the port still show up. An implementation detail: the "required = ignore" line has in itself no effect, but we have to write *something* there, or else the entire jack detection section will be ignored by the parser. BugLink: https://bugs.launchpad.net/bugs/961286 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-25dbus: Check method call signatures.Tanu Kaskinen1-2/+7
BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=45815
2012-03-23fix compilation warning via PRI prefixDeng Zhenrong1-1/+1
modules/alsa/alsa-mixer.c:3110:21: warning: format '%lx' expects argument of type 'long unsigned int', but argument 7 has type 'pa_channel_position_mask_t' [-Wformat] modules/alsa/alsa-mixer.c:3110:21: warning: format '%lx' expects argument of type 'long unsigned int', but argument 8 has type 'pa_channel_position_mask_t' [-Wformat] pa_channel_position_mask_t is type defined to uint64_t, and to display uint64_t, it's better to use PRIx64 primitives. Signed-off-by: Deng Zhenrong <dzrongg@gmail.com>
2012-03-22bluetooth: Remove unused variable.Tanu Kaskinen1-3/+0
2012-03-21build-sys: padsp target should not be phonyDavid Henningsson1-1/+1
Prevent rebuilding padsp when it's not needed. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-21pactl: show availability information for "list cards"David Henningsson1-1/+3
Now that the client API exposes availability information for ports on cards, we can make output consistent with "list sinks" and "list sources". Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-21module-switch-on-port-available: Do not switch profile if current port is ↵David Henningsson1-2/+22
available For switching profiles, we are a little more cautious, only switch from an unavailable port to an available one. Profile switching is mainly used for HDMI/DisplayPort, and this is to avoid switching from analog to HDMI/DP when it becomes available. See http://lists.freedesktop.org/archives/pulseaudio-discuss/2012-March/012991.html and replies for more information. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-20module-loopback: Never call adjust_rates after teardownDavid Henningsson1-3/+7
Calling adjust_rates after teardown results in segfault, and judging from the Ubuntu bug report, this can happen. Actively prevent this by destroying the time event, and by setting adjust_time to 0, we also prevent this routine being called on max request update. BugLink: https://bugs.launchpad.net/bugs/946400 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-19protocol-native: Remove redundant assertsArun Raghavan1-2/+0
As David points out, the previous commit made a couple of asserts redundant (the XOR covers all cases that were previous tested for). Remove these redundant commits now.
2012-03-19protocol-native: Reinstate assert that was incorrectly removedArun Raghavan1-0/+1
Commit 54cddc6ddf075b6248b0b8521120b2bd86049978 removed an assert that looked redundant but was not. This commit reinstates it in a slightly modified form. It is not stated as (a ^ b) instead of (!a || !b) in order to make the condition more obvious.
2012-03-19protocol-native: Protect against clients trying to set a NULL portDavid Henningsson3-3/+3
For some reason, a badly behaving client was trying to set a NULL port, which caused PulseAudio to crash. Add safeguards on two levels just to be protected. (Also remove a redundant check.) BugLink: https://bugs.launchpad.net/bugs/951273 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-17systemd: complement module-console-kit with module-systemd-loginLennart Poettering4-2/+271
ConsoleKit has been deprecated and replaced by systemd's logind daemon, hence provide the same functionality of module-console-kit in module-systemd-login. This also makes sure that the CK module becomes a NOP if the system is booted with systemd, resp. that the systemd module becomes a NOP if the system is booted without systemd, thus being nice to OSes such as Debian which want to support multiple init systems.
2012-03-13daemon: Initialize dbus to use thread-safe mode by defaultDavid Henningsson1-0/+2
In most cases, we use dbus from more than one thread, as we e.g. enable real-time scheduling from the ALSA threads. Therefore set dbus to thread-safe mode by default, as recommended in https://bugs.freedesktop.org/show_bug.cgi?id=47060#c5 This fixes a bug where PulseAudio could crash in two parallel calls to pa_make_realtime. BugLink: https://bugs.launchpad.net/bugs/937933 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-12alsa-mixer: Don't remove paths if jacks state.(un)plugged differDavid Henningsson1-1/+3
If the jack state differs, they are not the same path, so don't remove them. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-12Revert "build-sys: Remove the public API stuff from libpulsecommon."Tanu Kaskinen1-0/+8
This reverts commit 24ff7196753a3273bac34e87bdcf42384f974d45. If these files aren't compiled in both libpulse and libpulsecommon, some things will try use non-public functions from libpulse. Therefore those internal functions have to be included directly in libpulsecommon. This problem appears to be only visible with --as-needed, which is why the problem wasn't noticed immediately. The problem has existed also earlier, and it was fixed by Maarten Bosmans in commit 2de2c735. The commit that is now reverted basically reverted Maarten's commit (I didn't know that when I wrote the bad patch).
2012-03-11xen: Add Xen paravirtualized sink support.Giorgos Boutsioukis4-0/+1063
A part of Xen's paravirtualized audio driver has been developed as a pulseaudio module. This module acts as a tunnel over Xen's shared memory mechanism and allows a domU guest to send audio data to a dom0 backend. Reference: https://bugs.freedesktop.org/show_bug.cgi?id=43503
2012-03-11alsa-mixer: Make speaker get available=no when headphones are plugged inDavid Henningsson7-3/+73
While developing the new UI we had to ask ourselves the question of whether "speakers" should be considered available when headphones are plugged in. In most cases, they are not available and therefore we should list them as such. OTOH, we don't want unplugging the headphones to be considered an act of wanting to use the speakers (the user might prefer HDMI), and there might be line-outs that keeps the speakers from unmuting anyway. So, at this point, I think the most reasonable would be to make the speakers have PA_PORT_AVAILABLE_NO when headphones are plugged in and PA_PORT_AVAILABLE_UNKNOWN when they are not. But we might want to revisit this decision once we have the priority lists up and running. The same reasoning applies for "Internal Mic", which should become unavailable when any other mic is plugged in. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-11introspect: Expose port info per card to clientsDavid Henningsson5-6/+183
For volume control UIs to be able to show ports in inactive profiles, expose all ports together with the card info. This includes updating the protocol and the client API to show the connection between ports and for which profiles the ports are relevant. Update protocol to 26. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-11conf: Load switch-on-port-available module by defaultDavid Henningsson1-0/+2
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-11Add a new module switch-on-port-available that acts on port changesDavid Henningsson2-0/+239
This module tries to switch to a port when availability changes to "YES", and tries to switch away when availability changes to "NO". Once there is a priority list infrastructure in place and ready, this functionality might be redundant, but this will do as an interim solution.
2012-03-11alsa: Add port information to HDMI profilesDavid Henningsson8-10/+206
For Nvidia and Intel, support probing of up to four HDMI devices. Also add port information to all HDMI profiles. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-11alsa: Jack detection kcontrol implementationDavid Henningsson14-105/+464
Support the new jack detection interface implemented in Linux 3.3 (and Ubuntu's 3.2 kernel). Jacks are probed and detected using the snd_hctl_* commands, which means we need to listen to them using fdlists. As this detection needs to be active even if there is currently no sink for the jack, so this polling is done on the card level. Also add configuration support in paths, like this: [Jack Headphone] required-any = any ...where 'Jack Headphone' should match 'Headphone Jack' as given by ALSA (as seen in e g 'amixer controls'). "Required", "required-any" and "required-absent" is supported. Using required-any, one can have several ports even though there is no other indication in the mixer that this path exists. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-09build-sys: Remove the public API stuff from libpulsecommon.Tanu Kaskinen1-8/+0
That stuff is already in libpulse, so those files got compiled twice.
2012-03-09proplist: Match pa_proplist_copy argument name between header and ↵Tanu Kaskinen1-6/+6
implementation.
2012-03-09proplist: Constify the pa_proplist_copy and _update input pointers.Tanu Kaskinen2-4/+6
2012-03-09Add module-virtual-surround-sink.Niels Ole Salscheider2-0/+857
It provides a virtual surround sound effect. v2: Normalize hrir to avoid clipping, some cleanups v3: use fabs, not abs v4: implement changes proposed by Tanu Kaskinen v5: likewise v6: use channel map from hrir file v7: remove hrir_ss and hrir_map form userdata v8: update naming of sink
2012-03-07flist: Make name non-const to avoid casting with pa_xfree().Tanu Kaskinen1-2/+2
2012-03-07flist: Avoid the ABA problemDavid Henningsson1-21/+49
Our flist implementation suffers from the ABA problem (see http://en.wikipedia.org/wiki/ABA_problem), causing PulseAudio to crash very rarely, usually inside memblock operations. By turning stored pointers into stored table indices, we have some extra bits that we can use to store tag bits, which is a known workaround for the ABA problem. Buglink: https://bugs.launchpad.net/bugs/924416 Signed-off-by: David Henningsson <david.henningsson@canonical.com>
2012-03-06dbus: Use correct free function.Tanu Kaskinen1-1/+1
2012-03-05format: Allow format->sample spec conversion for compressed formatsArun Raghavan6-43/+38
This allows clients to get a "fake" sample space for compressed formats that we can support. This should make size/time conversion for things like calculating buffer attributes simpler.
2012-03-05format: Add API to query a property's typeArun Raghavan4-0/+104
Since a given property can be single-valued, an array or (in the case of ints) a range, clients need an API to figure out what type of value a property holds. This adds such an API. The actual property type enumeration is kept in the PA_PROP_* namespace and not the PA_FORMAT_INFO* namespace so that it can later be reused for properties generically if required.
2012-03-05format: Trivial reorganisationArun Raghavan1-20/+20
Moves all the property setters together
2012-03-05format: Update map-fileArun Raghavan1-0/+6
Adding property getters manually for now.
2012-03-05format: Add more property gettersArun Raghavan3-1/+192
This adds integer range/array and string array property getters to the pa_format_info API. Corresponding tests added as well to ensure the code is valgrind-clean. The corresponding functions are added to map-file manually for now.
2012-03-05format: Expose pa_format_info<->pa_sample_spec conversion functionsArun Raghavan5-14/+19
These utility functions could be handy to clients. pa_format_info_to_sample_spec_fake() isn't made public, but the return value is changed to keep in sync with pa_format_info_to_sample_spec().
2012-03-05format: Don't assert on errors in gettersArun Raghavan1-3/+10
This makes handling errors in getter functions more graceful, rather than triggering warnings/asserts. Better to be less trigger-happy about these things since this is now public-facing API.
2012-03-05format: Export pa_format_info int and string property gettersArun Raghavan3-17/+21
We currently only have setters and clients need to be able to query these values as well. The return types for these functions needed to be changed to int since this is public API now.
2012-02-24bluetooth: Run update-sbcColin Guthrie3-11/+11
This is primarily for the bluez commit 03bb9d3 by Siamashka Siamashka which fixes a compilation error with gcc 4.7
2012-02-21alsa: add DTS profileAlexander E. Patrakov2-0/+8
Hi. Could you please apply the attached trivial patch so that I could drop the corresponding instructions from dcaenc's README file in the future? It adds a profile for on-the-fly DTS encoding, similar to the existing AC3 profile. -- Alexander E. Patrakov >From 22310a1c28385acc7ce883e020b9eb2e5b0813b7 Mon Sep 17 00:00:00 2001 From: "Alexander E. Patrakov" <patrakov@gmail.com> Date: Sun, 12 Feb 2012 17:19:48 +0600 Subject: [PATCH] alsa: add DTS profile This requires dcaenc from http://aepatrakov.narod.ru/dcaenc/
2012-02-21bluetooth: Fix calling many times Audio.GetProperties for the same deviceLuiz Augusto von Dentz1-5/+12
Audio.GetProperties is been called for as many times as there are UUIDs instead of just once when the UUIDs are discovered.
2012-02-20build: Fix out-of-tree buildArun Raghavan3-7/+7
Previous commits broke the out-of-tree build on padsp.
2012-02-20.gitignore: Add padsp to gitignoreSjoerd Simons1-0/+1