openwebrx/csdr
Denny Ma 02a3fd565e fix(dab): prevent cached_output overwrite by freq-correction-only packets
MetaProcessor.process() was replacing cached_output on every call with
whatever fields happened to be in the current EtiDecoder packet. Most
packets only contain timestamp + coarse/fine_frequency_shift — after
filtering those out, the replacement left cached_output as {"mode":"DAB"},
wiping out the previously cached programmes/ensemble data. This caused
the DAB programme list to stop loading in browsers ~1-2 minutes after
initial connect (when the first freq-correction packet arrived).

Fix: switch from assignment to dict.update(), merging only stable fields
(programmes, ensemble_label, etc.). Freq-correction-only packets produce
an empty stable set and no longer touch the cache.

Paired with the getCachedMeta()/setMetaWriter() injection from the PR #421
port, this ensures the programme list is reliably available to all clients.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 16:32:55 +11:00
..
chain fix(dab): prevent cached_output overwrite by freq-correction-only packets 2026-03-16 16:32:55 +11:00
module pass through programme information 2024-01-24 22:37:20 +01:00
__init__.py remove old csdr code 2021-09-27 18:53:49 +02:00