mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
Add more buffer types to add and remove memory shared memory between the server and client. We would like to send buffers only once and then simply reference them by index. Do format negotiation and stream start with a START message.
184 lines
6 KiB
XML
184 lines
6 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' />
|
|
|
|
<!-- CreateChannel:
|
|
@node: the Node1 object path or / for default
|
|
@direction: the direction of the channel
|
|
0 = input channel
|
|
1 = output channel
|
|
@possible_formats: the possible formats that can be accepted
|
|
@properties: extra properties
|
|
@channel: the Channel object path
|
|
@fd: a file descriptor for data transfer
|
|
|
|
Create a new channel to communicate with @node with given @possible_formats
|
|
-->
|
|
<method name='CreateChannel'>
|
|
<arg type='s' name='node' direction='in'/>
|
|
<arg type='u' name='direction' direction='in'/>
|
|
<arg type='s' name='possible_formats' direction='in'/>
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
|
<arg type='o' name='channel' direction='out'/>
|
|
<arg type='h' name='fd' direction='out'/>
|
|
</method>
|
|
|
|
<!-- CreateNode:
|
|
@factory_name: the factory name to use for the node
|
|
@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='factory_name' direction='in' />
|
|
<arg type='s' name='name' direction='in' />
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
|
<arg type='o' name='node' direction='out'/>
|
|
</method>
|
|
|
|
<method name='LinkNodes'>
|
|
<arg type='o' name='src_node' direction='in' />
|
|
<arg type='o' name='dest_node' direction='in' />
|
|
<arg type='s' name='format_filter' direction='in'/>
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
|
<arg type='o' name='link' direction='out' />
|
|
</method>
|
|
|
|
|
|
</interface>
|
|
|
|
<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' />
|
|
</interface>
|
|
|
|
<!--
|
|
org.pinos.Channel:
|
|
@short_description: Interface for input/output channel
|
|
|
|
This interface is used to control the input/output of a
|
|
node and start/stop the media transport.
|
|
-->
|
|
<interface name='org.pinos.Channel1'>
|
|
<!-- Owner: the owner node of this channel -->
|
|
<property name='Owner' type='o' access='read' />
|
|
<!-- type: type of the channel
|
|
0 = input channel
|
|
1 = output channel
|
|
-->
|
|
<property name='Direction' type='u' access='read' />
|
|
|
|
<property name='Node' type='o' access='read' />
|
|
|
|
<!-- Properties: extra channel properties -->
|
|
<property name='Properties' type='a{sv}' access='read' />
|
|
|
|
<!-- state: state of the channel
|
|
-1 = the channel is in error
|
|
0 = the channel is idle
|
|
1 = the channel is starting
|
|
2 = the channel is streaming
|
|
-->
|
|
<property name='State' type='u' access='read' />
|
|
|
|
<!-- PossibleFormats:
|
|
all possible formats of the channel. This is filtered
|
|
against the accepted_formats when creating the channel.
|
|
-->
|
|
<property name='PossibleFormats' type='s' access='read' />
|
|
|
|
<!-- Format: the current streaming format -->
|
|
<property name='Format' type='s' access='read' />
|
|
|
|
<!-- Remove:
|
|
|
|
Remove the channel
|
|
-->
|
|
<method name='Remove'/>
|
|
</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='s' access='read' />
|
|
<!-- Properties: extra node properties -->
|
|
<property name='Properties' type='a{sv}' access='read' />
|
|
|
|
<property name='Ports' type='a(uu)' 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' />
|
|
|
|
<!-- Activate:
|
|
|
|
Set the node ready for processing
|
|
-->
|
|
<method name='Activate'>
|
|
</method>
|
|
|
|
<method name='Deactivate'>
|
|
</method>
|
|
|
|
<!-- Remove:
|
|
|
|
Remove the node
|
|
-->
|
|
<method name='Remove'/>
|
|
</interface>
|
|
|
|
<interface name='org.pinos.Link1'>
|
|
<!-- Owner: the owner path of this link -->
|
|
<property name='Owner' type='s' access='read' />
|
|
|
|
<property name='SrcNode' type='o' access='read' />
|
|
<property name='DestNode' type='o' access='read' />
|
|
|
|
<property name='Properties' type='a{sv}' access='read' />
|
|
|
|
<property name='Format' type='s' access='read' />
|
|
|
|
<method name='Remove'/>
|
|
|
|
</interface>
|
|
</node>
|