[softhddevice] Dropping frame/Duping frame - Lösung bzw. Bug entdeckt

  • Hi,


    ich habe mich ja immer mal wieder über die häufigen verdoppelten und übersprungenen Frames beschwert.


    Ich habe heute die GT630 Rev. 2 eingebaut, weil ich der Meinung war, dass die GT520 zu schwach ist.
    Die GT630 zeigt aber das gleiche Problem. Das hat mir jetzt keine Ruhe gelassen und ich bin auf die Suche gegangen.


    Jetzt glaube ich das eigentliche Problem gefunden zu haben.


    Irgendein Teil im Zusammenhang mit softhddevice reagiert darauf allergisch, wenn sich die Systemzeit ändert.
    Das ist ja nun grundsätzlich nichts Neues. Vor VDR 1.7.33 war das noch extremer, seit 1.7.33 wird die Systemzeit jetzt mit adjtime aktualisiert.


    Dadurch wird die Zeit in vielen winzig kleinen Schritten gesetzt. Aber selbst diese kleinen Änderungen an der Zeit bringen softhddevice aus dem Takt. Unnötigerweise werden hunderte Frames gedropt, oder verdoppelt.



    Workaround: Zeitsynchronisierung abschalten, bis der Bug gefixt ist.



    Gut, da das jetzt geklärt ist...


    :n8


    Christopher

  • Gut, da das jetzt geklärt ist...


    :tup


    Albert

  • Hallo Copperhead,
    bei mir hat die Gainward GT630 die Probleme mit der GT210 komplett beseitigt.
    Mit der GT210 gab es viele Dupped/dropped frames. Speziell wenn das OSD angezeigt wird.
    Auch war das OSD teilweise so langsam das es nicht bedienbar war.

    Grüße, Dieter :)

  • Das kann ich so nicht bestätigen, meine "NVS 300" die ja wie die G210 auf dem "GT218" basiert lief fehlerfrei. OSD bei mir bis heute "anthra-FSt" auf "vdr-plugin-text2skin" mit liquid-Logos, also nix wirklich Ressourcen-schonendes, H61/G440 ...


    Aber wenn man bei Euch einen Zusammenhang zwischen der Zeitsynchronisation und den Meldungen korrelieren kann, gehört das natürlich behoben, ein VDR ohne Zeitabgleich geht ja gar nicht ...


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Kommt schon, darum gehts ja gar nicht. Die G210 hatte ich auch noch mit 60Hz und 1360x768 in Betrieb.
    Das ist eben mein subjektiver Eindruck der Karte. Die Betriebsumstände waren aber auch nicht perfekt.


    Bitte, bitte, bitte zurück zum Thema.
    Ich hätte nämlich schon gerne einen VDR, bei dem ich die Zeit synchronisieren kann, ohne dass ich Frames verliere.

  • Ich hatte mir dieses Thema schonmal einmal angesehen.
    Aber ich habe keinen Fehler finden können. Außer die Audiodriftkorrektur sind die verwendeten Zeiten nur Schätzungen.
    Es macht also absolut nichts, wenn ich mal ein paar ms mehr oder weniger bekomme.


    Zum testen einfach alle CLOCK_REALTIME und CLOCK_MONOTONIC durch CLOCK_MONOTONIC_RAW ersetzen.
    Es gab irgendeinen Grund, warum ich nicht gemacht habe. Vielleicht war CLOCK_MONOTONIC_RAW neu?


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • CLOCK_MONOTONIC_RAW ist zumindest das Richtige.


    Code
    CLOCK_MONOTONIC_RAW (since Linux 2.6.28; Linux-specific)
          Similar  to  CLOCK_MONOTONIC, but provides access to a raw hard‐
          ware-based time that is not subject to NTP adjustments.


    Ich habe es gerade bei mir geändert. Jetzt rätsele ich erstmal, wie ich den VDR dazu zwinge, die Zeit zu verändern.


    Edit: Bisher scheint es besser zu funktionieren. Könnte softhddevice die Systemzeit nicht ganz außen vor lassen und gegen den Zeitstempel des Senders synchronisieren?

  • Das mache ich ja so. Die Systemzeiten die ich hole sind nur zum Schätzen, deshalb sollte die Änderungen von ntpd keine Rolle spielen.
    Wie gesagt "sollte", deshalb wenn es bei dir so besser geht, dann kann ich umbauen. Hatte dies schon als Bemerkung in den Sourcen stehen.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch


  • Und das funktioniert dann auch bei der Wiedergabe? ?(


    Die sind ja im Stream also auch in der Aufnahme.


    Unter anderem haben Video und Ton ihre eigenen Zeitstempel. Ich gehe davon aus, daß der Ton mit der richtigen Geschwindigkeit abgespielt wird und nehme die Tonzeitstempel als Basis um daran das Video anzupassen.


    Bei der Tondriftkorrektur, habe ich versucht die Ton und Bild Zeitstempel mit der Systemzeit abzustimmen und dann die Systemzeit als Basis zunehmen. Hat aber nicht so richtig gepasst und wenn man AC3 abspielt, kann man sowie nicht mehr gescheit eingreifen. Somit ist die Tondriftkorrektur mehr oder weniger nur eine reine Spielerei.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Soweit ich weiss, sind die pts im A/V Stream, also auch in einer Aufzeichnung.
    Das Problem tritt bei der Wiedergabe auf, wenn die pts auf die real vergehenden Zeit abgestimmt werden müssen.


    Copperhead, hattest du bei deinem Test das vergrösserte Zeitfenster für die Synchronisation drin (gab da mal einen Patch)?


    Edit: Johns war schneller.


    Eddit2: xine ist da weitaus komplexer und hat ein eigenes Metronom (Zeitticker). Deshalb treten manche Probleme, die softhddevice hat, in xine nicht auf, aber es ist auch komplizierter und verbraucht mehr Resourcen.

  • Zum Thema Zeitstempel/Takten habe ich mal prinzipielle Fragen, ich hoffe es ist nicht zu OT.


    Die Signalquelle sollte ja einen gemeinsamen Taktgeber für Video und Audio haben, die Zeitstempel für Audio und Video sollten also prinzipiell nur eine konstante Differenz haben.


    Ein ideales Wiedergabegerät hätte eine gemeinsame Taktquelle für Audio und Video, die vom einem der Timestamp-Streams synchronisiert werden sollte. Damit sollte es niemals zu Framedrops oder Framewiederholungen oder Audiokorrekturen kommen. Oder es hat getrennte Takte sowohl für Audio und Video, die von den entsprechenden Timestamps synchronisiert werden.


    Frage 1:
    Sind die Timestamps in den Stream von einem Normal abgeleitet? Wie ist die Genauigkeit?


    Frage 2:
    Wie ist das denn bei Grafikkarten? Wird die Bildfrequenz auf die Timestamps synchronisiert oder muss man bei Livestreams prinzipiell mit Framedrops/-wiederholungen rechnen?


    Frage 3:
    Sind bei TV-Geräten Audio- und Videotakt gekoppelt oder beide Takte durch die Timestamps nachgeregelt?


    Ich komme aus der Telekommunikation, wo ein enormer Aufwand bezüglich Taktsynchronisierung getrieben wird, und mich würde mal interessieren, ob das für "digitales Fernsehen" auch gemacht wird.


    Wolfgang

    MSI C847MS-E33, Cine S2 6.0, Zotac GT630 (GK208), dual boot
    Work: yaVDR 0.7 ansible Ubuntu 22.04. Backup: yaVDR 0.5 Ubuntu 12.06


  • Seit etwas unter einer Stunde läuft es jetzt.
    Wenn ich die verdoppelten Frames beim Start abziehe, sind es 22. Interessanterweise sind aber genauso viele gedroppt worden.


    Es ist auf jeden Fall besser. Perfekt ist es aber noch nicht. Ich hoffe ja immer noch darauf, dass die beiden Zähler irgendwann bei Null stehen bleiben.


    Gesendet von meinem Galaxy Nexus mit Tapatalk 2


  • Frage 1:
    Sind die Timestamps in den Stream von einem Normal abgeleitet? Wie ist die Genauigkeit?


    Da sollte alles drin stehen: http://en.wikipedia.org/wiki/Presentation_time_stamp
    90Khz für Ton und Bild. 27Mhz zum Synchronisieren.


    Zitat


    Frage 2:
    Wie ist das denn bei Grafikkarten? Wird die Bildfrequenz auf die Timestamps synchronisiert oder muss man bei Livestreams prinzipiell mit
    Framedrops/-wiederholungen rechnen?


    Das ist das Problem von Grafikkarten. Das man keine Frame genaue Ausgabe hat. Man muß mit der Geschwindigkeit sprich Bildfrequenz der
    Karte leben. Im Normalfall gibt es aber trotzdem keine Störungen und wenn schon sind die so selten, daß es keinem Auffällt.


    Zitat


    Frage 3:
    Sind bei TV-Geräten Audio- und Videotakt gekoppelt oder beide Takte durch die Timestamps nachgeregelt?


    Der Fernseher regelt gar nichts mehr, sondern macht es nur durch Bildverbesserer nur noch schlimmer.
    Gute DVB Receiver können Ton und Bildausgabe sychron ausgeben.


    Zitat

    Ich komme aus der Telekommunikation, wo ein enormer Aufwand bezüglich Taktsynchronisierung getrieben wird, und mich würde mal interessieren, ob das für "digitales Fernsehen" auch gemacht wird.


    Das Problem beim HTPC ist, daß man auf die Takte so gut wie keinen Einfluß hat. Es gab Videotreiber die, dies konnten. Bzw. auch ein paar Soundkarten wo man den Takt beeinflußen konnten. Im Moment ist mir aber nichts aktuelles bekannt.


    Deshalb mache ich mir gar keine Arbeit, die Zeitstempel mit dem System zusynchronisieren. Ich werte nur die Ton und Bild Zeitstempel aus und nehme dann den Ton als Master und pass daran das Bild an.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Seit etwas unter einer Stunde läuft es jetzt.
    Wenn ich die verdoppelten Frames beim Start abziehe, sind es 22. Interessanterweise sind aber genauso viele gedroppt worden.


    Es ist auf jeden Fall besser. Perfekt ist es aber noch nicht. Ich hoffe ja immer noch darauf, dass die beiden Zähler irgendwann bei Null stehen bleiben.


    Es kann immer noch VDPAU sprich die NVidiakarte Probleme mit den Zeitsprüngen haben.
    Habt ihr so schlechte RTC in eureren PCs, daß ihr immer nachstellen mußt?
    Ich lass beim Booten und einmal Nachts die Uhr per ntp stellen.


    Ansonsten kann streamdev auch noch ein paar ms verzögern.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

Jetzt mitmachen!

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