From a25396c1eb0f0f742f785ca5ff0a5b605af6ee45 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 1 Sep 2021 13:11:08 +0200 Subject: [PATCH] pulse-server: filter out iec958 PCM formats Convert the iec958 PCM formats differently when enumerating the sink formats. This way we can still convert the param to a format_info. --- src/modules/module-protocol-pulse/format.c | 2 +- src/modules/module-protocol-pulse/pulse-server.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/module-protocol-pulse/format.c b/src/modules/module-protocol-pulse/format.c index 7c111a695..949f64432 100644 --- a/src/modules/module-protocol-pulse/format.c +++ b/src/modules/module-protocol-pulse/format.c @@ -389,7 +389,7 @@ struct encoding_info { static const struct encoding_info encoding_names[] = { [ENCODING_ANY] = { "ANY", 0 }, - [ENCODING_PCM] = { "PCM", 0 }, + [ENCODING_PCM] = { "PCM", SPA_AUDIO_IEC958_CODEC_PCM }, [ENCODING_AC3_IEC61937] = { "AC3-IEC61937", SPA_AUDIO_IEC958_CODEC_AC3 }, [ENCODING_EAC3_IEC61937] = { "EAC3-IEC61937", SPA_AUDIO_IEC958_CODEC_EAC3 }, [ENCODING_MPEG_IEC61937] = { "MPEG-IEC61937", SPA_AUDIO_IEC958_CODEC_MPEG }, diff --git a/src/modules/module-protocol-pulse/pulse-server.c b/src/modules/module-protocol-pulse/pulse-server.c index f0e9fbfe7..3a466e2fb 100644 --- a/src/modules/module-protocol-pulse/pulse-server.c +++ b/src/modules/module-protocol-pulse/pulse-server.c @@ -3578,8 +3578,11 @@ static int fill_sink_info(struct client *client, struct message *m, spa_zero(info[n_info]); if (format_info_from_param(&info[n_info], p->param, index++) < 0) break; - if (info[n_info].encoding == ENCODING_ANY) + if (info[n_info].encoding == ENCODING_ANY || + (info[n_info].encoding == ENCODING_PCM && info[n_info].props != NULL)) { + format_info_clear(&info[n_info]); continue; + } n_info++; } } @@ -3590,6 +3593,7 @@ static int fill_sink_info(struct client *client, struct message *m, message_put(m, TAG_FORMAT_INFO, &info[i], TAG_INVALID); + format_info_clear(&info[i]); } } return 0;