Mercurial > mplayer.hg
view TVout/matroxtv @ 9558:29aa61268e54
Update, new page fault handler to access the agp mem. Doesn't really work
here (display is grabelled) but read are realiable and fast. Could
it be possible to write with the aperture and read with the page fault
handler ?
author | albeu |
---|---|
date | Sun, 09 Mar 2003 23:55:42 +0000 |
parents | 43a33dff1293 |
children | 1c59a05f406d |
line wrap: on
line source
#!/bin/sh # # Gabucino - no warranty, this script can BOOM your TV and/or monitor, or else. # v2.5 # This script has been tested and configured on a Matrox G400DH, a PAL TV, # a 14" analog and a 15" digital monitor. # # INSTALLATION: # 1. READ MPLAYER'S TVOUT DOCUMENTATION! # 2. Edit 'defaultmode', 'TVdefaultmode', and 'SetTVstandard' functions # below to fit your needs. # 3. Remove 'exit 1' safety check. # function defaultmode { # You can choose the mode to use in monitor-only mode # 640x480 60Hz 32bpp (14" monitors) fbset -a -xres 640 -yres 480 -vxres 640 -vyres 480 -depth 32 -pixclock 39721 -left 48 -right 16 -upper 33 -lower 10 -hslen 96 -vslen 2 -hsync high -accel true # 768x576 60Hz 32bpp (14" monitors) # fbset -a -xres 768 -yres 576 -vxres 768 -vyres 5460 -depth 32 -pixclock 26101 -left 144 -right 16 -upper 28 -lower 6 -hslen 112 -vslen 4 -accel true # 800x600 76Hz 32bpp (15" monitors) # fbset -a -xres 800 -yres 600 -vxres 800 -vyres 1440 -depth 32 -pixclock 20000 -left 128 -right 16 -upper 24 -lower 2 -hslen 96 -vslen 6 # 1024x768 70Hz 32bpp (15" monitors) # fbset -a -xres 1024 -yres 768 -vxres 1024 -vyres 1440 -depth 32 -pixclock 12500 -left 144 -right 32 -upper 30 -lower 2 -hslen 192 -vslen 6 } function TVdefaultmode { ## ## PAL modes ## # 640x512 80Hz 32bpp fbset -depth 32 -left 60 -right 0 -upper 70 -lower 39 -hslen 76 -vslen 4 -xres 640 -yres 512 -bcast true # 640x528 83Hz 32bpp # fbset -depth 32 -left 40 -right 0 -upper 63 -lower 29 -hslen 56 -vslen 4 -xres 640 -yres 528 -vxres 640 -vyres 528 -laced false -bcast true # 720x576 78Hz 32bpp # fbset -depth 32 -left 54 -right -36 -upper 55 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true ## ## NTSC modes ## # 640x240 non-interlaced 32bpp # fbset -depth 32 -xres 640 -yres 240 -vxres 640 -vyres 240 -pixclock 79443 -left 72 -right 40 -upper 15 -lower 5 -hslen 48 -vslen 3 # 640x480 interlaced 32bpp # fbset -depth 32 -xres 640 -yres 480 -vxres 640 -vyres 480 -pixclock 79443 -left 72 -right 40 -upper 30 -lower 10 -hslen 48 -vslen 5 -laced true } function SetTVstandard { matroxset 128 # PAL # matroxset 2 # NTSC } function SetMonitorMode { matroxset 128 } function mappingreset { matroxset -f /dev/fb0 -m 0 matroxset -f /dev/fb1 -m 0 matroxset -f /dev/fb0 -m 1 con2fb /dev/fb0 /dev/tty1 con2fb /dev/fb0 /dev/tty2 SetMonitorMode defaultmode } function warn { clear echo "Display routing is about to come! Due to certain limitations" echo "(kernel? driver?), you MUST switch ttys a few times for" echo "these changes to take effect!!!!! After pressing a key now." echo echo "I.e.: press alt-f1, alt-f2, alt-f3, then back to alt-f1" echo echo "NOTE: you won't automatically get consoles on the new display." echo " To achieve that, use the con2fb utility:" echo " $ con2fb /dev/fb1 /dev/tty1" echo " (and don't forget to change ttys a few times...)" echo echo echo "If you read this, PRESS ANY KEY TO CONTINUE" read } function warn2 { clear echo echo echo echo echo Routing done! echo Change consoles! echo echo Then PRESS ANY KEY TO RETURN to menu read } echo echo "Please read MPlayer's TV-out documentation, and install 'matroxset' and 'fbset'." echo "Then edit this script to suit your monitor+TV set." echo exit 1 while [ 1 ]; do clear echo " [ 0 ] Clear & blank screen" echo " [ 1 ] Monitor only" echo " /---> Monitor" echo " [ 2 ] Cloning - CRTC1" echo " \\---> TV" echo echo " /---> Monitor1" echo " [ 3 ] Cloning - CRTC1" echo " \\---> Monitor2" echo echo " CRTC1 ---> Monitor1" echo " [ 4 ] DualHead -" echo " CRTC2 ---> Monitor2" echo echo " CRTC1 ---> Monitor2" echo " [ 5 ] DualHead - SWAP!" echo " CRTC2 ---> Monitor1" echo echo -- TV MODES echo echo " [ A ] 640x512 PAL" echo " [ S ] 640x528 PAL" echo " [ D ] 720x576 PAL" echo " [ F ] 640x240 NTSC" echo " [ G ] 640x480 NTSC, Interlaced" read ABC case "$ABC" in 0) mappingreset clear setterm -cursor off setterm -blank 0 read setterm -cursor on ;; 1) mappingreset echo ;; 2) mappingreset matroxset -f /dev/fb0 -m 3 SetTVstandard TVdefaultmode ;; 3) mappingreset matroxset -f /dev/fb0 -m 3 ;; 4) warn mappingreset matroxset -f /dev/fb0 -m 1 matroxset -f /dev/fb1 -m 2 warn2 ;; 5) warn mappingreset matroxset -f /dev/fb0 -m 2 matroxset -f /dev/fb1 -m 1 warn2 ;; a) # 640x512 80Hz 32bpp fbset -depth 32 -left 60 -right 0 -upper 70 -lower 39 -hslen 76 -vslen 4 -xres 640 -yres 512 -bcast true ;; s) # 640x528 83Hz 32bpp fbset -depth 32 -left 40 -right 0 -upper 63 -lower 29 -hslen 56 -vslen 4 -xres 640 -yres 528 -vxres 640 -vyres 528 -laced false -bcast true ;; d) # 720x576 78Hz 32bpp # fbset -depth 32 -left 54 -right -36 -upper 55 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true fbset -depth 32 -right -36 -lower -6 -hslen 46 -vslen 4 -xres 720 -yres 576 -vxres 720 -vyres 576 -laced false -bcast true ;; f) # 640x240 non-interlaced 32bpp fbset -depth 32 -xres 640 -yres 240 -vxres 640 -vyres 240 -pixclock 79443 -left 72 -right 40 -upper 15 -lower 5 -hslen 48 -vslen 3 ;; g) # 640x480 interlaced 32bpp fbset -depth 32 -xres 640 -yres 480 -vxres 640 -vyres 480 -pixclock 79443 -left 72 -right 40 -upper 30 -lower 10 -hslen 48 -vslen 5 -laced true ;; esac done