[1] MLD-5.x / Systems / WeTek Play / ring buffer overflows - xine Frontend
 

Offline Gottfried

  • Newbie
  • *
  • Posts: 6
    • View Profile
ring buffer overflows - xine Frontend
« on: March 08, 2016, 21:21:17 »
Hi,

ich habe eine Kombi mit Kodi (raspbmc, eben auf nem Raspi) und MLD-Server (auf der wetek - mld 5 stable) laufen und da gibt es noch ein paar Haken und Ösen. Der Raspi ist momentan nur Notbehelf, weil die HDMI-Ausgabe auf der wetek noch nicht verfügbar ist.

Da in dem Konstrukt nicht klar wird, wo ein Fehler herkommt, habe ich ein xine drangeklemmt und kann damit ein Problem reproduzieren:
 1. Nur einen Kanal anschauen - alles ist gut
2. Aufnahme starten -  etwas warten
3. Aufnahme zeitversetzt anschauen während die Aufnahme noch läuft

Nach wenigen Sekunden gerät xine ins Stocken:
== xine war hier verbunden
Mar  8 21:04:51 (MLD-WeTek) user.info vdr: [11564] replay /data/tv/In_aller_Freundschaft_(720)/2016-03-08.21.00.1-0.rec
Mar  8 21:04:51 (MLD-WeTek) user.info vdr: [11628] [xine..put] Detected video size 1280x720
Mar  8 21:05:42 (MLD-WeTek) user.err vdr: [11581] ERROR: 1 ring buffer overflow (1 bytes dropped)
Mar  8 21:05:48 (MLD-WeTek) user.err vdr: [11581] ERROR: 43081 ring buffer overflows (8099228 bytes dropped)
Mar  8 21:05:56 (MLD-WeTek) user.info vdr: [11578] [xine..put] Closing connection 0
== xine weggeworfen
Mar  8 21:05:56 (MLD-WeTek) user.err vdr: [11581] ERROR: 28648 ring buffer overflows (5385824 bytes dropped)
Mar  8 21:05:58 (MLD-WeTek) user.err vdr: [11620] ERROR: skipped 187 bytes to sync on start of TS packet
== xine neu gestartet
Mar  8 21:06:01 (MLD-WeTek) user.info vdr: [11578] [xine..put] Client 0 connected: 172.16.0.154:44471
Mar  8 21:06:01 (MLD-WeTek) user.info vdr: [11578] loading /etc/vdr/plugins/xineliboutput/allowed_hosts.conf
Mar  8 21:06:01 (MLD-WeTek) user.info vdr: [11578] [xine..put] Client 1 connected: 172.16.0.154:44472
Mar  8 21:06:01 (MLD-WeTek) user.info vdr: [11578] loading /etc/vdr/plugins/xineliboutput/allowed_hosts.conf
Mar  8 21:06:24 (MLD-WeTek) user.err vdr: [11628] ERROR: skipped 187 bytes to sync on start of TS packet
Mar  8 21:07:55 (MLD-WeTek) user.err vdr: [11581] ERROR: 15763 ring buffer overflows (2963257 bytes dropped)
Mar  8 21:08:01 (MLD-WeTek) user.err vdr: [11581] ERROR: 41581 ring buffer overflows (7817228 bytes dropped)
== xine weggeworfen
Mar  8 21:08:02 (MLD-WeTek) user.info vdr: [11578] [xine..put] Closing connection 0
Mar  8 21:08:07 (MLD-WeTek) user.err vdr: [11581] ERROR: 44021 ring buffer overflows (8275948 bytes dropped)

Die Aufnahme lief dann noch eine Weile weiter, und siehe da - die Fehler sind weiterhin da:
Mar  8 21:08:39 (MLD-WeTek) user.info vdr: [11885] EPGSearch: search timer update finished
Mar  8 21:26:17 (MLD-WeTek) user.err vdr: [11895] ERROR: 1 ring buffer overflow (1 bytes dropped)
Mar  8 21:26:23 (MLD-WeTek) user.err vdr: [11895] ERROR: 38003 ring buffer overflows (7144564 bytes dropped)
Mar  8 21:26:28 (MLD-WeTek) user.err vdr: [11904] ERROR: skipped 187 bytes to sync on start of TS packet
Mar  8 21:32:46 (MLD-WeTek) user.err vdr: [11895] ERROR: 29359 ring buffer overflows (5519305 bytes dropped)
Mar  8 21:32:52 (MLD-WeTek) user.err vdr: [11904] ERROR: skipped 187 bytes to sync on start of TS packet

Allerdings deutlich seltener - siehe Zeitstempel.

Das gleiche Verhalten sehe ich mit dem Kodi (via vnsiserver) als Frontend. Auf der einen Seite das Problem mit was anschauen, während noch eine Aufnahme läuft. Und andererseits sporadische Aussetzer in Aufnahmen, die sonst im Grunde ok sind.

Auslastung Netz und CPU ist auf allen beteiligten Kisten unauffällig. Mich wundert, dass bisher recht wenig zu dem Problem in Zusammenhang mit der wetek im Forum aufgelaufen ist.

Kann mal jemand in den Code schauen? Die syslog-Meldung wird generiert in:
transfer.c: void cTransfer::Receive(uchar *Data, int Length)

Und der Buffer wird dort initialisiert:
transfer.c: #define VIDEOBUFSIZE  MEGABYTE(1)

(gefunden in: http://www.theoinf.tu-ilmenau.de/~streitdf/DVP/student_work/Anne_Preisz/doku/transfer_8c-source.html aus 2003 - inzwischen dürfte der Buffer größer sein...)

Gibt es vielleicht bereits eine Konfig-Option, um die Größe des Buffers testweise zu beeinflussen? Oder könnte mir mal jemand ein passendes binary mit einem größeren Buffer zukommen lassen?

Alternativ: Wie baue ich mir eine Build-Umgebung? :-)

Danke und Gruß,
Gottfried



« Last Edit: March 08, 2016, 22:05:34 by Gottfried »

Offline clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20527
    • View Profile
    • ClausMuus.de
ring buffer overflows - xine Frontend
« Reply #1 on: March 26, 2016, 19:02:50 »
Wie Du Dir eine Entwicklungsumgebung (auch für die WeTek) aufsetzt, steht hier: http://www.minidvblinux.de/wiki/mld/entwicklung/bpi402_entwicklungsumgebung

Claus
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 6.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 22TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline Gottfried

  • Newbie
  • *
  • Posts: 6
    • View Profile
ring buffer overflows - xine Frontend (Ursache erkannt)
« Reply #2 on: March 31, 2016, 08:59:45 »
Danke Claus!

Ich habe inzwischen die Ursache für die Probleme gefunden: Die Schreibrate auf meinem 128GB USB2 Stick ist viel zu gering - was klar nicht am USB2 liegt, sondern am Stick selbst. Liegt das /data Verzeichnis auf der SD-Karte (oder einer USB-HD), ist alles in Ordnung :-(

Fazit: ring buffer overflow => IO Pfad prüfen

Gottfried

[1] MLD-5.x / Systems / WeTek Play / ring buffer overflows - xine Frontend
 



Users Online Users Online

0 Members and 1 Guest are viewing this topic.