Was ist eigendlich... mit OSDTeletext und OSDPIP

  • Mit 'tut' meine ich das es funktioniert.


    Auf meinem Bastelrechner hab ich vdr-1.5.17 mit dvb-c
    Das "page not found" kommt manchmal, dann dauert es zwei/drei Sekunden und die Seite wird angezeigt. Hab eben extra die Dateien im /vtx Verzeichnis gelöscht und nochmal probiert.

  • Also das ist mein erster Beitrag hier. Benutze VDR aber dank diverser Hilfestellungen aus dem Board und anderen Quellen seit 2002 recht erfolgreich.
    Mit dem Teletext Plugin hatte ich zusammen mit der stabilen VDR Version 1.2.6 wenig Probleme.


    Seit ich mich dann vor einigen Monaten entschlossen habe, die Version 1.5.XX hochzuziehen, konnte ich zwar das Teletext Plugin mit Hilfe das Patches zum Laufen bringen, habe aber die selben Probleme, wie hier beschrieben:
    Beim Umschalten wird der Teletext nicht von allen Transpondern empfangen.


    Dazu kurz noch eine Beschreibung meines Systems: 2 x FF-DVB-S (1 x TT 1.3; 1 x Hauppauge 2.1), VDR 1.6, suse 10.3, diverse Plugins u.a. femon


    Dabei ist mir folgendes aufgefallen:
    Während bei der alten Version 1.2.6 immer die primäre DVB-S Karte zum Empfang verwendet wurde, wird bei den aktuellen Versionen die aktive DVB_S Karte, mit der empfangen wird, beim Transponderwechsel meist zwischen den beiden Karten hin und her geschaltet.
    Mit dem Plugin "femon" kann ich mir über OSD anzeigen lassen, mit welcher DVB-S Karte gerade empfangen wird.
    Während die EPG Daten immer von der richtigen Quelle eingesammelt werden, funktionieren die Teletext Daten nur dann, wenn die primäre DVB-S Karte gerade aktiv ist, während beim Emfang über die sekundäre Karte keine Teletext Daten vorhanden sind.
    Ausnahme, es sind noch Daten im Teletext Cache vorhanden, das erkannt man aber daren, dass die Uhrzeit der Textseiten nicht aktualisiert wird.
    Das Teletext Plugin ist ja auch schon etwas älter und vielleicht liegt es daran, dass dieses Umschalten der Quellen noch nicht berücksichtigt wurde.


    Ich muss mir natürlich die Frage gefallen lassen, weshalb ich zwei FF-Karten verwende, aber ich hatte sie nun mal schon. Außerdem gehe ich davon aus, dass bei Verwendung einer FF- und einer Budged-Karte genau so zwischen den beiden Front-Ends umgeschaltet wird.

    Leider bin ich keine große Leuchte im Interpretieren und Modifizieren der Sourcen, sonst hätte ich sicher schon versucht, der Sache auf den Grund zu gehen.


    Vielleicht kann ja einer der Experten damit etwas anfangen, um dem Thema Abhilfe zu verschaffen.


    Viele Grüße


    Harald

  • Hm hab grad ma kurz den Code überflogen und in txtrec.c Zeile 532 is ne interesannte Abfrage über if(DEvice->IsPrimaryDevice())

    In der steht die komplett funktion ChannelSwitch drin.


    DAs könnte das Problem sein. Kannich aber grad net testen. Morgen evtl


  • Ich denke das war der entscheidende Hinweis um den Bug zu finden. Danke dafür Harald. Gibt es jemand der sich gut genug mit C auskennt um das auszumerzen?

  • In der Tat war das eine perfekte Fehleranalyse von Harald. Leider werden C-Kenntnisse nicht ausreichen, man muss auch den VDR sehr gut kennen, z.B. was ein PrimaryDevice ist und was der Unterschied zum ActualDevice ist. Derzeit wird der Ttxt-Receiver wohl immer am Primarydevice festgemacht, aber kann man ihn einfach an einen anderen Device dranhängen? Laufen dann mehrere Receiver-Instanzen gleichzeitig? Kommen die sich auch nicht in die Quere?? Fragen über Fragen ...

  • Ich kann die bisherigen Beobachtungen bestätigen, das OSDTT-Plugin bewirkt u.a. dass VDR beim Kanalwechsel oft mal die zweite Karte im Transfermodus verwendet, statt die primäre Karte auf den gewünschten Kanal zu schalten. Ich vermute auch, dass das die Ursache für den zeitweisen Ausfall des Empfangs ist.


    Meine bisherige Vermutung ist, dass der zusätzliche Teletext-Datenstrom beim Kanalwechsel dazu führt, dass VDR glaubt, die aktuelle Karte wäre noch anderweitig in Benutzung, und könnte nicht auf einen anderen Kanal schalten. Ich erinnere mich auch schwach an Änderungen in VDR bezüglich der Kanalpriorität und wann ein solcher Datenstrom ignoriert wird, bin aber bisher nicht dazu gekommen, mich weiter damit zu beschäftigen.


    Gruß,


    Udo

  • Hab gerade mal das OSDTeletext Plugin deaktiviert, um zu sehen, ob das Umschalten zwischen den beiden Karten durch das Plugin ausgelöst wird.
    Aber auch ohne das Plugin wird bei mir bei jedem Frequenzwechsel das aktive Front-End zwischen primärer und sekundärer Karte umgeschaltet.
    Ich glaube nicht, dass das OSDTT Plugin das Toggeln zwischen den Karten verursacht.


    Ach die durchgeleiteten Teletext Daten am Fernsehempfänger erhalte ich nur dann, wenn die primäre Karte aktiv ist. Bei der sekundären Karte erhalte ich zwar auch eine Textseite aus dem Puffer, aber die stammt zum Teil von einem falschen Sender und die Zeitanzeige steht still.

  • Zitat

    Original von Urig
    Ich kann die bisherigen Beobachtungen bestätigen, das OSDTT-Plugin bewirkt u.a. dass VDR beim Kanalwechsel oft mal die zweite Karte im Transfermodus verwendet, statt die primäre Karte auf den gewünschten Kanal zu schalten. Ich vermute auch, dass das die Ursache für den zeitweisen Ausfall des Empfangs ist.


    Meine bisherige Vermutung ist, dass der zusätzliche Teletext-Datenstrom beim Kanalwechsel dazu führt, dass VDR glaubt, die aktuelle Karte wäre noch anderweitig in Benutzung, und könnte nicht auf einen anderen Kanal schalten. Ich erinnere mich auch schwach an Änderungen in VDR bezüglich der Kanalpriorität und wann ein solcher Datenstrom ignoriert wird, bin aber bisher nicht dazu gekommen, mich weiter damit zu beschäftigen.


    Udo


    Habe mit 1.7 die gleichen Probleme, Teletext empfange ich nur zuverlässig auf dem Startkanal. Wenn ich eine Aufnahme starte, bekomme ich auf dem Kanal Teletext angezeigt, falls dazu Transponderwechsel notwendig.
    Das Problem tritt nur bei Systemen mit mehreren Karten auf, da scheinbar die Tuner mit den aktuellen vdr-Versionen "emanzipiert" wurden , ist die FF-Karte nicht mehr automatisch die Karte, auf der der gerade angezeigte Kanal auch eingestellt wurde. Fix besteht wohl darin, herauszufinden auf welcher Karte der gerade aktive Kanal empfangen wird und den Teletext von dieser Karte aus zu dekodieren. Im Fall eines Versuchs, Teletext von einem anderen Kanal anzuzeigen, müsste evt versucht werden die zweite Karte auf den Kanal zu tunen.

    HW1: Asus M3N78-EM|AMD 235e 1xDVB-S2 HD-Nova, 1xDVB-S1 TT-Budget, OpenSuse 11.2 64bit vdpau
    per xinelib1.2
    HW2: Asus Pundit-P1-AH1 AMD3600X1 TT Rev1.3FF, DVB-S1TT Budget, OpenSuse11.1 64bit


    Weitere HW: SMT7020s zen2mms1.3, MacMini VirtualBox mit Ubuntu 9.10 und TT-s3200 USB

  • Ist hier schon jemand weitergekommen? Meine Versuche betrachte ich derzeit als gescheitert (von der Umstellung auf gettext mal abgesehen). Gibts irgendwo eine Beschreibung, wie das mit PrimaryDevice und ActiveDevice funktionieren soll? Der OSDTeletext Receiver sollte sich ja an das gerade empfangende Device dranhängen wenn ich das richtig verstehe.

  • Zitat

    Original von Urig
    Ich kann die bisherigen Beobachtungen bestätigen, das OSDTT-Plugin bewirkt u.a. dass VDR beim Kanalwechsel oft mal die zweite Karte im Transfermodus verwendet, statt die primäre Karte auf den gewünschten Kanal zu schalten. Ich vermute auch, dass das die Ursache für den zeitweisen Ausfall des Empfangs ist.


    Meine bisherige Vermutung ist, dass der zusätzliche Teletext-Datenstrom beim Kanalwechsel dazu führt, dass VDR glaubt, die aktuelle Karte wäre noch anderweitig in Benutzung, und könnte nicht auf einen anderen Kanal schalten. Ich erinnere mich auch schwach an Änderungen in VDR bezüglich der Kanalpriorität und wann ein solcher Datenstrom ignoriert wird, bin aber bisher nicht dazu gekommen, mich weiter damit zu beschäftigen.


    ich kann folgende Beobachtung beisteuern:


    bei einem rein analogen System:
    -pvrinput-Plugin mit 2 PVR`s als input device
    -PVR350 mit pvr350-Plugin zur Ausgabe
    ist der Transfermodus immer aktiv. Bei Verwendung des osdteletext-Plugins (und nur dann!) kommt es ebenfalls bei jedem Kanalwechsel zu einem Wechsel der von pvrinput benutzen Karte. Es wird exakt immer zwischen beiden PVR´s hin- und hergewechselt, was den Schluss zulässt, dass zum Zeitpunkt des Kanalwechsels die zuletzt verwandte Karte aus Sicht von vdr noch in Benutzung ist.

    Das war mir das erste Mal schon bei 1.5.9 oder 1.5.11 aufgefallen.


    @ apex: Hast Du vom Plugin-Author eine Antwort bekommen?

    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

  • es gibt offenbar auch unterschiedliche Versionen des osdteletext-Plugins für vdr 1.6 bzw. es sind im laufe der 1.5er-Entwicklung verschiedene Patche veröffentlicht wurden.


    Mir fiel auf, dass der Aufruf von CheckDeleteReceiver beim Kanalwechsel verlegt wurde:


    altes osdteletext 0.5.1 für vdr 1.4.7:


    osdteletext 0.5.1 in einer für vdr 1.6.0 gepatchten Version (ich glaube aus dem helau-Paket):

    (Aus Übersichtlichkeitsgründen habe ich den inaktiven Reinsertion-Patch entfernt)


    und so sieht CheckDeleteReceiver aus:

    Code
    void cTxtStatus::CheckDeleteReceiver() {
       if (receiver) {
          //dsyslog("OSDTeletext: Deleted teletext receiver");
          delete receiver;
          receiver = NULL;
       }
    }

    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

  • Probiert doch mal den angehängten Patch (anzuwenden auf vanilla osdteletext 0.5.1). Ich bin der Auffassung, dass der die Probleme lösen sollte (falls nicht ist wenigstens der gettext-Support nützlich :D)
    Die dxr3-Teile sind allerdings auskommentiert, weil ich sie nicht testen kann.


    FireFly

  • Zitat


    Die dxr3-Teile sind allerdings auskommentiert, weil ich sie nicht testen kann.


    stören sie denn?


    sowohl mit Deinem Originalpatch als auch mit anschließendem Entfernen der Auskommentierungen habe ich hier leider gar keinen Videotext mehr. Ich verwende das pvr350-Plugin zur Ausgabe, also vergleichbar mit dxr3.

    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

  • damit ich wieder Text habe, muss ich eine Deiner Änderungen rückgängig machen:

    Code
    void cTxtStatus::ChannelSwitch(const cDevice *Device, int ChannelNumber)
    {
       //if (Device == cDevice::ActualDevice()) {
       if (Device->IsPrimaryDevice()) {


    dann ist es aber wie vorher: vdr wechselt beim zappen ständig zwischen den beiden Karten hin und her.


    noch ein Hinweis für alle, die die Auskommentierungen beim Auswahlblock FF/dxr3 wieder entfernen: es müssen dann die zwei Zeilen darüber, die den Code ersetzt haben, auskommentiert werden:

    Code
    //receiver = new cTxtReceiver(TPid, chan);
          //cDevice::ActualDevice()->AttachReceiver(receiver);

    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

  • reicht es eigentlich, den receiver beim Kanalwechsel zu deleten, oder fehlt hier vielleicht ein


    pDevice->DetachReceiver(receiver);


    ??
    allerdings lässt sich das so einfach nicht in ChannelSwitch() einbauen, da pDevice dann für den Compiler nicht declared ist (da nur in CheckCreateReceiver entstanden)

    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

  • Zitat

    Original von Dr. Seltsam
    damit ich wieder Text habe, muss ich eine Deiner Änderungen rückgängig machen:

    Code
    void cTxtStatus::ChannelSwitch(const cDevice *Device, int ChannelNumber)
    {
       //if (Device == cDevice::ActualDevice()) {
       if (Device->IsPrimaryDevice()) {


    dann ist es aber wie vorher: vdr wechselt beim zappen ständig zwischen den beiden Karten hin und her.


    Wenn Du die wesentlichen Änderungen rückgängig machst, dann ist es kein Wunder, dass es wie vorher funktioniert ...
    Damit empfängt VDR wieder nur Videotext über den PrimaryDevice und genau das ist ja das Problem: keine Videotext wenn ein anderer Device benutzt wird.


    Zitat

    Original von Dr. Seltsam
    noch ein Hinweis für alle, die die Auskommentierungen beim Auswahlblock FF/dxr3 wieder entfernen: es müssen dann die zwei Zeilen darüber, die den Code ersetzt haben, auskommentiert werden:

    Code
    //receiver = new cTxtReceiver(TPid, chan);
          //cDevice::ActualDevice()->AttachReceiver(receiver);


    Dann rate ich Dir dringend, den Patch nicht anzuwenden, es wird ja eh alles rückgängig gemacht....

  • ich würde ja liebend gerne ActualDevice verwenden, aber es funktioniert damit nun mal leider nicht.

    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

  • vielleicht reden wir hier auch von völlig verschiedenen Problemen.
    Auf meinem Haupt-VDR habe ich mit osdteletext (ohne Deinen Patch) kein Problem, es wird beim zappen immer vom primary Device (= FF-Karte) empfangen. Dass osdteletext dort auf die Budget zugreift, habe ich bisher nicht erlebt.

    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

  • Zitat

    Original von Dr. Seltsam
    vielleicht reden wir hier auch von völlig verschiedenen Problemen.


    Ja, stimmt, so siehts aus.


    Zitat

    Original von Dr. Seltsam
    Auf meinem Haupt-VDR habe ich mit osdteletext (ohne Deinen Patch) kein Problem, es wird beim zappen immer vom primary Device (= FF-Karte) empfangen.


    Ich habe ohne den Patch Probleme, wenn das System mehr als eine SAT-Karte hat, weil dann das PrimaryDevice nicht mehr unbedingt benutzt wird, deshalb der Patch.

Jetzt mitmachen!

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