diff --git a/pipewire-v4l2/src/pipewire-v4l2.c b/pipewire-v4l2/src/pipewire-v4l2.c index eb1861cc3..11d84051c 100644 --- a/pipewire-v4l2/src/pipewire-v4l2.c +++ b/pipewire-v4l2/src/pipewire-v4l2.c @@ -779,9 +779,17 @@ static int v4l2_close(int fd) static int vidioc_querycap(struct file *file, struct v4l2_capability *arg) { int res = 0; + const char *str = NULL; + struct pw_node_info *info = file->node ? file->node->info : NULL; + + if (info != NULL && info->props != NULL) { + str = spa_dict_lookup(info->props, PW_KEY_NODE_DESCRIPTION); + } + if (str == NULL) + str = DEFAULT_CARD; spa_scnprintf((char*)arg->driver, sizeof(arg->driver), "%s", DEFAULT_DRIVER); - spa_scnprintf((char*)arg->card, sizeof(arg->card), "%s", DEFAULT_CARD); + spa_scnprintf((char*)arg->card, sizeof(arg->card), "%s", str); spa_scnprintf((char*)arg->bus_info, sizeof(arg->bus_info), "%s:%d", DEFAULT_BUS_INFO, 1); arg->version = KERNEL_VERSION(5, 2, 0);