[Bug 26916] Current xf86-video-ati lacks size and position controls for the TV-out

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sat Mar 17 09:25:26 PDT 2012


--- Comment #13 from Da Fox <da_fox at mad.scientist.com> 2012-03-17 09:25:26 PDT ---
(In reply to comment #12)
> (In reply to comment #11)
> > Created attachment 58292 [details] [review] [review]
> > v5: more control
> Ok, I finally got around to doing a quick test:
> - The increased accuracy for horizontal positioning seems to be working great
> - The vertical position and horizontal size still use the 'steps of 10', it
> would be great if these could be positioned more accurately too.
> - There seems to be some discrepancy between NTSC and PAL modes (I only tested
> these two): the horizontal position adjust in the PAL case wasn't able to shift
> the image as far left as in the NTSC case. In fact setting the value to '0'
> (lowest value) it was still too far to the right.
> - The same seemed true for the vertical size too (cannot move up the image far
> enough)
> - The horizontal size control is ineffective/not working.
> - Is it possible to have a vertical size control too?
> Final remarks: It's a bit unintuitive to have 50 as a center, as you have to do
> remember to subtract or add the desired offset from 50. If there is a way to
> make the negative values work that would also be nice.
> Also everytime xrandr is invoked the image on the TV set 'flickers', as if the
> tv needs to re-adjust to the signal or something, even if nothing was changed
> (e.g. invalid parameter, etc). 
> Would it possible to 
> a) not take an action/reinit tvout if nothing changed
> b) reduce the amount of 'flicker' even when something does change? Perhaps
> waiting for vblank or something? (I'm just throwing some ideas).

I was playing with this some more and I discovered the following things:

Actually it is possible to make the 'tv horizontal size' work, for this it is
required to reset the tv-standard after you specify a new size (assuming the
standard is currently set to 'ntsc'):
xrandr --output S-video --set 'tv horizontal size' 0 # nothing seems to happen
xrandr --output S-video --set 'tv standard' ntsc # at this point the horizontal
size changes.
Switching between tv standards probably also works. 
Here the value '0' appears to be the 'smallest' size, and '10' the largest.
There does not appear to be much scaling applied to the actual signal, this
seems to mostly control much of how much of the videobuffer is output to the
screen. That is:
 - set h-size to 0 (minimum value)
 - position the image such that the start of the image is flush with the left
of the screen. For me this is a value of '35'
 - set h-size to 10 (maximum value)
 - Result: the image moves slightly to the right (~10 hpos units (in patch v5),
now a hpos value of 25 positions the image correctly), and a significantl
portion of the desktop is now off-screen to the right.

However with both hsize=0 and hsize=10 there is a portion of the desktop which
is off-screen to the right. Also with the (for my tv correct) hpos setting of
35 and 25 (depending on hsize=0 or 10), the signal appears to go off the
tv-screen to the right. With hsize=0 and hpos<=15 I can see the right edge of
the signal, but even then still a portion of the desktop is not visible. With
hsize=10 no setting of hpos allows to see the right edge of the signal.

Similarly to the signal seemingly not containing the full desktop in the
horizontal direction, also a tiny portion is missing in the vertical direction
(but this is just a few pixels). This can be observed by setting 'tv vertical
position' to 0. In this case the image on screen ends well before reaching the
bottom of the tv, but still the last few pixels are not visible. 

Also initially I remarked that it was not possible to move the image up far
enough in PAL mode. However also in NTSC mode this might be the case:
In ntsc: 
 - vpos = 0: sets the image flush with the top of the tv screen, there is
plenty of room on the screen below the image. 
 - vpos = 10: moves the image down, and it is now (almost) exactly flush with
the bottom of the tv set. there is plenty or room on the screen above the

In pal: 
 - vpos = 0: the image is almost at the top of the tv screen (slightly futher
down compared to NTSC). However the bottom of the image is already at the
bottom of the screen (at the same position as where the bottom of the image was
with mode=ntsc, vpos=10).
 - vpos = 10: the image moves down the same amount as it did in ntsc mode,
however at the bottom of the image is now off-screen.

I don't know if it is supposed to be possible to move the image off the top of
the tv, i.e. to have an offscreen area of the image on the top like with hpos.

Finally I also noticed quite a difference in color vibrance and brightness
between NTSC and PAL, the latter being much better. I wonder if this is just
due to the different signal or not.

Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the xorg-driver-ati mailing list