deeptho / neumodvb

neumoDVB DVB-S2/DVB-T/DVB-C settop box and DX program for Linux
Other
17 stars 8 forks source link

wrong parameters reverted #3

Closed psyborg55 closed 2 years ago

psyborg55 commented 2 years ago

mux 12687 V 28800 DVBS2 QPSK at 0.8w

after scan the parameters revert to DVBS QAM-AUTO, streams cannot be tuned until manually set correct, shortly after they revert again

also it is quite annoying that autodiscovery quickly spams the list with predefined muxes, while i want to test only few muxes at a time. maybe add the checkbox somewhere to disable it?

also some bugs observed, ubuntu 21.10:

play hevc uhd

mesa: for the --simplifycfg-sink-common option: may only occur zero or one times!
mesa: for the --global-isel-abort option: may only occur zero or one times!
mesa: for the --amdgpu-atomic-optimizations option: may only occur zero or one times!

delete services or muxes

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/wx/core.py", line 3282, in <lambda>
    lambda event: event.callable(*event.args, **event.kw) )
  File "/home/tom/neumodvb/gui/neumodvb/neumolist.py", line 722, in DeleteRows
    self.parent.GoToCell(rowno, colno)
wx._core.wxAssertionError: C++ assertion "uiIndex < m_nCount" failed at ../include/wx/dynarray.h(841) in Item(): 
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

hit tune in positioner twice or more

neumodvb: /home/tom/neumodvb/src/receiver/frontend.cc:527: void dvb_frontend_t::get_signal_info(chdb::signal_info_t &, bool): Assertion `cs.num_samples <= 4096' failed.
Aborted (core dumped)

unplugged the card while still running app

neumodvb: /home/tom/neumodvb/src/receiver/devmanager.cc:314: void adaptermgr_t::stop_frontend_monitor(dvb_frontend_t *): Assertion `it != monitors.end()' failed.
Aborted (core dumped)

autoscan all muxes

neumodvb: /home/tom/neumodvb/src/neumodb/chdb/chdb_extra.cc:573: chdb::update_mux_ret_t chdb::update_mux(db_txn &, mux_t &, time_t, update_mux_preserve_t::flags) [mux_t = chdb::dvbs_mux_t]: Assertion `mux.k.extra_id != 0' failed.
Aborted (core dumped)
deeptho commented 2 years ago

I think you are using a dvb card which does not support blindscan. This means that none of the related functions will work. For example: you need to enter "DVB-S" or "DVB-S2" explicitly..

About the autodiscovery: this is a feature request. It is valuable, but not a priority right now. Try not to mix this in this ticket, but instead open a new one. AT leastthen, I will remember that you asked.

For the other issues: when a problem is clearly different, please (next time) open another ticket. Also be sure to include the log file (which includes version number and sometimes messages that help to fix the problem)

The first issue is unrelated to neumoDVB and perhaps to the old (?) ubuntu version you are running.

The second issue could be because the code is requested to go to a non existing row. I will upload a possible fix later.

psyborg55 commented 2 years ago

For example: you need to enter "DVB-S" or "DVB-S2" explicitly..

i set DVBS2 explicitly, but the setting gets reverted to DVBS without my interaction

The first issue is unrelated to neumoDVB and perhaps to the old (?) ubuntu version you are running.

latest 21.10 version running. may be related to missing hw h265 decoder, or issues with media tree drivers with latest kernel (had to reinstall modules packages, for compiled drivers to get placed into extra dir and restore gpu/hw decoding)

about 3rd issue with positioner crash - i noticed it does not happen in vbox 21.10 ubuntu, and tuning always returns signal/SNR values. i am now about to check what is the difference between ssd and vbox install of 21.10. at least there is clang-format package missing in vbox install (recompiled, noticed warnings), but i don't suspect an additional package would cause problems...

deeptho commented 2 years ago

i set DVBS2 explicitly, but the setting gets reverted to DVBS without my interaction

Well, neumo uses whatever info the driver returns. If the driver returns the wrong information then that is the result. Is the driver you are using actually supported by my blindscan code? If not, then you will have to just accept this problem.

psyborg55 commented 2 years ago

It is M88DS3103/M88TS2022 device, so not supported. With kernel drivers it tries to tune, and in positioner console RF level is locked immediately and refreshed properly. But with patched media drivers attempts to read out signal stats in positioner most of the time just crash the app. On rare occasions RF levels are pulled correctly and displayed, when this happens all values are shown including BER. I notice there is overlay function that displays RF/SNR and from what I remember here the levels were always displayed. Are these two functions not sharing the RF/SNR code or there is something else wrong with positioner code?

deeptho commented 2 years ago

What crashes? The kernel or the program? Can you send /tmp/neumo.log and/or the kernel log?

psyborg55 commented 2 years ago

program crashed, log posted above, this line

neumodvb: /home/tom/neumodvb/src/receiver/frontend.cc:527: void dvb_frontend_t::get_signal_info(chdb::signal_info_t &, bool): Assertion `cs.num_samples <= 4096' failed.
Aborted (core dumped)

assumed it is because of not supported constellation with mt88 drivers, tried disabling constellation via button which enabled by default but still same crash.

i see your linux_media fork is 29K commits behind tbs, is there a reason for no update? maybe it would make difference if used tbs repo instead

also to add: i tried doing some modifications to driver, recompiled successfully without errors or warnings but loading resulted in module crash, gdb pointed to uninitialized value which was also discovered by cppcheck. but compiler building this linux_media driver from your branch did not detect problem.

deeptho commented 2 years ago

Can you find out (with gdb or by adding printf statement) the value of cs.num_samples when it triggers the assertion?

Reason for not upgrading the drivers: it takes a lot of time and some of the hanges are incompatible with my own code. It would be helpful if my code were just integrated there. Then it would be easier. tbs is aware of my work and they can do so if they want.

29k commits sounds like a lot, but most of these are just generic kernel changes. So expect updates no more than a few times per year to keep up with kernel or when a specific problem with some other driver needs to be fixed.

psyborg55 commented 2 years ago

Can you find out (with gdb or by adding printf statement) the value of cs.num_samples when it triggers the assertion?

4000 (16384 decimal)

deeptho commented 2 years ago

Thanks. I think I found the problem and will commit a fix.

psyborg55 commented 2 years ago

that solved the positioner crash.

problem with latest app revision: hitting tune once does not display any signal stats, hitting tune again locks RF level info but loses SNR from overlay info Screenshot from 2022-01-14 05-13-25

then tried to hit tune multiple times quickly, got RF level, SNR and BER for a second but at the same time dish drove away to east... sounds like positioner interface is quite broken due to something, maybe those python dependencies?!? however, its not any better in virtual fedora where everything was installed as described in readme i changed dish setting from rotor to fixed, at least its not driving away now but signal stats are not shown, except for the RF level

then i switched to commit 5b0465f2fde70ca112bba07c9338c9efdb4ad166 here the stats are shown, but they are not auto refreshed, and even if manually trying to refresh them by hitting tune it looks like only values from first tune of transponder in question are displayed. and i think this only works with DVB-S, DVB-S2 couldn't get SNR info Screenshot from 2022-01-14 15-46-29 Screenshot from 2022-01-14 15-48-24 Screenshot from 2022-01-14 15-52-38

deeptho commented 2 years ago

You could try the latest version, which has some signal info display fixes.

I am going to close this ticket: you should open one ticket per issue. If simethig still does not work, then open a separate ticket for each problem, unless the problems are (suspected to be) related. The reason the positioner moves is that your dish is on a rotor. Perhaps this is misconfigured in your case?

psyborg55 commented 2 years ago

QAM-AUTO solved in latest version.

no luck with signal info, still the same behavour

The reason the positioner moves is that your dish is on a rotor. Perhaps this is misconfigured in your case?

only single sat is added at 0.8w, i did not try to use any other positioner related feature except driving between 2 stored positions. more often this did not work then it did work today my dish was at 10e i wanted to get it back to 0.8w, had to hit goto button/tune button so many times that i lost count, in the end it was rotated to the correct position, but definitely looks like UI is broken badly here.

when it gone east on hitting tune button, i assume it went to ref position

just holding mouse on lower part of the console and left-clicking makes selection box switch between buttons...

deeptho commented 2 years ago

You need to provide more information. -log files -do you use usals or diseqc12? The latter has not been well tested -how is your lnb configured? and the lnb networks> -what is "lower part of the console". Explain all steops in detail. The panels have names lie "otor control", "drive motor" ... which can help explain. I do not understand what you mean...

psyborg55 commented 2 years ago

-do you use usals or diseqc12? The latter has not been well tested

diseqc12

-how is your lnb configured? and the lnb networks>

written above - single lnb with single network

-what is "lower part of the console". Explain all steops in detail. The panels have names lie "otor control", "drive motor"

obviously an empty space below Signal / Tune mux panels