Verhindert cReplayControl oder cReadDir das Unmounten?

  • Hi!
    Ich bin dabei, ein Recmenu Plugin mit Archiv-HDD Funktion zu schreiben.
    Wenn eine archivierte Aufzeichnung abgespielt werden soll, dann wird
    zuerst die HDD gemountet und dann die Symlinks auf die eigentlichen
    Videodateien erstellt. Von cMyReplayControl hab ich abgeleitet, da ich
    nach dem Abspielen die Symlinks wieder löschen und die HDD unmounten
    muss. Und genau da ist mein Problem. Ich dachte, ich mach das alles
    im Destructor von cMyReplayControl. Das Entfernen der Links funktioniert
    noch. Aber das Unmounten nicht. Das liegt daran, dass der VDR die
    Aufzeichnung auf der gemounteten Platte noch in Beschlag hat.
    Mich wundert ausserdem, dass die Videodatei auf dieser Platte in
    Benutzung ist, da VDR ja auf den Symlink zugegriffen hat.


    Könnte es vielleicht auch an meiner FindUniqueFolder Funktion liegen?
    Sie sucht nach dem Ordner auf der Archivplatte, in dem sich die Videodateien
    befinden, und schreibt den Pfad in archivePath. Das wird zum Anlegen
    der Symlinks benötigt. Kann es sein, dass nach Verlassen der Funktion,
    das von cReadDir geöffnete Verzeichnis nicht geschlossen wurde?

  • Ich bin der Sache jetzt etwas näher gekommen. Bisher hab ich das Replay immer mit
    dem Back Button gestoppt. Das Replay stoppt dann, und ich komm auch zurück ins
    Menü. Allerdings ist das Video anscheinend immernoch geöffnet. Jedenfalls für ein paar
    Sekunden. Der darauffolgende Unmount Befehl stösst auf ein Busy. Ein Unmount auf der
    Konsole funktioniert dann aber kurze Zeit später.
    Wenn ich mit dem Stop oder Blue Button stoppe, dann funktioniert mein Unmount.
    Wo liegt der Unterschied, ob ich mit Back, Stop oder Blue stoppe?


    Edit: Ich hab jetzt im Destructor als ersten Befehl ein cReplayControl::Stop(); eingefügt.
    Jetzt funktioniert es auch mit dem Back Button. Trotzdem sollte das nicht nötig sein.

Jetzt mitmachen!

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