Re: DXR3 and subtitles in 1.5.x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Big List of Linux Books]     [Fedora Users]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux