In DirectFB CVS it seems the CRTC2 layer's name got changed from "Matrox
CRTC2" to "Matrox CRTC Layer".
MPlayer uses the old name (i assume mplayer cvs uses the newer name)
Atached is a patch against Mplayer-1.0pre3 to fix this (it should apply
against other versions too, and it's pretty trivial anyway)
(I had this problem, and this is the result of about 20 minutes of
digging around source code trying to find out why the error occurs)
Btw, if you're not trying to use CRTC2 (tvout in most situations), you
need to do (IIRC):
mplayer -vo dfbmga:nocrtc2 <somefile>
Hope this helps
[and, alot of packages have alot of problems using 2.6.x headers]
--jbit
On Mon, 2004-01-26 at 17:32, William Morgan wrote:
> Hello all,
>
> I'm encountering the following error when running mplayer against my
> g400 and DirectFB from CVS:
>
> ---------------------- DirectFB v0.9.21 ---------------------
> (c) 2000-2002 convergence integrated media GmbH
> (c) 2002-2003 convergence GmbH
> -----------------------------------------------------------
>
> (*) Single Application Core. (with MMX support) (2004-01-25 08:34)
> (*) DirectFB/misc/memcpy: using MMXEXT optimized memcpy()
> (*) DirectFB/InputDevice: Keyboard 0.9 (convergence integrated media GmbH)
> (*) MMX detected and enabled
> (*) DirectFB/GraphicsDevice: Matrox G400/G450/G550 0.6 (convergence integrated media
> GmbH)
> Can't get CRTC2 layer - Not supported!
> Error opening/initializing the selected video_out (-vo) device.
--- MPlayer-1.0pre3/libvo/vo_dfbmga.c 2003-10-17 09:36:47.000000000 +0100
+++ MPlayer-1.0pre3.jbit/libvo/vo_dfbmga.c 2004-01-26 21:26:24.000000000 +0000
@@ -210,7 +210,7 @@
/* Fake it according to id */
if ((id == 0 && !strcmp( l->name, "FBDev Primary Layer" )) ||
(id == 1 && !strcmp( l->name, "Matrox Backend Scaler" )) ||
- (id == 2 && !strcmp( l->name, "Matrox CRTC2" )) ||
+ (id == 2 && !strcmp( l->name, "Matrox CRTC2 Layer" )) ||
(id == 3 && !strcmp( l->name, "Matrox CRTC2 Sub-Picture" )))
if ((l->res = dfb->GetDisplayLayer( dfb, id, l->layer )) == DFB_OK)
return DFENUM_CANCEL;
@@ -404,7 +404,7 @@
if (use_crtc2) {
struct layer_enum l = {
- "Matrox CRTC2",
+ "Matrox CRTC2 Layer",
&crtc2,
DFB_UNSUPPORTED
};