Commit Graph

129 Commits

Author SHA1 Message Date
vsonnier 0e3a785bd2 Fix for liquid-dsp v1.50 where msresamp_crcf_create() with mad As parameter somewhat creates crashes 2023-01-11 21:27:40 +01:00
dforsi f461fcb94c
Fix typing errors (#935)
Found with:
codespell --skip=external --ignore-words-list=axix,bord,parm,soley,ue --write-changes --interactive 2

Co-authored-by: Daniele Forsi <iu5hkx@gmail.com>
2021-12-29 19:54:03 +01:00
Charles J. Cliffe e9a6fc089c Cleanup: data, visual processor threads 2021-04-04 22:18:19 -04:00
vsonnier 8dbd5de53d No Spin-lock for xxxProcessor, unclear what the gain was 2019-03-04 18:44:48 +01:00
vsonnier 6afa3a6d6a Reduced SpinMutex scope in VisualProcessor::distribute() 2019-03-03 11:42:34 +01:00
vsonnier 5ab44e3104 Use spin-locks for short-lived, non-recursive locking sequences 2019-03-03 10:36:10 +01:00
Charles J. Cliffe c57a123130 Additional warning fixes; run brew update before brew install for hamlib 2019-01-10 21:23:26 -05:00
vsonnier 3cc49bdb15 Fixes #581 ?: Do not set std::shared_ptr to nullptr in constructors (useless anyway) since they could be wrongly interpreted 2017-10-16 18:50:55 +02:00
vsonnier 6019207bd4 VisualProcessor : protect against null input queue 2017-10-15 08:51:01 +02:00
vsonnier f4107c1541 Optimized VisualProcessor by using a non-recursive mutex and making some ops non-blocking, small AudioThread opt as well 2017-10-14 11:34:25 +02:00
vsonnier 927d727a16 Try not to use atomics in performance code 2017-09-22 22:53:59 +02:00
vsonnier 3842cf087f More terminate()-and-flush calls missed before 2017-08-29 18:48:59 +02:00
vsonnier 3f90cbb858 Flush queues on terminate() calls to unblock push()s and so ease threads termination 2017-08-28 20:53:21 +02:00
vsonnier c112026a2c Make processing queues timed-push, to be able to escape deadlocks. Rollback 'restart device when blocked' that is ineffective in practice. 2017-08-26 23:34:48 +02:00
vsonnier ebca762ea8 Fix crash introduced with #559, fix hanging thread at application termination 2017-08-25 18:52:33 +02:00
vsonnier c64baab99d Threads vs. Queues lifetimes, cleanups.
- Ideally Queues must outlive the threads using them, but wasn't done so. Yes, std::shared_ptr them!
- Now queues are always valid in the context of the threads using them.
- No longer need tedious queues deallocation by the original owner.
- Misc cleanups.
2017-08-13 19:19:25 +02:00
vsonnier 3604b7f1ff Even better thread and application termination:
- Now that timed-pop()/try_pop() prevent indefinite blocking it is best to flush() on thread stopping to unblock push()
- Reworked a bit the CubicSDR::OnExit() sequence, see comments.
2017-06-01 19:57:58 +02:00
vsonnier 8f608bbf5c Cleanup: remove some unused params and variables, conversion warnings seen with #550. 2017-05-29 20:22:10 +02:00
vsonnier 3de3d3eee8 Tentative fix #549 prt 3 2017-05-27 12:36:47 +02:00
vsonnier b3dd0b0d6e Tentative fix #548 part 2 2017-05-27 09:49:19 +02:00
vsonnier d170f731c5 Fix #549, plus more usual syntax for #548 2017-05-27 07:46:28 +02:00
vsonnier fcf9f0bb82 Potential fix for #548, to be tested in Nix-like environnements 2017-05-26 23:22:43 +02:00
vsonnier 9b0ce69e8f Use the nuclear option to solve the hung problem:
Besides deadlocks, a thread can in theory get stuck in a blocking pop(),
not seeing the stopping flag in particular. So assure liveness by making all
pop() timed pop.
2017-05-25 09:32:27 +02:00
vsonnier 77a82e1617 Another fix for the neverending hung application bugs:
- Clear up DemodulatorInstance garbage collection, only do it in a single thread (AppFrame::OnIdle)
- Add a specific mutex lock for the list of deleted demodulators,
- Add a specific lock to control DemodulatorInstance thread lifetimes, protecting IsTerminated() of concurrent join and delete
2017-05-25 08:03:08 +02:00
vsonnier 4b323e9863 Make ReBuffer refcount management automatic, using std::shared_ptr:
- No longer need to call setRefCount() / decRefCount()
- Restore old ThreadBlockingQueue using std::deque, for std::shared_ptr correct behaviour.
2017-05-24 12:28:37 +02:00
vsonnier 9e32141a5f MISC4: Fix ref count of VisualDataDistributor (harmless, currently unused) 2017-02-15 20:45:46 +01:00
vsonnier 65c1722bca FIX: VisualProcessor compilation on Linux targets (#514), ThreadBlockingQueue version... 2017-02-14 18:42:12 +01:00
vsonnier c7467a88bc BLOCKING_QUEUE: prepare by raising up max queue lenghts
BLOCKING_QUEUE: Replaced ThreadQueue usage by ThreadBlockingQueue usage
BLOCKING_QUEUE: instrument all push() with timeouts, showed some call have to be non-blocking...
BLOCKING_QUEUE: tuned push()/try_push()
2017-02-14 18:42:05 +01:00
vsonnier c0dafb3197 FIX: VisualProcessor compilation on Linux targets (#514), suggested by @abousselmi, also works on MSVC 2017-02-14 18:34:25 +01:00
vsonnier d3db510643 pre-BLOCKING_QUEUE: Simplified, fixed ThreadQueue, VisualProcessor (use std:deque, cleaner templates, max_size fixes) 2017-02-12 12:53:50 +01:00
vsonnier 4609386648 COMMENTS,POLISHING: comments fenzy around VisualProcessor machinery,
make process() a true interface as strong hint for derived classes,
plus misc define added for understanding.

BUGFIX: FFTDataDistributor loses incoming samples when compacting internal buffers.

BUGFIX2: FFTDistributor: Frozen Waterfall if internal buffer is no bigger than fftSize
2017-02-05 12:41:43 +01:00
vsonnier 115b0ffa58 CLEANUP: some compiler and static analysis warnings 2017-01-28 14:57:27 +01:00
Charles J. Cliffe 3ec14fbe38 Licence fix, add SPDX-License-Identifier, remove unused code files 2017-01-02 21:07:43 -05:00
Charles J. Cliffe 2bbae7209f Solo squelch break focus lock/tweak 2016-08-12 22:58:33 -04:00
Charles J. Cliffe 6ea2b5b8e8 More squelch tweaks; include I/Q dB and compare to audio for peak 2016-08-12 21:34:34 -04:00
Charles J. Cliffe 117f56dd9e Clean up redundant internal FFTW3 support; liquid-dsp will use FFTW3 if compiled in. 2016-07-20 18:43:54 -04:00
vsonnier 21c8a81c32 TH_CLEAN_3.5: push() cleanup side of things, assure SDRThread::readStream() to actually check for full + make ThreadQueue notify even in case on not-successfull push(), make it spam notify_all() everytime 2016-07-08 23:30:15 +02:00
vsonnier b495b388c9 TH_CLEAN_3: Use of non-blocking try_pop() when possible,
AudioThread concurrent access hardening and simplified,
and misc.
2016-07-05 21:45:42 +02:00
vsonnier 52de909cfb THREAD_CLEAN: Clearly distinguish between a request to stop by terminate() from the actual termination isTerminated() 2016-06-28 22:16:34 +02:00
vsonnier 23f3ff132a FIX not-initialized audio samples in mono causing fucked FFT + pedantic touches 2016-06-25 16:02:44 +02:00
Charles J. Cliffe 296b0da04a unnecessary frequency=0 check.. 2016-06-03 20:35:08 -04:00
vsonnier 5bb43f5aaa Replace mutex lock/unlock pairs with guards, cleanups 2016-06-03 18:45:03 +02:00
Charles J. Cliffe 6d63d570aa comment out some noisy stdout logging until there's a proper facility for log outputs 2016-06-02 19:45:34 -04:00
Charles J. Cliffe 99f7beba49 ReBuffer is overkill for scope vis and crashes OSX; just push and delete at reciever; clean up lazy exception-fallback loadSession code 2016-06-02 19:25:52 -04:00
Charles J. Cliffe d2943b56c4 Merge branch 'session_bugfix' 2016-06-01 19:48:32 -04:00
Charles J. Cliffe 688181e566 Cleanup MSVC warnings and deprecated C++ exception stuff 2016-06-01 19:42:34 -04:00
vsonnier 357dcc967b MISC 1: make IOThread input and output queues returned as ThreadQueueBase*, not void*, cleaner.
then use static_cast for downcasts, because we know what we are doing
2016-06-01 19:42:11 +02:00
Charles J. Cliffe b828b3636f Add 'Reduced CPU Usage' menu option and config entry. 2016-03-31 21:32:50 -04:00
Charles J. Cliffe 020145c705 Make FFTW3 optional; liquid-dsp is performing better on it's own.. 2016-03-20 18:56:13 -04:00
Charles J. Cliffe 3df7461a15 Add OSX About.. dialog, fix menu agc init logic, fix some queue limits 2016-02-28 22:44:17 -05:00