From 8aec26f5bdd478e5ca9cf0f00267bf1793b3d6a3 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 12 Jan 2021 21:45:28 +0100 Subject: [PATCH] v4l2-monitor: make nicer names --- src/daemon/media-session.d/v4l2-monitor.conf | 4 ++-- src/examples/media-session/v4l2-monitor.c | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/daemon/media-session.d/v4l2-monitor.conf b/src/daemon/media-session.d/v4l2-monitor.conf index 89aa09cf5..c51174299 100644 --- a/src/daemon/media-session.d/v4l2-monitor.conf +++ b/src/daemon/media-session.d/v4l2-monitor.conf @@ -25,11 +25,11 @@ rules = [ matches = [ { # matches all sinks - node.name = ~api.v4l2.sink.* + node.name = ~v4l2_input.* } { # matches all sources - node.name = ~api.v4l2.source.* + node.name = ~v4l2_output.* } ] actions = { diff --git a/src/examples/media-session/v4l2-monitor.c b/src/examples/media-session/v4l2-monitor.c index 559fa35a2..5b79c4b4c 100644 --- a/src/examples/media-session/v4l2-monitor.c +++ b/src/examples/media-session/v4l2-monitor.c @@ -127,7 +127,7 @@ static struct node *v4l2_create_node(struct device *dev, uint32_t id, struct node *node; struct impl *impl = dev->impl; int i, res; - const char *str, *d, *rules; + const char *prefix, *str, *d, *rules; pw_log_debug("new node %u", id); @@ -152,7 +152,17 @@ static struct node *v4l2_create_node(struct device *dev, uint32_t id, str = pw_properties_get(dev->props, SPA_KEY_DEVICE_ALIAS); if (str == NULL) str = "v4l2-device"; - pw_properties_setf(node->props, PW_KEY_NODE_NAME, "%s.%s", info->factory_name, str); + if (strstr(str, "v4l2_device.") == str) + str += 12; + + if (strstr(info->factory_name, "sink") != NULL) + prefix = "v4l2_input"; + else if (strstr(info->factory_name, "source") != NULL) + prefix = "v4l2_output"; + else + prefix = info->factory_name; + + pw_properties_setf(node->props, PW_KEY_NODE_NAME, "%s.%s", prefix, str); for (i = 2; i <= 99; i++) { if ((d = pw_properties_get(node->props, PW_KEY_NODE_NAME)) == NULL) @@ -162,7 +172,7 @@ static struct node *v4l2_create_node(struct device *dev, uint32_t id, break; pw_properties_setf(node->props, PW_KEY_NODE_NAME, "%s.%s.%d", - info->factory_name, str, i); + prefix, str, i); } str = pw_properties_get(dev->props, SPA_KEY_DEVICE_DESCRIPTION); @@ -173,7 +183,7 @@ static struct node *v4l2_create_node(struct device *dev, uint32_t id, pw_properties_set(node->props, PW_KEY_FACTORY_NAME, info->factory_name); if ((rules = pw_properties_get(impl->conf, "rules")) != NULL) - sm_media_session_match_rules(rules, strlen(rules), dev->props); + sm_media_session_match_rules(rules, strlen(rules), node->props); node->impl = impl; node->device = dev;