Skip to content

v0.4.1 — pool: collapse HISTORY when target converges with NEXT or PREV

Choose a tag to compare

@empyfi empyfi released this 06 Jun 09:59
· 29 commits to main since this release

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.ipk

Restart enigma2 to pick up the controller change. Existing settings
are preserved.


Full change log in CHANGELOG.md.