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@8 720x576@16 704x576@16 640x480@8 640x480@8 640x480@8 640x480@8 768x576@32 800x600@8 800x600@8 800x600@8 800x600@8 800x600@8 800x600@8 800x600@8 800x600@8 1024x576@32 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1152x864@8 1152x864@8 1152x864@8 1152x864@8 1152x864@8 1152x864@8 1280x960@8 1280x960@16 1280x960@32 1024x1024@8 1280x1024@8 1280x1024@8 1280x1024@8 1280x1024@8 1280x1024@8 1600x1200@8 1600x1200@8 1600x1200@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.
I've had a little bit of progress. If I specify 'no-hardware' in /etc/directfbrc, then I get /some/ kind of picture (video clip at http://pod.nation-net.com/softdevice2.mpg )..
However unless I use mode=640x480 in /etc/directfbrc, vdr crashes at startup:
(*) DirectFB/Core: Single Application Core. (2005-07-02 14:20) (*) Direct/Memcpy: Using SSE optimized memcpy() (*) Direct/Thread: Running 'VT Switcher' (CRITICAL, 31508)... (*) Direct/Thread: Running 'Keyboard Input' (INPUT, 31517)... (!!!) *** 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/Graphics: Acceleration disabled (by 'no-hardware') (*) DirectFB/Core/WM: Default 0.2 (Convergence GmbH) [dfb] Supported video Modes are: 640x480@8 800x600@8 640x480@8 720x576@16 800x600@8 768x576@32 704x576@16 640x480@8 640x480@8 640x480@8 800x600@8 800x600@8 800x600@8 800x600@8 800x600@8 800x600@8 1024x576@32 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1152x864@8 1152x864@8 1152x864@8 1152x864@8 1152x864@8 1152x864@8 1280x960@8 1280x960@16 1280x960@32 1024x1024@8 1280x1024@8 1280x1024@8 1280x1024@8 1280x1024@8 1280x1024@8 1600x1200@8 1600x1200@8 1600x1200@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 = 800, height = 600 [dfb] got fmt = 0x00418c04 bpp = 32 (!) [31501: 0.000] --> Caught signal 6 (unknown origin) <-- Killed
Again, any and all suggestions welcome :)
Cheers, Gavin.
Gavin Hamill schrieb:
I've had a little bit of progress. If I specify 'no-hardware' in /etc/directfbrc, then I get /some/ kind of picture (video clip at http://pod.nation-net.com/softdevice2.mpg )..
However unless I use mode=640x480 in /etc/directfbrc, vdr crashes at startup:
(*) DirectFB/Core: Single Application Core. (2005-07-02 14:20) (*) Direct/Memcpy: Using SSE optimized memcpy() (*) Direct/Thread: Running 'VT Switcher' (CRITICAL, 31508)... (*) Direct/Thread: Running 'Keyboard Input' (INPUT, 31517)... (!!!) *** 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/Graphics: Acceleration disabled (by 'no-hardware') (*) DirectFB/Core/WM: Default 0.2 (Convergence GmbH) [dfb] Supported video Modes are: 640x480@8 800x600@8 640x480@8 720x576@16 800x600@8 768x576@32 704x576@16 640x480@8 640x480@8 640x480@8 800x600@8 800x600@8 800x600@8 800x600@8 800x600@8 800x600@8 1024x576@32 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1024x768@8 1152x864@8 1152x864@8 1152x864@8 1152x864@8 1152x864@8 1152x864@8 1280x960@8 1280x960@16 1280x960@32 1024x1024@8 1280x1024@8 1280x1024@8 1280x1024@8 1280x1024@8 1280x1024@8 1600x1200@8 1600x1200@8 1600x1200@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 = 800, height = 600 [dfb] got fmt = 0x00418c04 bpp = 32 (!) [31501: 0.000] --> Caught signal 6 (unknown origin) <-- Killed
Again, any and all suggestions welcome :)
It is now some time ago (about half a year) since I last tried to use my Mach64 with the softdevice, but back then the DirectFB drivers for the Mach64 didn't support all the functions needed by the softdevice. So it didn't work at all. I got a quite nice picture when using Vidix, but the OSD in pseudo OSD mode was not visible, I asume due to incorrect colorkey handling in the vidix drivers. I think software OSD blending worked. Also the X11 drivers for the Mach64 I can't recommend, I never got a picture due to lacking Xv support. So I fear that the Mach64 is not the best choice for use with the softdevice :-(. I currently use a Rage128Pro with Xv out, this combination works really nice for me. If you want to use DirectFB, as far as I know a Matrox or a Unichrome is the best choice.
Martin
On Sunday 03 July 2005 09:34, Martin Wache wrote:
It is now some time ago (about half a year) since I last tried to use my Mach64 with the softdevice, but back then the DirectFB drivers for the Mach64 didn't support all the functions needed by the softdevice. So it didn't work at all.
I gave up on DirectFB - I'm sure it just needed 'a little something' but that something was beyond me.. plus the TV Out didn't work :)
Also the X11 drivers for the Mach64 I can't recommend, I never got a picture due to lacking Xv support. So I fear that the Mach64 is not the best choice for use with the softdevice :-(.
I have switched to running X, because in XFree 4.3.0 the 'ati' driver does indeed support Xv on my card .. and not only that but there are options for TVOut.
The only problem is the TVOut only works at exactly 640x480 or 800x600 at 60Hz. No opportunity for 768x576 or proper 50Hz interlaced output...
I'm still using softdevice just -vo xv:full instead of -vo dfb: =)
At least I have a watchable picture now, and it will suffice until I can sort out something better :)
Cheers, Gavin.