From 79e9e0cf672184eff928e9cc8b56d6eb7f607f68 Mon Sep 17 00:00:00 2001 From: LordGrey Date: Mon, 13 Feb 2023 18:13:17 +0100 Subject: [PATCH] Updates on Grabber fps setting --- include/hyperion/GrabberWrapper.h | 10 ++++++---- libsrc/grabber/video/VideoWrapper.cpp | 8 +++++--- libsrc/hyperion/Grabber.cpp | 2 ++ libsrc/hyperion/GrabberWrapper.cpp | 3 ++- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/include/hyperion/GrabberWrapper.h b/include/hyperion/GrabberWrapper.h index 99cfa4c6..fd58449c 100644 --- a/include/hyperion/GrabberWrapper.h +++ b/include/hyperion/GrabberWrapper.h @@ -147,10 +147,7 @@ private slots: void handleSourceRequest(hyperion::Components component, int hyperionInd, bool listen); /// - /// @brief Update Update capture rate - /// @param type interval between frames in milliseconds - /// - void updateTimer(int interval); + protected: @@ -168,6 +165,11 @@ protected: /// virtual bool close() { return true; } + /// @brief Update Update capture rate + /// @param type interval between frames in milliseconds + /// + void updateTimer(int interval); + QString _grabberName; diff --git a/libsrc/grabber/video/VideoWrapper.cpp b/libsrc/grabber/video/VideoWrapper.cpp index bd5ef76c..7a3ed201 100644 --- a/libsrc/grabber/video/VideoWrapper.cpp +++ b/libsrc/grabber/video/VideoWrapper.cpp @@ -74,9 +74,6 @@ void VideoWrapper::handleSettingsUpdate(settings::type type, const QJsonDocument // Device resolution _grabber.setWidthHeight(obj["width"].toInt(0), obj["height"].toInt(0)); - // Device framerate - _grabber.setFramerate(obj["fps"].toInt(15)); - // Device encoding format _grabber.setEncoding(obj["encoding"].toString("NO_CHANGE")); @@ -124,6 +121,11 @@ void VideoWrapper::handleSettingsUpdate(settings::type type, const QJsonDocument obj["blueSignalThreshold"].toDouble(0.0)/100.0, obj["noSignalCounterThreshold"].toInt(50)); + // Device framerate + _grabber.setFramerate(obj["fps"].toInt(15)); + + updateTimer(_ggrabber->getUpdateInterval()); + // Reload the Grabber if any settings have been changed that require it _grabber.reload(getV4lGrabberState()); } diff --git a/libsrc/hyperion/Grabber.cpp b/libsrc/hyperion/Grabber.cpp index 376da7ff..aefdb142 100644 --- a/libsrc/hyperion/Grabber.cpp +++ b/libsrc/hyperion/Grabber.cpp @@ -149,6 +149,8 @@ bool Grabber::setWidthHeight(int width, int height) bool Grabber::setFramerate(int fps) { + Debug(_log,"Set new frames per second to: %i fps, current fps: %i", fps, _fps); + if((fps > 0) && (_fps != fps)) { Info(_log,"Set new frames per second to: %i fps", fps); diff --git a/libsrc/hyperion/GrabberWrapper.cpp b/libsrc/hyperion/GrabberWrapper.cpp index a31e0339..1c846aa4 100644 --- a/libsrc/hyperion/GrabberWrapper.cpp +++ b/libsrc/hyperion/GrabberWrapper.cpp @@ -186,7 +186,8 @@ void GrabberWrapper::updateTimer(int interval) } void GrabberWrapper::handleSettingsUpdate(settings::type type, const QJsonDocument& config) -{ if(type == settings::SYSTEMCAPTURE && !_grabberName.startsWith("V4L")) +{ + if(type == settings::SYSTEMCAPTURE && !_grabberName.startsWith("V4L")) { // extract settings const QJsonObject& obj = config.object();