diff --git a/mythtv/libs/libmythui/mythdisplay.cpp b/mythtv/libs/libmythui/mythdisplay.cpp index 0294e4282de..c48a97a8f1f 100644 --- a/mythtv/libs/libmythui/mythdisplay.cpp +++ b/mythtv/libs/libmythui/mythdisplay.cpp @@ -257,13 +257,11 @@ int MythDisplay::GetScreenCount(void) double MythDisplay::GetPixelAspectRatio(void) { - if (m_physicalSize.width() > 0 && m_physicalSize.height() > 0 && - m_resolution.width() > 0 && m_resolution.height() > 0) - { - return (m_physicalSize.width() / static_cast(m_resolution.width())) / - (m_physicalSize.height() / static_cast(m_resolution.height())); - } - return 1.0; + if (m_physicalSize.isEmpty() || m_resolution.isEmpty()) + return 1.0; + + return (m_physicalSize.width() / static_cast(m_resolution.width())) / + (m_physicalSize.height() / static_cast(m_resolution.height())); } QSize MythDisplay::GetGUIResolution(void) @@ -778,13 +776,13 @@ const vector &MythDisplay::GetVideoModes(void) * calculated, then we fallback to the screen resolution (i.e. assume square pixels) * and finally a guess at 16:9. */ -double MythDisplay::GetAspectRatio(QString &Source) +double MythDisplay::GetAspectRatio(QString &Source, bool IgnoreModeOverride) { auto valid = [](double Aspect) { return (Aspect > 0.1 && Aspect < 10.0); }; // Override for this video mode // Is this behaviour still needed? - if (valid(m_aspectRatioOverride)) + if (!IgnoreModeOverride && valid(m_aspectRatioOverride)) { Source = tr("Video mode override"); return m_aspectRatioOverride; diff --git a/mythtv/libs/libmythui/mythdisplay.h b/mythtv/libs/libmythui/mythdisplay.h index 90da0d815eb..25a41506eaf 100644 --- a/mythtv/libs/libmythui/mythdisplay.h +++ b/mythtv/libs/libmythui/mythdisplay.h @@ -44,7 +44,7 @@ class MUI_PUBLIC MythDisplay : public QObject, public ReferenceCounter QSize GetPhysicalSize (void); double GetRefreshRate (void); int GetRefreshInterval (int Fallback); - double GetAspectRatio (QString &Source); + double GetAspectRatio (QString &Source, bool IgnoreModeOverride = false); double EstimateVirtualAspectRatio(void); MythEDID& GetEDID (void); std::vector GetRefreshRates(QSize Size);