Mach64 video4linux2 module (Based on GATOS and the development version of
BTTV)
This is very alpha, use at your own risk.
It has only been tested with the cards I have access to.
- 16 meg all-in-wonder rage 128 capture card.
- 8 meg all-in-wonder pro capture card.
- 4 meg all-in-wonder capture card.
(ATI Technologies Inc 3D Rage II+ 215GTB [Mach64 GTB])
- 2 meg ATI Rage II+ video card + an ISA addon tv card.
- Ati Rage Pro video card + an ISA addon tv card.
Dont forget to read the FAQ.
Tested V4L programs
Mythtv currently only supports capture cards that output planar YUV (as far as
I know) and the bt82X chip can only output packed format YUV, so until someone
patches Mythtv to support other formats...
You do not need the GATOS video
driver to use this module in fact you dont even need X.
However you should use the gatos video driver if all you want to do is watch
tv. (it supports overlay and alot more cards)
Module Options
- debug (set the debug level)
- disablev4l2 (disable all v4l2 functions)
- disabledma (disable dma support)
- disableinterlace (max resolution will be 640x240)
Note: when the height is less than or equal to 240 interlace is automatically
turned off. (probably a bad idea but it makes better snapshots in xawtv that
way)
- halfwidth (cut max width in half 640 becomes 320)
- forceromaddr (Force romaddr to 0x000C0000)
- tunertype (0=pal, 1=ntsc, 2=secam, 3=pal nc, 4=pal m, 5= pal n, 6=ntsc jp)
it will default to ntsc(1)
Example commands:
- MPlayer 1.0
mplayer tv://50 -tv driver=v4l:input=1:norm=ntsc:outfmt=yuy2:width=320:height=240:chanlist=us-cable -nofs
- MPlayer 0.92
mplayer -tv on:driver=v4l:input=1:norm=ntsc:outfmt=yuy2:width=320:height=240:chanlist=us-cable:channel=50 -nofs
- FFmpeg (you need an external program to change the channel)
ffmpeg -vd /dev/video0 -ad /dev/dsp -r 29.97 -s 320x240 -acodec mp3 /tmp/test.avi
Notes:
- Make sure your card has an irq assigned to it (there is a jumper on most cards that can enable/disable this)
- If you have multiple video cards and the ATI card is not set as the
primary card, you cannot load the module until X has enabled it.
(Using kmod would be a good idea, it loads modules when you access the device)
- Make sure you load the videodev module as well!
Whats missing
- Support for other ATI cards (should be able to support anything the GATOS
driver supports)
- Audio chip stuff (volume, bass, treble for cards with audio chips)
- etc etc etc...
Known bugs
- Can only capture from one card at a time. (hangs if you use more than one)
- If your using kernel 2.4.* and it segfaults, the first thing you should do is update the video4linux header files videodev.h and videodev2.h you can get them from here http://bytesex.org/patches/
- Does not work with mach64 DRI, my dma code assumes it has complete control.
Changes
- Dec 31 2003.
Enabled CAGC - Automatic Chrominance Gain Control (which should make the colours more vibrant)
Enabled CKILL - Low Colour Detection and Removal
Initial support for Closed captioning, I am almost 100% sure this is not supposed to go on /dev/vbi but thats where it is for now. (EDS data can also be captured but I have no place to put the output yet)
- Jan 10 2004
Proper vbi support (works with ccdecoder and ntsc-cc)
Fixes the sysfs warning for 2.6.* kernels
Xawtv works properly when v4l2 is disabled now
- Jan 21 2004
added support for All in wonder Pro, vbi does not work with it yet.
- Jan 22 2004
VBI should work with AIW PRO now.
- Feb 03 2004
Should now work with multiple cards... but only one at a time.
- Feb 05 2004
Should display video properly in AIW pro now
- Feb 23 2004
updated video4linux header files (that are included with the 2.4 version)
So it should now work with kernel 2.4.25
- Mar 07 2004
Merged 2.6 and 2.4 sources into one file and hopefully added support for tuners other than NTSC
- Mar 12 2004
Bios now maps into memory correctly, so tuner type can be determined.
This might make it work with pal/secam cards now... I hope
- Mar 24 2004
removed videodev.h and videodev2.h, 2.4 kernel users will now have to patch there kernel before they can compile. Changed documentation a little, reposting to freshmeat to find some pal/secam testers
- Apr 07 2004
Fixed a bug that could have been corrupting memory. Initial support for rage128 cards (not done yet! right now it just finds the card)
- Apr 25 2004
Fixed a few bugs, should work with mplayer v4l2 plugin now.
Added a french translation for the readme file (thanks to Ronald Delobel)
- Apr 26 2004
Fixes a bug with the tuner (I hope) that affected secam users.
- Apr 27 2004
Fixes a bug with VIDIOC_DQBUF (it was starting capture again after it was turned off when the user program tried to empty the queue :)
more fixes to the tuner code to get secam working
- Apr 28 2004
More SECAM fixes, if your a SECAM user you must specify tunertype=2 when loading the module! (otherwise it defaults to PAL)
- Apr 29 2004
More bug fixes. Secam now works perfectly (thanks to Ronald Delobel for letting me use his computer)
- June 23 2004
Added a proc interface to bt registers, look in /proc/genericv4l/#
(# is the number of the v4l device)
- July 03 2004
Removed all floating point operations so it will work with the latest kernels
- July 23 2004
You can now capture to a max of 720x480 for ntsc and 768x576 for pal
(this has only been tested for ntsc)
- Aug 02 2004
fixes a bug with v4l1 capture programs that use mmap.
- Aug 24 2004
adds back in some code to limit the video format to VIDEO_PALETTE_YUV422
so ffmpeg will work again (ffmpeg does not check the format after calling VIDIOCMCAPTURE)
- Sept 23 2004
fixes some bugs with vbi capture, and tuning.
- Dec 12 2004
Fixed an annoying bug where capture could freeze if you change channels while downloading.
Should no longer crash tvtime, its not working perfectly with it yet tho.
(very jittery)
- Jan 05 2005
Fixes a bug that caused it to crash when loaded (insmod) on certain kernels (fedora)
- Jan 11 2005
Should disable interlace properly for pal and secam now.
- Jan 22 2005
Changes remap_page_range to remap_pfn_range for 2.6.10 and above kernels.
Removes some hard coded values for vbi capture (trying to make it work for pal and secam tuners)
- Feb 25 2005
Adds an option to disable dma (disabledma=1).
Switching Stereo/SAP/Mono should now work with tda9850 audio chips.
Should return the correct audio mode when VIDIOC_G_TUNER is called.
- March 10 2005
Adds support for rage128 cards, still VERY buggy, capturing messes up overlay for some reason. (use xawtv -noxv-image to watch tv)
- April 05 2005
Fixes a bug with rage128 cards and full screen where the buffers overlapped.
- July 07 2005
Minor fix changes dev->slot_name to pci_name(dev)
- Oct 06 2005
added halfwidth option to help cut buffer size
- Oct 07 2005
added forceromaddr to force the rom address to 0x000C0000
(usefull for accessing the bios on rage128 cards that dont want to work)
- Oct 16 2005
Changed tuner input name to Television.
Make sure you update your ~.xawtv config file (input = Television)
- Nov 19 2005
Added missing header file (linux/version.h) so
it will compile on 2.6.14 kernel
- Jan 22 2006
Patch for AMD 64 bit machines provided by Fred Howell! (Thank you!)
- Feb 20 2006
Bobby Weinmann found and patched a bug with mplayer (it was hanging on exit) (Thanks!!)
- Jul 30 2006
Brian Julin cleaned up the i2c code in his attempt to get the module working with his card. (0x4C4D mach64) and fixed a few other things while he was at it (Thanks)
- Aug 03 2006
updated MODULE_PARM to module_param so it should work with 2.6.17 kernels
- Aug 07 2006
more changes by Brian Julin (separates out the ack of interrupts with enabling them, seems to make it more stable)
- Oct 20 2006
Should now compile on 2.6.18 kernels (patched by Dylan Spies)
- Jan 13 2007
Another fix for 2.6.18 kernels
- June 9 2007
Fix for 2.6.20 kernels (patched by Ian Stakenvicius, and myself I just forgot to upload it :)
- March 30 2008
Fix for newer kernels (IRQF_SHARED replaces SA_SHIRQ)
- Dec 21 2008
Should compile on 2.6.27 now
Download
Last updated Dec 21 2008
For 2.6.* and 2.4.* kernels
genericv4l-2.6.tbz2
genericv4l-2.6.tgz
Ian Stakenvicius provided an ebuild for gentoo systems.
gentoo ebuild
Thanks to the gatos team for giving me access to there cvs on sourceforge
you can now grab it from http://gatos.sourceforge.net/v4l2.php
Type:
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gatos login
press enter for the password, then type:
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gatos co -P v4l2
If you have any success with this driver please email me sellers-eric
at
rulerofearth.com