EPG in EPG-Liste flackert beim Umschalten

Wünsche, Anträge, Fehlermeldungen
olli96
Interessierter
Interessierter
Beiträge: 24
Registriert: Donnerstag 10. September 2009, 08:17

EPG in EPG-Liste flackert beim Umschalten

Beitrag von olli96 »

Ich entschuldige mich schon einmal für den Titel, besser ging es gerade nicht.

Bei Blättern ich der EPG-Liste (rote Taste und Pfeil hoch bzw. runter) kommt es beim Wechsel des Kanals zu einem kurzen Flackern den EPG-Eintrages.
Es wird der alte Eintrag des vorherigen Kanals gelöscht und man sieht wie der Eintrag kurz ganz weiß ausgefüllt wird.
Diesen Zustand habe ich mal in einem Bild versucht darzustellen :blind

Kann daran jemand etwas ändern?
Bild

MfG
Olli96
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von GetAway »

Fix: reduce flickering of infobox in channellist and audioplayer

Patch:reduce_flickering_infobox.diff
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von rhabarber1848 »

FlatTV
Einsteiger
Einsteiger
Beiträge: 110
Registriert: Freitag 9. Januar 2009, 18:22

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von FlatTV »

jau, "flackern" is wech

cu FlatTV
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von rhabarber1848 »

Ja, aber nun klappt etwas anders nicht mehr:
- Sender einschalten
- OK drücken für Programm-Liste
- die Box mit den Infos zur laufenden Sendung unten ist weiß umrandet
- ? drücken für EPG-Langtext
- Home drücken, um zur Programm-Liste zurückzukehren
- die Box mit den Infos zur laufenden Sendung unten ist nicht mehr weiß umrandet
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von GetAway »

Jo, dann mach in der Hide-Funktion mal alreadyPainted = false; rein.
Hab gerade gesehen das die hide-Funktion ja an verschiedenen Stellen
ausgeführt wird.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von rhabarber1848 »

GetAway hat geschrieben:Jo, dann mach in der Hide-Funktion mal alreadyPainted = false; rein.
So?

Code: Alles auswählen

--- apps/tuxbox/neutrino/src/gui/channellist.cpp 2010-05-25 21:52:11.000000000 +0200
+++ apps/tuxbox/neutrino/src/gui/channellist.cpp      2010-05-25 21:54:34.000000000 +0200
@@ -503,6 +503,7 @@
 {
        frameBuffer->paintBackgroundBoxRel(x, y, width, height+ info_height+ 5);
        clearItem2DetailsLine ();
+       alreadyPainted = false;
        //displayNext = 0; // always start with current events
 }
Ich gebe zu, ich habe geraten, welche Funktion Du meinst ;)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von rhabarber1848 »

rhabarber1848 hat geschrieben:So?
Funktioniert, aber es gibt ein kurzes Flackern, nach
rhabarber1848 hat geschrieben:- Home drücken, um zur Programm-Liste zurückzukehren
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von GetAway »

Ja, eleganter wäre natürlich eine Funktion die nur Rahmen, mit/ohne Rundung
in verschiedenen Stärken zeichnen könnte. So werden halt immer 2 Rechtecke
übereinander gezeichnet, daher das kurze flackern, besonders wenn das darunter-
liegende sehr hell ist.
FlatTV
Einsteiger
Einsteiger
Beiträge: 110
Registriert: Freitag 9. Januar 2009, 18:22

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von FlatTV »

Wie sieht es denn aus, wenn man 4/6 kleine Rechtecke zeichnet?
Also nur schmale oben/unten und links/rechts.

cu FlatTV
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von dbt »

Weshalb an der Stelle bis vor kurzem noch nichts rund war, hatte schon seinen Grund. Das Rendern mit jeder Menge Boxes eskaliert hier nur. Grundsätzlich würde ich auch sagen, dass man das nur im Framebuffer mit einer eigenen Funktion macht, die nur einen Rahmen rendert. So wird das nur Gefrickel.
FlatTV
Einsteiger
Einsteiger
Beiträge: 110
Registriert: Freitag 9. Januar 2009, 18:22

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von FlatTV »

Ich würde bis dahin wieder "eckige Ecken" anzeigen

Edit: Patch entfernt

cu FlatTV
Zuletzt geändert von FlatTV am Donnerstag 27. Mai 2010, 13:52, insgesamt 1-mal geändert.
FlatTV
Einsteiger
Einsteiger
Beiträge: 110
Registriert: Freitag 9. Januar 2009, 18:22

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von FlatTV »

Das ganze hat mir keine Ruhe gelassen :roll:
Mit diesem Patch flackert es mit meiner Box nicht mehr und die Ecken sind gerundet.

Code: Alles auswählen

diff -Naurw ./tuxbox_source/apps/tuxbox/neutrino/src/gui/channellist.cpp ./tuxbox_diff/apps/tuxbox/neutrino/src/gui/channellist.cpp
--- ./tuxbox_source/apps/tuxbox/neutrino/src/gui/channellist.cpp	2010-05-26 17:38:28.020861479 +0200
+++ ./tuxbox_diff/apps/tuxbox/neutrino/src/gui/channellist.cpp	2010-05-27 09:17:31.893517302 +0200
@@ -503,6 +503,7 @@
 {
 	frameBuffer->paintBackgroundBoxRel(x, y, width, height+ info_height+ 5);
 	clearItem2DetailsLine ();
+	alreadyPainted = false;
 	//displayNext = 0; // always start with current events
 }
 
@@ -1018,8 +1019,10 @@
 	{
 		if (!alreadyPainted) //reduce flickering of infobox
 		{
-			frameBuffer->paintBoxRel(x - 4, y + height,        20, info_height, COL_MENUCONTENT_PLUS_1, RADIUS_MID);
-			frameBuffer->paintBoxRel(x - 3, y + height, width + 3, info_height, COL_MENUCONTENT_PLUS_6, RADIUS_MID);
+			frameBuffer->paintBoxRel(x+4, y+height ,width-10, 2, COL_MENUCONTENT_PLUS_6);
+			frameBuffer->paintBoxRel(x+4, y+height+info_height-2, width-10, 2, COL_MENUCONTENT_PLUS_6);
+			frameBuffer->paintBoxRel(x-3, y+height, 20, info_height, COL_MENUCONTENT_PLUS_6, RADIUS_MID, CORNER_LEFT);
+			frameBuffer->paintBoxRel(x+width-20, y+height, 20, info_height, COL_MENUCONTENT_PLUS_6, RADIUS_MID, CORNER_RIGHT);
 			alreadyPainted = true;		
 		}		
 		frameBuffer->paintBoxRel(x + 2, y + height + 2, width - 4, info_height - 4, COL_MENUCONTENTDARK_PLUS_0, RADIUS_MID);
cu FlatTV
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von GetAway »

Super, sollte nun auch beim firstPaint nicht mehr flackern.
Obere Zeile muss aber drin bleiben, sonst fehlt links der Schatten. :wink:

Patch: reduce_flickering_2nd_try.diff

Edit:
rhabarber1848 hat geschrieben:Ja, aber nun klappt etwas anders nicht mehr:
- ? drücken für EPG-Langtext
- Home drücken, um zur Programm-Liste zurückzukehren
- die Box mit den Infos zur laufenden Sendung unten ist nicht mehr weiß umrandet
Da sollte erst mal rein, damit das auch wieder funktioniert.
Den Bresenham im frambuffer.cpp fasse ich eh nicht an.

Edit: **push**
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von Gaucho316 »

Ich habe mir den "2nd try" heute mal mit ins Image eingebaut. Funktionieren tut's. Ich habe allerdings keinen Vergleich zum "1st try" (also dem aktuellen CVS-Stand), da ich den nie auf der Box hatte.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von dbt »

Es ist aber nach wie vor besser, eine paintFrame() Funktion im Framebuffer dafür zu nehmen.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von Gaucho316 »

Das mag ja sein. Aber so wie ich das verstanden habe, funktioniert der aktuelle CVS-Stand nicht richtig. Eine vernünftige Lösung kann man ja dann später noch nachliefern.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von rhabarber1848 »

GetAway hat geschrieben:Patch: reduce_flickering_2nd_try.diff
In der Version dieses Patches vom 27.05.2010, 17:52 Uhr, ist das Problem:
GetAway hat geschrieben:
rhabarber1848 hat geschrieben:Ja, aber nun klappt etwas anders nicht mehr:
- ? drücken für EPG-Langtext
- Home drücken, um zur Programm-Liste zurückzukehren
- die Box mit den Infos zur laufenden Sendung unten ist nicht mehr weiß umrandet
nicht mehr vorhanden.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von Gaucho316 »

Kommt GetAways Patch nun noch ins CVS? Falls nicht, sollte zumindest der Teil aus diesem Posting rein, damit der Rahmen nicht verschwindet:
http://forum.tuxbox.org/forum/viewtopic ... 12#p376612
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von rhabarber1848 »

GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von GetAway »

Hier habe ich mal eine neue Funktion für den Framebuffer gebaut, die Rahmen zeichnet.
Dadurch ist ein übereinander legen von 2 Boxen bzw. umständlichen drumherum zeichnen
um einen Rahmen zu erzeugen, nicht mehr nötig und verhindert das überhaupt
eine Situation entsteht bei der es Flickern könnte.
Hier ein paar Beispiele.
Bild

Umgesetzt habe ich es gleich in der channelist.cpp und audioplayer.cpp
Bitte testen.

Patch: new_function_paintBoxFrame.diff
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von dbt »

Danke! Schon mal nicht schlecht. Interessanter wäre es evtl. wenn man das als Parameter für paintBoxRel() angibt, also so ähnlich wie das bei den Radien gelöst ist mit den verschiedenen Varianten für oben, unten, links, rechts, breite etc. und als i-Tüpfelchen ein Parameter für Beleuchtung, was dann einen plastischen Effekt im GUI-Design hätte. :wink:

Bild
Ist so sicher bei der Auflösung nur begrenzt umsetztbar, aber für NeutrinoHD hätte das was.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von GetAway »

Ja, mach mal. :wink:
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von dbt »

:lol: Wenn mal Zeit wäre, da siehts momentan ebbe aus.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: EPG in EPG-Liste flackert beim Umschalten

Beitrag von GetAway »

Ich würde mich freuen, wenn das mal ins CVS fließen würde, ist jedenfalls
sauberer als die jetzige Lösung und läßt sich immer noch erweitern.

Ja, und mit Sicherheit ist das was für die Cooli, da flackerts genauso, aus dem gleichen Grund.