Merge pull request #67 from TsaiGaggery/fix-camera-v4l2-relayd-v2
intel-ipu7-camera: v4l2-relayd with OBS and Zoom fixes
This commit is contained in:
1 parent
b19cf292e8
commit
e3ed6931a0
11 files changed
+92
-237
No files matched your search
@@ -1,3 +1,19 @@
|
||||
_add_pipewire_camera() {
|
||||
local conf="$1"
|
||||
if [ -f "$conf" ] && ! grep -q 'PipeWireCamera' "$conf"; then
|
||||
if grep -q 'enable-features=' "$conf"; then
|
||||
sed -i 's/--enable-features=\([^ ]*\)/--enable-features=\1,PipeWireCamera/' "$conf"
|
||||
else
|
||||
echo '--enable-features=PipeWireCamera' >> "$conf"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
_remove_pipewire_camera() {
|
||||
local conf="$1"
|
||||
[ -f "$conf" ] && sed -i 's/,PipeWireCamera//g' "$conf"
|
||||
}
|
||||
|
||||
_install_sleep_hook() {
|
||||
cp /usr/share/intel-ipu7-camera/camera-sleep-hook /usr/lib/systemd/system-sleep/camera-sleep-hook
|
||||
chmod 755 /usr/lib/systemd/system-sleep/camera-sleep-hook
|
||||
@@ -7,44 +23,44 @@ post_install() {
|
||||
_install_sleep_hook
|
||||
systemctl daemon-reload
|
||||
systemctl enable camera-init.service
|
||||
systemctl --global enable camera-feed-watch.service
|
||||
systemctl enable v4l2-relayd@ipu7.service
|
||||
udevadm control --reload-rules 2>/dev/null || true
|
||||
|
||||
if [ -n "$SUDO_USER" ]; then
|
||||
usermod -aG video "$SUDO_USER" 2>/dev/null || true
|
||||
|
||||
# Start the service in the current user session if one is active
|
||||
local uid
|
||||
uid=$(id -u "$SUDO_USER" 2>/dev/null)
|
||||
if [ -n "$uid" ] && [ -d "/run/user/$uid" ]; then
|
||||
XDG_RUNTIME_DIR="/run/user/$uid" \
|
||||
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$uid/bus" \
|
||||
runuser -u "$SUDO_USER" -- \
|
||||
systemctl --user start camera-feed-watch.service 2>/dev/null || true
|
||||
fi
|
||||
_add_pipewire_camera "/home/$SUDO_USER/.config/chromium-flags.conf"
|
||||
_add_pipewire_camera "/home/$SUDO_USER/.config/brave-flags.conf"
|
||||
_add_pipewire_camera "/home/$SUDO_USER/.config/chrome-flags.conf"
|
||||
fi
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
_install_sleep_hook
|
||||
systemctl daemon-reload
|
||||
systemctl enable v4l2-relayd@ipu7.service
|
||||
# Disable old camera-feed-watch (replaced by v4l2-relayd)
|
||||
systemctl --global disable camera-feed-watch.service 2>/dev/null || true
|
||||
udevadm control --reload-rules 2>/dev/null || true
|
||||
|
||||
if [ -n "$SUDO_USER" ]; then
|
||||
_add_pipewire_camera "/home/$SUDO_USER/.config/chromium-flags.conf"
|
||||
_add_pipewire_camera "/home/$SUDO_USER/.config/brave-flags.conf"
|
||||
_add_pipewire_camera "/home/$SUDO_USER/.config/chrome-flags.conf"
|
||||
fi
|
||||
}
|
||||
|
||||
pre_remove() {
|
||||
systemctl disable v4l2-relayd@ipu7.service 2>/dev/null || true
|
||||
systemctl stop v4l2-relayd@ipu7.service 2>/dev/null || true
|
||||
systemctl --global disable camera-feed-watch.service 2>/dev/null || true
|
||||
systemctl disable camera-init.service 2>/dev/null || true
|
||||
systemctl stop camera-init.service 2>/dev/null || true
|
||||
|
||||
if [ -n "$SUDO_USER" ]; then
|
||||
local uid
|
||||
uid=$(id -u "$SUDO_USER" 2>/dev/null)
|
||||
if [ -n "$uid" ] && [ -d "/run/user/$uid" ]; then
|
||||
XDG_RUNTIME_DIR="/run/user/$uid" \
|
||||
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$uid/bus" \
|
||||
runuser -u "$SUDO_USER" -- \
|
||||
systemctl --user stop camera-feed-watch.service 2>/dev/null || true
|
||||
fi
|
||||
_remove_pipewire_camera "/home/$SUDO_USER/.config/chromium-flags.conf"
|
||||
_remove_pipewire_camera "/home/$SUDO_USER/.config/brave-flags.conf"
|
||||
_remove_pipewire_camera "/home/$SUDO_USER/.config/chrome-flags.conf"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user