mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
pulse-server: set the SINK_SET_FORMATS flag
When we have an iec958Codecs property on the node, we can use it to configure the codecs on the sink.
This commit is contained in:
parent
49eb31f670
commit
ea7a731106
3 changed files with 5 additions and 0 deletions
|
|
@ -281,6 +281,8 @@ void collect_device_info(struct pw_manager_object *device, struct pw_manager_obj
|
|||
volume_parse_param(p->param, &dev_info->volume_info, monitor);
|
||||
dev_info->have_volume = true;
|
||||
}
|
||||
dev_info->have_iec958codecs = spa_pod_find_prop(p->param,
|
||||
NULL, SPA_PROP_iec958Codecs) != NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,6 +63,7 @@ struct device_info {
|
|||
struct channel_map map;
|
||||
struct volume_info volume_info;
|
||||
unsigned int have_volume:1;
|
||||
unsigned int have_iec958codecs:1;
|
||||
|
||||
uint32_t device;
|
||||
uint32_t active_port;
|
||||
|
|
|
|||
|
|
@ -3488,6 +3488,8 @@ static int fill_sink_info(struct client *client, struct message *m,
|
|||
flags |= SINK_HW_VOLUME_CTRL;
|
||||
if (SPA_FLAG_IS_SET(dev_info.volume_info.flags, VOLUME_HW_MUTE))
|
||||
flags |= SINK_HW_MUTE_CTRL;
|
||||
if (dev_info.have_iec958codecs)
|
||||
flags |= SINK_SET_FORMATS;
|
||||
|
||||
if (client->quirks & QUIRK_FORCE_S16_FORMAT)
|
||||
dev_info.ss.format = SPA_AUDIO_FORMAT_S16;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue