Commit graph

9094 commits

Author SHA1 Message Date
Joseph Herlant
32859fbe85
Fix typo: managable -> manageable 2018-09-17 10:04:30 -07:00
Joseph Herlant
223b409c9c
Fix typo: substract -> subtract 2018-09-17 10:03:55 -07:00
Joseph Herlant
61d35fd22f
Fix typo: transmited -> transmitted 2018-09-17 10:02:56 -07:00
Joseph Herlant
93c07da3eb
Fix typo: definately -> definitely 2018-09-17 10:01:46 -07:00
Joseph Herlant
c1acdfee33
Fix typo: prefered -> preferred 2018-09-17 10:00:57 -07:00
Joseph Herlant
87a41d7bbb
Fix typo: comming -> coming 2018-09-17 10:00:14 -07:00
Joseph Herlant
7aa2d9e54b
Fix typo: recieved -> received 2018-09-17 09:59:38 -07:00
Joseph Herlant
502293ffa5
Fix typo: distuingish -> distinguish 2018-09-17 09:59:03 -07:00
Joseph Herlant
01d50b8c88
Fix typo: properies -> properties 2018-09-17 09:58:25 -07:00
Joseph Herlant
d6e7aa2bdc
Fix typo: explicitely -> explicitly 2018-09-17 09:57:20 -07:00
Joseph Herlant
3fb7e9bcb1
Fix typo: differnt -> different 2018-09-17 09:56:41 -07:00
Joseph Herlant
83c3384d3a
Fix typo: Extention -> Extension 2018-09-17 09:55:37 -07:00
Joseph Herlant
517c727a98
Fix typo: Doulbe -> Double 2018-09-17 09:54:36 -07:00
Joseph Herlant
61727fd26f
Fix typo: dependancy -> dependency 2018-09-17 09:53:37 -07:00
Joseph Herlant
08d0dc6930
Fix typo: occured -> occurred 2018-09-17 09:52:36 -07:00
Joseph Herlant
d70613151c
Fix typo: occurrencies -> occurrences 2018-09-17 09:50:43 -07:00
Joseph Herlant
233713222c
Fix typo: Retreive -> Retrieve 2018-09-17 09:49:55 -07:00
Joseph Herlant
b5fd854e52
Fix typo: controling -> controlling 2018-09-17 09:49:13 -07:00
Arun Raghavan
3415375849 gitlab: Add meson build to CI 2018-09-17 05:05:57 +00:00
Arnaud Rebillout
012dfc4631 build-sys: meson: Generate version.h
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
2018-09-15 22:11:35 +07:00
Rafael Fontenelle
3e36c28e23 Update Brazilian Portuguese translation 2018-09-01 14:23:43 +00:00
Arun Raghavan
abfd5242e8 gitlab: Add support for GitLab CI
This adds a Dockerfile to generate a Docker image with the required
dependencies on top of the standard Ubuntu 18.04 image. The Gitlab CI
then runs the PulseAudio build within this image.
2018-08-27 16:05:04 +05:30
Arun Raghavan
f84b8516df bluetooth: Re-add rtp.h to Makefile.am
This was never explicitly added as a dependency of module-bluez5-device,
but that was hidden by the fact that it was specified for bluez4.
2018-08-22 19:53:25 +05:30
Will Stott
7f1fb63dda alsa: Support the older model of NI's Traktor Audio 2 DJ 2018-08-13 14:24:02 +03:00
Yclept Nemo
b9d13aa91e object: Fix pa_object_new macro (missing close paren) 2018-08-12 15:16:13 +03:00
Stefan Huber
4f831e0d7a pacat: Fix code style 2018-08-11 13:36:51 +03:00
Takashi Sakamoto
37358e42c4 alsa: Suppress udev detection of sound card for some units on IEEE 1394 bus
A bug was filed to bugzilla.kernel.org for a quirk of some models which
ALSA BeBoB driver supports.

Bug 199365 - repeating bus resets on Firewire bus with Focusrite Saffaire 26/io
https://bugzilla.kernel.org/show_bug.cgi?id=199365

Some models (two models as long as I know) have a quirk to disappear from
IEEE 1394 bus at disconnections of packet streaming. Corresponding
character devices are removed according to 'remove' callbacks of relevant
drivers from Linux dd core. Then the models re-appear on the bus by
generating bus resets and corresponding character devices are added
according to 'probe' callbacks from Linux dd core.

In a view of ALSA applications, this looks that plug-out/plug-in occur in
a sequential order for the models when they stop playback/capture substream.
For most applications, this doesn't cause large issue. However, this quirk
is not good for combination of below modules in PulseAudio. PulseAudio
enters endless loop to detect the models and start/stop PCM substream.
 - module-udev-detect
 - module-alsa-card
 - module-suspend-on-idle

In detail, please read my comment no.6:
https://bugzilla.kernel.org/show_bug.cgi?id=199365#c6

This commit suppressed udev detection of sound card for the issued models.
For the models, 'PULSE_IGNORE' flag is added to udev rules, then
module-udev-detect don't handle the models and PulseAudio never uses the
models automatically. In a scenario for users to load
module-alsa-card/module-alsa-sink/module-alsa-source by hand, although
these modules can still stop PCM substreams with module-suspend-on-idle,
PulseAudio never enters the endless loop because udev detection doesn't
work for the models. In this case, as long as special files for ALSA
character devices for these models are the same, corresponding sinks and
sources are available even if the voluntary plug-out/plug-in occur.

(Focusrite Saffire Pro 10 i/o with systemd 237)
$ udevadm info -q all -p /devices/pci0000:00/0000:00:07.0/fw1/fw1.0/sound/card1
P: /devices/pci0000:00/0000:00:07.0/fw1/fw1.0/sound/card1
E: DEVPATH=/devices/pci0000:00/0000:00:07.0/fw1/fw1.0/sound/card1
E: ID_BUS=firewire
E: ID_FOR_SEAT=sound-pci-0000_00_07_0
E: ID_ID=firewire-0x00130e01000606e0
E: ID_MODEL=Pro10IO
E: ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express]
E: ID_MODEL_ID=0x000006
E: ID_PATH=pci-0000:00:07.0
E: ID_PATH_TAG=pci-0000_00_07_0
E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
E: ID_PCI_INTERFACE_FROM_DATABASE=OHCI
E: ID_PCI_SUBCLASS_FROM_DATABASE=FireWire (IEEE 1394)
E: ID_SERIAL=0x00130e01000606e0
E: ID_SERIAL_SHORT=0x00130e01000606e0
E: ID_VENDOR=Focusrite
E: ID_VENDOR_FROM_DATABASE=Texas Instruments
E: ID_VENDOR_ID=0x00130e
E: SOUND_INITIALIZED=1
E: SUBSYSTEM=sound
E: SYSTEMD_WANTS=sound.target
E: TAGS=:systemd:seat:
E: USEC_INITIALIZED=957089064

(Focusrite Saffire Pro 26 i/o with systemd 237)
$ udevadm info -q all -p /devices/pci0000:00/0000:00:07.0/fw1/fw1.0/sound/card1
P: /devices/pci0000:00/0000:00:07.0/fw1/fw1.0/sound/card1
E: DEVPATH=/devices/pci0000:00/0000:00:07.0/fw1/fw1.0/sound/card1
E: ID_BUS=firewire
E: ID_FOR_SEAT=sound-pci-0000_00_07_0
E: ID_ID=firewire-0x00130e0100030cdd
E: ID_MODEL=Pro26IO
E: ID_MODEL_FROM_DATABASE=XIO2213A/B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express]
E: ID_MODEL_ID=0x000003
E: ID_PATH=pci-0000:00:07.0
E: ID_PATH_TAG=pci-0000_00_07_0
E: ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
E: ID_PCI_INTERFACE_FROM_DATABASE=OHCI
E: ID_PCI_SUBCLASS_FROM_DATABASE=FireWire (IEEE 1394)
E: ID_SERIAL=0x00130e0100030cdd
E: ID_SERIAL_SHORT=0x00130e0100030cdd
E: ID_VENDOR=Focusrite
E: ID_VENDOR_FROM_DATABASE=Texas Instruments
E: ID_VENDOR_ID=0x00130e
E: SOUND_INITIALIZED=1
E: SUBSYSTEM=sound
E: SYSTEMD_WANTS=sound.target
E: TAGS=:systemd:seat:
E: USEC_INITIALIZED=1071026684

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
2018-08-11 13:10:03 +03:00
Tanu Kaskinen
a8ebd9d6ee i18n: update translation bug reporting links
I looked for outdated links related to the GitLab migration. These are
the only ones I found. There were also some links to various bug
reports in the old Bugzilla, but those don't really need updating, since
Bugzilla should stay readable for a long time.
2018-08-07 16:27:19 +03:00
Arun Raghavan
3e85da18d4 doc: Update README to point to GitLab 2018-07-30 17:44:20 +05:30
João Paulo Rechi Vita
32bd68bc31 bluetooth: Remove leftover references to the BlueZ 4/5 split
There is no need to mention a module argument is valid only when using
BlueZ 5 now that we don't support BlueZ 4 anymore.
2018-07-27 11:28:11 +03:00
João Paulo Rechi Vita
4863d190e2 bluetooth: Add missing argument to module's usage
module-bluetooth-discover usage was missing the autodetect_mtu argument.
2018-07-27 11:27:40 +03:00
Arun Raghavan
30f49dae18 gitignore: Ignore build* directories
We already had build-aux, might as well generalise for build directories
we create for autotools out-of-tree builds and anything meson-based.
2018-07-23 19:40:51 +05:30
Arun Raghavan
55fa5acd68 build-sys: Update meson version dependency
We're using SIMD detection logic from 0.42.
2018-07-23 19:40:46 +05:30
Arun Raghavan
dc966c6e46 build-sys: Add some missing header/function checks to meson build 2018-07-23 19:38:37 +05:30
Arun Raghavan
f38485dc1a build-sys: Drop ancient check for dbus_watch_get_unix_fd()
This function was added shortly after dbus 1.1.0, and our minimum
required dbus version is greater than 1.4.
2018-07-23 19:38:37 +05:30
Arun Raghavan
6d7a266e0e format: Expose pa_format_info convenience getters in API
We move over helper functions to get rate, channels, channel map and
sample format (if PCM) in the public API, so users of the extended API
are more easily able to pull out these values from pa_format_info.
2018-07-23 19:29:19 +05:30
João Paulo Rechi Vita
1f45082c68 card-restore: Don't restore profile on Bluetooth cards by default
We can provide a better overall user experience with Bluetooth cards by
always choosing the higher audio quality profile (A2DP) by default and
updating the profile selection dynamically according to which streams
are active at a certain moment. The default initial selection has been
addressed by "85daab272 bluetooth: set better priorities for profiles"
and the dynamic profile selection is covered by module-bluetooth-policy.

In addition, module-card-restore's database entries for Bluetooth devices
are retained after a device is removed from the system, leading to the
previously selected profile being restored after a new pairing with the
same device, with no way for the user to erase this memory and reset the
default profile except manually fiddling with module-card-restore's
database.

This commit adds a module argument to have module-card-restore ignore
Bluetooth profiles and this behavior is set as default.
2018-07-22 17:39:17 +03:00
Tanu Kaskinen
9562e898dd update NEWS 2018-07-16 19:28:20 +03:00
Lyndon Brown
2d9790f566 operation: avoid state change from final state
The internal operation_set_state function already returns early if the
new state is the same as the existing state. The attached patch extends
this to return early if already in a finalised (done/cancelled) state,
i.e. blocks attempts to re-finalise into a different state.

This helps avoid unlinking more than once (or crashing on ref count
assertion).

I was not certain whether an assertion would be a better alternative -
with such a crash helping highlight usage problems...

The situation that lead to this was the thought of someone stupidly
trying to pa_operation_cancel() a callback within the callback
execution itself, while designing a solution for a memory leak related
to cancellation within my Rust binding. While no-one should do such a
thing, if they did, they'd either trip up a ref count assertion, or the
operation would be unlinked twice, which would be bad. It's a simple
thing to catch and mitigate, and could prove to be a useful
bulletproofing measure for this function in general.
2018-07-16 12:47:00 +03:00
Tanu Kaskinen
613c2994af update NEWS 2018-07-14 20:06:19 +03:00
Mr. M
8af711d3bd i18n: update the Lithuanian translation 2018-07-14 18:59:34 +03:00
Tanu Kaskinen
916be59151 pipe-sink, pipe-source: fix file permissions
We recently changed the umask of the daemon from 022 to 077, which broke
module-pipe-sink in the system mode, because nobody was allowed to read
from the pipe.

module-pipe-source in the system mode was probably always broken,
because the old umask of 022 should prevent anyone from writing to the
pipe.

This patch uses chmod() after the file creation to set the permissions
to 0666, which is what the fkfifo() call tried to set.

Bug link: https://bugs.freedesktop.org/show_bug.cgi?id=107070
2018-07-10 14:44:46 +03:00
Tanu Kaskinen
1b377d4428 ladspa-sink: fix search path
Having a single level macro for stringizing LADSPA_PATH doesn't work,
because the '#' preprocessor operator doesn't expand any macros in its
parameter. As a result, we used the string "LADSPA_PATH" as the search
path, and obviously no plugins were ever found.

This adds a two-level macro in macro.h and uses that to expand and
stringize LADSPA_PATH.

Bug link: https://bugs.freedesktop.org/show_bug.cgi?id=107078
2018-07-09 15:16:56 +03:00
Sangchul Lee
c4efbc81b0 alsa-sink/source: Rename a variable for supported sample rates in userdata
It is changed from 'rates' to 'supported_rates'.

Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
2018-07-05 14:51:46 +03:00
Ing. Jaroslav Safka
bee9b9481a rtp-send: add configurable RTP stream name
Add configuration option 'stream_name' for stream/session name so user
will see it on receiver side as RTP Strean ($stream_name)

ex: load-module module-rtp-send source=rtp.monitor stream_name=MyServerMedia
2018-07-05 14:47:17 +03:00
Sangchul Lee
9d7055004e alsa-util/sink/source: Add infrastructure for supported sample formats
There has been a function to get supported sample rates from alsa and
an array for it in userdata of each module-alsa-sink/source. Similarly,
this patch adds a function to get supported sample formats(bit depth)
from alsa and an array for it to each userdata of the modules.

Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
2018-07-04 12:51:23 +03:00
Sangchul Lee
7c066fd886 i18n: Update the Korean translation
Translate argument of module-filter-apply and fix words which are
not in common usage.

Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
2018-07-04 12:19:44 +03:00
Tanu Kaskinen
6665b466d2 sink, source: remove the state getters
pa_sink_get_state() and pa_source_get_state() just return the state
variable. We can as well access the state variable directly.

There are no behaviour changes, except that module-virtual-source
accessed the main thread's sink state variable from its push() callback.
I fixed the module so that it uses the thread_info.state variable
instead. Also, the compiler started to complain about comparing a sink
state variable to a source state enum value in protocol-esound.c. The
underlying bug was that a source pointer was assigned to a variable
whose type was a sink pointer (somehow using the pa_source_get_state()
macro confused the compiler enough so that it didn't complain before).
I fixed the variable type.
2018-07-02 21:23:13 +03:00
Tanu Kaskinen
b4a36453da sink-input, source-output: remove the state getters
pa_sink_input_get_state() and pa_source_output_get_state() just return
the state variable. We can as well access the state variable directly.

There are no behaviour changes, except that some filter sources accessed
the main thread's state variable from their push() callbacks. I fixed
them so that they use the thread_info.state variable instead.
2018-07-02 18:54:03 +03:00
Tanu Kaskinen
64ba239f65 sink-input: remove the DRAINED state
The only thing that the drained state was being used for was "pacmd
list-sink-inputs". In all other cases the drained and running states
were treated as equivalent. IMHO, this usage doesn't justify the
complexity that the additional state brings.

This patch was inspired by a bug report[1] that pointed out an error in
an if condition in pa_sink_input_set_state_within_thread(). The buggy
code is now removed altogether.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=106982
2018-07-02 18:16:10 +03:00