yaepghd - bild skaliert nicht

  • Dann könnte sowas die Lösung sein:

    Code
    if (iMenuBACK) {
                    cRemote::Put(kMenu);
                    if (Setup.MenuKeyCloses) cRemote::Put(kMenu);


    und, mal ausprobiert?

  • Problem war immer, ich hatte das nOpacity Skin eingestellt, das mag die Kombination VDR + xine als frontend nicht beim Starten. Also erinnerte ich mich irgendwann dass das Skin erstmals was klassischeres sein muss, habe auf VDR classic gestellt, da konnte ich mit Xine gucken.


    Wie schon gesagt, kein Problem, xine läuft hier und skinnopacity auch auf Anhieb, war klar das man für einen TrueColor Skin, OSD auf "Einpassen [HQ|SHQ|Auto]" stellen muß, soweit so gut. Aber das TV Bild skaliert nicht im Skin, obwohl die Einstellung im Plugin Setup entsprechend geschaltet ist.


    Wenn xine als Frontend schon mal laeuft, kannst den Osd-Anzeigemodus auf Einpassen umstellen, dann sollte es moeglich sein, nOpacity als Skin mit xine zu verwenden (mit Composite Extension im X-Server und als Tearing-Heilmittel, z.B. nackten Compiz als WM). Skaliert denn das nOpacity-Skin (muss im Setup auch noch aktiv sein)?


    Was heißt das? Composite und xine-lib @ VDPAU vetragen sich IIRC bis heute nicht, ist also schon immer ausgeschaltet, der WM ist Openbox, Farbtiefe ist 30-bit ...


    Wieso sollte ich Compiz benötigen? Brauche ich was besonderen am WM um mit xine skalieren zu können?


    Regards
    fnu

    HowTo: APT pinning

  • und, mal ausprobiert?

    Noch nicht, ich hatte Deine Nachricht uebersehen, die kam ja nochmal schnell vor meiner eigenen Antwort :-). Bin auch noch nicht dazu gekommen, aber sieht ja vernuenftig aus, werde ich demnaechst mal angucken und vermutlich so einbauen.

  • Was heißt das? Composite und xine-lib @ VDPAU vetragen sich IIRC bis heute nicht, ist also schon immer ausgeschaltet, der WM ist Openbox, Farbtiefe ist 30-bit ...


    Wieso sollte ich Compiz benötigen? Brauche ich was besonderen am WM um mit xine skalieren zu können?

    Sorry, da hatte ich mich etwas ungenau an eine Sache erinnert und Ausgabeplugins verwechselt. Ich wollte ja mal die neue Skalierungs-API auch in xineliboutput einbauen, und zu dem Zeitpunkt auch gleichzeitig weiterhin nOpacity, welches ja TrueColor braucht, nutzen. Und damit bei xineliboutput ein TrueColor-OSD moeglich ist, braucht es den HUD-OSD, der wiederum setzt Composite-Erweiterung voraus, die ja Tearing mit VDPAU macht. Nicht aber, wenn man einen compositing WM nutzt, wie Compiz oder Mutter, hat mich mal gda gebrieft.
    Naja, also bei vdr-xine dann, braucht es ja kein Compiz. Jedenfalls aber geht das Tearing schon weg damit, wenn man die Composite-Erweiterung einschaltet. Aber lassen wir es nun, das wird nun OT.


    Regards,
    Lucian

  • Naja, also bei vdr-xine dann, braucht es ja kein Compiz.


    Ah ok, mit dem Hinweis auf xineliboutput machen die Gedanken Sinn, klar, TrueColor ist da "schwierig". Bei xine geht es auch nur in der OSD Einstellung "Einpassen", Overlay (X11) geht "nur" 256 Farben. Aber damit hat das alte Skalieren von yaepghd (0.3-ce) funktioniert.


    Aber Dein Patch für xine exisitiert ja, ist nun in den Paketen "eingebaut", die VDR Funktion gibt es auch, sowie yaepghd 0.4, also wäre es doch schön wenn's tatsächlich funktioniert ... :)


    Was kann ich noch am Code prüfen kann? Darf irgendwas im Umfeld nicht sein, 30-bit, Autocrop mittels libxine1-xvdr o.ä.?


    Jedenfalls aber geht das Tearing schon weg damit, wenn man die Composite-Erweiterung einschaltet.


    Hmm, diese Einstellung steht seit 2009 in der xorg.conf meiner VDPAU VDR und verhindert Tearing?


    Code
    ...Section "Extensions"    Option         "Composite" "Disable"EndSection...(**) Extension "Composite" is disabled...


    Regards
    fnu

    HowTo: APT pinning

  • Also ich meinte damit, wenn man Composite , verwenden muß (wie in der Angesprochenen Thematik HUD bei Xineliboutput) kriegt man das damit bei VDPAU verursachte Tearing durch Verwendung eines compositing WM wie z.B. Compiz wieder weg... Ansonsten einfach Composite eben disablen wie es wohl alle machen...

  • Quoted from "Saman"
    und, mal ausprobiert?


    Noch nicht, ich hatte Deine Nachricht uebersehen, die kam ja nochmal schnell vor meiner eigenen Antwort :-). Bin auch noch nicht dazu gekommen, aber sieht ja vernuenftig aus, werde ich demnaechst mal angucken und vermutlich so einbauen.


    So, ist heute nacht auch geschehen: Git hier und Download hier, sowie aktualisiertes Gentoo Ebuild in meinem Overlay in der Signatur.


    Have phun,
    Lucian

  • Zoolook


    Dann sag's doch auch so, wie Du es meinst ... 8o


    Gut, mal zum Punkt zurück, kann ich irgendwie prüfen ob der Code aus Deinem Scaling-Patch für vdr-plugin-xine überhaupt irgendwie auf nOpacity oder yaepghd anspricht?


    Regards
    fnu

    HowTo: APT pinning

  • Ja ein fprintf rein oder einen Breakpoint setzen.


    Mit dem richtigen Theme (das war das Problem der alten Version) einfach yaepg aufrufen und dann sollte das Videofenster skaliert werden.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Mit dem richtigen Theme (das war das Problem der alten Version) einfach yaepg aufrufen und dann sollte das Videofenster skaliert werden.


    Hehe, was ist denn das richtige Theme? Hab schon alle durch und nOpacity skaliert ja auch nicht mit xine ...


    Hätte ja gedacht das man in dem Code-Segment eine syslog-Meldung raustut?


    Code
    ...+  ///< If this device can't scale the video, a Null rectangle is returned (this+  ///< is also the default implementation).+  cRect cXineDevice::CanScaleVideo(const cRect &Rect, int Alignment/* = taCenter*/)+  {+    // first implementation: we can always scale, we're a soft device ;-), ignore alignment for now++    // we need to store the value for the case we have to call ScaleVideo ourselves in vdr-xine+    vidWinRect = Rect;+    return vidWinRect;+  }...


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Oder auch ins syslog.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • So, als Blinder unter den Sehenden konnte ich Zoolook's Patch um zwei Meldungen erweitern:


    Code
    ...    vidWinArea.y2 = vidWinRect.Y() + vidWinRect.Height();    if (vidWinRect == cRect::Null) {        // will just resize to full size        vidWinArea.bpp = 0;+       isyslog("vdr-plugin-xine resize to full size");    } else {        vidWinArea.bpp = 12;+       isyslog("vdr-plugin-xine scale video");        // make corrections        double aspectFactor = (double(osdWidth) / double(osdHeight)) / videoAspect;        int output_width = vidWinRect.Height() * (videoAspect * aspectFactor);...


    Die mir im syslog zeigen, die Code-Teile werden hier durchlaufen:


    Code
    ...Apr  2 23:13:44 vdr1 vdr: [3075] vdr-plugin-xine resize to full sizeApr  2 23:13:44 vdr1 vdr: [3075] vdr-plugin-xine scale videoApr  2 23:13:51 vdr1 vdr: last message repeated 2 timesApr  2 23:13:51 vdr1 vdr: [3075] vdr-plugin-xine resize to full sizeApr  2 23:13:52 vdr1 vdr: [3075] vdr-plugin-xine resize to full sizeApr  2 23:13:53 vdr1 vdr: [3075] vdr-plugin-xine scale videoApr  2 23:13:53 vdr1 vdr: [3075] vdr-plugin-xine scale videoApr  2 23:13:54 vdr1 vdr: [3075] vdr-plugin-xine resize to full size...


    Das sind Meldungen wechselweise Aufruf nOpacity Menu und yaepghd, aber das Viedeobild wird nicht skaliert. Weitere Ideen?


    Regards
    fnu

    HowTo: APT pinning

  • Das sind Meldungen wechselweise Aufruf nOpacity Menu und yaepghd, aber das Viedeobild wird nicht skaliert. Weitere Ideen?

    Das ist ja echt doof, bis hierhin scheint ja alles ausgefuehrt zu werden. Nun bleibt noch, mal die Werte die das vidWinRect in den beiden Fällen mit sich trägt, ausgeben zu lassen, und wenn die plausibel sind, bleibt noch der Verdacht, dass die Methode die am Ende die eigentliche Arbeit macht, die nicht tut, da kannst Dich auch wieder mit solchen debug-Ausgaben herantasten, und zwar in xineLib.c ist es die cXineLib::execFuncVideoSize. Die hat schon zumindest zum Nachweis der Ausführung schon einen DLOG Eintrag am Anfang, aber ob der auch tatsächlich auftaucht, müsstest Du in Deinem Syslog gucken.


    Nicht locker lassen...
    Lucian

  • Nicht locker lassen...


    Daran soll's nicht liegen, eher am Handwerklichen, C/C++ gehört nicht im Ansatz zu meinen Stärken. Und ich weiß ja gar nicht was für einen Wert "vidWinRect" überhaupt annehmen oder ich diesen sinnvoll ausgeben kann. In der Art


    Code
    +       isyslog("vdr-plugin-xine scale video %s", vidWinRect);


    ?


    und zwar in xineLib.c ist es die cXineLib::execFuncVideoSize. Die hat schon zumindest zum Nachweis der Ausführung schon einen DLOG Eintrag am Anfang,


    Nun schwierig, amateurhaft würde ich sagen da ist nix, aber ich weiß gar nicht wie die Ausgabe aussehen könnte oder wird da einfach nur der String ausgegeben, den finde ich nicht ...


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Code
    +       isyslog("vdr-plugin-xine scale video %s", vidWinRect);


    Probiers mal mit


    Code
    esyslog("vdr-plugin-xine scale video: x: %d, y: %d, width: %d, height: %d"), vidWinRect.X(), vidWinRect.Y(), vidWinRect.Width(), vidWinRect.Height());


    Ciao Louis

  • louis


    Werde ich asap testen, danke, hab mir schon gedacht, das es nicht nur ein kleiner String ist ... ^^


    Wenn Du grad mitliest, es scheint noch ein Problem zu geben wenn nOpacity mit xine als Skin aktiv ist. xine kann ja TrueColor OSD wenn auf "OSD: Einpassen X" konfiguriert und nOpacity läßt sich auch im Betrieb aktivieren und funktioniert stabil. Leider läßt sich der VDR damit nicht starten, ich muß vor einen Neustart immer auf einen anderen Skin umschalten. Hab hier noch nicht weiter geforscht, wäre aber hilfreich das das funktioniert, wenn ich vdr-plugin-nopacity in den älteren PPAs habe. Hast Du evtl. aus dem Bauch eine Idee woran es liegen könnte?


    Regards
    fnu

    HowTo: APT pinning

    2 Mal editiert, zuletzt von fnu ()

  • Wenn Du grad mitliest, es scheint noch ein Problem zu geben wenn nOpacity mit xine als Skin aktiv ist. xine kann ja TrueColor OSD wenn auf "OSD: Einpassen X" konfiguriert und nOpacity läßt sich auch im Betrieb aktivieren und funktioniert stabil. Leider läßt sich der VDR damit nicht starten, ich muß vor einen Neustart immer auf einen anderen Skin umschalten. Hab hier noch nicht weiter geforscht, wäre aber hilfreich das das funktioniert, wenn ich vdr-plugin-nopacity in den älteren PPAs habe. Hast Du evtl. aus dem Bauch eine Idee woran es liegen könnte?


    Das hat schonmal ein User berichtet...der hat sich dann so beholfen, dass er nach dem VDR Start per Script den Skin umgeschossen hat. Ist aber auch nicht so wirklich eine Lösung für den Normaluser :ghost Ich finde dieses Postingt aber gerade nicht mehr. Ich habe auch keine Ahnung, woran das liegen könnte. Stürzt denn der VDR ab oder kommt einfach kein Bild?


    Ich habe mich seit softhddevice nicht mehr mit den Xine varianten beschäftigt und trauere dem auch nicht nach :D Auf meiner Entwicklungsmaschine habe ich gar kein xine mehr installiert.


    Ciao Louis

  • Stürzt denn der VDR ab oder kommt einfach kein Bild?


    Stürzt ab, ich untersuche das, wenn ich das Scaling Ding gelöst habe oder auch nicht.


    vdr-plugin-xine ist ist immer noch eine valide Ausgabefrontend Option für VDR und jeder andere Skin funktioniert auch problemlos ... :ausheck


    Regards
    fnu

    HowTo: APT pinning

  • Ich finde dieses Postingt aber gerade nicht mehr. Ich habe auch keine Ahnung, woran das liegen könnte. Stürzt denn der VDR ab oder kommt einfach kein Bild?

    louis: an die genaue Fehlermeldung im Log kann ich mich auch nicht mehr erinnern, und bin jetzt noch auf Arbeit, aber es hat mit der Verfügbarkeit des TrueColor-Osd zu tun. Vermutlich wird danach schon sehr früh gecheckt wenn nOpacity das aktive Skin ist, und das geht anscheinend schief, wenn das Xine-Frontend noch nicht verbunden ist, vielleicht hilft Dir das, eventuell die Stelle zu finden und das Vorgehen eventuell ein bisschen zu überdenken, wenn es überhaupt geht...


    Ciao, Lucian

  • Code
    esyslog("vdr-plugin-xine scale video: x: %d, y: %d, width: %d, height: %d"), vidWinRect.X(), vidWinRect.Y(), vidWinRect.Width(), vidWinRect.Height());                                                                           ^


    Da ist eine Klammer zuviel, gell? Aber auch ohne mag er es nicht bauen:


    Code
    xineDevice.c: In member function ‘virtual void PluginXine::cXineDevice::ScaleVideo(const cRect&)’:xineDevice.c:4465: error: cannot convert ‘cRect’ to ‘const char*’ for argument ‘2’ to ‘void syslog_with_tid(int, const char*, ...)’xineDevice.c:4469: error: cannot convert ‘cRect’ to ‘const char*’ for argument ‘2’ to ‘void syslog_with_tid(int, const char*, ...)’make[2]: *** [xineDevice.o] Fehler 1


    Sorry, mein Fehler, da war noch eine Zeile zuviel aus einem alten Versuch drin ... :whistling:


    Zoolook


    Wie sollte diese von Dir angesprochene Meldung im syslog aussehen:


    Code
    4466     DLOG("cXineLib::execFuncVideoSize");


    wenn sie dann aktiv würde?


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

Jetzt mitmachen!

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