VDR version 2.7.7 freigegeben

  • Ich hatte den Patch aus #40 jetzt einige Tage ohne eine Meldung in Verwendung, aber heute fand ich das hier:

    Code
    Aug 14 17:29:59 raspi4 vdr: [13408] channel 7 (BR Fernsehen Süd HD) event Thu 14.08.2025 17:30-18:00 (VPS: 14.08. 17:30) 'Abendschau - Der Süden' status 2->4
    Aug 14 17:31:00 raspi4 vdr: [13429] ERROR: lock kept too long (1755185460 seconds)
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cRwLock::Unlock() calling CheckLockTime at thread.c:169 at cRwLock::Unlock() at thread.c:225
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cStateLock::Lock(cStateKey&, bool, int) at thread.c:794
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cTimers::GetTimersRead(cStateKey&, int) at timers.c:1298
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cSVDRPClientHandler::ProcessConnections() at svdrp.c:647
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cSVDRPClientHandler::Action() at svdrp.c:737
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cThread::StartThread(cThread*) at thread.c:323
    Aug 14 17:31:39 raspi4 vdr: [13412] SATIP: Idle timeout - releasing [device 2]

    Die Zahl von 1755185460 Sekunden erscheint nicht realistisch, kann sich also nur um einen Bug handeln. Unmittelbar vor und nach dieser Meldung ist allerdings nichts Ungewöhnliches im Log. Meine Vermutung ist, dass vielleicht lockTime nicht richtig initialisiert wurde, ich sehe aber nicht, wo das passieren könnte. Vielleicht mag der eine oder andere das ja mal kritisch begutachten. Ich überlege, den Patch fest einzubauen, würde aber natürlich vorher gerne sicherstellen, dass sowas nicht nochmal passiert.

  • 1755185460 == 14. August 2025 17:31:00 GMT+02:00, also time(NULL). D.h. t in CheckLockTime müsste 0 sein, was aber vorher geprüft wird?!

    Meine VDRs

    (SatIP Server) --- Kathrein Exip 418 ---
    (Server) --- HW: RPI5 --- SW: RPiOs, VDR 2.7.7 mit streamdev, satip/vtuner-ng, live, epgsearch, markad ---
    (Client 1) --- HW: RPI4 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (Client 2) --- HW: Radxa Rock 4 Plus - RK3399 --- SW: VDR*ELEC mit softhddevice-drm-gles ---
    (WIP) --- Tanix TX6, RPi5, RPi4, Odroid N2+, WetekPlay2 --- SW: VDR*ELEC mit softhddevice-drm-gles --

  • Pakete für Ubuntu 24.04 (für 22.04 und 20.04 dauert es noch) gibt es hier: https://launchpad.net/~seahawk1986-h…buntu/vdr-2.7.7

    Kannst Du bitte das Zappilot Plugin unter Jammy mal noch ansehen? Hab von 2.7.5 zu 2.7.7 gewechselt und da ist es nicht vorhanden / fehlt. Danke.

    Gruß utiltiy

    meine VDR

    vdr03: Antec Remote Fusion, Intel DH67BL, Celeron G1620, GT630, 2x 2GB DDR3 - Hynix, SDA SATA 40GB, SDB SATA 1.5TB, L4M Cine S2 [yaVDR/vdr4arch]
    vdr04: Antec Remote Fusion Micro, Intel DH67BL, Celeron G550, GT630, 2x 2GB DDR3 - Kingston, SDA SATA 160GB WD, SDB SATA 3TB WD Red, L4M Cine S2 [yaVDR/vdr4arch]


    VDR Projects

  • Ich habe zaphistory und zappilot gerade hochgeladen.

    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • kls ,

    ich bin im Moment dabei meine alten Aufnahmen etwas zu bereinigen (vor dem TS-Format) und habe dabei festgestellt, das zwar der Schnitt mit der aktuellen Version noch funktioniert, die "info.vdr" Datei aber nicht angelegt wird. Es wird stattdessen eine "info" Datei angelegt, die kaum Informationen enthält:

    z.B. nur noch:
    E 0 0 0 FF FF 
    F 25 
    P 99 
    L 99 
    O 0

    Sollte das noch gefixt werden?

    Nach einem händischen Kopieren der "info.vdr" Datei in das Verzeichnis der geschnitten Aufnahme wird nach einem VDR-Neustart die Information wieder angezeigt, ein Neueinlesen der Aufnahmen reicht aber nicht.

    Grüße
    kamel5

    VDR 2.7.7: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 10TB HD mit ZFS RaidZ, GT1030, Fedora 42 Kernel 6.17 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • ein Neueinlesen der Aufnahmen reicht aber nicht

    das war leider schon immer so.

    Mein VDR

    VDR1 Mediaportal mit QVT-Board, Intel 810 Chipsatz, Pentium III 1,1 Ghz, 256 Mb Ram, WDC WD5000AAKB, DVB-S TT 1.5, Nova-S, Digidish 33, Gentoo Kernel 2.6.31, VDR 1.4.7
    VDR2 Asrock M3N78D, AMD Phenom II X6 1055T, 8 Gb Ram, Geforce GTX 950, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    VDR3 MC-1200, GA-B85M-HD3, Celeron G1840, Quadro P400. 4G Ram, CineS2 6, DuoFlex S2, WinTV dualHD, Gentoo Kernel 5.10, VDR 2.6.0, softhddevice
    TV TX-37LZD85F, AV VSX-520D - Consono 35


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • das war leider schon immer so.

    :) Das mag sein, ich weiß aber nicht ob das kls schon so bekannt ist. Wenn es so bleibt dann kann ich auch damit leben. Ich habe mich in der Vergangenheit nur gewundert, das nach einem Schnitt einer alten Aufnahme, keine Info mehr angezeigt wurde. Heute habe ich mir das dann mal genauer angesehen...

    Wenn der Timestamp der info-Datei neuer als das letzte Einlesen ist, wird sie mit neueren VDR-Versionen erneut eingelesen. Ob das auch für die ältere info.vdr gilt müsstest Du mal ausprobieren.

    Ja, mit dem neueren Format ("info" Datei) funktioniert es, nur mit dem alten nicht.

    Grüße
    kamel5

    VDR 2.7.7: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 10TB HD mit ZFS RaidZ, GT1030, Fedora 42 Kernel 6.17 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Da fehlt wohl noch irgendwo die Sonderbehandlung für alte info.vdr-Files. Wenn das jemand ergänzen mag, übernehm ich das gerne.

    Ok, im Anhang mal ein Patch dazu. Ich habe versucht, das so wenig wie möglich invasiv zu machen. Nach einem Schnitt wird damit die "info.vdr"-Datei richtig angelegt und auch aktualisiert. Zusätzlich wird noch die Zeile mit den "Errors" eingetragen. Ich weiß aber nicht, ob bei alten Aufnahmen Fehler gezählt werden, da wird wahrscheinlich immer "0" drin stehen.

    Der Patch enthält auch eine Änderung in "cRecordingInfo::Write()", der die Reihenfolge von "channelName" und "channelID" gemäß der alten "info.vdr"-Datei zurückschreibt. Möglicherweise könnte man diese Änderung auch lassen, denn die Reihenfolge scheint beim Einlesen keine Rolle zu spielen.

    Ich konnte bei meinen Tests keine grundsätzlichen Probleme mit dem Patch feststellen, das schließt aber nicht aus, das ich etwas übersehen habe.

    Grüße
    kamel5

  • Zusätzlich wird noch die Zeile mit den "Errors" eingetragen. Ich weiß aber nicht, ob bei alten Aufnahmen Fehler gezählt werden, da wird wahrscheinlich immer "0" drin stehen."

    In index.vdr werden keine Fehler gezählt, da wären auch keine Bits mehr frei in tIndexPes, deshalb gibts das nur bei tIndexTs, also im TS-Format.
    "0" heißt ja fehlerfrei und das weiß man bei PES-Aufnahmen nicht, deshalb sollte das beim Default -1 (für 'unknown') bleiben wie es auch in cRecordingInfo initialisiert wird.
    Dann kann man IMHO die Errors in info.vdr auch gleich weglassen. Ansonsten: :thumbup:

  • Was sollen die Änderungen in den *.po-Dateien?

    Sorry, das ist mir durchgerutscht. Da gibt es ja keine Änderungen.

    Dann kann man IMHO die Errors in info.vdr auch gleich weglassen.

    Sehe ich auch so.

    Ok, anbei der aktualisierte Patch, jetzt ohne po-Dateien :) und ohne Rückschreiben des Errorfeldes.

    Der Patch enthält auch eine Änderung in "cRecordingInfo::Write()", der die Reihenfolge von "channelName" und "channelID" gemäß der alten "info.vdr"-Datei zurückschreibt.

    Diese Änderung habe ich wieder entfernt, ich weiß nicht mehr, wo ich das her hatte, vielleicht eine Fehlinterpretation.

    Grüße
    kamel5

  • kls ,

    kannst Du Dir bitte noch folgenden zusätzlichen Patch ansehen.

    Durch die Änderungen von "0001-Fix-cutting-off-PesRecording-v2.patch" scheint es jetzt so, das die Prüfung in cRecording::cRecording(), ob die Info-Datei existiert, nicht mehr nötig ist.

    Das:

      FILE *f = fopen(InfoFileName, "r");
      if (f) {
         if (!info->Read(f))

    könnte man auch durch:

    if (info->Read()) {

    ersetzen, da in "info->Read()" auch geprüft wird, ob die Datei vorhanden ist.

    Update:
    Der angehängte Patch funktioniert so nicht. Ich habe ihn erst einmal gelöscht. Wenn die aktuell laufende Aufnahme bei mir beendet ist, hänge ich einen neuen Patch an.

    Grüße
    kamel5

    VDR 2.7.7: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 10TB HD mit ZFS RaidZ, GT1030, Fedora 42 Kernel 6.17 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

    Edited 2 times, last by kamel5 (August 27, 2025 at 2:27 PM).

  • Danke euch, ein paar alte Aufzeichnungen im PES-Format fliegen bei mir auch noch herum. Manchmal werden die nicht richtig abgespielt, aber vielleicht wird es mit dem Patch ja besser.

    Noch eine Beobachtung zu Aufzeichnungsfehlern bzw. eine Frage an kls: Vor ein paar Tagen wurden bei einer HD-Aufnahme einige Aufzeichnungsfehler detektiert. Diese wurden in der Info-Datei vermerkt und sind an der im Index markierten Stelle durch Klötzchen im Bild auch deutlich sichtbar. Beim Schneiden sind die Fehlerstände in der Info-Datei und auch die Fehlermarkierung im Index erhalten geblieben. Nach Reindizierung der Aufzeichnung sind die Fehler im Datenstrom logischerweise noch vorhanden, die Fehlermarkierungen im Index und damit auch die Zahl der Fehler in der Info-Datei sind aber verschwunden – und nach erneutem Schneiden bleiben sie es auch.

    Mit vdr-checkts werden in der Aufzeichnung keine Fehler erkannt, was darauf hindeutet, dass die Fehler nicht aus Unterbrechungen des Datenstroms (Paketfolge), sondern aus Paketen mit fehlerhaften Daten (Prüfsumme) resultieren. Beim Schneiden werden solche Fehler also scheinbar übernommen, bei der Reindizierung wohl aber nicht.

    kls, kannst du bitte mal nachsehen, inwiefern sich Schneiden und Reindizierung unterscheiden und ob sich die Beobachtung anhand des Codes erklären lässt? Danke dir!

    PS: Ich muss mich dahingehend korrigieren, dass nach dem Schneiden der Fehler in der Info-Datei vermerkt war (siehe die Korrektur oben). Auch nach dem Schneiden der originalen Aufzeichnung ist der Fehler nur im Index vermerkt bzw. in der Fortschrittsanzeige beim Abspielen sichtbar gewesen. Und ich erinnere mich nicht, dass für die ungeschnittene Aufzeichnung im OSD in der Übersicht ein Fehler anzeigt wurde.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.7 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, satip, screenshot, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

    Edited 2 times, last by SHofmann: Korrektur zur Propagierung der Fehler (August 28, 2025 at 1:11 PM).

  • Manchmal werden die nicht richtig abgespielt, aber vielleicht wird es mit dem Patch ja besser.

    Die Patche von mir haben da eigentlich keinen Einfluß drauf, da geht es nur um die "info.vdr"-Datei.

    Ein Problem, wenn es nicht richtig abgespielt wird, könnte auch die "index.vdr"-Datei sein. Mit der aktuellen VDR-Version kann die aber leider nicht mehr neu erzeugt werden. Du kannst ja mal probieren, die "index.vdr"-Datei umzubenennen und dann nochmal abzuspielen. Dann geht zwar kein "Vor- und Zurückspulen", wenn es dann aber richtig abgespielt wird, liegt es wahrscheinlich daran.

    Grüße
    kamel5

    VDR 2.7.7: ASUS Prime X470-PRO, Ryzen 7 5700X, 64GB, 10TB HD mit ZFS RaidZ, GT1030, Fedora 42 Kernel 6.17 X86_64, Devicebonding 2 x 1 auf 2, TT6400, DVBSky S952 V3

    Git-Repo: gitlab.com/kamel5

  • Stimmt, die Daten aus der Info-Datei werden zum Abspielen vermutlich gar nicht benötigt.

    Zum Reindizieren von PES-Aufzeichnung (also zur Neuerstellung von info.vdr) gibt es hier noch das externe Programm genindex.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.7 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, satip, screenshot, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • Ich hatte den Patch aus #40 jetzt einige Tage ohne eine Meldung in Verwendung, aber heute fand ich das hier:

    Code
    Aug 14 17:29:59 raspi4 vdr: [13408] channel 7 (BR Fernsehen Süd HD) event Thu 14.08.2025 17:30-18:00 (VPS: 14.08. 17:30) 'Abendschau - Der Süden' status 2->4
    Aug 14 17:31:00 raspi4 vdr: [13429] ERROR: lock kept too long (1755185460 seconds)
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cRwLock::Unlock() calling CheckLockTime at thread.c:169 at cRwLock::Unlock() at thread.c:225
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cStateLock::Lock(cStateKey&, bool, int) at thread.c:794
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cTimers::GetTimersRead(cStateKey&, int) at timers.c:1298
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cSVDRPClientHandler::ProcessConnections() at svdrp.c:647
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cSVDRPClientHandler::Action() at svdrp.c:737
    Aug 14 17:31:02 raspi4 vdr: [13429] ./vdr cThread::StartThread(cThread*) at thread.c:323
    Aug 14 17:31:39 raspi4 vdr: [13412] SATIP: Idle timeout - releasing [device 2]

    Die Zahl von 1755185460 Sekunden erscheint nicht realistisch, kann sich also nur um einen Bug handeln. Unmittelbar vor und nach dieser Meldung ist allerdings nichts Ungewöhnliches im Log. Meine Vermutung ist, dass vielleicht lockTime nicht richtig initialisiert wurde, ich sehe aber nicht, wo das passieren könnte. Vielleicht mag der eine oder andere das ja mal kritisch begutachten. Ich überlege, den Patch fest einzubauen, würde aber natürlich vorher gerne sicherstellen, dass sowas nicht nochmal passiert.

    Das ist bei mir jetzt auch aufgetreten:

    Code
    2025-09-22T16:04:54.569511+02:00 rpi4s vdr: [1144632] ERROR: lock kept too long (1758549894 seconds)
    2025-09-22T16:04:55.201496+02:00 rpi4s vdr: [1144632] /usr/bin/vdr cRwLock::Unlock() calling ?? at ??:0
    2025-09-22T16:04:55.201734+02:00 rpi4s vdr: [1144632] /usr/bin/vdr cSchedules_Lock::~cSchedules_Lock() calling ?? at ??:0
    2025-09-22T16:04:55.201817+02:00 rpi4s vdr: [1144632] /usr/bin/vdr main calling ?? at ??:0

    Ich denke, da rufen 2 Prozesse fast gleichzeitig CheckLockTime auf.

    In Zeile 3 if (t > 0) ist t noch größer 0, und in Zeile 4 int d = time(NULL) - t ist t == 0. Also hat ein anderer Prozess zwischen Zeile 3 und 4 t = 0 gesetzt.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!