mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-27 07:00:12 -05:00
Add refcounting to buffers. Use static memory on ports for buffer input and output memory. Improve negotiation, let format and properties be negotiated on ports as the data passes. Improve some debug info.
157 lines
5.3 KiB
XML
157 lines
5.3 KiB
XML
<!DOCTYPE node PUBLIC
|
|
"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
|
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd" >
|
|
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
|
|
<!--
|
|
org.pinos.Daemon1:
|
|
@short_description: Main interface for the pinos daemon
|
|
|
|
Interface to get properties from the pinos daemon and to
|
|
establish a client connection.
|
|
-->
|
|
<interface name='org.pinos.Daemon1'>
|
|
<!-- UserName: Name of the user that started the daemon -->
|
|
<property name='UserName' type='s' access='read' />
|
|
<!-- HostName: Name of the machine the daemon is running on -->
|
|
<property name='HostName' type='s' access='read' />
|
|
<!-- Version: Version of the daemon -->
|
|
<property name='Version' type='s' access='read' />
|
|
<!-- Name: Name of the daemon -->
|
|
<property name='Name' type='s' access='read' />
|
|
<!-- Cookie: A random cookie for identifying this instance of Pinos -->
|
|
<property name='Cookie' type='u' access='read' />
|
|
<!-- Properties: Extra properties of the daemon -->
|
|
<property name='Properties' type='a{sv}' access='read' />
|
|
<!-- ConnectClient:
|
|
@properties: properties of the client
|
|
@client: a new client object
|
|
|
|
Register a client to the pinos daemon. A new client object
|
|
will be generated that should be used to perform any other
|
|
action on the server.
|
|
-->
|
|
<method name='ConnectClient'>
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
|
<arg type='o' name='client' direction='out'/>
|
|
</method>
|
|
</interface>
|
|
|
|
<!--
|
|
org.pinos.Client1:
|
|
@short_description: Main client interface
|
|
|
|
Interface obtained after connecting a client and allows for
|
|
obtaining an channel object from a source/sink.
|
|
-->
|
|
<interface name='org.pinos.Client1'>
|
|
<!-- Sender: Sender of the client -->
|
|
<property name='Sender' type='s' access='read' />
|
|
<!-- Name: Properties of the client -->
|
|
<property name='Properties' type='a{sv}' access='read' />
|
|
<!-- Disconnect:
|
|
|
|
Disconnect the client from the server.
|
|
-->
|
|
<method name='Disconnect'/>
|
|
<!-- CreateNode:
|
|
@name: the name of the node
|
|
@properties: extra properties
|
|
@node: the Node1 object path
|
|
|
|
Create a new Node with given name and properties
|
|
-->
|
|
<method name='CreateNode'>
|
|
<arg type='s' name='Name' direction='in' />
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
|
<arg type='o' name='node' direction='out'/>
|
|
</method>
|
|
|
|
<!-- CreateUploadChannel:
|
|
@possible_formats: the formats that can be provided
|
|
@properties: extra properties
|
|
@channel: the Channel object path
|
|
|
|
Create a new channel to upload a new stream
|
|
-->
|
|
<method name='CreateUploadChannel'>
|
|
<arg type='s' name='possible_formats' direction='in'/>
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
|
<arg type='o' name='channel' direction='out'/>
|
|
</method>
|
|
|
|
</interface>
|
|
|
|
<!--
|
|
org.pinos.Node1:
|
|
@short_description: A processing node
|
|
|
|
A node is an object that can consume and/or produce media.
|
|
-->
|
|
<interface name='org.pinos.Node1'>
|
|
<!-- Name: the name of the node -->
|
|
<property name='Name' type='s' access='read' />
|
|
<!-- Owner: the owner path of this node -->
|
|
<property name='Owner' type='o' access='read' />
|
|
<!-- Properties: extra node properties -->
|
|
<property name='Properties' type='a{sv}' access='read' />
|
|
<!-- state: state of the node
|
|
-1 = the node is in error
|
|
0 = the node is suspended, this means that the node is not
|
|
processing any data and has closed all devices if any
|
|
1 = the node is initializing
|
|
2 = the node is idle, this means no channel is consuming
|
|
the data. An idle node can become suspended.
|
|
3 = the node is running
|
|
-->
|
|
<property name='State' type='u' access='read' />
|
|
|
|
<!-- CreatePort:
|
|
|
|
Create a new port
|
|
-->
|
|
<method name='CreatePort'>
|
|
<arg type='u' name='Direction' direction='in' />
|
|
<arg type='s' name='Name' direction='in' />
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
|
<arg type='s' name='possible_formats' direction='in'/>
|
|
<arg type='o' name='port' direction='out'/>
|
|
<arg type='h' name='fd' direction='out'/>
|
|
</method>
|
|
|
|
<!-- Remove:
|
|
|
|
Remove the node
|
|
-->
|
|
<method name='Remove'/>
|
|
</interface>
|
|
|
|
<!--
|
|
org.pinos.Port1:
|
|
@short_description: a Node1 input/output port
|
|
|
|
A port on a Node1 can provide or consume data.
|
|
-->
|
|
<interface name='org.pinos.Port1'>
|
|
<!-- Name: the name of the port -->
|
|
<property name='Name' type='s' access='read' />
|
|
<!-- Node: the owner node of this port -->
|
|
<property name='Node' type='o' access='read' />
|
|
<!-- Direction: the direction of the port
|
|
0 = an input port
|
|
1 = an output port
|
|
-->
|
|
<property name='Direction' type='u' access='read' />
|
|
<!-- Properties: extra port properties -->
|
|
<property name='Properties' type='a{sv}' access='read' />
|
|
<!-- PossibleFormats:
|
|
|
|
The possible formats of this port.
|
|
-->
|
|
<property name='PossibleFormats' type='s' access='readwrite' />
|
|
<!-- Format: the current streaming format -->
|
|
<property name='Format' type='s' access='read' />
|
|
|
|
<method name='Remove'/>
|
|
|
|
</interface>
|
|
</node>
|