diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2024-01-17 13:11:23 +0200 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2024-01-29 12:11:17 +0000 |
commit | ed344ae0d62b25f73c8816a2c8fb6e8168424425 (patch) | |
tree | 7355a0626d69705ee9acfd71198366c494e1d3c8 | |
parent | d5c1fb29dc1ae6f5d0dd6ddba1657a1feb1b9f62 (diff) |
Add wireplumber-config-agl bbappend
This policy will change the default video source device to a
USB based camera device, such that camera-gstreamer (with default pipewiresrc)
would use the USB camera device to grab video frames.
Bug-AGL: SPEC-5024
Change-Id: I8dc124e1855de21e00dede6ff99f8b148f80b6dc
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29599
ci-image-build: Jenkins Job builder account
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tested-by: Jenkins Job builder account
ci-image-boot-test: Jenkins Job builder account
-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/ +} + |