Good bye qmake and welcome CMake.
This commit is contained in:
parent
ca37fafebb
commit
1c014e1485
60 changed files with 798 additions and 1007 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -67,6 +67,7 @@ callgrind.out.*
|
||||||
*_qmlcache.qrc
|
*_qmlcache.qrc
|
||||||
test.o-*
|
test.o-*
|
||||||
object_script.*
|
object_script.*
|
||||||
|
*.user
|
||||||
|
|
||||||
# Ignore files generated by Python #
|
# Ignore files generated by Python #
|
||||||
####################################
|
####################################
|
||||||
|
|
|
@ -1,26 +1,33 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
#
|
#
|
||||||
# akvirtualcamera is free software: you can redistribute it and/or modify
|
# akvirtualcamera is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# akvirtualcamera is distributed in the hope that it will be useful,
|
# akvirtualcamera is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
# along with akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
# Web-Site: http://webcamoid.github.io/
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
cmake_minimum_required(VERSION 3.5)
|
||||||
CONFIG += ordered
|
|
||||||
|
project(AkVirtualCamera)
|
||||||
SUBDIRS = \
|
|
||||||
PlatformUtils \
|
include(commons.cmake)
|
||||||
VCamIPC \
|
|
||||||
Assistant \
|
add_subdirectory(VCamUtils)
|
||||||
VirtualCamera
|
|
||||||
|
if (APPLE)
|
||||||
|
add_subdirectory(cmio)
|
||||||
|
elseif (WIN32)
|
||||||
|
add_subdirectory(dshow)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_subdirectory(Manager)
|
77
Manager/CMakeLists.txt
Normal file
77
Manager/CMakeLists.txt
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
project(Manager LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
include(../cmio/cmio.cmake)
|
||||||
|
set(INSTALLPATH ${CMIO_PLUGIN_NAME}.plugin/Contents/Resources)
|
||||||
|
elseif (WIN32)
|
||||||
|
include(../dshow/dshow.cmake)
|
||||||
|
set(INSTALLPATH ${DSHOW_PLUGIN_NAME}.plugin/${TARGET_ARCH})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_executable(Manager
|
||||||
|
src/cmdparser.h
|
||||||
|
src/main.cpp
|
||||||
|
src/cmdparser.cpp)
|
||||||
|
set_target_properties(Manager PROPERTIES
|
||||||
|
OUTPUT_NAME AkVCamManager
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${INSTALLPATH}")
|
||||||
|
add_dependencies(Manager VCamIPC PlatformUtils VCamUtils)
|
||||||
|
target_include_directories(Manager
|
||||||
|
PRIVATE ..)
|
||||||
|
target_link_libraries(Manager
|
||||||
|
VCamIPC
|
||||||
|
PlatformUtils
|
||||||
|
VCamUtils)
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
find_library(COREFOUNDATION_FRAMEWORK NAMES CoreFoundation)
|
||||||
|
find_library(COREMEDIA_FRAMEWORK NAMES CoreMedia)
|
||||||
|
find_library(COREMEDIAIO_FRAMEWORK NAMES CoreMediaIO)
|
||||||
|
find_library(COREVIDEO_FRAMEWORK NAMES CoreVideo)
|
||||||
|
find_library(FOUNDATION_FRAMEWORK NAMES Foundation)
|
||||||
|
find_library(IOKIT_FRAMEWORK NAMES IOKit)
|
||||||
|
find_library(IOSURFACE_FRAMEWORK NAMES IOSurface)
|
||||||
|
set(EXTRA_LIBS ${COREFOUNDATION_FRAMEWORK}
|
||||||
|
${COREMEDIA_FRAMEWORK}
|
||||||
|
${COREMEDIAIO_FRAMEWORK}
|
||||||
|
${COREVIDEO_FRAMEWORK}
|
||||||
|
${FOUNDATION_FRAMEWORK}
|
||||||
|
${IOKIT_FRAMEWORK}
|
||||||
|
${IOSURFACE_FRAMEWORK})
|
||||||
|
target_link_libraries(Manager
|
||||||
|
${EXTRA_LIBS})
|
||||||
|
elseif (WIN32)
|
||||||
|
target_link_libraries(Manager
|
||||||
|
advapi32
|
||||||
|
gdi32
|
||||||
|
strmiids
|
||||||
|
uuid
|
||||||
|
ole32
|
||||||
|
oleaut32
|
||||||
|
shell32)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
install(TARGETS Manager DESTINATION ${INSTALLPATH})
|
|
@ -1,86 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
exists(commons.pri) {
|
|
||||||
include(commons.pri)
|
|
||||||
} else {
|
|
||||||
exists(../commons.pri) {
|
|
||||||
include(../commons.pri)
|
|
||||||
} else {
|
|
||||||
error("commons.pri file not found.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
win32: include(../dshow/dshow.pri)
|
|
||||||
macx: include(../cmio/cmio.pri)
|
|
||||||
|
|
||||||
TEMPLATE = app
|
|
||||||
CONFIG += console link_prl
|
|
||||||
CONFIG -= app_bundle
|
|
||||||
CONFIG -= qt
|
|
||||||
|
|
||||||
TARGET = AkVCamManager
|
|
||||||
|
|
||||||
HEADERS = \
|
|
||||||
src/cmdparser.h
|
|
||||||
|
|
||||||
SOURCES = \
|
|
||||||
src/main.cpp \
|
|
||||||
src/cmdparser.cpp
|
|
||||||
|
|
||||||
INCLUDEPATH += \
|
|
||||||
.. \
|
|
||||||
../..
|
|
||||||
|
|
||||||
win32: LIBS += \
|
|
||||||
-L$${OUT_PWD}/../dshow/VCamIPC/$${BIN_DIR} -lVCamIPC \
|
|
||||||
-L$${OUT_PWD}/../dshow/PlatformUtils/$${BIN_DIR} -lPlatformUtils \
|
|
||||||
-ladvapi32 \
|
|
||||||
-lgdi32 \
|
|
||||||
-lstrmiids \
|
|
||||||
-luuid \
|
|
||||||
-lole32 \
|
|
||||||
-loleaut32 \
|
|
||||||
-lshell32
|
|
||||||
macx: LIBS += \
|
|
||||||
-L$${OUT_PWD}/../cmio/VCamIPC/$${BIN_DIR} -lVCamIPC \
|
|
||||||
-L$${OUT_PWD}/../cmio/PlatformUtils/$${BIN_DIR} -lPlatformUtils \
|
|
||||||
-framework CoreFoundation \
|
|
||||||
-framework CoreMedia \
|
|
||||||
-framework CoreMediaIO \
|
|
||||||
-framework CoreVideo \
|
|
||||||
-framework Foundation \
|
|
||||||
-framework IOKit \
|
|
||||||
-framework IOSurface
|
|
||||||
LIBS += \
|
|
||||||
-L$${OUT_PWD}/../VCamUtils/$${BIN_DIR} -lVCamUtils
|
|
||||||
|
|
||||||
isEmpty(STATIC_BUILD) | isEqual(STATIC_BUILD, 0) {
|
|
||||||
win32-g++: QMAKE_LFLAGS = -static -static-libgcc -static-libstdc++
|
|
||||||
}
|
|
||||||
|
|
||||||
win32 {
|
|
||||||
INSTALLPATH = $${DSHOW_PLUGIN_NAME}.plugin/$$normalizedArch(TARGET_ARCH)
|
|
||||||
} else {
|
|
||||||
INSTALLPATH = $${CMIO_PLUGIN_NAME}.plugin/Contents/Resources
|
|
||||||
}
|
|
||||||
|
|
||||||
DESTDIR = $${OUT_PWD}/../$${INSTALLPATH}
|
|
||||||
|
|
||||||
INSTALLS += target
|
|
||||||
target.path = $${PREFIX}/$${INSTALLPATH}
|
|
|
@ -36,8 +36,8 @@
|
||||||
#include "cmdparser.h"
|
#include "cmdparser.h"
|
||||||
#include "VCamUtils/src/ipcbridge.h"
|
#include "VCamUtils/src/ipcbridge.h"
|
||||||
#include "VCamUtils/src/settings.h"
|
#include "VCamUtils/src/settings.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/image/videoframe.h"
|
#include "VCamUtils/src/videoframe.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
|
|
||||||
#define AKVCAM_BIND_FUNC(member) \
|
#define AKVCAM_BIND_FUNC(member) \
|
||||||
|
|
47
VCamUtils/CMakeLists.txt
Normal file
47
VCamUtils/CMakeLists.txt
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
|
project(VCamUtils LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
add_library(VCamUtils STATIC
|
||||||
|
src/color.h
|
||||||
|
src/fraction.cpp
|
||||||
|
src/fraction.h
|
||||||
|
src/ipcbridge.h
|
||||||
|
src/logger.cpp
|
||||||
|
src/logger.h
|
||||||
|
src/settings.cpp
|
||||||
|
src/settings.h
|
||||||
|
src/timer.cpp
|
||||||
|
src/timer.h
|
||||||
|
src/utils.cpp
|
||||||
|
src/utils.h
|
||||||
|
src/videoformat.cpp
|
||||||
|
src/videoformat.h
|
||||||
|
src/videoformattypes.h
|
||||||
|
src/videoframe.cpp
|
||||||
|
src/videoframe.h
|
||||||
|
src/videoframetypes.h)
|
||||||
|
|
||||||
|
target_compile_definitions(VCamUtils PRIVATE VCAMUTILS_LIBRARY)
|
|
@ -1,65 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
exists(commons.pri) {
|
|
||||||
include(commons.pri)
|
|
||||||
} else {
|
|
||||||
exists(../commons.pri) {
|
|
||||||
include(../commons.pri)
|
|
||||||
} else {
|
|
||||||
error("commons.pri file not found.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CONFIG += \
|
|
||||||
staticlib \
|
|
||||||
create_prl \
|
|
||||||
no_install_prl
|
|
||||||
CONFIG -= qt
|
|
||||||
|
|
||||||
DESTDIR = $${OUT_PWD}/$${BIN_DIR}
|
|
||||||
|
|
||||||
TARGET = VCamUtils
|
|
||||||
|
|
||||||
TEMPLATE = lib
|
|
||||||
|
|
||||||
SOURCES += \
|
|
||||||
src/fraction.cpp \
|
|
||||||
src/image/videoformat.cpp \
|
|
||||||
src/image/videoframe.cpp \
|
|
||||||
src/logger.cpp \
|
|
||||||
src/settings.cpp \
|
|
||||||
src/timer.cpp \
|
|
||||||
src/utils.cpp
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
src/fraction.h \
|
|
||||||
src/image/color.h \
|
|
||||||
src/image/videoformat.h \
|
|
||||||
src/image/videoframe.h \
|
|
||||||
src/image/videoframetypes.h \
|
|
||||||
src/image/videoformattypes.h \
|
|
||||||
src/ipcbridge.h \
|
|
||||||
src/logger.h \
|
|
||||||
src/settings.h \
|
|
||||||
src/timer.h \
|
|
||||||
src/utils.h
|
|
||||||
|
|
||||||
isEmpty(STATIC_BUILD) | isEqual(STATIC_BUILD, 0) {
|
|
||||||
win32-g++: QMAKE_LFLAGS = -static -static-libgcc -static-libstdc++
|
|
||||||
}
|
|
|
@ -23,8 +23,8 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include "image/videoformattypes.h"
|
#include "videoformattypes.h"
|
||||||
#include "image/videoframetypes.h"
|
#include "videoframetypes.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#include <ostream>
|
#include <ostream>
|
||||||
|
|
||||||
#include "videoformat.h"
|
#include "videoformat.h"
|
||||||
#include "../utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
{
|
{
|
|
@ -24,7 +24,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "videoformattypes.h"
|
#include "videoformattypes.h"
|
||||||
#include "../fraction.h"
|
#include "fraction.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
{
|
{
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
#include "videoframe.h"
|
#include "videoframe.h"
|
||||||
#include "videoformat.h"
|
#include "videoformat.h"
|
||||||
#include "../utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
{
|
{
|
|
@ -1,61 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
exists(commons.pri) {
|
|
||||||
include(commons.pri)
|
|
||||||
} else {
|
|
||||||
exists(../../commons.pri) {
|
|
||||||
include(../../commons.pri)
|
|
||||||
} else {
|
|
||||||
error("commons.pri file not found.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include(../cmio.pri)
|
|
||||||
|
|
||||||
CONFIG += console link_prl
|
|
||||||
CONFIG -= app_bundle
|
|
||||||
CONFIG -= qt
|
|
||||||
|
|
||||||
TARGET = $${CMIO_PLUGIN_ASSISTANT_NAME}
|
|
||||||
|
|
||||||
TEMPLATE = app
|
|
||||||
|
|
||||||
SOURCES += \
|
|
||||||
src/main.cpp \
|
|
||||||
src/assistant.cpp
|
|
||||||
|
|
||||||
LIBS += \
|
|
||||||
-L$${OUT_PWD}/../PlatformUtils/$${BIN_DIR} -lPlatformUtils \
|
|
||||||
-L$${OUT_PWD}/../../VCamUtils/$${BIN_DIR} -lVCamUtils \
|
|
||||||
-framework CoreFoundation
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
src/assistantglobals.h \
|
|
||||||
src/assistant.h
|
|
||||||
|
|
||||||
INCLUDEPATH += \
|
|
||||||
.. \
|
|
||||||
../..
|
|
||||||
|
|
||||||
INSTALLPATH = $${CMIO_PLUGIN_NAME}.plugin/Contents/Resources
|
|
||||||
|
|
||||||
DESTDIR = $${OUT_PWD}/../../$${INSTALLPATH}
|
|
||||||
|
|
||||||
INSTALLS += target
|
|
||||||
target.path = $${PREFIX}/$${INSTALLPATH}
|
|
47
cmio/Assistant/CMakeLists.txt
Normal file
47
cmio/Assistant/CMakeLists.txt
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
project(Assistant LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
include(../cmio.cmake)
|
||||||
|
set(INSTALLPATH ${CMIO_PLUGIN_NAME}.plugin/Contents/Resources)
|
||||||
|
|
||||||
|
add_executable(Assistant
|
||||||
|
src/assistant.cpp
|
||||||
|
src/assistant.h
|
||||||
|
src/assistantglobals.h
|
||||||
|
src/main.cpp)
|
||||||
|
set_target_properties(Assistant PROPERTIES
|
||||||
|
OUTPUT_NAME ${CMIO_PLUGIN_ASSISTANT_NAME}
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${INSTALLPATH}")
|
||||||
|
add_dependencies(Assistant PlatformUtils VCamUtils)
|
||||||
|
target_include_directories(Assistant
|
||||||
|
PRIVATE ..
|
||||||
|
PRIVATE ../..)
|
||||||
|
find_library(COREFOUNDATION_FRAMEWORK NAMES CoreFoundation)
|
||||||
|
set(EXTRA_LIBS ${COREFOUNDATION_FRAMEWORK})
|
||||||
|
target_link_libraries(Assistant
|
||||||
|
PlatformUtils
|
||||||
|
VCamUtils
|
||||||
|
${EXTRA_LIBS})
|
||||||
|
install(TARGETS Assistant DESTINATION ${INSTALLPATH})
|
|
@ -27,8 +27,8 @@
|
||||||
#include "assistant.h"
|
#include "assistant.h"
|
||||||
#include "assistantglobals.h"
|
#include "assistantglobals.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/image/videoframe.h"
|
#include "VCamUtils/src/videoframe.h"
|
||||||
#include "VCamUtils/src/ipcbridge.h"
|
#include "VCamUtils/src/ipcbridge.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
|
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
#
|
#
|
||||||
# akvirtualcamera is free software: you can redistribute it and/or modify
|
# akvirtualcamera is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# akvirtualcamera is distributed in the hope that it will be useful,
|
# akvirtualcamera is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
# along with akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
# Web-Site: http://webcamoid.github.io/
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
cmake_minimum_required(VERSION 3.5)
|
||||||
CONFIG += ordered
|
|
||||||
|
project(dshow)
|
||||||
SUBDIRS = \
|
|
||||||
PlatformUtils \
|
add_subdirectory(PlatformUtils)
|
||||||
VCamIPC \
|
add_subdirectory(VCamIPC)
|
||||||
Assistant \
|
add_subdirectory(Assistant)
|
||||||
VirtualCamera
|
add_subdirectory(VirtualCamera)
|
44
cmio/PlatformUtils/CMakeLists.txt
Normal file
44
cmio/PlatformUtils/CMakeLists.txt
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
|
project(PlatformUtils LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
include(../cmio.cmake)
|
||||||
|
|
||||||
|
add_library(PlatformUtils STATIC
|
||||||
|
src/preferences.cpp
|
||||||
|
src/preferences.h
|
||||||
|
src/utils.cpp
|
||||||
|
src/utils.h)
|
||||||
|
|
||||||
|
add_dependencies(PlatformUtils VCamUtils)
|
||||||
|
target_compile_definitions(PlatformUtils PRIVATE PLATFORMUTILS_LIBRARY)
|
||||||
|
target_include_directories(PlatformUtils PRIVATE ../..)
|
||||||
|
find_library(COREFOUNDATION_FRAMEWORK NAMES CoreFoundation)
|
||||||
|
find_library(COREGRAPHICS_FRAMEWORK NAMES CoreGraphics)
|
||||||
|
set(EXTRA_LIBS ${COREFOUNDATION_FRAMEWORK}
|
||||||
|
${COREGRAPHICS_FRAMEWORK})
|
||||||
|
target_link_libraries(PlatformUtils
|
||||||
|
VCamUtils
|
||||||
|
${EXTRA_LIBS})
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
#include "preferences.h"
|
#include "preferences.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
|
|
||||||
#define PREFERENCES_ID CFSTR(CMIO_ASSISTANT_NAME)
|
#define PREFERENCES_ID CFSTR(CMIO_ASSISTANT_NAME)
|
||||||
|
|
|
@ -26,8 +26,8 @@
|
||||||
|
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/image/videoframe.h"
|
#include "VCamUtils/src/videoframe.h"
|
||||||
|
|
||||||
namespace AkVCam {
|
namespace AkVCam {
|
||||||
namespace Utils {
|
namespace Utils {
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include <CoreMediaIO/CMIOHardwarePlugIn.h>
|
#include <CoreMediaIO/CMIOHardwarePlugIn.h>
|
||||||
#include <CoreMedia/CMFormatDescription.h>
|
#include <CoreMedia/CMFormatDescription.h>
|
||||||
|
|
||||||
#include "VCamUtils/src/image/videoformattypes.h"
|
#include "VCamUtils/src/videoformattypes.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
#
|
#
|
||||||
# akvirtualcamera is free software: you can redistribute it and/or modify
|
# akvirtualcamera is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -16,40 +16,26 @@
|
||||||
#
|
#
|
||||||
# Web-Site: http://webcamoid.github.io/
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
exists(commons.pri) {
|
cmake_minimum_required(VERSION 3.14)
|
||||||
include(commons.pri)
|
|
||||||
} else {
|
|
||||||
exists(../../commons.pri) {
|
|
||||||
include(../../commons.pri)
|
|
||||||
} else {
|
|
||||||
error("commons.pri file not found.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include(../cmio.pri)
|
project(VCamIPC LANGUAGES CXX OBJCXX)
|
||||||
|
|
||||||
CONFIG += \
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
staticlib \
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
create_prl \
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
no_install_prl
|
|
||||||
CONFIG -= qt
|
|
||||||
|
|
||||||
DESTDIR = $${OUT_PWD}/$${BIN_DIR}
|
include(../cmio.cmake)
|
||||||
|
|
||||||
TARGET = VCamIPC
|
add_library(VCamIPC STATIC
|
||||||
|
src/ipcbridge.mm)
|
||||||
|
|
||||||
TEMPLATE = lib
|
add_dependencies(VCamIPC VCamUtils)
|
||||||
|
target_compile_definitions(VCamIPC PRIVATE VCAMIPC_LIBRARY)
|
||||||
LIBS = \
|
target_include_directories(VCamIPC
|
||||||
-L$${OUT_PWD}/../../VCamUtils/$${BIN_DIR} -lVCamUtils \
|
PRIVATE ..
|
||||||
-framework Foundation
|
PRIVATE ../..)
|
||||||
|
find_library(FOUNDATION_FRAMEWORK NAMES Foundation)
|
||||||
OBJECTIVE_SOURCES = \
|
set(EXTRA_LIBS ${FOUNDATION_FRAMEWORK})
|
||||||
src/ipcbridge.mm
|
target_link_libraries(VCamIPC
|
||||||
|
VCamUtils
|
||||||
HEADERS = \
|
${EXTRA_LIBS})
|
||||||
../../ipcbridge.h
|
|
||||||
|
|
||||||
INCLUDEPATH += \
|
|
||||||
.. \
|
|
||||||
../..
|
|
|
@ -36,8 +36,8 @@
|
||||||
#include "Assistant/src/assistantglobals.h"
|
#include "Assistant/src/assistantglobals.h"
|
||||||
#include "PlatformUtils/src/preferences.h"
|
#include "PlatformUtils/src/preferences.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/image/videoframe.h"
|
#include "VCamUtils/src/videoframe.h"
|
||||||
#include "VCamUtils/src/ipcbridge.h"
|
#include "VCamUtils/src/ipcbridge.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
#include "VCamUtils/src/utils.h"
|
#include "VCamUtils/src/utils.h"
|
||||||
|
|
83
cmio/VirtualCamera/CMakeLists.txt
Normal file
83
cmio/VirtualCamera/CMakeLists.txt
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
|
project(VirtualCamera LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
include(../cmio.cmake)
|
||||||
|
|
||||||
|
set(CONTENTSPATH ${CMIO_PLUGIN_NAME}.plugin/Contents)
|
||||||
|
set(MACBINPATH ${CONTENTSPATH}/MacOS)
|
||||||
|
|
||||||
|
add_library(VirtualCamera SHARED
|
||||||
|
src/clock.cpp
|
||||||
|
src/clock.h
|
||||||
|
src/device.cpp
|
||||||
|
src/device.h
|
||||||
|
src/object.cpp
|
||||||
|
src/object.h
|
||||||
|
src/objectinterface.cpp
|
||||||
|
src/objectinterface.h
|
||||||
|
src/objectproperties.cpp
|
||||||
|
src/objectproperties.h
|
||||||
|
src/plugin.cpp
|
||||||
|
src/plugin.h
|
||||||
|
src/plugininterface.cpp
|
||||||
|
src/plugininterface.h
|
||||||
|
src/queue.h
|
||||||
|
src/stream.cpp
|
||||||
|
src/stream.h)
|
||||||
|
configure_file(Info.plist.in "${CMAKE_BINARY_DIR}/${CONTENTSPATH}/Info.plist")
|
||||||
|
set_target_properties(VirtualCamera PROPERTIES
|
||||||
|
OUTPUT_NAME ${CMIO_PLUGIN_NAME}
|
||||||
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${MACBINPATH}"
|
||||||
|
PREFIX ""
|
||||||
|
SUFFIX "")
|
||||||
|
add_dependencies(VirtualCamera VCamIPC PlatformUtils VCamUtils)
|
||||||
|
target_compile_definitions(VirtualCamera PRIVATE VIRTUALCAMERA_LIBRARY)
|
||||||
|
target_include_directories(VirtualCamera
|
||||||
|
PRIVATE ..
|
||||||
|
PRIVATE ../..)
|
||||||
|
find_library(COREFOUNDATION_FRAMEWORK NAMES CoreFoundation)
|
||||||
|
find_library(COREGRAPHICS_FRAMEWORK NAMES CoreGraphics)
|
||||||
|
find_library(COREMEDIA_FRAMEWORK NAMES CoreMedia)
|
||||||
|
find_library(COREMEDIAIO_FRAMEWORK NAMES CoreMediaIO)
|
||||||
|
find_library(COREVIDEO_FRAMEWORK NAMES CoreVideo)
|
||||||
|
find_library(FOUNDATION_FRAMEWORK NAMES Foundation)
|
||||||
|
find_library(IOKIT_FRAMEWORK NAMES IOKit)
|
||||||
|
find_library(IOSURFACE_FRAMEWORK NAMES IOSurface)
|
||||||
|
set(EXTRA_LIBS ${COREFOUNDATION_FRAMEWORK}
|
||||||
|
${COREGRAPHICS_FRAMEWORK}
|
||||||
|
${COREMEDIA_FRAMEWORK}
|
||||||
|
${COREMEDIAIO_FRAMEWORK}
|
||||||
|
${COREVIDEO_FRAMEWORK}
|
||||||
|
${FOUNDATION_FRAMEWORK}
|
||||||
|
${IOKIT_FRAMEWORK}
|
||||||
|
${IOSURFACE_FRAMEWORK})
|
||||||
|
target_link_libraries(VirtualCamera
|
||||||
|
PlatformUtils
|
||||||
|
VCamUtils
|
||||||
|
VCamIPC
|
||||||
|
${EXTRA_LIBS})
|
||||||
|
install(TARGETS VirtualCamera DESTINATION ${MACBINPATH})
|
||||||
|
install(FILES "${CMAKE_BINARY_DIR}/${CONTENTSPATH}/Info.plist" DESTINATION ${CONTENTSPATH})
|
|
@ -17,11 +17,11 @@
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>BNDL</string>
|
<string>BNDL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>$$VERSION</string>
|
<string>@VERSION@</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>$$VERSION</string>
|
<string>@VERSION@</string>
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
<key>CFBundleSupportedPlatforms</key>
|
||||||
<array>
|
<array>
|
||||||
<string>MacOSX</string>
|
<string>MacOSX</string>
|
||||||
|
|
|
@ -1,103 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
exists(commons.pri) {
|
|
||||||
include(commons.pri)
|
|
||||||
} else {
|
|
||||||
exists(../../commons.pri) {
|
|
||||||
include(../../commons.pri)
|
|
||||||
} else {
|
|
||||||
error("commons.pri file not found.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include(../cmio.pri)
|
|
||||||
|
|
||||||
CONFIG -= qt link_prl
|
|
||||||
CONFIG += \
|
|
||||||
unversioned_libname \
|
|
||||||
unversioned_soname
|
|
||||||
|
|
||||||
DESTDIR = $${OUT_PWD}/$${BIN_DIR}
|
|
||||||
|
|
||||||
INCLUDEPATH += \
|
|
||||||
.. \
|
|
||||||
../..
|
|
||||||
|
|
||||||
LIBS = \
|
|
||||||
-L$${OUT_PWD}/../PlatformUtils/$${BIN_DIR} -lPlatformUtils \
|
|
||||||
-L$${OUT_PWD}/../../VCamUtils/$${BIN_DIR} -lVCamUtils \
|
|
||||||
-L$${OUT_PWD}/../VCamIPC/$${BIN_DIR} -lVCamIPC \
|
|
||||||
-framework CoreFoundation \
|
|
||||||
-framework CoreGraphics \
|
|
||||||
-framework CoreMedia \
|
|
||||||
-framework CoreMediaIO \
|
|
||||||
-framework CoreVideo \
|
|
||||||
-framework Foundation \
|
|
||||||
-framework IOKit \
|
|
||||||
-framework IOSurface
|
|
||||||
|
|
||||||
TARGET = $${CMIO_PLUGIN_NAME}
|
|
||||||
TEMPLATE = lib
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
src/plugin.h \
|
|
||||||
src/plugininterface.h \
|
|
||||||
src/device.h \
|
|
||||||
src/object.h \
|
|
||||||
src/stream.h \
|
|
||||||
src/objectinterface.h \
|
|
||||||
src/objectproperties.h \
|
|
||||||
src/clock.h \
|
|
||||||
src/queue.h
|
|
||||||
|
|
||||||
SOURCES += \
|
|
||||||
src/plugin.cpp \
|
|
||||||
src/plugininterface.cpp \
|
|
||||||
src/device.cpp \
|
|
||||||
src/object.cpp \
|
|
||||||
src/stream.cpp \
|
|
||||||
src/objectinterface.cpp \
|
|
||||||
src/objectproperties.cpp \
|
|
||||||
src/clock.cpp
|
|
||||||
|
|
||||||
QMAKE_SUBSTITUTES += Info.plist.in
|
|
||||||
|
|
||||||
OTHER_FILES = \
|
|
||||||
Info.plist.in
|
|
||||||
|
|
||||||
CONTENTSPATH = $${CMIO_PLUGIN_NAME}.plugin/Contents
|
|
||||||
MACBINPATH = $${CONTENTSPATH}/MacOS
|
|
||||||
RESOURCESPATH = $${CONTENTSPATH}/Resources
|
|
||||||
|
|
||||||
INSTALLS += \
|
|
||||||
targetLib \
|
|
||||||
infoPlist
|
|
||||||
|
|
||||||
targetLib.files = $$shell_path($${OUT_PWD}/../../$${MACBINPATH}/$${CMIO_PLUGIN_NAME})
|
|
||||||
targetLib.path = $${PREFIX}/$${MACBINPATH}
|
|
||||||
targetLib.CONFIG += no_check_exist
|
|
||||||
|
|
||||||
infoPlist.files = $$shell_path($${OUT_PWD}/Info.plist)
|
|
||||||
infoPlist.path = $${PREFIX}/$${CONTENTSPATH}
|
|
||||||
infoPlist.CONFIG += no_check_exist
|
|
||||||
|
|
||||||
QMAKE_POST_LINK = \
|
|
||||||
$$sprintf($$QMAKE_MKDIR_CMD, $$shell_path($${OUT_PWD}/../../$${MACBINPATH})) $${CMD_SEP} \
|
|
||||||
$(COPY) $$shell_path($${OUT_PWD}/Info.plist) $$shell_path($${OUT_PWD}/../../$${CONTENTSPATH}) $${CMD_SEP} \
|
|
||||||
$(COPY) $$shell_path($${OUT_PWD}/$${BIN_DIR}/lib$${CMIO_PLUGIN_NAME}.$${QMAKE_EXTENSION_SHLIB}) $$shell_path($${OUT_PWD}/../../$${MACBINPATH}/$${CMIO_PLUGIN_NAME}) $${CMD_SEP}
|
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
#include "object.h"
|
#include "object.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
{
|
{
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
#include "Assistant/src/assistantglobals.h"
|
#include "Assistant/src/assistantglobals.h"
|
||||||
#include "PlatformUtils/src/preferences.h"
|
#include "PlatformUtils/src/preferences.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/ipcbridge.h"
|
#include "VCamUtils/src/ipcbridge.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,8 @@
|
||||||
#include "clock.h"
|
#include "clock.h"
|
||||||
#include "PlatformUtils/src/preferences.h"
|
#include "PlatformUtils/src/preferences.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/image/videoframe.h"
|
#include "VCamUtils/src/videoframe.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
#define STREAM_H
|
#define STREAM_H
|
||||||
|
|
||||||
#include "VCamUtils/src/fraction.h"
|
#include "VCamUtils/src/fraction.h"
|
||||||
#include "VCamUtils/src/image/videoframetypes.h"
|
#include "VCamUtils/src/videoframetypes.h"
|
||||||
#include "VCamUtils/src/ipcbridge.h"
|
#include "VCamUtils/src/ipcbridge.h"
|
||||||
#include "object.h"
|
#include "object.h"
|
||||||
#include "queue.h"
|
#include "queue.h"
|
||||||
|
|
34
cmio/cmio.cmake
Normal file
34
cmio/cmio.cmake
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/../commons.cmake")
|
||||||
|
|
||||||
|
set(CMIO_PLUGIN_NAME AkVirtualCamera)
|
||||||
|
set(CMIO_PLUGIN_ASSISTANT_NAME AkVCamAssistant)
|
||||||
|
set(CMIO_PLUGIN_DEVICE_PREFIX AkVCamVideoDevice)
|
||||||
|
set(CMIO_PLUGIN_VENDOR "Webcamoid Project")
|
||||||
|
set(CMIO_PLUGIN_PRODUCT ${CMIO_PLUGIN_NAME})
|
||||||
|
set(CMIO_ASSISTANT_NAME "org.webcamoid.cmio.AkVCam.Assistant")
|
||||||
|
|
||||||
|
add_definitions(-DCMIO_PLUGIN_NAME="\\"${CMIO_PLUGIN_NAME}\\""
|
||||||
|
-DCMIO_PLUGIN_NAME_L="\\"${CMIO_PLUGIN_NAME}\\""
|
||||||
|
-DCMIO_PLUGIN_ASSISTANT_NAME="\\"${CMIO_PLUGIN_ASSISTANT_NAME}\\""
|
||||||
|
-DCMIO_PLUGIN_DEVICE_PREFIX="\\"${CMIO_PLUGIN_DEVICE_PREFIX}\\""
|
||||||
|
-DCMIO_PLUGIN_VENDOR="\\"${CMIO_PLUGIN_VENDOR}\\""
|
||||||
|
-DCMIO_PLUGIN_PRODUCT="\\"${CMIO_PLUGIN_PRODUCT}\\""
|
||||||
|
-DCMIO_ASSISTANT_NAME="\\"${CMIO_ASSISTANT_NAME}\\"")
|
|
@ -1,39 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
isEmpty(CMIO_PLUGIN_NAME):
|
|
||||||
CMIO_PLUGIN_NAME = AkVirtualCamera
|
|
||||||
isEmpty(CMIO_PLUGIN_ASSISTANT_NAME):
|
|
||||||
CMIO_PLUGIN_ASSISTANT_NAME = AkVCamAssistant
|
|
||||||
isEmpty(CMIO_PLUGIN_DEVICE_PREFIX):
|
|
||||||
CMIO_PLUGIN_DEVICE_PREFIX = AkVCamVideoDevice
|
|
||||||
isEmpty(CMIO_PLUGIN_VENDOR):
|
|
||||||
CMIO_PLUGIN_VENDOR = "Webcamoid Project"
|
|
||||||
isEmpty(CMIO_PLUGIN_PRODUCT):
|
|
||||||
CMIO_PLUGIN_PRODUCT = $$CMIO_PLUGIN_NAME
|
|
||||||
isEmpty(CMIO_ASSISTANT_NAME):
|
|
||||||
CMIO_ASSISTANT_NAME = "org.webcamoid.cmio.AkVCam.Assistant"
|
|
||||||
|
|
||||||
DEFINES += \
|
|
||||||
CMIO_PLUGIN_NAME=\"\\\"$$CMIO_PLUGIN_NAME\\\"\" \
|
|
||||||
CMIO_PLUGIN_NAME_L=\"L\\\"$$CMIO_PLUGIN_NAME\\\"\" \
|
|
||||||
CMIO_PLUGIN_ASSISTANT_NAME=\"\\\"$$CMIO_PLUGIN_ASSISTANT_NAME\\\"\" \
|
|
||||||
CMIO_PLUGIN_DEVICE_PREFIX=\"\\\"$$CMIO_PLUGIN_DEVICE_PREFIX\\\"\" \
|
|
||||||
CMIO_PLUGIN_VENDOR=\"\\\"$$CMIO_PLUGIN_VENDOR\\\"\" \
|
|
||||||
CMIO_PLUGIN_PRODUCT=\"\\\"$$CMIO_PLUGIN_PRODUCT\\\"\" \
|
|
||||||
CMIO_ASSISTANT_NAME=\"\\\"$$CMIO_ASSISTANT_NAME\\\"\"
|
|
64
commons.cmake
Normal file
64
commons.cmake
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
set(COMMONS_APPNAME AkVirtualCamera)
|
||||||
|
string(TOLOWER ${COMMONS_APPNAME} COMMONS_TARGET)
|
||||||
|
|
||||||
|
set(VER_MAJ 9)
|
||||||
|
set(VER_MIN 0)
|
||||||
|
set(VER_PAT 0)
|
||||||
|
set(VERSION ${VER_MAJ}.${VER_MIN}.${VER_PAT})
|
||||||
|
|
||||||
|
add_definitions(-DCOMMONS_APPNAME="\\"${COMMONS_APPNAME}\\""
|
||||||
|
-DCOMMONS_TARGET="\\"${COMMONS_TARGET}\\""
|
||||||
|
-DCOMMONS_VER_MAJ="\\"${VER_MAJ}\\""
|
||||||
|
-DCOMMONS_VERSION="\\"${VERSION}\\""
|
||||||
|
-DPREFIX="\\"${PREFIX}\\"")
|
||||||
|
|
||||||
|
if (WIN32)
|
||||||
|
include(CheckCXXSourceCompiles)
|
||||||
|
|
||||||
|
check_cxx_source_compiles("
|
||||||
|
#if !defined(__amd64__) \\
|
||||||
|
&& !defined(__amd64) \\
|
||||||
|
&& !defined(__x86_64_) \\
|
||||||
|
&& !defined(__x86_64) \\
|
||||||
|
&& !defined(_M_X64) \\
|
||||||
|
&& !defined(_M_AMD64)
|
||||||
|
#error Not x64
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}" HAVE_X64)
|
||||||
|
|
||||||
|
if (HAVE_X64)
|
||||||
|
set(TARGET_ARCH x64)
|
||||||
|
else ()
|
||||||
|
set(TARGET_ARCH x86)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_definitions(-DUNICODE -D_UNICODE)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT APPLE AND NOT WIN32)
|
||||||
|
message(FATAL_ERROR "This driver only works in Mac an Windows. For Linux check 'akvcam' instead.")
|
||||||
|
endif ()
|
92
commons.pri
92
commons.pri
|
@ -1,92 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
COMMONS_APPNAME = "AkVirtualCamera"
|
|
||||||
COMMONS_TARGET = $$lower($${COMMONS_APPNAME})
|
|
||||||
COMMONS_TARGET = $$replace(COMMONS_TARGET, lib, "")
|
|
||||||
|
|
||||||
VER_MAJ = 9
|
|
||||||
VER_MIN = 0
|
|
||||||
VER_PAT = 0
|
|
||||||
VERSION = $${VER_MAJ}.$${VER_MIN}.$${VER_PAT}
|
|
||||||
|
|
||||||
win32 {
|
|
||||||
host_name = $$lower($$QMAKE_HOST.os)
|
|
||||||
|
|
||||||
!isEmpty(ProgramW6432) {
|
|
||||||
DEFAULT_PREFIX = $(ProgramW6432)
|
|
||||||
} else: !isEmpty(ProgramFiles) {
|
|
||||||
DEFAULT_PREFIX = $(ProgramFiles)
|
|
||||||
} else: contains(host_name, linux) {
|
|
||||||
DEFAULT_PREFIX = /
|
|
||||||
} else {
|
|
||||||
DEFAULT_PREFIX = C:/
|
|
||||||
}
|
|
||||||
}
|
|
||||||
macx: DEFAULT_PREFIX = /Applications
|
|
||||||
|
|
||||||
isEmpty(PREFIX): PREFIX = $${DEFAULT_PREFIX}
|
|
||||||
|
|
||||||
DEFINES += \
|
|
||||||
COMMONS_APPNAME=\"\\\"$$COMMONS_APPNAME\\\"\" \
|
|
||||||
COMMONS_TARGET=\"\\\"$$COMMONS_TARGET\\\"\" \
|
|
||||||
COMMONS_VER_MAJ=\"\\\"$$VER_MAJ\\\"\" \
|
|
||||||
COMMONS_VERSION=\"\\\"$$VERSION\\\"\" \
|
|
||||||
PREFIX=\"\\\"$$PREFIX\\\"\"
|
|
||||||
|
|
||||||
msvc {
|
|
||||||
TARGET_ARCH = $${QMAKE_TARGET.arch}
|
|
||||||
TARGET_ARCH = $$basename(TARGET_ARCH)
|
|
||||||
TARGET_ARCH = $$replace(TARGET_ARCH, x64, x86_64)
|
|
||||||
} else {
|
|
||||||
TARGET_ARCH = $$system($${QMAKE_CXX} -dumpmachine)
|
|
||||||
TARGET_ARCH = $$split(TARGET_ARCH, -)
|
|
||||||
TARGET_ARCH = $$first(TARGET_ARCH)
|
|
||||||
}
|
|
||||||
|
|
||||||
COMPILER = $$basename(QMAKE_CXX)
|
|
||||||
COMPILER = $$replace(COMPILER, \+\+, pp)
|
|
||||||
COMPILER = $$join(COMPILER, _)
|
|
||||||
|
|
||||||
CONFIG(debug, debug|release) {
|
|
||||||
COMMONS_BUILD_PATH = debug/$${COMPILER}/$${TARGET_ARCH}
|
|
||||||
} else {
|
|
||||||
COMMONS_BUILD_PATH = release/$$COMPILER/$${TARGET_ARCH}
|
|
||||||
}
|
|
||||||
|
|
||||||
BIN_DIR = $${COMMONS_BUILD_PATH}/bin
|
|
||||||
MOC_DIR = $${COMMONS_BUILD_PATH}/moc
|
|
||||||
OBJECTS_DIR = $${COMMONS_BUILD_PATH}/obj
|
|
||||||
RCC_DIR = $${COMMONS_BUILD_PATH}/rcc
|
|
||||||
UI_DIR = $${COMMONS_BUILD_PATH}/ui
|
|
||||||
|
|
||||||
win32 {
|
|
||||||
CONFIG += skip_target_version_ext
|
|
||||||
!isEmpty(STATIC_BUILD):!isEqual(STATIC_BUILD, 0) {
|
|
||||||
win32-g++: QMAKE_LFLAGS = -static-libgcc -static-libstdc++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Enable c++11 support in all platforms
|
|
||||||
!CONFIG(c++11): CONFIG += c++11
|
|
||||||
|
|
||||||
!win32: !macx {
|
|
||||||
error("This driver only works in Mac an Windows. For Linux check 'akvcam' instead.")
|
|
||||||
}
|
|
||||||
|
|
||||||
CMD_SEP = $$escape_expand(\n\t)
|
|
|
@ -1,70 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
exists(commons.pri) {
|
|
||||||
include(commons.pri)
|
|
||||||
} else {
|
|
||||||
exists(../../commons.pri) {
|
|
||||||
include(../../commons.pri)
|
|
||||||
} else {
|
|
||||||
error("commons.pri file not found.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include(../dshow.pri)
|
|
||||||
|
|
||||||
TEMPLATE = app
|
|
||||||
CONFIG += console link_prl
|
|
||||||
CONFIG -= app_bundle
|
|
||||||
CONFIG -= qt
|
|
||||||
|
|
||||||
TARGET = $${DSHOW_PLUGIN_ASSISTANT_NAME}
|
|
||||||
|
|
||||||
SOURCES += \
|
|
||||||
src/main.cpp \
|
|
||||||
src/service.cpp
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
src/service.h
|
|
||||||
|
|
||||||
INCLUDEPATH += \
|
|
||||||
.. \
|
|
||||||
../..
|
|
||||||
|
|
||||||
LIBS += \
|
|
||||||
-L$${OUT_PWD}/../PlatformUtils/$${BIN_DIR} -lPlatformUtils \
|
|
||||||
-L$${OUT_PWD}/../../VCamUtils/$${BIN_DIR} -lVCamUtils \
|
|
||||||
-ladvapi32 \
|
|
||||||
-lgdi32 \
|
|
||||||
-lole32 \
|
|
||||||
-lshell32 \
|
|
||||||
-lstrmiids \
|
|
||||||
-luuid
|
|
||||||
|
|
||||||
win32-g++: LIBS += -lssp
|
|
||||||
|
|
||||||
isEmpty(STATIC_BUILD) | isEqual(STATIC_BUILD, 0) {
|
|
||||||
win32-g++: QMAKE_LFLAGS = -static -static-libgcc -static-libstdc++
|
|
||||||
}
|
|
||||||
|
|
||||||
INSTALLPATH = $${DSHOW_PLUGIN_NAME}.plugin/$$normalizedArch(TARGET_ARCH)
|
|
||||||
|
|
||||||
DESTDIR = $${OUT_PWD}/../../$${INSTALLPATH}
|
|
||||||
|
|
||||||
INSTALLS += target
|
|
||||||
target.path = $${PREFIX}/$${INSTALLPATH}
|
|
48
dshow/Assistant/CMakeLists.txt
Normal file
48
dshow/Assistant/CMakeLists.txt
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
|
||||||
|
project(Assistant LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
include(../dshow.cmake)
|
||||||
|
set(INSTALLPATH ${DSHOW_PLUGIN_NAME}.plugin/${TARGET_ARCH})
|
||||||
|
|
||||||
|
add_executable(Assistant
|
||||||
|
src/main.cpp
|
||||||
|
src/service.cpp
|
||||||
|
src/service.h)
|
||||||
|
set_target_properties(Assistant PROPERTIES
|
||||||
|
OUTPUT_NAME ${DSHOW_PLUGIN_ASSISTANT_NAME}
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${INSTALLPATH}")
|
||||||
|
add_dependencies(Assistant PlatformUtils VCamUtils)
|
||||||
|
target_include_directories(Assistant
|
||||||
|
PRIVATE ..
|
||||||
|
PRIVATE ../..)
|
||||||
|
target_link_libraries(Assistant
|
||||||
|
PlatformUtils
|
||||||
|
advapi32
|
||||||
|
gdi32
|
||||||
|
ole32
|
||||||
|
shell32
|
||||||
|
strmiids
|
||||||
|
uuid)
|
||||||
|
install(TARGETS Assistant DESTINATION ${INSTALLPATH})
|
|
@ -32,8 +32,8 @@
|
||||||
#include "service.h"
|
#include "service.h"
|
||||||
#include "PlatformUtils/src/messageserver.h"
|
#include "PlatformUtils/src/messageserver.h"
|
||||||
#include "PlatformUtils/src/preferences.h"
|
#include "PlatformUtils/src/preferences.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/image/videoframe.h"
|
#include "VCamUtils/src/videoframe.h"
|
||||||
#include "VCamUtils/src/timer.h"
|
#include "VCamUtils/src/timer.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,26 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
#
|
#
|
||||||
# akvirtualcamera is free software: you can redistribute it and/or modify
|
# akvirtualcamera is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# akvirtualcamera is distributed in the hope that it will be useful,
|
# akvirtualcamera is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
# along with akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
# Web-Site: http://webcamoid.github.io/
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
TEMPLATE = subdirs
|
cmake_minimum_required(VERSION 3.5)
|
||||||
CONFIG += ordered
|
|
||||||
|
project(dshow)
|
||||||
SUBDIRS = VCamUtils
|
|
||||||
macx: SUBDIRS += cmio
|
add_subdirectory(PlatformUtils)
|
||||||
win32: SUBDIRS += dshow
|
add_subdirectory(VCamIPC)
|
||||||
SUBDIRS += Manager
|
add_subdirectory(Assistant)
|
||||||
|
add_subdirectory(VirtualCamera)
|
51
dshow/PlatformUtils/CMakeLists.txt
Normal file
51
dshow/PlatformUtils/CMakeLists.txt
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
|
project(PlatformUtils LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
include(../dshow.cmake)
|
||||||
|
|
||||||
|
add_library(PlatformUtils STATIC
|
||||||
|
src/messagecommons.h
|
||||||
|
src/messageserver.cpp
|
||||||
|
src/messageserver.h
|
||||||
|
src/mutex.cpp
|
||||||
|
src/mutex.h
|
||||||
|
src/preferences.cpp
|
||||||
|
src/preferences.h
|
||||||
|
src/sharedmemory.cpp
|
||||||
|
src/sharedmemory.h
|
||||||
|
src/utils.cpp
|
||||||
|
src/utils.h)
|
||||||
|
|
||||||
|
add_dependencies(PlatformUtils VCamUtils)
|
||||||
|
target_compile_definitions(PlatformUtils PRIVATE PLATFORMUTILS_LIBRARY)
|
||||||
|
target_include_directories(PlatformUtils PRIVATE ../..)
|
||||||
|
target_link_libraries(PlatformUtils
|
||||||
|
VCamUtils
|
||||||
|
advapi32
|
||||||
|
kernel32
|
||||||
|
gdi32
|
||||||
|
shell32
|
||||||
|
windowscodecs)
|
|
@ -1,66 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
exists(commons.pri) {
|
|
||||||
include(commons.pri)
|
|
||||||
} else {
|
|
||||||
exists(../../commons.pri) {
|
|
||||||
include(../../commons.pri)
|
|
||||||
} else {
|
|
||||||
error("commons.pri file not found.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include(../dshow.pri)
|
|
||||||
|
|
||||||
CONFIG += \
|
|
||||||
staticlib \
|
|
||||||
create_prl \
|
|
||||||
no_install_prl
|
|
||||||
CONFIG -= qt
|
|
||||||
|
|
||||||
DESTDIR = $${OUT_PWD}/$${BIN_DIR}
|
|
||||||
|
|
||||||
TARGET = PlatformUtils
|
|
||||||
|
|
||||||
TEMPLATE = lib
|
|
||||||
|
|
||||||
LIBS = \
|
|
||||||
-L$${OUT_PWD}/../../VCamUtils/$${BIN_DIR} -lVCamUtils \
|
|
||||||
-ladvapi32 \
|
|
||||||
-lkernel32 \
|
|
||||||
-lgdi32 \
|
|
||||||
-lshell32 \
|
|
||||||
-lwindowscodecs
|
|
||||||
|
|
||||||
SOURCES = \
|
|
||||||
src/messageserver.cpp \
|
|
||||||
src/mutex.cpp \
|
|
||||||
src/preferences.cpp \
|
|
||||||
src/utils.cpp \
|
|
||||||
src/sharedmemory.cpp
|
|
||||||
|
|
||||||
HEADERS = \
|
|
||||||
src/messagecommons.h \
|
|
||||||
src/messageserver.h \
|
|
||||||
src/mutex.h \
|
|
||||||
src/preferences.h \
|
|
||||||
src/utils.h \
|
|
||||||
src/sharedmemory.h
|
|
||||||
|
|
||||||
INCLUDEPATH += ../..
|
|
|
@ -24,7 +24,7 @@
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
#include "VCamUtils/src/image/videoframetypes.h"
|
#include "VCamUtils/src/videoframetypes.h"
|
||||||
|
|
||||||
#define AKVCAM_ASSISTANT_CLIENT_NAME "AkVCam_Client"
|
#define AKVCAM_ASSISTANT_CLIENT_NAME "AkVCam_Client"
|
||||||
#define AKVCAM_ASSISTANT_SERVER_NAME "AkVCam_Server"
|
#define AKVCAM_ASSISTANT_SERVER_NAME "AkVCam_Server"
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#include "preferences.h"
|
#include "preferences.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
|
|
||||||
#define REG_PREFIX "SOFTWARE\\Webcamoid\\VirtualCamera"
|
#define REG_PREFIX "SOFTWARE\\Webcamoid\\VirtualCamera"
|
||||||
|
|
|
@ -29,8 +29,8 @@
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "messagecommons.h"
|
#include "messagecommons.h"
|
||||||
#include "VCamUtils/src/utils.h"
|
#include "VCamUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/image/videoframe.h"
|
#include "VCamUtils/src/videoframe.h"
|
||||||
|
|
||||||
#define TIME_BASE 1.0e7
|
#define TIME_BASE 1.0e7
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <strmif.h>
|
#include <strmif.h>
|
||||||
|
|
||||||
#include "VCamUtils/src/image/videoformattypes.h"
|
#include "VCamUtils/src/videoformattypes.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
|
|
||||||
#define AkLogInterface(interface, instance) \
|
#define AkLogInterface(interface, instance) \
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
#
|
#
|
||||||
# akvirtualcamera is free software: you can redistribute it and/or modify
|
# akvirtualcamera is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
@ -16,41 +16,26 @@
|
||||||
#
|
#
|
||||||
# Web-Site: http://webcamoid.github.io/
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
exists(commons.pri) {
|
cmake_minimum_required(VERSION 3.14)
|
||||||
include(commons.pri)
|
|
||||||
} else {
|
|
||||||
exists(../../commons.pri) {
|
|
||||||
include(../../commons.pri)
|
|
||||||
} else {
|
|
||||||
error("commons.pri file not found.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include(../cmio.pri)
|
project(VCamIPC LANGUAGES CXX)
|
||||||
|
|
||||||
CONFIG += \
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
staticlib \
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
create_prl \
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
no_install_prl
|
|
||||||
CONFIG -= qt
|
|
||||||
|
|
||||||
DESTDIR = $${OUT_PWD}/$${BIN_DIR}
|
include(../dshow.cmake)
|
||||||
|
|
||||||
TARGET = PlatformUtils
|
add_library(VCamIPC STATIC
|
||||||
|
src/ipcbridge.cpp)
|
||||||
|
|
||||||
TEMPLATE = lib
|
add_dependencies(VCamIPC PlatformUtils VCamUtils)
|
||||||
|
target_compile_definitions(VCamIPC PRIVATE VCAMIPC_LIBRARY)
|
||||||
LIBS = \
|
target_include_directories(VCamIPC
|
||||||
-L$${OUT_PWD}/../../VCamUtils/$${BIN_DIR} -lVCamUtils \
|
PRIVATE ..
|
||||||
-framework CoreFoundation \
|
PRIVATE ../..)
|
||||||
-framework CoreGraphics
|
target_link_libraries(VCamIPC
|
||||||
|
PlatformUtils
|
||||||
SOURCES = \
|
advapi32
|
||||||
src/preferences.cpp \
|
kernel32
|
||||||
src/utils.cpp
|
psapi)
|
||||||
|
|
||||||
HEADERS = \
|
|
||||||
src/preferences.h \
|
|
||||||
src/utils.h
|
|
||||||
|
|
||||||
INCLUDEPATH += ../..
|
|
|
@ -1,64 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
exists(commons.pri) {
|
|
||||||
include(commons.pri)
|
|
||||||
} else {
|
|
||||||
exists(../../commons.pri) {
|
|
||||||
include(../../commons.pri)
|
|
||||||
} else {
|
|
||||||
error("commons.pri file not found.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include(../dshow.pri)
|
|
||||||
|
|
||||||
CONFIG += \
|
|
||||||
staticlib \
|
|
||||||
create_prl \
|
|
||||||
no_install_prl
|
|
||||||
CONFIG -= qt
|
|
||||||
|
|
||||||
DESTDIR = $${OUT_PWD}/$${BIN_DIR}
|
|
||||||
|
|
||||||
TARGET = VCamIPC
|
|
||||||
|
|
||||||
TEMPLATE = lib
|
|
||||||
|
|
||||||
LIBS = \
|
|
||||||
-L$${OUT_PWD}/../PlatformUtils/$${BIN_DIR} -lPlatformUtils \
|
|
||||||
-L$${OUT_PWD}/../../VCamUtils/$${BIN_DIR} -lVCamUtils \
|
|
||||||
-ladvapi32 \
|
|
||||||
-lkernel32 \
|
|
||||||
-lpsapi
|
|
||||||
|
|
||||||
win32-g++: LIBS += -lssp
|
|
||||||
|
|
||||||
SOURCES = \
|
|
||||||
src/ipcbridge.cpp
|
|
||||||
|
|
||||||
HEADERS = \
|
|
||||||
../../ipcbridge.h
|
|
||||||
|
|
||||||
INCLUDEPATH += \
|
|
||||||
.. \
|
|
||||||
../..
|
|
||||||
|
|
||||||
DEFINES += \
|
|
||||||
DSHOW_PLUGIN_ARCH=\"\\\"$$normalizedArch(TARGET_ARCH)\\\"\" \
|
|
||||||
DSHOW_PLUGIN_ARCH_L=\"L\\\"$$normalizedArch(TARGET_ARCH)\\\"\"
|
|
|
@ -34,8 +34,8 @@
|
||||||
#include "PlatformUtils/src/preferences.h"
|
#include "PlatformUtils/src/preferences.h"
|
||||||
#include "PlatformUtils/src/sharedmemory.h"
|
#include "PlatformUtils/src/sharedmemory.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/image/videoframe.h"
|
#include "VCamUtils/src/videoframe.h"
|
||||||
#include "VCamUtils/src/ipcbridge.h"
|
#include "VCamUtils/src/ipcbridge.h"
|
||||||
#include "VCamUtils/src/logger.h"
|
#include "VCamUtils/src/logger.h"
|
||||||
|
|
||||||
|
|
104
dshow/VirtualCamera/CMakeLists.txt
Normal file
104
dshow/VirtualCamera/CMakeLists.txt
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.14)
|
||||||
|
|
||||||
|
project(VirtualCamera LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
include(../dshow.cmake)
|
||||||
|
set(INSTALLPATH ${DSHOW_PLUGIN_NAME}.plugin/${TARGET_ARCH})
|
||||||
|
|
||||||
|
add_library(VirtualCamera SHARED
|
||||||
|
src/basefilter.cpp
|
||||||
|
src/basefilter.h
|
||||||
|
src/classfactory.cpp
|
||||||
|
src/classfactory.h
|
||||||
|
src/cunknown.cpp
|
||||||
|
src/cunknown.h
|
||||||
|
src/enummediatypes.cpp
|
||||||
|
src/enummediatypes.h
|
||||||
|
src/enumpins.cpp
|
||||||
|
src/enumpins.h
|
||||||
|
src/filtermiscflags.cpp
|
||||||
|
src/filtermiscflags.h
|
||||||
|
src/latency.cpp
|
||||||
|
src/latency.h
|
||||||
|
src/mediafilter.cpp
|
||||||
|
src/mediafilter.h
|
||||||
|
src/mediasample.cpp
|
||||||
|
src/mediasample.h
|
||||||
|
src/mediasample2.cpp
|
||||||
|
src/mediasample2.h
|
||||||
|
src/memallocator.cpp
|
||||||
|
src/memallocator.h
|
||||||
|
src/persist.cpp
|
||||||
|
src/persist.h
|
||||||
|
src/persistpropertybag.cpp
|
||||||
|
src/persistpropertybag.h
|
||||||
|
src/pin.cpp
|
||||||
|
src/pin.h
|
||||||
|
src/plugin.cpp
|
||||||
|
src/plugin.h
|
||||||
|
src/plugininterface.cpp
|
||||||
|
src/plugininterface.h
|
||||||
|
src/propertyset.cpp
|
||||||
|
src/propertyset.h
|
||||||
|
src/pushsource.cpp
|
||||||
|
src/pushsource.h
|
||||||
|
src/qualitycontrol.cpp
|
||||||
|
src/qualitycontrol.h
|
||||||
|
src/referenceclock.cpp
|
||||||
|
src/referenceclock.h
|
||||||
|
src/specifypropertypages.cpp
|
||||||
|
src/specifypropertypages.h
|
||||||
|
src/streamconfig.cpp
|
||||||
|
src/streamconfig.h
|
||||||
|
src/videocontrol.cpp
|
||||||
|
src/videocontrol.h
|
||||||
|
src/videoprocamp.cpp
|
||||||
|
src/videoprocamp.h
|
||||||
|
VirtualCamera.def)
|
||||||
|
set_target_properties(VirtualCamera PROPERTIES
|
||||||
|
OUTPUT_NAME ${DSHOW_PLUGIN_NAME}
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${INSTALLPATH}"
|
||||||
|
PREFIX "")
|
||||||
|
add_dependencies(VirtualCamera VCamIPC PlatformUtils VCamUtils)
|
||||||
|
target_compile_definitions(VirtualCamera PRIVATE VIRTUALCAMERA_LIBRARY)
|
||||||
|
target_include_directories(VirtualCamera
|
||||||
|
PRIVATE ..
|
||||||
|
PRIVATE ../..)
|
||||||
|
target_link_libraries(VirtualCamera
|
||||||
|
VCamIPC
|
||||||
|
PlatformUtils
|
||||||
|
VCamUtils
|
||||||
|
advapi32
|
||||||
|
gdi32
|
||||||
|
kernel32
|
||||||
|
ole32
|
||||||
|
oleaut32
|
||||||
|
psapi
|
||||||
|
shell32
|
||||||
|
strmiids
|
||||||
|
user32
|
||||||
|
uuid
|
||||||
|
winmm)
|
||||||
|
install(TARGETS VirtualCamera DESTINATION ${INSTALLPATH})
|
|
@ -16,7 +16,7 @@
|
||||||
;
|
;
|
||||||
; Web-Site: http://webcamoid.github.io/
|
; Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
LIBRARY VirtualCameraSource.dll
|
LIBRARY AkVirtualCamera.dll
|
||||||
|
|
||||||
EXPORTS
|
EXPORTS
|
||||||
DllMain PRIVATE
|
DllMain PRIVATE
|
||||||
|
|
|
@ -1,126 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
exists(commons.pri) {
|
|
||||||
include(commons.pri)
|
|
||||||
} else {
|
|
||||||
exists(../../commons.pri) {
|
|
||||||
include(../../commons.pri)
|
|
||||||
} else {
|
|
||||||
error("commons.pri file not found.")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
include(../dshow.pri)
|
|
||||||
|
|
||||||
CONFIG -= qt
|
|
||||||
CONFIG += link_prl
|
|
||||||
|
|
||||||
INCLUDEPATH += \
|
|
||||||
.. \
|
|
||||||
../..
|
|
||||||
|
|
||||||
LIBS += \
|
|
||||||
-L$${OUT_PWD}/../VCamIPC/$${BIN_DIR} -lVCamIPC \
|
|
||||||
-L$${OUT_PWD}/../PlatformUtils/$${BIN_DIR} -lPlatformUtils \
|
|
||||||
-L$${OUT_PWD}/../../VCamUtils/$${BIN_DIR} -lVCamUtils \
|
|
||||||
-ladvapi32 \
|
|
||||||
-lgdi32 \
|
|
||||||
-lkernel32 \
|
|
||||||
-lole32 \
|
|
||||||
-loleaut32 \
|
|
||||||
-lpsapi \
|
|
||||||
-lshell32 \
|
|
||||||
-lstrmiids \
|
|
||||||
-luser32 \
|
|
||||||
-luuid \
|
|
||||||
-lwinmm
|
|
||||||
|
|
||||||
TARGET = $${DSHOW_PLUGIN_NAME}
|
|
||||||
TEMPLATE = lib
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
src/basefilter.h \
|
|
||||||
src/classfactory.h \
|
|
||||||
src/cunknown.h \
|
|
||||||
src/enummediatypes.h \
|
|
||||||
src/enumpins.h \
|
|
||||||
src/filtermiscflags.h \
|
|
||||||
src/latency.h \
|
|
||||||
src/mediafilter.h \
|
|
||||||
src/mediasample.h \
|
|
||||||
src/mediasample2.h \
|
|
||||||
src/memallocator.h \
|
|
||||||
src/persist.h \
|
|
||||||
src/persistpropertybag.h \
|
|
||||||
src/pin.h \
|
|
||||||
src/plugin.h \
|
|
||||||
src/plugininterface.h \
|
|
||||||
src/propertyset.h \
|
|
||||||
src/pushsource.h \
|
|
||||||
src/qualitycontrol.h \
|
|
||||||
src/referenceclock.h \
|
|
||||||
src/specifypropertypages.h \
|
|
||||||
src/streamconfig.h \
|
|
||||||
src/videocontrol.h \
|
|
||||||
src/videoprocamp.h
|
|
||||||
|
|
||||||
SOURCES += \
|
|
||||||
src/basefilter.cpp \
|
|
||||||
src/classfactory.cpp \
|
|
||||||
src/cunknown.cpp \
|
|
||||||
src/enummediatypes.cpp \
|
|
||||||
src/enumpins.cpp \
|
|
||||||
src/filtermiscflags.cpp \
|
|
||||||
src/latency.cpp \
|
|
||||||
src/mediafilter.cpp \
|
|
||||||
src/mediasample.cpp \
|
|
||||||
src/mediasample2.cpp \
|
|
||||||
src/memallocator.cpp \
|
|
||||||
src/persist.cpp \
|
|
||||||
src/persistpropertybag.cpp \
|
|
||||||
src/pin.cpp \
|
|
||||||
src/plugin.cpp \
|
|
||||||
src/plugininterface.cpp \
|
|
||||||
src/propertyset.cpp \
|
|
||||||
src/pushsource.cpp \
|
|
||||||
src/qualitycontrol.cpp \
|
|
||||||
src/referenceclock.cpp \
|
|
||||||
src/specifypropertypages.cpp \
|
|
||||||
src/streamconfig.cpp \
|
|
||||||
src/videocontrol.cpp \
|
|
||||||
src/videoprocamp.cpp
|
|
||||||
|
|
||||||
OTHER_FILES = \
|
|
||||||
VirtualCamera.def
|
|
||||||
|
|
||||||
DEF_FILE = VirtualCamera.def
|
|
||||||
|
|
||||||
isEmpty(STATIC_BUILD) | isEqual(STATIC_BUILD, 0) {
|
|
||||||
win32-g++: QMAKE_LFLAGS = -static -static-libgcc -static-libstdc++
|
|
||||||
}
|
|
||||||
|
|
||||||
INSTALLPATH = $${DSHOW_PLUGIN_NAME}.plugin/$$normalizedArch(TARGET_ARCH)
|
|
||||||
RESOURCESPATH = $${DSHOW_PLUGIN_NAME}.plugin/share
|
|
||||||
|
|
||||||
DESTDIR = $${OUT_PWD}/../../$${INSTALLPATH}
|
|
||||||
|
|
||||||
INSTALLS += \
|
|
||||||
target
|
|
||||||
|
|
||||||
target.path = $${PREFIX}/$${INSTALLPATH}
|
|
|
@ -31,7 +31,7 @@
|
||||||
#include "videoprocamp.h"
|
#include "videoprocamp.h"
|
||||||
#include "PlatformUtils/src/preferences.h"
|
#include "PlatformUtils/src/preferences.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/ipcbridge.h"
|
#include "VCamUtils/src/ipcbridge.h"
|
||||||
#include "VCamUtils/src/utils.h"
|
#include "VCamUtils/src/utils.h"
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
|
|
||||||
#include "enummediatypes.h"
|
#include "enummediatypes.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/utils.h"
|
#include "VCamUtils/src/utils.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include "memallocator.h"
|
#include "memallocator.h"
|
||||||
#include "mediasample.h"
|
#include "mediasample.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/utils.h"
|
#include "VCamUtils/src/utils.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
|
|
|
@ -38,8 +38,8 @@
|
||||||
#include "videoprocamp.h"
|
#include "videoprocamp.h"
|
||||||
#include "PlatformUtils/src/preferences.h"
|
#include "PlatformUtils/src/preferences.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
#include "VCamUtils/src/image/videoframe.h"
|
#include "VCamUtils/src/videoframe.h"
|
||||||
#include "VCamUtils/src/utils.h"
|
#include "VCamUtils/src/utils.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
|
@ -208,7 +208,7 @@ HRESULT AkVCam::Pin::stateChanged(void *userData, FILTER_STATE state)
|
||||||
self->d->m_ptsDrift = 0;
|
self->d->m_ptsDrift = 0;
|
||||||
|
|
||||||
self->d->m_sendFrameEvent =
|
self->d->m_sendFrameEvent =
|
||||||
CreateSemaphore(nullptr, 1, 1, L"SendFrame");
|
CreateSemaphore(nullptr, 1, 1, TEXT("SendFrame"));
|
||||||
|
|
||||||
self->d->m_running = true;
|
self->d->m_running = true;
|
||||||
self->d->m_sendFrameThread =
|
self->d->m_sendFrameThread =
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "VCamUtils/src/image/videoframetypes.h"
|
#include "VCamUtils/src/videoframetypes.h"
|
||||||
#include "VCamUtils/src/ipcbridge.h"
|
#include "VCamUtils/src/ipcbridge.h"
|
||||||
#include "streamconfig.h"
|
#include "streamconfig.h"
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
#include "referenceclock.h"
|
#include "referenceclock.h"
|
||||||
#include "PlatformUtils/src/utils.h"
|
#include "PlatformUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/utils.h"
|
#include "VCamUtils/src/utils.h"
|
||||||
#include "VCamUtils/src/image/videoformat.h"
|
#include "VCamUtils/src/videoformat.h"
|
||||||
|
|
||||||
namespace AkVCam
|
namespace AkVCam
|
||||||
{
|
{
|
||||||
|
|
35
dshow/dshow.cmake
Normal file
35
dshow/dshow.cmake
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
# akvirtualcamera, virtual camera for Mac and Windows.
|
||||||
|
# Copyright (C) 2021 Gonzalo Exequiel Pedone
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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.
|
||||||
|
#
|
||||||
|
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# Web-Site: http://webcamoid.github.io/
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/../commons.cmake")
|
||||||
|
|
||||||
|
set(DSHOW_PLUGIN_NAME AkVirtualCamera)
|
||||||
|
set(DSHOW_PLUGIN_ASSISTANT_NAME AkVCamAssistant)
|
||||||
|
set(DSHOW_PLUGIN_ASSISTANT_DESCRIPTION "Webcamoid virtual camera service")
|
||||||
|
set(DSHOW_PLUGIN_DESCRIPTION "Webcamoid Virtual Camera")
|
||||||
|
set(DSHOW_PLUGIN_DESCRIPTION_EXT "Central service for communicating between virtual cameras and clients")
|
||||||
|
set(DSHOW_PLUGIN_DEVICE_PREFIX AkVCamVideoDevice)
|
||||||
|
set(DSHOW_PLUGIN_VENDOR "Webcamoid Project")
|
||||||
|
|
||||||
|
add_definitions(-DDSHOW_PLUGIN_NAME="\\"${DSHOW_PLUGIN_NAME}\\""
|
||||||
|
-DDSHOW_PLUGIN_ASSISTANT_NAME="\\"${DSHOW_PLUGIN_ASSISTANT_NAME}\\""
|
||||||
|
-DDSHOW_PLUGIN_ASSISTANT_DESCRIPTION="\\"${DSHOW_PLUGIN_ASSISTANT_DESCRIPTION}\\""
|
||||||
|
-DDSHOW_PLUGIN_DESCRIPTION="\\"${DSHOW_PLUGIN_DESCRIPTION}\\""
|
||||||
|
-DDSHOW_PLUGIN_DESCRIPTION_EXT="\\"${DSHOW_PLUGIN_DESCRIPTION_EXT}\\""
|
||||||
|
-DDSHOW_PLUGIN_DEVICE_PREFIX="\\"${DSHOW_PLUGIN_DEVICE_PREFIX}\\""
|
||||||
|
-DDSHOW_PLUGIN_VENDOR="\\"${DSHOW_PLUGIN_VENDOR}\\"")
|
|
@ -1,51 +0,0 @@
|
||||||
# akvirtualcamera, virtual camera for Mac and Windows.
|
|
||||||
# Copyright (C) 2020 Gonzalo Exequiel Pedone
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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.
|
|
||||||
#
|
|
||||||
# akvirtualcamera 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 akvirtualcamera. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
# Web-Site: http://webcamoid.github.io/
|
|
||||||
|
|
||||||
isEmpty(DSHOW_PLUGIN_NAME):
|
|
||||||
DSHOW_PLUGIN_NAME = AkVirtualCamera
|
|
||||||
isEmpty(DSHOW_PLUGIN_ASSISTANT_NAME):
|
|
||||||
DSHOW_PLUGIN_ASSISTANT_NAME = AkVCamAssistant
|
|
||||||
isEmpty(DSHOW_PLUGIN_ASSISTANT_DESCRIPTION):
|
|
||||||
DSHOW_PLUGIN_ASSISTANT_DESCRIPTION = "Webcamoid virtual camera service"
|
|
||||||
isEmpty(DSHOW_PLUGIN_DESCRIPTION):
|
|
||||||
DSHOW_PLUGIN_DESCRIPTION = "Webcamoid Virtual Camera"
|
|
||||||
isEmpty(DSHOW_PLUGIN_DESCRIPTION_EXT):
|
|
||||||
DSHOW_PLUGIN_DESCRIPTION_EXT = "Central service for communicating between virtual cameras and clients"
|
|
||||||
isEmpty(DSHOW_PLUGIN_DEVICE_PREFIX):
|
|
||||||
DSHOW_PLUGIN_DEVICE_PREFIX = AkVCamVideoDevice
|
|
||||||
isEmpty(DSHOW_PLUGIN_VENDOR):
|
|
||||||
DSHOW_PLUGIN_VENDOR = "Webcamoid Project"
|
|
||||||
|
|
||||||
DEFINES += \
|
|
||||||
DSHOW_PLUGIN_NAME=\"\\\"$$DSHOW_PLUGIN_NAME\\\"\" \
|
|
||||||
DSHOW_PLUGIN_ASSISTANT_NAME=\"\\\"$$DSHOW_PLUGIN_ASSISTANT_NAME\\\"\" \
|
|
||||||
DSHOW_PLUGIN_ASSISTANT_DESCRIPTION=\"\\\"$$DSHOW_PLUGIN_ASSISTANT_DESCRIPTION\\\"\" \
|
|
||||||
DSHOW_PLUGIN_DESCRIPTION=\"\\\"$$DSHOW_PLUGIN_DESCRIPTION\\\"\" \
|
|
||||||
DSHOW_PLUGIN_DESCRIPTION_EXT=\"\\\"$$DSHOW_PLUGIN_DESCRIPTION_EXT\\\"\" \
|
|
||||||
DSHOW_PLUGIN_DEVICE_PREFIX=\"\\\"$$DSHOW_PLUGIN_DEVICE_PREFIX\\\"\" \
|
|
||||||
DSHOW_PLUGIN_VENDOR=\"\\\"$$DSHOW_PLUGIN_VENDOR\\\"\"
|
|
||||||
|
|
||||||
defineReplace(normalizedArch) {
|
|
||||||
arch = $$replace($$1, i386, x86)
|
|
||||||
arch = $$replace(arch, i486, x86)
|
|
||||||
arch = $$replace(arch, i586, x86)
|
|
||||||
arch = $$replace(arch, i686, x86)
|
|
||||||
arch = $$replace(arch, x86_64, x64)
|
|
||||||
|
|
||||||
return($$arch)
|
|
||||||
}
|
|
Loading…
Reference in a new issue