diff --git a/csdr/chain/dablin.py b/csdr/chain/dablin.py index 9efb73cb..8e16ad2b 100644 --- a/csdr/chain/dablin.py +++ b/csdr/chain/dablin.py @@ -155,6 +155,9 @@ class Dablin(BaseDemodulatorChain, FixedIfSampleRateChain, FixedAudioRateChain, self.processor.stop() else: self._meta_forwarder.stop() + if self._eti_reader is not None: + self._eti_reader.stop() + self._eti_reader = None def setMetaWriter(self, writer: Writer) -> None: if self._shared_decoder is None: diff --git a/owrx/dsp.py b/owrx/dsp.py index 78f65d70..f0e42125 100644 --- a/owrx/dsp.py +++ b/owrx/dsp.py @@ -596,7 +596,9 @@ class DspManager(SdrSourceEventClient, ClientDemodulatorSecondaryDspEventClient) return Dablin(shared_decoder=shared) except Exception: logger.exception("Shared DAB decoder failed, falling back to standalone") - self._dabKey = None + if self._dabKey is not None: + DabDecoderManager.getShared().release(*self._dabKey) + self._dabKey = None return Dablin() elif demod == "empty": from csdr.chain.analog import Empty