Die Version 3.0.12 ist auf vdr-plugin-markad verfügbar.
Sie behebt einen Bug im Erkennen der Audio Channel Marken, den ich in die 3.0.11 eingebaut habe. Sorry.
Die Version 3.0.12 ist auf vdr-plugin-markad verfügbar.
Sie behebt einen Bug im Erkennen der Audio Channel Marken, den ich in die 3.0.11 eingebaut habe. Sorry.
Alle Logos gelöscht. Die letzten drei Sendungen hatten wieder passende Start-Marken
Die Version 3.0.13 ist auf vdr-plugin-markad verfügbar.
Sie behebt einen Fehler bei der Berechnung der Timestamps im marks File bei HD Videos, bei denen Frames (z.B. aufgrund von Empfangsproblemen) fehlen.
Und wie immer: viele kleine Fehlerbereinigungen und Optimierungen.
Hallo kfb77,
habe da eben zufällig noch einen Lock-Fehler im Log gefunden, den es mehrfach in der Vergangenheit (immer dieselbe Stelle gibt):
Sep 28 16:43:28 vdr: [2852] stopping recording due to modification of channel 100 (...)
Sep 28 16:43:28 vdr: [3058] recording thread ended (pid=2852, tid=3058)
Sep 28 16:43:28 vdr: [2852] SendCaPmts CAM 1: [1] actives in CAM: 2 -> 1 (3 pids)
Sep 28 16:43:28 vdr: [2852] CAM 1: unassigned from device 2
Sep 28 16:43:28 vdr: [2852] NALU fill dumper: 1314622 of 23057021 packets dropped, 5%
Sep 28 16:43:28 vdr: [2852] buffer stats: 499516 (0%) used
Sep 28 16:43:28 vdr: [2852] timer 1 (100 1445-1705 '[..]') stop
Sep 28 16:43:28 vdr: [2852] removing /srv/vdr/video/local/[..]/2021-09-28.14.45.100-0.rec/.timer
Sep 28 16:43:28 vdr: [3672] EPGSearch: recdone thread started (pid=2852, tid=3672, prio=high)
Sep 28 16:43:28 vdr: [2852] markad: cStatusMarkAd::Recording(): index 0, pid 3061, filename /srv/vdr/video/local/[..]/2021-09-28.14.45.100-0.rec: recording stopped
Sep 28 16:43:28 vdr: [3672] EPGSearch: recdone thread ended (pid=2852, tid=3672)
Sep 28 16:43:28 vdr: [2852] --- begin invalid lock sequence report
Sep 28 16:43:28 vdr: [2852] 2920 - U - - - - - - - - U
Sep 28 16:43:28 vdr: [2852] 2920 - U - - - - - - - - U
Sep 28 16:43:28 vdr: [2852] 2924 - W - - - - - - - - L
Sep 28 16:43:28 vdr: [2852] 2924 - U - - - - - - - - U
Sep 28 16:43:28 vdr: [2852] 2924 - W - - - - - - - - L
Sep 28 16:43:28 vdr: [2852] 2924 - * - - W - - - - - L
Sep 28 16:43:28 vdr: [2852] 2924 - * - - U - - - - - U
Sep 28 16:43:28 vdr: [2852] 2924 - U - - - - - - - - U
Sep 28 16:43:28 vdr: [2852] 2920 - W - - - - - - - - L
Sep 28 16:43:28 vdr: [2852] 2920 - * - - W - - - - - L
Sep 28 16:43:28 vdr: [2852] 2920 - * - - U - - - - - U
Sep 28 16:43:28 vdr: [2852] 2920 - U - - - - - - - - U
Sep 28 16:43:28 vdr: [2852] 2852 R - - - - - - - - - L
Sep 28 16:43:28 vdr: [2852] 2852 U - - - - - - - - - U
Sep 28 16:43:28 vdr: [2852] 2852 R - - - - - - - - - L
Sep 28 16:43:28 vdr: [2852] 2852 U - - - - - - - - - U
Sep 28 16:43:28 vdr: [2852] 2852 - R - - - - - - - - L
Sep 28 16:43:28 vdr: [2852] 3672 R R - - - - - - - - L
Sep 28 16:43:28 vdr: [2852] 3672 U - - - - - - - - - U
Sep 28 16:43:28 vdr: [2852] 2852 R R - - - - - - - - L
Sep 28 16:43:28 vdr: [2852] 2852 invalid lock sequence: 1 Timers
Sep 28 16:43:28 vdr: [2852] full backtrace:
Sep 28 16:43:28 vdr: [3044] device 2 TS buffer thread ended (pid=2852, tid=3044)
Sep 28 16:43:28 vdr: [3043] buffer stats: 261884 (0%) used
Sep 28 16:43:28 vdr: [3043] device 2 receiver thread ended (pid=2852, tid=3043)
Sep 28 16:43:29 vdr: [2852] /usr/bin/vdr cStateLock::Lock(cStateKey&, bool, int) calling ?? at ??:0
Sep 28 16:43:29 vdr: [2852] /usr/bin/vdr cTimers::GetTimersRead(cStateKey&, int) calling ?? at ??:0
Sep 28 16:43:29 vdr: [2852] /usr/lib/vdr/plugins/libvdr-markad.so.2.4.7 cStatusMarkAd::RunningRecording() at status.cpp:494
Sep 28 16:43:29 vdr: [2852] /usr/lib/vdr/plugins/libvdr-markad.so.2.4.7 cStatusMarkAd::Recording(cDevice const*, char const*, char const*, bool) at status.cpp:766 at cStatusMarkAd::Recording(cDevice const*, char const*, char const*, bool) at status.cpp:699
Sep 28 16:43:29 vdr: [2852] /usr/bin/vdr cStatus::MsgRecording(cDevice const*, char const*, char const*, bool) calling ?? at ??:0
Sep 28 16:43:29 vdr: [2852] /usr/bin/vdr cRecordControl::Stop(bool) calling ?? at ??:0
Sep 28 16:43:29 vdr: [2852] /usr/bin/vdr cRecordControls::ChannelDataModified(cChannel const*) calling ?? at ??:0
Sep 28 16:43:29 vdr: [2852] /usr/bin/vdr main calling ?? at ??:0
Sep 28 16:43:29 vdr: [2852] /lib/x86_64-linux-gnu/libc.so.6 __libc_start_main at libc-start.c:342
Sep 28 16:43:29 vdr: [2852] /usr/bin/vdr _start calling ?? at ??:0
Sep 28 16:43:29 vdr: [2852] --- end invalid lock sequence report
Sep 28 16:43:29 vdr: [2852] --- THERE WILL BE NO FURTHER REPORTS UNTIL VDR IS RESTARTED!
Sep 28 16:43:29 vdr: [2852] markad: cStatusMarkAd::Continue(): index 0, pid 3061, filename /srv/vdr/video/local/[..]/2021-09-28.14.45.100-0.rec: resume markad process
Sep 28 16:43:29 vdr: epg2vdr: Recording of '(null)' has 'stopped' [/srv/vdr/video/local/[..]/2021-09-28.14.45.100-0.rec]
Sep 28 16:43:29 vdr: [2852] executing '/usr/lib/vdr/vdr-recordingaction after "/srv/vdr/video/local/[..]/2021-09-28.14.45.100-0.rec"'
Sep 28 16:43:29 vdr: epg2vdr: Info: Finished (2982) '[..]' (not complete! - recorded only 85%); VPS No
Sep 28 16:43:29 vdr: epg2vdr: Try to lookup timer with id 2982
Sep 28 16:43:29 vdr: epg2vdr: Found timer 2982
Alles anzeigen
Version ist noch 3.0.12.
Grüße,
Stefan
Danke für den Hinweis.
Version ist noch 3.0.12.
Egal, am Plugin hat sich schon lange nichts mehr geändert.
Sep 28 16:43:28 vdr: [2852] 2852 - R - - - - - - - - L
Sep 28 16:43:28 vdr: [2852] 2852 R R - - - - - - - - L
Ja, das ist ein Timer Lock, ohne den Channels Lock vorher freizugeben. Ich mache mich an die Suche ...
Kannst du das irgendwie reproduzieren ?
Ich habe mir das mal angeschaut, verstehe aber noch nicht, was hier schief läuft.
Es gibt nur eine Stelle im Code, die einen channels lock macht, und den Teil habe ich noch nie angefasst.
Bitte installiere mal den Branch "lock", und poste ein vollständiges syslog ab kurz vor dem Fehler.
Wichtig dabei ist, was machst du oder der VDR gerade, wenn die Meldung "markad: cSetupMarkAdList(): LOCK channels" im syslog auftaucht ?
Für eine einfache Überwachung hab ich ein kleines Skript gebastelt
#!/bin/bash
# invalid_lock.sh
# Stündlich ausführen via /etc/cron.hourly (Symlink ohne .sh)
#VERSION=210929
LOGDIR='/var/log' # System-Logdir
LOGFILE="${LOGDIR}/syslog" # Logdatei
printf -v DT '%(%F)T' -1 # 2020-09-09
if grep 'invalid lock' "$LOGFILE" > /tmp/~invalid_lock.txt ; then
# invalid lock gefunden!
[[ -e "${LOGDIR}/invalid_lock-${DT}.txt" ]] && exit # Max. ein mal pro Tag
cp -f /tmp/~invalid_lock.txt "${LOGDIR}/invalid_lock-${DT}.txt"
cp -f "$LOGFILE" "${LOGFILE}_$DT"
# Mail senden
{ echo "From: \"${HOSTNAME}\"<xxx@yyy.xx>"
echo "T0: xxx@yyy.xx"
echo 'Content-Type: text/plain; charset=UTF-8'
echo "Subject: [${HOSTNAME}] Invalid lock sequence"
echo "Details in ${LOGFILE}_$DT"
echo 'Datei /tmp/~invalid_lock.txt:'
cat /tmp/~invalid_lock.txt
} | /usr/sbin/sendmail root
fi
exit
Alles anzeigen
Die Mail-Funktion muss angepasst werden oder einfach löschen
MegaV0lt : danke, gute Idee.
Fourty2 : Ich bin ja nicht der ursprüngliche Entwickler, sondern habe das Plugin vor knapp 2 Jahren übernommen. Da ich selber keine VDR Oberfläche nutze, hat sich in der Zeit am Plugin kaum was geändert. Wie ich bei dem Problem von dir feststellen muss, kenne ich nicht mal alle Funktionen der Oberfläche.
Was ich durch Lesen des Codes rausgefunden habe: die Funktion, aus der der Channel Lock kommt, wird beim Drücken der blauen Taste (keine Ahnung, in welchem Kontext) und zeigt dann eine Liste an, die den Channel Namen enthält. Hat mir einer einen Tipp, wo ich das in der Oberfläche finden kann ?
Ich habe die Stelle gefunden: Unter den markad Plugin Einstellung kann man sich unter dem Punkt "nur Kanäle mit Logo scannen" eine Liste der im Cache vorhandenen Logos und deren zugehörigen Kanäle anzeigen lassen. Den Punkt habe ich normalerweise nicht, weil ich grundsätzlich ohne Logos im Cache arbeite.
Fourty2 : Kannst du das bestätigen, dass der invalid lock nur dann vorkommt, wenn du diese Funktion benutzt und gleichzeitig eine Aufnahme startet oder endet ?
Die Version 3.0.14 ist auf vdr-plugin-markad verfügbar.
Sie enthält einige Anpassungen für neue FTA Sender und geänderte Sendenamen.
Und wie immer: viele kleine Fehlerbereinigungen und Optimierungen.
Hallo,
ich habe leider seit Neuestem ein segfault bei einigen Aufnahmen.
Werden noch weitere Angaben benötigt um der Sache auf die Spur zu kommen?
Gruß
Heiko
Nein, ich glaube ich sehe schon, wo das Problem herkommt. Ich teste vor einem neuen Release mit ca. 2000 Aufnahmen, aber man kann wohl nie alle Sonderfälle abdecken.
Teste bitte mit dem Branch V03, müsste damit gefixed sein. Poste bitte auch wenn es funktioniert das Log File, die Marken in deinem Log sehen komisch aus.
Danke.
markad ist jetzt durchgelaufen, die Marken sehen aber wirklich seltsam aus.
Anbei noch ein log aus einer anderen Aufnahme, die vorher auch zum segfault führte.
Anmerkungen dazu:
markad.txt: Aus dem Log File werde ich nicht schlau, da würde ich mir gerne mal die Aufnahme anschauen. Kannst du mir ein tar auf das Aufnahmeverzeichnis machen und mir per PM einen Download Link senden ?
markad1.txt: Den SD Sender habe ich bei meinen Testaufnahmen vergessen, da ist nur die HD Variante drin. Das hochkant stehende Logo braucht eine Sonderbehandlung. Ich mache mir gerade eine Testaufnahme, Fix folgt.
markad1.txt: Fix ist im git (Branch V03), bitte nochmals testen, falls es eine Logo Start Marke gibt, müsste die jetzt erkannt werden.
markad1.txt: Fix ist im git (Branch V03), bitte nochmals testen, falls es eine Logo Start Marke gibt, müsste die jetzt erkannt werden.
Sieht etwas besser aus.
Die Start-Marke sitzt jedoch noch ein ganzes Stück vor dem Anfang.
Was wäre denn richtig ? Die hier ?
Sat Oct 2 14:27:10 [7209] DEBUG: mark at position 22676 type 0x51 at 0:15:07.08 inBroadCast 1
Die verwerfe ich aber, weil kurz später wieder ein Stop kommt:
Sat Oct 2 14:27:10 [7209] DEBUG: mark at position 24547 type 0x52 at 0:16:21.84 inBroadCast 0
Auch hier wäre es am einfachsten, wenn ich mir die Aufnahme runter laden könnte.
Auch hier wäre es am einfachsten, wenn ich mir die Aufnahme runter laden könnte.
Ok, wenn der eine Download fertig ist, stelle ich die Aufnahme bereit.
Dokumentationen mit Filmausschnitte, die horizontale oder vertikale Balken haben, macht mir das Erkennen sehr schwer. Ich habe da jetzt noch was optimiert und nun sieht es so aus:
0:15:12.15 ( 22814)* detected end of black screen ( 22814)*
1:48:00.08 (162007) detected start of black screen (162007)
Start stimmt, Ende ist zu spät. Das muss ich aber so lassen, weil ich keine verlässliche Marke für das Ende in dieser Aufnahme bekomme. Dann lieber zu spät, als das Ende abgeschnitten.
Das kannst du aber zukünftig selber verbessern: Die 3. Programme haben häufig keine Logo Unterbrechung beim Start und Ende, senden dafür aber ein recht zuverlässiges VPS Signal. Also entweder diese Programme mit VPS aufnehmen, oder in den markad Einstellungen VPS anmachen (und --vps bei markad Aufruf per Commandline, Doku gibt es im README). Damit zeichnet das markad Plugin die VPS Event auch bei einer "nicht VPS" Aufnahme auf und markad verwendet diese anschließend, wenn sie sinnvoll erscheinen und nichts besseres gefunden wurde ("VPS light").
Die zweite Aufnahme geht jetzt auch.
0:15:06.25 ( 22674)* moved start mark ( 22674) before logo start mark ( 22681) at 0:15:07.08, silence detected*
1:46:28.09 (159708) moved stop mark (159708) after logo stop mark (159705) at 1:46:28.20, black screen near silence detected
Der lange, dunkle Vorspann wurde fälschlicherweise als horizontale Balken erkannt und hat die korrekte Logo Start Marke überschrieben. Fix ist im git.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!