Posts by ardi

    Hallo,


    SportNG Online-Teil Update


    Ab sofort sind folgende Daten abrufbar:


    • Champions League
    • UEFA-Cup
    • DFB-Pokal


    und für unsere Nachbarn:


    • Österreich - Bundesliga
    • Schweiz - Super League



    viel Spaß


    ardi

    Hallo,


    durch Arbeiten am Online-Teil konnte es Heute zu Problemen/Störungen kommen.


    EDIT: Es kann sein, dass dabei etwas durcheinander gekommen ist.
    Wem etwas auffällt: BITTE Melden



    Danke

    So ich habe jetzt den für mich finalen Patch hochgeladen (wie immer im ersten Post).
    Das mit den Falschfarben haben wir ja nun doch nicht hinbekommen (Danke Holger für deine unermüdlichen Tests).


    Ich habe noch zwei #defines eingebaut, die ich mir beim xineliboutput-Plugin abgesehen habe.


    Code
    1. #define SOFTOSD_ALPHA_CORRECTION 0 /* Alpha-Correction in % von -100% bis +100% */
    2. #define SOFTOSD_ALPHA_CORRECTION_ABS 0 /* Alpha-Correction absolut von -255 bis + 255 */


    Damit kann man z.B. nicht transparente Skins doch noch transparent machen.
    Ich benutze z.B. MoBuntu von EnigmaNG mit -35%


    Wie ich oben schon erwähnte, für mich der letzte/finale Patch.
    Es müsste sich jetzt nur noch jemand finden, der das Setting per OSD macht.


    Tschüß


    Armin (ardi)

    Quote

    Original von HolgerR
    Tut mir echt leid! Test erfolglos. Die Farben sind immernoch falsch. Das OSD "blinkt" kurz auf, aber das Einlenden danach sieht genauso aus wie vorher...


    Ohne das jetzt *wirklich* beurteilen zu können: So langsam bekomme ich auch das Gefühl, dass die "PALETTE_ONLY"-Geschichte sich evtl. tatsächlich als Sackgasse erweist. An der "herkömmlichen" Blendmethode läßt sich nicht evtl. doch noch was beschleunigen?


    Gruß
    Holger


    Ich gebe jetzt auch auf ;(. Ich denke du hast recht und wir kommen hier nicht weiter.
    An der "herkömmlichen" Blendmethode lässt sich zumindest vdr-seitig nichts machen. Eventuell im Gerätetreiber. Das ist mir aber ein paar Level zu hoch.


    ardi

    Quote

    Original von HolgerR
    Danke. Verstanden und getestet. Leider keine Besserung. Die Art der Falschfarben ändert sich, aber vorhanden sind sie sowohl mit 16 als auch mit 8 immernoch. :(


    Gruß
    Holger


    Ich bekomme noch ne Kriese ;)


    ... o.k. noch ein Test

    Code
    1. #ifdef SOFTOSD
    2. int steps = fading < 0 ? SOFTOSD_FADEOUT_STEPS : SOFTOSD_FADEIN_STEPS;
    3. - if(SOFTOSD_ON && 0<fade && fade<steps)
    4. + if(SOFTOSD_ON && 1<fade && fade<steps)


    nicht wunder ... Das Osd sollte kurz aufblitzen und dann einblenden. Is nur ein Test.


    ardi


    Code
    1. - if(Colors[i] & 0xFF000000 && !Alpha) Alpha = 1;
    2. + if(Colors[i] & 0xFF000000 && Alpha<16) Alpha = 16;


    oder

    Code
    1. - if(Colors[i] & 0xFF000000 && !Alpha) Alpha = 1;
    2. + if(Colors[i] & 0xFF000000 && Alpha<8) Alpha = 8;


    ardi

    Quote

    Original von skiller2k1
    ardi : Habe jetzt mit "vdr-softosd-0.0.4.diff" und deiner letzten Änderung in der osdbase.c getestet (mit Skin TNG) und es läuft perfekt!


    Das mit dem leeren Menü war mir auch aufgefallen - hatte es aber nicht als "Fehler" gedeutet.


    Grüße
    Michi


    Ich möchte nicht behaupten bzw. habe nicht behauptet, dass es sich um einen Fehler handelt. Aber es ist optisch etwas hinderlich für meinen Patch ;)


    ardi

    Quote

    Original von ardi
    Habe es trotztem etwas komplizierter gemacht, um die Funktion dieser Zeile nicht ganz zu killen ;)

    Code
    1. cOsdMenu::~cOsdMenu()
    2. {
    3. + static int depht = 0;
    4. + depht++;
    5. free(title);
    6. delete subMenu;
    7. free(status);
    8. + if(displayMenuCount>1 && !--depht)
    9. displayMenu->Clear();
    10. cStatus::MsgOsdClear();


    Das kommt nun davon: Wenn man den Code kurz vorm Veröffentlichen noch einmal umstellt, dann schleichen sich doch noch kleine Fehler ein. ;(
    Die zwei Bedingungen in der if-Anweisung müssen getauscht werden.

    Code
    1. cOsdMenu::~cOsdMenu()
    2. {
    3. + static int depht = 0;
    4. + depht++;
    5. free(title);
    6. delete subMenu;
    7. free(status);
    8. + if(!--depht && displayMenuCount>1)
    9. displayMenu->Clear();
    10. cStatus::MsgOsdClear();


    ardi

    Quote

    Original von ardi
    Habe es trotztem etwas komplizierter gemacht, um die Funktion dieser Zeile nicht ganz zu killen ;)

    Code
    1. cOsdMenu::~cOsdMenu()
    2. {
    3. + static int depht = 0;
    4. + depht++;
    5. free(title);
    6. delete subMenu;
    7. free(status);
    8. + if(displayMenuCount>1 && !--depht)
    9. displayMenu->Clear();
    10. cStatus::MsgOsdClear();


    Das kommt nun davon: Wenn man den Code kurz vorm Veröffentlichen noch einmal umstellt, dann schleichen sich doch noch kleine Fehler ein. ;(
    Die zwei Bedingungen in der if-Anweisung müssen getauscht werden.

    Code
    1. cOsdMenu::~cOsdMenu()
    2. {
    3. + static int depht = 0;
    4. + depht++;
    5. free(title);
    6. delete subMenu;
    7. free(status);
    8. + if(!--depht && displayMenuCount>1)
    9. displayMenu->Clear();
    10. cStatus::MsgOsdClear();


    ardi

    Quote

    Original von HolgerR
    Ja! Jetzt blendet's wieder soft! BUTTERWEICH. Die Falschfarben sind leider noch da; "1" reicht also leider nicht und bei "2" ist's auch noch sichtbar. Aber das ist auf jeden Fall die beste Version bisher.


    Versuchs bitte noch mal mit 16 (0x10) ggf. mit 8


    ardi

    Quote

    Original von HolgerR


    bin ich eigentlich der einzige, der hier noch Ardis aktuellste Anpassungen testet? Wäre ja doch ganz interessant zu wissen, wie sich das ganze bei anderen verhält.


    Anscheinend bist du der EINZIGE.


    Quote

    Original von HolgerR


    Magst du nicht vielleicht noch mal 'nen aktualisierten Patch hochladen?


    Jepp. Ist Upp. Wie üblich im ersten Post.


    Sollten Keine Falschfarben mehr zu sehen sein, wird sicherlich auch SOFTOSD_PALETTE_ONLY = 2 überflüssig (SOFTOSD_PALETTE_ONLY =1 sollte dann reichen).


    ardi

    Hallo,


    Ausblenden der Menüs.


    Irgend wie hatte ich immer den Eindruck, daß das Ausblenden der Menüs nicht richtig wirkt. Als ich mal genauer hingesehen habe, habe festgestellt, das die Schrift der Menüpunkte sofort verschwindet und anschließend ein leeres Menü ausgeblendet wird.



    Um diesen Effekt zu umgehen muß der vdr grpatcht werden. Genauer die osdbase.c


    Der Einfache Weg:

    Code
    1. cOsdMenu::~cOsdMenu()
    2. {
    3. free(title);
    4. delete subMenu;
    5. free(status);
    6. - displayMenu->Clear();
    7. cStatus::MsgOsdClear();


    Auf die Schnelle konnte ich keine negative Auswirkung durch das Entfernen der "displayMenu->Clear();"-Zeile erkennen.


    Habe es trotztem etwas komplizierter gemacht, um die Funktion dieser Zeile nicht ganz zu killen ;)

    Code
    1. cOsdMenu::~cOsdMenu()
    2. {
    3. + static int depht = 0;
    4. + depht++;
    5. free(title);
    6. delete subMenu;
    7. free(status);
    8. + if(displayMenuCount>1 && !--depht)
    9. displayMenu->Clear();
    10. cStatus::MsgOsdClear();


    ardi

    Hallo,


    Ausblenden der Menüs.


    Irgend wie hatte ich immer den Eindruck, daß das Ausblenden der Menüs nicht richtig wirkt. Als ich mal genauer hingesehen habe, habe festgestellt, das die Schrift der Menüpunkte sofort verschwindet und anschließend ein leeres Menü ausgeblendet wird.



    Um diesen Effekt zu umgehen muß der vdr grpatcht werden. Genauer die osdbase.c


    Der Einfache Weg:

    Code
    1. cOsdMenu::~cOsdMenu()
    2. {
    3. free(title);
    4. delete subMenu;
    5. free(status);
    6. - displayMenu->Clear();
    7. cStatus::MsgOsdClear();


    Auf die Schnelle konnte ich keine negative Auswirkung durch das Entfernen der "displayMenu->Clear();"-Zeile erkennen.


    Habe es trotztem etwas komplizierter gemacht, um die Funktion dieser Zeile nicht ganz zu killen ;)

    Code
    1. cOsdMenu::~cOsdMenu()
    2. {
    3. + static int depht = 0;
    4. + depht++;
    5. free(title);
    6. delete subMenu;
    7. free(status);
    8. + if(displayMenuCount>1 && !--depht)
    9. displayMenu->Clear();
    10. cStatus::MsgOsdClear();


    ardi


    Dann versuch es mal mit min(0x01,...
    statt min(0x10, ...


    ardi

    Quote

    Original von HolgerR
    Hmmm... sorry! FadeIn funktioniert jetzt wieder, aber der Gesamteindruck ist leider schlechter.
    Hätte gerne was Besseres berichtet :( Bitte nicht entmutigen lassen!


    Die Farben sind aber o.k. gewesen?


    Wenn ja, dann wirft die Karte/der Treiber offensichtlich gänzlich transparente Pixel unabhängig von dessen Farbe (ist ja egal, da eh transparent und nicht sichtbar) in einen Topf. Wenn dann versucht wird die Pixel sichtbar zu machen, kommt dann einiges durcheinander.


    Das Stocken könnte daher kommen, dass ich das Minimum des Alphawerts zu hoch angesetzt habe. Mit Alpha = min(0x1, ... könnte es ohne Stocken funktionieren.


    Quote

    Wirkt insgesamt leider sehr ruckelig


    Beim FadeOut kann das eigentlich nicht stimmen, weil ja nur das Minimum des Alphawerts beschränkt wird. Alles andere ist unverändert geblieben.


    Beim FadeIn könnte es zutreffen.


    ardi

    kris


    hier gehts um SOFTOSD_PALETTE_ONLY =1 oder 2 und nur dann wenn du Falschfarben hast





    Gut. Die Fade-Zeit wird ja wie die Steps halbiert. Darum siehst du wahrscheinlich bei kleinen Menüs nichts mehr.


    So. Noch ein Versuch. Die letzte Änderung wieder rückgänging machen und folgendes bitte Testen:



    ardi

    An alle Falschfarben ;) ;)


    ... macht bitte mal noch folgenden Test:


    Code
    1. if (fade == 0 && (!shown || Bitmap->Dirty(x1, y1, x2, y2)) && Bitmap->Colors(NumColors) && SOFTOSD_MAX_OSD_SIZE>GetOsdSize())
    2. {
    3. - for(fade=1; fade<=SOFTOSD_FADEIN_STEPS; fade++)
    4. + for(fade=SOFTOSD_FADEIN_STEPS/2; fade<=SOFTOSD_FADEIN_STEPS; fade++)
    5. {
    6. int64_t flush_start = cTimeMs::Now();
    7. Flush();


    ardi

    Quote

    Original von HolgerR
    Ich greife aber meine Frage von oben noch mal auf: Wird es diese sehr variable Form des Patches auch für xineliboutput geben?


    Ja. Aber nicht ganz so variabel ... weil nicht nötig ;)
    Getrenntes FadeIn/FadeOut mit Rate und Steps
    eventuell MAX_OSD_SIZE (glaube aber eher nicht)


    ardi


    EDIT: Könnte mir mal jemand, der mit SOFTOSD_PALETTE_ONLY Falschfarben hat, einen screencast erstellen? Ich habe da vielleicht noch eine Idee; müsste mir aber mal ansehen, wie das ganze aussieht. Wenn möglich mit einer geringen Rate und höheren Steps (z.B. 16Steps@5Hz o.ä.)


    EDIT 2: Wie sehen eigemtlich die Farben beim Ausblenden aus? Auch talsch? Und sind alle Skins betroffen?


    ardi

    Hallo,


    Quote

    Original von ardi
    Ich habe einen Test-Ticker eingerichtet. Damit Ihr schon mal testen könnt (das nächste Spiel ist ja erst am 28.11.).


    ich habe jetzt den Test-Ticker abgeschaltet.



    ardi