From 79e976e5d7cdabfa47c2deb8b87e89356b75f529 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 18 Oct 2018 12:47:46 +0200 Subject: [PATCH] audioconvert: small cleanups --- spa/plugins/audioconvert/merger.c | 59 ++++++++++------------- spa/plugins/audioconvert/splitter.c | 73 ++++++++++++++--------------- 2 files changed, 60 insertions(+), 72 deletions(-) diff --git a/spa/plugins/audioconvert/merger.c b/spa/plugins/audioconvert/merger.c index 4cf975632..08097a6bb 100644 --- a/spa/plugins/audioconvert/merger.c +++ b/spa/plugins/audioconvert/merger.c @@ -351,41 +351,34 @@ static int port_enum_formats(struct spa_node *node, switch (*index) { case 0: - if (direction == SPA_DIRECTION_OUTPUT) { - if (port->have_format) { - *param = spa_format_audio_raw_build(builder, - SPA_PARAM_EnumFormat, &port->format.info.raw); - } - else { - *param = spa_pod_builder_object(builder, - SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat, - SPA_FORMAT_mediaType, &SPA_POD_Id(SPA_MEDIA_TYPE_audio), - SPA_FORMAT_mediaSubtype, &SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw), - SPA_FORMAT_AUDIO_format, &SPA_POD_CHOICE_ENUM_Id(13, - SPA_AUDIO_FORMAT_F32, - SPA_AUDIO_FORMAT_F32, - SPA_AUDIO_FORMAT_F32P, - SPA_AUDIO_FORMAT_S32, - SPA_AUDIO_FORMAT_S32P, - SPA_AUDIO_FORMAT_S24_32, - SPA_AUDIO_FORMAT_S24_32P, - SPA_AUDIO_FORMAT_S24, - SPA_AUDIO_FORMAT_S24P, - SPA_AUDIO_FORMAT_S16, - SPA_AUDIO_FORMAT_S16P, - SPA_AUDIO_FORMAT_U8, - SPA_AUDIO_FORMAT_U8P), - SPA_FORMAT_AUDIO_rate, &SPA_POD_CHOICE_RANGE_Int( - DEFAULT_RATE, 1, INT32_MAX), - SPA_FORMAT_AUDIO_channels, &SPA_POD_CHOICE_RANGE_Int( - DEFAULT_CHANNELS, 1, MAX_PORTS), - 0); - } + if (direction == SPA_DIRECTION_INPUT || port->have_format) { + *param = spa_format_audio_raw_build(builder, + SPA_PARAM_EnumFormat, &port->format.info.raw); } else { - struct port *other = GET_IN_PORT(this, port_id); - *param = spa_format_audio_raw_build(builder, - SPA_PARAM_EnumFormat, &other->format.info.raw); + *param = spa_pod_builder_object(builder, + SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat, + SPA_FORMAT_mediaType, &SPA_POD_Id(SPA_MEDIA_TYPE_audio), + SPA_FORMAT_mediaSubtype, &SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw), + SPA_FORMAT_AUDIO_format, &SPA_POD_CHOICE_ENUM_Id(13, + SPA_AUDIO_FORMAT_F32, + SPA_AUDIO_FORMAT_F32, + SPA_AUDIO_FORMAT_F32P, + SPA_AUDIO_FORMAT_S32, + SPA_AUDIO_FORMAT_S32P, + SPA_AUDIO_FORMAT_S24_32, + SPA_AUDIO_FORMAT_S24_32P, + SPA_AUDIO_FORMAT_S24, + SPA_AUDIO_FORMAT_S24P, + SPA_AUDIO_FORMAT_S16, + SPA_AUDIO_FORMAT_S16P, + SPA_AUDIO_FORMAT_U8, + SPA_AUDIO_FORMAT_U8P), + SPA_FORMAT_AUDIO_rate, &SPA_POD_CHOICE_RANGE_Int( + DEFAULT_RATE, 1, INT32_MAX), + SPA_FORMAT_AUDIO_channels, &SPA_POD_CHOICE_RANGE_Int( + DEFAULT_CHANNELS, 1, MAX_PORTS), + 0); } break; default: diff --git a/spa/plugins/audioconvert/splitter.c b/spa/plugins/audioconvert/splitter.c index 2d868e73e..92c91fce8 100644 --- a/spa/plugins/audioconvert/splitter.c +++ b/spa/plugins/audioconvert/splitter.c @@ -104,8 +104,10 @@ static int init_port(struct impl *this, uint32_t port_id, uint32_t rate, uint32_ struct port *port = GET_OUT_PORT(this, port_id); port->id = port_id; - port->info.flags = SPA_PORT_INFO_FLAG_CAN_USE_BUFFERS; + snprintf(port->position, 7, "%s", rindex(spa_type_audio_channel[position].name, ':')+1); + + port->info.flags = SPA_PORT_INFO_FLAG_CAN_USE_BUFFERS; port->info_props_items[0] = SPA_DICT_ITEM_INIT("port.dsp", "32 bit float mono audio"); port->info_props_items[1] = SPA_DICT_ITEM_INIT("port.channel", port->position); port->info_props = SPA_DICT_INIT(port->info_props_items, 2); @@ -351,46 +353,39 @@ static int port_enum_formats(struct spa_node *node, switch (*index) { case 0: - if (direction == SPA_DIRECTION_INPUT) { - if (port->have_format) { - *param = spa_format_audio_raw_build(builder, - SPA_PARAM_EnumFormat, &port->format.info.raw); - } - else { - *param = spa_pod_builder_object(builder, - SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat, - SPA_FORMAT_mediaType, &SPA_POD_Id(SPA_MEDIA_TYPE_audio), - SPA_FORMAT_mediaSubtype, &SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw), - SPA_FORMAT_AUDIO_format, &SPA_POD_CHOICE_ENUM_Id(18, - SPA_AUDIO_FORMAT_F32, - SPA_AUDIO_FORMAT_F32P, - SPA_AUDIO_FORMAT_F32, - SPA_AUDIO_FORMAT_F32_OE, - SPA_AUDIO_FORMAT_S32P, - SPA_AUDIO_FORMAT_S32, - SPA_AUDIO_FORMAT_S32_OE, - SPA_AUDIO_FORMAT_S24_32P, - SPA_AUDIO_FORMAT_S24_32, - SPA_AUDIO_FORMAT_S24_32_OE, - SPA_AUDIO_FORMAT_S24P, - SPA_AUDIO_FORMAT_S24, - SPA_AUDIO_FORMAT_S24_OE, - SPA_AUDIO_FORMAT_S16P, - SPA_AUDIO_FORMAT_S16, - SPA_AUDIO_FORMAT_S16_OE, - SPA_AUDIO_FORMAT_U8P, - SPA_AUDIO_FORMAT_U8), - SPA_FORMAT_AUDIO_rate, &SPA_POD_CHOICE_RANGE_Int( - DEFAULT_RATE, 1, INT32_MAX), - SPA_FORMAT_AUDIO_channels, &SPA_POD_CHOICE_RANGE_Int( - DEFAULT_CHANNELS, 1, MAX_PORTS), - 0); - } + if (direction == SPA_DIRECTION_OUTPUT || port->have_format) { + *param = spa_format_audio_raw_build(builder, + SPA_PARAM_EnumFormat, &port->format.info.raw); } else { - struct port *other = GET_OUT_PORT(this, port_id); - *param = spa_format_audio_raw_build(builder, - SPA_PARAM_EnumFormat, &other->format.info.raw); + *param = spa_pod_builder_object(builder, + SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat, + SPA_FORMAT_mediaType, &SPA_POD_Id(SPA_MEDIA_TYPE_audio), + SPA_FORMAT_mediaSubtype, &SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw), + SPA_FORMAT_AUDIO_format, &SPA_POD_CHOICE_ENUM_Id(18, + SPA_AUDIO_FORMAT_F32, + SPA_AUDIO_FORMAT_F32P, + SPA_AUDIO_FORMAT_F32, + SPA_AUDIO_FORMAT_F32_OE, + SPA_AUDIO_FORMAT_S32P, + SPA_AUDIO_FORMAT_S32, + SPA_AUDIO_FORMAT_S32_OE, + SPA_AUDIO_FORMAT_S24_32P, + SPA_AUDIO_FORMAT_S24_32, + SPA_AUDIO_FORMAT_S24_32_OE, + SPA_AUDIO_FORMAT_S24P, + SPA_AUDIO_FORMAT_S24, + SPA_AUDIO_FORMAT_S24_OE, + SPA_AUDIO_FORMAT_S16P, + SPA_AUDIO_FORMAT_S16, + SPA_AUDIO_FORMAT_S16_OE, + SPA_AUDIO_FORMAT_U8P, + SPA_AUDIO_FORMAT_U8), + SPA_FORMAT_AUDIO_rate, &SPA_POD_CHOICE_RANGE_Int( + DEFAULT_RATE, 1, INT32_MAX), + SPA_FORMAT_AUDIO_channels, &SPA_POD_CHOICE_RANGE_Int( + DEFAULT_CHANNELS, 1, MAX_PORTS), + 0); } break; default: