Wim Taymans
417a5779e7
filter-chain: use a port structure to hold port info
2021-05-10 11:01:13 +02:00
Wim Taymans
ca9225b5aa
filter-chain: use the right description when linking
2021-05-10 11:01:13 +02:00
Wim Taymans
641e685d5b
filter-chain: add more debug
2021-05-10 11:01:13 +02:00
Wim Taymans
8ec0f1eb4b
filter-chain: parse and handle links
2021-05-10 11:01:13 +02:00
Wim Taymans
4d680a816f
filter-chain: use dependencies to build scheduling plan
2021-05-10 11:01:13 +02:00
Wim Taymans
2714ba47ac
filter-chain: control is just an object
2021-05-10 11:01:13 +02:00
Wim Taymans
1088f875d4
filter-chain: add some more debug
2021-05-10 11:01:13 +02:00
Wim Taymans
5df221cf9a
filter-chain: implement inputs and outputs
...
When inputs/outputs are specified, find the node:port and link them.
Fall back to the first/last node for input/output if no node is given.
Fall back to all input/output ports when no ports are given.
2021-05-10 11:01:12 +02:00
Wim Taymans
aa0fdaf454
module-filter-chain: rename
...
This does not have to be ladspa specific so rename it.
2021-05-10 11:01:12 +02:00
Wim Taymans
eaeb9e9b5d
module-ladspa-filter: expose controls
2021-05-10 11:01:12 +02:00
Wim Taymans
3f5ebdedca
module-ladspa-filter: change to graph syntax
...
Expand the syntax to allow a graph of nodes and links later.
2021-05-10 11:01:12 +02:00
Wim Taymans
22373de5b4
module-ladspa-filter: use custom keys and propinfo
...
Use custom keys and propinfo to map the name to the key. This allows
us to specify ranges and other context for the properties.
2021-05-10 11:01:12 +02:00
Wim Taymans
97002a4451
module-ladspa-filter: update props when they change
2021-05-10 11:01:12 +02:00
Wim Taymans
69d36675d1
modules: ladspa-filter improvements
...
Parse initial control values
Reset to default when value is null
Implement port selection by name.
2021-05-10 11:01:12 +02:00
Wim Taymans
a36e5b2c0d
modules: more ladspa improvements
...
Run multiple instances to fill requested channels.
Improve media name.
2021-05-10 11:01:12 +02:00
Wim Taymans
3272344df4
modules: parse and set control values
2021-05-10 11:01:12 +02:00
Wim Taymans
0a966d4637
modules: improvements
2021-05-10 11:01:12 +02:00
Wim Taymans
356c7ade1c
modules: add begining of ladspa filter
...
Can be used to build chains or sink/source.
2021-05-10 11:01:12 +02:00
Wim Taymans
d226a28b30
acp: reset soft_volume
...
Reset the software volume when initializing the device and when the
hardware volume is updated.
The software volume was set to 0 by default and if the session manager
did not change the volume enough to cause a software volume change,
it would remain 0 and there would be silence.
Also improve the debug a little.
See #1160 #1167 #1164 #1049 #1117
2021-05-10 10:50:42 +02:00
Tom A. Wagner
eba38a33af
readme: Link to Helvum for GUI tools
2021-05-10 06:51:02 +00:00
albanobattistella
3539b5ba12
Update it.po
2021-05-09 11:53:48 +00:00
Barnabás Pőcze
68f75bbd57
tools/pw-dump: fix parentheses around isatty()
call
...
Previously,
isatty(fileno(data.out) && getenv("NO_COLOR") == NULL))
would call `isatty()` with
fileno(data.out) && getenv("NO_COLOR") == NULL
as its argument. This meant that, for example,
NO_COLOR=1 pw-dump
would still produce colored output when run with
a TTY as its standard input.
Fix that by moving the parenthesis.
Fixes: af63d08453
("tools/pw-dump: only print colors if we're connected to a terminal")
2021-05-08 03:57:34 +02:00
Wim Taymans
02decd9fba
alsa: pause/resume when entering/exiting freewheel
...
When we start freewheeling, pause the device and resume when we
finish freewheel.
In freewheel mode, just discard samples in the sink and produce
silence in the source.
2021-05-07 11:51:22 +02:00
Wim Taymans
a80ec36ad5
node-driver: run as fast as possible in freewheel mode
2021-05-07 11:50:55 +02:00
Wim Taymans
7c91be47fb
module-profiler: stop when freewheeling
2021-05-07 10:12:16 +02:00
Wim Taymans
9ce87aacd2
module-profiler: avoid large stack alloc
...
If the profiler manages to fill the complete buffer, we would have 8MB
of data that we need to allocate on the stack. Don't do that and instead
use a preallocated buffer large enough to copy things into.
2021-05-07 09:58:10 +02:00
Wim Taymans
830f52cbb1
jack: join the freewheel group when freewheeling
2021-05-07 09:03:34 +02:00
Wim Taymans
888612dc0f
conf: add freewheel driver
...
Add freewheel driver and enable freewheel mode on it.
2021-05-07 09:03:34 +02:00
Wim Taymans
5c41131d6d
node-driver: support node.freewheel property
...
To activate freewheeling when initializing
2021-05-07 09:03:34 +02:00
Wim Taymans
efc497a38a
spa: make a new FREEWHEEL clock flag
...
When freewheeling, the clock is going faster than real time.
When freewheeling, skip samples in alsa sink/source.
2021-05-07 09:03:34 +02:00
Wim Taymans
fab199d5b9
impl-node: make the group a string
...
We are currently using strings for the node group so actually store
this as a string or else all strings will end up in group 0.
2021-05-07 09:03:33 +02:00
Peter Hutterer
cc4324cd30
spa/logger: only log in colors if we're logging to a tty
2021-05-07 06:57:31 +00:00
Peter Hutterer
af63d08453
tools/pw-dump: only print colors if we're connected to a terminal
...
We don't want ansi escape codes in the output of `pw-dump > log`. And where
colors are needed after the fact, it's easy to just run `jq . $file`.
2021-05-07 06:57:31 +00:00
Davide Beatrici
65e14548a3
stream: include <pipewire/port.h> instead of <pipewire/pipewire.h>
...
<pipewire/pipewire.h> includes many headers, but we only need <pipewire/port.h>.
2021-05-07 06:57:06 +00:00
Peter Hutterer
4456fd3e18
doc: fix a few doxygen warnings about invalid arguments
2021-05-07 10:27:26 +10:00
Peter Hutterer
f0d3f1f9d2
doc: remove trailing whitespace
...
My vim/git setup wants to fix those on every commit which gets a bit annoying,
let's just remove them: sed -i 's/ *$//g' $(git ls-files doc)
2021-05-07 10:27:26 +10:00
Peter Hutterer
ac05f6bb03
doc: add the various markdown prose docs to the doxygen output
...
Note that the order of the includes matters - that's how doxygen will sort
them. There is no specific structure other than the include order - one reason
why the headers are being changed. Without polluting the markdown files with
doxygen commands we cannot use \subpage, so all files convert to a regular
\page and are listed as flat hierarchy in the sidebar (and in Related Pages).
Changing the headers at least provides some visual grouping with comon
prefixes.
2021-05-07 10:27:26 +10:00
Peter Hutterer
d10381dfc3
dox: keep the doxygen input files as array in meson
...
Keep all files as strings in an array so we can add them to the custom command
input list - this way meson will correctly rebuild documentation on changes.
2021-05-07 10:27:26 +10:00
Peter Hutterer
1fd56a6d26
doc: reduce the Doxyfile to only non-default options
...
This provides a much easier overview of what the actual changes are to
doxygen's default values.
2021-05-07 10:27:26 +10:00
Peter Hutterer
68080ec531
doc: fix a typo
2021-05-07 10:27:26 +10:00
Peter Hutterer
3234037a71
doc/spa: add more markdown tags to render better
2021-05-07 10:27:26 +10:00
Peter Hutterer
2405f0942b
spa/buffer: rename SPA_MEMBER to SPA_PTROFF
...
SPA_MEMBER is misleading, all we're doing here is pointer+offset and a
type-casting the result. Rename to SPA_PTROFF which is more expressive (and
has the same number of characters so we don't need to re-indent).
2021-05-06 09:39:39 +00:00
Wim Taymans
e598d0a422
0.3.27
2021-05-06 10:22:37 +02:00
Wim Taymans
1a0ad3d688
v4l2-utils: only allocate MemPtr when requested
2021-05-06 10:16:21 +02:00
Wim Taymans
2963d6e725
stream: improve fixup of dataType
...
Also handle choice flag types. Do some more error checking.
2021-05-06 10:03:37 +02:00
Wim Taymans
941620b733
v4l2: don't expose the internal fd
...
When allocating memory, just export the mmaped memory and mark the
memory as MemPtr, not MemFd. Set the fd to -1.
Otherwise we might send this fd to the client, making the complete
device accessible to the client.
2021-05-06 09:24:27 +02:00
Wim Taymans
ec331f4e4c
gst: enable DMABUF explicitly to avoid mmap issues
...
PipeWire does not give DMABUF anymore to clients unless they
explicitly ask for it. This results in v4l2 sending an fd and
the mmapoffset + size fields in the buffer.
GStreamer does not handle the mmapoffset in the fd allocator and
thus runs into mmap problems when using the memory.
Enable DMABuf explicitly to work around the problem until
GStreamer is fixed.
Fixes #1115
2021-05-05 11:23:44 +02:00
Wim Taymans
44f49a3ea0
v4l2: add some more debug
2021-05-05 11:23:44 +02:00
Fabrice Fontaine
ce89ce3844
meson.build: fix build with uclibc-ng
...
Build with uclib-ng fails since commit
a4b0b9afe5
on:
FAILED: src/pipewire/libpipewire-0.3.so.0.326.0.p/impl-core.c.o
/srv/storage/autobuild/run/instance-2/output-1/host/bin/mips64el-linux-gcc -Isrc/pipewire/libpipewire-0.3.so.0.326.0.p -Isrc/pipewire -I../src/pipewire -Isrc -I../src -I. -I.. -Ispa/include -I../spa/include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -Wextra -Wpedantic -std=gnu99 -O3 -fvisibility=hidden -Werror=suggest-attribute=format -Wsign-compare -Wpointer-arith -Wpointer-sign -Wformat -Wformat-security -Wimplicit-fallthrough -Wmissing-braces -Wtype-limits -Wvariadic-macros -Wno-missing-field-initializers -Wno-unused-parameter -Wno-pedantic -Wold-style-declaration -Wunused-result -DFASTPATH -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fPIC -pthread -DHAVE_CONFIG_H -D_GNU_SOURCE -D_POSIX_C_SOURCE -MD -MQ src/pipewire/libpipewire-0.3.so.0.326.0.p/impl-core.c.o -MF src/pipewire/libpipewire-0.3.so.0.326.0.p/impl-core.c.o.d -o src/pipewire/libpipewire-0.3.so.0.326.0.p/impl-core.c.o -c ../src/pipewire/impl-core.c
../src/pipewire/impl-core.c:54:9: error: conflicting types for 'getrandom'
ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) {
^~~~~~~~~
In file included from ../src/pipewire/impl-core.c:34:
/srv/storage/autobuild/run/instance-2/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/sys/random.h:28:12: note: previous declaration of 'getrandom' was here
extern int getrandom(void *__buf, size_t count, unsigned int flags)
^~~~~~~~~
Fix this build failure by adding -D_GNU_SOURCE as getrandom is protected
by:
if defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU
Extracted from:
- https://github.com/wbx-github/uclibc-ng/blob/master/libc/sysdeps/linux/common/sys/random.h
Fixes:
- http://autobuild.buildroot.org/results/a45f0ee009d90cef867dee4b1093225610fa10df
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2021-05-05 08:04:51 +00:00
Davide Beatrici
5f09b9f4d1
pod: fix "missing-field-initializers" warnings
...
/usr/include/spa-0.2/spa/pod/builder.h:90:13: error: missing field '_padding' initializer [-Werror,-Wmissing-field-initializers]
*builder = SPA_POD_BUILDER_INIT(data, size);
^
/usr/include/spa-0.2/spa/pod/builder.h:90:13: error: missing field 'state' initializer [-Werror,-Wmissing-field-initializers]
*builder = SPA_POD_BUILDER_INIT(data, size);
^
/usr/include/spa-0.2/spa/pod/builder.h:90:13: error: missing field 'callbacks' initializer [-Werror,-Wmissing-field-initializers]
*builder = SPA_POD_BUILDER_INIT(data, size);
^
/usr/include/spa-0.2/spa/pod/builder.h:248:33: error: missing field '_padding' initializer [-Werror,-Wmissing-field-initializers]
const struct spa_pod_float p = SPA_POD_INIT_Float(val);
^
/usr/include/spa-0.2/spa/pod/parser.h:56:12: error: missing field '_padding' initializer [-Werror,-Wmissing-field-initializers]
*parser = SPA_POD_PARSER_INIT(data, size);
^
/usr/include/spa-0.2/spa/pod/parser.h:56:12: error: missing field 'state' initializer [-Werror,-Wmissing-field-initializers]
*parser = SPA_POD_PARSER_INIT(data, size);
^
2021-05-05 08:03:46 +00:00