f4exb / sdrangel

SDR Rx/Tx software for Airspy, Airspy HF+, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay and FunCube
GNU General Public License v3.0
2.91k stars 439 forks source link

Total GUI freeze when loading the Map with Qt 5.15.3 #1169

Closed lowlevl closed 2 years ago

lowlevl commented 2 years ago

Hello :)

Context

I'm trying to provide a package to pkgs.alpinelinux.org for sdrangel, because I think this would be cool for this project to be available out of the box in Alpine.

My specs (from neofetch):

OS: Alpine Linux v3.15 x86_64
Host: Latitude 5414
Kernel: 5.15.24-2-lts
CPU: Intel i5-6300U (4) @ 3.000GHz
GPU: Intel Skylake GT2 [HD Graphics 520]
Memory: 5257MiB / 7851MiB

Also, this issue happens with or without a SDR connected to the computer, for reference I own a HackRF.

Actual behavior

Note: The project is build from sources using the MUSL (default in Alpine Linux). (with Qt: 5.15.3_git20220217)

When launching the program, and adding anything related to a Map (either Channel -> ADS-B or Feature -> Map), the program instantly freezes, nothing responds, and 1 CPU core has a 100% usage for an undefined time (I waited for 10mn and it didn't unfreeze).

After some investigations, using gdb, when adding the Map element, the code blocks in a recursive call to:

QSGBatchRenderer::Renderer::buildRenderLists(QSGNode*) () from /usr/lib/libQt5Quick.so.5

Also, below are the full logs when launching the project and adding the Map Feature until it freezes.

Expected behavior

This shouldn't freeze the GUI.

Steps to reproduce

Build, launch the project, and add the Map feature in the right panel.

Log Files

2022-02-28 08:16:29.082 (I) SDRangel 6.19.1 Qt 5.15.3 64b x86_64 Alpine Linux v3.15 DSP Rx:24b Tx:16b PID 22488
2022-02-28 08:16:29.082 (I) MainSettings::MainSettings: settings file: format: 0 location: /home/unix/.config/f4exb/SDRangel.conf
2022-02-28 08:16:29.082 (D) MessagePipes::startGC
2022-02-28 08:16:29.082 (D) DataPipes::startGC
2022-02-28 08:16:29.082 (D) AudioDeviceManager::AudioDeviceManager: scan input devices
2022-02-28 08:16:29.140 (D) AudioDeviceManager::AudioDeviceManager: input device #0: pipewire
2022-02-28 08:16:29.140 (D) AudioDeviceManager::AudioDeviceManager: input device #1: default
2022-02-28 08:16:29.140 (D) AudioDeviceManager::AudioDeviceManager: input device #2: sysdefault:CARD=PCH
2022-02-28 08:16:29.140 (D) AudioDeviceManager::AudioDeviceManager: input device #3: front:CARD=PCH,DEV=0
2022-02-28 08:16:29.140 (D) AudioDeviceManager::AudioDeviceManager: scan output devices
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #0: pipewire
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #1: default
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #2: sysdefault:CARD=PCH
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #3: front:CARD=PCH,DEV=0
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #4: surround21:CARD=PCH,DEV=0
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #5: surround40:CARD=PCH,DEV=0
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #6: surround41:CARD=PCH,DEV=0
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #7: surround50:CARD=PCH,DEV=0
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #8: surround51:CARD=PCH,DEV=0
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #9: surround71:CARD=PCH,DEV=0
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #10: hdmi:CARD=PCH,DEV=0
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #11: hdmi:CARD=PCH,DEV=1
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #12: hdmi:CARD=PCH,DEV=2
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #13: hdmi:CARD=PCH,DEV=3
2022-02-28 08:16:29.307 (D) AudioDeviceManager::AudioDeviceManager: output device #14: hdmi:CARD=PCH,DEV=4
2022-02-28 08:16:29.307 (D) MainWindow::MainWindow: start
2022-02-28 08:16:29.387 (W) QMetaObject::connectSlotsByName: No matching signal for on_presetTree_currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)
2022-02-28 08:16:29.387 (W) QMetaObject::connectSlotsByName: No matching signal for on_presetTree_itemActivated(QTreeWidgetItem*,int)
2022-02-28 08:16:29.394 (D) FFTEngine::create: using FFTW engine
2022-02-28 08:16:29.394 (D) FFTWEngine::configure: no FFTW wisdom file
2022-02-28 08:16:29.503 (D) FFT: creating FFTW plan (n=128,forward) took 108 ms
2022-02-28 08:16:29.503 (D) FFTEngine::create: using FFTW engine
2022-02-28 08:16:29.503 (D) FFTWEngine::configure: no FFTW wisdom file
2022-02-28 08:16:29.735 (D) FFT: creating FFTW plan (n=256,forward) took 232 ms
2022-02-28 08:16:29.735 (D) FFTEngine::create: using FFTW engine
2022-02-28 08:16:29.735 (D) FFTWEngine::configure: no FFTW wisdom file
2022-02-28 08:16:30.149 (D) FFT: creating FFTW plan (n=512,forward) took 414 ms
2022-02-28 08:16:30.149 (D) FFTEngine::create: using FFTW engine
2022-02-28 08:16:30.149 (D) FFTWEngine::configure: no FFTW wisdom file
2022-02-28 08:16:30.798 (D) FFT: creating FFTW plan (n=1024,forward) took 648 ms
2022-02-28 08:16:30.798 (D) MainWindow::MainWindow: load settings...
2022-02-28 08:16:30.798 (D) MainWindow::loadSettings
2022-02-28 08:16:30.799 (D) AudioDeviceManager::deserialize
2022-02-28 08:16:30.799 (D) MainWindow::MainWindow: load plugins...
2022-02-28 08:16:30.800 (D) PluginManager::loadPluginsDir: fileName: libantennatools.so
2022-02-28 08:16:30.801 (I) PluginManager::loadPluginsDir: loaded plugin libantennatools.so
2022-02-28 08:16:30.801 (D) PluginManager::loadPluginsDir: fileName: libaprs.so
2022-02-28 08:16:30.808 (I) PluginManager::loadPluginsDir: loaded plugin libaprs.so
2022-02-28 08:16:30.808 (D) PluginManager::loadPluginsDir: fileName: libbeamsteeringcwmod.so
2022-02-28 08:16:30.808 (I) PluginManager::loadPluginsDir: loaded plugin libbeamsteeringcwmod.so
2022-02-28 08:16:30.808 (D) PluginManager::loadPluginsDir: fileName: libchanalyzer.so
2022-02-28 08:16:30.809 (I) PluginManager::loadPluginsDir: loaded plugin libchanalyzer.so
2022-02-28 08:16:30.809 (D) PluginManager::loadPluginsDir: fileName: libdemodadsb.so
2022-02-28 08:16:30.831 (I) PluginManager::loadPluginsDir: loaded plugin libdemodadsb.so
2022-02-28 08:16:30.831 (D) PluginManager::loadPluginsDir: fileName: libdemodais.so
2022-02-28 08:16:30.832 (I) PluginManager::loadPluginsDir: loaded plugin libdemodais.so
2022-02-28 08:16:30.832 (D) PluginManager::loadPluginsDir: fileName: libdemodam.so
2022-02-28 08:16:30.832 (I) PluginManager::loadPluginsDir: loaded plugin libdemodam.so
2022-02-28 08:16:30.832 (D) PluginManager::loadPluginsDir: fileName: libdemodatv.so
2022-02-28 08:16:30.833 (I) PluginManager::loadPluginsDir: loaded plugin libdemodatv.so
2022-02-28 08:16:30.833 (D) PluginManager::loadPluginsDir: fileName: libdemodbfm.so
2022-02-28 08:16:30.834 (I) PluginManager::loadPluginsDir: loaded plugin libdemodbfm.so
2022-02-28 08:16:30.834 (D) PluginManager::loadPluginsDir: fileName: libdemodchirpchat.so
2022-02-28 08:16:30.834 (I) PluginManager::loadPluginsDir: loaded plugin libdemodchirpchat.so
2022-02-28 08:16:30.834 (D) PluginManager::loadPluginsDir: fileName: libdemoddatv.so
2022-02-28 08:16:30.849 (I) PluginManager::loadPluginsDir: loaded plugin libdemoddatv.so
2022-02-28 08:16:30.849 (D) PluginManager::loadPluginsDir: fileName: libdemodnfm.so
2022-02-28 08:16:30.850 (I) PluginManager::loadPluginsDir: loaded plugin libdemodnfm.so
2022-02-28 08:16:30.850 (D) PluginManager::loadPluginsDir: fileName: libdemodpacket.so
2022-02-28 08:16:30.851 (I) PluginManager::loadPluginsDir: loaded plugin libdemodpacket.so
2022-02-28 08:16:30.851 (D) PluginManager::loadPluginsDir: fileName: libdemodpager.so
2022-02-28 08:16:30.851 (I) PluginManager::loadPluginsDir: loaded plugin libdemodpager.so
2022-02-28 08:16:30.851 (D) PluginManager::loadPluginsDir: fileName: libdemodssb.so
2022-02-28 08:16:30.852 (I) PluginManager::loadPluginsDir: loaded plugin libdemodssb.so
2022-02-28 08:16:30.852 (D) PluginManager::loadPluginsDir: fileName: libdemodvor.so
2022-02-28 08:16:30.853 (I) PluginManager::loadPluginsDir: loaded plugin libdemodvor.so
2022-02-28 08:16:30.853 (D) PluginManager::loadPluginsDir: fileName: libdemodvorsc.so
2022-02-28 08:16:30.853 (I) PluginManager::loadPluginsDir: loaded plugin libdemodvorsc.so
2022-02-28 08:16:30.853 (D) PluginManager::loadPluginsDir: fileName: libdemodwfm.so
2022-02-28 08:16:30.854 (I) PluginManager::loadPluginsDir: loaded plugin libdemodwfm.so
2022-02-28 08:16:30.854 (D) PluginManager::loadPluginsDir: fileName: libfeatureafc.so
2022-02-28 08:16:30.854 (I) PluginManager::loadPluginsDir: loaded plugin libfeatureafc.so
2022-02-28 08:16:30.854 (D) PluginManager::loadPluginsDir: fileName: libfeatureais.so
2022-02-28 08:16:30.855 (I) PluginManager::loadPluginsDir: loaded plugin libfeatureais.so
2022-02-28 08:16:30.855 (D) PluginManager::loadPluginsDir: fileName: libfeaturedemodanalyzer.so
2022-02-28 08:16:30.855 (I) PluginManager::loadPluginsDir: loaded plugin libfeaturedemodanalyzer.so
2022-02-28 08:16:30.855 (D) PluginManager::loadPluginsDir: fileName: libfeaturegs232controller.so
2022-02-28 08:16:30.856 (I) PluginManager::loadPluginsDir: loaded plugin libfeaturegs232controller.so
2022-02-28 08:16:30.856 (D) PluginManager::loadPluginsDir: fileName: libfeaturepertester.so
2022-02-28 08:16:30.857 (I) PluginManager::loadPluginsDir: loaded plugin libfeaturepertester.so
2022-02-28 08:16:30.857 (D) PluginManager::loadPluginsDir: fileName: libfeaturerigctlserver.so
2022-02-28 08:16:30.857 (I) PluginManager::loadPluginsDir: loaded plugin libfeaturerigctlserver.so
2022-02-28 08:16:30.857 (D) PluginManager::loadPluginsDir: fileName: libfeaturesimpleptt.so
2022-02-28 08:16:30.858 (I) PluginManager::loadPluginsDir: loaded plugin libfeaturesimpleptt.so
2022-02-28 08:16:30.858 (D) PluginManager::loadPluginsDir: fileName: libfeaturestartracker.so
2022-02-28 08:16:30.859 (I) PluginManager::loadPluginsDir: loaded plugin libfeaturestartracker.so
2022-02-28 08:16:30.859 (D) PluginManager::loadPluginsDir: fileName: libfilesink.so
2022-02-28 08:16:30.859 (I) PluginManager::loadPluginsDir: loaded plugin libfilesink.so
2022-02-28 08:16:30.859 (D) PluginManager::loadPluginsDir: fileName: libfilesource.so
2022-02-28 08:16:30.860 (I) PluginManager::loadPluginsDir: loaded plugin libfilesource.so
2022-02-28 08:16:30.860 (D) PluginManager::loadPluginsDir: fileName: libfreqtracker.so
2022-02-28 08:16:30.861 (I) PluginManager::loadPluginsDir: loaded plugin libfreqtracker.so
2022-02-28 08:16:30.861 (D) PluginManager::loadPluginsDir: fileName: libinputaudio.so
2022-02-28 08:16:30.861 (I) PluginManager::loadPluginsDir: loaded plugin libinputaudio.so
2022-02-28 08:16:30.861 (D) PluginManager::loadPluginsDir: fileName: libinputfileinput.so
2022-02-28 08:16:30.862 (I) PluginManager::loadPluginsDir: loaded plugin libinputfileinput.so
2022-02-28 08:16:30.862 (D) PluginManager::loadPluginsDir: fileName: libinputhackrf.so
2022-02-28 08:16:30.863 (I) PluginManager::loadPluginsDir: loaded plugin libinputhackrf.so
2022-02-28 08:16:30.863 (D) PluginManager::loadPluginsDir: fileName: libinputkiwisdr.so
2022-02-28 08:16:30.863 (I) PluginManager::loadPluginsDir: loaded plugin libinputkiwisdr.so
2022-02-28 08:16:30.863 (D) PluginManager::loadPluginsDir: fileName: libinputlocal.so
2022-02-28 08:16:30.864 (I) PluginManager::loadPluginsDir: loaded plugin libinputlocal.so
2022-02-28 08:16:30.864 (D) PluginManager::loadPluginsDir: fileName: libinputrtlsdr.so
2022-02-28 08:16:30.864 (I) PluginManager::loadPluginsDir: loaded plugin libinputrtlsdr.so
2022-02-28 08:16:30.864 (D) PluginManager::loadPluginsDir: fileName: libinputtestsource.so
2022-02-28 08:16:30.865 (I) PluginManager::loadPluginsDir: loaded plugin libinputtestsource.so
2022-02-28 08:16:30.865 (D) PluginManager::loadPluginsDir: fileName: libinterferometer.so
2022-02-28 08:16:30.866 (I) PluginManager::loadPluginsDir: loaded plugin libinterferometer.so
2022-02-28 08:16:30.866 (D) PluginManager::loadPluginsDir: fileName: libjogdialcontroller.so
2022-02-28 08:16:30.866 (I) PluginManager::loadPluginsDir: loaded plugin libjogdialcontroller.so
2022-02-28 08:16:30.866 (D) PluginManager::loadPluginsDir: fileName: liblocalsink.so
2022-02-28 08:16:30.867 (I) PluginManager::loadPluginsDir: loaded plugin liblocalsink.so
2022-02-28 08:16:30.867 (D) PluginManager::loadPluginsDir: fileName: liblocalsource.so
2022-02-28 08:16:30.867 (I) PluginManager::loadPluginsDir: loaded plugin liblocalsource.so
2022-02-28 08:16:30.867 (D) PluginManager::loadPluginsDir: fileName: libmap.so
2022-02-28 08:16:30.891 (I) PluginManager::loadPluginsDir: loaded plugin libmap.so
2022-02-28 08:16:30.891 (D) PluginManager::loadPluginsDir: fileName: libmimometismiso.so
2022-02-28 08:16:30.892 (I) PluginManager::loadPluginsDir: loaded plugin libmimometismiso.so
2022-02-28 08:16:30.892 (D) PluginManager::loadPluginsDir: fileName: libmimotestmi.so
2022-02-28 08:16:30.892 (I) PluginManager::loadPluginsDir: loaded plugin libmimotestmi.so
2022-02-28 08:16:30.892 (D) PluginManager::loadPluginsDir: fileName: libmodais.so
2022-02-28 08:16:30.893 (I) PluginManager::loadPluginsDir: loaded plugin libmodais.so
2022-02-28 08:16:30.893 (D) PluginManager::loadPluginsDir: fileName: libmodam.so
2022-02-28 08:16:30.894 (I) PluginManager::loadPluginsDir: loaded plugin libmodam.so
2022-02-28 08:16:30.894 (D) PluginManager::loadPluginsDir: fileName: libmodatv.so
2022-02-28 08:16:30.906 (I) PluginManager::loadPluginsDir: loaded plugin libmodatv.so
2022-02-28 08:16:30.906 (D) PluginManager::loadPluginsDir: fileName: libmodchirpchat.so
2022-02-28 08:16:30.906 (I) PluginManager::loadPluginsDir: loaded plugin libmodchirpchat.so
2022-02-28 08:16:30.906 (D) PluginManager::loadPluginsDir: fileName: libmoddatv.so
2022-02-28 08:16:30.907 (I) PluginManager::loadPluginsDir: loaded plugin libmoddatv.so
2022-02-28 08:16:30.907 (D) PluginManager::loadPluginsDir: fileName: libmodieee_802_15_4.so
2022-02-28 08:16:30.908 (I) PluginManager::loadPluginsDir: loaded plugin libmodieee_802_15_4.so
2022-02-28 08:16:30.908 (D) PluginManager::loadPluginsDir: fileName: libmodnfm.so
2022-02-28 08:16:30.909 (I) PluginManager::loadPluginsDir: loaded plugin libmodnfm.so
2022-02-28 08:16:30.909 (D) PluginManager::loadPluginsDir: fileName: libmodpacket.so
2022-02-28 08:16:30.910 (I) PluginManager::loadPluginsDir: loaded plugin libmodpacket.so
2022-02-28 08:16:30.910 (D) PluginManager::loadPluginsDir: fileName: libmodssb.so
2022-02-28 08:16:30.910 (I) PluginManager::loadPluginsDir: loaded plugin libmodssb.so
2022-02-28 08:16:30.910 (D) PluginManager::loadPluginsDir: fileName: libmodwfm.so
2022-02-28 08:16:30.911 (I) PluginManager::loadPluginsDir: loaded plugin libmodwfm.so
2022-02-28 08:16:30.911 (D) PluginManager::loadPluginsDir: fileName: libnoisefigure.so
2022-02-28 08:16:30.912 (I) PluginManager::loadPluginsDir: loaded plugin libnoisefigure.so
2022-02-28 08:16:30.912 (D) PluginManager::loadPluginsDir: fileName: liboutputaudio.so
2022-02-28 08:16:30.912 (I) PluginManager::loadPluginsDir: loaded plugin liboutputaudio.so
2022-02-28 08:16:30.912 (D) PluginManager::loadPluginsDir: fileName: liboutputfileoutput.so
2022-02-28 08:16:30.913 (I) PluginManager::loadPluginsDir: loaded plugin liboutputfileoutput.so
2022-02-28 08:16:30.913 (D) PluginManager::loadPluginsDir: fileName: liboutputhackrf.so
2022-02-28 08:16:30.913 (I) PluginManager::loadPluginsDir: loaded plugin liboutputhackrf.so
2022-02-28 08:16:30.913 (D) PluginManager::loadPluginsDir: fileName: liboutputlocal.so
2022-02-28 08:16:30.914 (I) PluginManager::loadPluginsDir: loaded plugin liboutputlocal.so
2022-02-28 08:16:30.914 (D) PluginManager::loadPluginsDir: fileName: liboutputtestmosync.so
2022-02-28 08:16:30.914 (I) PluginManager::loadPluginsDir: loaded plugin liboutputtestmosync.so
2022-02-28 08:16:30.914 (D) PluginManager::loadPluginsDir: fileName: liboutputtestsink.so
2022-02-28 08:16:30.915 (I) PluginManager::loadPluginsDir: loaded plugin liboutputtestsink.so
2022-02-28 08:16:30.915 (D) PluginManager::loadPluginsDir: fileName: libradioastronomy.so
2022-02-28 08:16:30.916 (I) PluginManager::loadPluginsDir: loaded plugin libradioastronomy.so
2022-02-28 08:16:30.916 (D) PluginManager::loadPluginsDir: fileName: libradioclock.so
2022-02-28 08:16:30.917 (I) PluginManager::loadPluginsDir: loaded plugin libradioclock.so
2022-02-28 08:16:30.917 (D) PluginManager::loadPluginsDir: fileName: libudpsink.so
2022-02-28 08:16:30.917 (I) PluginManager::loadPluginsDir: loaded plugin libudpsink.so
2022-02-28 08:16:30.917 (D) PluginManager::loadPluginsDir: fileName: libudpsource.so
2022-02-28 08:16:30.918 (I) PluginManager::loadPluginsDir: loaded plugin libudpsource.so
2022-02-28 08:16:30.918 (D) PluginManager::loadPluginsDir: fileName: libvorlocalizer.so
2022-02-28 08:16:30.919 (I) PluginManager::loadPluginsDir: loaded plugin libvorlocalizer.so
2022-02-28 08:16:30.919 (D) PluginManager::registerTxChannel  802.15.4 Modulator  with channel name  "sdrangel.channeltx.mod802.15.4"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  ADS-B Demodulator  with channel name  "sdrangel.channel.adsbdemod"
2022-02-28 08:16:30.919 (D) PluginManager::registerFeature  AFC  with channel name  "sdrangel.feature.afc"
2022-02-28 08:16:30.919 (D) PluginManager::registerFeature  AIS  with channel name  "sdrangel.feature.ais"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  AIS Demodulator  with channel name  "sdrangel.channel.aisdemod"
2022-02-28 08:16:30.919 (D) PluginManager::registerTxChannel  AIS Modulator  with channel name  "sdrangel.channel.modais"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  AM Demodulator  with channel name  "sdrangel.channel.amdemod"
2022-02-28 08:16:30.919 (D) PluginManager::registerTxChannel  AM Modulator  with channel name  "sdrangel.channeltx.modam"
2022-02-28 08:16:30.919 (D) PluginManager::registerFeature  APRS  with channel name  "sdrangel.feature.aprs"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  ATV Demodulator  with channel name  "sdrangel.channel.demodatv"
2022-02-28 08:16:30.919 (D) PluginManager::registerTxChannel  ATV Modulator  with channel name  "sdrangel.channeltx.modatv"
2022-02-28 08:16:30.919 (D) PluginManager::registerFeature  Antenna Tools  with channel name  "sdrangel.feature.antennatools"
2022-02-28 08:16:30.919 (D) PluginManager::registerSampleSource  Audio Input  with source name  sdrangel.samplesource.audioinput  and hardware id  "AudioInput"
2022-02-28 08:16:30.919 (D) PluginManager::registerSampleSink  Audio output  with sink name  sdrangel.samplesink.audiooutput  and hardware id  "AudioOutput"
2022-02-28 08:16:30.919 (D) PluginManager::registerMIMOChannel  BeamSteeringCWMod  with channel name  "sdrangel.channel.beamsteeringcwmod"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  Broadcast FM Demodulator  with channel name  "sdrangel.channel.bfm"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  Channel Analyzer  with channel name  "sdrangel.channel.chanalyzer"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  ChirpChat Demodulator  with channel name  "sdrangel.channel.chirpchatdemod"
2022-02-28 08:16:30.919 (D) PluginManager::registerTxChannel  ChirpChat Modulator  with channel name  "sdrangel.channeltx.modchirpchat"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  DATV Demodulator  with channel name  "sdrangel.channel.demoddatv"
2022-02-28 08:16:30.919 (D) PluginManager::registerTxChannel  DATV Modulator  with channel name  "sdrangel.channeltx.moddatv"
2022-02-28 08:16:30.919 (D) PluginManager::registerFeature  Demod Analyzer  with channel name  "sdrangel.feature.demodanalyzer"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  File Sink  with channel name  "sdrangel.channel.filesink"
2022-02-28 08:16:30.919 (D) PluginManager::registerTxChannel  File channel source  with channel name  "sdrangel.channeltx.filesource"
2022-02-28 08:16:30.919 (D) PluginManager::registerSampleSource  File device input  with source name  sdrangel.samplesource.fileinput  and hardware id  "FileInput"
2022-02-28 08:16:30.919 (D) PluginManager::registerSampleSink  File output  with sink name  sdrangel.samplesink.fileoutput  and hardware id  "FileOutput"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  Frequency Tracker  with channel name  "sdrangel.channel.freqtracker"
2022-02-28 08:16:30.919 (D) PluginManager::registerSampleSource  HackRF Input  with source name  sdrangel.samplesource.hackrf  and hardware id  "HackRF"
2022-02-28 08:16:30.919 (D) PluginManager::registerSampleSink  HackRF Output  with sink name  sdrangel.samplesink.hackrf  and hardware id  "HackRF"
2022-02-28 08:16:30.919 (D) PluginManager::registerMIMOChannel  Interferometer  with channel name  "sdrangel.channel.interferometer"
2022-02-28 08:16:30.919 (D) PluginManager::registerFeature  Jogdial Controller  with channel name  "sdrangel.feature.jogdialcontroller"
2022-02-28 08:16:30.919 (D) PluginManager::registerSampleSource  KiwiSDR input  with source name  sdrangel.samplesource.kiwisdrsource  and hardware id  "KiwiSDR"
2022-02-28 08:16:30.919 (D) PluginManager::registerRxChannel  Local channel sink  with channel name  "sdrangel.channel.localsink"
2022-02-28 08:16:30.919 (D) PluginManager::registerTxChannel  Local channel source  with channel name  "sdrangel.channel.localsource"
2022-02-28 08:16:30.919 (D) PluginManager::registerSampleSource  Local device input  with source name  sdrangel.samplesource.localinput  and hardware id  "LocalInput"
2022-02-28 08:16:30.919 (D) PluginManager::registerSampleSink  Local device output  with sink name  sdrangel.samplesink.localoutput  and hardware id  "LocalOutput"
2022-02-28 08:16:30.919 (D) PluginManager::registerFeature  Map  with channel name  "sdrangel.feature.map"
2022-02-28 08:16:30.919 (D) PluginManager::registerSampleMIMO  Metis MISO  with MIMO name  sdrangel.samplemimo.metismiso  and hardware id  "MetisMISO"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  NFM Demodulator  with channel name  "sdrangel.channel.nfmdemod"
2022-02-28 08:16:30.920 (D) PluginManager::registerTxChannel  NFM Modulator  with channel name  "sdrangel.channeltx.modnfm"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  Noise Figure  with channel name  "sdrangel.channel.noisefigure"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  Packet Demodulator  with channel name  "sdrangel.channel.packetdemod"
2022-02-28 08:16:30.920 (D) PluginManager::registerFeature  Packet Error Rate Tester  with channel name  "sdrangel.feature.pertester"
2022-02-28 08:16:30.920 (D) PluginManager::registerTxChannel  Packet Modulator  with channel name  "sdrangel.channeltx.modpacket"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  Pager Demodulator  with channel name  "sdrangel.channel.pagerdemod"
2022-02-28 08:16:30.920 (D) PluginManager::registerSampleSource  RTL-SDR Input  with source name  sdrangel.samplesource.rtlsdr  and hardware id  "RTLSDR"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  Radio Astronomy  with channel name  "sdrangel.channel.radioastronomy"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  Radio Clock  with channel name  "sdrangel.channel.radioclock"
2022-02-28 08:16:30.920 (D) PluginManager::registerFeature  RigCtl Server  with channel name  "sdrangel.feature.rigctlserver"
2022-02-28 08:16:30.920 (D) PluginManager::registerFeature  Rotator Controller  with channel name  "sdrangel.feature.gs232controller"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  SSB Demodulator  with channel name  "sdrangel.channel.ssbdemod"
2022-02-28 08:16:30.920 (D) PluginManager::registerTxChannel  SSB Modulator  with channel name  "sdrangel.channeltx.modssb"
2022-02-28 08:16:30.920 (D) PluginManager::registerFeature  Simple PTT  with channel name  "sdrangel.feature.simpleptt"
2022-02-28 08:16:30.920 (D) PluginManager::registerFeature  Star Tracker  with channel name  "sdrangel.feature.startracker"
2022-02-28 08:16:30.920 (D) PluginManager::registerSampleMIMO  Test Multiple Input  with MIMO name  sdrangel.samplemimo.testmi  and hardware id  "TestMI"
2022-02-28 08:16:30.920 (D) PluginManager::registerSampleSink  Test Sink Output  with sink name  sdrangel.samplesink.testsink  and hardware id  "TestSink"
2022-02-28 08:16:30.920 (D) PluginManager::registerSampleSource  Test Source input  with source name  sdrangel.samplesource.testsource  and hardware id  "TestSource"
2022-02-28 08:16:30.920 (D) PluginManager::registerSampleMIMO  Test Synchronous Multiple Output  with MIMO name  sdrangel.samplemimo.testmosync  and hardware id  "TestMOSync"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  UDP Channel Sink  with channel name  "sdrangel.channel.udpsink"
2022-02-28 08:16:30.920 (D) PluginManager::registerTxChannel  UDP Channel Source  with channel name  "sdrangel.channeltx.udpsource"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  VOR Demodulator  with channel name  "sdrangel.channel.vordemod"
2022-02-28 08:16:30.920 (D) PluginManager::registerFeature  VOR Localizer  with channel name  "sdrangel.feature.vorlocalizer"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  VOR Single Channel Demodulator  with channel name  "sdrangel.channel.vordemodsc"
2022-02-28 08:16:30.920 (D) PluginManager::registerRxChannel  WFM Demodulator  with channel name  "sdrangel.channel.wfmdemod"
2022-02-28 08:16:30.920 (D) PluginManager::registerTxChannel  WFM Modulator  with channel name  "sdrangel.channeltx.modwfm"
2022-02-28 08:16:30.920 (D) DeviceEnumerator::enumerateRxDevices: sdrangel.samplesource.audioinput
2022-02-28 08:16:30.920 (D) DeviceEnumerator::enumerateRxDevices: sdrangel.samplesource.fileinput
2022-02-28 08:16:30.920 (D) DeviceEnumerator::enumerateRxDevices: sdrangel.samplesource.hackrf
2022-02-28 08:16:30.921 (D) DeviceEnumerator::enumerateRxDevices: sdrangel.samplesource.kiwisdrsource
2022-02-28 08:16:30.921 (D) DeviceEnumerator::enumerateRxDevices: sdrangel.samplesource.localinput
2022-02-28 08:16:30.921 (D) DeviceEnumerator::enumerateRxDevices: sdrangel.samplesource.rtlsdr
2022-02-28 08:16:30.921 (D) DeviceEnumerator::enumerateRxDevices: sdrangel.samplesource.testsource
2022-02-28 08:16:30.921 (D) DeviceEnumerator::enumerateTxDevices: sdrangel.samplesink.audiooutput
2022-02-28 08:16:30.921 (D) DeviceEnumerator::enumerateTxDevices: sdrangel.samplesink.fileoutput
2022-02-28 08:16:30.921 (D) DeviceEnumerator::enumerateTxDevices: sdrangel.samplesink.hackrf
2022-02-28 08:16:30.921 (D) DeviceEnumerator::enumerateTxDevices: sdrangel.samplesink.localoutput
2022-02-28 08:16:30.921 (D) DeviceEnumerator::enumerateTxDevices: sdrangel.samplesink.testsink
2022-02-28 08:16:30.921 (D) DeviceEnumerator::enumerateMIMODevices: sdrangel.samplemimo.metismiso
2022-02-28 08:16:30.921 (D) DeviceMetisScan::scan: discovery writeDatagram sent to 10.0.10.255
2022-02-28 08:16:30.921 (D) DeviceMetisScan::scan: discovery writeDatagram sent to 127.255.255.255
2022-02-28 08:16:30.921 (D) DeviceMetisScan::scan: start 0.5 second timeout loop
2022-02-28 08:16:31.396 (D) DeviceEnumerator::enumerateMIMODevices: sdrangel.samplemimo.testmi
2022-02-28 08:16:31.397 (D) DeviceEnumerator::enumerateMIMODevices: sdrangel.samplemimo.testmosync
2022-02-28 08:16:31.397 (D) DeviceEnumerator::addNonDiscoverableDevices: start
2022-02-28 08:16:31.400 (D) MainWindow::MainWindow: select SampleSource from settings or default (file input)...
2022-02-28 08:16:31.400 (D) MainWindow::MainWindow: look for "" at index 0 and item index 0
2022-02-28 08:16:31.401 (D) DSPDeviceSourceEngine::start
2022-02-28 08:16:31.401 (D) DSPDeviceSourceEngine::run
2022-02-28 08:16:31.422 (D) SpectrumVis::applySettings:  m_fftSize:  1024  m_fftWindow:  4  m_fftOverlap:  0  m_averagingIndex:  0  m_averagingMode:  0  m_refLevel:  0  m_powerRange:  100  m_fpsPeriodMs:  50  m_linear:  false  m_ssb:  false  m_usb:  true  m_wsSpectrumAddress:  "127.0.0.1"  m_wsSpectrumPort:  8887  force:  true
2022-02-28 08:16:31.422 (D) FFTFactory::getEngine: reuse engine: 0 FFT fwd size: 1024
2022-02-28 08:16:31.431 (D) GLSpectrumGUI::on_averaging_currentIndexChanged: log
2022-02-28 08:16:31.432 (D) GLSpectrumGUI::on_fftSize_currentIndexChanged: 4
2022-02-28 08:16:31.432 (D) GLSpectrumGUI::on_fps_currentIndexChanged: 50 ms
2022-02-28 08:16:31.432 (D) DSPDeviceSourceEngine::addSink:  SpectrumVis
2022-02-28 08:16:31.432 (D) DSPDeviceSourceEngine::handleSynchronousMessages:  DSPAddBasebandSampleSink
2022-02-28 08:16:31.443 (D) FileInput::FileInput: device source engine: 0x7f48ca2981c0
2022-02-28 08:16:31.443 (D) FileInput::FileInput: device source engine message queue: 0x7f48ca2981d8
2022-02-28 08:16:31.443 (D) FileInput::FileInput: device source: 0x0
2022-02-28 08:16:31.457 (D) DSPDeviceSourceEngine::setSource
2022-02-28 08:16:31.457 (D) DSPDeviceSourceEngine::handleSynchronousMessages:  DSPSetSource
2022-02-28 08:16:31.457 (D) DSPDeviceSourceEngine::gotoIdle
2022-02-28 08:16:31.457 (D) DSPDeviceSourceEngine::handleSetSource: set
2022-02-28 08:16:31.461 (D) MainWindow::setDeviceGUI: insert device type 0 tab at 0
2022-02-28 08:16:31.461 (D) DSPDeviceSourceEngine::handleInputMessages: message: DSPSignalNotification
2022-02-28 08:16:31.461 (D) DSPDeviceSourceEngine::handleInputMessages: DSPSignalNotification:  m_sampleRate:  48000  m_centerFrequency:  435000000
2022-02-28 08:16:31.461 (D) DSPDeviceSourceEngine::handleInputMessages: forward message to  SpectrumVis
2022-02-28 08:16:31.461 (D) DSPDeviceSourceEngine::handleInputMessages: DSPSignalNotification: guiMessageQueue: 0x7f48c9e89c48
2022-02-28 08:16:31.461 (D) MainWindow::restoreDeviceTabs: adding tab for FileInput
2022-02-28 08:16:31.467 (D) SpectrumVis::handleMessage: DSPSignalNotification:  centerFrequency:  0  sampleRate:  0
2022-02-28 08:16:31.468 (D) SpectrumVis::handleMessage: DSPSignalNotification:  centerFrequency:  435000000  sampleRate:  48000
2022-02-28 08:16:31.468 (D) FileInputGUI::handleInputMessages: DSPSignalNotification: SampleRate:48000, CenterFrequency:435000000
2022-02-28 08:16:31.468 (D) GLSpectrumGUI::handleInputMessages: message: GLSpectrum::MsgReportSampleRate
2022-02-28 08:16:31.468 (D) MainWindow::MainWindow: load current preset settings...
2022-02-28 08:16:31.468 (D) MainWindow::loadPresetSettings: preset [default | no name]
2022-02-28 08:16:31.468 (D) GLSpectrumGUI::applySettings: refLevel: 0.000000e+00 powerRange: 1.000000e+02
2022-02-28 08:16:31.468 (D) GLSpectrumGUI::handleInputMessages: message: GLSpectrum::MsgReportCalibrationShift
2022-02-28 08:16:31.468 (D) SpectrumVis::handleMessage: MsgConfigureSpectrumVis
2022-02-28 08:16:31.468 (D) SpectrumVis::applySettings:  m_fftSize:  1024  m_fftWindow:  4  m_fftOverlap:  0  m_averagingIndex:  0  m_averagingMode:  0  m_refLevel:  0  m_powerRange:  100  m_fpsPeriodMs:  50  m_linear:  false  m_ssb:  false  m_usb:  true  m_wsSpectrumAddress:  "127.0.0.1"  m_wsSpectrumPort:  8887  force:  false
2022-02-28 08:16:31.468 (D) DeviceAPI::loadSamplingDeviceSettings: Loading Rx preset [default | no name]
2022-02-28 08:16:31.468 (D) Preset::findBestDeviceConfig: serial matched (exact): id: sdrangel.samplesource.fileinput ser:
2022-02-28 08:16:31.468 (D) DeviceAPI::loadSamplingDeviceSettings: source center frequency: 0 Hz
2022-02-28 08:16:31.468 (D) DeviceAPI::loadSamplingDeviceSettings: deserializing source sdrangel.samplesource.fileinput[0]:
2022-02-28 08:16:31.469 (D) DeviceUISet::loadRxChannelSettings: Loading preset [default | no name]
2022-02-28 08:16:31.469 (D) DeviceUISet::loadRxChannelSettings: 0 channel(s) in preset
2022-02-28 08:16:31.471 (D) MainWindow::loadFeatureSetPresetSettings: preset [default | no name]
2022-02-28 08:16:31.471 (D) MainWindow::loadFeatureSetPresetSettings: m_apiAdapter: 0x7f48db428080
2022-02-28 08:16:31.471 (D) FeatureUISet::loadFeatureSetSettings: Loading preset [default | no name]
2022-02-28 08:16:31.471 (D) FeatureUISet::loadFeatureSetSettings: 0 feature(s) in preset
2022-02-28 08:16:31.472 (D) MainWindow::MainWindow: update preset controls...
2022-02-28 08:16:31.472 (D) StaticFileController: docroot=:/webapi, encoding=UTF-8, maxAge=60000
2022-02-28 08:16:31.472 (D) StaticFileController: cache timeout=60000, size=1000000
2022-02-28 08:16:31.472 (D) HttpListener: Listening on port 8091
2022-02-28 08:16:31.472 (I) WebAPIServer::start: starting web API server at http://:8091
2022-02-28 08:16:31.474 (D) MainWindow::MainWindow: end
2022-02-28 08:16:31.481 (D) GLSpectrum::initializeGL: context:  major:  4  minor:  6  ES:  no
2022-02-28 08:16:31.490 (D) GLShaderTextured::initializeGL: m_useImmutableStorage:  true
2022-02-28 08:16:31.491 (D) GLShaderTextured::initializeGL: m_useImmutableStorage:  true
2022-02-28 08:16:31.491 (D) GLShaderTextured::initializeGL: m_useImmutableStorage:  true
2022-02-28 08:16:31.492 (D) GLShaderTextured::initializeGL: m_useImmutableStorage:  true
2022-02-28 08:16:31.492 (D) GLShaderTextured::initializeGL: m_useImmutableStorage:  true
2022-02-28 08:16:31.493 (D) GLShaderTextured::initializeGL: m_useImmutableStorage:  true

---------------------------------------------------------------------------------------------------------------------------------

2022-02-28 08:16:39.756 (D) MainWindow::featureAddClicked: tab: 0 index: 6
2022-02-28 08:16:39.756 (D) MainWindow::featureAddClicked: m_apiAdapter: 0x7f48db428080
2022-02-28 08:16:39.756 (D) Map::Map: webAPIAdapterInterface: 0x7f48db428080
2022-02-28 08:16:39.766 (D) WebServer on port  45389
2022-02-28 08:16:39.803 (D) Mapping  "3d"  to  "/home/unix/.local/share/f4exb/SDRangel/3d"
2022-02-28 08:16:40.115 (D) Beacon::readIARUCSV: Failed to open  "/home/unix/.local/share/f4exb/SDRangel/iaru_beacons.csv"
2022-02-28 08:16:40.115 (D) Beacon::readIARUCSV: Read  0  beacons
2022-02-28 08:16:40.250 (D) Map::handleMessage: MsgConfigureMap
2022-02-28 08:16:40.250 (D) Map::applySettings:  m_displayNames:  true  m_title:  "Map"  m_rgbColor:  4292942179  m_useReverseAPI:  false  m_reverseAPIAddress:  "127.0.0.1"  m_reverseAPIPort:  8888  m_reverseAPIFeatureSetIndex:  0  m_reverseAPIFeatureIndex:  0  force:  true
2022-02-28 08:16:40.304 (D) HTTP Request:  "GET /street HTTP/1.1\r\n"
2022-02-28 08:16:40.304 (D) HTTP Request:  "GET /cycle HTTP/1.1\r\n"
2022-02-28 08:16:40.305 (D) HTTP Request:  "GET /night-transit HTTP/1.1\r\n"
2022-02-28 08:16:40.305 (D) HTTP Request:  "GET /satellite HTTP/1.1\r\n"
2022-02-28 08:16:40.305 (D) HTTP Request:  "GET /terrain HTTP/1.1\r\n"
2022-02-28 08:16:40.332 (D) HTTP Request:  "GET /transit HTTP/1.1\r\n"
2022-02-28 08:16:40.333 (D) HTTP Request:  "GET /hiking HTTP/1.1\r\n"
2022-02-28 08:16:40.397 (W) QGeoTileFetcherOsm: all providers resolved

Note: I added a dash separator for when I clicked the Apply button in the Add feature dialog.

Thanks !

lowlevl commented 2 years ago

My main question is: Do you have any idea on what could be happening and how could I fix it ?

srcejon commented 2 years ago

No idea, I'm afriad - QSGBatchRenderer::Renderer::buildRenderLists is within the Qt library.

The only unusual thing I can see, is you are using Qt 5.15.3, which I think is the commercial version of Qt - so probably hasn't been used previously. Might be worth trying Qt 5.15.2 if possible.

lowlevl commented 2 years ago

I'll try, I don't know if I can easily downgrade a package in Alpine without breaking everything ^^'

Anyways, this is really weird, because it seems like it blocks the main event loop, because even the API on port 8091 does not respond after adding the Map component (while it does before).

I don't have a lot of experience with Qt, but couldn't it be due to a missing dependency of some sort ? Maybe a QML dependency ?

srcejon commented 2 years ago

Generally when there's a missing QML dependency, you'll see that in the log and the map will just be grey.

lowlevl commented 2 years ago

Actually, the only time I got ADS-B working with my setup was when I forgot to install qt5-qtquickcontrols2, it showed an error in the logs, didn't render the map, so it didn't block the event loop ¯\(ツ)/¯ But it isn't satisfying to provide a broken package ^^'

lowlevl commented 2 years ago

After some investigation, I found this not-too-old SO post: https://stackoverflow.com/questions/52663856/qwidget-ui-freezes-when-using-a-qquickwidget, it says:

Note: Using QQuickWidget disables the threaded render loop on all platforms. This means that some of the benefits of threaded rendering, for example Animator classes and vsync driven animations, will not be available.

I changed my QQuickWidget to a QQuickView and everything is working.

I see that the Map in sdrangel uses QQuickWidget, shouldn't we try using QQuickView instead ? What do you think ?

srcejon commented 2 years ago

What specific changes did you make? Do you have a diff?

lowlevl commented 2 years ago

I made no change whatsoever to the source code, I took the latest available version tag from the releases, I was just saying that removing the QML dependency qt5-qtquickcontrols2 from my system made the map crash (with a QML error in the console), and thus making the ADS-B module available, but with a blank map. Unfortunately this is not suitable for distribution use.

Edit: Ah, I get what you meant, I only quoted the StackOverflow post, I didn't do anything myself.

janczeresnia commented 2 years ago

I have the same problem on Gentoo. I tested qt-5.15.2 and qt-5.15.3 it doesn't change anything. The only map that works is mapboxgl, but you can't run it in sdrangel without changing the source code. I wrote a patch for version 6.17.3 that changes the default map from osm to mapboxgl. But unfortunately my patches don't work with the new sdrangel version. The problem is the qt library.

janczeresnia commented 2 years ago

My patch to change the default map from osm to mapboxgl for sdrangel-6.17.3:

--- sdrangel-6.17.3/plugins/feature/map/map/map_5_12.qml    2021-10-07 22:11:10.000000000 +0200
+++ sdrangel-6.17.3/plugins/feature/map/map/map_5_12.qml    2021-10-10 21:52:47.047685653 +0200
@@ -7,7 +7,7 @@
 Item {
     id: qmlMap
     property int mapZoomLevel: 11
-    property string mapProvider: "osm"
+    property string mapProvider: "mapboxgl"
     property variant mapParameters
     property variant mapPtr

--- sdrangel-6.17.3/plugins/feature/map/map/map.qml 2021-10-07 22:11:10.000000000 +0200
+++ sdrangel-6.17.3/plugins/feature/map/map/map.qml 2021-10-10 21:52:33.846278982 +0200
@@ -7,7 +7,7 @@
 Item {
     id: qmlMap
     property int mapZoomLevel: 11
-    property string mapProvider: "osm"
+    property string mapProvider: "mapboxgl"
     property variant mapParameters
     property variant mapPtr

--- sdrangel-6.17.3/plugins/feature/map/mapsettings.cpp 2021-11-06 21:33:26.000000000 +0100
+++ sdrangel-6.17.3/plugins/feature/map/mapsettings.cpp 2021-12-27 11:48:23.328835300 +0100
@@ -55,7 +55,7 @@
 void MapSettings::resetToDefaults()
 {
     m_displayNames = true;
-    m_mapProvider = "osm";
+    m_mapProvider = "mapboxgl";
     m_mapBoxApiKey = "";
     m_mapBoxStyles = "";
     m_sources = -1;
@@ -113,7 +113,7 @@
         QString strtmp;

         d.readBool(1, &m_displayNames, true);
-        d.readString(2, &m_mapProvider, "osm");
+        d.readString(2, &m_mapProvider, "mapboxgl");
         d.readString(3, &m_mapBoxApiKey, "");
         d.readString(4, &m_mapBoxStyles, "");
         d.readU32(5, &m_sources, -1);
--- sdrangel-6.17.3/plugins/feature/vorlocalizer/map/map.qml    2021-10-07 22:11:10.000000000 +0200
+++ sdrangel-6.17.3/plugins/feature/vorlocalizer/map/map.qml    2021-10-10 22:11:28.096467945 +0200
@@ -9,7 +9,7 @@

     Plugin {
         id: mapPlugin
-        name: "osm"
+        name: "mapboxgl"
     }

     Map {
--- sdrangel-6.17.3/plugins/channelrx/demodadsb/map/map.qml 2021-10-07 22:11:10.000000000 +0200
+++ sdrangel-6.17.3/plugins/channelrx/demodadsb/map/map.qml 2021-10-10 19:45:55.253273159 +0200
@@ -10,7 +10,7 @@

     Plugin {
         id: mapPlugin
-        name: "osm"
+        name: "mapboxgl"
     }

     Map {
srcejon commented 2 years ago

Thanks, but we can't apply that patch, as mapboxgl isn't supported on Windows (but of course map be useful to others with this issue)

janczeresnia commented 2 years ago

This patch works with the latest version of sdrangel-6.20.2:

--- sdrangel-6.17.4/plugins/feature/map/map/map_5_12.qml    2021-11-26 22:51:28.000000000 +0100
+++ sdrangel-6.17.4/plugins/feature/map/map/map_5_12.qml    2021-11-27 19:55:19.052137780 +0100
@@ -7,7 +7,7 @@
 Item {
     id: qmlMap
     property int mapZoomLevel: 11
-    property string mapProvider: "osm"
+    property string mapProvider: "mapboxgl"
     property variant mapPtr
     property variant guiPtr

--- sdrangel-6.17.4/plugins/feature/map/map/map.qml 2021-11-26 22:51:28.000000000 +0100
+++ sdrangel-6.17.4/plugins/feature/map/map/map.qml 2021-11-27 19:54:44.258925452 +0100
@@ -7,7 +7,7 @@
 Item {
     id: qmlMap
     property int mapZoomLevel: 11
-    property string mapProvider: "osm"
+    property string mapProvider: "mapboxgl"
     property variant mapPtr
     property variant guiPtr

--- sdrangel-6.20.2/plugins/feature/map/mapsettings.cpp 2022-03-30 22:16:08.000000000 +0200
+++ sdrangel-6.20.2/plugins/feature/map/mapsettings.cpp 2022-03-30 23:29:52.396420897 +0200
@@ -83,7 +83,7 @@
 void MapSettings::resetToDefaults()
 {
     m_displayNames = true;
-    m_mapProvider = "osm";
+    m_mapProvider = "mapboxgl";
     m_thunderforestAPIKey = "";
     m_maptilerAPIKey = "";
     m_mapBoxAPIKey = "";
@@ -166,7 +166,7 @@
         QByteArray blob;

         d.readBool(1, &m_displayNames, true);
-        d.readString(2, &m_mapProvider, "osm");
+        d.readString(2, &m_mapProvider, "mapboxgl");
         d.readString(3, &m_mapBoxAPIKey, "");
         d.readString(4, &m_mapBoxStyles, "");
         d.readString(8, &m_title, "Map");
--- sdrangel-6.17.3/plugins/feature/vorlocalizer/map/map.qml    2021-10-07 22:11:10.000000000 +0200
+++ sdrangel-6.17.3/plugins/feature/vorlocalizer/map/map.qml    2021-10-10 22:11:28.096467945 +0200
@@ -9,7 +9,7 @@

     Plugin {
         id: mapPlugin
-        name: "osm"
+        name: "mapboxgl"
     }

     Map {
--- sdrangel-6.17.5/plugins/channelrx/demodadsb/map/map.qml 2021-12-16 10:32:52.000000000 +0100
+++ sdrangel-6.17.5/plugins/channelrx/demodadsb/map/map.qml 2021-12-23 15:16:39.722044195 +0100
@@ -8,7 +8,7 @@
     id: qmlMap
     property int aircraftZoomLevel: 11
     property int airportZoomLevel: 11
-    property string mapProvider: "osm"
+    property string mapProvider: "mapboxgl"
     property variant mapPtr
     property string requestedMapType
     property bool lightIcons
@@ -51,6 +51,7 @@
             anchors.fill: parent
             center: QtPositioning.coordinate(51.5, 0.125) // London
             zoomLevel: 10
+            copyrightsVisible: false

             // Needs to come first, otherwise MouseAreas in the MapItemViews don't get clicked event first
             // Setting z doesn't seem to work
lowlevl commented 2 years ago

Hello @janczeresnia, thank you for this patch, I'll try it locally with Alpine !

Thanks, but we can't apply that patch, as mapboxgl isn't supported on Windows (but of course map be useful to others with this issue) — @srcejon

Couldn't we branch in the .qml file to use mapboxgl in Linux and osm in Windows ? Alternatively a compilation flag would be fine with me !

janczeresnia commented 2 years ago

Couldn't we branch in the .qml file to use mapboxgl in Linux and osm in Windows ? Alternatively a compilation flag would be fine with me !

You can probably do it. Need to add a preprocessor macro to the source code like this:

#if !((defined _WIN32_) || (defined _MSC_VER))
 "Change for linux: map mapboxgl"
#else
 "Orginal code for windows : map osm"
#endif

Or easier:

#if (defined _WIN32_) || (defined _MSC_VER)
 "Orginal code for windows : map osm"
#else
 "Change for linux: map mapboxgl"
#endif
lowlevl commented 2 years ago

Thanks, I'll look into it :) For now, the patch kinda works, but there is still some freezes, I'll try to investigate a bit more.

janczeresnia commented 2 years ago

There is only a small problem that QML files do not support preprocessor macros. But it can be done.

lowlevl commented 2 years ago

Yes, but we don't have to modify the QML files at all, since this is done in the C++ code, thus overriding the QML mapProvider definition before rendering :)

I think I'll just disable the osm dropdown item in QT 3.15+ for Linux.

srcejon commented 2 years ago

You can do that for your own build - but osm does work on other Linux distributions.

lowlevl commented 2 years ago

@srcejon does it for Qt 3.15.3+ ? (Commercial distribution) @janczeresnia was suggesting this was an upstream bug in Qt.

janczeresnia commented 2 years ago

I wrote a test application in qt-creator to check if the problem is really in the qt library. It looks like there is a bug in qt.

srcejon commented 2 years ago

It works fine in 5.15.2 in Ubuntu for me.

I haven't tried 5.15.3, although I see it is now available as open-source, so maybe I can when builds are available.

janczeresnia commented 2 years ago

I am not a QT specialist but in Gentoo the osm maps do not work with qt-5.15.2 and qt-5.15.3. Only these two versions of QT are available in Gentoo. Maybe it's some other bug not related to QT I don't know.

lowlevl commented 2 years ago

@srcejon: Would it be manageable for you if I provided an option (via a PR) in the CMakeFile.txt called DISABLE_OSM_MAPPROVIDER (or any name you'd prefer) that'll disable OpenStreetMap in sdrangel and replace it by MapBoxGL ? That would save me from maintaining a patch file throughout versions.

for now I did this, and it seems to work:

diff --git a/plugins/channelrx/demodadsb/adsbdemodgui.cpp b/plugins/channelrx/demodadsb/adsbdemodgui.cpp
index 37e8084de..8a979cbe8 100644
--- a/plugins/channelrx/demodadsb/adsbdemodgui.cpp
+++ b/plugins/channelrx/demodadsb/adsbdemodgui.cpp
@@ -3590,7 +3590,7 @@ void ADSBDemodGUI::applyMapSettings()
     }

     // Create the map using the specified provider
-    QQmlProperty::write(item, "mapProvider", "osm");
+    QQmlProperty::write(item, "mapProvider", "mapboxgl");
     QVariantMap parameters;
     // Use our repo, so we can append API key and redefine transmit maps
     parameters["osm.mapping.providersrepository.address"] = QString("http://127.0.0.1:%1/").arg(m_osmPort);
diff --git a/plugins/feature/map/mapsettings.cpp b/plugins/feature/map/mapsettings.cpp
index 732e58502..24e250bcf 100644
--- a/plugins/feature/map/mapsettings.cpp
+++ b/plugins/feature/map/mapsettings.cpp
@@ -47,7 +47,6 @@ const QStringList MapSettings::m_pipeURIs = {

 // GUI combo box should match ordering in this list
 const QStringList MapSettings::m_mapProviders = {
-    QStringLiteral("osm"),
     QStringLiteral("esri"),
     QStringLiteral("mapbox"),
     QStringLiteral("mapboxgl"),
@@ -83,7 +82,7 @@ MapSettings::~MapSettings()
 void MapSettings::resetToDefaults()
 {
     m_displayNames = true;
-    m_mapProvider = "osm";
+    m_mapProvider = "mapboxgl";
     m_thunderforestAPIKey = "";
     m_maptilerAPIKey = "";
     m_mapBoxAPIKey = "";
@@ -166,7 +165,7 @@ bool MapSettings::deserialize(const QByteArray& data)
         QByteArray blob;

         d.readBool(1, &m_displayNames, true);
-        d.readString(2, &m_mapProvider, "osm");
+        d.readString(2, &m_mapProvider, "mapboxgl");
         d.readString(3, &m_mapBoxAPIKey, "");
         d.readString(4, &m_mapBoxStyles, "");
         d.readString(8, &m_title, "Map");
diff --git a/plugins/feature/map/mapsettingsdialog.ui b/plugins/feature/map/mapsettingsdialog.ui
index 30cc95f37..963a5e289 100644
--- a/plugins/feature/map/mapsettingsdialog.ui
+++ b/plugins/feature/map/mapsettingsdialog.ui
@@ -135,11 +135,6 @@
                <property name="toolTip">
                 <string>Select map provider</string>
                </property>
-               <item>
-                <property name="text">
-                 <string>OpenStreetMap</string>
-                </property>
-               </item>

The only problem I might face is conditionally removing the item in the mapsettingsdialog.ui file...

janczeresnia commented 2 years ago

@srcejon: Would it be manageable for you if I provided an option (via a PR) in the CMakeFile.txt called DISABLE_OSM_MAPPROVIDER (or any name you'd prefer) that'll disable OpenStreetMap in sdrangel and replace it by MapBoxGL ? That would save me from maintaining a patch file throughout versions.

It would be very nice to add this functionality to the next version of sdrangel :)

janczeresnia commented 2 years ago

For now, the patch kinda works, but there is still some freezes, I'll try to investigate a bit more.

You're right ADS-B demodulator and VOR localizer is not working properly sdrangel freezes when loading the map. Hmmm and after crash plugin ADS-B disappeared, it is not in the plug-in list. Very strange. But feature map work OK.

Even after the changes to the plugin's QML files, it seems that the map doesn't change to mapboxgl and the osm map still works.

2022-03-31 20:22:18.715 (W) QGeoTileFetcherOsm: all providers resolved

Patch for sdrangel-6.20.2 working ADS-B plugin:

--- sdrangel-6.20.2/plugins/feature/map/map/map_5_12.qml 2022-03-30 22:16:08.000000000 +0200
+++ sdrangel-6.20.2/plugins/feature/map/map/map_5_12.qml 2022-03-31 16:22:38.501652980 +0200
@@ -7,7 +7,7 @@
 Item {
     id: qmlMap
     property int mapZoomLevel: 11
-    property string mapProvider: "osm"
+    property string mapProvider: "mapboxgl"
     property variant mapPtr
     property variant guiPtr

--- sdrangel-6.20.2/plugins/feature/map/map/map.qml 2022-03-30 22:16:08.000000000 +0200
+++ sdrangel-6.20.2/plugins/feature/map/map/map.qml 2022-03-31 16:22:04.866110754 +0200
@@ -7,7 +7,7 @@
 Item {
     id: qmlMap
     property int mapZoomLevel: 11
-    property string mapProvider: "osm"
+    property string mapProvider: "mapboxgl"
     property variant mapPtr
     property variant guiPtr

--- sdrangel-6.20.2/plugins/feature/map/mapsettingsdialog.ui 2022-03-30 22:16:08.000000000 +0200
+++ sdrangel-6.20.2/plugins/feature/map/mapsettingsdialog.ui 2022-04-02 00:43:23.300717875 +0200
@@ -137,7 +137,7 @@
                </property>
                <item>
                 <property name="text">
-                 <string>OpenStreetMap</string>
+                 <string>MapboxGL</string>
                 </property>
                </item>
                <item>
@@ -151,11 +151,6 @@
                 </property>
                </item>
                <item>
-                <property name="text">
-                 <string>MapboxGL</string>
-                </property>
-               </item>
-               <item>
                 <property name="text">
                  <string>MapLibre</string>
                 </property>
--- sdrangel-6.20.2/plugins/feature/map/mapsettings.cpp 2022-03-30 22:16:08.000000000 +0200
+++ sdrangel-6.20.2/plugins/feature/map/mapsettings.cpp 2022-04-02 01:20:11.452656864 +0200
@@ -47,10 +47,9 @@

 // GUI combo box should match ordering in this list
 const QStringList MapSettings::m_mapProviders = {
-    QStringLiteral("osm"),
+    QStringLiteral("mapboxgl"),
     QStringLiteral("esri"),
     QStringLiteral("mapbox"),
-    QStringLiteral("mapboxgl"),
     QStringLiteral("maplibre")
 };

@@ -83,7 +82,7 @@
 void MapSettings::resetToDefaults()
 {
     m_displayNames = true;
-    m_mapProvider = "osm";
+    m_mapProvider = "mapboxgl";
     m_thunderforestAPIKey = "";
     m_maptilerAPIKey = "";
     m_mapBoxAPIKey = "";
@@ -166,7 +165,7 @@
         QByteArray blob;

         d.readBool(1, &m_displayNames, true);
-        d.readString(2, &m_mapProvider, "osm");
+        d.readString(2, &m_mapProvider, "mapboxgl");
         d.readString(3, &m_mapBoxAPIKey, "");
         d.readString(4, &m_mapBoxStyles, "");
         d.readString(8, &m_title, "Map");
--- sdrangel-6.20.2/plugins/feature/vorlocalizer/map/map.qml 2022-03-30 22:16:08.000000000 +0200
+++ sdrangel-6.20.2/plugins/feature/vorlocalizer/map/map.qml 2022-03-31 16:34:12.322824086 +0200
@@ -9,7 +9,7 @@

     Plugin {
         id: mapPlugin
-        name: "osm"
+        name: "mapboxgl"
     }

     Map {
@@ -19,6 +23,7 @@
         plugin: mapPlugin
         center: QtPositioning.coordinate(51.5, 0.125) // London
         zoomLevel: 10
+        copyrightsVisible: false

         MapItemView {
--- sdrangel-6.20.2/plugins/channelrx/demodadsb/adsbdemodgui.cpp 2022-03-30 22:16:08.000000000 +0200
+++ sdrangel-6.20.2/plugins/channelrx/demodadsb/adsbdemodgui.cpp 2022-04-02 04:57:53.302931616 +0200
@@ -3590,7 +3590,7 @@
     }

     // Create the map using the specified provider
-    QQmlProperty::write(item, "mapProvider", "osm");
+    QQmlProperty::write(item, "mapProvider", "mapboxgl");
     QVariantMap parameters;
     // Use our repo, so we can append API key and redefine transmit maps
     parameters["osm.mapping.providersrepository.address"] = QString("http://127.0.0.1:%1/").arg(m_osmPort);
--- sdrangel-6.20.2/plugins/channelrx/demodadsb/map/map.qml 2022-03-30 22:16:08.000000000 +0200
+++ sdrangel-6.20.2/plugins/channelrx/demodadsb/map/map.qml 2022-03-31 16:39:16.438718738 +0200
@@ -8,7 +8,7 @@
     id: qmlMap
     property int aircraftZoomLevel: 11
     property int airportZoomLevel: 11
-    property string mapProvider: "osm"
+    property string mapProvider: "mapboxgl"
     property variant mapPtr
     property string requestedMapType
     property bool lightIcons
@@ -52,6 +56,7 @@
             anchors.fill: parent
             center: QtPositioning.coordinate(51.5, 0.125) // London
             zoomLevel: 10
+            copyrightsVisible: false

             // Needs to come first, otherwise MouseAreas in the MapItemViews don't get clicked event first
             // Setting z doesn't seem to work
srcejon commented 2 years ago

Created a Qt bug for this: https://bugreports.qt.io/browse/QTBUG-103592 (as even the Qt Map Viewer example program doesn't work on Qt 5.15.3)

srcejon commented 2 years ago

Workaround implemented in 7.3.2.