diff --git a/pipewire-v4l2/src/pipewire-v4l2.c b/pipewire-v4l2/src/pipewire-v4l2.c index fbe71baea..88702f95b 100644 --- a/pipewire-v4l2/src/pipewire-v4l2.c +++ b/pipewire-v4l2/src/pipewire-v4l2.c @@ -672,7 +672,7 @@ static void registry_event_global(void *data, uint32_t id, const struct global_info *info = NULL; struct pw_proxy *proxy; const char *str; - uint32_t serial = SPA_ID_INVALID, dev; + uint32_t serial = SPA_ID_INVALID, dev, req_serial; if (spa_streq(type, PW_TYPE_INTERFACE_Node)) { @@ -692,6 +692,11 @@ static void registry_event_global(void *data, uint32_t id, !spa_atou32(str, &serial, 10)) return; + if ((str = getenv("PIPEWIRE_V4L2_TARGET")) != NULL + && spa_atou32(str, &req_serial, 10) + && req_serial != serial) + return; + dev = find_dev_for_serial(serial); if (dev != SPA_ID_INVALID && dev != file->dev_id) return;