[vdr] softdevice 0.1.2 with DirectFB mach64

Gavin Hamill gdh at acentral.co.uk
Sat Jul 2 18:07:42 CEST 2005


Hi :) Having suffered with a dxr3 for a week and not being able to change 
channel more than 10 times without the OSD crashing, I've decided to look at 
software decoding :)

I found an old ATI 3D Rage II card with a Mach64 chip.. atyfb + DirectFB 
0.9.22 seem to work with it, but the best I can get out of softdevice is a 
muddled OSD and a pure white screen instead of video..

I was encouraged by this URL 
http://developer.berlios.de/project/shownotes.php?release_id=4980
that the mach64 is working with softdevice, so hopefully someone can point me 
in the right direction?

telly:~/vdr-1.3.27# ./vdr -P "softdevice -vo dfb:"
[softdevice] processing args
[softdevice]   argv [0] = softdevice
[setup-softdevice] alsa ac3Mode set to: 0
[setup-softdevice] alsa device set to: default
[setup-softdevice] A/V Offset set to (0)
[setup-softdevice] cropping mode set to 0 (none)
[setup-softdevice] cropping mode toggle key set to 0 (none)
[setup-softdevice] deinterlace method set to 0 none
[softdevice] picture mirroring set to 0 (off)
[setup-softdevice] pixel format set to (I420)
[setup-softdevice] shouldSuspend to: 0
[setup-softdevice] startup aspect set to (4:3 normal)
[softdevice] initializing Plugin
[softdevice] Initializing Video Out
[softdevice] ffmpeg version(0.4.9-pre1) build(4747)
[dfb] init

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

(*) DirectFB/Core: Single Application Core. (2005-07-02 14:20)
(*) Direct/Memcpy: Using SSE optimized memcpy()
(*) Direct/Thread: Running 'VT Switcher' (CRITICAL, 29804)...
(*) Direct/Thread: Running 'Keyboard Input' (INPUT, 29806)...
 (!!!)  *** UNIMPLEMENTED [fusion_reactor_set_lock] *** [reactor.c:802]
(*) DirectFB/Input: Keyboard 0.9 (convergence integrated media GmbH)
(*) DirectFB/Genefx: MMX detected and enabled
(*) DirectFB/Graphics: ATI Mach64 GT 0.13 (Ville Syrjala)
(*) DirectFB/Core/WM: Default 0.2 (Convergence GmbH)
[dfb] Supported video Modes are: 640x480 at 8 720x576 at 16 704x576 at 16 640x480 at 8 
640x480 at 8 640x480 at 8 640x480 at 8 768x576 at 32 800x600 at 8 800x600 at 8 800x600 at 8 
800x600 at 8 800x600 at 8 800x600 at 8 800x600 at 8 800x600 at 8 1024x576 at 32 1024x768 at 8 
1024x768 at 8 1024x768 at 8 1024x768 at 8 1024x768 at 8 1024x768 at 8 1024x768 at 8 1152x864 at 8 
1152x864 at 8 1152x864 at 8 1152x864 at 8 1152x864 at 8 1152x864 at 8 1280x960 at 8 1280x960 at 16 
1280x960 at 32 1024x1024 at 8 1280x1024 at 8 1280x1024 at 8 1280x1024 at 8 1280x1024 at 8 
1280x1024 at 8 1600x1200 at 8 1600x1200 at 8 1600x1200 at 8
[dfb] Enumeratig display Layers
Layer 0 FBDev Primary Layer  Type: graphics
  Caps: brightness contrast saturation surface
Layer 1 Mach64 Overlay  Type: picture video
  Caps: brightness dst_colorkey saturation screen_location src_colorkey 
surface
[surface capabilities] scrSurface: primary videoonly double-buffered flipping
[dfb] width = 640, height = 480
[dfb] got fmt = 0x00418c04 bpp = 32
[dfb] Using this layer for OSD: (FBDev Primary Layer - [640x480])
[surface capabilities] osdSurface: videoonly double-buffered flipping
 (!!!)  *** WARNING [letting unprivileged IDirectFBDisplayLayer::GetSurface() 
call pass until cooperative level handling is finished] *** 
[idirectfbdisplaylayer.c:170 in IDirectFBDisplayLayer_GetSurface()]
[surface capabilities] videoSurface: videoonly
[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: Mach64 Overlay
[dfb] (re)configuring Videolayer to 720 x 576 (720x576)
[surface capabilities] videoSurface: videoonly double-buffered flipping
[dfb] (re)configured 0x08100609
Subplugin successfully opend
[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
[mpegdecoder] open codec 2 successfull
Could not open /dev/rtc
[mpeg2video @ 0xb7bcb40c]Warning MVs not available
[mpeg2video @ 0xb7bcb40c]concealing 13 DC, 13 AC, 13 MV errors
[mpeg2video @ 0xb7bcb40c]concealing 13 DC, 13 AC, 13 MV errors
[mpeg2video @ 0xb7bcb40c]concealing 13 DC, 13 AC, 13 MV errors
[dfb] (re)configuring Videolayer to 720 x 576 (720x576)
[surface capabilities] videoSurface: videoonly double-buffered flipping
[dfb] (re)configured 0x08100609
[mpeg2video @ 0xb7bcb40c]00 motion_type at 1 17
[mpeg2video @ 0xb7bcb40c]Warning MVs not available
[mpeg2video @ 0xb7bcb40c]concealing 90 DC, 90 AC, 90 MV errors

The DVB signal is of poor quality, hence the MPEG errors - however if I use 
the streamdev-server I can see a reasonable quality picture with some 
artefacts - I would expect /something/ via directfb not pure white :)

telly:~/vdr-1.3.27# dfbinfo

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

(*) DirectFB/Core: Single Application Core. (2005-07-02 14:20)
(*) Direct/Memcpy: Using SSE optimized memcpy()
(*) Direct/Thread: Running 'VT Switcher' (CRITICAL, 29836)...
(*) Direct/Thread: Running 'Keyboard Input' (INPUT, 29845)...
 (!!!)  *** UNIMPLEMENTED [fusion_reactor_set_lock] *** [reactor.c:802]
(*) DirectFB/Input: Keyboard 0.9 (convergence integrated media GmbH)
(*) DirectFB/Genefx: MMX detected and enabled
(*) DirectFB/Graphics: ATI Mach64 GT 0.13 (Ville Syrjala)
(*) DirectFB/Core/WM: Default 0.2 (Convergence GmbH)


Screen (00) FBDev Primary Screen            (primary screen)
   Caps: VSYNC POWER_MANAGEMENT

     Layer (00) FBDev Primary Layer             (primary layer)
        Type:    GRAPHICS
        Caps:    SURFACE BRIGHTNESS CONTRAST SATURATION

     Layer (01) Mach64 Overlay
        Type:    VIDEO STILL_PICTURE
        Caps:    SURFACE SCREEN_LOCATION SRC_COLORKEY DST_COLORKEY BRIGHTNESS 
SATURATION SCREEN_POSITION SCREEN_SIZE


Input (00) Keyboard                        (primary keyboard)
   Type: KEYBOARD
   Caps: KEYS

The only useful thing in the log I can find is:

Jul  2 16:51:49 telly vdr[29797]: [VideoOut]: 720x576 [0,0 720x576] -> 640x480 
[0,60 640x360]

And sure enough, the monitor I'm using says 640x480 is in use. I /have/ 
entries in /etc/fb.modes for 720x576, and even trying to force 720x576 with 
"dfblayer -l 1 -m 720x576" or dfbswitch doesn't help things.

Since a video is worth a thousand pictures ;) I've made one at 
http://pod.nation-net.com/softdevice.mpg (It's an MPEG4 from my camera phone 
- mplayer seems to play it anyway)

Hoping someone can help!

Cheers,
Gavin.



More information about the vdr mailing list