Multimedia processing graphs
Find a file
Wim Taymans 6864ea9830 pinospay: keep buffers around until released
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.
2015-12-02 21:03:53 +01:00
doc doc updates 2015-09-30 13:00:14 +02:00
m4 Add po files and desktop.in 2015-09-04 17:10:48 +02:00
man man: add some man pages 2015-09-02 14:58:03 +02:00
pkgconfig Rename pulsevideo to pinos 2015-06-30 18:06:36 +02:00
po po: remove autogenerated file 2015-09-14 09:12:50 +02:00
src pinospay: keep buffers around until released 2015-12-02 21:03:53 +01:00
.gitignore more rename PV -> PINOS, Pv -> Pinos, pv -> pinos 2015-07-07 16:46:23 +02:00
autogen.sh Rename pulsevideo to pinos 2015-06-30 18:06:36 +02:00
bootstrap.sh Rename pulsevideo to pinos 2015-06-30 18:06:36 +02:00
configure.ac Add po files and desktop.in 2015-09-04 17:10:48 +02:00
git-version-gen Initial commit 2015-04-16 16:58:33 +02:00
GPL Initial commit 2015-04-16 16:58:33 +02:00
LGPL Initial commit 2015-04-16 16:58:33 +02:00
LICENSE spec: add rpm specfile 2015-09-02 09:10:49 +02:00
Makefile.am Add po files and desktop.in 2015-09-04 17:10:48 +02:00
NEWS Rename pulsevideo to pinos 2015-06-30 18:06:36 +02:00
pinos.spec spec: update version 2015-09-09 17:20:27 +02:00
PROTOCOL Initial commit 2015-04-16 16:58:33 +02:00
README Rename pulsevideo to pinos 2015-06-30 18:06:36 +02:00

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.