From 97cd94496a4310b8b08ff55e47fd864e2c0fbf36 Mon Sep 17 00:00:00 2001 From: srcejon Date: Fri, 5 Apr 2024 16:35:43 +0100 Subject: [PATCH] Add Linux codec details and fix Y autoscale when min/max are the same. --- plugins/feature/map/cesiuminterface.h | 1 - plugins/feature/sid/readme.md | 6 +++- plugins/feature/sid/sidgui.cpp | 42 ++++++++++++++++++++------- 3 files changed, 37 insertions(+), 12 deletions(-) diff --git a/plugins/feature/map/cesiuminterface.h b/plugins/feature/map/cesiuminterface.h index 7579bac07..d4790aa25 100644 --- a/plugins/feature/map/cesiuminterface.h +++ b/plugins/feature/map/cesiuminterface.h @@ -48,7 +48,6 @@ public: bool m_reverse; bool m_loop; bool m_stop; // Stop looped animation - float m_delay; // Delay in seconds before animation starts float m_startOffset; // [0..1] What point to start playing animation float m_duration; // How long to play animation for float m_multiplier; // Speed to play animation at diff --git a/plugins/feature/sid/readme.md b/plugins/feature/sid/readme.md index 5c9f9dcd0..3796d8920 100644 --- a/plugins/feature/sid/readme.md +++ b/plugins/feature/sid/readme.md @@ -255,7 +255,11 @@ Also, as the D layer in the ionosphere essentially disappears at night, the rece

Codecs

-On Windows, you may need to install an mp4 codec to view the SDO videos. Try [K-Lite Codecs](https://www.codecguide.com/download_k-lite_codec_pack_basic.htm). +You may need to install an mp4/h264 codec to view the SDO videos. + +On Windows, try [K-Lite Codecs](https://www.codecguide.com/download_k-lite_codec_pack_basic.htm). + +On Linux, install gstreamer libav. This can be installed on Ubuntu with: `sudo apt install gstreamer1.0-libav`

Attribution

diff --git a/plugins/feature/sid/sidgui.cpp b/plugins/feature/sid/sidgui.cpp index a5883dc10..167a7c52b 100644 --- a/plugins/feature/sid/sidgui.cpp +++ b/plugins/feature/sid/sidgui.cpp @@ -1295,11 +1295,20 @@ void SIDGUI::on_autoscaleX_clicked() void SIDGUI::on_autoscaleY_clicked() { - if (!std::isnan(m_minMeasurement)) { - ui->y1Min->setValue(m_minMeasurement); + if (!std::isnan(m_minMeasurement) && !std::isnan(m_maxMeasurement) && (m_minMeasurement == m_maxMeasurement)) + { + // Graph doesn't display properly if min is the same as max + ui->y1Min->setValue(m_minMeasurement * 0.99); + ui->y1Max->setValue(m_maxMeasurement * 1.01); } - if (!std::isnan(m_maxMeasurement)) { - ui->y1Max->setValue(m_maxMeasurement); + else + { + if (!std::isnan(m_minMeasurement)) { + ui->y1Min->setValue(m_minMeasurement); + } + if (!std::isnan(m_maxMeasurement)) { + ui->y1Max->setValue(m_maxMeasurement); + } } } @@ -1606,11 +1615,20 @@ void SIDGUI::autoscaleY() { if (m_settings.m_autoscaleY) { - if (!std::isnan(m_minMeasurement) && (m_minMeasurement != m_settings.m_y1Min)) { - ui->y1Min->setValue(m_minMeasurement); + if (!std::isnan(m_minMeasurement) && !std::isnan(m_maxMeasurement) && (m_minMeasurement == m_maxMeasurement)) + { + // Graph doesn't display properly if min is the same as max + ui->y1Min->setValue(m_minMeasurement * 0.99); + ui->y1Max->setValue(m_maxMeasurement * 1.01); } - if (!std::isnan(m_maxMeasurement) && (m_maxMeasurement != m_settings.m_y1Max)) { - ui->y1Max->setValue(m_maxMeasurement); + else + { + if (!std::isnan(m_minMeasurement) && (m_minMeasurement != m_settings.m_y1Min)) { + ui->y1Min->setValue(m_minMeasurement); + } + if (!std::isnan(m_maxMeasurement) && (m_maxMeasurement != m_settings.m_y1Max)) { + ui->y1Max->setValue(m_maxMeasurement); + } } } } @@ -1871,11 +1889,15 @@ void SIDGUI::sdoVideoError(QMediaPlayer::Error error) // Qt5/Windows doesn't support mp4 by default, so suggest K-Lite codecs // Qt6 doesn't need these if (error == QMediaPlayer::FormatError) { - QMessageBox::warning(this, "Video Error", "Unable to play video. Please try installing mp4 codec, such as: K-Lite codedcs."); + QMessageBox::warning(this, "Video Error", "Unable to play video. Please try installing mp4/h264 codec, such as: K-Lite codedcs."); + } +#elif LINUX + if (error == QMediaPlayer::FormatError) { + QMessageBox::warning(this, "Video Error", "Unable to play video. Please try installing mp4/h264 codec, such as gstreamer libav."); } #else if (error == QMediaPlayer::FormatError) { - QMessageBox::warning(this, "Video Error", "Unable to play video. Please try installing an mp4 codec."); + QMessageBox::warning(this, "Video Error", "Unable to play video. Please try installing an mp4/h264 codec."); } #endif }