From 591d0b4370464a518b766451eb893285135cfc77 Mon Sep 17 00:00:00 2001 From: Ashok Sidipotu Date: Fri, 21 Jul 2023 17:19:09 +0530 Subject: [PATCH] camera-monitors: add a config property for camera discovery timeout --- src/config/wireplumber.conf.d/device.conf | 3 +++ src/scripts/lib/device-config.lua | 1 + src/scripts/lib/monitor-utils.lua | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/config/wireplumber.conf.d/device.conf b/src/config/wireplumber.conf.d/device.conf index c50b0afe..e3409705 100644 --- a/src/config/wireplumber.conf.d/device.conf +++ b/src/config/wireplumber.conf.d/device.conf @@ -23,4 +23,7 @@ wireplumber.settings = { ## Sets the default echo-cancel-source node name to automatically switch to # device.echo-cancel-source-name = "echo-cancel-source" + + ## The device discovery time out(in milli sec) between V4L2 and libcamera. + # device.camera-discovery-timeout = 100 } diff --git a/src/scripts/lib/device-config.lua b/src/scripts/lib/device-config.lua index eafaaabb..32c0f684 100644 --- a/src/scripts/lib/device-config.lua +++ b/src/scripts/lib/device-config.lua @@ -15,6 +15,7 @@ local defaults = { ["auto-echo-cancel"] = true, ["echo-cancel-sink-name"] = "echo-cancel-sink", ["echo-cancel-source-name"] = "echo-cancel-source", + ["camera-discovery-timeout"] = 100, } return settings_manager.new ("device.", defaults) diff --git a/src/scripts/lib/monitor-utils.lua b/src/scripts/lib/monitor-utils.lua index 8d11576d..f2ea5123 100644 --- a/src/scripts/lib/monitor-utils.lua +++ b/src/scripts/lib/monitor-utils.lua @@ -7,7 +7,9 @@ -- Script is a Lua Module of monitor Lua utility functions +config = require ("device-config") log = Log.open_topic ("s-monitors-utils") +d_timeout = config["camera-discovery-timeout"] local mutils = { cam_data = {} @@ -102,7 +104,7 @@ function mutils.register_cam_node (self, parent, id, factory, properties) local other_api = api == "v4l2" and "libcamera" or "v4l2" if cam_api_data.enum_status and not cam_data[other_api].enum_status then log:trace (string.format ("\"%s\" armed a timer for %d", api, dev_num)) - cam_data.source = Core.timeout_add (100, function() + cam_data.source = Core.timeout_add (d_timeout, function() log:trace (string.format ("\"%s\" armed timer expired for %d", api, dev_num)) self:create_cam_node (dev_num) cam_data.source = nil