UPT error - The solution (maybe)

  • Nachdem mir LordJaxom freundlicherweise Zugriff auf seinen VDR gegeben
    hat, wo der UPT-Fehler sehr gut reproduzierbar auftritt, habe ich nun endlich
    eine ganz heiße Spur gefunden :)


    Die Ursache des Problems ist anscheinend, daß VDR die PIDs bereits setzt,
    wenn der Tuner evtl. noch keinen Lock hat. Wenn man nach dem Tunen wartet
    bis ein Lock da ist und erst dann die PIDs setzt, scheint der UPT-Fehler
    nicht mehr aufzutreten - zumindest konnte ich ihn trotz heftigstem Zappen
    auf LordJaxom's Maschine nicht mehr hervorrufen (und vor der Änderung
    trat er dort manchmal schon nach einmaligem Umschalten auf).


    Ok, hier also ein schneller Hack, damit alle UPT-Geplagten das vorab schon
    mal testen können. Es ist für VDR 1.2.6 und 1.3.x die gleiche Änderung, nämlich



    Bei VDR 1.2.6 dürften die Zeilennummern anders sein, aber sucht einfach
    in VDR/dvbdevice.c nach "PID settings" und fügt die Zeilen davor ein. Die
    Ausgabe ist momentan nur um zu sehen, ob er da reinkommt.


    In VDR 1.2.6 muß zusätzlich noch die Zeile


    bool Locked(void) { return tunerStatus == tsLocked; }


    in cDvbTuner nach


    bool Locked(void) { return tunerStatus >= tsLocked; }


    geändert werden.


    So, vielleicht haben wir ja Glück und der UPT-Fehler ist damit behoben.
    Im Moment wird dadurch das Kanalumschalten wohl etwas langsamer,
    aber ich werde das dann alles in den cDvbTuner-Thread verlagern, so daß es
    wieder so schnell gehen sollte wie gewohnt. Im Moment wäre mir erstmal
    wichtig zu erfahren, ob es jemanden gibt, der trotz dieser Änderung den
    UPT-Fehler immer noch bekommt.


    Klaus

  • Frisch aus die ML:
    --------------------------------------------------------------------------------------------------


    After some lengthy debugging on Sascha Volkenandt's machine, where
    the UPT error was easily reproducable, I believe I have finally
    found a cure for it.


    It would appear that the root of the problem is that VDR sets the PIDs
    even if the tuner doesn't have a lock yet.


    The following patch is a quick hack to fix this:


    --- dvbdevice.c 2004/01/25 13:50:21 1.79
    +++ dvbdevice.c 2004/02/06 15:44:57
    @@ -751,6 +751,11 @@


    dvbTuner->Set(Channel, DoTune, !EITScanner.UsesDevice(this)); //XXX 1.3: this is an ugly hack - find a cleaner solution//XXX


    + //XXX
    + time_t t0 = time(NULL);
    + while (!dvbTuner->Locked() && time(NULL) - t0 < 5)
    + fprintf(stderr, ".");
    + //XXX
    // PID settings:


    if (TurnOnLivePIDs) {


    You can apply it to VDR 1.3.3 as well as 1.2.6 (line numbers may be different
    there, just search for "PID settings" and insert the lines).


    Also, in VDR 1.2.6 the line


    bool Locked(void) { return tunerStatus == tsLocked; }


    in cDvbTuner needs to be changed to


    bool Locked(void) { return tunerStatus >= tsLocked; }


    Those of you who are plagued by the UPT error, please apply the
    above fix and let me know whether or not you still get the UPT
    error.


    Klaus


  • Tja, und ich dachte noch, "poste halt mal _zuerst_ auf VDR Portal"...


    Siehe "UPT - Die Lösung (vielleicht)" in "VDR GRUNDLAGEN".


    Klaus


  • UUPPS! Sorry Klaus, bin direkt aus dem Mailclient auf's Portal gegangen, ohne weiter zu schauen ...


    Aber ich bin trotzdem der Meinung, dass das ne "VDR-News ist" ;)


    Ansonsten: ADMINs bitte löschen.


    gruesse,
    arghgra

  • Hallo
    muss der Code, der zwischen
    dvbTuner->Set(Channel, DoTune, !EITScanner.UsesDevice(this)); //XXX 1.3: this is an ugly hack - find a cleaner solution//XXX
    und
    // PID settings:
    steht weg?????
    Da steht:
    if (scanner) ...


    Diesen Code ersetzen, oder den Patch nur anhängen
    ????
    Danke

    VDR1 yaVDR 0.6: Gehäuse: OrigenAE X15e Board: Giada MG-C1037-SL Grafik: GT620 CPU: Celeron 1037U Ram: 2GB DVB: CineS2 Festplatte: 2x1TB
    VDR2 yaVDR 0.6: Gehäuse: Streacom F7C Board: Zotac Z68ITX-B-E Grafik: GT430 CPU: Pentium G630 Ram: 8GB DVB: CineS2 Festplatte: 30GB mSata + 500GB 2,5
    VDR3 yaVDR 0.6: Gehäuse: HP N36L Ram: 8GB DVB: 2 x CineS2 Festplatten: 2x 1,5TB und 2x2TB
    OctopusNet V1 + Rack 4xS2 + 8xS2


  • Das mit "scanner" stammt wahrscheinlich vom autopid-Patch.
    Ich kann nur für die ungepatchte VDR-Version sprechen.
    Die Zeilen sollten im Zweifelsfalle nach der Zeile


    dvbTuner->Set(Channel, DoTune, !EITScanner.UsesDevice(this));


    eingefügt werden.


    Klaus

  • Danke
    Testbericht folgt

    VDR1 yaVDR 0.6: Gehäuse: OrigenAE X15e Board: Giada MG-C1037-SL Grafik: GT620 CPU: Celeron 1037U Ram: 2GB DVB: CineS2 Festplatte: 2x1TB
    VDR2 yaVDR 0.6: Gehäuse: Streacom F7C Board: Zotac Z68ITX-B-E Grafik: GT430 CPU: Pentium G630 Ram: 8GB DVB: CineS2 Festplatte: 30GB mSata + 500GB 2,5
    VDR3 yaVDR 0.6: Gehäuse: HP N36L Ram: 8GB DVB: 2 x CineS2 Festplatten: 2x 1,5TB und 2x2TB
    OctopusNet V1 + Rack 4xS2 + 8xS2

  • Oje
    Noch ne Frage, wo steht das ????:


    "in cDvbTuner nach


    bool Locked(void) { return tunerStatus >= tsLocked; }


    geändert werden."
    welche Datei? in dvbdevice.c finde ich den Eintrag nicht.
    Sorry für meine Dummheit

    VDR1 yaVDR 0.6: Gehäuse: OrigenAE X15e Board: Giada MG-C1037-SL Grafik: GT620 CPU: Celeron 1037U Ram: 2GB DVB: CineS2 Festplatte: 2x1TB
    VDR2 yaVDR 0.6: Gehäuse: Streacom F7C Board: Zotac Z68ITX-B-E Grafik: GT430 CPU: Pentium G630 Ram: 8GB DVB: CineS2 Festplatte: 30GB mSata + 500GB 2,5
    VDR3 yaVDR 0.6: Gehäuse: HP N36L Ram: 8GB DVB: 2 x CineS2 Festplatten: 2x 1,5TB und 2x2TB
    OctopusNet V1 + Rack 4xS2 + 8xS2

  • Zitat

    Original von arghgra
    UUPPS! Sorry Klaus, bin direkt aus dem Mailclient auf's Portal gegangen, ohne weiter zu schauen ...


    Aber ich bin trotzdem der Meinung, dass das ne "VDR-News ist" ;)


    Ansonsten: ADMINs bitte löschen.


    Hab beide Threads zusammengefügt, so steht es nicht 2x im Forum


    Ansonsten finde ich es in den News auch besser, da es dadurch länger auf der Hauptseite beibt und es so mehr leute sehen.


    Gruß Dirk

    Dirk


  • Mag sein, bei mir war dies
    "dvbTuner->Set(Channel, DoTune, !EITScanner.UsesDevice(this)); //XXX 1.3: this is an ugly hack - find a cleaner solution//XXX"


    die Zeile 915


    Also alles andere als ziemlich weit oben.


    Gruss
    RalfW

    ******************************

    Gen2Vdr 2.0
    ASUS K8N-E Deluxe, AMD Semperon 3000, 762 MB RAM
    Nova-S + Nova SE2 + DigiStar DVB-S
    Toschiba DVD-LW,
    IDE 160 GB, 200 GB, S-ATA 500 GB
    Wakeup Board 2.0,
    Genius SW-HF5.1 5000 Beech Wood Boxenset


  • In der "plain vanilla" VDR-Version 1.2.6 ist diese Zeile in dvbdevice.c
    definitiv drin. Wenn ich mich nicht irre, dann "reißt" der 'autopid'-Patch
    diesen Codeteil aus dvbdevice.c heraus und schiebt ihn nach dvbdevice.h.
    Dafür bin ich aber nicht zuständig.


    Klaus

  • Hi Klaus,


    Patch ist eingebaut, bisher sieht alles gut aus, weder UPT noch Soutcommand Fehler. Ich lass mal laufen mit EPG-Scan, mal sehen was passiert.


    Was allerdings vorhin passiert ist: Vorhin hatte ich auf der 2. Karte gar keinen Empfang mehr. Das ist mir ansich bisher immer in Verbindung mit Soutcommand Errors passiert, die diesmal aber ausblieben.


    Das passiert mit allerdings auch mit einem unveränderten szap, wenn ich es mit der option -x (zum beenden nach tunen) benutze. Bei szap musste ich ein größeres usleep noch einbauen bzw. verschieben, da auch hier lt. der Consolen-Ausgabe getuned war, aber kein Bild kam.



    Ich werd das aber auf jeden Fall weiter beobachen, bisher läuft es:)


    BTW: Ist hier zwar OT, aber vieleicht ists nur ne Kleinigkeit. Ist es Richtig das vdr-1.3.3 die Kanäle aktualisiert, obwohl man die Einstellung auf "nein" stehen hat? Und "EPG - Bevorzugte Sprachen" scheint nur die 1. Sprache abzuspeichern...


    Andy

  • Applied & waiting ....


    Joe

  • Erstes Ergebnis: nach ca. 60 Kanalwechsel: UPT-Error... :( Ich erhöhe mal die Wartezeit...


    Joe

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!