Posts by domml

    Ich denke auch, dass dieses Macro ein Implementierungsdetail der STL ist, das keineswegs zur garantierten Schnittstelle gehört.


    Es gibt m.E. folgende saubere Lösungen:
    tools.h:

    Code
    #include <algorithm>
    using std::max;
    using std::min;
    using std::swap;
    using std::sgn; // hier bin ich mir nicht sicher, ob das in std:: überhaupt definitert ist.


    Oder


    tools.h

    Code
    namespace VDR {
    template<class T> inline T min(T a, T b) { return a <= b ? a : b; }
    template<class T> inline T max(T a, T b) { return a >= b ? a : b; }
    template<class T> inline int sgn(T a) { return a < 0 ? -1 : a > 0 ? 1 : 0; }
    template<class T> inline void swap(T &a, T &b) { T t = a; a = b; b = t; }
    }


    + überall da, wo #include "tools.h" steht ein:

    Code
    using namespace VDR;


    Oder:
    tools.h

    Code
    namespace VDR {
    template<class T> inline T min(T a, T b) { return a <= b ? a : b; }
    template<class T> inline T max(T a, T b) { return a >= b ? a : b; }
    template<class T> inline int sgn(T a) { return a < 0 ? -1 : a > 0 ? 1 : 0; }
    template<class T> inline void swap(T &a, T &b) { T t = a; a = b; b = t; }
    }
    #ifdef VDR_COMPILATION
    using namespace VDR;
    #endif


    Und im VDR-Makefile würde dieses #define gesetzt.


    Für die 2. Lösung stelle ich gerne 2 Zeilen Script zur Verfügung, die das in alle VDR-Sourcen einfügt.


    Nur mit diesen Lösungen kann man beim Plugin-programmieren beliebigen STL code an beliebiger Stelle verwenden und muß keine Header-Reihenfolge einhalten.


    Bei den anderen skizzierten Lösungen gäbe es trotzdem Kollisionen mit der STL.

    Klaus, könntest Du nicht die Funktionen aus vdr, die mit der STL kollidieren in einen namespace ( z. B. "vdr") legen, und dann diesen namespace in den vdr .c files mit "using namespace vdr" bekanntmachen. Dann sollte nix mehr kollidieren.


    Wenn Du Interesse hast, könnte ich dafür einen Patch bauen.


    Gruß


    Dominik

    Hallo 3PO, Du müßtest wie folgt herausfinden, wer die falsche lib linkt:
    ldd <vdr-binary>
    das müßte alle libs ausgeben, gegen die vdr gelinkt ist


    Wenn da die swresample.1 dabei ist, dann kannst Du jede einzelne .so mit ldd abchecken, welche libswresample.1 nachzieht.
    Wenn bei vdr nix kommt, dann kannst Du alle plugin .so's der Reihe nach mit "ldd" überprüfen. Wahrscheinlich ist es eh die softhddev Library. Dann wieder alle .so's einzeln mit "ldd" überprüfen. Sehr wahrscheinlich ist softhddev doch nicht gegen ffmpeg.3 gelinkt. Hoffentlich habe ich mich verständlich ausgedrückt. Sonst auch gerne PM, das Ergebnis können wir ja dann hier posten

    Noch ein paar Details:
    Das Problem besteht nur in den Skindesigner Skins. Ich habe den Eindruck, dass Fonts nicht gefunden werden, weil z.B. im glasslike das Layout in der Kanalanzeige nicht passt und die Fonts zu groß sind, sodass z.B. das Datum nicht vollständig angezeigt wird.

    Hallo,
    gerade habe ich den upgrade auf 0.6.1 gemacht. Seither ist der OSD-Font kaum noch lesbar. Tipps ?


    Danke


    Dominik


    PS: Ich habe keine Konfiguration mit 2 Graphikkarten (onboard + GT220).
    Für diese Kobination funktioniert die YaVDR-Monitor-Konfiguration nicht. Ich habe deshalb eine handgehäkelte xorg.conf. WIe kann ich verhindern, dass mir diese beim update/upgrade überschrieben wird ?

    Was habe ich falschgemacht ?

    Code
    SQL-Error in 'prepare(stmt_prepare)' - Unknown column 'fsk' in 'field list' (1054) 'Unknown column 'fsk' in 'field list''

    Hat super funktoiniert, vielen Dank.

    Code
    sudo dbset system.x11.dualhead.enabled=1
    sudo dbset vdr.plugin.graphtft.enabled=1
    sudo process-template /etc/init/openbox-second.conf
    sudo process-template /etc/init/graphtft-fe.conf
    sudo start openbox-second
    sudo start graphtft-fe


    Mini-Typo beim ersten Kommando. So wie oben geht's

    Hallo,
    meine Dualhead-Konfiguration scheint nicht richtig erkannt zu werden.
    Ich habe in dem System aus der Signatur eine OnBoard NVidia 8200, an dem das kleine TFT im Gehäuse per VGA hängt und an der GT220 hängt der Receiver/Fernseher per HDMI. Beide werden laut Xorg.log erkannt.


    In der YaVDR DB steht jedoch

    Code
    x11 { 
    dualhead { 
          enabled = 0     }     
    display {       0 
    {         
    device = CRT-0
    mode {           0 = nvidia-auto-select         }
     default = nvidia-auto-select       
    }     }   }


    In den Anzeigeeinstellungen (Einstellungen/Hardware/Anzeigeeinstellungen) steht nichts, "Erneut nach Bildschirmen suchen" ändert nichts.
    DIe Konfiguration von GraphTFT wird nicht angeboten.


    Den TV konnte ich aktivieren, indem ich eine xorg.conf von meinem alten System eingespielt habe, ansonsten war nur auf dem TFT ein Bild.


    Ich fahre den 304-er NVidia Treiber und den 3.19 er Kernel weil ansonsten die Anstürze, die in den beiden anderen Threads gelöst wurden kamen.


    Tipps ?


    Danke


    Dominik