mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
Multimedia processing graphs
If we are using the original buffer fd without copying it into a temp file we need to make sure the memory stays alive and is not reused until all clients are done with it. To do this, track what fd ids are in the outgoing buffers and ref the original buffer. We also need to know when a message is sent to a client and when that client does a release-fd on the fd index. This is done with some new events on the multisocketsink. Every time a message is sent to a client we hash the fd index in it and ref the buffer in a per-client hash table (on the socket). Every time we receive release-fd we remove the fd index from the hash and unref the buffer again. Clients that are killed get their socket removed, which also cleans up the hashtable and frees the memory again. |
||
|---|---|---|
| doc | ||
| m4 | ||
| man | ||
| pkgconfig | ||
| po | ||
| src | ||
| .gitignore | ||
| autogen.sh | ||
| bootstrap.sh | ||
| configure.ac | ||
| git-version-gen | ||
| GPL | ||
| LGPL | ||
| LICENSE | ||
| Makefile.am | ||
| NEWS | ||
| pinos.spec | ||
| PROTOCOL | ||
| README | ||
Pinos
-----
Pinos is a user space API to deal with video. This includes:
- Make availabe sources of video (such as from a capture devices or
application provided streams)
- Accessing sources of video for consumption.
Video providers and consumers are implemented as separate processes
communicating with DBUS and exchanging video frames using fd passing.