Search:  
Gentoo Wiki

TV-Out

Contents

Introduction

This howto covers the useability of the TV-out functions of modern display adapters. The article is a stub, and does not yet cover all areas. Actually it doesn't even cover xorg yet, just the framebuffer. Everyone who can, please fill in the blanks. I'm battling with TV-out myself at the moment with Radeon 9250, and wikifying my efforts as I go. Thanks.

TV-out can be done in many ways, so introducing all of them and giving clear explanations for them all is the target here. Also some technical information about the differences between the CRT and plasma televisions and the CRT and TFT monitors in general would be very good.

Connection types

Most likely you're going to connect from S-Video output to SCART input. The hardware costs about 10 €, and the quality isn't too great but acceptable. As I compare the DVB input at the television from the antenna to the DVB stream looped through the computer (DVB-PCI and an ATI S-Video chip, to SVIDEO input on the TV), there is a noticeable difference in quality.

S-Video

The small round connector has two separate video signals, one carrying brightness (luminance), the other carrying color (chroma). Also referred to as Y/C video. Audio is not carried on this cable.

The most common connection type on modern display adapters is the S-Video mini-DIN socket. The advantage of S-Video over RGB is that the cables and connectors are cheap and easy to find. Using S-Video is recommended if your TV supports it, because the quality is visibly superior to composite.

There are two disadvantages of using this feature instead of RGB. The first is that most of the cards on the market now have rather poor quality TV-out. The second is that TV-out is an area that is neglected by the xorg developers (at least up to 6.8.2), leaving TV-out up to proprietary drivers and individual driver projects.

Composite video

The most common form of connecting common electronic devices (such as digital cameras) into television, putting all the video information into one signal. Most televisions provide this option with a yellow RCA jack. Audio is not carried on this cable, though two separate cables with similar red and white RCA jacks for right and left line-level audio are commonly bonded to composite video cables. If you do not have a composite out on your card or you did not get a separate composite cable use the s-video to rgb cable. Most likely the composite signal will be on the blue cable

Component video

Three separate RCA jacks (colored red, green and blue) carry three video signals, one luminance (brightness) and two chrominance signals (color information), and is usually referred to as "Y, B-Y, R-Y", YPbPr or YUV. Audio is not carried on this cable. This connection provides for picture quality superior to S-Video and is typically used in home theater for DVDs, satellite and analogue HDTV; less common in Europe but is starting to become more widely available.

SCART

SCART has been standard in Europe since mid-1980s for all consumer electronics, which meant that RGBS was available on even the earliest PAL DVD players and satellite receivers. Japan uses a 21 pin RGB connector which is visually similar to SCART but with different pin configurations. The large 21 pin connector may carry:

Framebuffer

Using the framebuffer isn't a very clean solution if there are people in your house who can't or won't use the command line to play movie clips and pictures. However, it is the easiest solution, if it works in the first place. The downside is that many video filters (-vf options) are not supported.

You need to enable framebuffer support for the console in the kernel. Refer to Framebuffer.

Attach the output cable into the TV set, and boot up the computer. Some BIOSes can recognize the television and set the correct aspect ratio. Unfortunately my TFT monitor remains blank while using TV.

A possible solution to this would probably be fbset. Try it out.

Mplayer does the job of playing video clips just fine. It needs a framebuffer driver, and for my purposes DirectFB did the best job. The lengthy man mplayer gives several options for -vo switch. fbdev, fbdev2, directfb and vidix seem to be the best options. Compile mplayer and dependencies with the directfb USE flag. Then operate the player with -vo switch:

mplayer /path/to/file.mpeg -vo directfb

The mpeg plays on tty7, and you can pause and stop it from the tty you started it from by pressing CTRL-ALT-Fx where x is the number of the tty. For more information, look at MPlayer/Framebuffer.

In a similar fashion it is possible to view graphics on the TV with fbi / fbida. The program has several nice options, but unfortunately does not support autozoom (like feh -FZ does). The alternative is to use fbv, which unfortunately does not respect colors.

# emerge fbi
$ fbi /path/to/files/*

X configuration

Many people, who have got the TV-out to function are surprised when the video overlay only works on one monitor at a time. Most display adapters only have one head for overlay, so you need to specify this head to output to the TV. Usually this is screen0. Newer Ati-drivers also have an option to play video overlay on screen1.

ATI open-source driver (Radeon)

For Radeon 8500 and newer cards#ATI-proprietary-drivers may be easier to set up than Ati-Gatos, because GATOS under development only.
There is no official support in the Xorg-7.1 (xf86-video-ati-6.6.3), however you can try to enable it youself with the follow patch http://bugs.gentoo.org/show_bug.cgi?id=127642 (based on gatos project) and configuration, unless you have a R300+ (9100IGP for example) card wich they do not work at the moment:

Code: xorg.conf
 Section "Device"
        Identifier      "RADEON-TVOut"
        Driver  "radeon"
        Option  "AGPMode" "4"
        Option  "AGPFastWrite" "yes"
        Option  "TVOutput" "PAL"
        Option  "IgnoreEDID" "true"
        Option "MonitorLayout" "NONE, CRT"   #here it is!
 EndSection

 Section "Monitor"
        Identifier      "TV Monitor"
        HorizSync    30.0 - 40.0
        VertRefresh  60
        Modeline "800x600" 40.00 800 840 968 1056 600 601 605 628
 EndSection

 Section "Screen"
        Identifier      "TV Screen"
        Device          "RADEON-TVOut"
        Monitor         "TV Monitor"
        DefaultDepth    16
        SubSection "Display"
                Depth           16
                Modes           "800x600"
        EndSubSection
 EndSection
Warning: These patches are outdated

The patch for 'radeon' open source driver bundled with xorg-6.x can be found here:
http://shell.world-net.co.nz/~knightw/tvout/
The patch for xorg-7 has been also found (but not tested) there: http://shell.world-net.co.nz/~knightw/tvout/7/
http://shell.world-net.co.nz/~knightw/tvout/

Gatos drivers

ATI-Gatos is a project to provide extra drivers for xorg-x11 to make use of the multimedia functionality of ATI cards. Gatos is lagging behind the opensource 'radeon' driver in its support for the latest chipsets, though. Getting it installed, especially for TV-out, looks a little daunting, but is simple enough given a recipe.

Warning: These instructions are taken from http://www.realh.co.uk/linux_tv_howto/index.html and may be outdated (the cvs code may be included into the gatos found in portage).

TV-out is only available in one of GATOS' CVS branches, so make sure you also have CVS installed and run these commands:

cvs -d:pserver:anonymous@gatos.cvs.sourceforge.net:/cvsroot/gatos login
cvs -z3 -d:pserver:anonymous@gatos.cvs.sourceforge.net:/cvsroot/gatos co -r tv_output ati.2  

Just press Return when the first command asks for a password. To build it when it's finished downloading run:

xmkmf /usr/X11R6/bin/tree
make ; make install  

Configure GATOS' TV-out in xorg.conf. Use the radeon driver in the Device section as usual, but add this line:

Option "TVOutput" "PAL" 

Other valid settings in place of PAL are NTSC, NTSC-J, PAL-CN, PAL-M, PAL-N or PAL-60. Use a resolution of 800x600 (recommended) and/or 640x480 in the Screen section.

ATI-opensource-driver (>= 6.7.191)

As of version 6.7.191, the GATOS code was re-licensed and integrated into the driver (more info here).

Generally the following should work out of the box:

xrandr --addmode S-video 800x600
xrandr --output S-video --mode 800x600

For a Radeon 9000, issuing the following commands works:

xrandr --output S-video --set load_detection 1
xrandr --output S-video --auto

Note that the default TV standard appears to be NTSC, so if you need PAL you must either add this line to the "Device" section in your xorg.conf:

Option      "TVStandard" "pal"

Or run the following command before activating TV-Out:

xrandr --output S-video --set tv_standard pal

ATI-proprietary-drivers

Please refer to the ATI Drivers HOWTO for setting up the proprietary drivers.

The latest drivers incorporate both /opt/ati/bin/fglrxconfig and /opt/ati/bin/aticonfig. The former makes a brand new xorg.conf and the latter modifies an existing file. Backup your working xorg.conf, close xorg and from console run aticonfig. An example:

cd /etc/X11
cp xorg.conf xorg.conf.radeon
/opt/ati/bin/aticonfig --initial=dual-head --tvf=<TV standard> --tvs=VIDEO --hsync2=<TV hsync> --vrefresh2=<TV vrefresh> --iagp=off --agpl=off --ovon=1 -v
cat xorg.conf.radeon >> xorg.conf
nano xorg.conf

That creates a good starting point for creating your final xorg.conf. run aticonfig for full list of options. You need to specify the TV standard (see bottom of this page) as well as the hsync and vrefresh for the television.

Please continue this article if you've got a working TV-out on xorg. See the talk pages. -Ruxpin

To make TV-output working make sure that the second monitor has been added as bellow:

 Section "Monitor"
   Identifier  "Monitor1"
       HorizSync       30-81
       VertRefresh     56-88
 EndSection
 Section "Device"
   Identifier                          "ATI Graphics Adapter connector 0"
   Driver                              "fglrx"
   ..
   # === TV-out Management ===
   Option "NoTV" "no"
   Option "TVFormat"                   "NTSC-M"
   Option "TVStandard"                 "PAL-D"
   Option "TVHSizeAdj"                 "0"
   Option "TVVSizeAdj"                 "0"
   Option "TVHPosAdj"                  "0"
   Option "TVVPosAdj"                  "0"
   Option "TVHStartAdj"                "0"
   Option "TVColorAdj"                 "0"
   Option "GammaCorrectionI"           "0x06419064"
   Option "GammaCorrectionII"          "0x07d1905b"
   ...
 EndSection
 Section "Device"
   Identifier  "ATI Graphics Adapter connector 1"
   Driver      "fglrx"
   BusID "PCI:1:0:0"
   Screen 1
 EndSection
 Section "Screen"
   Identifier  "Screen1"
   Device      "ATI Graphics Adapter connector 1"
   Monitor     "Monitor1"
   DefaultDepth 24
   Subsection "Display"
       Depth       24
       Modes       "1024x768" "800x600" "640x480"
       ViewPort    0 0  # initial origin if mode is smaller than desktop
    EndSubsection
 EndSection
 Section "ServerLayout"
   Screen 0 "Screen0" 0 0
   Screen 1 "Screen1" LeftOf "Screen0"
 EndSection

nVidia

See TV-Out with GeForce
Also see HOWTO Separate x-screens on Monitor and TV

Intel GMA

See this HowTo.

TV standards

The value of TV standard should be adjusted to your region.

PAL-Bused in Australia, Belgium, Denmark, Finland, Germany, Greece, Guinea, Hong Kong, India, Indonesia, Italy, Malaysia, The Netherlands, Norway, Portugal, Singapore, Spain, Sweden, Switzerland ,Thailand and Turkey.
PAL-Dused in China and North Korea
PAL-Gused in Australia, Denmark, Finland, Germany, Italy, Malaysia, The Netherlands, Norway, Portugal, Spain, Sweden and Switzerland.
PAL-Hused in Belgium
PAL-Iused in Hong Kong, The United Kingdom, Ireland, Macua, Falklands, Angola, Lesotho, Namibia, Tristan da Cunha and South Africa
PAL-K1used in Guinea
PAL-Mused in Brazil
PAL-Nused in France, Paraguay, and Uruguay
PAL-NCused in Argentina
NTSC-Jused in Japan
NTSC-Mused in Canada, Chile, Colombia, Costa Rica, Ecuador, Haiti, Honduras, Mexico, Panama, Puerto Rico, South Korea, Taiwan, United States of America, and Venezuela

See also

Retrieved from "http://www.gentoo-wiki.info/TV-Out"

Last modified: Sat, 11 Oct 2008 02:25:00 +0000 Hits: 50,165