[patches] xine-lib-1.2+xineliboutput+xine-plugin verbesserter vdr support

  • hmm,
    mit dem xineliboutput aus dem repo hier:
    http://projects.vdr-developer.…neliboutput.git;a=summary


    und xine-lib 1.2 + patches gehts wunderbar.


    das mit den buffern ist auch besser und sdtv braucht so gut wie kein cpu mehr.


    hdtv hab ich noch ein problem.


    aber halbdurchsichtige fenster etc, kein problem...



    was ist der unterschied zwischen dem obigen repo und den patches die ihr hier pflegt?


  • Hallo durchflieger,


    habe gerade getestet, mit v5 deiner patches ist der segfault beim Umschalten weg.


    Danke dir nochmals.


    Kurze Info noch zum OSD, das ist jetzt auch da im live-Plugin.


    Gruß
    Wolfgang

  • Zitat

    Original von wbreu
    Kurze Info noch zum OSD, das ist jetzt auch da im live-Plugin.


    Ja, nur leider zu klein mit meiner hohen Auflösung :(


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zitat

    Original von wbreu
    habe ich ganz vergessen, Aufösung 1920x1080, das OSD hat 1880x1040.


    Und du kannst das OSD lesen im Live-Plugin mit dieser Auflösung? Wie hast du das Bild größer bekommen. Ich habe es eben versucht und habe das Bild jetzt auf 800x600 aber es wird trotzdem auf 320x240 runter skaliert.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zitat

    Original von gda


    Und du kannst das OSD lesen im Live-Plugin mit dieser Auflösung? Wie hast du das Bild größer bekommen. Ich habe es eben versucht und habe das Bild jetzt auf 800x600 aber es wird trotzdem auf 320x240 runter skaliert.


    Gerald


    Hi nochmal,


    achso, darum gehts, ja das OSD ist auch sehr unleserlich in dem kleinen Fenster.


    Das liegt aber am Live-Plugin.


    Wir reden schon vom Bild auf der Seite "Fernbedienung", oder?


    Gruß
    Wolfgang

  • Zitat

    Original von wbreu
    Das liegt aber am Live-Plugin.


    Wir reden schon vom Bild auf der Seite "Fernbedienung", oder?


    Genau, darum gehts, darüber habe ich oben schon geschrieben, das Image ist bei mir jetzt größer aber ich habe noch nicht rausbekommen wie man verhindert, dass es gleich wieder runterskaliert wird.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Hallo,


    im ersten Beitrag gibt es jetzt die Version 6 der Patches mit folgenden Erweiterungen:


    Verbesserte Bildanalyse insbesondere bei der Untertitelerkennung. Es gibt ein neues Parameter mit dem die Stabilisierungszeit des Untertitel eingestellt werden kann. Ein Untertitel muss jetzt mindestens solange erscheinen wie die Stabilisierungszeit vorgibt. Bisher waren es immer nur zwei Frames. Bei meinen Testfilm "deep impact" (kam diese Woche auf ARD als Letterboxsendung) hatte leichtes "Schneegestöber" in den schwarzen Balken die Untertitelautomatik aktiviert. Das funktioniert jetzt besser.


    Auch die Funktion mit variablen Aspektformat "4:3 ... 20:9" läuft jetzt noch etwas ruhiger.


    In der "config_xineliboutput" habe ich das Parameter "video.out.sd_only_properties" in "video.out.vdpau_sd_only_properties" geändert. Ihr müsst also eure config Datei anpassen.


    Gruss
    durchflieger

  • Hallo,


    Mit gcc 4.3.1 kompiliert nun das xinemediaplayer plugin nicht mehr:


    Zitat

    g++ -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -march=pentium3 -O2 -pipe -fomit-frame-pointer -falign-functions=4 -fprefetch-loop-arrays -ffast-math -fPIC -ggdb -O0 -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DUSE_CHANNELSCAN -DUSE_CMDSUBMENU -DUSE_CUTTERLIMIT -DUSE_CUTTERQUEUE -DUSE_CUTTIME -DUSE_DDEPGENTRY -DUSE_DOLBYINREC -DUSE_DVBSETUP -DUSE_DVLRECSCRIPTADDON -DUSE_DVLVIDPREFER -DUSE_DVLFRIENDLYFNAMES -DUSE_GRAPHTFT -DUSE_HARDLINKCUTTER -DUSE_LIEMIEXT -DUSE_LIRCSETTINGS -DUSE_MENUORG -DUSE_NOEPG -DUSE_PARENTALRATING -DUSE_PINPLUGIN -DUSE_PLUGINMISSING -DUSE_PLUGINPARAM -DUSE_REELPLUGIN -DUSE_ROTOR -DUSE_SOFTOSD -DUSE_STREAMDEVEXT -DUSE_WAREAGLEICON -DUSE_YAEPG -D_GNU_SOURCE -D_LARGEFILE_SOURCE -DPLAYER_VERSION=\"\" -D__LINUX__ -D__STL_CONFIG_H -DPLUGIN_NAME='"xinemediaplayer"' -DPLUGIN_NAME_I18N='"xinemediaplayer"' -I/usr/local/src/DVB/include -I/usr/local/src/VDR/include -I/usr/local/src/DVB/include -I../../../../temp/docimage/libs/xine-include `taglib-config --cflags` -o xinemediaplayer.o xinemediaplayer.c
    In file included from XineEvent.h:28,
    from XineLib.h:30,
    from Player.h:27,
    from xinemediaplayer.c:27:
    /usr/include/xine.h:1405: error: expected ‘,’ or ‘...’ before ‘this’


    Das *this in der Struktur gefaellt ihm wohl nicht ...

  • hmmm .. hier sieht's beim xine-plugin (0.9.2) genau gleich aus. soll das heißen, daß es was mit durchfliegers patches (an der xinelib) zu tun hat ?? (sonst passt der thread nicht wirklich):



    hier ist gcc 4.3.2 im einsatz. mit dem xineliboutput (+mediaplayer) hat's kein problem.


    gruß, ciax

  • Zitat

    Original von helau
    Das *this in der Struktur gefaellt ihm wohl nicht ...


    Ich denke, dass das was vor *this steht Probleme macht. Leider postet
    ja keine von euch den Inhalt der Zeile. Ich bin mal gespannt wer hier
    richtig liegt.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zitat

    Original von gda
    [..]Leider postet ja keine von euch den Inhalt der Zeile. Ich bin mal gespannt wer hier richtig liegt.


    Gerald


    Code
    typedef struct vo_raw_frame_s vo_raw_frame_t;
    struct vo_raw_frame_s {
            int format;                                     /* Format of Image (XINE_VORAW_*) */
            int width, height;      /* Size of Image */
            double aspect;                  /* Pixel aspect */
            uint8_t *data[3];               /* Image data */
            void (*free_frame)(vo_raw_frame_t *this);       /* Free resources allocated for this frame */
    };


    .. du bist immer so ungeduldig Gerald ;)


    kenn' mich da allerdings nicht mit dem code aus ... --> ist letzte zeile in der struktur.


    gruß, ciax

  • Zitat

    Original von ciax

    Code
    typedef struct vo_raw_frame_s vo_raw_frame_t;
    struct vo_raw_frame_s {
            int format;                                     /* Format of Image (XINE_VORAW_*) */
            int width, height;      /* Size of Image */
            double aspect;                  /* Pixel aspect */
            uint8_t *data[3];               /* Image data */
            void (*free_frame)(vo_raw_frame_t *this);       /* Free resources allocated for this frame */
    };


    Komisch diese forward Declaration, aber erstmal nicht auffällig.
    Entweder free_frame ist zu dem Zeitpunkt nicht bekannt, oder der neue Compiler mag die forward declaration nicht. Probier mal das:

    Code
    typedef struct vo_raw_frame_s {
            int format;                                     /* Format of Image (XINE_VORAW_*) */
            int width, height;      /* Size of Image */
            double aspect;                  /* Pixel aspect */
            uint8_t *data[3];               /* Image data */
            void (*free_frame)(struct vo_raw_frame_s *this);       /* Free resources allocated for this frame */
    } vo_raw_frame_t;


    Zitat

    Original von ciax
    .. du bist immer so ungeduldig Gerald ;)


    Ich bin ein alter Mann, ich habe nicht mehr so viel Zeit ;).


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zitat

    Ich bin ein alter Mann, ich habe nicht mehr so viel Zeit Augenzwinkern .


    Oh - sicher wieder irgend so ein juenger Huepfer der nur alt aussieht ;)


    Zitat

    void (*free_frame)(struct vo_raw_frame_s *this); /* Free resources allocated for this frame */


    hilft auch nicht, gebe ich dem Ganzen aber nen Namen anstatt von this, dann laeufts ...

  • Zitat

    Original von helau


    Oh - sicher wieder irgend so ein juenger Huepfer der nur alt aussieht ;)


    Meine ersten Programme habe ich auf einem Teletype in Fortran 4 eingehackt ;).


    Zitat

    Original von helau



    hilft auch nicht, gebe ich dem Ganzen aber nen Namen anstatt von this, dann laeufts ...


    Versuch mal das:

    Code
    extern "C" {
    typedef struct vo_raw_frame_s vo_raw_frame_t;
    struct vo_raw_frame_s {
            int format;                                     /* Format of Image (XINE_VORAW_*) */
            int width, height;      /* Size of Image */
            double aspect;                  /* Pixel aspect */
            uint8_t *data[3];               /* Image data */
            void (*free_frame)(vo_raw_frame_t *this);       /* Free resources allocated for this frame */
    };
    }


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zitat

    Original von helau
    hilft auch nicht, gebe ich dem Ganzen aber nen Namen anstatt von this, dann laeufts ...


    du meinst einfach einen namen, wie "test"? der pointer "*" bleibt aber? also so:

    Code
    void (*free_frame)(struct vo_raw_frame_s *test); /* Free resources allocated for this frame */

    oder doch so:

    Code
    void (*free_frame)(struct vo_raw_frame_s test); /* Free resources allocated for this frame */


    .. nicht auskenn' :schiel


    gruß, ciax


    EDIT: ups .. da ist von Gerald noch was dazwischen gerutscht :)

    Lascala LC17 - tribute to viking ;o) + atric IR / SoC ASUS J3455M-E / OctopusNet S4 / yavdr ubuntu jammy / output: osd2web + kivy-osd2web / branch 'python3' via 6.4" TFT & sat>ip DVB-S/S2 via FullHD / NVidia GT1030 passiv

    Einmal editiert, zuletzt von ciax ()

  • Das Problem ist, dass "this" ein reserviertes Wort in C++ ist und in C keine spezielle Bedeutung hat. Deshalb ist es unklug this als Variablennamen zu verwenden. Ich bin mir nicht sicher ob die extern "C" Anweisung hilft. Wenn nicht, dann muss man mit #defines rumtricksen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zitat

    Original von gda


    Versuch mal das:

    Code
    extern "C" {
    typedef struct vo_raw_frame_s vo_raw_frame_t;
    struct vo_raw_frame_s {
            int format;                                     /* Format of Image (XINE_VORAW_*) */
            int width, height;      /* Size of Image */
            double aspect;                  /* Pixel aspect */
            uint8_t *data[3];               /* Image data */
            void (*free_frame)(vo_raw_frame_t *this);       /* Free resources allocated for this frame */
    };
    }


    Gerald


    .. same error :(


    gruß, ciax

  • Zitat

    Original von gda
    Das Problem ist, dass "this" ein reserviertes Wort in C++ ist und in C keine spezielle Bedeutung hat. Deshalb ist es unklug this als Variablennamen zu verwenden. Ich bin mir nicht sicher ob die extern "C" Anweisung hilft. Wenn nicht, dann muss man mit #defines rumtricksen.


    Gerald


    Das sehe ich auch so (zumindest den ersten Teil). Da auf "this" im weiteren Verlauf nie zugegriffen wird (wozu wird dies ueberhaupt benoetigt ???), faellt umbennen deutlich leichter ;)

  • Zitat

    Original von gda


    Komisch diese forward Declaration, aber erstmal nicht auffällig.


    Die forward Declaration wird benötigt um in der struct selber bereits den typedef Namen verwenden zu können.
    Warum der gcc an dem "this" rum meckert ist schon erstaunlich. Schliesslich in das C und nicht C++. Ausserdem wird das Wort an etlichen Stellen im xine verwendet.
    Ihr könnt "this" an dieser Stelle aber ruhig umbennen oder ganz weglassen. Sollte auch funktionieren.

Jetzt mitmachen!

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