diff --git a/.github/workflows/build-debian.yml b/.github/workflows/build-debian.yml
index 7d354a45..0e9e00a3 100644
--- a/.github/workflows/build-debian.yml
+++ b/.github/workflows/build-debian.yml
@@ -43,7 +43,7 @@ jobs:
# devscripts and libobs-dev are needed but they were already installed
# from check_libobs_revision and install_frontend_header sections.
sudo apt update
- sudo apt install cmake debhelper libcurl4-openssl-dev libxss-dev libxtst-dev qtbase5-dev
+ sudo apt install cmake debhelper libcurl4-openssl-dev libxss-dev libxtst-dev qtbase5-dev libopencv-dev
- name: build
run: |
debuild --no-lintian --no-sign
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 97ac6326..8043cf9c 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -59,6 +59,15 @@ jobs:
curl -L -O https://github.com/obsproject/obs-deps/releases/download/${{ env.MACOS_DEPS_VERSION }}/macos-qt-${{ env.QT_VERSION }}-${{ env.MACOS_DEPS_VERSION }}.tar.gz
tar -xf ./macos-qt-${{ env.QT_VERSION }}-${{ env.MACOS_DEPS_VERSION }}.tar.gz -C "/tmp"
xattr -r -d com.apple.quarantine /tmp/obsdeps
+ - name: 'Build prerequisite: OpenCV'
+ shell: bash
+ run: |
+ cd UI/frontend-plugins/${{ env.PLUGIN_NAME }}/deps/opencv
+ mkdir build
+ cd build
+ cmake -DBUILD_LIST="core,imgproc,objdetect" ..
+ make -j4
+ make install
- name: Configure
shell: bash
run: |
@@ -171,7 +180,8 @@ jobs:
qtbase5-private-dev \
libqt5svg5-dev \
swig \
- libxss-dev
+ libxss-dev \
+ libopencv-dev
- name: 'Configure'
shell: bash
run: |
@@ -236,18 +246,34 @@ jobs:
run: |
curl -kLO https://cdn-fastly.obsproject.com/downloads/dependencies${{ env.WINDOWS_DEPS_VERSION }}.zip -f --retry 5 -C -
7z x dependencies${{ env.WINDOWS_DEPS_VERSION }}.zip -o"${{ github.workspace }}/cmbuild/deps"
+ - name: 'Build prerequisite: OpenCV'
+ run: |
+ cd UI/frontend-plugins/${{ env.PLUGIN_NAME }}/deps/opencv
+ mkdir build
+ cd build
+ if ( ${{ matrix.arch }} -eq 32 )
+ {
+ cmake -G"${{ env.CMAKE_GENERATOR }}" -A"Win32" -DBUILD_LIST="core,imgproc,objdetect" ..
+ }
+ else
+ {
+ cmake -G"${{ env.CMAKE_GENERATOR }}" -A"x64" -DBUILD_LIST="core,imgproc,objdetect" ..
+ }
+ msbuild /m /p:Configuration=Release OpenCV.sln
+ msbuild INSTALL.vcxproj
- name: Configure
run: |
mkdir ./package
mkdir ./build${{ matrix.arch }}
cd ./build${{ matrix.arch }}
+ Get-Location
if ( ${{ matrix.arch }} -eq 32 )
{
- cmake -G"${{ env.CMAKE_GENERATOR }}" -A"Win32" -DCMAKE_SYSTEM_VERSION="${{ env.CMAKE_SYSTEM_VERSION }}" -DBUILD_BROWSER=false -DBUILD_CAPTIONS=false -DCOMPILE_D3D12_HOOK=false -DDepsPath="${{ github.workspace }}/cmbuild/deps/win32" -DQTDIR="${{ github.workspace }}/cmbuild/QT/${{ env.QT_VERSION }}/msvc2017" -DCOPIED_DEPENDENCIES=FALSE -DCOPY_DEPENDENCIES=TRUE ..
+ cmake -G"${{ env.CMAKE_GENERATOR }}" -A"Win32" -DOpenCV_DIR="${{ github.workspace }}/UI/frontend-plugins/SceneSwitcher/deps/opencv/build/" -DCMAKE_SYSTEM_VERSION="${{ env.CMAKE_SYSTEM_VERSION }}" -DBUILD_BROWSER=false -DBUILD_CAPTIONS=false -DCOMPILE_D3D12_HOOK=false -DDepsPath="${{ github.workspace }}/cmbuild/deps/win32" -DQTDIR="${{ github.workspace }}/cmbuild/QT/${{ env.QT_VERSION }}/msvc2017" -DCOPIED_DEPENDENCIES=FALSE -DCOPY_DEPENDENCIES=TRUE ..
}
else
{
- cmake -G"${{ env.CMAKE_GENERATOR }}" -A"x64" -DCMAKE_SYSTEM_VERSION="${{ env.CMAKE_SYSTEM_VERSION }}" -DBUILD_BROWSER=false -DBUILD_CAPTIONS=false -DCOMPILE_D3D12_HOOK=false -DDepsPath="${{ github.workspace }}/cmbuild/deps/win64" -DQTDIR="${{ github.workspace }}/cmbuild/QT/${{ env.QT_VERSION }}/msvc2017_64" -DCOPIED_DEPENDENCIES=FALSE -DCOPY_DEPENDENCIES=TRUE ..
+ cmake -G"${{ env.CMAKE_GENERATOR }}" -A"x64" -DOpenCV_DIR="${{ github.workspace }}/UI/frontend-plugins/SceneSwitcher/deps/opencv/build/" -DCMAKE_SYSTEM_VERSION="${{ env.CMAKE_SYSTEM_VERSION }}" -DBUILD_BROWSER=false -DBUILD_CAPTIONS=false -DCOMPILE_D3D12_HOOK=false -DDepsPath="${{ github.workspace }}/cmbuild/deps/win64" -DQTDIR="${{ github.workspace }}/cmbuild/QT/${{ env.QT_VERSION }}/msvc2017_64" -DCOPIED_DEPENDENCIES=FALSE -DCOPY_DEPENDENCIES=TRUE ..
}
- name: Build
run: |
@@ -260,6 +286,7 @@ jobs:
echo "FILE_NAME=${env:FILE_NAME}" >> ${env:GITHUB_ENV}
robocopy .\build${{ matrix.arch }}\rundir\RelWithDebInfo\obs-plugins\${{ matrix.arch }}bit\ .\package\obs-plugins\${{ matrix.arch }}bit ${{ env.LIB_NAME }}.* /E /XF .gitignore
robocopy .\build${{ matrix.arch }}\rundir\RelWithDebInfo\data\obs-plugins\${{ env.LIB_NAME }}\ .\package\data\obs-plugins\${{ env.LIB_NAME }}\ /E /XF .gitignore
+ cp UI/frontend-plugins/${{ env.PLUGIN_NAME }}/deps/opencv/build/bin/Release/*dll package/obs-plugins/${{ matrix.arch }}bit
exit 0
- name: Publish zip
if: success()
diff --git a/CI/linux/debian/control b/CI/linux/debian/control
index c357a29c..bb4a0c92 100644
--- a/CI/linux/debian/control
+++ b/CI/linux/debian/control
@@ -8,7 +8,8 @@ Build-Depends: cmake,
libobs-dev,
libxtst-dev,
qtbase5-dev,
- libxss-dev
+ libxss-dev,
+ libopencv-dev
Standards-Version: 4.6.0
Homepage: https://obsproject.com/forum/resources/advanced-scene-switcher.395/
Rules-Requires-Root: no
diff --git a/CI/macos/SceneSwitcher.pkgproj b/CI/macos/SceneSwitcher.pkgproj
index 0a5aec9e..f04ef30e 100644
--- a/CI/macos/SceneSwitcher.pkgproj
+++ b/CI/macos/SceneSwitcher.pkgproj
@@ -46,6 +46,294 @@
UID
0
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_objdetect.4.5.3.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_features2d.4.5.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_core.4.5.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_calib3d.4.5.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_calib3d.4.5.3.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_imgproc.4.5.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_features2d.4.5.3.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_core.4.5.3.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_flann.4.5.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_calib3d.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_objdetect.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_imgproc.4.5.3.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_flann.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_imgproc.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_flann.4.5.3.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_features2d.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_core.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
+
+ CHILDREN
+
+ GID
+ 80
+ PATH
+ ../../deps/opencv/build/lib/libopencv_objdetect.4.5.dylib
+ PATH_TYPE
+ 3
+ PERMISSIONS
+ 493
+ TYPE
+ 3
+ UID
+ 0
+
GID
80
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 47a20fea..286840e8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -165,9 +165,8 @@ if(WIN32)
endif()
# opencv
-find_library(OPENCV_CORE opencv_core453d PATHS deps/opencv/build/install/x64/vc16/lib PATH_SUFFIXES lib)
-find_library(OPENCV_IMGPROC opencv_imgproc453d PATHS deps/opencv/build/install/x64/vc16/lib PATH_SUFFIXES lib)
-include_directories(deps/opencv/build/install/include)
+find_package(OpenCV REQUIRED)
+include_directories("${OpenCV_INCLUDE_DIRS}")
# Setup QT tools
set(CMAKE_AUTOMOC ON)
@@ -357,8 +356,13 @@ add_library(
# Out of tree build
if(BUILD_OUT_OF_TREE)
target_link_libraries(
- advanced-scene-switcher ${advanced-scene-switcher_PLATFORM_LIBS} ${OPENCV_CORE} ${OPENCV_IMGPROC}
- ${LIBOBS_LIB} ${LIBOBS_FRONTEND_API_LIB} Qt5::Core Qt5::Widgets)
+ advanced-scene-switcher
+ ${advanced-scene-switcher_PLATFORM_LIBS}
+ ${OpenCV_LIBRARIES}
+ ${LIBOBS_LIB}
+ ${LIBOBS_FRONTEND_API_LIB}
+ Qt5::Core
+ Qt5::Widgets)
# Additional commands to install the module in the correct place. Find all the
# translation files so we can copy them to the correct place later on.
@@ -388,7 +392,11 @@ if(BUILD_OUT_OF_TREE)
else()
# In tree build
target_link_libraries(
- advanced-scene-switcher ${advanced-scene-switcher_PLATFORM_LIBS} ${OPENCV_CORE} ${OPENCV_IMGPROC}
- obs-frontend-api Qt5::Widgets libobs)
+ advanced-scene-switcher
+ ${advanced-scene-switcher_PLATFORM_LIBS}
+ ${OpenCV_LIBRARIES}
+ obs-frontend-api
+ Qt5::Widgets
+ libobs)
install_obs_plugin_with_data(advanced-scene-switcher data)
endif()