[mythtv] Aspect Ratio skewed?

Paul Andreassen paulx at andreassen.com.au
Fri Jul 22 03:15:12 EDT 2005


Wendy and Martin,

Attached is an trimmed version of mythtv/libs/libmythtv/videoout_xv.cpp which 
shows the calculation done for display_aspect, this includes support for 
Xinerama.

Basicly, it takes the total display size in mm, and scales from the total 
display resolution to the size of the view display resolution.

		In my case 
	/etc/X11/XF86Config-4
Section "ServerFlags"
    Option  "Xinerama"      "true"
EndSection
Section "ServerLayout"
    Identifier      "Default Layout"
    Screen          "Screen 0"
    Screen          "Screen 1" RightOf "Screen 0"
    InputDevice     "Generic Keyboard"
    InputDevice     "Configured Mouse"
EndSection

	From /var/log/XFree86.0.log:
...
(II) NVIDIA(0): Virtual screen size determined to be 1600 x 1200
(--) NVIDIA(0): Display dimensions: (400, 300) mm
(--) NVIDIA(0): DPI set to (101, 101)
...
(II) NVIDIA(1): Virtual screen size determined to be 1280 x 960
(--) NVIDIA(1): Display dimensions: (350, 260) mm
(--) NVIDIA(1): DPI set to (92, 93)

	From mythfrontend:
Total desktop width=2880, height=1200, numscreens=2
2005-07-21 20:41:57.335 Using screen 0, 1600x1200 at 0,0

	X reports to mythfrontend:
723mm 302mm 
dpi 101 101

	videoout_xv.cpp calculation:
w_mm = w_mm * gui_w / w;
w_mm = 723 * 1600 / 2880 = 401
h_mm = 302 * 1200 / 1200 = 302
display_aspect = 1.33 = 4/3
Correct in my case.

		The possible things that may go wrong include:

	Setting NoTwinViewXineramaInfo:
Option "NoTwinViewXineramaInfo" "boolean"
                When in TwinView, the NVIDIA X driver normally provides
                a Xinerama extension that X clients (such as window
                managers) can use to to discover the current TwinView
                configuration.  Some window mangers can get confused by
                this information, so this option is provided to disable
                this behavior.  Default: TwinView Xinerama information
                is provided.

	Forcing a dots per inch, as show from 'ps aux | grep dpi' :
/usr/bin/X11/X -dpi 100 -nolisten tcp

(--) VIA(0): Virtual size is 720x576 (pitch 720)
(**) VIA(0): *Mode "720x576": 26.8 MHz (scaled from 0.0 MHz), 30.5 kHz, 50.3 
Hz
(II) VIA(0): Modeline "720x576"   26.80  720 752 848 880  576 588 593 605
(**) VIA(0):  Default mode "640x480": 25.2 MHz (scaled from -0.0 MHz), 31.5 
kHz, 60.0 Hz
(II) VIA(0): Modeline "640x480"   25.20  640 656 752 800  480 490 492 525 
-hsync -vsync
(++) VIA(0): DPI set to (100, 100)

	Using a incorrect DisplaySize in /etc/X11/XF86Config-4, correct example:
DisplaySize 183 146 # (99.93 dpi:100.21 dpi for 720x576)
dpi = resolution / ( mm / 25.4 )
dpi = 720 / ( 183 / 25.4) = 99.93 dpi


If you still can't get this to work, please post your /etc/X11/XF86Config-4 
and /var/log/XFree86.0.log so I can do some checking.

Hope this helps,
Paul

Maybe I should put this on a wiki somewhere?
-- 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: videoout_xv-trimed.cpp
Type: text/x-c++src
Size: 2520 bytes
Desc: not available
Url : http://mythtv.org/pipermail/mythtv-dev/attachments/20050722/fcceba21/videoout_xv-trimed.cpp


More information about the mythtv-dev mailing list