Start SmartPointers (#1679)

* Refactor to fix #1671

* Add GUI/NonGUI mode to info page

* Do not show lock config, if in non-UI mode

* Updae Changelog

* Correct includes

* Ensure key member initialization - RGB Channels

* Ensure key member initialization - WebServer

* Update RGBChannels

* Fix initialization order

* Fix key when inserting new logger in LoggerMap,
Prepare logBuffer-JSON snapshot view in LoggerManager,
Increase buffered loglines to 500

* Fix Memory leak in GrabberWrapper

* Fix Memory leak in BlackBorderProcessor

* Fix Memory leak in BlackBorderProcessor

* use ninja generator under macos

* Fix BGEffectHandler destruction

* Fix Mdns code

* Clear list after applying qDeleteAll

* Fix deletion of CecHandler

* Fix memory leak caused by wrong buffer allocation

* Remove extra pixel consistently

* Change mDNS to Qt SmartPointers

* Correct removal

* Fix usage of _width/_height (they are the output resolution, not the screen resolution)
That avoids unnecessary resizing of the output image with every transferFrame call

* Move main non Thread Objects to Smart Pointers

* Refactor Hyperion Daemon unsing smartpointers

* Correction

* Correct typos/ align text

* Fix startGrabberDispmanx

* Fix startGrabberDispmanx

* Address CodeQL finding

* Create Screen grabbers via Template

* Fix typo

* Change way of logging

* Revert change

* Address deprecation warning

* Correct auto screen grabber evaluation

---------

Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
This commit is contained in:
LordGrey
2024-02-25 17:35:39 +01:00
committed by GitHub
parent bb40778a3d
commit 31df065c0f
65 changed files with 818 additions and 927 deletions

View File

@@ -27,7 +27,7 @@
namespace {
const bool verbose = false;
const char DEFAULT_FB_DEVICE[] = "/dev/fb0";
const int DEFAULT_FB_DEVICE_IDX = 0;
const char DEFAULT_VIDEO_DEVICE[] = "/dev/amvideo";
const char DEFAULT_CAPTURE_DEVICE[] = "/dev/amvideocap0";
const int AMVIDEOCAP_WAIT_MAX_MS = 40;
@@ -36,11 +36,11 @@ const int AMVIDEOCAP_DEFAULT_RATE_HZ = 25;
} //End of constants
AmlogicGrabber::AmlogicGrabber()
: Grabber("AMLOGICGRABBER") // Minimum required width or height is 160
: Grabber("GRABBER-AMLOGIC") // Minimum required width or height is 160
, _captureDev(-1)
, _videoDev(-1)
, _lastError(0)
, _fbGrabber(DEFAULT_FB_DEVICE)
, _fbGrabber(DEFAULT_FB_DEVICE_IDX)
, _grabbingModeNotification(0)
{
_image_ptr = _image_bgr.memptr();
@@ -57,7 +57,7 @@ bool AmlogicGrabber::setupScreen()
{
bool rc (false);
QSize screenSize = _fbGrabber.getScreenSize(DEFAULT_FB_DEVICE);
QSize screenSize = _fbGrabber.getScreenSize();
if ( !screenSize.isEmpty() )
{
if (setWidthHeight(screenSize.width(), screenSize.height()))

View File

@@ -1,12 +1,18 @@
#include <grabber/amlogic/AmlogicWrapper.h>
AmlogicWrapper::AmlogicWrapper(int pixelDecimation, int updateRate_Hz)
: GrabberWrapper("Amlogic", &_grabber, updateRate_Hz)
: GrabberWrapper(GRABBERTYPE, &_grabber, updateRate_Hz)
, _grabber()
{
_grabber.setPixelDecimation(pixelDecimation);
}
AmlogicWrapper::AmlogicWrapper(const QJsonDocument& grabberConfig)
: GrabberWrapper(GRABBERTYPE, &_grabber)
{
this->handleSettingsUpdate(settings::SYSTEMCAPTURE, grabberConfig);
}
void AmlogicWrapper::action()
{
transferFrame(_grabber);