.TH "libpipewire-module-metadata" 7 "1.4.7" "PipeWire" \" -*- nroff -*- .ad l .nh .SH NAME libpipewire-module-metadata \- Metadata .SH DESCRIPTION .PP Allows clients to export a metadata store to the PipeWire server\&. .PP Both the client and the server need to load this module for the metadata to be exported\&. .PP This module creates a new factory and a new export type for the \fBPW_TYPE_INTERFACE_Metadata\fP interface\&. .PP A client will first create an implementation of the PW_TYPE_INTERFACE_Metadata interface with \fBpw_context_create_metadata()\fP, for example\&. With the \fBpw_core_export()\fP, this module will create a server side resource to expose the metadata implementation to other clients\&. Modifications done by the client on the local metadata interface will be visible to all PipeWire clients\&. .PP It is also possible to use the factory to create metadata in the current processes using a config file fragment\&. .PP As an argument to the create_object call, a set of properties will control the name of the metadata and some initial values\&. .PP .SH "MODULE NAME" .PP .PP \fRlibpipewire-module-metadata\fP .PP .SH "MODULE OPTIONS" .PP .PP This module has no options\&. .PP .SH "PROPERTIES FOR THE CREATE_OBJECT CALL" .PP .PP .IP "\(bu" 2 \fRmetadata\&.name\fP: The name of the new metadata object\&. If not given, the metadata object name will be \fRdefault\fP\&. .IP "\(bu" 2 \fRmetadata\&.values\fP: A JSON array of objects with initial values for the metadata object\&. .PP the \fRmetadata\&.values\fP key has the following layout: .PP .PP .nf metadata\&.values = [ { id = key = type = value = } \&.\&.\&.\&. ] .fi .PP .IP " \(bu" 4 \fRid\fP: an optional object id for the metadata, default 0 .IP " \(bu" 4 \fRkey\fP: a string, the metadata key .IP " \(bu" 4 \fRtype\fP: an optional metadata value type .IP " \(bu" 4 \fRvalue\fP: a JSON item, the metadata value\&. .PP .PP .PP .SH "EXAMPLE CONFIGURATION" .PP .PP The module is usually added to the config file of the main PipeWire daemon and the clients\&. .PP .PP .nf context\&.modules = [ { name = libpipewire\-module\-metadata } ] .fi .PP .PP .SH "CONFIG OBJECTS" .PP .PP To create an object from the factory, one can use the \fBpw_core_create_object()\fP method or make an object in the \fRcontext\&.objects\fP section like in the main PipeWire daemon config file: .PP .PP .nf context\&.objects = [ { factory = metadata args = { metadata\&.name = default metadata\&.values = [ { key = default\&.audio\&.sink value = { name = somesink } } { key = default\&.audio\&.source value = { name = somesource } } ] } } .fi .PP .PP This creates a new default metadata store with 2 key/values\&. .PP .SH "SEE ALSO" .PP .PP .IP "\(bu" 2 \fRpw-metadata\fP: a tool to manage metadata .PP