[Spark] Schönheitsfehler
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
[Spark] Schönheitsfehler
1. Schriftgrössenfaktor nur 100<==>200 möglich über Scart. In der Hilfe steht min50 max200.
2. Lüftersteuerung könnte bei Spark ausgeblendet werden.
3. Anfangsverzögerung bei mir optimal mit 400 und Wiederholung aus 100
Sonst alles super
2. Lüftersteuerung könnte bei Spark ausgeblendet werden.
3. Anfangsverzögerung bei mir optimal mit 400 und Wiederholung aus 100
Sonst alles super
-
- Einsteiger
- Beiträge: 362
- Registriert: Mittwoch 14. Dezember 2005, 03:25
Re: [Spark] Schönheitsfehler
@seife:
warum malst Du nicht erst in einer bestimmte Groesse (OSD Groesse) und denn das alles komplett blitten lassen (copy_area)?
die Spark Box ist keine Low Mem Box man kann definitiv auf dem bpamem device und was darauf von Buffer kommt verzichten:
- malen
- font rendern
- icon oder bild oder auch wie immer was da alles drauf gemalt werden soll.
danach das ganze blitten, damit hat man in allen Video Moden (ob Pal oder 1080i)die gleiche optische OSD.
es ist mehr Arbeit wie das jetzt bei Dir implementiert ist gerade das Neutrino nicht allen Menues mit einem standard Widget baut.
und ja der stmfb kann das sehr gut.
und nein kann keinen Patch liefern ;-)
warum malst Du nicht erst in einer bestimmte Groesse (OSD Groesse) und denn das alles komplett blitten lassen (copy_area)?
die Spark Box ist keine Low Mem Box man kann definitiv auf dem bpamem device und was darauf von Buffer kommt verzichten:
- malen
- font rendern
- icon oder bild oder auch wie immer was da alles drauf gemalt werden soll.
danach das ganze blitten, damit hat man in allen Video Moden (ob Pal oder 1080i)die gleiche optische OSD.
es ist mehr Arbeit wie das jetzt bei Dir implementiert ist gerade das Neutrino nicht allen Menues mit einem standard Widget baut.
und ja der stmfb kann das sehr gut.
und nein kann keinen Patch liefern ;-)
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [Spark] Schönheitsfehler
Hast du das mal wirklich probiert?
gibt es einen Modus, wo der stmfb "live" skaliert?
Alles andere ist zu langsam: man müsste lauter sequence points einbauen, wo dann geblittet wird, wenn das Bild komplett aufgebaut ist. Dummerweise ist das im Code aber nirgends so vorgesehen. Und das komplette Bild blitten ist nicht wirklich schnell, also das will man nicht 25x pro sekunde oder so machen.
Wenn du das schon irgendwo am laufen hast und code dazu hast, dann immer her damit, es muss kein neutrino patch sein.
Und so wie ich das verstanden habe, braucht man für bestimmte funktionen halt doch den bpamem, weil der Speicher zusammenhängend sein muss, damit der Blitter damit arbeiten kann. Ausserdem hängt das an einem eigenen Speicherbus und dürfte somit schneller sein. Aber nur wenn ich die Doku richtig gelesen habe
gibt es einen Modus, wo der stmfb "live" skaliert?
Alles andere ist zu langsam: man müsste lauter sequence points einbauen, wo dann geblittet wird, wenn das Bild komplett aufgebaut ist. Dummerweise ist das im Code aber nirgends so vorgesehen. Und das komplette Bild blitten ist nicht wirklich schnell, also das will man nicht 25x pro sekunde oder so machen.
Wenn du das schon irgendwo am laufen hast und code dazu hast, dann immer her damit, es muss kein neutrino patch sein.
Und so wie ich das verstanden habe, braucht man für bestimmte funktionen halt doch den bpamem, weil der Speicher zusammenhängend sein muss, damit der Blitter damit arbeiten kann. Ausserdem hängt das an einem eigenen Speicherbus und dürfte somit schneller sein. Aber nur wenn ich die Doku richtig gelesen habe
-
- Neugieriger
- Beiträge: 17
- Registriert: Mittwoch 27. November 2002, 21:36
Re: [Spark] Schönheitsfehler
es gibt keinen live modus soweit ich das weiß!
in e2 wird nicht zyklisch der framebuffer kopiert sondern nachdem ein fenster oder element gerendert wurde.
ich glaube nicht das es einen großen perfomance unterschied macht ob jede linie einzeln skaliert wird und live auf dem tv gezaubert wird oder eben nachdem die gui gezeichnet wurde der framebuffer kopiert wird.
zyklisch 25 mal pro sekunde abfragen wäre nur nötig wenn die gui animationen darstellt ...
in e2 wird nicht zyklisch der framebuffer kopiert sondern nachdem ein fenster oder element gerendert wurde.
ich glaube nicht das es einen großen perfomance unterschied macht ob jede linie einzeln skaliert wird und live auf dem tv gezaubert wird oder eben nachdem die gui gezeichnet wurde der framebuffer kopiert wird.
zyklisch 25 mal pro sekunde abfragen wäre nur nötig wenn die gui animationen darstellt ...
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [Spark] Schönheitsfehler
Das Problem ist, dass es bei neutrino genügend stellen gibt, wo direkt in den FB gemalt wird, und deas rendern ist nie wirklich "fertig". Ich habe das zuerst probiert, weil mir der scaling-fb code auch nicht gefallen hat, aber das war insgesamt zu langsam.
Randbedingung: ich will das nur in der CFrameBuffer-Klasse implementieren und nicht spark-spezifischen Code über's ganze neutrino verteilen. Derselbe Code muss auf PC, Tripledragon und spark funktionieren.
Insofern ist der momentane Code nicht schön, aber er funktioniert unter den gegebenen Randbedingungen.
Randbedingung: ich will das nur in der CFrameBuffer-Klasse implementieren und nicht spark-spezifischen Code über's ganze neutrino verteilen. Derselbe Code muss auf PC, Tripledragon und spark funktionieren.
Insofern ist der momentane Code nicht schön, aber er funktioniert unter den gegebenen Randbedingungen.
-
- Einsteiger
- Beiträge: 362
- Registriert: Mittwoch 14. Dezember 2005, 03:25
Re: [Spark] Schönheitsfehler
genauso wie Hellmaster1024 geschrieben hat.in e2 wird nicht zyklisch der framebuffer kopiert sondern nachdem ein fenster oder element gerendert wurde.
doch doch, hab einen Kanal liste vom 4000 Kanälen (oder auch mehr) mit icons für scrambled Kanals un jpeg Sender logosdie blitz schnell aufgezeichnet wird nach dem OK Taste drücken wenn ich mit dem alten neutrino frambuffer Code im sh4-git vergleiche (wo jede Linie und Buchstabe und Icon einzeln scaliert werden), also erst das komplette Fenster (pixel + font + icon + bild) denn blitten.ich glaube nicht das es einen großen perfomance unterschied macht ob jede linie einzeln skaliert wird und live auf dem tv gezaubert wird oder eben nachdem die gui gezeichnet wurde der framebuffer kopiert wird.
der bpamem bringt einen Vorteil für die jpeg Bilder damit wird der HW accel benutzt, aber neutrino picviewer macht das sehr gut ;-)
hier das ganz etwa:
Code: Alles auswählen
#ifdef FB_BLIT
#ifdef __sh__
void CFrameBuffer::blit(int x, int y, int dx, int dy)
{
int srcXa = x;
int srcYa = y;
int srcXb = x + dx > DEFAULT_XRES ? DEFAULT_XRES : x + dx;
int srcYb = y + dy > DEFAULT_YRES ? DEFAULT_YRES : y + dy;
STMFBIO_BLT_DATA bltData;
memset(&bltData, 0, sizeof(STMFBIO_BLT_DATA));
bltData.operation = BLT_OP_COPY;
// src
bltData.srcOffset = 1920 *1080 * 4;
bltData.srcPitch = xRes * 4 /*stride*/;
bltData.src_left = srcXa;
bltData.src_top = srcYa;
bltData.src_right = srcXb;
bltData.src_bottom = srcYb;
bltData.srcFormat = SURF_BGRA8888;
bltData.srcMemBase = STMFBGP_FRAMEBUFFER;
/* calculate dst/blit factor */
// get variable screeninfo
if (ioctl(fd, FBIOGET_VSCREENINFO, &screeninfo) == -1)
{
perror("frameBuffer <FBIOGET_VSCREENINFO>");
}
xFactor = (double)screeninfo.xres/(double)xRes;
yFactor = (double)screeninfo.yres/(double)yRes;
int desXa = srcXa * xFactor;
int desYa = srcYa * yFactor;
int desXb = srcXb * xFactor;
int desYb = srcYb * yFactor;
/* dst */
bltData.dstOffset = 0;
bltData.dstPitch = screeninfo.xres * 4;
bltData.dst_left = desXa;
bltData.dst_top = desYa;
bltData.dst_right = desXb;
bltData.dst_bottom = desYb;
bltData.dstFormat = SURF_BGRA8888;
bltData.dstMemBase = STMFBGP_FRAMEBUFFER;
if ( (bltData.dst_right > screeninfo.xres) || (bltData.dst_bottom > screeninfo.yres) )
{
printf("CFrameBuffer::blit: values out of range desXb:%d desYb:%d\n", bltData.dst_right, bltData.dst_bottom);
}
if (ioctl(fd, STMFBIO_BLT, &bltData ) < 0)
perror("STMFBIO_BLIT");
if(ioctl(fd, STMFBIO_SYNC_BLITTER) < 0)
perror("ioctl STMFBIO_SYNC_BLITTER");
}
#endif
#endif
neutrino ist nett und ruft seine menues immer auf die gleiche weise:
- einmal hide:
Code: Alles auswählen
void CMenuWidget::hide()
{
frameBuffer->paintBackgroundBoxRel(x, y, width + SCROLLBAR_WIDTH, height + ((RADIUS_MID * 3) + 1) ); //15=sb_width, ((RADIUS_MID * 3) + 1)= foot
#ifdef FB_BLIT
frameBuffer->blit(x - 10, y - 10, width + SCROLLBAR_WIDTH + 10, height + ((RADIUS_MID * 3) + 1) + 10 );
#endif
}
einmal nachdem und noch in der schleife um den cursor und der vorhiger postion zu zeigen
Code: Alles auswählen
int CMenuWidget::exec(CMenuTarget * parent, const std::string &)
{
neutrino_msg_t msg;
neutrino_msg_data_t data;
int pos = 0;
exit_pressed = false;
if (parent)
parent->hide();
bool fadeIn = false /*g_settings.widget_fade*/;
bool fadeOut = false;
int fadeValue;
uint32_t fadeTimer = 0;
if ( fadeIn )
{
fadeValue = 0x10;
frameBuffer->setBlendLevel(fadeValue);
}
else
fadeValue = g_settings.gtx_alpha;
paint();
#ifdef FB_BLIT
frameBuffer->blit(x, y, width + SCROLLBAR_WIDTH, height + ((RADIUS_MID * 3) + 1) );
#endif
int retval = menu_return::RETURN_REPAINT;
unsigned long long timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_MENU] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_MENU]);
if ( fadeIn )
fadeTimer = g_RCInput->addTimer( FADE_TIME, false );
//control loop
do {
g_RCInput->getMsgAbsoluteTimeout(&msg, &data, &timeoutEnd);
if ( msg <= CRCInput::RC_MaxRC )
{
timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_MENU] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_MENU]);
}
int handled= false;
for (unsigned int i= 0; i< items.size(); i++)
{
CMenuItem * titem = items[i];
if ((titem->directKey != CRCInput::RC_nokey) && (titem->directKey == msg))
{
if (titem->isSelectable())
{
items[selected]->paint( false, (i == items.size()-1) );
selected= i;
msg= CRCInput::RC_ok;
}
else
{
// swallow-key...
handled = true;
}
break;
}
}
if (!handled)
{
switch (msg)
{
case (NeutrinoMessages::EVT_TIMER):
if(data == fadeTimer)
{
if (fadeOut)
{
// disappear
fadeValue -= 0x10;
if (fadeValue <= 0x10)
{
fadeValue = g_settings.gtx_alpha;
g_RCInput->killTimer (fadeTimer);
msg = CRCInput::RC_timeout;
}
else
frameBuffer->setBlendLevel(fadeValue);
}
else
{
// appears
fadeValue += 0x10;
if (fadeValue >= g_settings.gtx_alpha)
{
fadeValue = g_settings.gtx_alpha;
g_RCInput->killTimer(fadeTimer);
fadeIn = false;
frameBuffer->setBlendLevel(g_settings.gtx_alpha);
}
else
frameBuffer->setBlendLevel(fadeValue);
}
}
else
{
if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all )
{
retval = menu_return::RETURN_EXIT_ALL;
msg = CRCInput::RC_timeout;
}
}
break;
case (CRCInput::RC_page_up) :
case (CRCInput::RC_page_down) :
if(msg == CRCInput::RC_page_up)
{
if(current_page)
{
pos = (int) page_start[current_page] - 1;
for (unsigned int count=pos ; count > 0; count--)
{
CMenuItem* item = items[pos];
if ( item->isSelectable() )
{
if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page]))
{
items[selected]->paint( false, (pos == (int) items.size()-1) );
item->paint( true, (count == items.size()-1) );
selected = pos;
}
else
{
selected=pos;
paintItems();
}
break;
}
pos--;
}
}
else
{
pos = 0;
for (unsigned int count=0; count < items.size(); count++)
{
CMenuItem* item = items[pos];
if ( item->isSelectable() )
{
if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page]))
{
items[selected]->paint( false, (count == items.size()-1) );
item->paint( true, (count == items.size()-1) );
selected = pos;
}
else
{
selected=pos;
paintItems();
}
break;
}
pos++;
}
}
}
else if(msg==CRCInput::RC_page_down)
{
pos = (int) page_start[current_page + 1];// - 1;
if(pos >= (int) items.size())
pos = items.size()-1;
for (unsigned int count=pos ; count < items.size(); count++)
{
CMenuItem* item = items[pos];
if ( item->isSelectable() )
{
if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page]))
{
items[selected]->paint( false );
item->paint( true );
selected = pos;
}
else
{
selected=pos;
paintItems();
}
break;
}
pos++;
}
}
break;
case (CRCInput::RC_up) :
case (CRCInput::RC_down) :
case (CRCInput::RC_vfdup):
case (CRCInput::RC_vfddown):
{
//search next / prev selectable item
for (unsigned int count=1; count< items.size(); count++)
{
if (msg == CRCInput::RC_up || msg == CRCInput::RC_vfdup)
{
pos = selected - count;
if ( pos < 0 )
pos += items.size();
}
else if(msg == CRCInput::RC_down || msg == CRCInput::RC_vfddown)
{
pos = (selected+ count)%items.size();
}
CMenuItem* item = items[pos];
if ( item->isSelectable() )
{
if ((pos < (int)page_start[current_page + 1]) && (pos >= (int)page_start[current_page]))
{
// Item is currently on screen
//clear prev. selected
items[selected]->paint( false, (selected == (int) (page_start[current_page + 1]-1)) );
//select new
item->paint( true );
selected = pos;
}
else
{
selected=pos;
paintItems();
}
break;
}
}
}
break;
case (CRCInput::RC_left):
case (CRCInput::RC_vfdleft):
if(!(items[selected]->can_arrow) || g_settings.menu_left_exit)
{
msg = CRCInput::RC_timeout;
break;
}
case (CRCInput::RC_right):
case (CRCInput::RC_ok):
case (CRCInput::RC_vfdright):
case (CRCInput::RC_vfdok):
{
if(hasItem())
{
//exec this item...
CMenuItem* item = items[selected];
item->msg = msg;
if ( fadeIn )
{
g_RCInput->killTimer(fadeTimer);
frameBuffer->setBlendLevel(g_settings.gtx_alpha);
fadeIn = false;
}
int rv = item->exec( this );
switch ( rv )
{
case menu_return::RETURN_EXIT_ALL:
retval = menu_return::RETURN_EXIT_ALL;
case menu_return::RETURN_EXIT:
msg = CRCInput::RC_timeout;
break;
case menu_return::RETURN_REPAINT:
paint();
break;
}
}
else
msg = CRCInput::RC_timeout;
}
break;
case (CRCInput::RC_home):
case (CRCInput::RC_vfdexit):
exit_pressed = true;
msg = CRCInput::RC_timeout;
break;
case (CRCInput::RC_timeout):
break;
case (CRCInput::RC_sat):
case (CRCInput::RC_favorites):
g_RCInput->postMsg (msg, 0);
//close any menue on setup-key
case (CRCInput::RC_setup):
case (CRCInput::RC_vfdmenu):
{
msg = CRCInput::RC_timeout;
retval = menu_return::RETURN_EXIT_ALL;
}
break;
default:
if ( CNeutrinoApp::getInstance()->handleMsg( msg, data ) & messages_return::cancel_all )
{
retval = menu_return::RETURN_EXIT_ALL;
msg = CRCInput::RC_timeout;
}
}
if(msg == CRCInput::RC_timeout)
{
if ( fadeIn )
{
g_RCInput->killTimer(fadeTimer);
fadeIn = false;
}
if ((!fadeOut) && false /*g_settings.widget_fade*/)
{
fadeOut = true;
fadeTimer = g_RCInput->addTimer( FADE_TIME, false );
timeoutEnd = CRCInput::calcTimeoutEnd( 1 );
msg = 0;
continue;
}
}
if ( msg <= CRCInput::RC_MaxRC )
{
// recalculate timeout f�r RC-Tasten
timeoutEnd = CRCInput::calcTimeoutEnd(g_settings.timing[SNeutrinoSettings::TIMING_MENU] == 0 ? 0xFFFF : g_settings.timing[SNeutrinoSettings::TIMING_MENU]);
}
}
#ifdef FB_BLIT
frameBuffer->blit(x, y, width + SCROLLBAR_WIDTH, height + ((RADIUS_MID * 3) + 1) );
#endif
}
while ( msg!=CRCInput::RC_timeout );
hide();
if ( fadeIn || fadeOut )
{
g_RCInput->killTimer(fadeTimer);
frameBuffer->setBlendLevel(g_settings.gtx_alpha);
}
if(!parent)
CVFD::getInstance()->setMode(CVFD::MODE_TVRADIO);
for (unsigned int count = 0; count < items.size(); count++)
{
CMenuItem* item = items[count];
item->init(-1, 0, 0, 0);
}
return retval;
}
da habe ich vieles aufgeräumt ala e2, alles was framebuffer-mässig ist gehört zu framebuffer auch die Bilder (png/jpeg/gif) Bearbeitung.Randbedingung: ich will das nur in der CFrameBuffer-Klasse implementieren und nicht spark-spezifischen Code über's ganze neutrino verteilen. Derselbe Code muss auf PC, Tripledragon und spark funktionieren.
Insofern ist der momentane Code nicht schön, aber er funktioniert unter den gegebenen Randbedingungen.
Zuletzt geändert von mohousch am Montag 2. April 2012, 09:57, insgesamt 1-mal geändert.
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [Spark] Schönheitsfehler
so, ich habe den Framebuffercode für Spark jetzt überarbeitet.
Ist also ungefähr so, wie von mohousch vorgeschlagen und funktioniert bei mir sehr gut.
Für die SCART-User ändert sich halt, dass die Schriften evtl. default eher klein sind, das kann man aber mit dem Schriftgrössenfaktor fixen. Damit es so aussieht wie vorher, dürfte X = 178% Y = 125% etwa das Richtige sein (habe ich auch auf HD-Geräten immer so).
Wenn euch auffällt, dass irgendein Menü ziemlich "lagged" (die Bildschirmausgabe nur einmal pro sekunde aktualisiert wird), dann meldet bite welches.
EDIT: Achtung, für Selberbauer: ihr müsst das aaa_base paket neu bauen und installieren, damit 12 statt bisher 8MB als Framebufferspeicher zugewiesen werden. Oder loadmodules bearbeiten.
- neutrino, tuxtxt, dvbsub, ... schreibt immer in einen "schattenpuffer" mit 1280x720
- durch CFrameBuffer::getInstance()->blit() wird das in den echten Framebuffer skaliert / kopiert
- an den "richtigen" Stellen im neutrino wird blit() aufgerufen. Wie mohousch geschrieben hat, ist das bei praktisch allen widgets ziemlich identisch.
- ausserdem lasse ich noch einmal pro sekunde blit() aufrufen, falls es irgendwo vergessen wurde
Ist also ungefähr so, wie von mohousch vorgeschlagen und funktioniert bei mir sehr gut.
Für die SCART-User ändert sich halt, dass die Schriften evtl. default eher klein sind, das kann man aber mit dem Schriftgrössenfaktor fixen. Damit es so aussieht wie vorher, dürfte X = 178% Y = 125% etwa das Richtige sein (habe ich auch auf HD-Geräten immer so).
Wenn euch auffällt, dass irgendein Menü ziemlich "lagged" (die Bildschirmausgabe nur einmal pro sekunde aktualisiert wird), dann meldet bite welches.
EDIT: Achtung, für Selberbauer: ihr müsst das aaa_base paket neu bauen und installieren, damit 12 statt bisher 8MB als Framebufferspeicher zugewiesen werden. Oder loadmodules bearbeiten.
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
Re: [Spark] Schönheitsfehler
Über Scart ist es gewöhnungsbedürftig, da die Schrift nun recht klein ist, aber sonst
@Der Menüpunkt Sprache müsste jetzt Sprache & Zeitzone heißen.
@Der Menüpunkt Sprache müsste jetzt Sprache & Zeitzone heißen.
-
- Neugieriger
- Beiträge: 18
- Registriert: Dienstag 6. März 2012, 11:18
Re: [Spark] Schönheitsfehler
jo läuft sehr gut... hab noch ab und an leichte gui-Reste bei 1080i (z.b. nach der Ansicht des großen EPG's mit 3 mal "Info")
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [Spark] Schönheitsfehler
AudioSlyer: tja, einen Tod müssen wir sterben Ich habe auf allen boxen ausser der TD immer Schriftgrössenfaktor 178/125 eingestellt. Man könnte das ja zum default machen ;-)
OlliT: sicher dass du die letzte version hast? Schau mal in sources/neutrino-hd-td mit "git log", da muss mindestens
drin sein. Weil jetzt dürfte es eigentlich nicht mehr sein, dass mit 1080 etwas anders dargestellt wird als mit 720, und Artefakte müsste es überall (auch auf der Tripledragon und der Coolstream) geben. Ich sehe aber keine.
Ansonsten schick mir mal deine neutrino.conf, nicht dass es an "seltsamen" Bildschirmeinstellungen liegt...
Edit: ich sehe gerade, dass ich noch einen kleinen Patch lokal hatte, der evtl. die Artefakte beeinflussen könnte. Der ist jetzt drin.
Wenn noch Artefakte auftreten bitte ein Konsolenlog von neutrino mitliefern, ob da meckermeldungen vom Blitter kommen.
Auch vom starten von neutrino, ob es sich über zuwenig Videoram beschwert.
OlliT: sicher dass du die letzte version hast? Schau mal in sources/neutrino-hd-td mit "git log", da muss mindestens
Code: Alles auswählen
commit add9187e02f224f22bdb490a02f2081b46be4ca1
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: Sun Apr 1 14:28:18 2012 +0200
Ansonsten schick mir mal deine neutrino.conf, nicht dass es an "seltsamen" Bildschirmeinstellungen liegt...
Edit: ich sehe gerade, dass ich noch einen kleinen Patch lokal hatte, der evtl. die Artefakte beeinflussen könnte. Der ist jetzt drin.
Wenn noch Artefakte auftreten bitte ein Konsolenlog von neutrino mitliefern, ob da meckermeldungen vom Blitter kommen.
Auch vom starten von neutrino, ob es sich über zuwenig Videoram beschwert.
-
- Neugieriger
- Beiträge: 18
- Registriert: Dienstag 6. März 2012, 11:18
Re: [Spark] Schönheitsfehler
Hab dietmarw's Image von gestern Mittag genommen. Mal sehen vielleicht liegts auch an dem kleinen Patch... muss mal warten bis das nächste Image fertig ist.... waren auch nur 2 Kleine dünne Linien, die stehengeblieben sind. Hab allerdings auch ganz leicht den OSD-Bildbereich verändert.
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
Re: [Spark] Schönheitsfehler
Den Streifen hatte ich auch mit 100% scallieren über Scart. Rechts ist ein dünner Streifen bei Info, Info stehengeblieben.
Ich hatte den Git-Stand ca. 13-14 Uhr - 02.04.2012.
ImageInfo hat diesen dann wieder gelöscht.
@Seife: Ich hab gute Augen, aber meine Frau will "178/125" haben.
Ich hatte den Git-Stand ca. 13-14 Uhr - 02.04.2012.
ImageInfo hat diesen dann wieder gelöscht.
@Seife: Ich hab gute Augen, aber meine Frau will "178/125" haben.
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
Re: [Spark] Schönheitsfehler
Stand heute:
Keine Fragmente mehr.
Mein Optimum über Scart: Faktor 150/115
FB Anfang 400 Wiederholung 100
Keine Fragmente mehr.
Mein Optimum über Scart: Faktor 150/115
FB Anfang 400 Wiederholung 100
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
Re: [Spark] Schönheitsfehler
Moin, mir ist gerade aufgefallen, dass die 24bit pngs Logos mit ihrer Transparenz die Gui überschreiben.
-
- Einsteiger
- Beiträge: 362
- Registriert: Mittwoch 14. Dezember 2005, 03:25
Re: [Spark] Schönheitsfehler
warum jetzt 24bits?
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [Spark] Schönheitsfehler
Bei mir nicht
mehr
mohousch: für den alphachannel.
Edit: ist natürlich blödsinn, 24bit hat ja nichts mit alphachannel zu tun. Aber egal, transparenz funktioniert jetzt.
mehr
mohousch: für den alphachannel.
Edit: ist natürlich blödsinn, 24bit hat ja nichts mit alphachannel zu tun. Aber egal, transparenz funktioniert jetzt.
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
Re: [Spark] Schönheitsfehler
Wenn in der Infobar die Signalstärke in der Nummerbox angezeigt wird, bleibt ein Streifen stehen, ...ChanHeight = 74;
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
Re: [Spark] Schönheitsfehler
Stand 12.04.
Die Programmbeginnzeit in der Infobar wird bei mir abgeschnitten, wenn der Schriftfaktor über 130% liegt. War letzte Woche noch nicht so. (Programmnummer, Logos aktiviert)
DHCP funktionierte beim Start nach dem Flashen nicht. Ok, nicht so schlimm, da ich sowieso static nutze. Er hatte das 192.168.1.x Netz in der Netzwerkkonfiguration, aber von meinem DHCP Server hätte eine 192.168.2.x Ip kommen müssen.
Sonst alles
Die Programmbeginnzeit in der Infobar wird bei mir abgeschnitten, wenn der Schriftfaktor über 130% liegt. War letzte Woche noch nicht so. (Programmnummer, Logos aktiviert)
DHCP funktionierte beim Start nach dem Flashen nicht. Ok, nicht so schlimm, da ich sowieso static nutze. Er hatte das 192.168.1.x Netz in der Netzwerkkonfiguration, aber von meinem DHCP Server hätte eine 192.168.2.x Ip kommen müssen.
Sonst alles
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [Spark] Schönheitsfehler
Das ist nur wenn du bei der Ersteinrichtung bist, nach einem reboot ist es richtig, oder?AudioSlyer hat geschrieben:Stand 12.04.
Die Programmbeginnzeit in der Infobar wird bei mir abgeschnitten, wenn der Schriftfaktor über 130% liegt. War letzte Woche noch nicht so. (Programmnummer, Logos aktiviert)
Im Buildsystem ist nirgends ein 192.168.1.x, deswegen kann es eigentlich nur bei dir liegen (ein wilder DHCP-Server im Netz?)DHCP funktionierte beim Start nach dem Flashen nicht. Ok, nicht so schlimm, da ich sowieso static nutze. Er hatte das 192.168.1.x Netz in der Netzwerkkonfiguration, aber von meinem DHCP Server hätte eine 192.168.2.x Ip kommen müssen.
Wäre von meiner config was reingerutscht, wäre es 192.168.200.x ;-)
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
Re: [Spark] Schönheitsfehler
Ok, nach der Faktoreinstellung muss man booten, damit man die Sendebeginnzeiten korrekt sieht
Das mit dem DHCP checke ich beim nächsten Update. Frau ist im Moment mit dem Stand glücklich und ich hab meine Ruhe
Das mit dem DHCP checke ich beim nächsten Update. Frau ist im Moment mit dem Stand glücklich und ich hab meine Ruhe
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [Spark] Schönheitsfehler
Deswegen gabs den Faktor von mir ursprünglich nicht als menü- sondern nur als kommandozeilenoption
Und Netzwerk kann ich mir wirklich nicht anders erklären, ich habe extra nochmal geschaut, aber der default ist dhcp und wenn da nichts kommt, dann hat die box einfach gar keine IP, aber sucht sich sicher nichts aus 192.168.1.x ...
Und Netzwerk kann ich mir wirklich nicht anders erklären, ich habe extra nochmal geschaut, aber der default ist dhcp und wenn da nichts kommt, dann hat die box einfach gar keine IP, aber sucht sich sicher nichts aus 192.168.1.x ...
-
- Contributor
- Beiträge: 292
- Registriert: Donnerstag 21. November 2002, 05:32
- Box 1: AX HD51
- Image: tuxbox
Re: [Spark] Schönheitsfehler
vielen dank für das spark image. läuft schon ziemlich gut. weil wir hier bei schönheitsfehlern sind, ist mir auch noch was aufgefallen. bei 1080p und einem schriftgrößenfaktor ab 130 bleibt bei mir nach dem aufruf des movieplayer ein gelber streifen von der menüschrift zurück. getestet mit dietmarw image vom 22.4
-
- Erleuchteter
- Beiträge: 450
- Registriert: Sonntag 28. Juli 2002, 01:18
Re: [Spark] Schönheitsfehler
Das 1080 Icon wird nicht angezeigt, weil in der infoviewer,cpp 1088 anstatt 1080 im case steht.
case 1088:
icon_name = NEUTRINO_ICON_RESOLUTION_1080;
break;
case 1088:
icon_name = NEUTRINO_ICON_RESOLUTION_1080;
break;
-
- Developer
- Beiträge: 4189
- Registriert: Sonntag 2. November 2003, 12:36
Re: [Spark] Schönheitsfehler
Hm, das muss ich mal auf den anderen Plattformen prüfen. Evtl. melden die ja 1088 statt 1080 zurück, dann müsste beides in den case-switch rein.