[Allmost solved] dvd-plugin: Sporadischer Deadlock bei Audiospur wechsel

  • Hallo,


    ich hab da ne unschöne Angewohnheit vom dvd-plugin: Wenn man im laufenden Film die Sprache wechselt, hängt sich der VDR manchmal ganz auf, genauer gesagt hängt er dann auf ewig im LOCK_THREAD.


    Das Problem hatte Reinhard Nissel anscheinend auch schon im März mit der bitte um einen Fix gepostet: [vdr] vdr-dvd-cvs: deadlock when switching audio channel. Ich habe bei mir den gleichen Callstack im Fehlerfall. Leider gab es auf diesen Post keine Antwort und so wie es scheint, sind an dieser Baustelle wohl auch keine Fortschritte zu vermelden. Ich bin hier grade mit nem VDR 1.6.0-2+extp64 und dvd-0.3.7 unter easyVDR 0.6 am gange und habe damit diesen Fehler leider so gut reproduzierbar da es halt schon nervt.


    Gibts da schon irgendwo anders nen Patch oder ein anderes Gegengift? Das währe nämlich prima. ;)


    BTW: Eine andere Unschönheit sind auch die angezeigten Texte bei den Audiospuren. Sehr oft steht hinter der Sprache (z.B. DE oder EN) noch weitere kryptischen Sonderzeichen. Das sind jedes mal andere. Ist das dvd-plugin evtl. noch nicht vollständig bzw. korrekt an das neue vdr 1.6 / UTF8 Geraffel angepasst?

  • Hmmm, schweigen im Walde. Hat sonst niemand das Problem oder gibts dafür noch keine Lösung?


    Ich bin mal Testweise auf vdr-1.4.7 zurück und habe dort ebenfalls die beiden genannten Probleme unter easyVDR. Ich vermute inzwischen schon das daß zweite Problem ein easyVDR spezifisches Problem ist, also easyVDR Spezialisten bitte vortreten. ;) Ich hab zur Verdeutlichung ein paar Fotos mit der Digicam gemacht: Die ersten beiden Fotos zeigen den Fehler. Jedesmal wenn ich die AUDIO Anzeige während der Wiedergabe einer DVD öffne, gibts lustige Symbole&Zeichen hinter der Sprache. Der letzte Screenshot soll nur zeigen das daß AUDIO Menu beim normalen TV-kucken ohne Probleme funktioniert, da ist keine Fehldarstellung sichtbar.

  • So, denn Deadlock habe ich jetzt erstmal mit der Holzhammer Methode gelöst. Ich habe einfach den LOCK_THREAD Aufruf in cDvdPlayer::SetAudioTrack() rausgeworfen. Damit konnte ich keinen Hänger mehr reproduzieren. Manchmal gibts jetzt beim Umschalten nen kurzen Knackser im Ton, aber das ist allemal besser als ein VDR Prozess der erst abgeschossen werden muss damits wieder weiter geht.

  • Weiter gehts im Monolog:


    Bin auch bei den kaputten Audiosymbolen weiter gekommen. Im DVD-Plugin werden die beiden ASCII Zeichen für die Sprache in ein U16 Rückgabewert einer Funktion gepackt und dann knallhart der Pointer der U16 Variable einfach nach char* gecastet um daraus nen String zu zaubern. Am Ende wird wohl gehofft das zufälligerweise im RAM immer noch ne 0 hinter der U16 Variable im Speicher steht die dann die Nullterminierung des Strings macht, auweia kann ich dazu nur zu sagen.


    Naja, dann werde ich also mal wieder am Code rumpatchen dürfen...

  • Moin,


    kannst Du evtl. bitte einen Diff dafür posten? Ich hab zwar keinen Audiohänger gehabt, aber die kaputten Audiospurendarstellung habe ich auch.


    Danke,
    Walter

    --seit 2010 kein vdr mehr in Betrieb--
    vdr 1.6.0 + eigene Patchkombination
    GNU/Linux 2.6.23.14 (Debian)
    DVB-S-Karte TT 1.6 (FF, Tuner defekt)
    DVB-S-Karte TT Budget (seit 4/09)
    DVB-T-Karte TT 1300
    DVB-T-USB-StickTerratec Cinergy T USB XE Rev. 2
    PC-Hauptplatine: MSI K8N Neo4-F, AMD 64 (seit 1/07)

  • Hallo,


    den Diff zum Stringfix habe ich übersichtshalber im DVD-Plugin Thread gepostet, Du findest den Fix also hier.
    Ist wirklich nur der Stringfix, den anderen muss ich erst noch auf evtl. auftauchende Nebenwirkungen beobachten. ;)

  • Hallo,


    ich habe das gleiche Problem mit dem linVDR Mahlzeit iso4.0b2. Wenn ich beim DVD-Abspielen versuche, auf die andere Sprache umzustellen, hängt sich der VDR auf.


    Zitat

    Ich habe einfach den LOCK_THREAD Aufruf in cDvdPlayer::SetAudioTrack() rausgeworfen.


    Hm - kannst Du mir drei Sätze dazu schreiben, was genau Du getan hast? - Ich kenn' mich zu wenig aus, um das zu verstehen…



    Kryptische Symbole im Sprachmenü bekomme ich nicht, aber dafür werden im DVD-Menü die Umlaute nicht korrekt wiedergegeben.


    Lustig auch: Wenn ich mehrere Folgen einer Serie mit 2-Kanal-Ton aufnehme, werden immer ein paar davon mit der Default-Spracheinstellung "Fremdsprache" gebrannt. Auf einem externen DVD-Spieler kann ich das dann umstellen - auf dem VDR (siehe oben) nicht.


    Herzliche Grüße,


    herrdeh

  • Kannst Du denn für deine Distribution auch Plugins bauen?
    Wenn nicht siehts düster aus. Um die Änderung zu machen musst Du die DVD-Plugin Source haben und dort in der Funktion cDvdPlayer::SetAudioTrack() den Aufruf von LOCK_THREAD auskommentieren. Danach Plugin neu bauen und die neu erstelle DVD-Plugin Library dahin kopieren, wo der VDR bei deiner Distri die Plugins erwartet.

Jetzt mitmachen!

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