En/na Sami Sundell ha escrit:
On Wed, Mar 05, 2008 at 05:51:07PM +0100, Klaus Schmidinger wrote:
I'd say this whole thing is a DXR3 problem, not a core VDR problem.
Therefore I'm afraid I can't contribute to the solution...
Looks like it, but thanks anyway.
... found the 0.2.x-branch in the dxr3 plugin CVS, which gives me
Yes, that's the "good" one (I don't think anybody is working on the HEAD
version).
picture but still bleeding subtitles. Now it won't crash if I try to
access the OSD, it just stops responding to remote. :P
Well, I also had to modify dvbsubtitle.c (with some hints from the
dxr3-plugin mailing list), and since I go from one vdr version to the
next one with the patch, I forgot it.
Attached is a diff from the stock dvbsubtitle.c in 1.5.17 and the
version I'm using.
I don't know if it's a good or bad patch but it works here, no bleeding
and the lirc remote is responsive.
I also cannot say if any of the other patches I have make a difference.
Bye
--
Luca
--- vdr-1.5.17.orig/dvbsubtitle.c 2007-11-25 14:33:08.000000000 +0100
+++ vdr-1.5.17/dvbsubtitle.c 2008-01-20 19:24:05.785023000 +0100
@@ -983,13 +983,22 @@
return;
tArea *Areas = Page->GetAreas();
int NumAreas = Page->regions.Count();
- int Bpp = 8;
bool Reduced = false;
- while (osd->CanHandleAreas(Areas, NumAreas) != oeOk) {
+ for (int i = 0; i < NumAreas; i++) {
+ if (Areas[i].bpp > 2) {
+ Areas[i].bpp = 2;
+ Reduced = true;
+ }
+ }
+
+ /*
+ int Bpp = 4;
+ bool Reduced = false;
+ //while (osd->CanHandleAreas(Areas, NumAreas) != oeOk) {
int HalfBpp = Bpp / 2;
if (HalfBpp >= 2) {
for (int i = 0; i < NumAreas; i++) {
- if (Areas[i].bpp >= Bpp) {
+ while (Areas[i].bpp >= Bpp) {
Areas[i].bpp = HalfBpp;
Reduced = true;
}
@@ -998,7 +1007,9 @@
}
else
return; // unable to draw bitmaps
+ //
}
+ */
if (Reduced) {
for (int i = 0; i < NumAreas; i++) {
cSubtitleRegion *sr = Page->regions.Get(i);
_______________________________________________
vdr mailing list
vdr@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr