Schon ewig auf der TODO-Liste. Der Videotext bedeckte ungefähr nur ein Viertel des Fernsehers, war oben links zu sehen und damit eigentlich etwas zu klein. Habe mich heute mal im Quellcode ein wenig umgesehen. Ausgehend von der Datei avformatdecoder.cpp, die wir ja schon hier kennengelernt haben, bin ich über nuppelvideoplayer.cpp (sic!) auf die osd.cpp gekommen. Und was sehen da meine Augen in der Methode "InitTeletext" (Zeile 347)? Schöne hartverdrahtete Koordinatenwerte:
QRect area = QRect(20, 20, 620, 440);
Mal flugs geändert in:
QRect area = QRect(106, 60, 1067, 600);
Dann war zwar der Videotext größer, die Schrift sah aber auch etwas mickrig aus. Kein Wunder, wenn man ein paar Zeilen später im Quellcode auf diese Zeile stößt:
int fontsize = 440 / 26;
Habe ich dann geändert in:
int fontsize = 20;
Wie kommt man auf diese Koordinaten? Der Bildschirm ist 1280 x 720 groß. Ich wollte ursprünglich den ganzen Bildschirm bedecken, aber das kann man bei der Schrift vergessen (bei Videotext hat jeder Buchstabe diesselbe Breite). Ich hatte mich nun für 600 Pixel als Höhe entschieden, dadurch steht die Breite wegens des 16:9-Verhältnisses auch fest. Die X- und Y-Koordinaten errechnet man dann einfach dadurch, dass man das Fenster zentriert haben möchte. Bei der Fontsize habe ich dann ein wenig rumprobiert :-)
Keine Kommentare:
Kommentar veröffentlichen