mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
Remove _remove from properties, we can do the same with set of a NULL value. Add signals to the stream API to manage the buffers. Wrap those buffers in a GstBuffer in the pinossrc and pinossink elements and pool them in a bufferpool. Remove SPA_EVENT_TYPE_PULL_INPUT, we can do the same with NEED_INPUT and by using a ringbuffer. Do more complete allocation of buffers in the link. Use the buffer allocator if none of the nodes can allocate. Follow the node state to trigger negotiation and allocation. Remove offset and size when refering to buffers, we want to always deal with the complete buffer and use a ringbuffer for ranges or change the offset/size in the buffer data when needed. Serialize port_info structures as part of the port_update Print both the enum number and the name when debuging properties or formats.
145 lines
4.5 KiB
XML
145 lines
4.5 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' />
|
|
|
|
<!-- 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>
|
|
|
|
<!-- CreateClientNode:
|
|
@name: the name of the node
|
|
@Properties: extra properties
|
|
@node: the Node1 object path
|
|
|
|
Create a new Node
|
|
-->
|
|
<method name='CreateClientNode'>
|
|
<arg type='s' name='name' direction='in' />
|
|
<arg type='a{sv}' name='properties' direction='in'/>
|
|
<arg type='o' name='node' direction='out'/>
|
|
<arg type='h' name='fd' direction='out'/>
|
|
</method>
|
|
|
|
<method name='LinkNodes'>
|
|
<arg type='s' name='src_port' direction='in' />
|
|
<arg type='s' name='dest_port' 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.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' />
|
|
|
|
<method name='AddPort'>
|
|
<arg type='u' name='direction' direction='in'/>
|
|
<arg type='u' name='id' direction='in'/>
|
|
</method>
|
|
|
|
<method name='RemovePort'>
|
|
<arg type='u' name='id' direction='in'/>
|
|
</method>
|
|
|
|
|
|
<!-- 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='SrcPort' type='s' access='read' />
|
|
<property name='DestPort' type='s' access='read' />
|
|
|
|
<property name='Properties' type='a{sv}' access='read' />
|
|
|
|
<property name='Format' type='s' access='read' />
|
|
|
|
<method name='Remove'/>
|
|
|
|
</interface>
|
|
</node>
|