Re: vdr segfault while drawing menu

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

 



On 18.05.2013 17:49, Dominique Dumont wrote:
Hello

I'm using vdr 2.0.1 on Debian (with Debian package) and xineliboutput (also provided by Debian).

I can connect xine on vdr, but once I hit 'ESC' to get the main menu, vdr segfaults.

Here's the backtrace:

Core was generated by `/usr/bin/vdr -v /mnt/video2/vdr -c /var/lib/vdr -L /usr/lib/vdr/plugins -r /usr'.
Program terminated with signal 11, Segmentation fault.
#0  0x00000000004eee4f in cSkinLCARSDisplayMenu::DrawLive (this=0x21c1c70, Channel=0x0) at skinlcars.c:1344

warning: Source file is more recent than executable.
1344         osd->DrawText(xa00, yt00, itoa(Channel->Number()), Theme.Color(clrChannelFrameFg), Theme.Color(clrChannelFrameBg),
tallFont, xa02 - xa00, yt02 - yt00, taTop | taRight | taBorder);
(gdb) bt
#0  0x00000000004eee4f in cSkinLCARSDisplayMenu::DrawLive (this=0x21c1c70, Channel=0x0) at skinlcars.c:1344
#1  0x00000000004ef0f2 in cSkinLCARSDisplayMenu::Flush (this=0x21c1c70) at skinlcars.c:1659
#2  0x00000000004a5124 in cInterface::GetKey (this=0x21788e0, Wait=true) at interface.c:35
#3  0x00000000004732d5 in main (argc=<optimized out>, argv=<optimized out>) at vdr.c:1016

Note that I've found this message in my logs:

[xine..put] cXinelibOsd::CanHandleAreas(): Device does not support ARGB

Since the theme colors looks like they are specified as ARGB, this may hint at a problem there.

The problem appears to be that there is no current channel. I don't know
how this could happen on your system, because normally there always is s
current channel. However, you could try adding these lines to skinlcars.c
in function cSkinLCARSDisplayMenu::DrawLive():

      DrawMainFrameUpper(Theme.Color(clrChannelFrameBg));
      osd->DrawText(xd00, yd00, tr("LIVE"), Theme.Color(clrChannelFrameBg), Theme.Color(clrBackground), tallFont, xd07 - xd00, yd01 - yd00, taTop | taRight | taBorder);
      }
+  if (!Channel)
+     return;
   if (initial || Channel != lastChannel) {
      osd->DrawText(xa00, yt00, itoa(Channel->Number()), Theme.Color(clrChannelFrameFg), Theme.Color(clrChannelFrameBg), tallFont, xa02 - xa00, yt02 - yt00, taTop | taRight | taBorder);
      osd->DrawText(xa03, yt00, Channel->Name(), Theme.Color(clrChannelName), Theme.Color(clrBackground), tallFont, xd00 - xa03, yd01 - yd00, taTop | taLeft);


Klaus

_______________________________________________
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