Here is a patch from Ian to fix the yuv scaling issues. This mostly now enables a filter to improve the quality. I'm still working on the tearing problem and don't expect to have anything for that until the end of the week.
Comments from Ian are :- Both horizontal & vertical filters are calculated & set correctly. They are also restored on exit. The filter settings cannot be overridden by the user, though it wouldn't be too difficult to add later. Reg2964 is now used correctly... sort of... The correct value is worked out, but it affects vertical alignment with the display window, so the result is manipulated to maintain alignment. Also, it induces flicker with lower res video so I've deviated from the firmware to try and reduce flicker, meaning video down to 288 (240-NTSC) high now can be watched full-screen without nausea inducing flicker. Reg2970 no longer used to disable vertical filter as it had other side-effects, but it's set to 0 to ensure we get the right results elsewhere. I've never yet seen it change from 0, but you never know. Video less than one field high is now handled differently which greatly reduces flicker. Downside is that it renders the current vertical filter settings useless, so they get switched off in this mode which then causes the vertical pixelation to become visible. Choose your poison. It wouldn't be difficult to allow the user to select which scaling method they prefer for the low-res material. At the moment it's simply a check on the source & destination height to enable to new 'lo-res' mode (y_lores_mode). The low-res material can still be scaled using the normal method, which matches the way the firmware works. In fact if you try to shrink the image too much it has to switch back to the normal scaling mode anyway.
ivtv-0.3.7a.patch.bz2
Description: Binary data
