This is an autogenerated patch header for a single-debian-patch file. The
delta against upstream is either kept as a single patch, or maintained
in some VCS, and exported as a single patch instead of more manageable
atomic patches.

--- webcamoid-9.0.0.orig/README.md
+++ webcamoid-9.0.0/README.md
@@ -2,7 +2,7 @@
 
 [Webcamoid](https://webcamoid.github.io/) is a full featured and multiplatform webcam suite.
 
-<a target="_blank" href="https://webcamoid.github.io/"><img src="https://webcamoid.github.io/theme/images/screenshots/Main.png" style="height: 240px;" /></a>
+<a target="_blank" href="https://webcamoid.github.io/"><img src="https://webcamoid.github.io/theme/images/screenshots/Main.webp" style="height: 240px;" /></a>
 
 ## Features ##
 
--- webcamoid-9.0.0.orig/StandAlone/DefaultTheme.qrc
+++ webcamoid-9.0.0/StandAlone/DefaultTheme.qrc
@@ -14,6 +14,7 @@
         <file>share/themes/WebcamoidTheme/Drawer.qml</file>
         <file>share/themes/WebcamoidTheme/Frame.qml</file>
         <file>share/themes/WebcamoidTheme/GroupBox.qml</file>
+        <file>share/themes/WebcamoidTheme/HorizontalHeaderView.qml</file>
         <file>share/themes/WebcamoidTheme/ItemDelegate.qml</file>
         <file>share/themes/WebcamoidTheme/Label.qml</file>
         <file>share/themes/WebcamoidTheme/Menu.qml</file>
@@ -35,6 +36,7 @@
         <file>share/themes/WebcamoidTheme/ScrollView.qml</file>
         <file>share/themes/WebcamoidTheme/Slider.qml</file>
         <file>share/themes/WebcamoidTheme/SpinBox.qml</file>
+        <file>share/themes/WebcamoidTheme/SplitView.qml</file>
         <file>share/themes/WebcamoidTheme/StackView.qml</file>
         <file>share/themes/WebcamoidTheme/SwipeDelegate.qml</file>
         <file>share/themes/WebcamoidTheme/SwipeView.qml</file>
@@ -49,6 +51,7 @@
         <file>share/themes/WebcamoidTheme/ToolSeparator.qml</file>
         <file>share/themes/WebcamoidTheme/ToolTip.qml</file>
         <file>share/themes/WebcamoidTheme/Tumbler.qml</file>
+        <file>share/themes/WebcamoidTheme/VerticalHeaderView.qml</file>
         <file>share/themes/WebcamoidTheme/Private/qmldir</file>
         <file>share/themes/WebcamoidTheme/Private/IconLabel.qml</file>
     </qresource>
--- webcamoid-9.0.0.orig/StandAlone/ManPages/CMakeLists.txt
+++ webcamoid-9.0.0/StandAlone/ManPages/CMakeLists.txt
@@ -35,5 +35,5 @@ if (GZIP_TOOL)
                       VERBATIM
                       SOURCES src/webcamoid.1.in)
 
-    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/src/webcamoid.1.gz DESTINATION ${CMAKE_INSTALL_MANDIR})
+    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/src/webcamoid.1.gz DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
 endif ()
--- webcamoid-9.0.0.orig/StandAlone/share/qml/AboutDialog.qml
+++ webcamoid-9.0.0/StandAlone/share/qml/AboutDialog.qml
@@ -39,7 +39,7 @@ Dialog {
             Layout.fillWidth: true
 
             TabButton {
-                /*: Information of the program, like name, description, vesion,
+                /*: Information of the program, like name, description, version,
                     etc..
                  */
                 text: qsTr("About")
--- webcamoid-9.0.0.orig/StandAlone/share/qml/OptionList.qml
+++ webcamoid-9.0.0/StandAlone/share/qml/OptionList.qml
@@ -53,8 +53,8 @@ ListView {
               lsvOptionList.textRole?
                   lsvOptionList.model.get(index)[lsvOptionList.textRole]:
                   lsvOptionList.model[index]
-        anchors.right: parent.right
-        anchors.left: parent.left
+        anchors.right: parent? parent.right: undefined
+        anchors.left: parent? parent.left: undefined
         visible: mediaTools.matches(filter, optionValues(index))
         height: visible? implicitHeight: 0
         highlighted: lsvOptionList.currentItem == this
--- webcamoid-9.0.0.orig/StandAlone/share/qml/VideoEffectsList.qml
+++ webcamoid-9.0.0/StandAlone/share/qml/VideoEffectsList.qml
@@ -73,8 +73,8 @@ ScrollView {
                       effectsList.model.get(index)?
                           effectsList.model.get(index)["description"]:
                           ""
-                anchors.right: parent.right
-                anchors.left: parent.left
+                anchors.right: parent? parent.right: undefined
+                anchors.left: parent? parent.left: undefined
                 height: implicitHeight
 
                 onClicked:
--- webcamoid-9.0.0.orig/StandAlone/share/qml/main.qml
+++ webcamoid-9.0.0/StandAlone/share/qml/main.qml
@@ -239,13 +239,16 @@ ApplicationWindow {
             height: AkUnit.create(64 * AkTheme.controlScale, "dp").pixels
             Layout.fillWidth: true
 
+            readonly property real smallButton: AkUnit.create(48 * AkTheme.controlScale, "dp").pixels
+            readonly property real bigButton: AkUnit.create(64 * AkTheme.controlScale, "dp").pixels
+            readonly property real previewSize: AkUnit.create(32 * AkTheme.controlScale, "dp").pixels
             readonly property int animationTime: 200
 
             Image {
                 id: photoPreview
                 source: pathToUrl(recording.lastPhotoPreview)
-                width: AkUnit.create(32 * AkTheme.controlScale, "dp").pixels
-                height: AkUnit.create(32 * AkTheme.controlScale, "dp").pixels
+                width: cameraControls.previewSize
+                height: cameraControls.previewSize
                 sourceSize: Qt.size(width, height)
                 asynchronous: true
                 cache: false
@@ -271,8 +274,8 @@ ApplicationWindow {
             RoundButton {
                 id: photoButton
                 icon.source: "image://icons/photo"
-                width: AkUnit.create(64 * AkTheme.controlScale, "dp").pixels
-                height: AkUnit.create(64 * AkTheme.controlScale, "dp").pixels
+                width: cameraControls.bigButton
+                height: cameraControls.bigButton
                 x: (parent.width - width) / 2
                 y: (parent.height - height) / 2
                 ToolTip.visible: hovered
@@ -320,8 +323,8 @@ ApplicationWindow {
                 icon.source: recording.state == AkElement.ElementStateNull?
                                  "image://icons/video":
                                  "image://icons/record-stop"
-                width: AkUnit.create(48 * AkTheme.controlScale, "dp").pixels
-                height: AkUnit.create(48 * AkTheme.controlScale, "dp").pixels
+                width: cameraControls.smallButton
+                height: cameraControls.smallButton
                 x: parent.width - width
                 y: (parent.height - height) / 2
                 ToolTip.visible: hovered
@@ -382,20 +385,20 @@ ApplicationWindow {
                     }
                     PropertyChanges {
                         target: photoButton
-                        width: AkUnit.create(48 * AkTheme.controlScale, "dp").pixels
-                        height: AkUnit.create(48 * AkTheme.controlScale, "dp").pixels
+                        width: cameraControls.smallButton
+                        height: cameraControls.smallButton
                         x: 0
                     }
                     PropertyChanges {
                         target: videoButton
-                        width: AkUnit.create(64 * AkTheme.controlScale, "dp").pixels
-                        height: AkUnit.create(64 * AkTheme.controlScale, "dp").pixels
+                        width: cameraControls.bigButton
+                        height: cameraControls.bigButton
                         x: (parent.width - width) / 2
                     }
                     PropertyChanges {
                         target: videoPreview
-                        width: AkUnit.create(32 * AkTheme.controlScale, "dp").pixels
-                        height: AkUnit.create(32 * AkTheme.controlScale, "dp").pixels
+                        width: cameraControls.previewSize
+                        height: cameraControls.previewSize
                         visible: true
                     }
                 }
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ApplicationWindow.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ApplicationWindow.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Window 2.12
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.ApplicationWindow {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/BusyIndicator.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/BusyIndicator.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.BusyIndicator {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Button.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Button.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/CheckBox.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/CheckBox.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/CheckDelegate.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/CheckDelegate.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ComboBox.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ComboBox.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.ComboBox {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/DelayButton.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/DelayButton.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Dial.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Dial.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import QtQuick.Shapes 1.12
 import Ak 1.0
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Dialog.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Dialog.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.Dialog {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/DialogButtonBox.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/DialogButtonBox.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.DialogButtonBox {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Drawer.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Drawer.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.Drawer {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Frame.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Frame.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.Frame {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/GroupBox.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/GroupBox.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.GroupBox {
--- /dev/null
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/HorizontalHeaderView.qml
@@ -0,0 +1,51 @@
+/* Webcamoid, webcam capture application.
+ * Copyright (C) 2022  Gonzalo Exequiel Pedone
+ *
+ * Webcamoid is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Webcamoid is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Webcamoid. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Web-Site: http://webcamoid.github.io/
+ */
+
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Templates 2.15 as T
+import Ak 1.0
+
+T.HorizontalHeaderView {
+    id: control
+    implicitWidth: syncView? syncView.width: 0
+    implicitHeight: contentHeight
+
+    delegate: Rectangle {
+        implicitWidth: text.implicitWidth + 2 * cellPadding
+        implicitHeight: Math.max(control.height,
+                                 text.implicitHeight + 2 * cellPadding)
+        color: AkTheme.palette.active.window
+
+        readonly property real cellPadding:
+            AkUnit.create(8 * AkTheme.controlScale, "dp").pixels
+
+        Text {
+            id: text
+            text: model[control.textRole]
+            width: parent.width
+            height: parent.height
+            horizontalAlignment: Text.AlignHCenter
+            verticalAlignment: Text.AlignVCenter
+            color: enabled?
+                       AkTheme.palette.active.text:
+                       AkTheme.palette.disabled.text
+        }
+    }
+}
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ItemDelegate.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ItemDelegate.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Label.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Label.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.Label {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Menu.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Menu.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import QtQuick.Window 2.12
 import Ak 1.0
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/MenuBar.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/MenuBar.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.MenuBar {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/MenuBarItem.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/MenuBarItem.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/MenuItem.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/MenuItem.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/MenuSeparator.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/MenuSeparator.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.MenuSeparator {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Page.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Page.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.Page {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/PageIndicator.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/PageIndicator.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.PageIndicator {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Pane.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Pane.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.Pane {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Popup.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Popup.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.Popup {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ProgressBar.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ProgressBar.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.ProgressBar {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/RadioButton.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/RadioButton.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/RadioDelegate.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/RadioDelegate.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/RangeSlider.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/RangeSlider.qml
@@ -20,7 +20,7 @@
 import QtQuick 2.12
 import QtQuick.Controls 2.5
 import QtQuick.Layouts 1.3
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.RangeSlider {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/RoundButton.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/RoundButton.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ScrollBar.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ScrollBar.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.ScrollBar {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ScrollIndicator.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ScrollIndicator.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.ScrollIndicator {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ScrollView.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ScrollView.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.ScrollView {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Slider.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Slider.qml
@@ -20,7 +20,7 @@
 import QtQuick 2.12
 import QtQuick.Controls 2.5
 import QtQuick.Layouts 1.3
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.Slider {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/SpinBox.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/SpinBox.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.SpinBox {
--- /dev/null
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/SplitView.qml
@@ -0,0 +1,75 @@
+/* Webcamoid, webcam capture application.
+ * Copyright (C) 2022  Gonzalo Exequiel Pedone
+ *
+ * Webcamoid is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Webcamoid is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Webcamoid. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Web-Site: http://webcamoid.github.io/
+ */
+
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Templates 2.15 as T
+import Ak 1.0
+
+T.SplitView {
+    id: control
+    implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset,
+                            implicitContentWidth + leftPadding + rightPadding)
+    implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset,
+                            implicitContentHeight + topPadding + bottomPadding)
+
+    handle: Rectangle {
+        id: handle
+        implicitWidth: control.orientation === Qt.Horizontal?
+            thickness:
+            control.width
+        implicitHeight: control.orientation === Qt.Horizontal?
+            control.height:
+            thickness
+        color: T.SplitHandle.pressed?
+                    AkTheme.palette.active.light:
+               T.SplitHandle.hovered?
+                    AkTheme.palette.active.mid:
+                    AkTheme.palette.active.dark
+
+        readonly property int thickness:
+            AkUnit.create(4 * AkTheme.controlScale, "dp").pixels
+
+        Rectangle {
+            color: AkTheme.palette.active.highlight
+            width: control.orientation === Qt.Horizontal?
+                thickness:
+                length
+            height: control.orientation === Qt.Horizontal?
+                length:
+                thickness
+            radius: thickness
+            x: (parent.width - width) / 2
+            y: (parent.height - height) / 2
+
+            property int length: parent.T.SplitHandle.pressed?
+                handle.thickness / 2:
+                2 * handle.thickness
+            readonly property int thickness: parent.T.SplitHandle.pressed?
+                handle.thickness / 2:
+                handle.thickness / 4
+
+            Behavior on length {
+                NumberAnimation {
+                    duration: 100
+                }
+            }
+        }
+    }
+}
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/StackView.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/StackView.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 
 T.StackView {
     id: control
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/SwipeDelegate.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/SwipeDelegate.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/SwipeView.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/SwipeView.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 
 T.SwipeView {
     id: control
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Switch.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Switch.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/SwitchDelegate.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/SwitchDelegate.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/TabBar.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/TabBar.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.TabBar {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/TabButton.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/TabButton.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/TextArea.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/TextArea.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.TextArea {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/TextField.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/TextField.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.TextField {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ToolBar.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ToolBar.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.ToolBar {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ToolButton.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ToolButton.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 import "Private"
 
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ToolSeparator.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ToolSeparator.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.ToolSeparator {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/ToolTip.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/ToolTip.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.ToolTip {
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/Tumbler.qml
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/Tumbler.qml
@@ -19,7 +19,7 @@
 
 import QtQuick 2.12
 import QtQuick.Controls 2.5
-import QtQuick.Templates 2.5 as T
+import QtQuick.Templates 2.15 as T
 import Ak 1.0
 
 T.Tumbler {
--- /dev/null
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/VerticalHeaderView.qml
@@ -0,0 +1,51 @@
+/* Webcamoid, webcam capture application.
+ * Copyright (C) 2022  Gonzalo Exequiel Pedone
+ *
+ * Webcamoid is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Webcamoid is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Webcamoid. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Web-Site: http://webcamoid.github.io/
+ */
+
+import QtQuick 2.12
+import QtQuick.Controls 2.5
+import QtQuick.Templates 2.15 as T
+import Ak 1.0
+
+T.VerticalHeaderView {
+    id: control
+    implicitWidth: contentWidth
+    implicitHeight: syncView? syncView.height: 0
+
+    delegate: Rectangle {
+        implicitWidth: Math.max(control.width,
+                                text.implicitWidth + 2 * cellPadding)
+        implicitHeight: text.implicitHeight + 2 * cellPadding
+        color: control.Material.backgroundColor
+
+        readonly property real cellPadding:
+            AkUnit.create(8 * AkTheme.controlScale, "dp").pixels
+
+        Text {
+            id: text
+            text: model[control.textRole]
+            width: parent.width
+            height: parent.height
+            horizontalAlignment: Text.AlignHCenter
+            verticalAlignment: Text.AlignVCenter
+            color: enabled?
+                       AkTheme.palette.active.text:
+                       AkTheme.palette.disabled.text
+        }
+    }
+}
--- webcamoid-9.0.0.orig/StandAlone/share/themes/WebcamoidTheme/qmldir
+++ webcamoid-9.0.0/StandAlone/share/themes/WebcamoidTheme/qmldir
@@ -11,6 +11,7 @@ DialogButtonBox 1.0 DialogButtonBox.qml
 Drawer 1.0 Drawer.qml
 Frame 1.0 Frame.qml
 GroupBox 1.0 GroupBox.qml
+HorizontalHeaderView 1.0 HorizontalHeaderView.qml
 ItemDelegate 1.0 ItemDelegate.qml
 Label 1.0 Label.qml
 Menu 1.0 Menu.qml
@@ -32,6 +33,7 @@ ScrollIndicator 1.0 ScrollIndicator.qml
 ScrollView 1.0 ScrollView.qml
 Slider 1.0 Slider.qml
 SpinBox 1.0 SpinBox.qml
+SplitView 1.0 SplitView.qml
 StackView 1.0 StackView.qml
 SwipeDelegate 1.0 SwipeDelegate.qml
 SwipeView 1.0 SwipeView.qml
@@ -46,3 +48,4 @@ ToolButton 1.0 ToolButton.qml
 ToolSeparator 1.0 ToolSeparator.qml
 ToolTip 1.0 ToolTip.qml
 Tumbler 1.0 Tumbler.qml
+VerticalHeaderView 1.0 VerticalHeaderView.qml
--- webcamoid-9.0.0.orig/StandAlone/share/ts/ca.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/ca.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">Quant a</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished">%1 segons</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished">Compilació diària</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/de.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/de.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">Über</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation>%1 Sekunden</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Bild aufnehmen</translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished">Täglicher Build</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Videoaufnahme</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/el.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/el.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/es.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/es.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished">%1 segundos</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/et.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/et.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">Rakenduse teave</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation>%1 sekundit</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Pildista</translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished">Igapäevane ehitus</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Salvesta video</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/fr.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/fr.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">À propos</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation>%1 secondes</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Prendre une photo</translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Enregistrer une vidéo</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/gl.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/gl.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/he.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/he.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation>על אודות</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation>מסך PipeWire</translation>
     </message>
@@ -2643,7 +2643,7 @@ background blur or image below.</source>
         <translation>%1 שניות</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>צילום תמונה</translation>
     </message>
@@ -2658,7 +2658,7 @@ background blur or image below.</source>
         <translation>מהדורה יומית</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>הקלטת וידאו</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/hu.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/hu.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/it.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/it.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation>%1 secondi</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Scatta una foto</translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Registra video</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/ja.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/ja.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/kab.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/kab.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/ko.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/ko.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">정보</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation>%1 초</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished">데일리 빌드</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>비디오 녹화</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/nb_NO.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/nb_NO.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">Om</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation>PipeWire-skjerm</translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished">%1 sekunder</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Knips et bilde</translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished">Dagsbygg</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Ta opp video</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/nl.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/nl.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation>Over</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation>PipeWire-scherm</translation>
     </message>
@@ -2643,7 +2643,7 @@ aangaande achtergrondvervaging.</transla
         <translation>%1 seconden</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Foto maken</translation>
     </message>
@@ -2658,7 +2658,7 @@ aangaande achtergrondvervaging.</transla
         <translation>Dagelijkse ontwikkelingsversie</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Video opnemen</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/oc.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/oc.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">A prepaus de</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation>%1 segondas</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/pl.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/pl.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">O programie</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation>%1 sekund</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Zrób zdjęcie</translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished">Codzienna kompilacja</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Nagraj wideo</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/pt.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/pt.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">Sobre</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation>%1 segundos</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Tirar uma foto</translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished">Compilação diária</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Gravar vídeo</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/pt_BR.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/pt_BR.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">Sobre</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation>%1 segundos</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Tirar uma foto</translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Gravar vídeo</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/ru.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/ru.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">О программе</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2643,7 +2643,7 @@ background blur or image below.</source>
         <translation>%1 секунд</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Сделать фото</translation>
     </message>
@@ -2658,7 +2658,7 @@ background blur or image below.</source>
         <translation>Ежедневная сборка</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Запись видео</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/si.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/si.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/sv.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/sv.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2770,12 +2770,12 @@ duration (seconds)</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/tr.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/tr.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation>Hakkında</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation>PipeWire Ekranı</translation>
     </message>
@@ -2643,7 +2643,7 @@ için gelişmiş yüz alanı ayarları.<
         <translation>%1 saniye</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Fotoğraf çek</translation>
     </message>
@@ -2658,7 +2658,7 @@ için gelişmiş yüz alanı ayarları.<
         <translation>Günlük Yapım</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Video kaydet</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/uk.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/uk.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">Про нас</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2643,7 +2643,7 @@ background blur or image below.</source>
         <translation>%1 секунд</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>Зробити світлину</translation>
     </message>
@@ -2658,7 +2658,7 @@ background blur or image below.</source>
         <translation type="unfinished">Денна збірка</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>Записати відео</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/vi.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/vi.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/zh_CN.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/zh_CN.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished"></translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation type="unfinished">%1秒</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation type="unfinished"></translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/share/ts/zh_TW.ts
+++ webcamoid-9.0.0/StandAlone/share/ts/zh_TW.ts
@@ -45,7 +45,7 @@
     <message>
         <location filename="../qml/AboutDialog.qml" line="45"/>
         <source>About</source>
-        <extracomment>Information of the program, like name, description, vesion, etc..</extracomment>
+        <extracomment>Information of the program, like name, description, version, etc..</extracomment>
         <translation type="unfinished">關於</translation>
     </message>
     <message>
@@ -359,7 +359,7 @@
 <context>
     <name>PipewireScreenDev</name>
     <message>
-        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="217"/>
+        <location filename="../../../libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp" line="216"/>
         <source>PipeWire Screen</source>
         <translation type="unfinished"></translation>
     </message>
@@ -2642,7 +2642,7 @@ background blur or image below.</source>
         <translation>%1 秒</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="279"/>
+        <location filename="../qml/main.qml" line="282"/>
         <source>Take a photo</source>
         <translation>照相</translation>
     </message>
@@ -2657,7 +2657,7 @@ background blur or image below.</source>
         <translation type="unfinished">每日構建</translation>
     </message>
     <message>
-        <location filename="../qml/main.qml" line="328"/>
+        <location filename="../qml/main.qml" line="331"/>
         <source>Record video</source>
         <translation>錄影</translation>
     </message>
--- webcamoid-9.0.0.orig/StandAlone/src/main.cpp
+++ webcamoid-9.0.0/StandAlone/src/main.cpp
@@ -51,12 +51,15 @@ int main(int argc, char *argv[])
 
     // Install translations.
     QTranslator translator;
-    translator.load(QLocale::system().name(), ":/Webcamoid/share/ts");
-    QCoreApplication::installTranslator(&translator);
+
+    if (translator.load(QLocale::system().name(), ":/Webcamoid/share/ts"))
+        QCoreApplication::installTranslator(&translator);
 
     // Set theme.
     QQuickStyle::addStylePath(":/Webcamoid/share/themes");
     QQuickStyle::setStyle("WebcamoidTheme");
+
+    // Set fonts
     QDirIterator fontsDirIterator(":/Webcamoid/share/themes/WebcamoidTheme/fonts",
                                   QStringList() << "*.ttf",
                                   QDir::Files
--- webcamoid-9.0.0.orig/StandAlone/src/mediatools.cpp
+++ webcamoid-9.0.0/StandAlone/src/mediatools.cpp
@@ -519,6 +519,7 @@ void MediaTools::show()
         AkElement::link(this->d->m_videoEffects.data(),
                         videoDisplay,
                         Qt::DirectConnection);
+
         break;
     }
 
--- webcamoid-9.0.0.orig/StandAlone/src/recording.cpp
+++ webcamoid-9.0.0/StandAlone/src/recording.cpp
@@ -795,9 +795,11 @@ void Recording::thumbnailUpdated(const A
         return;
 
     this->d->m_thumbnail = thumbnail;
-    QtConcurrent::run(&this->d->m_threadPool,
-                      this->d,
-                      &RecordingPrivate::thumbnailReady);
+    auto result =
+            QtConcurrent::run(&this->d->m_threadPool,
+                              this->d,
+                              &RecordingPrivate::thumbnailReady);
+    Q_UNUSED(result)
 }
 
 void Recording::mediaLoaded(const QString &media)
--- webcamoid-9.0.0.orig/StandAlone/src/videodisplay.h
+++ webcamoid-9.0.0/StandAlone/src/videodisplay.h
@@ -38,7 +38,7 @@ class VideoDisplay: public QQuickItem
 
     public:
         VideoDisplay(QQuickItem *parent=nullptr);
-        ~VideoDisplay();
+        ~VideoDisplay() override;
 
         Q_INVOKABLE bool fillDisplay() const;
 
@@ -47,7 +47,7 @@ class VideoDisplay: public QQuickItem
 
     protected:
         QSGNode *updatePaintNode(QSGNode *oldNode,
-                                 UpdatePaintNodeData *updatePaintNodeData);
+                                 UpdatePaintNodeData *updatePaintNodeData) override;
 
     signals:
         void fillDisplayChanged();
--- webcamoid-9.0.0.orig/StandAlone/src/videolayer.cpp
+++ webcamoid-9.0.0/StandAlone/src/videolayer.cpp
@@ -613,7 +613,8 @@ bool VideoLayer::executeVCamInstaller(co
                                     | QFileDevice::ReadOther
                                     | QFileDevice::ExeOther);
 
-    QtConcurrent::run(&this->d->m_threadPool, [this, installer] () {
+    auto result =
+            QtConcurrent::run(&this->d->m_threadPool, [this, installer] () {
         qDebug() << "Executing installer:" << installer;
         int exitCode = -1;
         QString errorString = "Can't execute installer";
@@ -662,6 +663,7 @@ bool VideoLayer::executeVCamInstaller(co
 
         emit this->vcamInstallFinished(exitCode, errorString);
     });
+    Q_UNUSED(result)
 
     return true;
 }
--- webcamoid-9.0.0.orig/libAvKys/Plugins/AudioDevice/src/alsa/src/audiodevalsa.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/AudioDevice/src/alsa/src/audiodevalsa.cpp
@@ -18,11 +18,11 @@
  */
 
 #include <cstdarg>
+#include <QFileSystemWatcher>
 #include <QMap>
-#include <QVector>
-#include <QTimer>
 #include <QMutex>
-#include <QFileSystemWatcher>
+#include <QTimer>
+#include <QVector>
 #include <alsa/asoundlib.h>
 #include <alsa/error.h>
 #include <akaudiopacket.h>
--- webcamoid-9.0.0.orig/libAvKys/Plugins/AudioDevice/src/coreaudio/src/audiodevcoreaudio.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/AudioDevice/src/coreaudio/src/audiodevcoreaudio.cpp
@@ -18,6 +18,7 @@
  */
 
 #include <QMap>
+#include <QMutex>
 #include <QVector>
 #include <QWaitCondition>
 #include <akaudiocaps.h>
--- webcamoid-9.0.0.orig/libAvKys/Plugins/AudioDevice/src/jack/CMakeLists.txt
+++ webcamoid-9.0.0/libAvKys/Plugins/AudioDevice/src/jack/CMakeLists.txt
@@ -42,9 +42,6 @@ set(SOURCES
     ../audiodev.h
     src/audiodevjack.cpp
     src/audiodevjack.h
-    src/jackserver.cpp
-    src/jackserver.h
-    src/jackservertypedefs.h
     src/plugin.cpp
     src/plugin.h
     pspec.json)
--- webcamoid-9.0.0.orig/libAvKys/Plugins/AudioDevice/src/jack/src/audiodevjack.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/AudioDevice/src/jack/src/audiodevjack.cpp
@@ -27,7 +27,6 @@
 #include <jack/jack.h>
 
 #include "audiodevjack.h"
-#include "jackserver.h"
 
 using JackErrorCodes = QMap<jack_status_t, QString>;
 
--- webcamoid-9.0.0.orig/libAvKys/Plugins/Denoise/src/denoiseelement.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/Denoise/src/denoiseelement.cpp
@@ -275,13 +275,16 @@ AkPacket DenoiseElement::iVideoStream(co
             params->oPixel = oLine + x;
             params->alpha = qAlpha(iLine[x]);
 
-            if (radius >= 20)
-                QtConcurrent::run(&threadPool,
-                                  DenoiseElementPrivate::denoise,
-                                  staticParams,
-                                  params);
-            else
+            if (radius >= 20) {
+                auto result =
+                        QtConcurrent::run(&threadPool,
+                                          DenoiseElementPrivate::denoise,
+                                          staticParams,
+                                          params);
+                Q_UNUSED(result)
+            } else {
                 this->d->denoise(staticParams, params);
+            }
         }
     }
 
--- webcamoid-9.0.0.orig/libAvKys/Plugins/DesktopCapture/src/androidscreen/src/androidscreendev.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/DesktopCapture/src/androidscreen/src/androidscreendev.cpp
@@ -18,7 +18,6 @@
  */
 
 #include <QApplication>
-#include <QDesktopWidget>
 #include <QFuture>
 #include <QMutex>
 #include <QScreen>
@@ -209,8 +208,13 @@ AkCaps AndroidScreenDev::caps(int stream
         || stream != 0)
         return AkCaps();
 
+    auto curScreen = this->d->m_curScreenNumber;
     auto screens = QGuiApplication::screens();
-    auto screen = screens[this->d->m_curScreenNumber];
+
+    if (curScreen < 0 || curScreen >= screens.size())
+        return {};
+
+    auto screen = screens[curScreen];
 
     if (!screen)
         return {};
--- webcamoid-9.0.0.orig/libAvKys/Plugins/DesktopCapture/src/avfoundation/src/avfoundationscreendev.mm
+++ webcamoid-9.0.0/libAvKys/Plugins/DesktopCapture/src/avfoundation/src/avfoundationscreendev.mm
@@ -18,7 +18,6 @@
  */
 
 #include <QApplication>
-#include <QDesktopWidget>
 #include <QScreen>
 #include <QThreadPool>
 #include <QtConcurrent>
@@ -55,6 +54,7 @@ AVFoundationScreenDev::AVFoundationScree
     for (auto screen: QGuiApplication::screens()) {
         QObject::connect(screen,
                          &QScreen::geometryChanged,
+                         this,
                          [=]() { this->srceenResized(int(i)); });
         i++;
     }
@@ -131,7 +131,13 @@ AkCaps AVFoundationScreenDev::caps(int s
         || stream != 0)
         return {};
 
-    auto screen = QGuiApplication::screens()[this->d->m_curScreenNumber];
+    auto curScreen = this->d->m_curScreenNumber;
+    auto screens = QGuiApplication::screens();
+
+    if (curScreen < 0 || curScreen >= screens.size())
+        return {};
+
+    auto screen = screens[curScreen];
 
     if (!screen)
         return {};
@@ -160,6 +166,7 @@ void AVFoundationScreenDev::frameReceive
     videoPacket.timeBase() = fps.invert();
     videoPacket.index() = 0;
     videoPacket.id() = id;
+    CGImageRelease(image);
 
     emit this->oStream(videoPacket);
 }
@@ -323,6 +330,7 @@ void AVFoundationScreenDev::screenAdded(
         if (screen_ == screen)
             QObject::connect(screen_,
                              &QScreen::geometryChanged,
+                             this,
                              [=]() { this->srceenResized(int(i)); });
 
         i++;
@@ -341,7 +349,15 @@ void AVFoundationScreenDev::screenRemove
 void AVFoundationScreenDev::srceenResized(int screen)
 {
     auto media = QString("screen://%1").arg(screen);
-    auto widget = QGuiApplication::screens()[screen];
+    auto screens = QGuiApplication::screens();
+
+    if (screen < 0 || screen >= screens.size())
+        return;
+
+    auto widget = screens[screen];
+
+    if (!widget)
+        return;
 
     emit this->sizeChanged(media, widget->size());
 }
--- webcamoid-9.0.0.orig/libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/DesktopCapture/src/pipewire/src/pipewirescreendev.cpp
@@ -21,7 +21,6 @@
 #include <QDBusInterface>
 #include <QDBusReply>
 #include <QDBusUnixFileDescriptor>
-#include <QDesktopWidget>
 #include <QFuture>
 #include <QMutex>
 #include <QScreen>
@@ -339,8 +338,15 @@ void PipewireScreenDev::screenRemoved(QS
 void PipewireScreenDev::srceenResized(int screen)
 {
     auto screens = QGuiApplication::screens();
+
+    if (screen < 0 || screen >= screens.size())
+        return;
+
     auto widget = screens[screen];
 
+    if (!widget)
+        return;
+
     emit this->sizeChanged("screen://pipewire", widget->size());
 }
 
--- webcamoid-9.0.0.orig/libAvKys/Plugins/DesktopCapture/src/qtscreen/src/qtscreendev.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/DesktopCapture/src/qtscreen/src/qtscreendev.cpp
@@ -145,8 +145,13 @@ AkCaps QtScreenDev::caps(int stream)
         || stream != 0)
         return AkCaps();
 
+    auto curScreen = this->d->m_curScreenNumber;
     auto screens = QGuiApplication::screens();
-    auto screen = screens[this->d->m_curScreenNumber];
+
+    if (curScreen < 0 || curScreen >= screens.size())
+        return {};
+
+    auto screen = screens[curScreen];
 
     if (!screen)
         return {};
@@ -247,8 +252,17 @@ bool QtScreenDev::uninit()
 
 void QtScreenDev::readFrame()
 {
+    auto curScreen = this->d->m_curScreenNumber;
     auto screens = QGuiApplication::screens();
-    auto screen = screens[this->d->m_curScreenNumber];
+
+    if (curScreen < 0 || curScreen >= screens.size())
+        return;
+
+    auto screen = screens[curScreen];
+
+    if (!screen)
+        return;
+
     this->d->m_mutex.lock();
     auto fps = this->d->m_fps;
     this->d->m_mutex.unlock();
@@ -325,8 +339,15 @@ void QtScreenDev::srceenResized(int scre
 {
     auto media = QString("screen://%1").arg(screen);
     auto screens = QGuiApplication::screens();
+
+    if (screen < 0 || screen >= screens.size())
+        return;
+
     auto widget = screens[screen];
 
+    if (!widget)
+        return;
+
     emit this->sizeChanged(media, widget->size());
 }
 
--- webcamoid-9.0.0.orig/libAvKys/Plugins/FaceDetect/src/haar/haarcascade.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/FaceDetect/src/haar/haarcascade.cpp
@@ -308,20 +308,20 @@ bool HaarCascade::load(const QString &fi
         case QXmlStreamReader::StartElement: {
             pathList << haarReader.name().toString();
 
-            if (path.isEmpty() && haarReader.name() != "opencv_storage")
+            if (path.isEmpty() && haarReader.name() != QStringLiteral("opencv_storage"))
                 return false;
 
             if (path == "opencv_storage")
                 this->m_name = haarReader.name().toString();
             else if (path == QString("opencv_storage/%1/stages").arg(this->m_name)
-                     && haarReader.name() == "_") {
+                     && haarReader.name() == QStringLiteral("_")) {
                 this->m_stages << HaarStage();
                 this->m_stages.last().setParentStage(stage - 1);
             } else if (path == QString("opencv_storage/%1/stages/_/trees").arg(this->m_name)
-                && haarReader.name() == "_") {
+                && haarReader.name() == QStringLiteral("_")) {
                 this->m_stages.last().trees() << HaarTree();
             } else if (path == QString("opencv_storage/%1/stages/_/trees/_").arg(this->m_name)
-                && haarReader.name() == "_") {
+                && haarReader.name() == QStringLiteral("_")) {
                 this->m_stages.last().trees().last().features() << HaarFeature();
             }
 
--- webcamoid-9.0.0.orig/libAvKys/Plugins/FaceDetect/src/haar/haardetector.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/FaceDetect/src/haar/haardetector.cpp
@@ -1210,7 +1210,9 @@ QVector<QRect> HaarDetector::detect(cons
                                           &roi,
                                           &mutex);
 
-        QtConcurrent::run(&threadPool, HaarCascadeHID::run, cascade);
+        auto result =
+                QtConcurrent::run(&threadPool, HaarCascadeHID::run, cascade);
+        Q_UNUSED(result)
     }
 
     threadPool.waitForDone();
--- webcamoid-9.0.0.orig/libAvKys/Plugins/MultiSink/src/CMakeLists.txt
+++ webcamoid-9.0.0/libAvKys/Plugins/MultiSink/src/CMakeLists.txt
@@ -42,8 +42,6 @@ add_library(MultiSinkSrc SHARED
             multisink.h
             multisinkelement.cpp
             multisinkelement.h
-            multisinkutils.cpp
-            multisinkutils.h
             ../pspec.json)
 set_target_properties(MultiSinkSrc PROPERTIES
                       OUTPUT_NAME MultiSink)
--- webcamoid-9.0.0.orig/libAvKys/Plugins/MultiSink/src/gstreamer/src/mediawritergstreamer.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/MultiSink/src/gstreamer/src/mediawritergstreamer.cpp
@@ -60,6 +60,7 @@ class MediaWriterGStreamerPrivate
         QThreadPool m_threadPool;
         GstElement *m_pipeline {nullptr};
         GMainLoop *m_mainLoop {nullptr};
+        QFuture<void> m_mainLoopResult;
         guint m_busWatchId {0};
         bool m_isRecording {false};
 
@@ -1682,7 +1683,10 @@ bool MediaWriterGStreamer::init()
 
     // Run the main GStreamer loop.
     this->d->m_mainLoop = g_main_loop_new(nullptr, FALSE);
-    QtConcurrent::run(&this->d->m_threadPool, g_main_loop_run, this->d->m_mainLoop);
+    this->d->m_mainLoopResult =
+            QtConcurrent::run(&this->d->m_threadPool,
+                              g_main_loop_run,
+                              this->d->m_mainLoop);
     gst_element_set_state(this->d->m_pipeline, GST_STATE_PLAYING);
     this->d->m_isRecording = true;
 
--- webcamoid-9.0.0.orig/libAvKys/Plugins/MultiSink/src/multisinkelement.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/MultiSink/src/multisinkelement.cpp
@@ -26,7 +26,6 @@
 
 #include "multisinkelement.h"
 #include "mediawriter.h"
-#include "multisinkutils.h"
 
 using MediaWriterPtr = QSharedPointer<MediaWriter>;
 
@@ -37,7 +36,6 @@ class MultiSinkElementPrivate
         QString m_location;
         MediaWriterPtr m_mediaWriter;
         QString m_mediaWriterImpl;
-        MultiSinkUtils m_utils;
         QList<int> m_inputStreams;
         QReadWriteLock m_mutex;
 
--- webcamoid-9.0.0.orig/libAvKys/Plugins/MultiSrc/src/ffmpeg/src/mediasourceffmpeg.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/MultiSrc/src/ffmpeg/src/mediasourceffmpeg.cpp
@@ -18,14 +18,14 @@
  */
 
 #include <QApplication>
-#include <QDesktopWidget>
 #include <QFileInfo>
-#include <QtConcurrent>
-#include <QThreadPool>
-#include <QMutex>
 #include <QFuture>
+#include <QMutex>
+#include <QScreen>
+#include <QThreadPool>
 #include <QWaitCondition>
 #include <QWaitCondition>
+#include <QtConcurrent>
 #include <ak.h>
 #include <akcaps.h>
 
@@ -512,9 +512,10 @@ bool MediaSourceFFmpeg::setState(AkEleme
             this->d->m_run = true;
             this->d->m_paused = state == AkElement::ElementStatePaused;
             this->d->m_eos = false;
-            QtConcurrent::run(&this->d->m_threadPool,
-                              this->d,
-                              &MediaSourceFFmpegPrivate::readPackets);
+            auto result = QtConcurrent::run(&this->d->m_threadPool,
+                                            this->d,
+                                            &MediaSourceFFmpegPrivate::readPackets);
+            Q_UNUSED(result)
             this->d->m_state = state;
             emit this->stateChanged(state);
 
@@ -616,9 +617,10 @@ void MediaSourceFFmpeg::doLoop()
 
 void MediaSourceFFmpeg::packetConsumed()
 {
-    QtConcurrent::run(&this->d->m_threadPool,
-                      this->d,
-                      &MediaSourceFFmpegPrivate::unlockQueue);
+    auto result = QtConcurrent::run(&this->d->m_threadPool,
+                                    this->d,
+                                    &MediaSourceFFmpegPrivate::unlockQueue);
+    Q_UNUSED(result)
 }
 
 void MediaSourceFFmpeg::log()
@@ -686,9 +688,9 @@ bool MediaSourceFFmpeg::initContext()
         inputFormat = av_find_input_format("v4l2");
     } else if (QRegExp(R"(:\d+\.\d+(?:\+\d+,\d+)?)").exactMatch(uri)) {
         inputFormat = av_find_input_format("x11grab");
-
-        int width = this->d->roundDown(QApplication::desktop()->width(), 4);
-        int height = this->d->roundDown(QApplication::desktop()->height(), 4);
+        auto screen = QGuiApplication::primaryScreen();
+        int width = this->d->roundDown(screen->geometry().width(), 4);
+        int height = this->d->roundDown(screen->geometry().height(), 4);
 
         av_dict_set(&inputOptions,
                     "video_size",
--- webcamoid-9.0.0.orig/libAvKys/Plugins/MultiSrc/src/gstreamer/src/mediasourcegstreamer.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/MultiSrc/src/gstreamer/src/mediasourcegstreamer.cpp
@@ -62,6 +62,7 @@ class MediaSourceGStreamerPrivate
         QThreadPool m_threadPool;
         GstElement *m_pipeline {nullptr};
         GMainLoop *m_mainLoop {nullptr};
+        QFuture<void> m_mainLoopResult;
         qint64 m_audioIndex {-1};
         qint64 m_videoIndex {-1};
         qint64 m_subtitlesIndex {-1};
@@ -533,9 +534,10 @@ bool MediaSourceGStreamer::setState(AkEl
 
             // Run the main GStreamer loop.
             this->d->m_mainLoop = g_main_loop_new(nullptr, FALSE);
-            QtConcurrent::run(&this->d->m_threadPool,
-                              g_main_loop_run,
-                              this->d->m_mainLoop);
+            this->d->m_mainLoopResult =
+                    QtConcurrent::run(&this->d->m_threadPool,
+                                      g_main_loop_run,
+                                      this->d->m_mainLoop);
             GstState gstState = state == AkElement::ElementStatePaused?
                                  GST_STATE_PAUSED: GST_STATE_PLAYING;
             gst_element_set_state(this->d->m_pipeline, gstState);
--- webcamoid-9.0.0.orig/libAvKys/Plugins/MultiSrc/src/ndkmedia/src/mediasourcendkmedia.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/MultiSrc/src/ndkmedia/src/mediasourcendkmedia.cpp
@@ -403,12 +403,12 @@ bool MediaSourceNDKMedia::setState(AkEle
                 this->d->m_streamsMap[i] = stream;
 
                 QObject::connect(stream.data(),
-                                 SIGNAL(oStream(const AkPacket &)),
+                                 SIGNAL(oStream(AkPacket)),
                                  this,
-                                 SIGNAL(oStream(const AkPacket &)),
+                                 SIGNAL(oStream(AkPacket)),
                                  Qt::DirectConnection);
                 QObject::connect(stream.data(),
-                                 SIGNAL(oStream(const AkPacket &)),
+                                 SIGNAL(oStream(AkPacket)),
                                  this,
                                  SLOT(log()));
                 QObject::connect(stream.data(),
@@ -424,9 +424,11 @@ bool MediaSourceNDKMedia::setState(AkEle
             this->d->m_run = true;
             this->d->m_paused = state == AkElement::ElementStatePaused;
             this->d->m_eos = false;
-            QtConcurrent::run(&this->d->m_threadPool,
-                               this->d,
-                               &MediaSourceNDKMediaPrivate::readPackets);
+            auto result =
+                    QtConcurrent::run(&this->d->m_threadPool,
+                                      this->d,
+                                      &MediaSourceNDKMediaPrivate::readPackets);
+            Q_UNUSED(result)
             this->d->m_state = state;
             emit this->stateChanged(state);
 
--- webcamoid-9.0.0.orig/libAvKys/Plugins/MultiSrc/src/vlc/src/mediasourcevlc.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/MultiSrc/src/vlc/src/mediasourcevlc.cpp
@@ -734,9 +734,10 @@ void MediaSourceVLCPrivate::mediaPlayerE
 {
     Q_UNUSED(event)
     auto self = reinterpret_cast<MediaSourceVLC *>(userData);
-    QtConcurrent::run(&self->d->m_threadPool, [self] () {
+    auto result = QtConcurrent::run(&self->d->m_threadPool, [self] () {
         self->d->doLoop();
     });
+    Q_UNUSED(result)
 }
 
 void MediaSourceVLCPrivate::mediaPlayerTimeChanged(const libvlc_event_t *event, void *userData)
--- webcamoid-9.0.0.orig/libAvKys/Plugins/VideoCapture/src/capture/avfoundation/src/captureavfoundation.h
+++ webcamoid-9.0.0/libAvKys/Plugins/VideoCapture/src/capture/avfoundation/src/captureavfoundation.h
@@ -47,7 +47,6 @@ class CaptureAvFoundation: public Captur
         Q_INVOKABLE bool setImageControls(const QVariantMap &imageControls);
         Q_INVOKABLE bool resetImageControls();
         Q_INVOKABLE AkPacket readFrame();
-        Q_INVOKABLE quint32 modelId(const QString &webcam) const;
 
         QMutex &mutex();
         QWaitCondition &frameReady();
--- webcamoid-9.0.0.orig/libAvKys/Plugins/VideoCapture/src/capture/avfoundation/src/captureavfoundation.mm
+++ webcamoid-9.0.0/libAvKys/Plugins/VideoCapture/src/capture/avfoundation/src/captureavfoundation.mm
@@ -17,12 +17,12 @@
  * Web-Site: http://webcamoid.github.io/
  */
 
-#include <QtDebug>
 #include <QCoreApplication>
 #include <QMap>
+#include <QMutex>
 #include <QVariant>
 #include <QWaitCondition>
-#include <QMutex>
+#include <QtDebug>
 #include <ak.h>
 #include <akfrac.h>
 #include <akcaps.h>
@@ -54,7 +54,6 @@ class CaptureAvFoundationPrivate
         QString m_device;
         QList<int> m_streams;
         QStringList m_devices;
-        QMap<QString, quint32> m_modelId;
         QMap<QString, QString> m_descriptions;
         QMap<QString, QVariantList> m_devicesCaps;
         int m_nBuffers {32};
@@ -352,11 +351,6 @@ AkPacket CaptureAvFoundation::readFrame(
     return packet;
 }
 
-quint32 CaptureAvFoundation::modelId(const QString &webcam) const
-{
-    return this->d->m_modelId.value(webcam);
-}
-
 QMutex &CaptureAvFoundation::mutex()
 {
     return this->d->m_mutex;
@@ -620,7 +614,6 @@ void CaptureAvFoundation::updateDevices(
         return;
 
     decltype(this->d->m_devices) devices;
-    decltype(this->d->m_modelId) modelId;
     decltype(this->d->m_descriptions) descriptions;
     decltype(this->d->m_devicesCaps) devicesCaps;
 
@@ -637,24 +630,6 @@ void CaptureAvFoundation::updateDevices(
         QString deviceId = camera.uniqueID.UTF8String;
         devices << deviceId;
         descriptions[deviceId] = camera.localizedName.UTF8String;
-        QString modelIdStr = camera.modelID.UTF8String;
-        QRegExp vpMatch("VendorID_(\\d+) ProductID_(\\d+)");
-        quint16 vendorId = 0;
-        quint16 productId = 0;
-        int pos = 0;
-
-        forever {
-            pos = vpMatch.indexIn(modelIdStr, pos);
-
-            if (pos < 0)
-                break;
-
-            vendorId = vpMatch.cap(1).toUShort();
-            productId = vpMatch.cap(2).toUShort();
-            pos += vpMatch.matchedLength();
-        }
-
-        modelId[deviceId] = quint32(vendorId << 16) | productId;
 
         // List supported frame formats.
         for (AVCaptureDeviceFormat *format in camera.formats) {
@@ -686,11 +661,9 @@ void CaptureAvFoundation::updateDevices(
 
     if (devicesCaps.isEmpty()) {
         devices.clear();
-        modelId.clear();
         descriptions.clear();
     }
 
-    this->d->m_modelId = modelId;
     this->d->m_descriptions = descriptions;
     this->d->m_devicesCaps = devicesCaps;
 
--- webcamoid-9.0.0.orig/libAvKys/Plugins/VideoCapture/src/capture/avfoundation/src/deviceobserver.mm
+++ webcamoid-9.0.0/libAvKys/Plugins/VideoCapture/src/capture/avfoundation/src/deviceobserver.mm
@@ -17,6 +17,7 @@
  * Web-Site: http://webcamoid.github.io/
  */
 
+#include <QMutex>
 #include <QWaitCondition>
 
 #include "deviceobserver.h"
--- webcamoid-9.0.0.orig/libAvKys/Plugins/VideoCapture/src/capture/dshow/src/capturedshow.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/VideoCapture/src/capture/dshow/src/capturedshow.cpp
@@ -480,7 +480,7 @@ AkPacket CaptureDShow::readFrame()
     AkPacket packet;
     auto timestamp = QDateTime::currentMSecsSinceEpoch();
     auto pts =
-            qint64(timestamp
+            qint64(qreal(timestamp)
                    * this->d->m_timeBase.invert().value()
                    / 1e3);
 
@@ -491,7 +491,7 @@ AkPacket CaptureDShow::readFrame()
             this->d->m_waitCondition.wait(&this->d->m_mutex, 1000);
 
         if (!this->d->m_curBuffer.isEmpty()) {
-            int bufferSize = this->d->m_curBuffer.size();
+            auto bufferSize = int(this->d->m_curBuffer.size());
             QByteArray oBuffer(bufferSize, 0);
             memcpy(oBuffer.data(),
                    this->d->m_curBuffer.constData(),
--- webcamoid-9.0.0.orig/libAvKys/Plugins/VideoCapture/src/capture/dshow/src/capturedshow.h
+++ webcamoid-9.0.0/libAvKys/Plugins/VideoCapture/src/capture/dshow/src/capturedshow.h
@@ -42,42 +42,42 @@ class CaptureDShow: public Capture, QAbs
         CaptureDShow(QObject *parent=nullptr);
         ~CaptureDShow();
 
-        Q_INVOKABLE QStringList webcams() const;
-        Q_INVOKABLE QString device() const;
-        Q_INVOKABLE QList<int> streams();
-        Q_INVOKABLE QList<int> listTracks(const QString &mimeType);
-        Q_INVOKABLE QString ioMethod() const;
-        Q_INVOKABLE int nBuffers() const;
-        Q_INVOKABLE QString description(const QString &webcam) const;
-        Q_INVOKABLE QVariantList caps(const QString &webcam) const;
-        Q_INVOKABLE QString capsDescription(const AkCaps &caps) const;
-        Q_INVOKABLE QVariantList imageControls() const;
-        Q_INVOKABLE bool setImageControls(const QVariantMap &imageControls);
-        Q_INVOKABLE bool resetImageControls();
-        Q_INVOKABLE QVariantList cameraControls() const;
-        Q_INVOKABLE bool setCameraControls(const QVariantMap &cameraControls);
-        Q_INVOKABLE bool resetCameraControls();
-        Q_INVOKABLE AkPacket readFrame();
+        Q_INVOKABLE QStringList webcams() const override;
+        Q_INVOKABLE QString device() const override;
+        Q_INVOKABLE QList<int> streams() override;
+        Q_INVOKABLE QList<int> listTracks(const QString &mimeType) override;
+        Q_INVOKABLE QString ioMethod() const override;
+        Q_INVOKABLE int nBuffers() const override;
+        Q_INVOKABLE QString description(const QString &webcam) const override;
+        Q_INVOKABLE QVariantList caps(const QString &webcam) const override;
+        Q_INVOKABLE QString capsDescription(const AkCaps &caps) const override;
+        Q_INVOKABLE QVariantList imageControls() const override;
+        Q_INVOKABLE bool setImageControls(const QVariantMap &imageControls) override;
+        Q_INVOKABLE bool resetImageControls() override;
+        Q_INVOKABLE QVariantList cameraControls() const override;
+        Q_INVOKABLE bool setCameraControls(const QVariantMap &cameraControls) override;
+        Q_INVOKABLE bool resetCameraControls() override;
+        Q_INVOKABLE AkPacket readFrame() override;
 
         bool nativeEventFilter(const QByteArray &eventType,
                                void *message,
-                               long *result);
+                               long *result) override;
 
     private:
         CaptureDShowPrivate *d;
 
     public slots:
-        bool init();
-        void uninit();
-        void setDevice(const QString &device);
-        void setStreams(const QList<int> &streams);
-        void setIoMethod(const QString &ioMethod);
-        void setNBuffers(int nBuffers);
-        void resetDevice();
-        void resetStreams();
-        void resetIoMethod();
-        void resetNBuffers();
-        void reset();
+        bool init() override;
+        void uninit() override;
+        void setDevice(const QString &device) override;
+        void setStreams(const QList<int> &streams) override;
+        void setIoMethod(const QString &ioMethod) override;
+        void setNBuffers(int nBuffers) override;
+        void resetDevice() override;
+        void resetStreams() override;
+        void resetIoMethod() override;
+        void resetNBuffers() override;
+        void reset() override;
 };
 
 #endif // CAPTUREDSHOW_H
--- webcamoid-9.0.0.orig/libAvKys/Plugins/VideoCapture/src/capture/mediafoundation/src/capturemmf.h
+++ webcamoid-9.0.0/libAvKys/Plugins/VideoCapture/src/capture/mediafoundation/src/capturemmf.h
@@ -43,42 +43,42 @@ class CaptureMMF:
         CaptureMMF(QObject *parent=nullptr);
         ~CaptureMMF();
 
-        Q_INVOKABLE QStringList webcams() const;
-        Q_INVOKABLE QString device() const;
-        Q_INVOKABLE QList<int> streams();
-        Q_INVOKABLE QList<int> listTracks(const QString &mimeType);
-        Q_INVOKABLE QString ioMethod() const;
-        Q_INVOKABLE int nBuffers() const;
-        Q_INVOKABLE QString description(const QString &webcam) const;
-        Q_INVOKABLE QVariantList caps(const QString &webcam) const;
-        Q_INVOKABLE QString capsDescription(const AkCaps &caps) const;
-        Q_INVOKABLE QVariantList imageControls() const;
-        Q_INVOKABLE bool setImageControls(const QVariantMap &imageControls);
-        Q_INVOKABLE bool resetImageControls();
-        Q_INVOKABLE QVariantList cameraControls() const;
-        Q_INVOKABLE bool setCameraControls(const QVariantMap &cameraControls);
-        Q_INVOKABLE bool resetCameraControls();
-        Q_INVOKABLE AkPacket readFrame();
+        Q_INVOKABLE QStringList webcams() const override;
+        Q_INVOKABLE QString device() const override;
+        Q_INVOKABLE QList<int> streams() override;
+        Q_INVOKABLE QList<int> listTracks(const QString &mimeType) override;
+        Q_INVOKABLE QString ioMethod() const override;
+        Q_INVOKABLE int nBuffers() const override;
+        Q_INVOKABLE QString description(const QString &webcam) const override;
+        Q_INVOKABLE QVariantList caps(const QString &webcam) const override;
+        Q_INVOKABLE QString capsDescription(const AkCaps &caps) const override;
+        Q_INVOKABLE QVariantList imageControls() const override;
+        Q_INVOKABLE bool setImageControls(const QVariantMap &imageControls) override;
+        Q_INVOKABLE bool resetImageControls() override;
+        Q_INVOKABLE QVariantList cameraControls() const override;
+        Q_INVOKABLE bool setCameraControls(const QVariantMap &cameraControls) override;
+        Q_INVOKABLE bool resetCameraControls() override;
+        Q_INVOKABLE AkPacket readFrame() override;
 
         bool nativeEventFilter(const QByteArray &eventType,
                                void *message,
-                               long *result);
+                               long *result) override;
 
     private:
         CaptureMMFPrivate *d;
 
     public slots:
-        bool init();
-        void uninit();
-        void setDevice(const QString &device);
-        void setStreams(const QList<int> &streams);
-        void setIoMethod(const QString &ioMethod);
-        void setNBuffers(int nBuffers);
-        void resetDevice();
-        void resetStreams();
-        void resetIoMethod();
-        void resetNBuffers();
-        void reset();
+        bool init() override;
+        void uninit() override;
+        void setDevice(const QString &device) override;
+        void setStreams(const QList<int> &streams) override;
+        void setIoMethod(const QString &ioMethod) override;
+        void setNBuffers(int nBuffers) override;
+        void resetDevice() override;
+        void resetStreams() override;
+        void resetIoMethod() override;
+        void resetNBuffers() override;
+        void reset() override;
 };
 
 #endif // CAPTUREMMF_H
--- webcamoid-9.0.0.orig/libAvKys/Plugins/VideoCapture/src/convert/gstreamer/src/convertvideogstreamer.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/VideoCapture/src/convert/gstreamer/src/convertvideogstreamer.cpp
@@ -106,6 +106,7 @@ class ConvertVideoGStreamerPrivate
         GstElement *m_source {nullptr};
         GstElement *m_sink {nullptr};
         GMainLoop *m_mainLoop {nullptr};
+        QFuture<void> m_mainLoopResult;
         guint m_busWatchId {0};
         qint64 m_id {-1};
         qint64 m_ptsDiff {AkNoPts<qint64>()};
@@ -267,9 +268,10 @@ bool ConvertVideoGStreamer::init(const A
 
     // Run the main GStreamer loop.
     this->d->m_mainLoop = g_main_loop_new(nullptr, FALSE);
-    QtConcurrent::run(&this->d->m_threadPool,
-                      g_main_loop_run,
-                      this->d->m_mainLoop);
+    this->d->m_mainLoopResult =
+            QtConcurrent::run(&this->d->m_threadPool,
+                              g_main_loop_run,
+                              this->d->m_mainLoop);
     gst_element_set_state(this->d->m_pipeline, GST_STATE_PLAYING);
 
     return true;
--- webcamoid-9.0.0.orig/libAvKys/Plugins/VirtualCamera/src/cmio/src/vcamcmio.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/VirtualCamera/src/cmio/src/vcamcmio.cpp
@@ -1051,12 +1051,14 @@ QVariantList VCamCMIOPrivate::controls(c
         case QXmlStreamReader::StartElement: {
             pathList << xmlInfo.name().toString();
 
-            if (path.isEmpty() && xmlInfo.name() != "info")
+            if (path.isEmpty() && xmlInfo.name() != QStringLiteral("info"))
                 return {};
 
-            if (path == "info/devices" && xmlInfo.name() == "device")
+            if (path == "info/devices"
+                && xmlInfo.name() == QStringLiteral("device"))
                 curDeviceControls.clear();
-            else if (path == "info/devices/device/controls" && xmlInfo.name() == "control")
+            else if (path == "info/devices/device/controls"
+                     && xmlInfo.name() == QStringLiteral("control"))
                 deviceControl = {};
 
             break;
@@ -1245,12 +1247,14 @@ void VCamCMIOPrivate::updateDevices()
         case QXmlStreamReader::StartElement: {
             pathList << xmlInfo.name().toString();
 
-            if (path.isEmpty() && xmlInfo.name() != "info")
+            if (path.isEmpty() && xmlInfo.name() != QStringLiteral("info"))
                 return;
 
-            if (path == "info/devices" && xmlInfo.name() == "device")
+            if (path == "info/devices"
+                && xmlInfo.name() == QStringLiteral("device"))
                 curDeviceCaps.clear();
-            else if (path == "info/devices/device/formats" && xmlInfo.name() == "format")
+            else if (path == "info/devices/device/formats"
+                     && xmlInfo.name() == QStringLiteral("format"))
                 curFormat = {};
 
             break;
--- webcamoid-9.0.0.orig/libAvKys/Plugins/VirtualCamera/src/dshow/src/vcamdshow.cpp
+++ webcamoid-9.0.0/libAvKys/Plugins/VirtualCamera/src/dshow/src/vcamdshow.cpp
@@ -1393,12 +1393,14 @@ QVariantList VCamDShowPrivate::controls(
         case QXmlStreamReader::StartElement: {
             pathList << xmlInfo.name().toString();
 
-            if (path.isEmpty() && xmlInfo.name() != "info")
+            if (path.isEmpty() && xmlInfo.name() != QStringLiteral("info"))
                 return {};
 
-            if (path == "info/devices" && xmlInfo.name() == "device")
+            if (path == "info/devices"
+                && xmlInfo.name() == QStringLiteral("device"))
                 curDeviceControls.clear();
-            else if (path == "info/devices/device/controls" && xmlInfo.name() == "control")
+            else if (path == "info/devices/device/controls"
+                     && xmlInfo.name() == QStringLiteral("control"))
                 deviceControl = {};
 
             break;
@@ -1652,12 +1654,13 @@ void VCamDShowPrivate::updateDevices()
         case QXmlStreamReader::StartElement: {
             pathList << xmlInfo.name().toString();
 
-            if (path.isEmpty() && xmlInfo.name() != "info")
+            if (path.isEmpty() && xmlInfo.name() != QStringLiteral("info"))
                 return;
 
-            if (path == "info/devices" && xmlInfo.name() == "device")
+            if (path == "info/devices" && xmlInfo.name() == QStringLiteral("device"))
                 curDeviceCaps.clear();
-            else if (path == "info/devices/device/formats" && xmlInfo.name() == "format")
+            else if (path == "info/devices/device/formats"
+                     && xmlInfo.name() == QStringLiteral("format"))
                 curFormat = {};
 
             break;
--- webcamoid-9.0.0.orig/libAvKys/cmake/ProjectCommons.cmake
+++ webcamoid-9.0.0/libAvKys/cmake/ProjectCommons.cmake
@@ -120,7 +120,7 @@ if (GIT_BIN)
 endif ()
 
 set(ANDROID_JAVA_VERSION 1.6 CACHE STRING "Mimimum Java version to use in Android")
-set(ANDROID_JAR_DIRECTORY ${ANDROID_SDK}/platforms/android-${ANDROID_NATIVE_API_LEVEL} CACHE INTERNAL "")
+set(ANDROID_JAR_DIRECTORY ${ANDROID_SDK_ROOT}/platforms/android-${ANDROID_NATIVE_API_LEVEL} CACHE INTERNAL "")
 
 # Force prefix and suffix. This fix broken MinGW builds in CI environments.
 if (WIN32 AND NOT MSVC)
--- webcamoid-9.0.0.orig/ports/ci/android/build.sh
+++ webcamoid-9.0.0/ports/ci/android/build.sh
@@ -61,7 +61,7 @@ for arch_ in $(echo "${TARGET_ARCH}" | t
         -DANDROID_ABI="${arch_}" \
         -DANDROID_STL=c++_shared \
         -DCMAKE_FIND_ROOT_PATH="$(qmake -query QT_INSTALL_PREFIX)" \
-        -DANDROID_SDK="${ANDROID_HOME}" \
+        -DANDROID_SDK_ROOT="${ANDROID_HOME}" \
         ${EXTRA_PARAMS} \
         -DDAILY_BUILD="${DAILY_BUILD}"
     cmake --build "${buildDir}" --parallel "${NJOBS}"
