Commit graph

6512 commits

Author SHA1 Message Date
Wim Taymans
b6d803daa4 alsa-monitor: Improve device reserve
Handle the error from rd_device_reserve and when something is wrong,
disable device reservation and pretend we got the device.

This should work around the problem of the dbus connection being
closed and the device reservation callback never being called.

See #1099
2021-05-17 11:13:24 +02:00
Wim Taymans
88517fe24c reserve: return better error from rd_device_acquire
When we have the device, return 0
When the device is busy, return -EBUSY
When we can't send the message or something is wrong, return -EIO
2021-05-17 11:11:41 +02:00
Wim Taymans
212c2697e1 pw-uninstalled: print version to silence shellcheck 2021-05-17 10:21:47 +02:00
Wim Taymans
40fbabd9ed dbus: listen for disconnect signal
And log a warning when our connection is lost.

See #1099
2021-05-17 10:20:28 +02:00
Wim Taymans
3d2945c641 uninstalled: support -v option
to make 'make shell' work again
2021-05-17 09:42:31 +02:00
Wim Taymans
34a2fb4b03 filter-chain: fix effect name 2021-05-16 20:08:54 +02:00
Wim Taymans
6ed32a74eb Clean up the filtet chains a bit
Add matrix-spatialiser to build, rename to remove _
Give effect a better name.
2021-05-16 19:50:14 +02:00
Yuri Chornoivan
3b2d8fc0bb po: Update Ukrainian translation 2021-05-16 19:23:15 +02:00
JP Guillemin
37b9cd191b Matrix Spatialiser sink 2021-05-16 17:16:53 +00:00
Piotr Drąg
741ba47305 Update Polish translation 2021-05-16 13:42:43 +00:00
Barnabás Pőcze
c73ef2b9a1 spa: ffmpeg: use av_codec_iterate() when available
av_codec_next() was deprecated on 2018-02-06,
in lavc 58.10.100 (36c85d6e77). It was then later
removed on 2021-04-27 (4b2be3f8d). `av_codec_iterate()`
was added in lavc 58.10.100, so use that when available.

Fixes #1138.
2021-05-16 13:10:59 +00:00
Barnabás Pőcze
3baf3fcfec spa: ffmpeg: remove libavformat dependency
`av_register_all()` is the only thing used from libavformat,
but that doesn't seem to be needed for codec enumeration,
so remove it, and call `avcodec_register_all()` instead
when libavcodec < 58.10.100.
2021-05-16 13:10:59 +00:00
Barnabás Pőcze
3f567eeb56 spa: ffmpeg: fix FFmpeg name
ffmpeg.c had 'Spa V4l2 Support' in it, fix that to say
FFmpeg. Furthermore, change 'FFMpeg' to 'FFmpeg' in
ffmpeg-{enc,dec}.c as that is how it's referred to
in official texts.
2021-05-16 13:10:59 +00:00
Barnabás Pőcze
5a14e3970a spa: ffmpeg: remove hard-coded values
Use `sizeof` to query the size of the array instead of
hard coding it.
2021-05-16 13:10:59 +00:00
Piotr Drąg
dca37d4e08 Update POTFILES.in 2021-05-16 13:09:31 +00:00
Dark
38a40949ec
adapter: set prefix for all monitor ports to "monitor" 2021-05-15 02:25:25 -04:00
Hugo Carvalho
7065a450f8 Replace pt.po 2021-05-14 15:15:48 +02:00
Wim Taymans
31d79f4c9b Clarify license
fixes #1174
2021-05-14 12:09:33 +02:00
Wim Taymans
170294d7ac pipewire-pulse: add zeroconf module 2021-05-14 11:39:44 +02:00
Wim Taymans
5c152bab23 zeroconf: improve stream properties 2021-05-14 11:19:02 +02:00
Wim Taymans
a428228ebf pulse-tunnel: handle holes in record stream
Holes in the stream return a NULL ptr. Write silence to the
ringbuffer in that case.
2021-05-14 09:51:51 +02:00
Wim Taymans
9b48c6f3ea filter-chain: make sure res is always set 2021-05-14 09:48:13 +02:00
Wim Taymans
0ff1d1e4cb zeroconf-discover: use pw_properties_serialize_dict 2021-05-14 09:09:48 +02:00
Wim Taymans
6744934734 zeroconf: add avahi zerconf discover module
Discovers remote sinks and sources and load the tunnel module to
make a local sink and source for them.
2021-05-14 09:09:48 +02:00
Wim Taymans
59842b3bd6 make and use pw_properties_serialize_dict()
Remove the multiple other variants and make a better one. Flags are for
future options for escaping and formatting.
2021-05-14 09:08:46 +02:00
Wim Taymans
577ad0c73a conf: improve config error handling
Make the config parser return the amount of parsed items.
Fail to create a context when parsing the config fails.
Log the number of items parsed from the config.
2021-05-13 15:09:57 +02:00
Wim Taymans
09cba1e4de module-pulse-tunnel: use SPA_UNLIKELY instead of PA_UNLIKELY 2021-05-13 14:53:39 +02:00
Mikhail Novosyolov
e1baf62cc7 Update of Russian translation by Victorr2007@ 2021-05-13 07:37:29 +00:00
Wim Taymans
a6c0e35b13 filter-chain: reset graph in suspend
To make sure we don't end up with samples from before the suspend.
2021-05-12 20:48:00 +02:00
Wim Taymans
32688d7fc6 filter-chain: add dolby surround sink
Encodes a 6 channel surround sound stream into dolby surround.
2021-05-12 20:22:40 +02:00
Wim Taymans
e94a977dcd filter-chain: Support null inputs/outputs
Handle null inputs by ignoring the port
Handle null output by clearing the buffer.
Make sure we only have one input and output linked.
2021-05-12 20:17:15 +02:00
Wim Taymans
2017de6da8 filter-chain: add copy function 2021-05-12 20:16:53 +02:00
Wim Taymans
fb6db4a1f9 pulse-server: clean up default format a little 2021-05-12 18:06:48 +02:00
Wim Taymans
ab9023f752 pulse-server: improve module argument parsing
ticks also delimit strings.
Unescape values.

Fixes #1173
2021-05-12 17:44:57 +02:00
Wim Taymans
3ae2b9e189 pulse-server: implement module-tunnel-sink/source
See #865
2021-05-12 17:00:45 +02:00
Wim Taymans
938e193987 pulse-tunnel: support node.target
Pass the node.target as the target on the remote.
Make a nicer stream name on the remote.
2021-05-12 16:49:19 +02:00
Wim Taymans
44f326013b module-pulse-tunner: add module to tunnel to PulseAudio
Add a module that can make a source or sink that tunnels audio
to or from a (remote) PulseAudio server.
2021-05-12 15:56:59 +02:00
Evgeniy Khramtsov
685ff1dc25 utils: provide strdupa() if not in libc
FreeBSD does not have strdupa(), provide it locally then.

Macro by: Gleb Popov <arrowd@FreeBSD.org>
2021-05-11 21:06:28 +03:00
Wim Taymans
c89af625db pipewire.conf: add dummy driver to pipewire.dummy group
So that we can have nodes join to the dummy driver group to let
them be scheduled by it.
2021-05-11 15:47:38 +02:00
Wim Taymans
92196787d6 stream: only trigger in queue when capturing
When we are a driver source, we can start processing of the
graph when we queue a buffer.

Don't do this when we are a driver sink.
2021-05-11 15:47:38 +02:00
Wim Taymans
80cf968ae7 stream: trigger the right process function
Depending on the direction of the stream.
2021-05-11 15:47:38 +02:00
Daniel Stone
d08b6fac6b openaptx: Blacklist >= 0.2.1 due to license change
openaptx has recently changed its license to explicitly exclude
'Freedesktop projects' from using it, which would include PipeWire, as
well as shifting to base terms of GPLv3:
    811bc18586

This unilateral license change is legally dubious in many ways.

The original work came from ffmpeg under the LGPL v2.1, to which third
parties may not add additional restrictions (per sections 2 and 7 of the
LGPL v2.1), so LGPLv2.1 + may-not-use restrictions are not permissible
without the explicit consent of the original copyright holder.

The upgrade to LGPL v3.0 without explicit consent from the original
copyright holder is in itself permissible through the upgrade terms of
the LGPL, however the additional restrictions imposed again conflict
with sections 7 and 10 of the GPLv3 (as the base of the LGPLv3, with
those sections not being invalidated by the additional LGPLv3 text).

Though it does not impact the legal validity of the redeclaration of
licensing, the claims that freedesktop.org has violated the terms of the
openaptx license in the past are false; the work was contributed to the
PulseAudio project with an explicit open license, with the original
contributor later attempting to revoke permission for its use, despite
the explicit terms of the license giving no ability to do so as they
lack a change-of-heart provision.

The claims that Collabora violated the license are even more baseless;
they are based on an assertion that when I (acting on behalf of
freedesktop.org rather than Collabora, in my own unpaid time) banned
users from freedesktop.org's GitLab instance due to sustained violations
of the Code of Conduct users agree to when creating an account on that
platform, this somehow constituted a violation of the license. Even if
Collabora were somehow involved in this - which they were not at all -
there is no requirement under open licenses that users be given
unlimited access under all terms to any platform on the internet. Such
terms would mean that open development could only be conducted on
completely unmoderated platforms, which does not stand up to any
scrutiny.

Regardless of the declared license having no legal validity, the LGPL's
explicit provision in both v2.1 and v3.0 for such additional
restrictions to be stripped, and the low likelihood of it ever being
used together with PipeWire as its licensing terms would not be
acceptable to any distribution, enforcing a version check seems like the
safest way to ensure complete legal clarity, not put users or
downstreams in any jeopardy, and comply with the author's stated wishes
for v0.2.1 and above to not be used by PipeWire.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2021-05-11 12:48:24 +00:00
Huang-Huang Bao
03cde9751b
bluez5: guard against device profile
Invalid device profile should not be set.
2021-05-11 19:22:42 +08:00
Sanchayan Maity
d8f98df6ed pulse-server: Implement module-pipe-sink 2021-05-11 13:31:41 +05:30
Wim Taymans
c50c8d2be9 modules: fix some leaks in error paths
As found by coverity
2021-05-11 09:55:14 +02:00
Peter Hutterer
5bed3f1ff3 ci: hook up shellcheck 2021-05-11 07:01:21 +00:00
Peter Hutterer
20f8838f7b pw-jack: correct nested quotes
Found by ShellCheck, reformatted output:

In pipewire-jack/src/pw-jack.in line 58:
echo "	-s                  samplerate (default "$SAMPLERATE")"
	 SC2027: The surrounding quotes actually unquote this. Remove or escape them.
	 SC2086: Double quote to prevent globbing and word splitting.
2021-05-11 07:01:21 +00:00
Peter Hutterer
056d06da88 pw-jack: remove unecessary $ from arithmetic variables
Found by ShellCheck: SC2004: $/${} is unnecessary on arithmetic variables.
2021-05-11 07:01:21 +00:00
Peter Hutterer
c3b87ea4b2 pw-uninstalled: drop handling of VERSION
This functionality was removed in 08543384f1
2021-05-11 07:01:21 +00:00
Peter Hutterer
7594767cf7 ci: re-order dependencies in alphabetical order 2021-05-11 07:01:21 +00:00