Alte Programme mit ungültiger Nid/Tid als "OBSOLETE" markieren

  • Wenn auf einem Transponder durch Programmverschiebung oder -abschaltung ein neuer Transportstream aufgeschalten wird, verbleiben die urspünglichen Kanaleinträge aber weiterhin in der channels.conf. Wenn es nur eine 1:1 Verschiebung auf einen anderen Transponder war, erkennt "MarkObsoleteChannels()" zwar irgendwann die ungültigen Programme, wenn aber Nid oder Tid nicht mehr aktiv sind klappt das so nicht mehr.

    Der Patch im Anhang überprüft nun, ob die in der NIT angegebene Netzwerk- und Transportstream-ID mit den Werten des Programms der auf diesen Transponder getuned hat noch übereinstimmen. Falls nicht, werden alle Programme mit ungültiger Nid oder Tid für diesen Transponder als "OBSOLETE" markiert.

    Damit der Eitscanner nichts übersieht, wird nun für jede Transponder/Nid/Tid Kombination ein eigener Channels Eintrag in die ScanList aufgenommen.


    Bei mir hat es doch einige "Karteileichen" zum Vorschein gebracht.

    Wer es testen will: zuvor die die channels.conf sichern, alle bereits von VDR als "OBSOLETE" markierten Programm entfernen und einen EPG Scan starten

    Helmut

  • Am Ende des Patches findet sich diese if-Abfrage:

    Code
    1. if (tsTransponder && ISTRANSPONDER(tsTransponder, Transponder()) && (Channel()->Nid() != ts.getOriginalNetworkId() || Channel()->Tid() != ts.getTransportStreamId()))

    Im Falle einer Satellitenempfangsanlage mit Multifeed fehlt meines Erachtens in der if-Abfrage ein Check auf Gleichheit der source.


    EDIT: Habe mich geirrt, weil die NIT ja schon source-spezifisch ist.

  • weil die NIT ja schon source-spezifisch ist

    ... oder zumindest sein sollte. Es wird aber in nit.c. (noch) nicht geprüft ob die NIT zum getunten Deliverysystem passt (falls nicht, wäre sie eigentlich ungültig).

    Ich habe einen halbfertigen Pach für nit.c. der u.a. auch das überprüft und werde ihn bei Gelegenheit posten.

    LG Helmut

  • Inhaltlich muss ich den Patch noch verdauen/verstehen.

    Er ist vielleicht deshalb etwas unklar, weil nit.c nicht die richtige Stelle ist, um die Gültigkeit von Nid/Tid zu prüfen. Das geht einfacher und besser in sdt.c, da hier die Id's des tatsächlich empfangenen TransportStreams bekannt sind. Im Anhang der korrigierte und dadurch vereinfachte Patch v2.

    Zusätzlich auch ein Patch der überprüft, ob die Informationen der NIT für das aktuell getunte DeliverySystem gültig sind.

    Helmut

  • >> Zusätzlich auch ein Patch der überprüft, ob die Informationen der NIT für das aktuell getunte DeliverySystem gültig sind.


    Und dann? Viele Netzwerke übernehmen 1:1 streams aus anderen Netzwerken ohne Anpassung der NIT.

  • Und dann?

    Sie werden ignoriert, da sie für das aktuelle Delivery System ungültig sind. Außerdem würden damit u.U. Transponder hinzugefügt, die ohne entsprechendem Tuner nicht zu empfangen sind.

    Code
    1. ETSI EN 300 468 V1.16.1 (2019-08)
    2. 4.1.1 Network Information Table (NIT) information
    3. The Network Information Table (NIT) provides ...
    4. ...
    5. The following rules apply to the NIT:
    6. a) transmission of the NIT is mandatory for the actual delivery system;
    7. b) the NIT describing the actual delivery system is valid if and only if it contains applicable delivery system descriptors for the actual delivery system. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    8. At some transitions of broadcast delivery system boundaries, the NIT carried in a TS is allowed to be invalid, and to describe an earlier network in the broadcast chain. In this case, a different mechanism has to be selected by the IRD to obtain the relevant tuning information for the actual delivery system. More information is provided in clause 5.3;


    Viele Netzwerke übernehmen 1:1 streams aus anderen Netzwerken ohne Anpassung der NIT.

    Du meist damit wahrscheinlich den Punkt 5.3 Transitions at broadcast delivery media boundaries. Ich bin nich ganz sicher ob ich es richtig verstehe, aber um da Tuning Informationen zu bekommen müsste man - falls vorhanden - eine andere NIT-Pid auswerten oder einen Frequency-Scan durchführen.

    Helmut



  • ..na dann wird dein Patch wirklich Freude bereiten. Die Zuordnung von DelSys zu NIT ist reines Wunschdenken.

  • Naja, ich bin da weniger pessimistisch weil der Zusammenhang hier beschrieben ist:

    Code
    1. ETSI EN 300 468 V1.15.1 (2016-03)
    2. 5.2.1 Network Information Table (NIT)
    3. ...
    4. network_id: This is a 16-bit field which serves as a label to identify the delivery system, about which the NIT informs, from any other delivery system. Allocations of the value of this field are found in ETSI TS 101 162 [i.1].

    Helmut