nVidia GeForce 9800 GTX+
The nVidia 9800 GTX+ is available with a PCI Express interface.
To playback 720p or 1080i high definition video, nVidia have
contributed a new API called
VDPAU (Video Decode and Presentation API for Unix), and it's available in Ubuntu "Jaunty" 9.04 distribution (which has revision 180.44 of the nVidia restricted drivers -- you need at least revision 180.35 for the restricted drivers to support VDPAU). The list of GPUs which support VDPAU can be found on the
mythtv wiki, and you can use
vdpinfo to check too.
The CPU utilization when using VDPAU to playback 1080i high definition video is very low (in the range of 1 to 2 percent) compared to
VxMC.
The SVN version of mplayer has the code to use the new VDPAU API, and you can build it as explained
here by Adrian Veidt, as follows.
sudo apt-get install build-essential subversion
sudo apt-get build-dep mplayer
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
cd $HOME/mplayer
./configure
make
Remember to disable the
Composite extension to prevent "tearing" during panning of the video during playback by adding the following to
your
/etc/X11/xorg.conf file, and restart your desktop session using
sudo invoke-rc.d gdm restart.
Doing this will of course also disable the "Desktop Effects", unfortunately.
#
# Add the following to your /etc/X11/xorg.conf file,
# to prevent "tearing" during video playback.
#
Section "Extensions"
Option "Composite" "Disable"
EndSection
Then, to playback a captured 1080i high definition video (e.g. ATSC.ts) using
mplayer with the nVidia 9800 GTX+ card, you can enable motion adaptive temporal deinterlacing with edge-guided spatial interpolation using the following flags.
$HOME/mplayer/mplayer -framedrop -fs -monitoraspect 16:9 -ao alsa -ac hwac3 -vo vdpau:deint=4 -vc ffmpeg12vdpau ATSC.ts
To playback 720p transport streams, you don't need the deinterlace flag:
$HOME/mplayer/mplayer -framedrop -fs -monitoraspect 16:9 -ao alsa -ac hwac3 -vo vdpau -vc ffmpeg12vdpau ATSC.ts
I've found that unless the
-framedrop flag is included, the audio gets out of sync with the video, so some frames are still being dropped. Not sure why, as CPU utilization is so low.
TwinView
To "clone" the same display on both your TV and monitor, you can use nVidia's TwinView feature. See
here for a sample
/etc/X11/xorg.conf for how a Dell 2405 FPW (left-hand DVI port) and Samsung LN40A630 TV (right-hand DVI port, via a DVI-to-HDMI connector) can be configured to display the same desktop. See the nVidia
manual chapter 13 for where TwinView and MetaModes are explained,
With the above configuration, since the desktop size on the TV is still 1920x1200, but the TV can only display 1920x1080, the top and
bottom gnome "panels" cannot be seen when you log in. One way to work around this is to use a method traditionally used to work around overscan
(which is described
here) to reposition the gnome panels as follows.
- Change the offset values using
gconf-editor: press Alt F2 to open a command line and enter gconf-editor.
- In the editor:
apps -> panel -> toplevels -> top_panel_screen_0, and in the window on the right, uncheck expand and change the setting for y_bottom to 1113. This is the new distance of the top panel from the bottom of the screen.
- In the editor:
apps -> panel -> toplevels -> bottom_panel_screen_0, and in the window on the right, uncheck expand and change the setting for y_bottom to 60. This is the new distance of the bottom panel from the bottom of the screen.
- Also, for both the top and bottom panels, check the
enable_buttons checkbox, to allow the panel to be hidden manualy (by pressing either of the little arrow buttons it then displays at each end), since auto-hide doesn't work properly when y_bottom is modified.
If you use Compiz, it is also possible to create window rules to define how your windows should maximize and offset accordingly. There is a forum thread on the topic
here.
Enabling TwinView causes an unexpected bug (see
launchpad bug 235768) in the Enhanced Zoom feature of Compiz-fusion, but the workaround is as follows.
- Install CompizConfig Settings Manager using
sudo apt-get install compizconfig-settings-manager.
- Go to
System -> Preferences -> CompizConfig Settings Manager.
- go to
General Options and select the Display Settings tab.
- Untick the
Detect outputs checkbox.
- Delete the output shown in
Outputs list just below, by selecting it and clicking the Delete button.
- xorg.conf: Sample
/etc/X11/xorg.conf for an nVidia GeForce 9800 GTX+ driving a Samsung LN40A630. Note that you should avoid using HDMI port number 2 (the "PC" port) for video playback on the Samsung LN40A630, as the colors are unnaturally gray and lifeless compared to those available when you use HDMI ports 1 and 3 instead.
- TwinView_xorg.conf: TwinView Clone configuration with Dell 2405 FPW and Samsung LN40A630 TV
to top