Re: Geforce FX 5200, 1080i video, and 800x600 screen
I only threw out "driver bug?" as a question, not as an assertion.
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.
The real thought provoker here is, why does scaling [appear to] happen as illustrated above for every video size EXCEPT for 1080i?