Quote:
Originally Posted by aline
Try to use -zoom with -vo x11, this will allow full-screen with x11.
I only use mplayer from console, I don't know how to use -zoom with GUI.
|
This is an old thread but still very relevant.
Edit the GMplayer icon and add -zoom to the end of the command line. Mine looks like this:
Fullscreen then works fine in x11. You can also use SMplayer. I think it adds the -zoom when it calls mplayer or mencoder.
WHY?
More than you ever wanted to know about why this happens.
With the newer GL extensions most systems flash uncontrollably using hardware accelerated video with any gl output. The issue is that the video window gets repainted by X, apparently when it detects a change in the output causing flashing during playback, sometimes even in fullscreen. If it's just turned off the video playback window stays put when you drag the frame around. NOT good. Windows does the same thing but it's less noticeable because of the way they code the video "backend" (the code that updates the windows). Keep in mind that GL (3D output) is actualy a hardware surface (a hardware isolated place on the card) that replaces a "chromatic" color in the output window or uses an output buffer coordinate system to map a window. You may have seen the green or purple chroma color in a video window before on older overlay cards.
The hardware has to be told where this window exists in the "output buffer" or it gets all messed up. The original way to do this was to use
an (as in one) "overlay surface" in the output. The overlay on older cards is a special place in memory called a hardware gate array that can do
some video decoding making video playback less cpu intensive. Along comes GL and that scheme no longer works well. A simple browser window can have several video outputs but there is only one available overlay. It would require many overlay surfaces to work properly which is stupid.
The solution is to move the hardware decoding out of that special place in memory, putting it in some kind of hardware stream decoder (called a fall-through gate array). This allows the same hardware decoder to play multiple video streams simultaneously, or so it seems. Each video output sets the FGA (Fallthrough gate array) output address to it's video window buffer and writes a frame, then releases the decoder for the next video window. I'm not an ATI developer but I suspect this is the general approach they are either implementing now or heading towards. This scheme can be easily integrated into a GPU (General Purpose Utility) processor. The GPU can then draw polygons directly in the output buffer for 3D and the output muxer (multiplexer, a fancy word for video mixer) can mix live video, bitmaps, and GL output in a fully constrained hardware protected window anywhere in the output. Unfortunately it's easier to create new hardware than new software because of history.
Eventually all video related processing will be done on the video chip rather than using the main processor for polygons, video decoding etc. But we are at least 10 years away from that. We need a hardware transition processor (system based serial bus vs multiplexed parallel bus) to make that really work well. This has significant advantages for the developer because the GPU on the video card supports a language that is specific to video which also frees up room in the MPU (Master Processing Unit) for more efficient general purpose programming resulting in much better overall performance.
Future?
It's being worked on in Xorg 7x but it's probably not going to be fully working for a while. I suspect there needs to be a rewrite of the entire X window system to integrate hardware video with GL extensions properly. In the mean time Nvidia seems to have the issue well in hand apparently at the expense of cpu. ATI is working on it but has a long way to go. They have hardware GL output working for most cards in the fglrx driver but it won't integrate well with GL (Xgl for most others since ati uses the proprietary aiglx extention). I guess this means be patient while it's being fixed. This is a volunteer written operating system, as all operating environments "should" be. They provide an important resource for students and new thoughts for future development.
-Tom