Burn: AC3+Zweikanalton+16:9 mit ProjectX

  • Habe die Anregungen von FireFly und wilderigel umgesetzt und das Archiv des kompletten Plugins burn 0.0.009-TEN ebenso wie (für Bau- und Bandbreitensparer ;)) das diff mit einigen "Verschönerungen" und Vereinheitlichungen aktualisiert (bin weiterhin für Berichte über die Installationserfolge und das Zusammenspiel der auf Wunsch erweiterten Konfigurationsmöglichkeiten dankbar): :]

    • Sinnvollere Sortierung der Variablen in /usr/bin/vdrburn.sh:
      Es gibt nun drei Gruppen von Konfigurationsoptionen (vgl. README:(
      • Zuerst werden nun die Defaults gesetzt
      • dann /etc/vdr/plugins/burn/vdrburnscript.conf gelesen, sofern vorhanden
      • und schließlich die Overrides erzwungen.

      Bert&FireFly:/etc/vdr/plugins/burn/vdrburnscript.conf ist damit nun der passende Ort, um einfach USE_CUT="yes" zu setzen (d.h. bei der Vorlage sogar schlicht die Auskommentierung zu entfernen).

    • /etc/vdr/plugins/burn/ProjectX.ini enthält nun die allgemeine Konfiguration für jeden Einsatz von ProjectX durch das burn-Plugin. In /tmp/.vdr*/VDRSYNC.* wird eine um die Besonderheiten des jeweiligen Jobs (z.B. 16:9, Zweikanalton-Splitting) und zur Sicherheit nochmals um die unentbehrlichen Parameter ergänzte Kopie gespeichert und zum Demuxen der betreffenden Aufnahme verwendet (hier bitte ich um Testergebnisse, um sicherzugehen, daß Kommentierung und ggf. doppelte Zeilen nirgendwo Probleme bei der Auswertung einer so entstandenen /tmp/.vdr*/VDRSYNC.*/ProjectX.ini verursachen).
      Bert: /etc/vdr/plugins/burn/ProjectX.ini wäre nun der passendste Ort, um Optionen wie VideoPanel.clearCdf=1 zu setzen (letztere ist aber beim verwendeten ProjectX 0.90.4.00 ohnehin schon voreingestellt und daher aktuell entbehrlich).
    • Sinnvollere Voreinstellungen (UTF-8, realistisch nutzbare DVD-Größe, am Jobende nicht für Überprüfung stehenbleiben) in der libvdr-burn.so, um möglichst auch ohne jeden Ausflug ins VDR-Plugin-Konfigurationsmenü "out of the box" loslegen zu können.

    HTH, und weiterhin danke für's Feedback! :]

  • Hi, TEN


    Thanks, hab schon downgeloadet, werd dann heute noch testen. :)


    Hatte gestern schon mit VideoPanel.clearCdf=1 gespielt, das hat auch funktioniert,
    aber du hast recht es is ja bei den defaults zu ProjectX schon voreingestellt, und
    macht daher keinen Sinn es ein zweites mal aufzurufen.


    Zitat

    @Bert&FireFly:/etc/vdr/plugins/burn/vdrburnscript.conf ist damit nun der passende Ort, um einfach USE_CUT="yes" zu setzen (d.h. bei der Vorlage sogar schlicht die Auskommentierung zu entfernen).


    Das finde ich auch die richtigere Lösung, denn wozu wär die vdrburnscript.conf
    sonst zu gebrauchen. ?(



    Zitat

    Sinnvollere Voreinstellungen (UTF-8, realistisch nutzbare DVD-Größe, am Jobende nicht für Überprüfung stehenbleiben) in der libvdr-burn.so, um möglichst auch ohne jeden Ausflug ins VDR-Plugin-Konfigurationsmenü "out of the box" loslegen zu können.


    Auch ein guter Punkt!



    Gruss , Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi , TEN


    Habe upgedatet.
    Installation ist wie immer kein Problem.


    Habe jetzt ohne Cut getestet, funkt perfekt-keinerlei Probleme.


    Gruss , Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi,
    ich bekomme folgenden Fehler vom `make plugins`


    Plugin burn:
    make[1]: Entering directory `/usr/local/src/vdr-1.3.45/PLUGINS/src/burn-0.0.009-TEN'
    g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -DPLUGIN_NAME_I18N='"burn"' -D_GNU_SOURCE -DDVDDEV='"/dev/dvd"' -D
    ISODIR=NULL -I../../../include -I../../../../DVB/include -o burn.o burn.c
    burn.c: In member function 'virtual const char* cPluginBurn::CommandLineHelp()':
    burn.c:69: warning: converting to non-pointer type 'bool' from NULL
    burn.c: In member function 'virtual bool cPluginBurn::Start()':
    burn.c:182: error: 'Phrases' was not declared in this scope
    make[1]: *** [burn.o] Error 1


    2.6.13-15.8-default, gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux)


    wenn ich laut README ein 'make all ISODIR=/pub/iso' mache, meckert 'make'


    g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -DPLUGIN_NAME_I18N='"burn"' -D_GNU_SOURCE -DDVDDEV='"/dev/dvd"' -DISODIR='"/pub/iso/"' -I../../../include -I../../../../DVB/include -o burn.o burn.c
    burn.c: In member function 'virtual bool cPluginBurn::Start()':
    burn.c:182: error: 'Phrases' was not declared in this scope
    make: *** [burn.o] Error 1


    oder kann das sowieso erst funktionieren nachdem das Plugin kompiliert wurde!?


    Gruss Lothar

  • auch wenn ich das ISODIR angebe


    g++ -fPIC -g -O2 -Wall -Woverloaded-virtual -c -DPLUGIN_NAME_I18N='"burn"' -D_GNU_SOURCE -DDVDDEV='"/dev/dvd"' -DISODIR='"/pub/iso"' -I../../../include -I../../../../DVB/include -o burn.o burn.c
    burn.c: In member function 'virtual bool cPluginBurn::Start()':
    burn.c:182: error: 'Phrases' was not declared in this scope
    make[1]: *** [burn.o] Error 1


    Lothar

  • Hi , TEN


    Hab auf Vdr-1.3.47 upgedatet, dazu benötigt man noch diesen Patch


    [ANNOUNCE] VDR developer version 1.3.47


    damit burn-0.0.009-TEN oder auch nur burn-0.0.009 compiliert.
    Funkt dann auch mit Vdr-1.3.47 super wie immer das burn-0.0.009-TEN


    Gruss , Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Möchte hier mal eine Entwicklungsperspektive auf Basis von burn-0.0.009(-TEN) zur Diskussion stellen, die wahrscheinlich auf für 0.1.0-pre* noch ähnlich gilt, und zu der vielleicht der eine oder andere Kenner der Sourcecodes schon etwas programmiert hat:


    Soll hier DVDs ohne Untermenüs erstellen (Dokus von eher exotischen Kanälen, die eh kein EPG und daher keine Beschreibung haben...


    Wenn es zu einer Aufnahme weder info.vdr noch summary.vdr gibt, wird nur eine Unterseite mit dem Text "(null)" erstellt). Stattdessen sollte in diesen Fällen wohl der Menüpunkt des Hauptmenüs (VMGM) direkt den Film starten.


    Ich sehe, daß das in config.c zusammengesetzt wird, über
    void cDvdauthorConfig::Write(void)
    wobei das Abspielen dann veranlasst wird von
    fprintf(f, DVDAuthorTitleMenuFilm);
    per xml.c definiert als
    <button>jump title 1 chapter 1;


    Aufgerufen wird das Ganze von process-dvd.c ab
    case sdDvdauthor:
    wobei der eigentliche Text in render.c entsteht aus
    summary = EscapeLatin1toUTF8(
    mRecording->Summary()) ? mRecording->Summary() :
    mRecording->Name());
    In jobs.c findet sich allerdings
    mSummary = (Recording.mSummary ? strdup(Recording.mSummary) : NULL);
    daher wohl statt des Namens der Text "(null)" in der Beschreibung der jeweiligen Untermenü-Seite.


    Nun müsste man also dafür sorgen, daß wenn mSummary == NULL ist (d.h. in C also: es hat einen Wert (?), d.h. nach
    mRecording->Summary()) ?
    wird der unmittelbar folgende true-Zweig ausgeführt (?) - was so wohl nicht beabsichtigt war?)
    in cDvdauthorConfig::Write als Aktion unter dem zugehörigen Hauptmenüpunkt kein Sprung in ein Titelmenü, sondern der direkte Start des Titels eingetragen wird.
    (Das kann einzelne oder alle Aufnahmen betreffen... ggf. könnte man ja z.B. die info.vdr umbenennen, wenn man ein bestimmtes Untermenü unterdrücken will.)


    Damit ich nun aber nicht das Rad neu erfinde:
    Sehe ich den Ablauf richtig?
    Hat dazu schon etwas geschrieben, bzw. einen Vorschlag/Pläne in dieser Hinsicht?

  • Hi Ten,
    hier bin ich.. danke für den Tip burn-ng...


    Was kann ich helfen?

    Grüße, Dieter :)

  • Zitat

    Original von Dieter
    Was kann ich helfen?

    Nachdem das oben so kompliziert wie der Code ;) beschrieben ist, hier mal die Idee "in a nutshell":


    cDvdauthorConfig::Write in config.c baut den "Arbeitsplan" zur Menüerstellung.
    Hierhin müßte man "jump title n chapter 1" (statt des Sprungs ins Untermenü für den Titel, definiert sind diese Anweisungen alle in xml.c) vorziehen, wenn das jeweilige Untermenü leer ist - d.h. also wenn sich in jobs.c mSummary=NULL ergeben hat (weil zu der Aufnahme weder info.vdr noch summary.vdr existierten).


    Daß es in process-dvd.c wohl nie zur Zuweisung von summary = EscapeLatin1toUTF8(mRecording->Name()) kommt, weil mRecording->Summary() in C auch mit NULL als belegt gilt (oder sehe ich das falsch?), lang an einem wohl irgendwoher aus einer früheren burn <=0.0.009 "geerbten" Bug, durch den das summary in jobs.c nicht immer auf NULL initialisiert wurde (mache noch ein paar Tests und aktualisiere dann das TGZ-Archiv).


    Für die skizzierte Weiterentwicklung, in diesen Fällen das leere Untermenü besser sogar ganz wegzulassen, ist es natürlich eine Frage der eigenen Implementierungsvorlieben, ob besagter Wert von mSummary oder mRecording->Summary() irgendwie zur config.c an cDvdauthorConfig::Write durchgereicht bzw. erneut ermittelt wird, oder ob man einfach ein weiteres Mal abfragt, ob zur jeweiligen Aufnahme weder info.vdr noch summary.vdr existieren.


    BTW: Vielleicht sollten wir die burn-0.0.009-TEN doch einfach in burn-classic-... umbenennen (meinetwegen auch burn-TEN-..., solange niemand erwartet, daß ich mit meinen paar Wochen C etwaige bislang noch nicht entdeckte Bugs auch durchschauen kann :rolleyes: ), um die bisherige Codebasis weiterführen zu können, bis "burn-ng" (burn-0.1.0-pre*) komplett und stabil ist?
    Moment, gerade wurde die von Dir erwähnte "Bauanleitung für burn-ng" im Thread Burn 0.1.0 Public Beta ab -pre13 gepostet - dann bleiben "wir" eben bei burn, und LordJaxom muß bei Parallelinstallation mit der Umbenennung in burn-ng vorlieb nehmen...:D

  • Hi Ten,
    muss ich mir im code anschauen. Habe heute leider keine Zeit dazu.

    Grüße, Dieter :)

  • Als Interimslösung hatte ich mir etwas in folgender Art überlegt (in int cBurnRender::CreateTitleMenuPages(void) aus render.c), damit bei fehlender info.vdr zumindest der DVD-Titel in der Überschrift, und der Name der Aufnahme im "Body" des Untermenüs erscheinen...

    Code
    stitle = EscapeLatin1toUTF8(
                     mRecording->RecordingTitle() ? mRecording->RecordingTitle() :
                     mJob->Title());
            esyslog("BURN: stitle %s", stitle);
            summary = EscapeLatin1toUTF8(
                    mRecording->Summary() ? mRecording->Summary() :
                    mRecording->Name());
            esyslog("BURN: summary %s", summary);

    ...läuft aber noch nicht vollständig:

    Code
    Jun  5 11:43:43 [logger] <MKMENU /tmp/.vdr-burn.qHW1e1/VDRSYNC.0 5 /etc/vdr/plugins/burn>
    Jun  5 11:43:44 [vdr] BURN: stitle burn
    Jun  5 11:43:44 [vdr] BURN: DerNameDerAufnahme

    (In jobs.c habe ich inzwischen noch 2 Probleme gefunden, durch die teilweise nur der jeweils erste Zweig ausgeführt oder gelegentlich sogar ein Coredump ausgelöst werden konnte.)
    Wahrscheinlich ist mJob->Title() anders als in int cBurnRender::CreateMainMenuPages(void) nicht korrekt belegt, weil "mJob = NULL" offenbar als Flag benutzt wird, um im weiteren den Übergang von der VMGM-Haupt- auf die Titel-Untermenü-Erstellung anzuzeigen.

  • Hat jemand einen Tip, wie ich in cBurnRender::CreateTitleMenuPages noch/wieder an den (sicher irgendwo auch global und weiterhin gültig abgelegten) DVD-Titel wie per mJob->Title() herankomme?


    Edit: Der Name der DVD musste tatsächlich vorab in einen zusätzlichen String kopiert werden, mJob->Title() lässt sich an dieser Stelle nicht ohne Nebenwirkungen aufrufen.

  • Die Einrichtung "minimalistischer" Titel-Untermenüs (Name der DVD in der Überschrift und Filmtitel im "Hauptfenster") bei fehlender info.vdr ist erledigt (besten Dank an LordJaxom und wilderigel für die Unterstützung!) und zusammen mit weiteren Ergänzungen in die nächste Version des "klassischen" burn-Plugins aufgenommen: [ANNOUNCE] Plugin burn-0.0.10


    Vorschläge für eine Option, um die Titel-Untermenüs in diesen Fällen ganz entfallen zu lassen und direkt zum jeweiligen Film zu verzweigen, sind natürlich (möglichst auf Basis von burn-0.0.10) weiterhin willkommen.

Jetzt mitmachen!

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