Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

It should be an option to build against the system fmt, or if we have to use a specific version, it should not be installed to /usr/lib and /usr/lib64 #42

Open
ilikenwf opened this issue Oct 1, 2024 · 28 comments

Comments

@ilikenwf
Copy link

ilikenwf commented Oct 1, 2024

I have run into an issue where Neumodvb is building it's own fmt, which I already have installed by the system. I'm currently working around it by installing to /opt/neumodvb, however it would be nice if CMake first checked for a system fmt and used that instead?

Totally understand if there's some specific fmt version required, though, too.

neumodvb-git: /usr/include/fmt/args.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/chrono.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/color.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/compile.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/core.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/format-inl.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/format.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/os.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/ostream.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/printf.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/ranges.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/std.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/include/fmt/xchar.h exists in filesystem (owned by fmt)
neumodvb-git: /usr/lib/cmake/fmt/fmt-config-version.cmake exists in filesystem (owned by fmt)
neumodvb-git: /usr/lib/cmake/fmt/fmt-config.cmake exists in filesystem (owned by fmt)
neumodvb-git: /usr/lib/cmake/fmt/fmt-targets.cmake exists in filesystem (owned by fmt)
neumodvb-git: /usr/lib/pkgconfig/fmt.pc exists in filesystem (owned by fmt)
neumodvb-git: /usr/lib64 exists in filesystem (owned by filesystem)
@ilikenwf
Copy link
Author

ilikenwf commented Oct 1, 2024

This may be something weird with arch's build system...not sure yet.

xbmc has a nice FindFmt.cmake :
https://github.com/xbmc/xbmc/blob/master/cmake/modules/FindFmt.cmake

@ilikenwf
Copy link
Author

ilikenwf commented Oct 1, 2024

...I seem to be ok with it now with some adjustments, however is it necessary to have Neumodvb bring it's own fmt when it's already installed in the system libs?

@ilikenwf
Copy link
Author

ilikenwf commented Oct 1, 2024

Nevermind...my workarounds failed. Guess I need to figure out how to get system fmt working.

@ilikenwf
Copy link
Author

ilikenwf commented Oct 1, 2024

This appears to get it built without conflicting with the local system at least - just going built in instead of dynamic:

# Prevent fmt from being installed system-wide
set(FMT_INSTALL OFF CACHE BOOL "Disable installation of fmt" FORCE)

@deeptho
Copy link
Owner

deeptho commented Oct 2, 2024

This appears to get it built without conflicting with the local system at least - just going built in instead of dynamic:

# Prevent fmt from being installed system-wide
set(FMT_INSTALL OFF CACHE BOOL "Disable installation of fmt" FORCE)

Where should this be placed?

There is a reason for using non standard packages: specifically when the installed versions are not new enough (eg. ubuntu is often very outdated).

Also, there is no need to install neumodvb. Just run from where it was compiled. This is how most people
run it, and so it is better tested (but I want installation to work as well)

@ilikenwf
Copy link
Author

ilikenwf commented Oct 2, 2024

Here's a patch: https://aur.archlinux.org/cgit/aur.git/plain/static-build-fmt.patch?h=neumodvb-git

I can pull request if you want though.

In the case of Arch, I have the opposite issue at times where packages are too new...haha. Having it packaged is just nice.

@deeptho
Copy link
Owner

deeptho commented Oct 2, 2024

Patch is fine (for such a simple thing). Will be in next version.

@deeptho deeptho closed this as completed Oct 2, 2024
@ilikenwf
Copy link
Author

ilikenwf commented Oct 8, 2024

Current master is crashing for me whenever I try to scan or tune, it can see the spectrum though...I'm going to build the 1.7 tag and see if it does any better.

@ilikenwf
Copy link
Author

ilikenwf commented Oct 8, 2024

/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/optional:475: _Tp &std::_Optional_base_impl<devdb::fe_t, std::_Optional_basedevdb::fe_t>::_M_get() [_Tp = devdb::fe_t, _Dp = std::_Optional_basedevdb::fe_t]: Assertion 'this->_M_is_engaged()' failed.

@ilikenwf
Copy link
Author

ilikenwf commented Oct 8, 2024

Is my gcc stdlib too new? @deeptho

@ilikenwf
Copy link
Author

ilikenwf commented Oct 8, 2024

Just because I got it working right in headend now, doesn't mean I don't want to get neumo working for all the stranger stuff that can be discovered on these satellites.

@deeptho
Copy link
Owner

deeptho commented Oct 8, 2024

You should compile using clang, not gcc. And if something does not work, you need to provide useful information to figure out the problem. neumo.log, debug.log, any asserttions printed on the console + a description on how the problem can be made to occur.

I doubt that any library is too new. At most that should cause compilation problems.

@andimik
Copy link

andimik commented Oct 9, 2024

You should compile using clang, not gcc

Could you please write in the Readme how to do that? I guess others have the same problem.

Lots of us are users, not programmers.

@deeptho
Copy link
Owner

deeptho commented Oct 9, 2024

No need: it is in the CMakeLists.txt file and the instructions already explain the prerequisites. If you make a similar list for ArchLinux, I am willing to add it to install.md

@deeptho
Copy link
Owner

deeptho commented Oct 9, 2024

Maybe you should just provide some information on what went wrong.
One mysterious error message without any context is not a lot to go on.

@ilikenwf
Copy link
Author

ilikenwf commented Oct 9, 2024

I'm using clang/clang++ though...it's just that clang doesn't provide stdlib which is provided by gcc, or at least lives in with the gcc libs. I'll double check - something stupid in the build system may be trying to use gcc instead.

If I still hit the wall, I'll run with gdb and see if I can't trace this down to whatever the issue is.

@deeptho
Copy link
Owner

deeptho commented Oct 10, 2024

I repeat: Maybe you should just provide some information on what went wrong.
One mysterious error message without any context is not a lot to go on.

If you find something with gdb, then let me know.

@ilikenwf
Copy link
Author

ilikenwf commented Oct 12, 2024

@deeptho I go to LNBs, then DX -> Spectrum.

I can get the spectrum for H and V, and once the button is white again, I try to blindscan, and then get this crash.

It is happening in devdb - I can build with debug on if necessary:

#3  0x00007ffff54e4462 in std::__glibcxx_assert_fail
    (file=<optimized out>, line=<optimized out>, function=<optimized out>, condition=<optimized out>)
    at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/assert_fail.cc:41
#4  0x00007ffff5b68ae4 in subscribe_ret_t devdb::fe::subscribe_mux<chdb::dvbs_mux_t>(db_txn&, subscription_id_t, subscription_options_t const&, chdb::dvbs_mux_t const&, chdb::service_t const*, bool) () at /usr/lib/libdevdb.so

Which, when drilled down in the stack is happening here - so my stdlib (14.2.1) may be a newer ABI than yours, which is just an Archlinux life issue...or there's a real issue somewhere?

/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/optional:475: _Tp &std::_Optional_base_impl<devdb::fe_t, std::_Optional_basedevdb::fe_t>::_M_get() [_Tp = devdb::fe_t, _Dp = std::_Optional_basedevdb::fe_t]: Assertion 'this->_M_is_engaged()' failed.

@ilikenwf
Copy link
Author

ilikenwf commented Oct 17, 2024

@deeptho Here's a more and full backtrace from a debug build. I suspect that either one or more std::optional objects isn't being checked properly to use or be dereferenced, or their predecessor may be null or dereferenced and not be getting checked, in one of the assertions?

#0  0x00007ffff76a23db in pthread_kill () at /usr/lib/libc.so.6
#1  0x00007ffff76439d8 in raise () at /usr/lib/libc.so.6
#2  0x00007ffff762647b in abort () at /usr/lib/libc.so.6
#3  0x00007ffff54e4462 in std::__glibcxx_assert_fail
    (file=<optimized out>, line=<optimized out>, function=<optimized out>, condition=<optimized out>)
    at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/assert_fail.cc:41
#4  0x00007ffff5b68ae4 in devdb::fe::subscribe_mux<chdb::dvbs_mux_t>
    (wtxn=..., subscription_id=subscription_id_t::NONE, tune_options=..., mux=..., service=0x0, do_not_unsubscribe_on_failure=<optimized out>)
    at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/optional:475
#5  0x00007ffff5e61846 in receiver_thread_t::subscribe_mux<chdb::dvbs_mux_t>
    (this=0x55555614ccb8, futures=<optimized out>, devdb_wtxn=..., mux=..., ssptr=Python Exception <class 'gdb.error'>: value has been optimized out
, tune_options=..., scan_id=..., do_not_unsubscribe_on_failure=true)
    at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/receiver.cc:576
#6  0x00007ffff5f087df in scan_t::scan_try_mux<chdb::dvbs_mux_t>
    (this=0x7fff20002448, reusable_ssptr=Python Exception <class 'gdb.error'>: value has been optimized out
, mux_to_scan=..., use_blind_tune=true, blindscan_key=<optimized out>)
    at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/scan.cc:1196
#7  0x00007ffff5eff9d3 in scan_t::scan_try_peak<chdb::dvbs_mux_t>
    (this=0x7fff20002448, chdb_rtxn=..., blindscan=..., reusable_ssptr=std::shared_ptr<subscriber_t> (empty) = {...}, peak=..., blindscan_key=...)
--Type <RET> for more, q to quit, c to continue without paging--
    at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/scan.cc:549
#8  0x00007ffff5ef1211 in scan_t::scan_next_peaks
    (this=0x7fff20002448, chdb_rtxn=..., reusable_ssptr=std::shared_ptr<subscriber_t> (empty) = {...}, skip_map=std::map with 1 element = {...}, scan_stats=<optimized out>)
    at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/scan.cc:708
#9  0x00007ffff5efa347 in scan_t::scan_next<chdb::dvbs_mux_t> (this=0x7fff20002448, chdb_rtxn=..., reusable_ssptr=std::shared_ptr<subscriber_t> (empty) = {...}, scan_stats=...)
    at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/scan.cc:900
#10 0x00007ffff5ee9fbb in scan_t::housekeeping (this=0x7fff20002448, force=<optimized out>) at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/scan.cc:184
#11 0x00007ffff5eeb76b in scanner_t::housekeeping (this=0x7fff20004730, force=<optimized out>) at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/scan.cc:236
#12 0x00007ffff5e43caa in receiver_thread_t::scan_spectral_peaks
    (this=0x55555614ccb8, futures=<optimized out>, rf_path=..., peaks=..., spectrum_key=..., scan_found_muxes=<optimized out>, max_num_subscriptions=100, scan_ssptr=std::shared_ptr<subscriber_t> (use count 6, weak count 1) = {...}) at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/receiver.cc:2045
#13 0x00007ffff5e432f1 in receiver_thread_t::cb_t::scan_spectral_peaks
    (this=<optimized out>, rf_path=..., peaks=..., spectrum_key=..., ssptr=std::shared_ptr<subscriber_t> (use count 6, weak count 1) = {...})
    at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/receiver.cc:663
#14 0x00007ffff5e5b11b in receiver_t::scan_spectral_peaks(devdb::rf_path_t const&, ss::databuffer_<chdb::spectral_peak_t>&, statdb::spectrum_key_t const&, std::shared_ptr<subscriber_t>)::$_0::operator()() const (this=0x5555594c2080) at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/receiver.cc:1243
#15 std::__invoke_impl<int, receiver_t::scan_spectral_peaks(devdb::rf_path_t const&, ss::databuffer_<chdb::spectral_peak_t>&, statdb::spectrum_key_t const&, std::shared_ptr<subscriber_t>)::$_0&>(std::__invoke_other, receiver_t::scan_spectral_peaks(devdb::rf_path_t const&, ss::databuffer_<chdb::spectral_peak_t>&, statdb::spectrum_key_t const&, std::shared_ptr<subscriber_t>)::$_0&) (__f=...) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/invoke.h:61
#16 std::__invoke_r<int, receiver_t::scan_spectral_peaks(devdb::rf_path_t const&, ss::databuffer_<chdb::spectral_peak_t>&, statdb::spectrum_key_t const&, std::shared_ptr<subscriber_t>)::$_0&>(receiver_t::scan_spectral_peaks(devdb::rf_path_t const&, ss::databuffer_<chdb::spectral_peak_t>&, statdb::spectrum_key_t const&, std::shared_ptr<subscriber_t>)::$_0&) (__fn=...)
    at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/invoke.h:114
#17 std::_Function_handler<int(), receiver_t::scan_spectral_peaks(devdb::rf_path_t const&, ss::databuffer_<chdb::spectral_peak_t>&, statdb::spectrum_key_t const&, std::shared_ptr<subscriber_t>)::$_0>::_M_invoke (__functor=<optimized out>) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/std_function.h:290
#18 0x00007ffff5e73077 in std::function<int()>::operator() (this=0x245ff) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/std_function.h:591
#19 task_queue_t::push_task_(std::function<int ()>&&, bool)::{lambda()#1}::operator()() const (this=0x245ff) at /home/settop/repos/neumodvb-git/src/neumodvb/src/receiver/task.h:322
#20 std::__invoke_impl<task_result_t, task_queue_t::push_task_(std::function<int ()>&&, bool)::{lambda()#1}&>(std::__invoke_other, task_queue_t::push_task_(std::function<int ()>&&, bool)::{lambda()#1}&) (__f=...) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/invoke.h:61
#21 0x00007ffff5e73000 in std::__invoke_r<task_result_t, task_queue_t::push_task_(std::function<int ()>&&, bool)::{lambda()#1}&>(task_queue_t::push_task_(std::function<int ()>&&, bool)::{lambda()#1}&) (__fn=...) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/invoke.h:114
#22 std::_Function_handler<task_result_t (), task_queue_t::push_task_(std::function<int ()>&&, bool)::{lambda()#1}>::_M_invoke(std::_Any_data const&) (__functor=<optimized out>)
    at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/std_function.h:290
#23 0x00007ffff5e73f79 in std::function<task_result_t()>::operator() (this=0x245ff)
    at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/std_function.h:591
#24 std::__invoke_impl<task_result_t, std::function<task_result_t()>&> (__f=...) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/invoke.h:61
#25 std::__invoke_r<task_result_t, std::function<task_result_t()>&> (__fn=...) at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/invoke.h:114
#26 std::__future_base::_Task_state<std::function<task_result_t ()>, std::allocator<int>, task_result_t ()>::_M_run()::{lambda()#1}::operator()() const (this=<optimized out>)
    at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/future:1498
#27 std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<task_result_t>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<std::function<task_result_t ()>, std::allocator<int>, task_result_t ()>::_M_run()::{lambda()#1}, task_result_t>::operator()() const (this=0x7fffcb5ff5d0)
    at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/future:1416
#28 0x00007ffff5e73eed in std::__invoke_impl<std::unique_ptr<std::__future_base::_Result<task_result_t>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<task_result_t>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<std::function<task_result_t ()>, std::allocator<int>, task_result_t ()>::_M_run()::{lambda()#1}, task_result_t>&>(std::__invoke_other, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<task_result_t>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<std::function<task_result_t ()>, std::allocator<int>, task_result_t ()>::_M_run()::{lambda()#1}, task_result_t>&) (__f=...)
    at /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/bits/invoke.h:61
#29 std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<task_result_t>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<std::function<task_result_t ()>, std::allocator<int>, task_result_t ()>::_M_run()::{lambda()#1}, task_result_t>&>(std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<task_result_t>, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_state<std::function<task_result_t ()>, std::allocator<int>, task_result_t ()>::_M_run()::{lambda()#1}, task_result_t>&) (__fn=...)

@deeptho
Copy link
Owner

deeptho commented Oct 19, 2024

So that should be easy to find: set a break point on assertion. Go up in the debugger and check in each call frame which variable is null. Or set a break point on one of the calling functions and step through them.

@deeptho deeptho reopened this Oct 19, 2024
@ilikenwf
Copy link
Author

ilikenwf commented Oct 20, 2024

@deeptho so feel free to chide me if you'd like but I'm suspecting now that the issue is some cflag issue from my distro's defaults...building it manually without letting those pass through and it appears to be working now - so I'll try adjusting my build config for the packaged version and see if that fixes it. So far no found muxes, on a known good satellite, but it has 85 peaks left to check.

The only other issue I have is that because my GPU is an intel arc card, which does support vulkan and opengl fully, for whatever reason the baked in use of mpv complains in an error dialog that it failed to create an opengl context....

I'll let you know what I come up with otherwise...first chance I've had to try it in a more clean manner.

@ilikenwf
Copy link
Author

I had my switch config in the wrong diseqc slot...ha.

@ilikenwf ilikenwf reopened this Oct 20, 2024
@ilikenwf
Copy link
Author

So with that correct, while I can see peaks, for whatever reason, I run into this on every peak checked:

dtdebugf("LNB {} cannot be used", lnb);

2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] Asking to subscribe 12721.750H reusable_ssptr=NOSUB src/receiver/scan.cc:1191
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] LNB D-1 UNIV [1] 99.0W cannot be used odb/devdb/fe_find.cc:439
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] SET PENDING: 12721.750H src/receiver/scan.cc:543
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] Asking to subscribe 12721.750H reusable_ssptr=NOSUB src/receiver/scan.cc:1191
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] LNB D-1 UNIV [1] 99.0W cannot be used odb/devdb/fe_find.cc:439
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] SET PENDING: 12721.750H src/receiver/scan.cc:543
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] Asking to subscribe 12721.750H reusable_ssptr=NOSUB src/receiver/scan.cc:1191
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] LNB D-1 UNIV [1] 99.0W cannot be used odb/devdb/fe_find.cc:439
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] SET PENDING: 12721.750H src/receiver/scan.cc:543
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] Asking to subscribe 12721.750H reusable_ssptr=NOSUB src/receiver/scan.cc:1191
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] LNB D-1 UNIV [1] 99.0W cannot be used odb/devdb/fe_find.cc:439
2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] SET PENDING: 12721.750H src/receiver/scan.cc:543

@ilikenwf
Copy link
Author

In addition, if I manually plug in a valid TP and tune, it does tune and lock under the tune mux box, but it does appear that the mpv integration is not working and I thus cannot play video...not sure if that has to do with something else or the fact mpv, despite my having specified not to use opengl in the config file, throws the "failed to open gl context" error...not sure if that's from wxwidgets or mpv actually...open to suggestions.

@deeptho
Copy link
Owner

deeptho commented Oct 20, 2024

So with that correct, while I can see peaks, for whatever reason, I run into this on every peak checked:

dtdebugf("LNB {} cannot be used", lnb);

2024-10-19 20:31:58,815 DEBUG: [receiver  RECEIVER-CMD SCAN[SUB-1] 56 peaks] Asking to subscribe 12721.750H reusable_ssptr=NOSUB src/receiver/scan.cc:1191

That is a debug message, not an error,

@deeptho
Copy link
Owner

deeptho commented Oct 20, 2024

In addition, if I manually plug in a valid TP and tune, it does tune and lock under the tune mux box, but it does appear that the mpv integration is not working and I thus cannot play video...not sure if that has to do with something else or the fact mpv, despite my having specified not to use opengl in the config file, throws the "failed to open gl context" error...not sure if that's from wxwidgets or mpv actually...open to suggestions.

It cannot work without opengl and opengl should work on all platforms. Does the command line mpv player work? If not, then fix that first. Without using configuration changes.

@ilikenwf
Copy link
Author

I'm using an Intel Arc A380 in my home theater PC, primarily for its proper 4K and HDR support. All the critical components like OpenGL, Vulkan, VAAPI, and Mesa are functioning correctly, including MPV on its own.

I suspect the issue lies with wxWidgets. I've tried setting various properties when creating the OpenGL instance (such as RGB and such), but this hasn't resolved the problem.

Despite the fact I can't play something back after manually plugging in the correct details, I think the more concerning issue I'm facing is with the blind scan, which finds zero muxes. Initially, the spectrum shows one peak with a datastream and rate along with the less obvious ones, but it never finds any of the muxes despite the fact the spectrum is clear and signal is strong.

Using your CLI blindscan tool, I can typically find some TPs and muxes, so I’m not sure where the discrepancy is coming from.

@deeptho
Copy link
Owner

deeptho commented Oct 21, 2024

I think you are just randomly guessing.
Provide log files for neurmodvb and kernel debug logs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants