mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
Rework how clients connect.
Add buffer flags. The idea is to make it possible to easily check when a buffer contains control information that we need to parse to update the port fields. Make the client create remote nodes and ports and set up proxies for them. Make a port base class implementing most of the logic to pass buffers locally and remotely. Remove most code from stream.c, it's now in the port. Make a portsink and portsrc that can write and read to/from any port. We use these in the server to send and receive data. Rework format negotiation. The final format is now sent in-line before the data. The server will select a format on output ports.
This commit is contained in:
parent
e85c3002f7
commit
4a5ed1e1f5
35 changed files with 3111 additions and 761 deletions
|
|
@ -30,6 +30,7 @@ typedef struct _PinosClientPortPrivate PinosClientPortPrivate;
|
|||
|
||||
#include <pinos/client/introspect.h>
|
||||
#include <pinos/client/port.h>
|
||||
#include <pinos/client/client-node.h>
|
||||
|
||||
#define PINOS_TYPE_CLIENT_PORT (pinos_client_port_get_type ())
|
||||
#define PINOS_IS_CLIENT_PORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PINOS_TYPE_CLIENT_PORT))
|
||||
|
|
@ -66,6 +67,10 @@ struct _PinosClientPortClass {
|
|||
/* normal GObject stuff */
|
||||
GType pinos_client_port_get_type (void);
|
||||
|
||||
PinosClientPort * pinos_client_port_new (PinosClientNode *node,
|
||||
gpointer id,
|
||||
GSocket *socket);
|
||||
|
||||
GBytes * pinos_client_port_get_formats (PinosClientPort *port,
|
||||
GBytes *filter,
|
||||
GError **error);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue