mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
Multimedia processing graphs
We need to keep the sources around until all sources are dispatched. If not: source A and B are active after poll, A is dispatched first and removes B, when B is then dispatched, the memory is gone. We don't free the source but simply mark the fd invalid and move it do a destroy list. After all sources are dispatched we destroy. This is safe because removing a source is either done from the poll context (with invoke) or when holding the right locks. |
||
|---|---|---|
| doc | ||
| man | ||
| pkgconfig | ||
| po | ||
| spa | ||
| src | ||
| .gitignore | ||
| _config.yml | ||
| autogen.sh | ||
| config.h.meson | ||
| git-version-gen | ||
| GPL | ||
| LGPL | ||
| LICENSE | ||
| Makefile.in | ||
| meson.build | ||
| meson_options.txt | ||
| NEWS | ||
| PROTOCOL | ||
| README | ||
PipeWire
--------
PipeWire is a server and user space API to deal with multimedia
pipelines. This includes:
- Making available sources of video (such as from a capture devices or
application provided streams) and multiplexing this with
clients.
- Accessing sources of video for consumption.
- Generating graphs for audio and video processing.
Nodes in the graph can be implemented as separate processes,
communicating with sockets and exchanging multimedia content using fd
passing.
Building
--------
Pipewire uses the Meson and Ninja build system to compile. If you're not
familiar with these tools, the included "autogen.sh" script will
automatically run the correct meson/ninja commands, and output a Makefile.
It follows that there are two methods to build Pipewire, however both rely
on Meson and Ninja to actually perform the compilation:
$ ./autogen.sh
$ make
or the Meson/Ninja native method:
$ meson build
$ cd build
$ ninja