mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
docs: add dbus docs
This commit is contained in:
parent
09de2d3db9
commit
4378f34664
2 changed files with 141 additions and 96 deletions
|
|
@ -1,84 +0,0 @@
|
||||||
Source
|
|
||||||
------
|
|
||||||
|
|
||||||
Service: org.pulsevideo
|
|
||||||
Interface: org.pulsevideo.Source1
|
|
||||||
Object Path: freely definable
|
|
||||||
|
|
||||||
|
|
||||||
The Source object defines a source of video. You can query the list of
|
|
||||||
supported formats and get a SourceOutput object that can be used to
|
|
||||||
control the video Source.
|
|
||||||
|
|
||||||
|
|
||||||
Methods a{a{sv}} GetCapabilities (dict args)
|
|
||||||
|
|
||||||
Get a list of supported formats
|
|
||||||
|
|
||||||
Possible Errors: org.pulsevideo.Error.NotAuthorized
|
|
||||||
org.pulsevideo.Error.Failed
|
|
||||||
|
|
||||||
object CreateSourceOutput (dict args)
|
|
||||||
|
|
||||||
Create a sourceoutput with given capabilities
|
|
||||||
|
|
||||||
Possible Errors: org.pulsevideo.Error.NotAuthorized
|
|
||||||
org.pulsevideo.Error.Failed
|
|
||||||
|
|
||||||
void RemoveSourceOutput (object sourceoutput)
|
|
||||||
|
|
||||||
Remove a sourceoutput.
|
|
||||||
|
|
||||||
Possible Errors: org.pulsevideo.Error.NotAuthorized
|
|
||||||
org.pulsevideo.Error.Failed
|
|
||||||
|
|
||||||
Properties string Name [readonly]
|
|
||||||
|
|
||||||
Name of the source
|
|
||||||
|
|
||||||
strinf Priority [readonly]
|
|
||||||
|
|
||||||
Priority of the source
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SourceOutput
|
|
||||||
------------
|
|
||||||
|
|
||||||
Service org.pulsevideo
|
|
||||||
Interface org.pulsevideo.SourceOutput1
|
|
||||||
Object Path: freely definable
|
|
||||||
|
|
||||||
Methods fd Acquire()
|
|
||||||
|
|
||||||
Acquire transport file descriptor read and .
|
|
||||||
|
|
||||||
Possible Errors: org.pulsevideo.Error.NotAuthorized
|
|
||||||
org.pulsevideo.Error.Failed
|
|
||||||
|
|
||||||
void Release ()
|
|
||||||
|
|
||||||
Release transport file descriptor
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Properties object Source [readonly]
|
|
||||||
|
|
||||||
Path of the Source object
|
|
||||||
|
|
||||||
dict transport [readonly]
|
|
||||||
|
|
||||||
Transport properties
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Client
|
|
||||||
------
|
|
||||||
|
|
||||||
Service org.pulsevideo
|
|
||||||
Interface org.pulsevideo.Client1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,77 +1,206 @@
|
||||||
<node>
|
<!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.pulsevideo.Daemon1:
|
||||||
|
@short_description: Main interface for the pulsevideo daemon
|
||||||
|
|
||||||
|
Interface to get properties from the pulsevideo daemon and to
|
||||||
|
establish a client connection.
|
||||||
|
-->
|
||||||
<interface name='org.pulsevideo.Daemon1'>
|
<interface name='org.pulsevideo.Daemon1'>
|
||||||
|
<!-- UserName: Name of the user that started the daemon -->
|
||||||
<property name='UserName' type='s' access='read' />
|
<property name='UserName' type='s' access='read' />
|
||||||
|
<!-- HostName: Name of the machine the daemon is running on -->
|
||||||
<property name='HostName' type='s' access='read' />
|
<property name='HostName' type='s' access='read' />
|
||||||
|
<!-- Version: Version of the daemon -->
|
||||||
<property name='Version' type='s' access='read' />
|
<property name='Version' type='s' access='read' />
|
||||||
|
<!-- Name: Name of the daemon -->
|
||||||
<property name='Name' type='s' access='read' />
|
<property name='Name' type='s' access='read' />
|
||||||
|
<!-- Properties: Extra properties of the daemon -->
|
||||||
<property name='Properties' type='a{sv}' access='read' />
|
<property name='Properties' type='a{sv}' access='read' />
|
||||||
|
<!-- ConnectClient:
|
||||||
|
@properties: properties of the client
|
||||||
|
@client: a new client object
|
||||||
|
|
||||||
|
Register a client to the pulsevideo daemon. A new client object
|
||||||
|
will be generated that should be used to perform any other
|
||||||
|
action on the server.
|
||||||
|
-->
|
||||||
<method name='ConnectClient'>
|
<method name='ConnectClient'>
|
||||||
<arg type='a{sv}' name='properties' direction='in'/>
|
<arg type='a{sv}' name='properties' direction='in'/>
|
||||||
<arg type='o' name='client' direction='out'/>
|
<arg type='o' name='client' direction='out'/>
|
||||||
</method>
|
</method>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.pulsevideo.Client1:
|
||||||
|
@short_description: Main client interface
|
||||||
|
|
||||||
|
Interface obtained after connecting a client and allows for
|
||||||
|
obtaining an output object from a source.
|
||||||
|
-->
|
||||||
<interface name='org.pulsevideo.Client1'>
|
<interface name='org.pulsevideo.Client1'>
|
||||||
|
<!-- Name: Name of the client -->
|
||||||
<property name='Name' type='s' access='read' />
|
<property name='Name' type='s' access='read' />
|
||||||
|
<!-- Name: Properties of the client -->
|
||||||
<property name='Properties' type='a{sv}' access='read' />
|
<property name='Properties' type='a{sv}' access='read' />
|
||||||
|
<!-- CreateSourceOutput:
|
||||||
|
@source: the name of a source or an empty string
|
||||||
|
@props: properties to use
|
||||||
|
@sender: the result sender of the output
|
||||||
|
@output: the result output object
|
||||||
|
|
||||||
|
This method requests an output from @source with given @props.
|
||||||
|
@source can be the empty string, in which case the server will
|
||||||
|
select a good source.
|
||||||
|
|
||||||
|
@sender and @output contain the unique name and object of the
|
||||||
|
owner of the source.
|
||||||
|
-->
|
||||||
<method name='CreateSourceOutput'>
|
<method name='CreateSourceOutput'>
|
||||||
<arg type='o' name='source' direction='in'/>
|
<arg type='s' name='source' direction='in'/>
|
||||||
<arg type='a{sv}' name='props' direction='in'/>
|
<arg type='a{sv}' name='props' direction='in'/>
|
||||||
<arg type='s' name='sender' direction='out'/>
|
<arg type='s' name='sender' direction='out'/>
|
||||||
<arg type='o' name='output' direction='out'/>
|
<arg type='o' name='output' direction='out'/>
|
||||||
</method>
|
</method>
|
||||||
<method name='RegisterSource'>
|
<!-- Disconnect:
|
||||||
<arg type='o' name='source' direction='in'/>
|
|
||||||
</method>
|
Disconnect the client from the server.
|
||||||
<method name='UnregisterSource'>
|
-->
|
||||||
<arg type='o' name='source' direction='in'/>
|
<method name='Disconnect'/>
|
||||||
</method>
|
|
||||||
<method name='Disconnect'>
|
|
||||||
</method>
|
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.pulsevideo.Introspect:
|
||||||
|
@short_description: Main introspection interface
|
||||||
|
|
||||||
|
This interface allows one to introspect the object on the
|
||||||
|
server
|
||||||
|
-->
|
||||||
<interface name='org.pulsevideo.Introspect1'>
|
<interface name='org.pulsevideo.Introspect1'>
|
||||||
|
<!-- GetClients:
|
||||||
|
@clients: an array of client objects
|
||||||
|
|
||||||
|
Get a list of clients connected to this server
|
||||||
|
-->
|
||||||
<method name='GetClients'>
|
<method name='GetClients'>
|
||||||
<arg type='ao' name='clients' direction='out'/>
|
<arg type='ao' name='clients' direction='out'/>
|
||||||
</method>
|
</method>
|
||||||
|
<!-- GetSources:
|
||||||
|
@sources: an array of source objects
|
||||||
|
|
||||||
|
Get a list of sources available on this server
|
||||||
|
-->
|
||||||
<method name='GetSources'>
|
<method name='GetSources'>
|
||||||
<arg type='ao' name='sources' direction='out'/>
|
<arg type='ao' name='sources' direction='out'/>
|
||||||
</method>
|
</method>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.pulsevideo.SourceProvider1:
|
||||||
|
@short_description: Interface for source provider
|
||||||
|
|
||||||
|
This interface lists the unique name and path of a
|
||||||
|
source
|
||||||
|
-->
|
||||||
<interface name='org.pulsevideo.SourceProvider1'>
|
<interface name='org.pulsevideo.SourceProvider1'>
|
||||||
|
<!-- Name: unique name of the provider -->
|
||||||
<property name='Name' type='s' access='read' />
|
<property name='Name' type='s' access='read' />
|
||||||
|
<!-- Path: object path of the source -->
|
||||||
<property name='Path' type='o' access='read' />
|
<property name='Path' type='o' access='read' />
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.pulsevideo.Source1:
|
||||||
|
@short_description: Main source interface
|
||||||
|
|
||||||
|
A source is an object that can provide media content.
|
||||||
|
-->
|
||||||
<interface name='org.pulsevideo.Source1'>
|
<interface name='org.pulsevideo.Source1'>
|
||||||
|
<!-- Name: the name of the source -->
|
||||||
<property name='Name' type='s' access='read' />
|
<property name='Name' type='s' access='read' />
|
||||||
<property name='Suspended' type='b' access='read' />
|
<!-- Properties: extra source properties -->
|
||||||
<property name='Properties' type='a{sv}' access='read' />
|
<property name='Properties' type='a{sv}' access='read' />
|
||||||
|
<!-- Suspended: if the source is suspended -->
|
||||||
|
<property name='Suspended' type='b' access='read' />
|
||||||
|
<!-- GetCapabilities:
|
||||||
|
@props: input properties
|
||||||
|
@caps: result capabilities
|
||||||
|
|
||||||
|
Get a list of capabilities of this source. This includes
|
||||||
|
supported data formats and transports. @props is used to
|
||||||
|
filter the amount of output capabilities
|
||||||
|
-->
|
||||||
<method name='GetCapabilities'>
|
<method name='GetCapabilities'>
|
||||||
<arg type='a{sv}' name='props' direction='in'/>
|
<arg type='a{sv}' name='props' direction='in'/>
|
||||||
<arg type='aa{sv}' name='caps' direction='out'/>
|
<arg type='aa{sv}' name='caps' direction='out'/>
|
||||||
</method>
|
</method>
|
||||||
|
<!-- CreateSourceOutput:
|
||||||
|
@props: input properties
|
||||||
|
@output: the SourceOutput1 object path
|
||||||
|
|
||||||
|
Create a new output for this source with given @props
|
||||||
|
-->
|
||||||
<method name='CreateSourceOutput'>
|
<method name='CreateSourceOutput'>
|
||||||
<arg type='a{sv}' name='props' direction='in'/>
|
<arg type='a{sv}' name='props' direction='in'/>
|
||||||
<arg type='o' name='output' direction='out'/>
|
<arg type='o' name='output' direction='out'/>
|
||||||
</method>
|
</method>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
org.pulsevideo.SourceOutput1:
|
||||||
|
@short_description: Interface for source output
|
||||||
|
|
||||||
|
This interface is used to control the output of a source and
|
||||||
|
start/stop the media transport.
|
||||||
|
-->
|
||||||
<interface name='org.pulsevideo.SourceOutput1'>
|
<interface name='org.pulsevideo.SourceOutput1'>
|
||||||
|
<!-- Source: the source of this source output -->
|
||||||
<property name='Source' type='o' access='read' />
|
<property name='Source' type='o' access='read' />
|
||||||
|
<!-- Start:
|
||||||
|
@props: input properties
|
||||||
|
@fd: output file descriptor
|
||||||
|
@props: output properties
|
||||||
|
|
||||||
|
Start the datatransfer of the source with @props.
|
||||||
|
|
||||||
|
The result is a file descriptor that can be used to get metadata
|
||||||
|
and media. @props contains the final media format and transport
|
||||||
|
properties.
|
||||||
|
-->
|
||||||
<method name='Start'>
|
<method name='Start'>
|
||||||
<arg type='a{sv}' name='props' direction='in'/>
|
<arg type='a{sv}' name='props' direction='in'/>
|
||||||
<arg type='h' name='fd' direction='out'/>
|
<arg type='h' name='fd' direction='out'/>
|
||||||
<arg type='a{sv}' name='props' direction='out'/>
|
<arg type='a{sv}' name='props' direction='out'/>
|
||||||
</method>
|
</method>
|
||||||
|
<!-- RequestReconfigure:
|
||||||
|
@props: new properties
|
||||||
|
|
||||||
|
This signal is fired when the source wants to change the format
|
||||||
|
or transport. The client should Stop and Start the source output
|
||||||
|
with new properties
|
||||||
|
-->
|
||||||
<signal name='RequestReconfigure'>
|
<signal name='RequestReconfigure'>
|
||||||
<arg type='a{sv}' name='props' direction='in'/>
|
<arg type='a{sv}' name='props' direction='in'/>
|
||||||
</signal>
|
</signal>
|
||||||
|
<!-- Stop:
|
||||||
|
|
||||||
|
Stop data transport
|
||||||
|
-->
|
||||||
<method name='Stop'/>
|
<method name='Stop'/>
|
||||||
|
<!-- Remove:
|
||||||
|
|
||||||
|
Remove the source output
|
||||||
|
-->
|
||||||
<method name='Remove'/>
|
<method name='Remove'/>
|
||||||
|
|
||||||
<!--
|
<!-- This is a possible push based API. It would require a dbus call
|
||||||
|
for each media packet, which is probably not a good idea right now.
|
||||||
|
We would probably also want something more lightweight for sending
|
||||||
|
the properties with each fd.
|
||||||
|
|
||||||
<method name='Start'>
|
<method name='Start'>
|
||||||
<arg type='a{sv}' name='props' direction='in'/>
|
<arg type='a{sv}' name='props' direction='in'/>
|
||||||
<arg type='a{sv}' name='props' direction='out'/>
|
<arg type='a{sv}' name='props' direction='out'/>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue