[Octopus NET Pro und Sat>IP] Fehler beim Umschalten (Tele 5 SD --> kabel eins SD)

  • Ich habe mal in satip Trace eingeschaltet und ein Log angehängt.

    Das Log endet mit dem Fehler.


    Der Fehler tritt so gegen Nov  7 20:19:10 auf.


    Aber ich erkenne da nicht was da schief laufen könnte.


    Nov 7 20:19:10

    Nov 7 20:19:1

  • Da kommt nach dem umschalten noch Mist vom SatIP plugin. Das führt dann dazu das ffmpeg der Meinung ist das das neue Video eine Auflösung von 480x576 hat und danach ist dann alles falsch.

    Code
    Nov  7 20:19:11 vdr vdr: video: create decoder 16bit?=0 480x576 old     720 576
  • Da kommt nach dem umschalten noch Mist vom SatIP plugin.

    Aber satip Plugin ändert nicht den Stream Payload oder die DVB Metadaten, kann es doch gar nicht, ist nur ein Input Device Plugin, und der SAT>IP Server auch nicht ... ?

    HowTo: APT pinning

  • Aber satip Plugin ändert nicht den Stream Payload oder die DVB Metadaten, kann es doch gar nicht, ist nur ein Input Device Plugin, und der SAT>IP Server auch nicht ... ?

    Alles richtig. Nur wenn ich versuche den neuen Stream an ffmpeg zum dekodieren zu geben dann meldet mir ffmpeg eine falsche Auflösung. Ich denke das beim Umschalten noch reste des alten Stream geliefert werden obwohl der vdr dem Ausgabeplugin schon gesagt hat das ein neuer Stream kommt.

  • Wie soll das gehen? Satip würfelt keine TS Pakete und VDR kann erst den Unterschied bemerken, wenn neue Pakete ankommen und dekodiert wurden..

  • Das der falsche Stream von satip ausgeliefert wurde, konnte ich gestern feststellen beim Umschalten von Kabel1 auf Tele5.

    Obwohl das VDR OSD meinte, ich schaue Tele5, lief Bild und Ton von Pro7Maxx der wohl mit bei Kabel1 auf dem Transponder liegt.

    Den hatte ich vorher aber gar nicht angewählt.


    Das Seltsame ist, dass scheinbar nur ich diese Problem habe.

    Das Gute ist aber das ich es reproduzieren kann...

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

  • Auf was steht in deiner setup.conf softhddevice.ClearOnSwitch?


    Folgendes steht dazu in der setup.conf:


    Code
    softhdcuvid.ClearOnSwitch = 1
    softhddevice.ClearOnSwitch = 1

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

  • heifisch : was ist, wenn Du eine Aufnahme von Tele5 abspielst und dann direkt (ohne die Wiedergabe vorher zu beenden) die Wiedergabe einer Aufzeichnung von Kabel 1 startest?

    Die laufende Wiedergabe sollte enden und die neue Wiedergabe starten. Im Prinzip nichts anderes als bei einem Kanalwechsel.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • heifisch : was ist, wenn Du eine Aufnahme von Tele5 abspielst und dann direkt (ohne die Wiedergabe vorher zu beenden) die Wiedergabe einer Aufzeichnung von Kabel 1 startest?

    Die laufende Wiedergabe sollte enden und die neue Wiedergabe starten. Im Prinzip nichts anderes als bei einem Kanalwechsel.

    Ich habe jetzt mit live abwechselnd das Abspielen der Aufnahmen gestartet ohne die vorige zu beenden.

    Da gibt es keine Probleme, auch keine Bildfehler.

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

    Einmal editiert, zuletzt von heifisch ()

  • Ich versuche mich gerade mit den Starten des Trace beim satip-Plugin.

    Kennt sich jemand aus, welches die sinnvollsten Einstellungen sind?


    Ich habe mal Folgendes versucht:

    svdrpsend PLUG satip TRAC 0x0003


    Da kommt schon eine ganze Menge, erkenne aber noch nichts Relevantes.

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

  • Bei dem fehlerhaften Umschalten vermisse ich das setPlayMode 0. Ausserdem kommen da 2 get_format Callbacks von ffmpeg. Wobei schon der erste die falsche Auflösung von 480x576 bringt. Da ist definitiv etwas falsch in der Umschaltsequenz aus Sicht des Ausgabeplugins.

  • Das hatte ich schon mit softhddevice-cuvid probiert. Da hatte ich beim Umschalten auch öfters Bildfehler

    Probier mal mit softhddevice.SoftStartSync = 3 (RE: [Announce] Softhddevice 2.0.0.)

  • Probier mal mit softhddevice.SoftStartSync = 3 (RE: [Announce] Softhddevice 2.0.0.)


    Danke, das teste ich bei Gelegenheit.

    Ich denke aber, das kann höchstens die Auswirkungen kaschieren.

    Das Problem kommt sicher nicht vom Ausgabe-Plugin.


    Die Tatsache, dass ich jetzt schon paar mal, beim Umschalten von Kabel1 auf Tele5 den Stream von Pro7Maxx zu sehen und zu hören bekommen habe, obwohl VDR meint ich wäre auf Tele5, legt doch sehr nahe, dass hier beim Tuning etwas schief geht.


    Jetzt, da ich den Fehler sehr sicher reproduzieren kann, würde ich gern die Ursache finden, so dass diese beseitigt werden kann.


    Ich versuche gerade mich mal in die Sat>IP Specs einzulesen um zu verstehen wie der Tuning-Vorgang erfolgt.


    Hier wird wohl bei der bestehenden Session der Kanalwechsel angestoßen:

    Code
    Nov  8 20:33:31 vdr vdr: [2786] SATIP1: void cSatipTuner::UpdateCurrentState(): Switching from tsLocked to tsSet [device 0]
    ...
    Nov  8 20:33:31 vdr vdr: [2786] SATIP1: bool cSatipRtsp::Play(const char*) (rtsp://192.168.139.201/stream=1?src=1&freq=12545&pol=h&ro=0.35&msys=dvbs&mtype=qpsk&plts=off&sr=22000&fec=56) [device 0]


    Und dann wechselt noch der Status hier:


    Code
    Nov  8 20:33:31 vdr vdr: [2786] SATIP1: void cSatipTuner::UpdateCurrentState(): Switching from tsSet to tsTuned [device 0]
    ...
    Nov  8 20:33:31 vdr vdr: [2786] SATIP1: void cSatipTuner::UpdateCurrentState(): Switching from tsTuned to tsLocked [device 0]


    Nur meldet jetzt der Sat>IP-Server den Status, oder wie geht das?


    Wenn ich zusätzlich zum Live-Bild eine Aufnahme auf einem anderen Transponder mache, dann wird eine neue Session aufgemacht:


    Code
    Nov  9 07:47:35 vdr vdr: [2788] SATIP1: bool cSatipRtsp::Setup(const char*, int, int, bool) (rtsp://192.168.139.201/?src=1&freq=12545&pol=h&ro=0.35&msys=dvbs&mtype=qpsk&plts=off&sr=22000&fec=56, 32836, 32837, 0) [device 1]


    Nun sieht es so aus, in dem Fall mit dem Bild von Pro7Maxx auf Tele5, dass der Kanalwechsel nicht korrekt erfolgt ist, aber das satip-Plugin davon ausgeht.

    Im Fall wenn es zu den Hängern kommt, ist der Stream einfach defekt der ffmpeg vorgeworfen wird. Das könnte ein Timing-Problem sein.


    Ich will mal schauen, ob ich mit tcpdump die Ereignisse einfangen kann, und ob man da etwas erkennen kann.

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

  • Man müsste jetzt genauer analysieren, wie das satip-Plugin überhaupt den Kanalwechsel macht. Es ist ja aus Sicht von vdr ein DVB device. Der Ablauf wird von vdr wie folgt vorgegeben: Erstmal wird über die Priority sowie über Provides...-Funktionen geprüft, ob das device den gewünschten Kanal bereitstellen kann. Das kann das satip-Plugin m.E. nur aufgrund der ihm beim Start übergebenen Parameter prüfen. Eine Abfrage an den satip-Server findet da m.E. nicht jedesmal statt.

    Das Beenden eines laufenden Streams sollte eigentlich in CloseDvr erfolgen. Das "Tunen" des neuen Kanals dann in SetChannelDevice. Danach wird dann mit OpenDvr der neue Stream geöffnet. Das basiert auf der DVB-Logik: Ein DVB device hat zwei unterschiedliche file descriptors, die unabhängig voneinander geöffnet und geschlossen werden können. Bei der Umsetzung für ein Plugin, das dem vdr analoge devices bereitstellt, bin ich deswegen halb verrückt geworden. Da gab es nämlich nur einen file descriptor. Wenn ich das in CloseDvr geschlossen habe, um den Stream zu beenden, lief der anschließende Versuch von SetChanneldevice, dort die Frequenz zu ändern, in einen Fehler. Und machmal ruft vdr OpenDvr zuerst auf (was dort automatisch zunächst einen CloseDvr auslöst...). Anfangs hatten wir deshalb darauf verzichtet, beim Kanalwechsel den Stream richtig zu beenden und einfach bei laufendem Stream den Kanalwechsel gemacht. Das führte mitunter zu genau solchen Problemen, dass im Buffer noch Reste vom alten Kanal waren. Später haben wir dann den eigentlichen Kanalwechsel in OpenDvr verlegt und dort eine Schleife eingebaut, die erstmal die Ausführung von CloseDvr abwartet.

    Ich habe nur kurz in die Sourcen des satip-Plugins geschaut und überblicke die Ablaufsteuerung noch nicht. Aber dass in OpenDvr zunächst das propylaktische CloseDvr fehlt, wie es vdr in dvbdevice.c macht, halte ich für problematisch.


    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Ich versuche mich gerade mit den Starten des Trace beim satip-Plugin.

    Kennt sich jemand aus, welches die sinnvollsten Einstellungen sind?

    Guck mal in log.h

    Je nach dem was du sehen willst, musst du die Werte addieren.

Jetzt mitmachen!

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