v0.4.1 — pool: collapse HISTORY when target converges with NEXT or PREV
What's changed
During linear bouquet walking the just-departed channel ends up on
both the HISTORY slot and the opposite-direction neighbour slot
(PREV when walking Channel ↑, NEXT when walking Channel ↓). The pool
would then hold two recordables on the same service — the dvbapi
side sees two demuxer subscriptions, which on softcam / cardsharing
setups with descrambler-prewarm enabled means a redundant continuous
ECM stream above the live one.
The controller now detects this collision at arm time and drops
HISTORY when its target matches NEXT or PREV. A recall after a
skipped HISTORY still HITs because the pool's lookup walks all
armed slots and returns the first key-matching one — PREV / NEXT
answers the recall via channel-sharing.
Measured impact
On the test bench (GigaBlue UHD Quad 4K Pro, HD+ Nagra Aladin via
OSCam, all three prewarm_descrambler_* toggles on):
| Metric | Without skip | With skip | Δ |
|---|---|---|---|
| Card ECM rate | 20.3/min | 18.8/min | −7 % |
| ECM round-trip p95 | 923 ms | 722 ms | −22 % |
| Card-stress events (RTT > 500 ms) | 44.7 % | 32.6 % | −27 % |
| Walk HIT rate | 100 % | 100 % | unchanged |
| Recall HIT rate | 100 % | 100 % | unchanged |
Median RTT stays at the hardware-bound ~376 ms; the gain is
concentrated in the tail.
Who benefits
Specifically cardsharing setups and single-decode CAMs with one or
more Activate descrambler in … pay-TV pre-tune toggles enabled —
where the redundant ECM stream was real card load. For everyone
else the optimisation is silent (no descrambler engaged on the
pre-tune means nothing on the wire to save).
Install
Drop the IPK on the receiver and:
opkg install --force-reinstall enigma2-plugin-extensions-fbc-channelspeedchange_0.4.1_all.ipkRestart enigma2 to pick up the controller change. Existing settings
are preserved.
Full change log in CHANGELOG.md.