mp3oss funktioniert nur einmal

  • Hallo


    Nach dem ich meinen vdr von 1.1.29 auf 1.2.1 geupdatet habe. habe ich nun auch mp3oss installiert bekommen. funktioniert auch ganz gut. nur wenn ich wiedergabe beende und dann nach einiger zeit wieder mp3`s hören will bringt er mir "cannot open dsp device" . ich muss vdr restarten dann funzt es wieder einmal danach das selbe.
    ist das gewollt oder kann man das irgendwo abstellen.


    gruss
    smokey

  • Hallo, das ist sicher nicht so gewollt,
    sondern eindeutig ein bug. ich werde das mal bei mir testen.
    beim überfliegen des source seh ich leider auf anhieb keinen fehler.


    Gruss GAR

  • hallo, ich habe das jetzt mal bei mir getestet.
    kann ich leider nicht nachvollziehen. hab 5 mal gestarted und wieder gestoppt,
    dann mal eine aufnahme geschaut und wieder gestartet.


    du musst mir schon eine genauere beschreibung geben, wann genau der fehler auftritt,
    so fürcht ich kann ich dir nicht weiterhelfen.


    gruss GAR.

  • Hallo,
    bitte schaum mal,
    ob dir folgendes hilft.


    ersetzte in playyer-mp3.c ab zeile 814:
    cMP3Player::~cMP3Player()
    {
    if(sfd!=-1)
    {
    close(sfd);
    sfd=-1;
    }


    Detach();
    delete scan;
    delete playlist;
    delete shuffle;
    delete ringBuffer;
    }


    durch
    cMP3Player::~cMP3Player()
    {
    Detach();
    if(sfd!=-1)
    {
    close(sfd);
    sfd=-1;
    }
    delete scan;
    delete playlist;
    delete shuffle;
    delete ringBuffer;
    }
    und mach danach make plugins
    und schau ob es jetzt bei dir geht.


    gruss GUNNAR.

  • Hallo


    Jawoll es funktioniert. Habe das plugin ein paarmal gestartet und wieder gestopt ,hat dabei alles prima gefunzt. :cool1


    Kannst du einem programmierdeppen wie mir erklären was sich mit den geänderten zeilen da getan hat das es nu funktioniert. Würd mich mal interessieren.
    Ansonsten danke für die hilfe.


    gruss
    smokey

  • Ok danke für deine ANtwort,
    dann werd ich das mal selber ändern und updaten.


    GEändert hat sich folgendes:


    das (pseudo) file /dev/dsp wird jetzt nach dem Detach() geschlossen.
    das Detach() fürhrt unter anderem dazu das der MP3Player Thread gestoppt wird.
    dieser Thread benutzt das sfd filehandle um den sound auszugeben.
    vorher konnte es also passieren, dass das filehandle schon geschlossen wurde obwohl gleichzeitig drauf zugegriffen wurde, dadurch kann das close(sfd) fehlschlagen, so wie es bei dir wohl passiert ist. das filehandle wurde also nicht geschlossen, aber sfd wurde auf -1 gesetzt, dadurch wird beim nächsten abpsielen versucht es wieder zu öffnen , was natürlcih fehlschlägt , weil es ja noch offen ist.


    bei mir ist das nicht vorgekommen, weil ich wahrscheinlich einen schnelleren rechner haber als du und das zeitverhalten da ein anderes ist.
    so wie es jetzt gemacht ist ist es auch richtig. erst wenn der player thread beendet ist, sollte das file ahndle geschlossen werden, da jetzt keiner mehr darauf zugreifen kann.


    allles klar?


    danke *g+



    gruss gunnar

Jetzt mitmachen!

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