Script in reccmds.conf funzt nicht mit allen Aufnahmen

  • Hallo,


    wenn ich zum Bsp. einen Eintrag in meiner reccmds.conf habe

    Code
    MPEG erstellen : vdrsync.sh


    dann wird beim Aufrufen des Eintrags, zum Ausführen einfach der
    Name der aktuell ausgewählten Aufnahme an den Befehl rangehangen.
    Funzt sowei auch, aber wenn nun die Aufnahme ein "&"-Zeichen z.B.
    "/video/Tiger_&_Dragon/2005-xxxxxxxxxxxxx"
    enthält, läuft gar nix mehr .
    Es werden dann 2 Befehle ausgefürt
    1. "vdrsync.sh /video/Tiger_"
    klar nach dem "&" wird abgeschnitten und seperat ausgeführt,
    so kann das aber nicht laufen da die Pfadangabe nicht komplet ist
    2. "_Dragon/2005-xxxxxxxxxxxxx" aus!
    der Befehl ist dann sowieso Unsinn
    Anstatt beise zusammen
    "vdrsync.sh /video/Tiger_&_Dragon/2005-xxxxxxxxxxxxx"


    gibts in der reccmds.conf irgendeine Möglichkeit den Aufnahmenamen als
    Placeholder mit einzutragen, damit ich darum ein paar ' machen kann?
    Oder hat jemand ne andere Lösung für das Problem?

  • Da wirst du wohl um das Patchen des VDR nicht drumherumkommen :)
    So ganz aus der kalten geschossen:


    in recordings.c:


    Code
    void cRecordingUserCommand::InvokeCommand(const char *State, const char *RecordingFileName)
    {
      if (command) {
         char *cmd;
         asprintf(&cmd, "%s %s \"%s\"", command, State, *strescape(RecordingFileName, "\"$"));
         isyslog("executing '%s'", cmd);
         SystemExec(cmd);
         free(cmd);
         }
    }

    baue mal hinter RecordingFileName noch ein & mit ein:


    Code
    void cRecordingUserCommand::InvokeCommand(const char *State, const char *RecordingFileName)
    {
      if (command) {
         char *cmd;
         asprintf(&cmd, "%s %s \"%s\"", command, State, *strescape(RecordingFileName, "\"$&"));
         isyslog("executing '%s'", cmd);
         SystemExec(cmd);
         free(cmd);
         }
    }

    Absolut ungetestet und ohne Gewähr.


    Gruß
    Mag1c

  • Hi, so habs selber gefunden!
    Der VDR übergibt den Pfad schon in '-Zeichen mein Script hat das dann auch richtig an vdrsync weitergegeben!


    Ich habe aber ausserdem noch im Script aus dem Pfad den Aufnahmenamen
    als basename an vdrsync weitergegeben, gedemuxt wurde alles super nur bei
    der Übergabe an den Multiplexer wurden die einzelnen Streams nicht in
    "-Zeichen an den Multiplexer Übergeben somit hat der dan den Mist gebaut
    hab einfach vdrsync an ein paar stellen geändert und nun läufts.



    Mag1c
    Trotzdem Danke für die Antwort.

  • Hi maverick-me,


    könntest Du ein Diff erstellen?


    Gruß,
    Marcus

    Mein VDR built 21.07.04 15:29
    VDR 1.3.24enAIO2.2, DVB-CVS, FW261e (Plugins: dvd-cvs,epgsearch,femon,graphTFT,osd-teletext,text2skin-cvs,vcd,vdrcd,vdrconvert 0.2.0,mplayer) unter Suse 9.3
    Asus P4P800VM, P4 2.8Ghz, 512 MB in ATC-620C-BX1
    2x Maxtor 5A300J0, SD-M1802, 7" TFT (Pollin)
    TT DVB-C 2.1 (4MB SDRAM), SL DVB-T

  • Hier das diff


  • Klasse. Vielen Dank!


    Gruß,
    Marcus

    Mein VDR built 21.07.04 15:29
    VDR 1.3.24enAIO2.2, DVB-CVS, FW261e (Plugins: dvd-cvs,epgsearch,femon,graphTFT,osd-teletext,text2skin-cvs,vcd,vdrcd,vdrconvert 0.2.0,mplayer) unter Suse 9.3
    Asus P4P800VM, P4 2.8Ghz, 512 MB in ATC-620C-BX1
    2x Maxtor 5A300J0, SD-M1802, 7" TFT (Pollin)
    TT DVB-C 2.1 (4MB SDRAM), SL DVB-T

Jetzt mitmachen!

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