[epgsearch] VPS-Timer mit Dauer X Minuten wird ohne Aufnahme gelöscht wenn die Sendung nach X+N Minuten beginnt

  • Hallo Zusammen,

    habe für die Tagesschau einen epgsearch-2.4.3 Timer mit VPS.
    Gestern (04.07.) hatte die Tagesschau wegen Fußball 17 Minuten Verspätung.
    Da ich zufällig zugegen war konnte ich "Live" beobachten wie der Timer ohne Aufnahme einfach um 20:16 "verschwand"..

    Im vdr-Log gibt es nur folgendes:

    Code
    Jul  4 19:33:20 vdr vdr: [1467] timer 0 (1 2000-2015 VPS 'Tagesschau') set to event Fr. 04.07.2025 20:00-20:15 (VPS: 04.07. 20:00) 'Tagesschau'
    Jul  4 19:33:20 vdr vdr: [1467] timer 0 (1 2000-2015 VPS 'Tagesschau') set to event Fr. 04.07.2025 20:00-20:15 (VPS: 04.07. 20:00) 'Tagesschau'
    Jul  4 19:58:01 vdr vdr: [1407] timer 1 (1 2000-2015 VPS 'Tagesschau') entered VPS margin
    Jul  4 20:16:01 vdr vdr: [1407] timer 1 (1 2000-2015 VPS 'Tagesschau') set to no event
    Jul  4 20:16:01 vdr vdr: [1407] deleting timer 1 (1 2000-2015 VPS 'Tagesschau')
    • Ist das bekannt das VPS-Aufnahmen einfach nicht ausgeführt werden wenn die Startzeit nach dem Ende des regulären Timers liegt?
    • Wird das vom vdr oder von epgsearch ausgelöst?
    • Sollte nicht mindestens 30 Minuten oder die 1,5fache Sendungslänge auf den Start gewartet werden?

  • Joe_D July 5, 2025 at 9:56 AM

    Changed the title of the thread from “[epgsearch] VPS-Timer mit Dauer X Minuten wird ohne Aufnahme gelöscht wenn die Sendung nach X Minuten beginnt” to “[epgsearch] VPS-Timer mit Dauer X Minuten wird ohne Aufnahme gelöscht wenn die Sendung nach X+N Minuten beginnt”.
  • Ich würde sagen, das ist ein Fehler in VDR.

    Datei timers.c, Methode bool cTimer::Expired(void):

    Code
                  if (Schedule) {                                                                                                                                                                                 
                     for (const cEvent *e = FirstEvent; e; e = Schedule->Events()->Next(e)) {                                                                                                                     
                         if (e->Vps() == StartTime()) {                                                                                                                                                           
                            ExpireTime = e->EndTime() + EXPIRELATENCY;                                                                                                                                            
                            dsyslog("timer %s is waiting for next VPS event %s", *ToDescr(), *e->ToDescr());                                                                                                      
                            // no break here - let's play it safe and look at *all* events                                                                                                                        
                            }                                                                                                                                                                                     
                         }                                                                                                                                                                                        
                     }                                                                                                                                                                                            

    Der Vergleich e->Vps() == StartTime() ist hier falsch. StartTime() gibt die event->StartTime() zurück. Korrekt wäre der Vergleich mit der Timer->vps_time(), die unabhängig vom Event ist.


    kls , kannst Du Dir das bitte mal anschauen?

  • Hallo Zusammen,

    habe für die Tagesschau einen epgsearch-2.4.3 Timer mit VPS.
    Gestern (04.07.) hatte die Tagesschau wegen Fußball 17 Minuten Verspätung.
    Da ich zufällig zugegen war konnte ich "Live" beobachten wie der Timer ohne Aufnahme einfach um 20:16 "verschwand"..

    Das hatte ich auch schon mehrfach und auch schon hier gepostet.
    Bisher wusste niemand eine Lösung.

    VDR zwei drei
    • VDR 01 (Server): 2.7.5/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.7.5 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Der Vergleich e->Vps() == StartTime() ist hier falsch. StartTime() gibt die event->StartTime() zurück. Korrekt wäre der Vergleich mit der Timer->vps_time(), die unabhängig vom Event ist.

    Im Prinzip gebe ich dir Recht (da ist sicher Handlungsbedarf).
    Allerdings wurde der von dir zitierte Code eingebaut um sicherzustellen, dass mehrere Events hintereinander mit der gleichen VPS-Zeit aufgezeichnet werden. Es werden hier alle Events nach dem aktuellen untersucht.
    Selbst wenn über eine cTimer::VpsTime()-Funktion der "richtige" Event gefunden wird, bringt das hier nichts, wenn der Sender die tatsächliche EndTime() des Events nicht "nachzieht".

    Möglicherweise wäre das hier der "richtige" Fix:

    Joe_D Kannst du bitte die Log-Einträge aus #1 um die Zeilen mit
    channel 1 (Das Erste HD) event ... status ...
    ergänzen? Bitte bis zu der Zeit, wo die Tagesschau tatsächlich geendet hat (falls möglich).

  • kls , Du hast recht, wir müssen hier 2 Probleme lösen.

    a) Der Sender macht keinen Update der event Zeiten, das sollte Dein Fix aus #4 lösen

    b) StartTime() gibt bei VPS Timern nicht die VPS Zeit zurück, sondern die event->StartTime(), die manchmal mit der VPS Zeit übereinstimmt. Manchmal aber auch nicht.

    b) Könnte mit

    gelöst werden. Man könnte auch rückwärts durch Schedule->Events() loopen:

    Das ist jetzt aber Geschmacksache, und kein Fehler.

  • Joe_D Kannst du bitte die Log-Einträge aus #1 um die Zeilen mit
    channel 1 (Das Erste HD) event ... status ...
    ergänzen? Bitte bis zu der Zeit, wo die Tagesschau tatsächlich geendet hat (falls möglich).
    Ich würde das gerne noch verifizieren, bevor ich das einbaue.

  • kls .. sieht dann so aus:

    Code
    Jul  4 18:10:28 vdr vdr: [1440] channel 1 (Das Erste HD) event Fr. 04.07.2025 17:15-20:00 (VPS: 04.07. 17:15) 'UEFA Frauen-Europameisterschaft Schweiz 2025: Dänemark - Schweden' status 0->4
    Jul  4 19:33:20 vdr vdr: [1467] timer 0 (1 2000-2015 VPS 'Tagesschau') set to event Fr. 04.07.2025 20:00-20:15 (VPS: 04.07. 20:00) 'Tagesschau'
    Jul  4 19:33:20 vdr vdr: [1467] timer 0 (1 2000-2015 VPS 'Tagesschau') set to event Fr. 04.07.2025 20:00-20:15 (VPS: 04.07. 20:00) 'Tagesschau'
    Jul  4 19:58:01 vdr vdr: [1407] timer 1 (1 2000-2015 VPS 'Tagesschau') entered VPS margin
    Jul  4 20:16:01 vdr vdr: [1407] timer 1 (1 2000-2015 VPS 'Tagesschau') set to no event
    Jul  4 20:16:01 vdr vdr: [1407] deleting timer 1 (1 2000-2015 VPS 'Tagesschau')
    Jul  4 20:17:21 vdr vdr: [1446] channel 1 (Das Erste HD) event Fr. 04.07.2025 17:15-20:00 (VPS: 04.07. 17:15) 'UEFA Frauen-Europameisterschaft Schweiz 2025: Dänemark - Schweden' status 4->1
    Jul  4 20:17:21 vdr vdr: [1446] channel 1 (Das Erste HD) event Fr. 04.07.2025 20:00-20:15 (VPS: 04.07. 20:00) 'Tagesschau' status 0->4
    Jul  4 20:32:45 vdr vdr: [1446] channel 1 (Das Erste HD) event Fr. 04.07.2025 20:00-20:15 (VPS: 04.07. 20:00) 'Tagesschau' status 4->1

Participate now!

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