[Index] [TitleIndex] [WordIndex

Have a look on Supported Hardware to find some information on how to set up graphic cards for TV-Out. There are guides and tips for several models.

A good resolution is 800x600 and common values are:

HorizSync 30-50

Unfortunately with TV-Out there is often a black border around the picture, so that not the whole TV-screen is used. A possible solution is 'overscan'. (There are special tools to set that up ) You can set the picture to a size slightly bigger than the visible screen, and get rid of those black borders. But then freevo's OSD might not fit into the visible part.

To correct that effect you can use OSD_OVERSCAN_X and OSD_OVERSCAN_Y in "local_conf.py". You can shrink freevo's OSD to a size which fits perfectly into the visible part of your screen. Just play a little with those values until you have a satisfying result.

If it is necessary to call some programs or scripts for configuring the TV-Out, while freevo is already running, you can use OSD_SDL_EXEC_AFTER_STARTUP. For example I need to call nvtv -t -r 800,600 -s Huge -S PAL, to configure the TV-Out of my nvidia card.

Another solution with Nvidias ClosedSourceDriver:

If you are using Nvidia´s closed source driver with X11 and your video card does not support overscan it happens there is a black border around the picture. You can tweak freevo to fit the whole TV´s screen this way:

(This is taken from my setup. PAL TV and a Geforce2 MX400)

XF86Config:


# Monitor
Section "Monitor"
  Identifier   "Monitor[0]"
  ModelName    "4311U"
  VendorName   "iiyama --> LCD"
  HorizSync    24.8-80
  VertRefresh  56-85
  Option       "dpms"
EndSection
# Fernseher
Section "Monitor"
  Identifier   "Monitor[1]"
        ModelName    "TV-PAL"
        HorizSync    24.0 - 80.0
        VertRefresh  50.0 - 75.0
        Option      "nodpms"
        Option      "noddc"
# Set for 4:3 display
#       DisplaySize     300 225
# Set for 16:9 display
#       DisplaySize     400 225
        #Refresh Rate 60Hz
        ModeLine "720x480" 26.7 720 736 808 896 480 481 484 497
        ModeLine "720x576" 32.7 720 744 816 912 576 577 580 597
        Modeline "768x576"  31.24 768 824 904 1016  576 577 580 615
        ModeLine "848x480" 31.5 848 864 952 1056 480 481 484 497
        ModeLine "856x480" 31.7 856 872 960 1064 480 481 484 497
        ModeLine "1024x512" 41.3 1024 1056 1160 1296 512 513 516 531
        ModeLine "1280x768" 80.1 1280 1344 1480 1680 768 769 772 795
        ModeLine "1440x1050" 126.2 1440 1536 1688 1936 1050 1051 1054 1087
        #Refresh Rate 75Hz
#       ModeLine "720x480" 34.9 720 752 824 928 480 481 484 502
#       ModeLine "720x576" 42.6 720 760 832 944 576 577 580 602
#       ModeLine "848x480" 41.0 848 880 968 1088 480 481 484 502
#       ModeLine "856x480" 41.3 856 888 976 1096 480 481 484 502
#       ModeLine "1024x512" 53.3 1024 1072 1176 1328 512 513 516 535
#       ModeLine "1280x768" 103.0 1280 1360 1496 1712 768 769 772 802
#       ModeLine "1440x1050" 160.0 1440 1536 1696 1952 1050 1051 1054 1096
        #Refresh Rate 85Hz
#       ModeLine "1280x768" 118.5 1280 1368 1504 1728 768 769 772 807
#       ModeLine "1440x1050" 184.5 1440 1544 1704 1968 1050 1051 1054 1103
#       ModeLine "848x480" 47.4 848 888 976 1104 480 481 484 505
EndSection
Section "Screen"
  DefaultDepth 24
        SubSection "Display"
                Viewport   0 0
                Depth     24
#               Modes    "1280x1024" "1280x960" "1152x864" "1024x768""800x600" "640x480"
#               Modes    "800x600"
               Modes    "720x576"
#                Modes    "768x576"
        EndSubSection
  Device       "Device[0]"
  Identifier   "VGA"
  Monitor      "Monitor[0]"
EndSection
Section "Screen"
  DefaultDepth 24
        SubSection "Display"
                Viewport   0 0
                Depth     24
#               Modes    "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"
#               Modes    "800x600"
               Modes    "720x576"
#                Modes    "768x576"
        EndSubSection
  Device       "Device[1]"
  Identifier   "TV"
  Monitor      "Monitor[1]"
EndSection
# TV out
Section "Device"
  BoardName    "GeForce-2"
#  BusID        "1:5:0"
  Driver       "nvidia"
  Identifier   "Device[1]"
  Screen       0
  VendorName   "Nvidia"
  Option        "UseEdidFreqs"     "0"
  Option        "IgnoreEdid"       "1"
  Option        "GenerateRTList"   "0"
  Option        "NoLogo"        "on"
  Option        "DigitalVibrance" "120"
  Option        "RenderAccel" "on"
  Option        "CursorShadow"  "off"
  Option        "CursorShadowAlpha"     "32"
  Option        "CursorShadowXOffset"   "2"
  Option        "CursorShadowYOffset"   "2"
  Option        "TVOutFormat"           "COMPOSITE"
  Option        "TVStandard"            "PAL-B"
  Option        "ConnectedMonitor"      "TV"
  Option        "TVOverScan"            "0.9"
EndSection
# VGA out
Section "Device"
  BoardName    "GeForce-2"
#  BusID        "1:5:0"
  Driver       "nvidia"
  Identifier   "Device[0]"
  Screen       0
  VendorName   "Nvidia"
  Option        "NoLogo"        "on"
  Option        "CursorShadow"  "on"
  Option        "CursorShadowAlpha"     "32"
  Option        "CursorShadowXOffset"   "2"
  Option        "CursorShadowYOffset"   "2"
EndSection
Section "ServerLayout"
  Identifier   "Layout[all]"
  InputDevice  "Keyboard0" "CoreKeyboard"
  InputDevice  "Mouse0" "CorePointer"
  Screen       "TV"
  Option "blank time"    "254"
  Option "off time"      "254"
#  Option       "Clone" "off"
#  Option       "Xinerama" "off"
EndSection


This gives me a bit too large image on my TV. Now I use Freevo´s OVERSCAN_[X|Y] feature to center the OSD (in /etc/freevo/local_config.py):

OSD_OVERSCAN_X = 45
OSD_OVERSCAN_Y = 35

(this cuts the OSD area by 45 pixels left and right and 35 pixel from top and bottom.)

The Freevo menu is now centered.

Xine

Now its time for xine (my DVD player) (in /etc/freevo/local_config.py):

XINE_COMMAND = '%s --hide-gui -pq -g -B --geometry %sx%s+30+45 --no-splash' % \
                 (CONF.xine, CONF.width-30, CONF.height-45)

As you can see I added the 30 and 45 pixels to the offset (--geometry %sx%s+30+45) where the xine window should be placed and restricted the display area to the screensize decremented by the OVERSCAN_[X|Y] values.

Voilà! Xine plays really nice now :)

Mplayer

Mplayer configuration is best done using its own video filters. Provided that sufficient overscan is available in your (X or framebuffer) settings, anything can theoretically be achieved. You should refer to man mplayer for details of how mplayer filters work. Briefly, you may wish to crop and scale your raw image to expand it to the maximum available screen area. Then you can zoom it to full screen. Note that the following works with the 'xv' video overlay; with other filters, zoom functions may vary or be very slow. An example option is:

-vf crop=600::5:,scale=640:480 -x 640 -zoom

The -vf option here passes the output through a video filter consisting of first a crop (you probably won't need this, unless you wish to remove black bars from, in this case, the sides of the image), and secondly a scale, (enlarging the image to 640x480). As many video filters as desired can be applied, in order, by the use of commas (,) as shown. The -x option specifies that we want to scale the image to 640 in the x direction, with the y direction stretched in proportion. Finally, -zoom specifies that the image should be shown full screen with missing area filled with black.

To achieve the above Xine configuration in mplayer should only require setting different values of crop and scale, though -zoom may need to be omitted. The values needed will depend on the overscan situation of your TV. Refer to the crop and scale sections of man mplayer for more details.


2014-02-15 05:47