I've got vdr + softdevice + DirectFB running quite nicely now (using
patches supplied by Mark Adams) but it sometimes throws a seg fault
during initialisation (starting vdr from my init scripts). Here is the
output from softdevice:

Starting program: /usr/local/bin/vdr-1.3.36 -v /video -w 20
-L/home/vdr/plugins-c/home/vdr/vdrconf -P'softdevice -vo dfb:viatv'
[Thread debugging using libthread_db enabled]
[New Thread 16384 (LWP 4611)]
[softdevice] processing args
[softdevice]   argv [0] = softdevice
[softdevice]   argv [1] = -vo
vo_argv: dfb:viatv
[softdevice] Enabling Unichrome Field Parity
[setup-softdevice] alsa ac3Mode set to: 0
[setup-softdevice] alsa AC3 device set to: hw:0,1
[setup-softdevice] alsa device set to: default
[setup-softdevice] A/V Offset set to (-2)
[setup-softdevice] Cropping 0 lines from bottom
[setup-softdevice] Cropping 0 columns from left
[setup-softdevice] cropping mode set to 0 (none)
[setup-softdevice] cropping mode toggle key set to 0 (none)
[setup-softdevice] Cropping 0 columns from right
[setup-softdevice] Cropping 0 lines from top
[setup-softdevice] deinterlace method set to 0 none
[setup-softdevice] mainMenu: 1
[setup-softdevice] setting alpha blend mode to pseudo
[softdevice] picture mirroring set to 0 (off)
[setup-softdevice] pixel format set to (I420)
[setup-softdevice] shouldSuspend to: 0
[setup-softdevice] syncTimerMode: sig
[softdevice] UseStretchBlitset to off
[setup-softdevice] vidBrightness: 50
[setup-softdevice] vidContrast: 50
[setup-softdevice] vidHue: 50
[setup-softdevice] vidSaturation: 50
[setup-softdevice] startup aspect set to (4:3 normal)
[New Thread 32769 (LWP 4614)]
[New Thread 16386 (LWP 4615)]
[Thread 16386 (LWP 4615) exited]
[New Thread 32771 (LWP 4616)]
[softdevice] initializing Plugin
[softdevice] Initializing Video Out
[softdevice] ffmpeg version(CVS) build(3277056)
[New Thread 49154 (LWP 4617)]
[dfb] init
(*) DirectFB/Config: Parsing config file '/etc/directfbrc'.

       ---------------------- DirectFB v0.9.24 ---------------------
             (c) 2000-2002  convergence integrated media GmbH
             (c) 2002-2004  convergence GmbH
        -----------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2005-11-04 18:37)
(*) Direct/Memcpy: Using SSE optimized memcpy()
(*) Direct/Modules: suppress module 'joystick'
(*) Direct/Modules: suppress module 'lirc'
(*) DirectFB/Genefx: MMX detected and enabled
(!) DirectFB/Unichrome: Failed to determine hardware revision, assuming
17.
(*) DirectFB/Graphics: VIA/S3G CLE266/UniChrome 0.4 (-)
(*) DirectFB/Core/WM: Default 0.2 (Convergence GmbH)
 (!!!)  *** UNIMPLEMENTED [fusion_reactor_set_lock] ***
[../../../lib/fusion/reactor.c:797]
[dfb] RAM: 66842624 bytes
[dfb] Accellerated Functions: FillRectange DrawRectange DrawLine
FillTriangle Blit StretchBlit All
[dfb] Drawing Flags: Blend Xor
[dfb] Surface Blitting Flags: BlendAlpha BlendColorAlpha Colorize
SrcColorkey DstColorkey Deinterlace
[dfb] Supported video Modes are: [EMAIL PROTECTED]
[dfb] Enumerating display Layers
Layer 0 FBDev Primary Layer  Type: graphics
  Caps: brightness contrast saturation surface
Layer 1 VIA Unichrome Video  Type: graphics picture video
  Caps: deinterlacing dst_colorkey levels field_parity opacity
screen_location surface
[dfb]: Set unichrome DLBM_TRIPLE
[dfb]: enabling unichrome DLOP_FIELD_PARITY
[surface capabilities] scrSurface: primary videoonly double-buffered
flipping
[dfb] width = 720, height = 576
[dfb] got fmt = 0x00418c04 bpp = 32
[dfb] Using this layer for OSD: (FBDev Primary Layer - [720x576])
[surface capabilities] osdSurface: videoonly double-buffered flipping
[surface capabilities] videoSurface: videoonly flipping triple-buffered
[dfb] Configuring CooperativeLevel for Overlay
[dfb] Configuring CooperativeLevel for OSD
[dfb] Using this layer for OSD: FBDev Primary Layer
[dfb] Using this layer for Video out: VIA Unichrome Video
[dfb] Display frame time is 19998 microseconds
[dfb] (re)configuring Videolayer to 736 x 576 (720x576)
[dfb] SetParams: Enabling DLOP_FIELD_PARITY
[dfb]: SetParms (): Setting DLBM_TRIPLE for Unichrome
[surface capabilities] videoSurface: videoonly flipping triple-buffered
[dfb] (re)configured 0x08100609
[dfb] (re)configured 0x08100609
[New Thread 65540 (LWP 4618)]
[softdevice] Video Out seems to be OK
[softdevice] Initializing Audio Out
[softdevice] Audio out seems to be OK
[softdevice] A/V devices initialized, now initializing MPEG2 Decoder
cSoftDevice::MakePrimaryDevice
[New Thread 81925 (LWP 4619)]
[New Thread 98310 (LWP 4620)]
[dfb] (re)configuring Videolayer to 736 x 576 (720x576)
[dfb] SetParams: Enabling DLOP_FIELD_PARITY
[dfb]: SetParms (): Setting DLBM_TRIPLE for Unichrome
[surface capabilities] videoSurface: videoonly flipping triple-buffered
[dfb] (re)configured 0x08100609

(and the reconfiguring bit about a further 5 times)

[dfb] (re)configured 0x08100609
 (!!!)  *** WARNING [Application exited without deinitialization of
DirectFB!] *** [../../../src/core/core.c:630 in dfb_core_deinit_check()]

And here's the backtrace:
#0  0xb751cec1 in dfb_gfxcard_state_check ()
   from /usr/lib/libdirectfb-0.9.so.24
#1  0xb751e22b in dfb_gfxcard_fillrectangles ()
   from /usr/lib/libdirectfb-0.9.so.24
#2  0xb74f8e0e in IDirectFBSurface_Construct ()
   from /usr/lib/libdirectfb-0.9.so.24
#3  0xb75475c9 in IDirectFBSurface::Clear () from /usr/lib/libdfb
++-0.9.so.23
#4  0xb7ccef15 in cDFBVideoOut::CloseOSD (this=0x859c6f8) at
video-dfb.c:1095
#5  0xb7cbabf4 in ~cSoftOsd (this=0x860f718) at softdevice.c:121
#6  0x080f7e97 in ~cSkinSTTNGDisplayMessage (this=0x85ef4d0)
    at skinsttng.c:1064
#7  0x080eef47 in ~cSkins (this=0x81e0bc4) at skins.c:152
#8  0x080ef312 in __tcf_0 () at skins.c:143
#9  0xb7d08ade in exit () from /lib/libc.so.6
#10 0x0810a3f2 in Watchdog (signum=14) at vdr.c:89
#11 0xb7ef3fe1 in __pthread_sighandler () from /lib/libpthread.so.0
#12 <signal handler called>
#13 0xb7ef4b36 in nanosleep () from /lib/libpthread.so.0
#14 0x00000000 in ?? ()
#15 0xb7eef1a5 in __pthread_timedsuspend_new ()
from /lib/libpthread.so.0
#16 0xb7eec1d7 in [EMAIL PROTECTED] ()
from /lib/libpthread.so.0
#17 0x081013f6 in cCondVar::TimedWait (this=0xfffffffc,
[EMAIL PROTECTED],
    TimeoutMs=-4) at thread.c:122
#18 0x080e059b in cRemote::Get (WaitMs=1000, UnknownCode=0x0) at
remote.c:168
#19 0x080abad7 in cInterface::GetKey (this=0x8604c50, Wait=true)
    at interface.c:47
#20 0x080abbd4 in cInterface::Wait (this=0x8604c50, Seconds=49,
KeepChar=false)
    at interface.c:58
#21 0x080ef17d in cSkins::Message (this=0x81e0bc4, Type=mtError,
    s=0x811f98a "Channel not available!", Seconds=-4) at skins.c:186
#22 0x080949a7 in cDevice::SwitchChannel (Direction=1) at device.c:564
#23 0x0810cff1 in main (argc=8, argv=0xbf874284) at device.h:235

I've not seen this one before in my tinkering! I'm, not sure whether it
is down to DirectFB or whether softdevice is triggering it, somehow.

If I try to run it again after this, it will fail with the same message.
It needs a reboot before it will initialise properly. This makes me
wonder if it's down to the initialisation of viafb. Once it is up and
running, it seems quite solid. I've just moved vdr to later on in my
boot sequence: maybe it is trying to access the framebuffer before the
module has fully initialised, or something like that?!

This is with vdr-1.3.36, softdevice cvs and DirectFB cvs both from about
4 days back, with viafb and DirectFB patched for FIELD_PARITY and
softdevice patched to use this, on an Epia MII board.

Cheers,

Laz


_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to