Skip to content

[pull] master from oe-alliance:master#232

Merged
pull[bot] merged 3 commits into
LraiZer:masterfrom
oe-alliance:master
Apr 21, 2026
Merged

[pull] master from oe-alliance:master#232
pull[bot] merged 3 commits into
LraiZer:masterfrom
oe-alliance:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 21, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

pololoko111 and others added 3 commits April 21, 2026 17:49
Eutelsat Hot Bird 13G (13°E)
tp. 110 (10,719 GHz, pol. V, SR: 27500, FEC: 5/6; DVB-S2/8PSK)

1 → 1/2
2 → 2/3
3 → 3/4 
4 → 5/6
5 → 7/8
Sky Deutschland does not publish Logical Channel Numbers in any DVB
standard SI table on 19.2E. The BAT on PID 0x11 is just a linkage stub
(bouquet "Sky Service Config" with zero transport_stream_loop entries,
private_data_specifier 0x000000BE pointing to a different transponder);
NIT carries no LCN descriptors. The channel list is instead delivered as
a proprietary NDS-ARCHIVE container on PID 0x08AE, table 0x9E, section
filter variable_id 0x0055. The archive holds a nested NDS-ARCHIVE of
per-package text files, each line encoding
  LCN = channel_id = dvb://ONID.TSID.SID ; flag ; flag
which is exactly what ABM needs after a tiny bit of deserialisation.

This adds a new "skyde" protocol built around that carousel:

 - dvbreader.c: new ss_read_skyq() returning one section's raw payload at
   a time (header + bytes 13..section_length-2, i.e. the chunk after the
   5-byte NDS sub-header and before the CRC32).

 - dvbscanner.py: module-level NDS-ARCHIVE parser (two nested archives;
   each entry carries a 22-byte record with file offset and size followed
   by a length-prefixed filename) plus readSkyQArchive() which reassembles
   all sections of one version_number and updateAndReadServicesSKYDE()
   which extracts the configured bouquet_file, parses the LCN lines and
   delegates to the existing updateAndReadServicesLCN() path. Uses its
   own 60s SKYQ_TIMEOUT because the live carousel is currently at 78
   sections and 20s is too tight.

 - providers.py: new "skyde" protocol plus transponder attributes
   skyq_pid / skyq_table_id / skyq_variable_id and a configuration
   attribute bouquet_file naming the .txt entry to use.

 - manager.py: new protocol branch that wires the setters and calls
   updateAndReadServicesSKYDE with bouquet_file from the selected
   configuration.

 - sat_192_sky_deutschland.xml: switched from nolcn to skyde with the
   satellite package (Q-skyHDTVchannels-4.txt, the scheme that matches
   Sky's public receiver channel list). Adds a servicehack filter for
   Sky-internal STEST1/STEST2 test services which sit in the Marktplatz
   range (LCN 1070/1071) in the live feed; uses a substring check
   because Sky DE often wraps names in DVB emphasis bytes 0x86/0x87 and
   the SDT parser in dvbreader.c only strips the leading charset
   indicator byte.

 - custom/hd_sat_192_sky_deutschland_CustomLCN.xml removed. It was a
   hardcoded LCN list introduced in commit f84cf00 with the note
   "until more robust implemenation is applied". With the carousel-based
   reader in place it is obsolete and would otherwise override the
   freshly scanned numbers.

Co-Authored-By: AbuBaniaz <AbuBaniaz@users.noreply.github.com>
Sky sometimes re-allocates channels to different transponders without
updating the corresponding entry in the Sky Q carousel channel-list files
for a while. Services in that state are present in the SDT and tunable
but have no LCN and get dropped by the scanner.

Recent cases seen on the live feed (April 2026) for satellite HD:

  Sky Showcase HD    ONID 0x85  TSID 0x0B  SID 0x8E  -> LCN 100
  HISTORY Channel    ONID 0x85  TSID 0x0B  SID 0x71  -> LCN 122

Both services show up in the SDT but neither appears in the live
Q-skyHDTVchannels-4.txt / -256.txt / -120.txt package files.

This adds a new provider-XML block:

    <lcn_overrides>
        <override onid="0x85" tsid="0x0b" sid="0x8e" lcn="100">
            Sky Showcase HD
        </override>
    </lcn_overrides>

Each <override> is applied in updateAndReadServicesSKYDE only when the
carousel itself has no LCN for the same (ONID, TSID, SID) triplet, so the
entry becomes a no-op as soon as Sky corrects its package file. Remove an
override once Sky restores it.

The mechanism is opt-in per provider; non-skyde providers get an empty
list by default.

Co-Authored-By: AbuBaniaz <AbuBaniaz@users.noreply.github.com>
@pull pull Bot locked and limited conversation to collaborators Apr 21, 2026
@pull pull Bot added the ⤵️ pull label Apr 21, 2026
@pull pull Bot merged commit 6f14d7c into LraiZer:master Apr 21, 2026
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants