diff options
-rw-r--r-- | recipes-multimedia/wireplumber/files/30-v4l2-monitor.lua | 59 | ||||
-rw-r--r-- | recipes-multimedia/wireplumber/wireplumber-config-agl_%.bbappend | 10 |
2 files changed, 69 insertions, 0 deletions
diff --git a/recipes-multimedia/wireplumber/files/30-v4l2-monitor.lua b/recipes-multimedia/wireplumber/files/30-v4l2-monitor.lua new file mode 100644 index 000000000..394386235 --- /dev/null +++ b/recipes-multimedia/wireplumber/files/30-v4l2-monitor.lua @@ -0,0 +1,59 @@ +-- V4L2 monitor config file; with selecting by default USB camera -- + +v4l2_monitor = {} +v4l2_monitor.properties = {} + +v4l2_monitor.rules = { + -- An array of matches/actions to evaluate. + { + -- Rules for matching a device or node. It is an array of + -- properties that all need to match the regexp. If any of the + -- matches work, the actions are executed for the object. + matches = { + { + -- This matches all cards. + { "device.name", "matches", "v4l2_device.*" }, + }, + }, + -- Apply properties on the matched object. + apply_properties = { + -- ["device.nick"] = "My Device", + }, + }, + { + matches = { + { + -- Matches all sources. + { "node.name", "matches", "v4l2_input.*" }, + }, + { + -- Matches all sinks. + { "node.name", "matches", "v4l2_output.*" }, + }, + }, + apply_properties = { + --["node.nick"] = "My Node", + --["priority.driver"] = 100, + --["priority.session"] = 100, + --["node.pause-on-idle"] = false, + }, + }, + { + matches = { + { + { "node.name", "matches", "v4l2_input*usb*" }, + }, + }, + apply_properties = { + ["priority.driver"] = 1300, + ["priority.session"] = 1300, + }, + }, +} + +function v4l2_monitor.enable() + load_monitor("v4l2", { + properties = v4l2_monitor.properties, + rules = v4l2_monitor.rules, + }) +end diff --git a/recipes-multimedia/wireplumber/wireplumber-config-agl_%.bbappend b/recipes-multimedia/wireplumber/wireplumber-config-agl_%.bbappend new file mode 100644 index 000000000..8f93868db --- /dev/null +++ b/recipes-multimedia/wireplumber/wireplumber-config-agl_%.bbappend @@ -0,0 +1,10 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +SRC_URI += "file://30-v4l2-monitor.lua" + +do_install:append() { + # override the one from meta-agl to be able to set as default USB camera + # such that camera-gstreamer and implicitly pipewire work out of the box + install -D -m 0644 ${WORKDIR}/30-v4l2-monitor.lua ${D}${sysconfdir}/wireplumber/host.lua.d/ +} + |