I have an FX5200 card that is being used with an SVGA display. When using mplayer with the -zoom and/or -fs options, all video plays on XV, correctly scaling to 800x600, letterboxing as necessary. The only problem is, if the video is 1920x1080i formatted, the output will not scale correctly. The aspect is stretched out horizontally, and will extend beyond the right edge of the real screen.

For example, a 4:3 image transmitted in a 16:9 1920x1080 stream will appear as something more like 16:9 stretched beyond the right edge. This looks a little silly.
A 16:9 image in 1920x1080 just stretches past the right edge, making it wider than 16:9, making heads fat, as does the previous scenario. If this is so, the scaling happening could be 1920x1080 -> 900x600.

Note that if I attach a high resolution VGA monitor, running the X server in 720p will result in 1080i scaling correctly. I have not tried other modes, such as XVGA.

Does anyone know why this happens only for 1080i? Is this a driver(bug) problem? Weird hardware limitation? I'm using 6629 and VGA.

Furthermore, does anyone know of a DVI capable card that can (i.e., tested)
-run without a fan
-have good power consumption at 2D graphics
-Output DVI 1920x1080 (progressive scan), considering also using reduced blanking?

If this reproduces with 1.0-8178, please generate and provide a bug report along with a pointer to the content that reproduces the problem, the version of MPlayer you're using, and the exact mplayer command you're running.

I disagree with that statement for a couple of reasons. First, my monitor aspect _is_ 4:3. Setting monitoraspect = 16:9 would only remove letterboxing, and make the image stretch vertically to fill the screen.

Second, my distortion is horizontal, causing the video to be the correct height, but too wide for the screen. This leads me to conclude that the stretching algorithm in use does not remove enough pixels in the horizonal (though it does in the vertical). Software scalers fix this, but performance obviously is not good.

mplayer ... -vf scale=800:600 scales both 720p and 1080i to 1066:600 which may be indicative as to why the hw scaler does this (the resultant surface for 1080i is 1066:600?)

With the nv driver, the same thing happens. Where is scaling division done? This appears to be in the hardware, so this could be some hw design that is limiting my ability to scale all the way down to 800x600? 720p works fine, and I have tried XGA.

XGA still shows the same kind of geometry distortion, but much more is displayed, leaving maybe only 5-10% over the edge instead of 15-20%. It appears at specifically 1080i, this nv34 does not like scaling to 4:3.

I have taken notice that whenever I use -vf scale=800:600, something like this is displayed:
VO: [xv] 800x600 => 1066x600 Planar YV12 [fs] [zoom]

Which has an aspect of ~1.778. That's a difference of 266 pixels. The hardware appears to help it display on 4:3.
In contrast, when I use a 16:9 display mode, the sw scaler preserves the aspect perfectly.

A scaling algorithm would reasonably seem to work in this way:
Crop the output (active pixels) so that the xv active surface == movieAspect.
In this case, 16:9. The video would result in centered 800:450, and black would be drawn in the inactive area to cover the screen behind it. This would contain the scaled 16:9 video, which is now very easy to do because aspect is preserved. The opposite is happening here. video _height_ is being preserved at all costs, at least at 1080i, causing width to warp around it.

No, I have not. The common link looks like the video card. Xine does the same thing. VLC probably will to. Can you duplicate my results with your machinery? There's a 30MB video clip available above if you need some 1080i material.