Dynamic loading of the Dispmanx Grabber (#1440)

* BCM dynamic loading

* cleanup

* better handle start of dispmanx

* set GrabberWrapper pointer to null on exit

* Update DispmanxFrameGrabber.cpp
This commit is contained in:
Markus
2022-03-20 14:42:21 +01:00
committed by GitHub
parent f32db90c12
commit addff6f7ef
16 changed files with 278 additions and 287 deletions

View File

@@ -1,14 +1,3 @@
# Find the BCM-package (VC control)
if (ENABLE_DISPMANX)
if ( "${PLATFORM}" MATCHES rpi)
find_package(BCM REQUIRED)
include_directories(${BCM_INCLUDE_DIRS})
else()
set(BCM_INCLUDE_DIRS "")
set(BCM_LIBRARIES "")
endif()
endif (ENABLE_DISPMANX)
# Define the current source locations
SET(CURRENT_HEADER_DIR ${CMAKE_SOURCE_DIR}/include/api)

View File

@@ -1679,10 +1679,13 @@ void JsonAPI::handleInputSourceCommand(const QJsonObject& message, const QString
#if defined(ENABLE_DISPMANX)
DispmanxFrameGrabber* dispmanx = new DispmanxFrameGrabber();
device = dispmanx->discover(params);
if (!device.isEmpty() )
if (dispmanx->isAvailable())
{
videoInputs.append(device);
device = dispmanx->discover(params);
if (!device.isEmpty() )
{
videoInputs.append(device);
}
}
delete dispmanx;
#endif