[MPlayer-users] X Screen resolution detection with multi-head xinerama.

daniel carter hedonist at win.co.nz
Tue Dec 11 15:01:55 CET 2001


Hello,

Great movie player BTW :)

I've got an NVIDIA Geforce2 MX-400.  I have it configured so that i have
a two screen desktop, with my CRT at 1024x768 and TV Out at 800x600.
(ideally i'd like to run them as seperate displays but this is the only
way i could get both active at once.)

When displaying the movie on the TV, it detects the display as 1024x768
which messes up the scaling because the screen is only 800x600 so the
right edge and bottom part of the movie are not displayed.

vo: X11 running at 1024x768 with depth 24 and 32 bits/pixel (":0" =>
local display)

Taking a look in the code i can see the problem, but fixing it properly
is beyond me at the moment, closest i've come to coding C was a little
C++ in 2nd year university... But if you guys are too busy i can try.
In x11_common.c there is this piece of code:

#ifdef HAVE_XINERAMA
 if(XineramaIsActive(mDisplay))
  {
  XineramaScreenInfo *screens;
  int num_screens;
  screens = XineramaQueryScreens(mDisplay, &num_screens);
  vo_screenwidth=screens[0].width;
  vo_screenheight=screens[0].height;
  }

now i can change that to
vo_screenwidth=screens[1].width;
vo_screenheight=screens[1].height;
and my problem is solved, until i want to watch something fullscreen on
my CRT and i have to recompile mplayer :(

Obviously some call needs to be made determine which screen the movie
window is on, but i couldn't figure out what to call in Xlib.h...

I also tried the commandline options -screenw and -screenh but these
options don't seem to be used by the XV driver / didn't have any effect.

Regards,
dan.




More information about the MPlayer-users mailing list