From patchwork Sun Jan 21 22:39:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neal Gompa X-Patchwork-Id: 19439 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 08026BDB1C for ; Sun, 21 Jan 2024 22:41:21 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9372E62945; Sun, 21 Jan 2024 23:41:20 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1705876880; bh=s1q6g5YigLm9uvXy8ZyvaxXsaLmDWjtUXFxxeflmsF8=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=tTOimVt74zkeuVrrVI2mxth/u48P9eCho8ahf8Eay9ibtXeVDKRfbXPB8AtcD0BFK aVvEcEDZYW+kDl57CsQI37FnVsjj1CVY7zvfaQkie2OFTxNLpMzlfGbVgyriRT/YgU vdJKW5CMPSss7JUzytnXczF18EUVHUomsmAUBvo1/RKdb4MAf+1OQa+lv7/F6cWJ4Z 0GaL5RN0yOE9AiqCdhwGSC/VBS/kmFqMfdqiOEETIXAP3hmV/yArliiYKYb7kKlB8/ gwsUzFG5J9G2bN2ot/UtKT92tI10Eu9lBFo4Z3xhLt2vGzXdnmWrxYAEw2qOtnTzkQ SZjFIY3uqkA0w== Received: from mail-ot1-f47.google.com (mail-ot1-f47.google.com [209.85.210.47]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 111CD628B6 for ; Sun, 21 Jan 2024 23:41:18 +0100 (CET) Received: by mail-ot1-f47.google.com with SMTP id 46e09a7af769-6dbcebaf9a9so1504010a34.3 for ; Sun, 21 Jan 2024 14:41:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705876876; x=1706481676; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jluHLwDS2gugrqvJ7nUpCu5D5BRpYUpBGRVQPffURUU=; b=S5sPUj+V9Y2M8LkN0Fm4Jru8gzY7KvFCnSVvPAPNv/wMKywPULOOhL3hMZz+IdURH7 BPmf2vpHXGSTHYqZALVldzilAQX8bZp84cmw2JMD46yI5mn1D72VUlaHxf/dfN8M93FF ifSSyjtdkJRKvy8nMky5mCQl+fk32W/hW08K6H/Jr5mKetBkiMAJnUvxdRkIQNmPSSXo Pfb2aN12mNELs7+coCfNHfpCbPA3Cyw0wQk4yq7fqdwejt7Xnvv3z3pe/yNCCnbBcYaB SChJOOCQOb4kwGeu6Vitx6YqNELL0zWJRVBS3uqW8e6tOJKyFL5h6orRlCIqHhdfZeeI 7cnA== X-Gm-Message-State: AOJu0YxxF4zigrsmIZoonJJ4n6Enk88dgGQly5qpEVbvBLF/Hc4x0m+6 R9+DkKUt7KoZMTjbTGAh81d4APy5zTp1jGHwEQFA255M1bWl4qiNaWhs2XxxfNq4Yw== X-Google-Smtp-Source: AGHT+IHWXygeVHQE6nYgDxpc+tC/kl9MkKVcEz094qbnLj5Twd7K0Y1nMJk2tfa2O/mSn/3EqgXzcg== X-Received: by 2002:a05:6830:3288:b0:6dc:8656:ae45 with SMTP id m8-20020a056830328800b006dc8656ae45mr2453541ott.33.1705876875705; Sun, 21 Jan 2024 14:41:15 -0800 (PST) Received: from Belldandy-Slimbook.infra.opensuse.org ([32.220.181.243]) by smtp.gmail.com with ESMTPSA id e2-20020ac84b42000000b0042a233d21c2sm1930112qts.80.2024.01.21.14.41.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Jan 2024 14:41:14 -0800 (PST) To: libcamera-devel Date: Sun, 21 Jan 2024 17:39:53 -0500 Message-ID: <20240121224052.1049989-2-neal@gompa.dev> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240121224052.1049989-1-neal@gompa.dev> References: <20240121224052.1049989-1-neal@gompa.dev> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 1/3] apps: qcam: Port to Qt 6 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Neal Gompa via libcamera-devel From: Neal Gompa Reply-To: Neal Gompa Cc: Wim Taymans , Neal Gompa Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Open source Qt 5 has been effectively end of life since the release of Qt 6, and Qt 6 has current LTS releases now. This change ports qcam to Qt 6.2 and drops some of the baggage related to Qt 5 that is no longer applicable. Signed-off-by: Neal Gompa Reviewed-by: Eric Curtin --- README.rst | 2 +- meson.build | 2 +- src/apps/qcam/meson.build | 45 +++++++++++---------------------------- 3 files changed, 15 insertions(+), 34 deletions(-) diff --git a/README.rst b/README.rst index 315738ee..6f1c9302 100644 --- a/README.rst +++ b/README.rst @@ -88,7 +88,7 @@ for cam: [optional] - libsdl2-dev: Enables the SDL sink for qcam: [optional] - libtiff-dev qtbase5-dev qttools5-dev-tools + libtiff-dev qt6-base-dev qt6-tools-dev-tools for tracing with lttng: [optional] liblttng-ust-dev python3-jinja2 lttng-tools diff --git a/meson.build b/meson.build index cb6b666a..4c315e2a 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ # SPDX-License-Identifier: CC0-1.0 project('libcamera', 'c', 'cpp', - meson_version : '>= 0.60', + meson_version : '>= 0.63', version : '0.2.0', default_options : [ 'werror=true', diff --git a/src/apps/qcam/meson.build b/src/apps/qcam/meson.build index 6cf4c171..c7fcfbeb 100644 --- a/src/apps/qcam/meson.build +++ b/src/apps/qcam/meson.build @@ -1,13 +1,13 @@ # SPDX-License-Identifier: CC0-1.0 -qt5 = import('qt5') -qt5_dep = dependency('qt5', +qt6 = import('qt6') +qt6_dep = dependency('qt6', method : 'pkg-config', - modules : ['Core', 'Gui', 'Widgets'], + modules : ['Core', 'Gui', 'OpenGL', 'OpenGLWidgets', 'Widgets'], required : get_option('qcam'), - version : '>=5.4') + version : '>=6.2') -if not qt5_dep.found() +if not qt6_dep.found() qcam_enabled = false subdir_done() endif @@ -20,46 +20,27 @@ qcam_sources = files([ 'main.cpp', 'main_window.cpp', 'message_handler.cpp', + 'viewfinder_gl.cpp', 'viewfinder_qt.cpp', ]) qcam_moc_headers = files([ 'cam_select_dialog.h', 'main_window.h', + 'viewfinder_gl.h', 'viewfinder_qt.h', ]) qcam_resources = files([ 'assets/feathericons/feathericons.qrc', + 'assets/shader/shaders.qrc', ]) -qt5_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] +qt6_cpp_args = [apps_cpp_args, '-DQT_NO_KEYWORDS'] -if cxx.has_header_symbol('QOpenGLWidget', 'QOpenGLWidget', - dependencies : qt5_dep, args : '-fPIC') - qcam_sources += files([ - 'viewfinder_gl.cpp', - ]) - qcam_moc_headers += files([ - 'viewfinder_gl.h', - ]) - qcam_resources += files([ - 'assets/shader/shaders.qrc' - ]) -endif - -# gcc 9 introduced a deprecated-copy warning that is triggered by Qt until -# Qt 5.13. clang 10 introduced the same warning, but detects more issues -# that are not fixed in Qt yet. Disable the warning manually in both cases. -if ((cc.get_id() == 'gcc' and cc.version().version_compare('>=9.0') and - qt5_dep.version().version_compare('<5.13')) or - (cc.get_id() == 'clang' and cc.version().version_compare('>=10.0'))) - qt5_cpp_args += ['-Wno-deprecated-copy'] -endif - -resources = qt5.preprocess(moc_headers : qcam_moc_headers, +resources = qt6.preprocess(moc_headers : qcam_moc_headers, qresources : qcam_resources, - dependencies : qt5_dep) + dependencies : qt6_dep) qcam = executable('qcam', qcam_sources, resources, install : true, @@ -69,6 +50,6 @@ qcam = executable('qcam', qcam_sources, resources, libatomic, libcamera_public, libtiff, - qt5_dep, + qt6_dep, ], - cpp_args : qt5_cpp_args) + cpp_args : qt6_cpp_args) From patchwork Sun Jan 21 22:39:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neal Gompa X-Patchwork-Id: 19440 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 128CBC3243 for ; Sun, 21 Jan 2024 22:41:22 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 631E16294A; Sun, 21 Jan 2024 23:41:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1705876881; bh=2IOA5LSwkIYe2t2uKNwZbUxIq68v9wUt0PueHKvZIBw=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=qKnfdlpkDPOEGZ99ykoc+pqJHVXBNyi2/gYBT9LDp/Nqs4ggmMXJnTgLRV856HCxd d/COAzYL03vdnXz0f4f+R1W18RbrElooa+bI6flBoCjKrFJ7Ug/xIm6ZdGMYtEGGWM MGLt1u/vc2+lYuxJXuElG0eMXM1lS8SOwMMHi3o1WBTw16xbMn/7xVK6IhYH1TQ33e 6zehoFVfTpdpZhdrBeN2wwhBqWryW4dbFne31sPA4azpGyd04wzjXVljHWjSG9FOQv nXfiWmukjTDgsr2vJtfmSqYq0U0wM+tPsqySZSFYi/tWTYU9EBY+lJMEquohhdHjLL NkAvMAnDUTVPA== Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 5266D62948 for ; Sun, 21 Jan 2024 23:41:19 +0100 (CET) Received: by mail-qt1-f170.google.com with SMTP id d75a77b69052e-42a35982b12so12525141cf.1 for ; Sun, 21 Jan 2024 14:41:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705876877; x=1706481677; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u7AdEcFtxh1pw1rZFB0Qkpu/9GRWbOsHXvsoXS3f3Ng=; b=pil8kHyRbv3f9rzwGcUEuLvrm5ImeylY+2vWCtgHZIudflE2odLBmOovbn1djDmzJ5 reSr+xysLUBP3I1Z1b8xfrhkcXIwQEoPqHjQOED+SGdWT+qOJeTwANuGSRqeHxVwqqcs fK7WHdDPawZuLRLO6yVCTuRAFGErMG0QhYacBOpRZRxUjlgkfZY41n5edmbkfqomCmYh qt1jUM3f7SEX1eSPnaS8gyn/a/zG3IMgcLJGLqoo4WdorxEVqcqRa2CJJJTlrWTUiiae vyP6W9vvQU/cKKTy/hDcZS99JOaP6BXFUgtOeJawRcUTuJRh5nbdJCryaLQYXAKyPacc upnQ== X-Gm-Message-State: AOJu0YxKlAmH22SJUc8Pzd09M9oYIZjh2DrfudHMAszhHUrDOGkrcPrj lr3w8ulxVA16UsAHz2t9M+P8B/iVRMkSuxIda6Ur0UmbwZpirllCzbAsvOrz5+9w8w== X-Google-Smtp-Source: AGHT+IG7cZAChxASjMFR5lhglDTWLk52TICjjBB+EMYARKJHeCwWVYaE14ROKtJMm2oH1/Ava8h9VA== X-Received: by 2002:a05:622a:1394:b0:42a:3e49:b648 with SMTP id o20-20020a05622a139400b0042a3e49b648mr1448219qtk.120.1705876877479; Sun, 21 Jan 2024 14:41:17 -0800 (PST) Received: from Belldandy-Slimbook.infra.opensuse.org ([32.220.181.243]) by smtp.gmail.com with ESMTPSA id e2-20020ac84b42000000b0042a233d21c2sm1930112qts.80.2024.01.21.14.41.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Jan 2024 14:41:16 -0800 (PST) To: libcamera-devel Date: Sun, 21 Jan 2024 17:39:54 -0500 Message-ID: <20240121224052.1049989-3-neal@gompa.dev> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240121224052.1049989-1-neal@gompa.dev> References: <20240121224052.1049989-1-neal@gompa.dev> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 2/3] libcamera: base: signal: Update Qt documentation link to Qt 6 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Neal Gompa via libcamera-devel From: Neal Gompa Reply-To: Neal Gompa Cc: Wim Taymans , Neal Gompa Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The documentation is effectively the same, but we should be pointing to the actively supported and used Qt version. Signed-off-by: Neal Gompa Reviewed-by: Laurent Pinchart Reviewed-by: Eric Curtin --- src/libcamera/base/signal.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcamera/base/signal.cpp b/src/libcamera/base/signal.cpp index a46386a0..02290ad7 100644 --- a/src/libcamera/base/signal.cpp +++ b/src/libcamera/base/signal.cpp @@ -74,7 +74,7 @@ SignalBase::SlotList SignalBase::slots() * * Signals and slots are a language construct aimed at communication between * objects through the observer pattern without the need for boilerplate code. - * See http://doc.qt.io/qt-5/signalsandslots.html for more information. + * See http://doc.qt.io/qt-6/signalsandslots.html for more information. * * Signals model events that can be observed from objects unrelated to the event * source. Slots are functions that are called in response to a signal. Signals From patchwork Sun Jan 21 22:39:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Neal Gompa X-Patchwork-Id: 19441 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 3E239BDB1C for ; Sun, 21 Jan 2024 22:41:24 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id D999E6294E; Sun, 21 Jan 2024 23:41:23 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org; s=mail; t=1705876883; bh=vjFOwRWAlqXCiBtK2zhm1wu5u2KX86VmloQcqlcVJ3s=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=KlpQjjLxgkzNif+ycqmIhEcNGJtvBsrMv8BTuvjQt1x5o+nFheeuSjLOje69RtTdy 7t3QG2ZRG3QGJlQihZ+LjtlSP3HGGiYtIap5Ow2SeNpGHBi9uIK/utyAUs3FWkcxW3 aYmh2CcCcFwUOzK+ju7lEMWDeBE2RR3Ez3YDcm/mDqIIyV0wX0MOq6u10rNHEGRb73 HhvT2fY8GZJ3fJYXGXmFB6fvSjhNUMf7de7lHFQ4msEV8xTuGvPz7yKBzcMl8bw+dA fIYCAdXiWbb3X+6KQ5OGeFQKlUOVWic+NI7+1Nwchhdij1vKPyKxhPrT7QDx6w97DP Dz5lixgrtr/Cw== Received: from mail-qt1-f171.google.com (mail-qt1-f171.google.com [209.85.160.171]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id BC5BF62948 for ; Sun, 21 Jan 2024 23:41:20 +0100 (CET) Received: by mail-qt1-f171.google.com with SMTP id d75a77b69052e-42a32ebdcdeso11547861cf.0 for ; Sun, 21 Jan 2024 14:41:20 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705876879; x=1706481679; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=91pKEPNEfL3OTK1npwLX5tdNWBYKKzaEOVSlhr931qk=; b=Hf1EZX7LLTHV/wy0PbovXl0reIPvECgpDNk/28Ty4PVFFDCeTyBQ5xDkGel3LYMPnM 1qgOwOz9mccURxtx/Lm9hRzOTq2GOoPLEh2mQdZ78twYx7BjqvUMzoEthuWFT0idsD5x ZZCPNiPltKnCohdkv8JKPjYF6jPmDoK1I8wxORWVOB74XyrDJSHFTqSmVMeWHnIEuDKa ++grI5/7Vu5GBiYB+09q9V4m6qT6VgW5pLATDEyQiqUyiGR8U/dPqh/cSnIJaI080IQD /7lnUBT/NBuHNBEDEFM3RpZt4qVckg9KszearEYUKDXgDlgHiJAASImPwwLzli13nn+Q hYnw== X-Gm-Message-State: AOJu0Yz3ENc92z6/Rvvc36UbD0ESjlcAgAheyGNwnTTygXE1nQ931xaf +qiZojunLXnCoVwDao2tGLnk5fYri3qDMjCpr4mEDEGFIoLt8h8NSX8dslTizGY1XA== X-Google-Smtp-Source: AGHT+IEILPM+8EFLqxFCx0HyDlr7taVyq9evO5Sc4tIUM+IuZyK9jJwjO5PCt0j8BJi7XgFPfgeV0g== X-Received: by 2002:a05:622a:50:b0:42a:2c06:8d80 with SMTP id y16-20020a05622a005000b0042a2c068d80mr5823547qtw.132.1705876879193; Sun, 21 Jan 2024 14:41:19 -0800 (PST) Received: from Belldandy-Slimbook.infra.opensuse.org ([32.220.181.243]) by smtp.gmail.com with ESMTPSA id e2-20020ac84b42000000b0042a233d21c2sm1930112qts.80.2024.01.21.14.41.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 21 Jan 2024 14:41:17 -0800 (PST) To: libcamera-devel Date: Sun, 21 Jan 2024 17:39:55 -0500 Message-ID: <20240121224052.1049989-4-neal@gompa.dev> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240121224052.1049989-1-neal@gompa.dev> References: <20240121224052.1049989-1-neal@gompa.dev> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH v2 3/3] Documentation: Update Qt documentation links to Qt 6 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Neal Gompa via libcamera-devel From: Neal Gompa Reply-To: Neal Gompa Cc: Wim Taymans , Neal Gompa Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" The documentation is effectively the same, but we should be pointing to the actively supported and used Qt version. Signed-off-by: Neal Gompa Reviewed-by: Laurent Pinchart Reviewed-by: Eric Curtin --- Documentation/guides/application-developer.rst | 2 +- Documentation/guides/pipeline-handler.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Documentation/guides/application-developer.rst b/Documentation/guides/application-developer.rst index c46d3362..9a9905b1 100644 --- a/Documentation/guides/application-developer.rst +++ b/Documentation/guides/application-developer.rst @@ -348,7 +348,7 @@ The libcamera library uses the concept of `signals and slots` (similar to `Qt Signals and Slots`_) to connect events with callbacks to handle them. .. _signals and slots: https://libcamera.org/api-html/classlibcamera_1_1Signal.html#details -.. _Qt Signals and Slots: https://doc.qt.io/qt-5/signalsandslots.html +.. _Qt Signals and Slots: https://doc.qt.io/qt-6/signalsandslots.html The ``Camera`` device emits two signals that applications can connect to in order to execute callbacks on frame completion events. diff --git a/Documentation/guides/pipeline-handler.rst b/Documentation/guides/pipeline-handler.rst index 26dc9358..2046a2e7 100644 --- a/Documentation/guides/pipeline-handler.rst +++ b/Documentation/guides/pipeline-handler.rst @@ -1422,7 +1422,7 @@ emitted triggers the execution of the connected slots. A detailed description of the libcamera implementation is available in the `libcamera Signal and Slot`_ classes documentation. -.. _Qt Signals and Slots: https://doc.qt.io/qt-5/signalsandslots.html +.. _Qt Signals and Slots: https://doc.qt.io/qt-6/signalsandslots.html .. _libcamera Signal and Slot: https://libcamera.org/api-html/classlibcamera_1_1Signal.html#details In order to notify applications about the availability of new frames and data,