<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.linuxtv.org/wiki/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://www.linuxtv.org/wiki/index.php?title=Special:Contributions/Liontooth&amp;feed=atom&amp;limit=50&amp;target=Liontooth&amp;year=&amp;month=</id>
		<title>LinuxTVWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://www.linuxtv.org/wiki/index.php?title=Special:Contributions/Liontooth&amp;feed=atom&amp;limit=50&amp;target=Liontooth&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Special:Contributions/Liontooth"/>
		<updated>2013-05-18T22:35:04Z</updated>
		<subtitle>From LinuxTVWiki</subtitle>
		<generator>MediaWiki 1.16.5</generator>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/TerraTec_Cinergy_T_PCIe_dual</id>
		<title>TerraTec Cinergy T PCIe dual</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/TerraTec_Cinergy_T_PCIe_dual"/>
				<updated>2012-04-21T10:12:30Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A dual-tuner DVB-T PCIe card sold by TerraTec. This card appears to be supported from kernel 3.3 by LinuxTV drivers (not confirmed).&lt;br /&gt;
&lt;br /&gt;
== Overview/Features ==&lt;br /&gt;
&lt;br /&gt;
This is technically a very interesting card. The hardware is as follows:&lt;br /&gt;
&lt;br /&gt;
* Tuner #1:        microtune mt2063&lt;br /&gt;
* Demodulators #1: drx-3916k DVB-T/Analoge TV&lt;br /&gt;
* Tuner #2:        microtune mt2063&lt;br /&gt;
* Demodulators #2: drx-3913k DVB-T/DVB-C&lt;br /&gt;
* PCI Express x1 Bridge: Conexant cx23885&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
&lt;br /&gt;
This card is supported from kernel version 3.3 (?). The microtune tuner was merged in kernel version 3.3 (see [http://lwn.net/Articles/474793/ first submission]).&lt;br /&gt;
&lt;br /&gt;
The card itself was added upstream on LinuxTV's git repository on [http://patchwork.linuxtv.org/patch/8879/ 2011-12-17] and may have been merged upstream.&lt;br /&gt;
&lt;br /&gt;
The first frontend supports only DVB-T, but support for analogue TV is planned for kernel 3.4 or 3.5. The second frontend supports both DVB-T and DVB-C in a multifrontend device (spec's DVB v5 API).&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Linux4Media_cineS2_DVB-S2_Twin_Tuner</id>
		<title>Linux4Media cineS2 DVB-S2 Twin Tuner</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Linux4Media_cineS2_DVB-S2_Twin_Tuner"/>
				<updated>2012-03-26T09:59:52Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* External Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A [[NGene_devices|nGene]] based [[DVB-S2]] [[DVB-S2 PCIe Cards|PCIe card]] from [[Linux4Media]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Media-Pointer_MP-S2_Front.jpg|right|thumb|200px|Linux4Media cineS2 DVB-S2 Twin Tuner ]]&lt;br /&gt;
&lt;br /&gt;
==Overview/Features==&lt;br /&gt;
* Full Linux Support&lt;br /&gt;
* PCI-e x1&lt;br /&gt;
* Dual Tuner DVB-S/S2 card&lt;br /&gt;
* Ultra-Low Profile&lt;br /&gt;
&lt;br /&gt;
===Components Used===&lt;br /&gt;
* [[NGene_devices|PCIe bridge MICRONAS APB 7202A B2]]&lt;br /&gt;
* [[STMicroelectronics_STV0900|Dual demodulator STM STV0900B]]&lt;br /&gt;
* [[ST_STV6110A|Tuner STM STV6110A]]&lt;br /&gt;
* [[Dual LNB STM LNBH24]]&lt;br /&gt;
&lt;br /&gt;
===Other Images===&lt;br /&gt;
&amp;lt;gallery perrow=5&amp;gt;&lt;br /&gt;
 Image:Media-Pointer_MP-S2_MICRONAS_APB_7202A_B2.jpg|PCIe bridge MICRONAS APB 7202A B2&lt;br /&gt;
 Image:Media-Pointer_MP-S2_STV0900B.jpg|Dual demodulator STM STV0900B&lt;br /&gt;
 Image:Media-Pointer_MP-S2_STV6110A.jpg|Tuner STM STV6110A&lt;br /&gt;
 Image:Media-Pointer_MP-S2_LNBH24.jpg|Dual LNB STM LNBH24&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Identification===&lt;br /&gt;
 $ lspci -vvvnn&lt;br /&gt;
 02:00.0 Multimedia video controller [0400]: Micronas Semiconductor Holding AG Device [18c3:0720]&lt;br /&gt;
 	Subsystem: Micronas Semiconductor Holding AG Device &amp;lt;b&amp;gt;[18c3:abc3]&amp;lt;/b&amp;gt;&lt;br /&gt;
 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-&lt;br /&gt;
 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- &amp;lt;TAbort- &amp;lt;MAbort- &amp;gt;SERR- &amp;lt;PERR- INTx+&lt;br /&gt;
 	Latency: 0, Cache Line Size: 32 bytes&lt;br /&gt;
 	Interrupt: pin A routed to IRQ 16&lt;br /&gt;
 	Region 0: Memory at fe8f0000 (32-bit, non-prefetchable) [size=64K]&lt;br /&gt;
 	Region 1: Memory at fe8e0000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
 	Capabilities: [40] Power Management version 2&lt;br /&gt;
 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)&lt;br /&gt;
 		Status: D0 PME-Enable- DSel=0 DScale=0 PME-&lt;br /&gt;
 	Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-&lt;br /&gt;
 		Address: 0000000000000000  Data: 0000&lt;br /&gt;
 	Capabilities: [58] Express (v1) Endpoint, MSI 00&lt;br /&gt;
 		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s &amp;lt;64ns, L1 &amp;lt;1us&lt;br /&gt;
 			ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-&lt;br /&gt;
 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-&lt;br /&gt;
 			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+&lt;br /&gt;
 			MaxPayload 128 bytes, MaxReadReq 512 bytes&lt;br /&gt;
 		DevSta:	CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-&lt;br /&gt;
 		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 unlimited, L1 unlimited&lt;br /&gt;
 			ClockPM- Suprise- LLActRep- BwNot-&lt;br /&gt;
 		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-&lt;br /&gt;
 			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-&lt;br /&gt;
 		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-&lt;br /&gt;
 	Capabilities: [100] Device Serial Number 00-11-3c-20-07-00-00-00&lt;br /&gt;
 	Capabilities: [400] Virtual Channel &amp;lt;?&amp;gt;&lt;br /&gt;
 	Kernel driver in use: ngene&lt;br /&gt;
 	Kernel modules: ngene&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
 $ lspci -vvvnn&lt;br /&gt;
 02:00.0 Multimedia video controller [0400]: Micronas Semiconductor Holding AG Device [18c3:0720]&lt;br /&gt;
 	Subsystem: Micronas Semiconductor Holding AG Device &amp;lt;b&amp;gt;[18c3:abc4]&amp;lt;/b&amp;gt;&lt;br /&gt;
 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-&lt;br /&gt;
 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- &amp;lt;TAbort- &amp;lt;MAbort- &amp;gt;SERR- &amp;lt;PERR- INTx+&lt;br /&gt;
 	Latency: 0, Cache Line Size: 32 bytes&lt;br /&gt;
 	Interrupt: pin A routed to IRQ 16&lt;br /&gt;
 	Region 0: Memory at fe8f0000 (32-bit, non-prefetchable) [size=64K]&lt;br /&gt;
 	Region 1: Memory at fe8e0000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
 	Capabilities: [40] Power Management version 2&lt;br /&gt;
 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)&lt;br /&gt;
 		Status: D0 PME-Enable- DSel=0 DScale=0 PME-&lt;br /&gt;
 	Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-&lt;br /&gt;
 		Address: 0000000000000000  Data: 0000&lt;br /&gt;
 	Capabilities: [58] Express (v1) Endpoint, MSI 00&lt;br /&gt;
 		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s &amp;lt;64ns, L1 &amp;lt;1us&lt;br /&gt;
 			ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-&lt;br /&gt;
 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-&lt;br /&gt;
 			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+&lt;br /&gt;
 			MaxPayload 128 bytes, MaxReadReq 512 bytes&lt;br /&gt;
 		DevSta:	CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-&lt;br /&gt;
 		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 unlimited, L1 unlimited&lt;br /&gt;
 			ClockPM- Suprise- LLActRep- BwNot-&lt;br /&gt;
 		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-&lt;br /&gt;
 			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-&lt;br /&gt;
 		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-&lt;br /&gt;
 	Capabilities: [100] Device Serial Number 00-11-3c-20-07-00-00-00&lt;br /&gt;
 	Capabilities: [400] Virtual Channel &amp;lt;?&amp;gt;&lt;br /&gt;
 	Kernel driver in use: ngene&lt;br /&gt;
 	Kernel modules: ngene&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
 03:00.0 Multimedia video controller [0400]: Micronas Semiconductor Holding AG Device [18c3:0720]  (rev 01)&lt;br /&gt;
 	Subsystem: Micronas Semiconductor Holding AG Device '''[18c3:dd00]'''&lt;br /&gt;
 	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR-  FastB2B- DisINTx-&lt;br /&gt;
 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- &amp;lt;TAbort- &amp;lt;MAbort- &amp;gt;SERR-   &amp;lt;PERR- INTx-&lt;br /&gt;
 	Latency: 0, Cache Line Size: 32 bytes&lt;br /&gt;
 	Interrupt: pin A routed to IRQ 10&lt;br /&gt;
 	Region 0: Memory at fddf0000 (32-bit, non-prefetchable) [size=64K]&lt;br /&gt;
 	Region 1: Memory at fdde0000 (64-bit, non-prefetchable) [size=64K]&lt;br /&gt;
 	Capabilities: [40] Power Management version 2&lt;br /&gt;
 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)&lt;br /&gt;
 		Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-&lt;br /&gt;
 	Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+&lt;br /&gt;
 		Address: 0000000000000000  Data: 0000&lt;br /&gt;
 	Capabilities: [58] Express (v1) Endpoint, MSI 00&lt;br /&gt;
 		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s &amp;lt;64ns, L1 &amp;lt;1us&lt;br /&gt;
 			ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-&lt;br /&gt;
 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-&lt;br /&gt;
 			RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+&lt;br /&gt;
 			MaxPayload 128 bytes, MaxReadReq 512 bytes&lt;br /&gt;
 		DevSta:	CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-&lt;br /&gt;
 		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Latency L0 unlimited, L1  unlimited&lt;br /&gt;
 			ClockPM- Surprise- LLActRep- BwNot-&lt;br /&gt;
 		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+&lt;br /&gt;
 			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-&lt;br /&gt;
 		LnkSta:	Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-&lt;br /&gt;
 	Capabilities: [100] Device Serial Number 00-00-00-00-00-00-00-00&lt;br /&gt;
 	Capabilities: [400] Virtual Channel &amp;lt;?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Making it Work==&lt;br /&gt;
&lt;br /&gt;
Make sure that the external power supply is connected!!!&lt;br /&gt;
&lt;br /&gt;
===Firmware===&lt;br /&gt;
&lt;br /&gt;
 $ wget http://www.digitaldevices.de/download/ngene_15.fw&lt;br /&gt;
 $ cp ngene_15.fw /lib/firmware/&lt;br /&gt;
&lt;br /&gt;
Device [18c3:dd00] needs Firmware &amp;gt;= 18&lt;br /&gt;
 $ wget http://l4m-daten.de/downloads/firmware/dvb-s2/linux/all/ngene_18.fw&lt;br /&gt;
 $ sudo cp ngene_18.fw /lib/firmware&lt;br /&gt;
&lt;br /&gt;
===Driver===&lt;br /&gt;
&lt;br /&gt;
 $ hg clone http://linuxtv.org/hg/v4l-dvb/&lt;br /&gt;
 $ cd v4l-dvb&lt;br /&gt;
 $ make&lt;br /&gt;
 $ make install&lt;br /&gt;
&lt;br /&gt;
Also supported by the [[s2-liplianin]] v4l branch.&lt;br /&gt;
&lt;br /&gt;
On RHEL / Centos / Scientific Linux 6.x the card works with video4linux driver RPM &amp;gt;= 20110208_132512-98.el6 from ATRPMS Repository.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
[http://www.tecstore.net/Produkt/452055/CineS2-V6-DVB-S2-Twin-Tuner-%28Low-Profile%29-%28DVB-S2%29 CineS2 DVB-S2 Twin Tuner &amp;quot;Low Profile&amp;quot;]&lt;br /&gt;
[[Category:DVB-S2 PCIe Cards]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Digital_Devices_DuoFlex_C%26T</id>
		<title>Digital Devices DuoFlex C&amp;T</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Digital_Devices_DuoFlex_C%26T"/>
				<updated>2012-02-26T13:28:17Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview/Features ==&lt;br /&gt;
 * PCI-e x1 (Bridge)&lt;br /&gt;
 * Recieve  Dual DVB-C/DVB-T in high definition simultaneously&lt;br /&gt;
 * Independent descrambling of two transponders&lt;br /&gt;
 * DVB-C HDTV H264 decoding&lt;br /&gt;
 * DVB-T SD Mpeg2 decoding&lt;br /&gt;
 * Mixed Mode feature (2x DVB-C / 2x DVB-T / DVB-C &amp;amp; DVB-T)&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
PCI id:&lt;br /&gt;
Multimedia controller: Device dd01:0003&lt;br /&gt;
&lt;br /&gt;
and an extra PCI Bridge:&lt;br /&gt;
PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 02)&lt;br /&gt;
&lt;br /&gt;
==Making it work==&lt;br /&gt;
copied from VDR Portal (See Link below)&lt;br /&gt;
&lt;br /&gt;
This uses Sources from:&lt;br /&gt;
http://linuxtv.org/hg/~endriss/ngene-octopus-test:&lt;br /&gt;
- ngene: cineS2(v3/v4/v5), SatixS2, PCIe-Bridge, mini PCIe-Bridge&lt;br /&gt;
- ddbridge: Octopus, Octopus LE, cineS2(v6)&lt;br /&gt;
- DuoFlex-S2, DuoFlex-CT, CI&lt;br /&gt;
&lt;br /&gt;
and from&lt;br /&gt;
http://powarman.dyndns.org/hgwebdir.cgi/v4l-dvb-saa716x:&lt;br /&gt;
- TT S2-6400&lt;br /&gt;
&lt;br /&gt;
Compilable with Kernel 2.6.35 and higher (2.6.30 and below doesn't work for sure).&lt;br /&gt;
&lt;br /&gt;
How to Compile:&lt;br /&gt;
&lt;br /&gt;
1. Download modified media_build:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hg clone http://linuxtv.org/hg/~endriss/media_build_experimental&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Download Drivers and Compile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd media_build_experimental&lt;br /&gt;
make download&lt;br /&gt;
make untar&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. '''optional''': deselect unused modules:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make menuconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Build Drivers&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. install modules&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;make install&lt;br /&gt;
modprobe ddbridge&lt;br /&gt;
modprobe ngene&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Scanning for Channels ==&lt;br /&gt;
&lt;br /&gt;
DVB-C:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;w_scan -fc -c DE -t 3 -F &amp;gt; channels.dvb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DVB-T:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;w_scan -ft -c DE -t 3 -F &amp;gt; channels.dvb&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The C/T card has two frontends, frontend0 is QAM for DVB-C and frontend1 is OFDM for DVB-T.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://linuxtv.org/hg/~endriss/ngene-octopus-test LinuxTV] - driver patches&lt;br /&gt;
* [https://launchpad.net/~yavdr/+archive/main Ubuntu PPA] (dkms package)&lt;br /&gt;
* [http://www.linux4media.de/files/DDTuner.zip DDTuner.zip] - System Driver&lt;br /&gt;
* [http://digital-devices.de/ Digital-Devices] - manufacturer website&lt;br /&gt;
* [http://www.vdr-portal.de/board16-video-disk-recorder/board85-hdtv-dvb-s2/105803-aktuelle-treiber-f%C3%BCr-octopus-ddbridge-cines2-ngene-ddbridge-duoflex-s2-duoflex-ct-sowie-tt-s2-6400/ VDR Portal] - Driver installation Howto&lt;br /&gt;
&lt;br /&gt;
[[Category:DVB-C]]&lt;br /&gt;
[[Category:DVB-T]]&lt;br /&gt;
[[Category:PCIe]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/TerraTec_Cinergy_T_PCIe_dual</id>
		<title>TerraTec Cinergy T PCIe dual</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/TerraTec_Cinergy_T_PCIe_dual"/>
				<updated>2012-02-25T22:12:40Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A dual-tuner DVB-T PCIe card sold by TerraTec. This card appears to be supported from kernel 3.3 by LinuxTV drivers (not confirmed).&lt;br /&gt;
&lt;br /&gt;
== Overview/Features ==&lt;br /&gt;
&lt;br /&gt;
This is technically a very interesting card. The hardware is as follows:&lt;br /&gt;
&lt;br /&gt;
* Tuner #1:        microtune mt2063&lt;br /&gt;
* Demodulators #1: drx-3916k DVB-T/Analoge TV&lt;br /&gt;
* Tuner #2:        microtune mt2063&lt;br /&gt;
* Demodulators #2: drx-3913k DVB-T/DVB-C&lt;br /&gt;
* PCI Express x1 Bridge: Conexant cx23885&lt;br /&gt;
&lt;br /&gt;
== Support ==&lt;br /&gt;
&lt;br /&gt;
This card is supported from kernel version 3.3 (?). The microtune tuner was merged in kernel version 3.3 (see [http://lwn.net/Articles/474793/ first submission]).&lt;br /&gt;
&lt;br /&gt;
The first frontend supports only DVB-T, but support for analogue TV is planned for kernel 3.4 or 3.5. The second frontend supports both DVB-T and DVB-C in a multifrontend device (spec's DVB v5 API).&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/NetUP_Dual_DVB_T_C_CI_RF</id>
		<title>NetUP Dual DVB T C CI RF</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/NetUP_Dual_DVB_T_C_CI_RF"/>
				<updated>2012-02-25T22:00:37Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Making it work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NetUP Dual DVB-T/C-CI RF from [[NetUP Inc.]]&lt;br /&gt;
&lt;br /&gt;
== Overview/Features ==&lt;br /&gt;
 * PCI-e x1  &lt;br /&gt;
 * Supports two DVB-T/DVB-C transponders simultaneously&lt;br /&gt;
 * Supports two analog audio/video channels simultaneously&lt;br /&gt;
 * Independent descrambling of two transponders&lt;br /&gt;
 * Hardware PID filtering&lt;br /&gt;
&lt;br /&gt;
== Components Used ==&lt;br /&gt;
 * Conexant CX23885 &lt;br /&gt;
 * STM STV0367 low-power and ultra-compact combo DVB-T/C single-chip receiver&lt;br /&gt;
 * Xceive XC5000 silicon TV tuner&lt;br /&gt;
 * Altera FPGA for Common Interafce&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery  perrow=5&amp;gt;&lt;br /&gt;
  Image:Netup_dual_dvb-c-t-fine.jpg|Front side of engineering prototype &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
PCI id:&lt;br /&gt;
1B55:e2e4 NetUP Dual DVB-T/C-CI RF card&lt;br /&gt;
&lt;br /&gt;
== Making it work ==&lt;br /&gt;
&lt;br /&gt;
According to [http://www.netup.tv/en-EN/dual_dvb-t-c-ci_card.php NetUp's product page], the device works with their fork of Linux kernel 3.0. &lt;br /&gt;
&lt;br /&gt;
The following instructions are outdated, using NetUp's fork of an earlier kernel.&lt;br /&gt;
&lt;br /&gt;
Check out linux kernel (experimental):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone http://udev.netup.ru/git/v4l-dvb.git linux-2.6.35-netup&lt;br /&gt;
cd linux-2.6.35-netup&lt;br /&gt;
make menuconfig&lt;br /&gt;
make &amp;amp;&amp;amp; make modules_install &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change grub menu.lst config to boot new kernel (/boot/vmlinuz-2.6.35+).&lt;br /&gt;
&lt;br /&gt;
Install firmware files into /lib/firmware folder:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.netup.tv/downloads/netup-dvb-t-c_firmware-v0.1.tbz2&lt;br /&gt;
tar xvfj netup-dvb-t-c_firmware-v0.1.tbz2&lt;br /&gt;
cp netup-dvb-t-c_firmware-v0.1/* /lib/firmware/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tuning to DVB-C and DVB-T ==&lt;br /&gt;
&lt;br /&gt;
Each port can be tuned to DVB-T or DVB-C using frontend0 or frontend1 accordingly. &lt;br /&gt;
&lt;br /&gt;
For DVB-T use frontend0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tzap modul64&lt;br /&gt;
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'&lt;br /&gt;
reading channels from file '/root/.tzap/channels.conf'&lt;br /&gt;
tuning to 578000000 Hz&lt;br /&gt;
video pid 0x0000, audio pid 0x0821&lt;br /&gt;
status 00 | signal 0000 | snr 0000 | ber 00000000 | unc 00000000 |&lt;br /&gt;
status 10 | signal 0000 | snr 001b | ber bf8ec9c8 | unc 00000000 | FE_HAS_LOCK&lt;br /&gt;
status 10 | signal 0000 | snr 001b | ber bf8ec9c8 | unc 00000000 | FE_HAS_LOCK&lt;br /&gt;
status 10 | signal 0000 | snr 001b | ber bf8ec9c8 | unc 00000000 | FE_HAS_LOCK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For DVB-C use frontend1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# czap -f 1 modul64&lt;br /&gt;
using '/dev/dvb/adapter0/frontend1' and '/dev/dvb/adapter0/demux0'&lt;br /&gt;
reading channels from file '/root/.czap/channels.conf'&lt;br /&gt;
  2 modul64:578000000:INVERSION_AUTO:5900000:FEC_NONE:QAM_128:515:672:1509&lt;br /&gt;
  2 modul64: f 578000000, s 5900000, i 2, fec 0, qam 4, v 0x203, a 0x2a0, s 0x5e5&lt;br /&gt;
status 10 | signal ffff | snr b851 | ber 00000000 | unc 0000000b | FE_HAS_LOCK&lt;br /&gt;
status 10 | signal ffff | snr ca3c | ber 00000000 | unc 0000000b | FE_HAS_LOCK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.netup.tv/en-EN/dual_dvb-t-c-ci_card.php NetUP Dual DVB-T/C-CI] - manufacturer website&lt;br /&gt;
&lt;br /&gt;
[[Category:DVB-C]]&lt;br /&gt;
[[Category:PCIe]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/NetUP_Dual_DVB_T_C_CI_RF</id>
		<title>NetUP Dual DVB T C CI RF</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/NetUP_Dual_DVB_T_C_CI_RF"/>
				<updated>2012-02-25T21:58:48Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Making it work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NetUP Dual DVB-T/C-CI RF from [[NetUP Inc.]]&lt;br /&gt;
&lt;br /&gt;
== Overview/Features ==&lt;br /&gt;
 * PCI-e x1  &lt;br /&gt;
 * Supports two DVB-T/DVB-C transponders simultaneously&lt;br /&gt;
 * Supports two analog audio/video channels simultaneously&lt;br /&gt;
 * Independent descrambling of two transponders&lt;br /&gt;
 * Hardware PID filtering&lt;br /&gt;
&lt;br /&gt;
== Components Used ==&lt;br /&gt;
 * Conexant CX23885 &lt;br /&gt;
 * STM STV0367 low-power and ultra-compact combo DVB-T/C single-chip receiver&lt;br /&gt;
 * Xceive XC5000 silicon TV tuner&lt;br /&gt;
 * Altera FPGA for Common Interafce&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery  perrow=5&amp;gt;&lt;br /&gt;
  Image:Netup_dual_dvb-c-t-fine.jpg|Front side of engineering prototype &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Identification ==&lt;br /&gt;
PCI id:&lt;br /&gt;
1B55:e2e4 NetUP Dual DVB-T/C-CI RF card&lt;br /&gt;
&lt;br /&gt;
== Making it work ==&lt;br /&gt;
&lt;br /&gt;
According to [http://www.netup.tv/en-EN/dual_dvb-t-c-ci_card.php NetUp's product page], the device works with their fork of Linux kernel 3.0.&lt;br /&gt;
&lt;br /&gt;
Check out linux kernel (experimental):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone http://udev.netup.ru/git/v4l-dvb.git linux-2.6.35-netup&lt;br /&gt;
cd linux-2.6.35-netup&lt;br /&gt;
make menuconfig&lt;br /&gt;
make &amp;amp;&amp;amp; make modules_install &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change grub menu.lst config to boot new kernel (/boot/vmlinuz-2.6.35+).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Install firmware files into /lib/firmware folder:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://www.netup.tv/downloads/netup-dvb-t-c_firmware-v0.1.tbz2&lt;br /&gt;
tar xvfj netup-dvb-t-c_firmware-v0.1.tbz2&lt;br /&gt;
cp netup-dvb-t-c_firmware-v0.1/* /lib/firmware/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tuning to DVB-C and DVB-T ==&lt;br /&gt;
&lt;br /&gt;
Each port can be tuned to DVB-T or DVB-C using frontend0 or frontend1 accordingly. &lt;br /&gt;
&lt;br /&gt;
For DVB-T use frontend0&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tzap modul64&lt;br /&gt;
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'&lt;br /&gt;
reading channels from file '/root/.tzap/channels.conf'&lt;br /&gt;
tuning to 578000000 Hz&lt;br /&gt;
video pid 0x0000, audio pid 0x0821&lt;br /&gt;
status 00 | signal 0000 | snr 0000 | ber 00000000 | unc 00000000 |&lt;br /&gt;
status 10 | signal 0000 | snr 001b | ber bf8ec9c8 | unc 00000000 | FE_HAS_LOCK&lt;br /&gt;
status 10 | signal 0000 | snr 001b | ber bf8ec9c8 | unc 00000000 | FE_HAS_LOCK&lt;br /&gt;
status 10 | signal 0000 | snr 001b | ber bf8ec9c8 | unc 00000000 | FE_HAS_LOCK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For DVB-C use frontend1&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# czap -f 1 modul64&lt;br /&gt;
using '/dev/dvb/adapter0/frontend1' and '/dev/dvb/adapter0/demux0'&lt;br /&gt;
reading channels from file '/root/.czap/channels.conf'&lt;br /&gt;
  2 modul64:578000000:INVERSION_AUTO:5900000:FEC_NONE:QAM_128:515:672:1509&lt;br /&gt;
  2 modul64: f 578000000, s 5900000, i 2, fec 0, qam 4, v 0x203, a 0x2a0, s 0x5e5&lt;br /&gt;
status 10 | signal ffff | snr b851 | ber 00000000 | unc 0000000b | FE_HAS_LOCK&lt;br /&gt;
status 10 | signal ffff | snr ca3c | ber 00000000 | unc 0000000b | FE_HAS_LOCK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.netup.tv/en-EN/dual_dvb-t-c-ci_card.php NetUP Dual DVB-T/C-CI] - manufacturer website&lt;br /&gt;
&lt;br /&gt;
[[Category:DVB-C]]&lt;br /&gt;
[[Category:PCIe]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/TerraTec_Cinergy_T_PCIe_dual</id>
		<title>TerraTec Cinergy T PCIe dual</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/TerraTec_Cinergy_T_PCIe_dual"/>
				<updated>2012-02-25T20:38:57Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Support */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A dual-tuner DVB-T PCIe card sold by TerraTec. This card is not currently supported by LinuxTV drivers.&lt;br /&gt;
==Overview/Features==&lt;br /&gt;
This is technically a very interesting card. The hardware is as follows:&lt;br /&gt;
&lt;br /&gt;
* Tuner #1:        microtune mt2063&lt;br /&gt;
* Demodulators #1: drx-3916k DVB-T/Analoge TV&lt;br /&gt;
* Tuner #2:        microtune mt2063&lt;br /&gt;
* Demodulators #2: drx-3913k DVB-T/DVB-C&lt;br /&gt;
* PCI Express x1 Bridge: Conexant cx23885&lt;br /&gt;
==Support==&lt;br /&gt;
This card is supported from kernel version 3.3. The microtune tuner was merged in kernel version 3.3.&lt;br /&gt;
&lt;br /&gt;
The first frontend supports only DVB-T, but support for analogue TV is planned for kernel 3.4 or 3.5. The second frontend supports both DVB-T and DVB-C in a multifrontend device (spec's DVB v5 API).&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/DVB_Conditional_Access_Modules</id>
		<title>DVB Conditional Access Modules</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/DVB_Conditional_Access_Modules"/>
				<updated>2012-02-25T19:55:20Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any [[CAM]]s not listed on this page have not been tested, so may or may not work. If you try an unlisted one, please add it to this page in the appropriate section.&lt;br /&gt;
&lt;br /&gt;
'''[[TechnoTrend]]/Hauppauge fullfeatured cards'''&amp;lt;br&amp;gt;&lt;br /&gt;
So far, all CAM modules are supported by these cards&lt;br /&gt;
&lt;br /&gt;
'''[[TechnoTrend]]/Hauppauge budget-ci cards with v1.0A [[CI]] daughterboard'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s:''&lt;br /&gt;
* Philips Cryptoworks v1.0&lt;br /&gt;
* Aston AstonCrypt&lt;br /&gt;
* MatrixCAM Reloaded&lt;br /&gt;
* Dream multimedia Magic Module v1.04&lt;br /&gt;
* Aston Viaccess Dual or Professional [[CAM]]&lt;br /&gt;
* Aston AstonCrypt Professional [[CAM]]&lt;br /&gt;
* Aston Irdeto Professinal [[CAM]]&lt;br /&gt;
* Conax 4.00e (See also [[TechnoTrend TT-DVB-T 1500]])&lt;br /&gt;
* SCM (topuptv/uk)&lt;br /&gt;
* SCM Viaccess red label (for linux &amp;gt;= 2.6.14 or CVS dvb)&lt;br /&gt;
* Original TV Vlaanderen CAM (Mediaguard) with original Smartcard&lt;br /&gt;
* PowerCAM Pro v2.0.3 and v2.0.4&lt;br /&gt;
* oneCAM v1.0.0&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
* ZetaCAM (Hardware: 2.01/Software: 2.26)&lt;br /&gt;
* SCM Viaccess red label (for linux &amp;lt; 2.6.14)&lt;br /&gt;
&lt;br /&gt;
'''[[TechnoTrend]]/Hauppauge budget-ci cards with v1.1 CI daughterboard'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s:''&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
&lt;br /&gt;
'''KNC1/Terratec DVB-S/-T/-C budget cards'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s:''&lt;br /&gt;
* Philips Cryptoworks v1.0&lt;br /&gt;
* Mascom Alphacrypt v1.0&lt;br /&gt;
* Mascom Cryptoworks&lt;br /&gt;
* Aston Viaccess Professional&lt;br /&gt;
* Aston AstonCrypt Professional&lt;br /&gt;
* Aston Irdeto Professional&lt;br /&gt;
* Aston Conax Professional&lt;br /&gt;
* SCM Viaccess (red label) (only 1 pid ?)&lt;br /&gt;
* Conax 4.00e&lt;br /&gt;
* SCM (topuptv/uk)&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
* MatrixCAM Reloaded&lt;br /&gt;
* Dream multimedia Magic Module v1.04&lt;br /&gt;
&lt;br /&gt;
'''[[Hercules Smart TV Satellite]]''' ([[TwinHan|TwinHan clone]])&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s'':&lt;br /&gt;
* SCM Viaccess (red label) (mostly working, random failures observed every few hours with french TPS)&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
* Aston Viaccess&lt;br /&gt;
&lt;br /&gt;
'''VisionPlus VisionDTV Sat-CI'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s'':&lt;br /&gt;
* SCM Viaccess (red label)&lt;br /&gt;
* Aston 1.05 P/N 901274 Rev 1.2&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s'':&lt;br /&gt;
* Aston Viaccess Professional&lt;br /&gt;
* Aston Professional&lt;br /&gt;
* MatrixCAM Reloaded&lt;br /&gt;
&lt;br /&gt;
==Also See==&lt;br /&gt;
* [[Conditional Access Module Usage Examples]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/DVB_Conditional_Access_Modules</id>
		<title>DVB Conditional Access Modules</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/DVB_Conditional_Access_Modules"/>
				<updated>2012-02-25T19:54:48Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any [[CAM]]s not listed on this page have not been tested, so may or may not work. If you try an unlisted one, please add it to this page in the appropriate section.&lt;br /&gt;
&lt;br /&gt;
'''[[TechnoTrend]]/Hauppauge fullfeatured cards'''&amp;lt;br&amp;gt;&lt;br /&gt;
So far, all CAM modules are supported by these cards&lt;br /&gt;
&lt;br /&gt;
'''[[TechnoTrend]]/Hauppauge budget-ci cards with v1.0A [[CI]] daughterboard'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s:''&lt;br /&gt;
* Philips Cryptoworks v1.0&lt;br /&gt;
* Aston AstonCrypt&lt;br /&gt;
* MatrixCAM Reloaded&lt;br /&gt;
* Dream multimedia Magic Module v1.04&lt;br /&gt;
* Aston Viaccess Dual or Professional [[CAM]]&lt;br /&gt;
* Aston AstonCrypt Professional [[CAM]]&lt;br /&gt;
* Aston Irdeto Professinal [[CAM]]&lt;br /&gt;
* Conax 4.00e (See also [[TechnoTrend TT-DVB-T 1500]])&lt;br /&gt;
* SCM (topuptv/uk)&lt;br /&gt;
* SCM Viaccess red label (for linux &amp;gt;= 2.6.14 or CVS dvb)&lt;br /&gt;
* Original TV Vlaanderen CAM (Mediaguard) with original Smartcard&lt;br /&gt;
* PowerCAM Pro v2.0.3 and v2.0.4&lt;br /&gt;
* oneCAM v1.0.0&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
* ZetaCAM (Hardware: 2.01/Software: 2.26)&lt;br /&gt;
* SCM Viaccess red label (for linux &amp;lt; 2.6.14)&lt;br /&gt;
&lt;br /&gt;
'''Technotrend/Hauppauge budget-ci cards with v1.1 CI daughterboard'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s:''&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
&lt;br /&gt;
'''KNC1/Terratec DVB-S/-T/-C budget cards'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s:''&lt;br /&gt;
* Philips Cryptoworks v1.0&lt;br /&gt;
* Mascom Alphacrypt v1.0&lt;br /&gt;
* Mascom Cryptoworks&lt;br /&gt;
* Aston Viaccess Professional&lt;br /&gt;
* Aston AstonCrypt Professional&lt;br /&gt;
* Aston Irdeto Professional&lt;br /&gt;
* Aston Conax Professional&lt;br /&gt;
* SCM Viaccess (red label) (only 1 pid ?)&lt;br /&gt;
* Conax 4.00e&lt;br /&gt;
* SCM (topuptv/uk)&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
* MatrixCAM Reloaded&lt;br /&gt;
* Dream multimedia Magic Module v1.04&lt;br /&gt;
&lt;br /&gt;
'''[[Hercules Smart TV Satellite]]''' ([[TwinHan|TwinHan clone]])&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s'':&lt;br /&gt;
* SCM Viaccess (red label) (mostly working, random failures observed every few hours with french TPS)&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
* Aston Viaccess&lt;br /&gt;
&lt;br /&gt;
'''VisionPlus VisionDTV Sat-CI'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s'':&lt;br /&gt;
* SCM Viaccess (red label)&lt;br /&gt;
* Aston 1.05 P/N 901274 Rev 1.2&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s'':&lt;br /&gt;
* Aston Viaccess Professional&lt;br /&gt;
* Aston Professional&lt;br /&gt;
* MatrixCAM Reloaded&lt;br /&gt;
&lt;br /&gt;
==Also See==&lt;br /&gt;
* [[Conditional Access Module Usage Examples]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/DVB_Conditional_Access_Modules</id>
		<title>DVB Conditional Access Modules</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/DVB_Conditional_Access_Modules"/>
				<updated>2012-02-25T19:54:21Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any [[CAM]]s not listed on this page have not been tested, so may or may not work. If you try an unlisted one, please add it to this page in the appropriate section.&lt;br /&gt;
&lt;br /&gt;
'''[[Technotrend]]/Hauppauge fullfeatured cards'''&amp;lt;br&amp;gt;&lt;br /&gt;
So far, all CAM modules are supported by these cards&lt;br /&gt;
&lt;br /&gt;
'''[[Technotrend]]/Hauppauge budget-ci cards with v1.0A [[CI]] daughterboard'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s:''&lt;br /&gt;
* Philips Cryptoworks v1.0&lt;br /&gt;
* Aston AstonCrypt&lt;br /&gt;
* MatrixCAM Reloaded&lt;br /&gt;
* Dream multimedia Magic Module v1.04&lt;br /&gt;
* Aston Viaccess Dual or Professional [[CAM]]&lt;br /&gt;
* Aston AstonCrypt Professional [[CAM]]&lt;br /&gt;
* Aston Irdeto Professinal [[CAM]]&lt;br /&gt;
* Conax 4.00e (See also [[TechnoTrend TT-DVB-T 1500]])&lt;br /&gt;
* SCM (topuptv/uk)&lt;br /&gt;
* SCM Viaccess red label (for linux &amp;gt;= 2.6.14 or CVS dvb)&lt;br /&gt;
* Original TV Vlaanderen CAM (Mediaguard) with original Smartcard&lt;br /&gt;
* PowerCAM Pro v2.0.3 and v2.0.4&lt;br /&gt;
* oneCAM v1.0.0&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
* ZetaCAM (Hardware: 2.01/Software: 2.26)&lt;br /&gt;
* SCM Viaccess red label (for linux &amp;lt; 2.6.14)&lt;br /&gt;
&lt;br /&gt;
'''Technotrend/Hauppauge budget-ci cards with v1.1 CI daughterboard'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s:''&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
&lt;br /&gt;
'''KNC1/Terratec DVB-S/-T/-C budget cards'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s:''&lt;br /&gt;
* Philips Cryptoworks v1.0&lt;br /&gt;
* Mascom Alphacrypt v1.0&lt;br /&gt;
* Mascom Cryptoworks&lt;br /&gt;
* Aston Viaccess Professional&lt;br /&gt;
* Aston AstonCrypt Professional&lt;br /&gt;
* Aston Irdeto Professional&lt;br /&gt;
* Aston Conax Professional&lt;br /&gt;
* SCM Viaccess (red label) (only 1 pid ?)&lt;br /&gt;
* Conax 4.00e&lt;br /&gt;
* SCM (topuptv/uk)&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
* MatrixCAM Reloaded&lt;br /&gt;
* Dream multimedia Magic Module v1.04&lt;br /&gt;
&lt;br /&gt;
'''[[Hercules Smart TV Satellite]]''' ([[TwinHan|TwinHan clone]])&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s'':&lt;br /&gt;
* SCM Viaccess (red label) (mostly working, random failures observed every few hours with french TPS)&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s:''&lt;br /&gt;
* Aston Viaccess&lt;br /&gt;
&lt;br /&gt;
'''VisionPlus VisionDTV Sat-CI'''&amp;lt;br&amp;gt;&lt;br /&gt;
''Compatible [[CAM]]s'':&lt;br /&gt;
* SCM Viaccess (red label)&lt;br /&gt;
* Aston 1.05 P/N 901274 Rev 1.2&lt;br /&gt;
&lt;br /&gt;
''Incompatible [[CAM]]s'':&lt;br /&gt;
* Aston Viaccess Professional&lt;br /&gt;
* Aston Professional&lt;br /&gt;
* MatrixCAM Reloaded&lt;br /&gt;
&lt;br /&gt;
==Also See==&lt;br /&gt;
* [[Conditional Access Module Usage Examples]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-4400</id>
		<title>Hauppauge WinTV-HVR-4400</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-4400"/>
				<updated>2012-02-11T13:12:07Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:HVR-4400-Front-LoRes.png|right|200px|Photo of front of card with chip annotations]]&lt;br /&gt;
[[Image:HVR-4400-Back-LowRes.png|right|200px|Photo of rear of card]]&lt;br /&gt;
&lt;br /&gt;
A hybrid [[DVB-S2]] [[DVB-S2 PCI Cards|PCI card]] from [[Hauppauge]] with a PCIe 1x interface. Model 1357.&lt;br /&gt;
&lt;br /&gt;
Not yet supported (Feb 2012).&lt;br /&gt;
&lt;br /&gt;
There is no support currently for this card, and since it uses a demodulator for which there is not currently a driver, much more work will be required than simply adding a new board profile.&lt;br /&gt;
&lt;br /&gt;
[http://www.hauppauge.co.uk/forum/showthread.php?21278-HVR-4400-linux-support Hauppauge UK Forums] (moderator wrote this in December 2010; no news by Feb 2012):&lt;br /&gt;
&lt;br /&gt;
: Hauppage don't officially support it but a number of our engineers actually work on providing linux support themselves.&lt;br /&gt;
&lt;br /&gt;
== Overview/Features ==&lt;br /&gt;
&lt;br /&gt;
Quad-mode HD TV tuner featuring DVB-S2 HDTV, DVB-S, DVB-T, FM radio, analogue PAL/SECAM aerial TV, and S-Video, Composite and stereo audio inputs for A/V capture, and additional S-Video, Composite and stereo audio (which require separate back plane plug set, not included in the box).&lt;br /&gt;
&lt;br /&gt;
Also includes black IR remote control, batteries, and IR remote control receiver with plug on rear of card. &lt;br /&gt;
&lt;br /&gt;
Sockets: TV, SAT, IR, Combo socket for dongle for S-Video, composite and stereo audio.&lt;br /&gt;
&lt;br /&gt;
=== Components Used ===&lt;br /&gt;
&lt;br /&gt;
* [[Conexant CX23885/7/8|CX23888]] PCI Express Broadcast Audio/Video Decoder with 3D Comb and Analog IF Demodulator and integrated infrared.&lt;br /&gt;
&lt;br /&gt;
=== Identification ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
02:00.0 Multimedia video controller: Conexant Unknown device 8880 (rev 04)&lt;br /&gt;
        Subsystem: Hauppauge computer works Inc. Unknown device c108&lt;br /&gt;
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-&lt;br /&gt;
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &amp;gt;TAbort- &amp;lt;TAbort- &amp;lt;MAbort- &amp;gt;SERR- &amp;lt;PERR-&lt;br /&gt;
        Latency: 0, Cache Line Size: 32 bytes&lt;br /&gt;
        Interrupt: pin A routed to IRQ 16&lt;br /&gt;
        Region 0: Memory at fda00000 (64-bit, non-prefetchable) [size=2M]&lt;br /&gt;
        Capabilities: [40] Express Endpoint IRQ 0&lt;br /&gt;
                Device: Supported: MaxPayload 128 bytes, PhantFunc 0, ExtTag-&lt;br /&gt;
                Device: Latency L0s &amp;lt;64ns, L1 &amp;lt;1us&lt;br /&gt;
                Device: AtnBtn- AtnInd- PwrInd-&lt;br /&gt;
                Device: Errors: Correctable- Non-Fatal- Fatal- Unsupported-&lt;br /&gt;
                Device: RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+&lt;br /&gt;
                Device: MaxPayload 128 bytes, MaxReadReq 512 bytes&lt;br /&gt;
                Link: Supported Speed 2.5Gb/s, Width x1, ASPM L0s L1, Port 0&lt;br /&gt;
                Link: Latency L0s &amp;lt;2us, L1 &amp;lt;4us&lt;br /&gt;
                Link: ASPM Disabled RCB 64 bytes CommClk- ExtSynch-&lt;br /&gt;
                Link: Speed 2.5Gb/s, Width x1&lt;br /&gt;
        Capabilities: [80] Power Management version 3&lt;br /&gt;
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)&lt;br /&gt;
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-&lt;br /&gt;
        Capabilities: [90] Vital Product Data&lt;br /&gt;
        Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-&lt;br /&gt;
                Address: 0000000000000000  Data: 0000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Images===&lt;br /&gt;
High resolution images with chip annotations [http://www.mcpond.co.nz/web/hauppage/HVR-4400-Front-HiRes.png front] and [http://www.mcpond.co.nz/web/hauppage/HVR-4400-Back-HiRes.png back] (600 dpi, 4298px, 9Mb each)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Making it Work==&lt;br /&gt;
&lt;br /&gt;
When [http://www.google.com/search?q=%22BOARD_HAUPPAUGE_HVR4400%22 this Google search] returns some results, some code will then exist in linux kernel source/drivers/media/video/cx23885/cx23885-cards.c , and from then you'll have a chance of getting something going. If no results, complain to Hauppage, then buy a different card, or, wait some more, or start hacking away on the source.&lt;br /&gt;
&lt;br /&gt;
Feel free to add what you know.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:DVB-S2 PCI Cards]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Gnutv</id>
		<title>Gnutv</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Gnutv"/>
				<updated>2011-09-28T01:02:47Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: Example command&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{lowercase|gnutv}}&lt;br /&gt;
A commandline utility bundled in the [[LinuxTV dvb-apps|dvb-apps]] which can, amongst other capabilities, provide DVB viewing with devices with on-board hardware decoders (formerly often referred to as &amp;quot;[[Full-featured Card|full featured]]&amp;quot; devices).&lt;br /&gt;
&lt;br /&gt;
Example command to capture video and live closed captioning:&lt;br /&gt;
&lt;br /&gt;
 # Pipe stream to file and to the closed captioning decoder using tee&lt;br /&gt;
 # gnutv's default value for -channels is /etc/channels.conf&lt;br /&gt;
 gnutv -adapter $DEV -timeout $TIM -out stdout $CH | tee $FIL.mpg | \&lt;br /&gt;
 zvbi-atsc-cc --atsc -p -m -T -1 - -2 - -X - $CH &amp;gt; $FIL.txt&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Template:Lowercase</id>
		<title>Template:Lowercase</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Template:Lowercase"/>
				<updated>2010-04-17T05:02:34Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: The &amp;quot;technical restrictions&amp;quot; link should go to http://en.wikipedia.org/wiki/Wikipedia:Naming conventions (technical restrictions) -- unable to fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;RealTitleBanner&amp;quot;&amp;gt;&lt;br /&gt;
:''The correct title of this {{{type|{{{2|article}}}}}} is '''&amp;lt;span id=&amp;quot;RealTitle&amp;quot;&amp;gt;{{{title|{{{1|{{LCFIRST:{{PAGENAME}}}}}}}}}}&amp;lt;/span&amp;gt;'''. The initial letter is shown capitalized due to [[Wikipedia:Naming conventions (technical restrictions)#Lower case first letter|technical restrictions]].''&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{{{FULLPAGENAME}}/doc}}&lt;br /&gt;
&amp;lt;!-- Add cats and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Template:Lowercase</id>
		<title>Template:Lowercase</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Template:Lowercase"/>
				<updated>2010-04-17T04:59:05Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;RealTitleBanner&amp;quot;&amp;gt;&lt;br /&gt;
:''The correct title of this {{{type|{{{2|article}}}}}} is '''&amp;lt;span id=&amp;quot;RealTitle&amp;quot;&amp;gt;{{{title|{{{1|{{LCFIRST:{{PAGENAME}}}}}}}}}}&amp;lt;/span&amp;gt;'''. The initial letter is shown capitalized due to [[wiki/Wikipedia:Naming conventions (technical restrictions)#Lower case first letter|technical restrictions]].''&amp;lt;/div&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{{{FULLPAGENAME}}/doc}}&lt;br /&gt;
&amp;lt;!-- Add cats and interwikis to the /doc subpage, not here! --&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Realtek_RTL2831U</id>
		<title>Realtek RTL2831U</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Realtek_RTL2831U"/>
				<updated>2009-09-15T03:27:38Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Infrared */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The RTL2831U is a high-performance DVB-T COFDM demodulator + USB 2.0 that integrates a COFDM demodulator, FEC decoder, de-interleavers, and USB 2.0 interface.&lt;br /&gt;
&lt;br /&gt;
This chip can be found in USB devices that are sold under a numer of names: Compro VideoMate U90, TwinHan/AzureWave AD-TU200 (7047) DVB-T, Freecom, Conceptronic, and Realtek.&lt;br /&gt;
&lt;br /&gt;
== Supported devices ==&lt;br /&gt;
&lt;br /&gt;
The following devices are supported (numbers and names do NOT correspond):&lt;br /&gt;
output of  grep rtl2831 /lib/modules/2.6.24-16-generic/modules.usbmap | sed -e 's/0x0000.*$//' -e 's/^.*0x0003//'&lt;br /&gt;
&lt;br /&gt;
      0x0bda   0x2831    &lt;br /&gt;
      0x2304   0x022b    &lt;br /&gt;
      0x13d3   0x3216    &lt;br /&gt;
      0x13d3   0x3220    &lt;br /&gt;
      0x13d3   0x3236    &lt;br /&gt;
      0x13d3   0x3238    &lt;br /&gt;
      0x13d3   0x3244    &lt;br /&gt;
      0x08dd   0x2103    &lt;br /&gt;
      0x185b   0x0100    &lt;br /&gt;
      0x185b   0x0150    &lt;br /&gt;
      0x1a46   0x1601    &lt;br /&gt;
      0x14aa   0x0160    &lt;br /&gt;
      0x14ff   0x0225    &lt;br /&gt;
 &lt;br /&gt;
 name = &amp;quot;RTL2831U DVB-T USB2.0 DEVICE&amp;quot;&lt;br /&gt;
 name = &amp;quot;RTL2831U DVB-T USB2.0 DEVICE&amp;quot;&lt;br /&gt;
 name = &amp;quot;DVB-T TV-Tuner Card-R&amp;quot;&lt;br /&gt;
 name = &amp;quot;VideoMate TV U100&amp;quot;&lt;br /&gt;
 name = &amp;quot;Vestel DVB-T TV Card&amp;quot;&lt;br /&gt;
 name = &amp;quot;Freecom USB 2.0 DVB-T Device&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047M-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 704L-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
TwinHan/AzureWave AD-TU200 (7047) DVB-T &lt;br /&gt;
&lt;br /&gt;
== Get the drivers ==&lt;br /&gt;
&lt;br /&gt;
To download and build the driver, issue&lt;br /&gt;
&lt;br /&gt;
 hg clone http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This code was recently synchronised with the main v4l line.&lt;br /&gt;
&lt;br /&gt;
== Infrared configuration ==&lt;br /&gt;
&lt;br /&gt;
A switch for the IR type is included. It can be selected using modprobe. &lt;br /&gt;
For example if you need type 2: unload the automatically loaded driver, and reload the good codes.&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe -r dvb_usb_rtl2831u&lt;br /&gt;
 sudo modprobe  dvb_usb_rtl2831u ir_protocol=2&lt;br /&gt;
&lt;br /&gt;
== Pending developments ==&lt;br /&gt;
&lt;br /&gt;
The code cannot be included in the mainline, as the front-end and abck-end are not split (as is required)&lt;br /&gt;
&lt;br /&gt;
I have started a second archive for splitting off the tuner code.&lt;br /&gt;
For the mxl5005s tuner, this should be straightforward, as the code&lt;br /&gt;
found its way into the mainstream v4l already.&lt;br /&gt;
&lt;br /&gt;
However, I ran into problems with the mt2060 (which is the tuner I own).&lt;br /&gt;
In the function  MT2060_LocateIF1 is making this hard.&lt;br /&gt;
This function doe some sort of calibration, and there is both internal&lt;br /&gt;
data from the tuner required, and input from the demodulator.&lt;br /&gt;
&lt;br /&gt;
== Product links ==&lt;br /&gt;
&lt;br /&gt;
* http://www.realtek.com.tw/products/productsView.aspx?Langid=1&amp;amp;PFid=35&amp;amp;Level=4&amp;amp;Conn=3&amp;amp;ProdID=147&lt;br /&gt;
&lt;br /&gt;
* http://www.conceptronic.net/site/desktopdefault.aspx?tabindex=1&amp;amp;tabid=242&amp;amp;cid=40&amp;amp;gid=4050&amp;amp;pid=CTVDIGRCU&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Realtek_RTL2831U</id>
		<title>Realtek RTL2831U</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Realtek_RTL2831U"/>
				<updated>2009-09-15T03:27:04Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Get the driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The RTL2831U is a high-performance DVB-T COFDM demodulator + USB 2.0 that integrates a COFDM demodulator, FEC decoder, de-interleavers, and USB 2.0 interface.&lt;br /&gt;
&lt;br /&gt;
This chip can be found in USB devices that are sold under a numer of names: Compro VideoMate U90, TwinHan/AzureWave AD-TU200 (7047) DVB-T, Freecom, Conceptronic, and Realtek.&lt;br /&gt;
&lt;br /&gt;
== Supported devices ==&lt;br /&gt;
&lt;br /&gt;
The following devices are supported (numbers and names do NOT correspond):&lt;br /&gt;
output of  grep rtl2831 /lib/modules/2.6.24-16-generic/modules.usbmap | sed -e 's/0x0000.*$//' -e 's/^.*0x0003//'&lt;br /&gt;
&lt;br /&gt;
      0x0bda   0x2831    &lt;br /&gt;
      0x2304   0x022b    &lt;br /&gt;
      0x13d3   0x3216    &lt;br /&gt;
      0x13d3   0x3220    &lt;br /&gt;
      0x13d3   0x3236    &lt;br /&gt;
      0x13d3   0x3238    &lt;br /&gt;
      0x13d3   0x3244    &lt;br /&gt;
      0x08dd   0x2103    &lt;br /&gt;
      0x185b   0x0100    &lt;br /&gt;
      0x185b   0x0150    &lt;br /&gt;
      0x1a46   0x1601    &lt;br /&gt;
      0x14aa   0x0160    &lt;br /&gt;
      0x14ff   0x0225    &lt;br /&gt;
 &lt;br /&gt;
 name = &amp;quot;RTL2831U DVB-T USB2.0 DEVICE&amp;quot;&lt;br /&gt;
 name = &amp;quot;RTL2831U DVB-T USB2.0 DEVICE&amp;quot;&lt;br /&gt;
 name = &amp;quot;DVB-T TV-Tuner Card-R&amp;quot;&lt;br /&gt;
 name = &amp;quot;VideoMate TV U100&amp;quot;&lt;br /&gt;
 name = &amp;quot;Vestel DVB-T TV Card&amp;quot;&lt;br /&gt;
 name = &amp;quot;Freecom USB 2.0 DVB-T Device&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047M-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 704L-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
TwinHan/AzureWave AD-TU200 (7047) DVB-T &lt;br /&gt;
&lt;br /&gt;
== Get the drivers ==&lt;br /&gt;
&lt;br /&gt;
To download and build the driver, issue&lt;br /&gt;
&lt;br /&gt;
 hg clone http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
This code was recently synchronised with the main v4l line.&lt;br /&gt;
&lt;br /&gt;
== Infrared ==&lt;br /&gt;
&lt;br /&gt;
A switch for the IR type is included. It can be selected using modprobe. &lt;br /&gt;
For example if you need type 2: unload the automatically loaded driver, and reload the good codes.&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe -r dvb_usb_rtl2831u&lt;br /&gt;
 sudo modprobe  dvb_usb_rtl2831u ir_protocol=2&lt;br /&gt;
&lt;br /&gt;
== Pending developments ==&lt;br /&gt;
&lt;br /&gt;
The code cannot be included in the mainline, as the front-end and abck-end are not split (as is required)&lt;br /&gt;
&lt;br /&gt;
I have started a second archive for splitting off the tuner code.&lt;br /&gt;
For the mxl5005s tuner, this should be straightforward, as the code&lt;br /&gt;
found its way into the mainstream v4l already.&lt;br /&gt;
&lt;br /&gt;
However, I ran into problems with the mt2060 (which is the tuner I own).&lt;br /&gt;
In the function  MT2060_LocateIF1 is making this hard.&lt;br /&gt;
This function doe some sort of calibration, and there is both internal&lt;br /&gt;
data from the tuner required, and input from the demodulator.&lt;br /&gt;
&lt;br /&gt;
== Product links ==&lt;br /&gt;
&lt;br /&gt;
* http://www.realtek.com.tw/products/productsView.aspx?Langid=1&amp;amp;PFid=35&amp;amp;Level=4&amp;amp;Conn=3&amp;amp;ProdID=147&lt;br /&gt;
&lt;br /&gt;
* http://www.conceptronic.net/site/desktopdefault.aspx?tabindex=1&amp;amp;tabid=242&amp;amp;cid=40&amp;amp;gid=4050&amp;amp;pid=CTVDIGRCU&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Realtek_RTL2831U</id>
		<title>Realtek RTL2831U</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Realtek_RTL2831U"/>
				<updated>2009-09-15T03:25:49Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The RTL2831U is a high-performance DVB-T COFDM demodulator + USB 2.0 that integrates a COFDM demodulator, FEC decoder, de-interleavers, and USB 2.0 interface.&lt;br /&gt;
&lt;br /&gt;
This chip can be found in USB devices that are sold under a numer of names: Compro VideoMate U90, TwinHan/AzureWave AD-TU200 (7047) DVB-T, Freecom, Conceptronic, and Realtek.&lt;br /&gt;
&lt;br /&gt;
== Supported devices ==&lt;br /&gt;
&lt;br /&gt;
The following devices are supported (numbers and names do NOT correspond):&lt;br /&gt;
output of  grep rtl2831 /lib/modules/2.6.24-16-generic/modules.usbmap | sed -e 's/0x0000.*$//' -e 's/^.*0x0003//'&lt;br /&gt;
&lt;br /&gt;
      0x0bda   0x2831    &lt;br /&gt;
      0x2304   0x022b    &lt;br /&gt;
      0x13d3   0x3216    &lt;br /&gt;
      0x13d3   0x3220    &lt;br /&gt;
      0x13d3   0x3236    &lt;br /&gt;
      0x13d3   0x3238    &lt;br /&gt;
      0x13d3   0x3244    &lt;br /&gt;
      0x08dd   0x2103    &lt;br /&gt;
      0x185b   0x0100    &lt;br /&gt;
      0x185b   0x0150    &lt;br /&gt;
      0x1a46   0x1601    &lt;br /&gt;
      0x14aa   0x0160    &lt;br /&gt;
      0x14ff   0x0225    &lt;br /&gt;
 &lt;br /&gt;
 name = &amp;quot;RTL2831U DVB-T USB2.0 DEVICE&amp;quot;&lt;br /&gt;
 name = &amp;quot;RTL2831U DVB-T USB2.0 DEVICE&amp;quot;&lt;br /&gt;
 name = &amp;quot;DVB-T TV-Tuner Card-R&amp;quot;&lt;br /&gt;
 name = &amp;quot;VideoMate TV U100&amp;quot;&lt;br /&gt;
 name = &amp;quot;Vestel DVB-T TV Card&amp;quot;&lt;br /&gt;
 name = &amp;quot;Freecom USB 2.0 DVB-T Device&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047M-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 704L-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
 name = &amp;quot;DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
TwinHan/AzureWave AD-TU200 (7047) DVB-T &lt;br /&gt;
&lt;br /&gt;
== Get the driver ==&lt;br /&gt;
&lt;br /&gt;
The drivers posted for these cards can be found on:&lt;br /&gt;
&lt;br /&gt;
     http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2&lt;br /&gt;
&lt;br /&gt;
This code was recently synchronised with the main v4l line. &lt;br /&gt;
&lt;br /&gt;
To download and build the driver, issue&lt;br /&gt;
&lt;br /&gt;
 hg clone http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== Infrared ==&lt;br /&gt;
&lt;br /&gt;
A switch for the IR type is included. It can be selected using modprobe. &lt;br /&gt;
For example if you need type 2: unload the automatically loaded driver, and reload the good codes.&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe -r dvb_usb_rtl2831u&lt;br /&gt;
 sudo modprobe  dvb_usb_rtl2831u ir_protocol=2&lt;br /&gt;
&lt;br /&gt;
== Pending developments ==&lt;br /&gt;
&lt;br /&gt;
The code cannot be included in the mainline, as the front-end and abck-end are not split (as is required)&lt;br /&gt;
&lt;br /&gt;
I have started a second archive for splitting off the tuner code.&lt;br /&gt;
For the mxl5005s tuner, this should be straightforward, as the code&lt;br /&gt;
found its way into the mainstream v4l already.&lt;br /&gt;
&lt;br /&gt;
However, I ran into problems with the mt2060 (which is the tuner I own).&lt;br /&gt;
In the function  MT2060_LocateIF1 is making this hard.&lt;br /&gt;
This function doe some sort of calibration, and there is both internal&lt;br /&gt;
data from the tuner required, and input from the demodulator.&lt;br /&gt;
&lt;br /&gt;
== Product links ==&lt;br /&gt;
&lt;br /&gt;
* http://www.realtek.com.tw/products/productsView.aspx?Langid=1&amp;amp;PFid=35&amp;amp;Level=4&amp;amp;Conn=3&amp;amp;ProdID=147&lt;br /&gt;
&lt;br /&gt;
* http://www.conceptronic.net/site/desktopdefault.aspx?tabindex=1&amp;amp;tabid=242&amp;amp;cid=40&amp;amp;gid=4050&amp;amp;pid=CTVDIGRCU&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Realtek_RTL2831U</id>
		<title>Realtek RTL2831U</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Realtek_RTL2831U"/>
				<updated>2009-09-15T03:21:38Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The RTL2831U is a high-performance DVB-T COFDM demodulator + USB 2.0 that integrates a COFDM demodulator, FEC decoder, de-interleavers, and USB 2.0 interface.&lt;br /&gt;
This chip can be found in USB devices that are sold under a numer of names: Compro VideoMate U90, &lt;br /&gt;
TwinHan/AzureWave AD-TU200 (7047) DVB-T ,  Freecom , Conceptronic , and also Realtek.&lt;br /&gt;
&lt;br /&gt;
The drivers posted for these cards can be found on:&lt;br /&gt;
     http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2&lt;br /&gt;
&lt;br /&gt;
This code is recently synchronised with the main v4l line. &lt;br /&gt;
A switch for the IR type is included. It can be selected using modprobe. &lt;br /&gt;
For example if you need type 2: unload the automatically loaded driver, and reload the good codes.&lt;br /&gt;
&lt;br /&gt;
 sudo modprobe -r dvb_usb_rtl2831u&lt;br /&gt;
 sudo modprobe  dvb_usb_rtl2831u ir_protocol=2&lt;br /&gt;
&lt;br /&gt;
== Supported devices ==&lt;br /&gt;
&lt;br /&gt;
The following devices are supported (numbers and names do NOT correspond):&lt;br /&gt;
output of  grep rtl2831 /lib/modules/2.6.24-16-generic/modules.usbmap | sed -e 's/0x0000.*$//' -e 's/^.*0x0003//'&lt;br /&gt;
&lt;br /&gt;
      0x0bda   0x2831    &lt;br /&gt;
      0x2304   0x022b    &lt;br /&gt;
      0x13d3   0x3216    &lt;br /&gt;
      0x13d3   0x3220    &lt;br /&gt;
      0x13d3   0x3236    &lt;br /&gt;
      0x13d3   0x3238    &lt;br /&gt;
      0x13d3   0x3244    &lt;br /&gt;
      0x08dd   0x2103    &lt;br /&gt;
      0x185b   0x0100    &lt;br /&gt;
      0x185b   0x0150    &lt;br /&gt;
      0x1a46   0x1601    &lt;br /&gt;
      0x14aa   0x0160    &lt;br /&gt;
      0x14ff   0x0225    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		 name = &amp;quot;RTL2831U DVB-T USB2.0 DEVICE&amp;quot;&lt;br /&gt;
		 name = &amp;quot;RTL2831U DVB-T USB2.0 DEVICE&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DVB-T TV-Tuner Card-R&amp;quot;&lt;br /&gt;
		 name = &amp;quot;VideoMate TV U100&amp;quot;&lt;br /&gt;
		 name = &amp;quot;Vestel DVB-T TV Card&amp;quot;&lt;br /&gt;
		 name = &amp;quot;Freecom USB 2.0 DVB-T Device&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DTV-DVB UDTT 7047-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DTV-DVB UDTT 7047M-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DTV-DVB UDTT 704L-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TwinHan/AzureWave AD-TU200 (7047) DVB-T &lt;br /&gt;
&lt;br /&gt;
== Pending developments ==&lt;br /&gt;
&lt;br /&gt;
The code cannot be included in the mainline, as the front-end and abck-end are not split (as is required)&lt;br /&gt;
&lt;br /&gt;
I have started a second archive for splitting off the tuner code.&lt;br /&gt;
For the mxl5005s tuner, this should be straightforward, as the code&lt;br /&gt;
found its way into the mainstream v4l already.&lt;br /&gt;
&lt;br /&gt;
However, I ran into problems with the mt2060 (which is the tuner I own).&lt;br /&gt;
In the function  MT2060_LocateIF1 is making this hard.&lt;br /&gt;
This function doe some sort of calibration, and there is both internal&lt;br /&gt;
data from the tuner required, and input from the demodulator.&lt;br /&gt;
&lt;br /&gt;
== Get the driver ==&lt;br /&gt;
&lt;br /&gt;
To download and build the driver, issue&lt;br /&gt;
&lt;br /&gt;
 hg clone http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
== Product links ==&lt;br /&gt;
&lt;br /&gt;
* http://www.realtek.com.tw/products/productsView.aspx?Langid=1&amp;amp;PFid=35&amp;amp;Level=4&amp;amp;Conn=3&amp;amp;ProdID=147&lt;br /&gt;
&lt;br /&gt;
* http://www.conceptronic.net/site/desktopdefault.aspx?tabindex=1&amp;amp;tabid=242&amp;amp;cid=40&amp;amp;gid=4050&amp;amp;pid=CTVDIGRCU&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Realtek_RTL2831U</id>
		<title>Realtek RTL2831U</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Realtek_RTL2831U"/>
				<updated>2009-09-15T03:19:04Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The RTL2831U is a high-performance DVB-T COFDM demodulator + USB 2.0 that integrates a COFDM demodulator, FEC decoder, de-interleavers, and USB 2.0 interface.&lt;br /&gt;
This chip can be found in USB devices that are sold under a numer of names: Compro VideoMate U90, &lt;br /&gt;
TwinHan/AzureWave AD-TU200 (7047) DVB-T ,  Freecom , Conceptronic , and also Realtek.&lt;br /&gt;
&lt;br /&gt;
The drivers posted for these cards can be found on:&lt;br /&gt;
     http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2&lt;br /&gt;
&lt;br /&gt;
This code is recently synchronised with the main v4l line. &lt;br /&gt;
A switch for the IR type is included. It can be selected using modprobe. &lt;br /&gt;
For example if you need type 2: unload the automatically loaded driver, and reload the good codes.&lt;br /&gt;
&lt;br /&gt;
sudo modprobe -r dvb_usb_rtl2831u&lt;br /&gt;
sudo modprobe  dvb_usb_rtl2831u ir_protocol=2&lt;br /&gt;
&lt;br /&gt;
-----------------&lt;br /&gt;
The following devices are supported (numbers and names do NOT correspond):&lt;br /&gt;
output of  grep rtl2831 /lib/modules/2.6.24-16-generic/modules.usbmap | sed -e 's/0x0000.*$//' -e 's/^.*0x0003//'&lt;br /&gt;
&lt;br /&gt;
      0x0bda   0x2831    &lt;br /&gt;
      0x2304   0x022b    &lt;br /&gt;
      0x13d3   0x3216    &lt;br /&gt;
      0x13d3   0x3220    &lt;br /&gt;
      0x13d3   0x3236    &lt;br /&gt;
      0x13d3   0x3238    &lt;br /&gt;
      0x13d3   0x3244    &lt;br /&gt;
      0x08dd   0x2103    &lt;br /&gt;
      0x185b   0x0100    &lt;br /&gt;
      0x185b   0x0150    &lt;br /&gt;
      0x1a46   0x1601    &lt;br /&gt;
      0x14aa   0x0160    &lt;br /&gt;
      0x14ff   0x0225    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		 name = &amp;quot;RTL2831U DVB-T USB2.0 DEVICE&amp;quot;&lt;br /&gt;
		 name = &amp;quot;RTL2831U DVB-T USB2.0 DEVICE&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DVB-T TV-Tuner Card-R&amp;quot;&lt;br /&gt;
		 name = &amp;quot;VideoMate TV U100&amp;quot;&lt;br /&gt;
		 name = &amp;quot;Vestel DVB-T TV Card&amp;quot;&lt;br /&gt;
		 name = &amp;quot;Freecom USB 2.0 DVB-T Device&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DTV-DVB UDTT 7047-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DTV-DVB UDTT 7047M-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DTV-DVB UDTT 7047A-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DTV-DVB UDTT 704L-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
		 name = &amp;quot;DTV-DVB UDTT 7047Z-USB 2.0 DVB-T Driver&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TwinHan/AzureWave AD-TU200 (7047) DVB-T &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-------------&lt;br /&gt;
The code cannot be included in the mainline, as the front-end and abck-end are not split (as is required)&lt;br /&gt;
&lt;br /&gt;
I have started a second archive for splitting off the tuner code.&lt;br /&gt;
For the mxl5005s tuner, this should be straightforward, as the code&lt;br /&gt;
found its way into the mainstream v4l already.&lt;br /&gt;
&lt;br /&gt;
However, I ran into problems with the mt2060 (which is the tuner I own).&lt;br /&gt;
In the function  MT2060_LocateIF1 is making this hard.&lt;br /&gt;
This function doe some sort of calibration, and there is both internal&lt;br /&gt;
data from the tuner required, and input from the demodulator.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
For those of you that are not familiar with development:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 hg clone http://linuxtv.org/hg/~jhoogenraad/rtl2831-r2&lt;br /&gt;
 make&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
should be giving a proper driver at all times.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.realtek.com.tw/products/productsView.aspx?Langid=1&amp;amp;PFid=35&amp;amp;Level=4&amp;amp;Conn=3&amp;amp;ProdID=147&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://www.conceptronic.net/site/desktopdefault.aspx?tabindex=1&amp;amp;tabid=242&amp;amp;cid=40&amp;amp;gid=4050&amp;amp;pid=CTVDIGRCU&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/NXP_SAA716x</id>
		<title>NXP SAA716x</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/NXP_SAA716x"/>
				<updated>2009-09-15T02:55:23Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Saa7162 IC chip information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A family [[PCIe interface chipsets|PCIe interface chipset]] from [[NXP Semiconductors]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
In March 2005, Philips Semiconductors announced &amp;quot;the industry's first integrated PCI Express dual global video and stereo decoder for digital home PC desktops and notebooks&amp;quot; ([http://www.electronicstalk.com/news/phi/phi309.html press release]). The new analog decoder chip, the saa7162, uses the increased bandwidth of the PCI Express bus to capture to two simultaneous analog channels of live tv or baseband video (cf. [http://www-us.semiconductors.philips.com/acrobat/literature/9397/75015389.pdf product flyer]) or up to four independent simultaneous digital TV streams (cf. [http://www.nxp.com/acrobat_download/literature/9397/75015302.pdf Philips/NXP SAA7162 product brief]).&lt;br /&gt;
&lt;br /&gt;
In Oct 2006, NXP created a saa7162 product page that includes, amongst other information, an 18 page &amp;quot;preliminary short data sheet&amp;quot; for download:&lt;br /&gt;
[http://www.nxp.com/pip/SAA7162E_V1_R5_G.html SAA7162 Product Description].&lt;br /&gt;
&lt;br /&gt;
The PCI-SIG lists SAA7162 (dual A/V decoder) and SAA7160/SAA7161 (multimedia A/V bridge) as PCIe devices. According to PCIe specs there are two types of PCIe devices; Type 1, which categorize normal PCIe bridge devices, and Type 0, which categorize devices which have a specific/customized programmable interface.  Unfortunately, the PCIe spec is not very detailed when it comes to Type 0 devices, and it is indeed this category that the SAA7160/1/2 reside.&lt;br /&gt;
&lt;br /&gt;
== Saa7162 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a PCI Express bridge with integrated dual stream A/V decoder. The device is a single lane PCIe device opertaion at 2.5G sample/s.&lt;br /&gt;
&lt;br /&gt;
The dual logical Audio/Video decoder support 10 bit A/D conversion, enhanced PAL/NTSC comb filtering, a versatile VBI data processing, more sophisticated scaling alogrithms, support of High Definition component video, picture improvement processing, more robustness with VCR-type signals, and increased audio functionallity like SPDIF In/Out and an intergrated audio sample rate coverter from 32Khz to 44Khz or 48Khz.Each channels has its own silent I2C bus for controlling sensitive tuner devices. One of the channels provides an IR interface.&lt;br /&gt;
&lt;br /&gt;
Aside to the dual A/V decoder, there is a versatile I/O block, featuring PHI, SPI, I2C-bus,32 GPIO lines. The PHI is a fast parallel bus interface. The SPI-bus is a high speed serial bus interface. The two I2C bus interfaces operate at high speed grade.&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a highly intergrated circuit for e.g TV insertion inside PC system. The Muti Standard TV decoder covered all Video color standards like PAL, NTSC and SECAM and Sound standards like Dual FM, NICAM, BTSC and EIAJ, Addtional to the TV decider function a digital IF demodulator, a FM Radio decoder, standard interfaces for digital Video and Audio, Remote control receiver/transmission processing and a high speed programming port allows high intergrated system solutions for muti media application.&lt;br /&gt;
&lt;br /&gt;
See [[Saa7162 devices]]. There are also some DVB-S2 cards based on the SAA7160.&lt;br /&gt;
&lt;br /&gt;
=== Saa7162 driver development ===&lt;br /&gt;
&lt;br /&gt;
Philips announced in their [http://www.nxp.com/applications/pc_pda/pc_tv/dual_analog_pc_tv_receiver/index.html reference design] that they had already written a Linux driver. In May 2007, they finally sent the code to [http://www.interlink.com.au/rad/quattros Richard Dale] (without an [[NDA]]) and Manu Abraham, who is now writing a GPL'd driver under an [[NDA]] (the terms of which are not widely known). See the [http://www.linuxtv.org/pipermail/linux-dvb/2007-May/017856.html full discussion on linux-dvb].  &lt;br /&gt;
&lt;br /&gt;
While development has progressed, it appears that the information available/provided does not fully document some aspects of this chipset, and hence some areas of development have been problematic.  Unfortunately, it appears that before NXP will consider providing additional assistance towards Linux driver support for the chipset, they wish to determine whether it is worth their while by gaining some measure of the potential future user base that Linux drivers will actually provide.  Representatives from device vendors Azurewave and Hauppauge have outlined that they will try to assist LinuxTV in its effort to obtain more assistance in this matter. [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019452.html] [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019463.html].&lt;br /&gt;
&lt;br /&gt;
The Saa716x driver is expected to support the following PCIe chips:&lt;br /&gt;
&lt;br /&gt;
* Saa7160&lt;br /&gt;
* Saa7161&lt;br /&gt;
* Saa7162&lt;br /&gt;
&lt;br /&gt;
Manu Abraham's Saa716x development repository is at http://jusst.de/hg/saa716x -- the driver has not yet been released, but is open for testing.&lt;br /&gt;
&lt;br /&gt;
== Saa7164 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
A more complex IC that incorporates a built-in MPEG2 encoder.  &lt;br /&gt;
&lt;br /&gt;
The NXP Saa7164 integrates up to 8 standalone chips: two IF demodulators, two PAL/NTSC/SECAM decoders, two stereo decoders, plus two multi-format compression engines&lt;br /&gt;
&lt;br /&gt;
[http://www.nxp.com/acrobat/literature/9397/75015870.pdf SAA7164 brochure]&lt;br /&gt;
&lt;br /&gt;
Used in the [[Hauppauge WinTV-HVR-2200]] and [[Hauppauge_WinTV-HVR-2250]].&lt;br /&gt;
&lt;br /&gt;
=== Saa7164 driver ===&lt;br /&gt;
&lt;br /&gt;
In September 2009, Steven Toth at [http://kernellabs.com kernellabs] submitted code to the linux kernel mailing list that adds support for the NXP SAA7164 PCIe A/V bridge used by the Hauppauge HVR-2200 and HVR-2250 series of products. See instructions at [[Hauppauge WinTV-HVR-2200]]. Note that support is still  limited to DVB-T / ATSC / QAM digital TV only; there is no analog support yet.&lt;br /&gt;
&lt;br /&gt;
Development is continuing; see http://www.steventoth.net/blog/products/hvr-2250/ and http://www.kernellabs.com.&lt;br /&gt;
&lt;br /&gt;
The Saa7164 driver does not support the Saa7160/61/62 chips.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*&lt;br /&gt;
[[Category:Chipsets]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/NXP_SAA716x</id>
		<title>NXP SAA716x</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/NXP_SAA716x"/>
				<updated>2009-09-15T02:51:04Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Saa7162 driver development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A family [[PCIe interface chipsets|PCIe interface chipset]] from [[NXP Semiconductors]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
In March 2005, Philips Semiconductors announced &amp;quot;the industry's first integrated PCI Express dual global video and stereo decoder for digital home PC desktops and notebooks&amp;quot; ([http://www.electronicstalk.com/news/phi/phi309.html press release]). The new analog decoder chip, the saa7162, uses the increased bandwidth of the PCI Express bus to capture to two simultaneous analog channels of live tv or baseband video (cf. [http://www-us.semiconductors.philips.com/acrobat/literature/9397/75015389.pdf product flyer]) or up to four independent simultaneous digital TV streams (cf. [http://www.nxp.com/acrobat_download/literature/9397/75015302.pdf Philips/NXP SAA7162 product brief]).&lt;br /&gt;
&lt;br /&gt;
In Oct 2006, NXP created a saa7162 product page that includes, amongst other information, an 18 page &amp;quot;preliminary short data sheet&amp;quot; for download:&lt;br /&gt;
[http://www.nxp.com/pip/SAA7162E_V1_R5_G.html SAA7162 Product Description].&lt;br /&gt;
&lt;br /&gt;
The PCI-SIG lists SAA7162 (dual A/V decoder) and SAA7160/SAA7161 (multimedia A/V bridge) as PCIe devices. According to PCIe specs there are two types of PCIe devices; Type 1, which categorize normal PCIe bridge devices, and Type 0, which categorize devices which have a specific/customized programmable interface.  Unfortunately, the PCIe spec is not very detailed when it comes to Type 0 devices, and it is indeed this category that the SAA7160/1/2 reside.&lt;br /&gt;
&lt;br /&gt;
== Saa7162 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a PCI Express bridge with integrated dual stream A/V decoder. The device is a single lane PCIe device opertaion at 2.5G sample/s.&lt;br /&gt;
&lt;br /&gt;
The dual logical Audio/Video decoder support 10 bit A/D conversion, enhanced PAL/NTSC comb filtering, a versatile VBI data processing, more sophisticated scaling alogrithms, support of High Definition component video, picture improvement processing, more robustness with VCR-type signals, and increased audio functionallity like SPDIF In/Out and an intergrated audio sample rate coverter from 32Khz to 44Khz or 48Khz.Each channels has its own silent I2C bus for controlling sensitive tuner devices. One of the channels provides an IR interface.&lt;br /&gt;
&lt;br /&gt;
Aside to the dual A/V decoder, there is a versatile I/O block, featuring PHI, SPI, I2C-bus,32 GPIO lines. The PHI is a fast parallel bus interface. The SPI-bus is a high speed serial bus interface. The two I2C bus interfaces operate at high speed grade.&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a highly intergrated circuit for e.g TV insertion inside PC system. The Muti Standard TV decoder covered all Video color standards like PAL, NTSC and SECAM and Sound standards like Dual FM, NICAM, BTSC and EIAJ, Addtional to the TV decider function a digital IF demodulator, a FM Radio decoder, standard interfaces for digital Video and Audio, Remote control receiver/transmission processing and a high speed programming port allows high intergrated system solutions for muti media application.&lt;br /&gt;
&lt;br /&gt;
=== Saa7162 driver development ===&lt;br /&gt;
&lt;br /&gt;
Philips announced in their [http://www.nxp.com/applications/pc_pda/pc_tv/dual_analog_pc_tv_receiver/index.html reference design] that they had already written a Linux driver. In May 2007, they finally sent the code to [http://www.interlink.com.au/rad/quattros Richard Dale] (without an [[NDA]]) and Manu Abraham, who is now writing a GPL'd driver under an [[NDA]] (the terms of which are not widely known). See the [http://www.linuxtv.org/pipermail/linux-dvb/2007-May/017856.html full discussion on linux-dvb].  &lt;br /&gt;
&lt;br /&gt;
While development has progressed, it appears that the information available/provided does not fully document some aspects of this chipset, and hence some areas of development have been problematic.  Unfortunately, it appears that before NXP will consider providing additional assistance towards Linux driver support for the chipset, they wish to determine whether it is worth their while by gaining some measure of the potential future user base that Linux drivers will actually provide.  Representatives from device vendors Azurewave and Hauppauge have outlined that they will try to assist LinuxTV in its effort to obtain more assistance in this matter. [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019452.html] [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019463.html].&lt;br /&gt;
&lt;br /&gt;
The SAA716x driver is expected to support the following PCIe chips:&lt;br /&gt;
&lt;br /&gt;
* Saa7160&lt;br /&gt;
* Saa7161&lt;br /&gt;
* Saa7162&lt;br /&gt;
&lt;br /&gt;
The SAA716x development repository is at http://jusst.de/hg/saa716x&lt;br /&gt;
&lt;br /&gt;
The Linux driver for the Saa7162 is still to be released.&lt;br /&gt;
&lt;br /&gt;
== Saa7164 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
A more complex IC that incorporates a built-in MPEG2 encoder.  &lt;br /&gt;
&lt;br /&gt;
The NXP Saa7164 integrates up to 8 standalone chips: two IF demodulators, two PAL/NTSC/SECAM decoders, two stereo decoders, plus two multi-format compression engines&lt;br /&gt;
&lt;br /&gt;
[http://www.nxp.com/acrobat/literature/9397/75015870.pdf SAA7164 brochure]&lt;br /&gt;
&lt;br /&gt;
Used in the [[Hauppauge WinTV-HVR-2200]] and [[Hauppauge_WinTV-HVR-2250]].&lt;br /&gt;
&lt;br /&gt;
=== Saa7164 driver ===&lt;br /&gt;
&lt;br /&gt;
In September 2009, Steven Toth at [http://kernellabs.com kernellabs] submitted code to the linux kernel mailing list that adds support for the NXP SAA7164 PCIe A/V bridge used by the Hauppauge HVR-2200 and HVR-2250 series of products. See instructions at [[Hauppauge WinTV-HVR-2200]]. Note that support is still  limited to DVB-T / ATSC / QAM digital TV only; there is no analog support yet.&lt;br /&gt;
&lt;br /&gt;
Development is continuing; see http://www.steventoth.net/blog/products/hvr-2250/ and http://www.kernellabs.com.&lt;br /&gt;
&lt;br /&gt;
The Saa7164 driver does not support the Saa7160/61/62 chips.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*&lt;br /&gt;
[[Category:Chipsets]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-2250</id>
		<title>Hauppauge WinTV-HVR-2250</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-2250"/>
				<updated>2009-09-15T02:39:01Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Making it Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:WinTV_HVR-2250.jpg|thumb|right|250px|caption]]&lt;br /&gt;
&lt;br /&gt;
An [[ATSC]] [[ATSC PCIe Cards|PCIe card]] from [[Hauppauge]].  &lt;br /&gt;
&lt;br /&gt;
== Overview/Features ==&lt;br /&gt;
&lt;br /&gt;
Dual hybrid digital/analog tuners, low profile.&lt;br /&gt;
&lt;br /&gt;
* Single slot PCI Express (PCIe) X1 board, half height.&lt;br /&gt;
* Two analog tuners, each with their own hardware encoders&lt;br /&gt;
* Two digital TV receivers for ATSC or clear QAM&lt;br /&gt;
* Dual built-in hardware MPEG-2 encoders.&lt;br /&gt;
 &lt;br /&gt;
=== Components Used ===&lt;br /&gt;
&lt;br /&gt;
* [[NXP_SAA716x|NXP SAA7164]]&lt;br /&gt;
&lt;br /&gt;
* Pair of [[NXP TDA18271HD]] tuner chips.&lt;br /&gt;
&lt;br /&gt;
Could someone who has this card please take a good look at the board and list all the chips here?&lt;br /&gt;
&lt;br /&gt;
The REV C2F2 has&lt;br /&gt;
* [[NXP_SAA716x|NXP SAA7164E/3]]&lt;br /&gt;
* Pair of [[Conexant]] CX24228-21Z demodulators&lt;br /&gt;
&lt;br /&gt;
===Identification===&lt;br /&gt;
&lt;br /&gt;
===Other Images===&lt;br /&gt;
&lt;br /&gt;
Top view&lt;br /&gt;
[[File:WinTV_HVR-2250.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Making it Work ==&lt;br /&gt;
&lt;br /&gt;
In September 2009, Steven Toth at [http://kernellabs.com kernellabs] submitted code to the linux kernel mailing list that adds support for the NXP Saa7164 PCIe A/V bridge used by the Hauppauge HVR-2250 card. See instructions at [[Hauppauge WinTV-HVR-2200]]. Note that support is still  limited to DVB-T / ATSC / QAM digital TV only; there is no analog support yet.&lt;br /&gt;
&lt;br /&gt;
Development continues at http://www.steventoth.net/blog/products/hvr-2250/&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The windows driver and linux firmware extraction scripts are up on&lt;br /&gt;
http://www.steventoth.net/linux/hvr22xx&lt;br /&gt;
&lt;br /&gt;
=== Drivers ===&lt;br /&gt;
&lt;br /&gt;
Drivers are expected to be included in Linux 2.6.32.&lt;br /&gt;
&lt;br /&gt;
In the meantime, for stable tree hg clone http://kernellabs.com/hg/saa7164-stable/ &lt;br /&gt;
&lt;br /&gt;
For Development tree hg clone http://kernellabs.com/hg/~stoth/saa7164-dev/&lt;br /&gt;
&lt;br /&gt;
then... make menuconfig edit as needed make make install reboot&lt;br /&gt;
&lt;br /&gt;
=== Sample Kernel Output ===&lt;br /&gt;
&lt;br /&gt;
''provide the relevant portion of dmesg here''&lt;br /&gt;
&lt;br /&gt;
===Remote Controller Support===&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hauppauge.com/site/products/data_hvr2250.html Hauppauge Product Page]&lt;br /&gt;
&lt;br /&gt;
[[Category:ATSC PCIe Cards]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-2250</id>
		<title>Hauppauge WinTV-HVR-2250</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Hauppauge_WinTV-HVR-2250"/>
				<updated>2009-09-15T02:38:31Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: Driver submitted to lkml&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:WinTV_HVR-2250.jpg|thumb|right|250px|caption]]&lt;br /&gt;
&lt;br /&gt;
An [[ATSC]] [[ATSC PCIe Cards|PCIe card]] from [[Hauppauge]].  &lt;br /&gt;
&lt;br /&gt;
== Overview/Features ==&lt;br /&gt;
&lt;br /&gt;
Dual hybrid digital/analog tuners, low profile.&lt;br /&gt;
&lt;br /&gt;
* Single slot PCI Express (PCIe) X1 board, half height.&lt;br /&gt;
* Two analog tuners, each with their own hardware encoders&lt;br /&gt;
* Two digital TV receivers for ATSC or clear QAM&lt;br /&gt;
* Dual built-in hardware MPEG-2 encoders.&lt;br /&gt;
 &lt;br /&gt;
=== Components Used ===&lt;br /&gt;
&lt;br /&gt;
* [[NXP_SAA716x|NXP SAA7164]]&lt;br /&gt;
&lt;br /&gt;
* Pair of [[NXP TDA18271HD]] tuner chips.&lt;br /&gt;
&lt;br /&gt;
Could someone who has this card please take a good look at the board and list all the chips here?&lt;br /&gt;
&lt;br /&gt;
The REV C2F2 has&lt;br /&gt;
* [[NXP_SAA716x|NXP SAA7164E/3]]&lt;br /&gt;
* Pair of [[Conexant]] CX24228-21Z demodulators&lt;br /&gt;
&lt;br /&gt;
===Identification===&lt;br /&gt;
&lt;br /&gt;
===Other Images===&lt;br /&gt;
&lt;br /&gt;
Top view&lt;br /&gt;
[[File:WinTV_HVR-2250.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
== Making it Work ==&lt;br /&gt;
&lt;br /&gt;
In September 2009, Steven Toth at [http://kernellabs.com kernellabs] submitted code to the linux kernel mailing list that adds support for the NXP Saa7164 PCIe A/V bridge used by the Hauppauge HVR-2250 card. See instructions at [[Hauppauge WinTV-HVR-2200]]. Note that support is still  limited to DVB-T / ATSC / QAM digital TV only; there is no analog support yet.&lt;br /&gt;
&lt;br /&gt;
See instructions at [[Hauppauge WinTV-HVR-2200]].&lt;br /&gt;
&lt;br /&gt;
Development continues at http://www.steventoth.net/blog/products/hvr-2250/&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
&lt;br /&gt;
The windows driver and linux firmware extraction scripts are up on&lt;br /&gt;
http://www.steventoth.net/linux/hvr22xx&lt;br /&gt;
&lt;br /&gt;
=== Drivers ===&lt;br /&gt;
&lt;br /&gt;
Drivers are expected to be included in Linux 2.6.32.&lt;br /&gt;
&lt;br /&gt;
In the meantime, for stable tree hg clone http://kernellabs.com/hg/saa7164-stable/ &lt;br /&gt;
&lt;br /&gt;
For Development tree hg clone http://kernellabs.com/hg/~stoth/saa7164-dev/&lt;br /&gt;
&lt;br /&gt;
then... make menuconfig edit as needed make make install reboot&lt;br /&gt;
&lt;br /&gt;
=== Sample Kernel Output ===&lt;br /&gt;
&lt;br /&gt;
''provide the relevant portion of dmesg here''&lt;br /&gt;
&lt;br /&gt;
===Remote Controller Support===&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
&lt;br /&gt;
* [http://www.hauppauge.com/site/products/data_hvr2250.html Hauppauge Product Page]&lt;br /&gt;
&lt;br /&gt;
[[Category:ATSC PCIe Cards]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/NXP_SAA716x</id>
		<title>NXP SAA716x</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/NXP_SAA716x"/>
				<updated>2009-09-15T02:24:37Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Saa7164 IC chip information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A family [[PCIe interface chipsets|PCIe interface chipset]] from [[NXP Semiconductors]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
In March 2005, Philips Semiconductors announced &amp;quot;the industry's first integrated PCI Express dual global video and stereo decoder for digital home PC desktops and notebooks&amp;quot; ([http://www.electronicstalk.com/news/phi/phi309.html press release]). The new analog decoder chip, the saa7162, uses the increased bandwidth of the PCI Express bus to capture to two simultaneous analog channels of live tv or baseband video (cf. [http://www-us.semiconductors.philips.com/acrobat/literature/9397/75015389.pdf product flyer]) or up to four independent simultaneous digital TV streams (cf. [http://www.nxp.com/acrobat_download/literature/9397/75015302.pdf Philips/NXP SAA7162 product brief]).&lt;br /&gt;
&lt;br /&gt;
In Oct 2006, NXP created a saa7162 product page that includes, amongst other information, an 18 page &amp;quot;preliminary short data sheet&amp;quot; for download:&lt;br /&gt;
[http://www.nxp.com/pip/SAA7162E_V1_R5_G.html SAA7162 Product Description].&lt;br /&gt;
&lt;br /&gt;
The PCI-SIG lists SAA7162 (dual A/V decoder) and SAA7160/SAA7161 (multimedia A/V bridge) as PCIe devices. According to PCIe specs there are two types of PCIe devices; Type 1, which categorize normal PCIe bridge devices, and Type 0, which categorize devices which have a specific/customized programmable interface.  Unfortunately, the PCIe spec is not very detailed when it comes to Type 0 devices, and it is indeed this category that the SAA7160/1/2 reside.&lt;br /&gt;
&lt;br /&gt;
== Saa7162 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a PCI Express bridge with integrated dual stream A/V decoder. The device is a single lane PCIe device opertaion at 2.5G sample/s.&lt;br /&gt;
&lt;br /&gt;
The dual logical Audio/Video decoder support 10 bit A/D conversion, enhanced PAL/NTSC comb filtering, a versatile VBI data processing, more sophisticated scaling alogrithms, support of High Definition component video, picture improvement processing, more robustness with VCR-type signals, and increased audio functionallity like SPDIF In/Out and an intergrated audio sample rate coverter from 32Khz to 44Khz or 48Khz.Each channels has its own silent I2C bus for controlling sensitive tuner devices. One of the channels provides an IR interface.&lt;br /&gt;
&lt;br /&gt;
Aside to the dual A/V decoder, there is a versatile I/O block, featuring PHI, SPI, I2C-bus,32 GPIO lines. The PHI is a fast parallel bus interface. The SPI-bus is a high speed serial bus interface. The two I2C bus interfaces operate at high speed grade.&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a highly intergrated circuit for e.g TV insertion inside PC system. The Muti Standard TV decoder covered all Video color standards like PAL, NTSC and SECAM and Sound standards like Dual FM, NICAM, BTSC and EIAJ, Addtional to the TV decider function a digital IF demodulator, a FM Radio decoder, standard interfaces for digital Video and Audio, Remote control receiver/transmission processing and a high speed programming port allows high intergrated system solutions for muti media application.&lt;br /&gt;
&lt;br /&gt;
=== Saa7162 driver development ===&lt;br /&gt;
&lt;br /&gt;
Philips announced in their [http://www.nxp.com/applications/pc_pda/pc_tv/dual_analog_pc_tv_receiver/index.html reference design] that they had already written a Linux driver. In May 2007, they finally sent the code to [http://www.interlink.com.au/rad/quattros Richard Dale] (without an [[NDA]]) and Manu Abraham, who is now writing a GPL'd driver under an [[NDA]] (the terms of which are not widely known). See the [http://www.linuxtv.org/pipermail/linux-dvb/2007-May/017856.html full discussion on linux-dvb].  &lt;br /&gt;
&lt;br /&gt;
While development has progressed, it appears that the information available/provided does not fully document some aspects of this chipset, and hence some areas of development have been problematic.  Unfortunately, it appears that before NXP will consider providing additional assistance towards Linux driver support for the chipset, they wish to determine whether it is worth their while by gaining some measure of the potential future user base that Linux drivers will actually provide.  Representatives from device vendors Azurewave and Hauppauge have outlined that they will try to assist LinuxTV in its effort to obtain more assistance in this matter. [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019452.html] [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019463.html].  &lt;br /&gt;
&lt;br /&gt;
This means that a Linux driver for the Saa7162 is still to be released.  Hopefully the remaining issues with the chipset can be resolved soon and then device level support for PCIe cards incorporating the saa7162 can begin.&lt;br /&gt;
&lt;br /&gt;
'''Current Status (as of Nov 21/08) and link to driver''': http://marc.info/?l=linux-dvb&amp;amp;m=122729999014286&amp;amp;w=2&lt;br /&gt;
&lt;br /&gt;
== Saa7164 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
A more complex IC that incorporates a built-in MPEG2 encoder.  &lt;br /&gt;
&lt;br /&gt;
The NXP Saa7164 integrates up to 8 standalone chips: two IF demodulators, two PAL/NTSC/SECAM decoders, two stereo decoders, plus two multi-format compression engines&lt;br /&gt;
&lt;br /&gt;
[http://www.nxp.com/acrobat/literature/9397/75015870.pdf SAA7164 brochure]&lt;br /&gt;
&lt;br /&gt;
Used in the [[Hauppauge WinTV-HVR-2200]] and [[Hauppauge_WinTV-HVR-2250]].&lt;br /&gt;
&lt;br /&gt;
=== Saa7164 driver ===&lt;br /&gt;
&lt;br /&gt;
In September 2009, Steven Toth at [http://kernellabs.com kernellabs] submitted code to the linux kernel mailing list that adds support for the NXP SAA7164 PCIe A/V bridge used by the Hauppauge HVR-2200 and HVR-2250 series of products. See instructions at [[Hauppauge WinTV-HVR-2200]]. Note that support is still  limited to DVB-T / ATSC / QAM digital TV only; there is no analog support yet.&lt;br /&gt;
&lt;br /&gt;
Development is continuing; see http://www.steventoth.net/blog/products/hvr-2250/ and http://www.kernellabs.com.&lt;br /&gt;
&lt;br /&gt;
The Saa7164 driver does not support the Saa7160/61/62 chips.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*&lt;br /&gt;
[[Category:Chipsets]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/NXP_SAA716x</id>
		<title>NXP SAA716x</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/NXP_SAA716x"/>
				<updated>2009-09-15T02:23:21Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Saa7162 Driver Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A family [[PCIe interface chipsets|PCIe interface chipset]] from [[NXP Semiconductors]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
In March 2005, Philips Semiconductors announced &amp;quot;the industry's first integrated PCI Express dual global video and stereo decoder for digital home PC desktops and notebooks&amp;quot; ([http://www.electronicstalk.com/news/phi/phi309.html press release]). The new analog decoder chip, the saa7162, uses the increased bandwidth of the PCI Express bus to capture to two simultaneous analog channels of live tv or baseband video (cf. [http://www-us.semiconductors.philips.com/acrobat/literature/9397/75015389.pdf product flyer]) or up to four independent simultaneous digital TV streams (cf. [http://www.nxp.com/acrobat_download/literature/9397/75015302.pdf Philips/NXP SAA7162 product brief]).&lt;br /&gt;
&lt;br /&gt;
In Oct 2006, NXP created a saa7162 product page that includes, amongst other information, an 18 page &amp;quot;preliminary short data sheet&amp;quot; for download:&lt;br /&gt;
[http://www.nxp.com/pip/SAA7162E_V1_R5_G.html SAA7162 Product Description].&lt;br /&gt;
&lt;br /&gt;
The PCI-SIG lists SAA7162 (dual A/V decoder) and SAA7160/SAA7161 (multimedia A/V bridge) as PCIe devices. According to PCIe specs there are two types of PCIe devices; Type 1, which categorize normal PCIe bridge devices, and Type 0, which categorize devices which have a specific/customized programmable interface.  Unfortunately, the PCIe spec is not very detailed when it comes to Type 0 devices, and it is indeed this category that the SAA7160/1/2 reside.&lt;br /&gt;
&lt;br /&gt;
== Saa7162 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a PCI Express bridge with integrated dual stream A/V decoder. The device is a single lane PCIe device opertaion at 2.5G sample/s.&lt;br /&gt;
&lt;br /&gt;
The dual logical Audio/Video decoder support 10 bit A/D conversion, enhanced PAL/NTSC comb filtering, a versatile VBI data processing, more sophisticated scaling alogrithms, support of High Definition component video, picture improvement processing, more robustness with VCR-type signals, and increased audio functionallity like SPDIF In/Out and an intergrated audio sample rate coverter from 32Khz to 44Khz or 48Khz.Each channels has its own silent I2C bus for controlling sensitive tuner devices. One of the channels provides an IR interface.&lt;br /&gt;
&lt;br /&gt;
Aside to the dual A/V decoder, there is a versatile I/O block, featuring PHI, SPI, I2C-bus,32 GPIO lines. The PHI is a fast parallel bus interface. The SPI-bus is a high speed serial bus interface. The two I2C bus interfaces operate at high speed grade.&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a highly intergrated circuit for e.g TV insertion inside PC system. The Muti Standard TV decoder covered all Video color standards like PAL, NTSC and SECAM and Sound standards like Dual FM, NICAM, BTSC and EIAJ, Addtional to the TV decider function a digital IF demodulator, a FM Radio decoder, standard interfaces for digital Video and Audio, Remote control receiver/transmission processing and a high speed programming port allows high intergrated system solutions for muti media application.&lt;br /&gt;
&lt;br /&gt;
=== Saa7162 driver development ===&lt;br /&gt;
&lt;br /&gt;
Philips announced in their [http://www.nxp.com/applications/pc_pda/pc_tv/dual_analog_pc_tv_receiver/index.html reference design] that they had already written a Linux driver. In May 2007, they finally sent the code to [http://www.interlink.com.au/rad/quattros Richard Dale] (without an [[NDA]]) and Manu Abraham, who is now writing a GPL'd driver under an [[NDA]] (the terms of which are not widely known). See the [http://www.linuxtv.org/pipermail/linux-dvb/2007-May/017856.html full discussion on linux-dvb].  &lt;br /&gt;
&lt;br /&gt;
While development has progressed, it appears that the information available/provided does not fully document some aspects of this chipset, and hence some areas of development have been problematic.  Unfortunately, it appears that before NXP will consider providing additional assistance towards Linux driver support for the chipset, they wish to determine whether it is worth their while by gaining some measure of the potential future user base that Linux drivers will actually provide.  Representatives from device vendors Azurewave and Hauppauge have outlined that they will try to assist LinuxTV in its effort to obtain more assistance in this matter. [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019452.html] [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019463.html].  &lt;br /&gt;
&lt;br /&gt;
This means that a Linux driver for the Saa7162 is still to be released.  Hopefully the remaining issues with the chipset can be resolved soon and then device level support for PCIe cards incorporating the saa7162 can begin.&lt;br /&gt;
&lt;br /&gt;
'''Current Status (as of Nov 21/08) and link to driver''': http://marc.info/?l=linux-dvb&amp;amp;m=122729999014286&amp;amp;w=2&lt;br /&gt;
&lt;br /&gt;
== Saa7164 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
A more complex IC that incorporates a built-in MPEG2 encoder.  &lt;br /&gt;
&lt;br /&gt;
The NXP Saa7164 integrates up to 8 standalone chips: two IF demodulators, two PAL/NTSC/SECAM decoders, two stereo decoders, plus two multi-format compression engines&lt;br /&gt;
&lt;br /&gt;
[http://www.nxp.com/acrobat/literature/9397/75015870.pdf SAA7164 brochure]&lt;br /&gt;
&lt;br /&gt;
Used in the [[Hauppauge_WinTV-HVR-2250]].&lt;br /&gt;
&lt;br /&gt;
=== Saa7164 driver ===&lt;br /&gt;
&lt;br /&gt;
In September 2009, Steven Toth at [http://kernellabs.com kernellabs] submitted code to the linux kernel mailing list that adds support for the NXP SAA7164 PCIe A/V bridge used by the Hauppauge HVR-2200 and HVR-2250 series of products. See instructions at [[Hauppauge WinTV-HVR-2200]]. Note that support is still  limited to DVB-T / ATSC / QAM digital TV only; there is no analog support yet.&lt;br /&gt;
&lt;br /&gt;
Development is continuing; see http://www.steventoth.net/blog/products/hvr-2250/ and http://www.kernellabs.com.&lt;br /&gt;
&lt;br /&gt;
The Saa7164 driver does not support the Saa7160/61/62 chips.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*&lt;br /&gt;
[[Category:Chipsets]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/NXP_SAA716x</id>
		<title>NXP SAA716x</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/NXP_SAA716x"/>
				<updated>2009-09-15T02:22:59Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A family [[PCIe interface chipsets|PCIe interface chipset]] from [[NXP Semiconductors]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
In March 2005, Philips Semiconductors announced &amp;quot;the industry's first integrated PCI Express dual global video and stereo decoder for digital home PC desktops and notebooks&amp;quot; ([http://www.electronicstalk.com/news/phi/phi309.html press release]). The new analog decoder chip, the saa7162, uses the increased bandwidth of the PCI Express bus to capture to two simultaneous analog channels of live tv or baseband video (cf. [http://www-us.semiconductors.philips.com/acrobat/literature/9397/75015389.pdf product flyer]) or up to four independent simultaneous digital TV streams (cf. [http://www.nxp.com/acrobat_download/literature/9397/75015302.pdf Philips/NXP SAA7162 product brief]).&lt;br /&gt;
&lt;br /&gt;
In Oct 2006, NXP created a saa7162 product page that includes, amongst other information, an 18 page &amp;quot;preliminary short data sheet&amp;quot; for download:&lt;br /&gt;
[http://www.nxp.com/pip/SAA7162E_V1_R5_G.html SAA7162 Product Description].&lt;br /&gt;
&lt;br /&gt;
The PCI-SIG lists SAA7162 (dual A/V decoder) and SAA7160/SAA7161 (multimedia A/V bridge) as PCIe devices. According to PCIe specs there are two types of PCIe devices; Type 1, which categorize normal PCIe bridge devices, and Type 0, which categorize devices which have a specific/customized programmable interface.  Unfortunately, the PCIe spec is not very detailed when it comes to Type 0 devices, and it is indeed this category that the SAA7160/1/2 reside.&lt;br /&gt;
&lt;br /&gt;
== Saa7162 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a PCI Express bridge with integrated dual stream A/V decoder. The device is a single lane PCIe device opertaion at 2.5G sample/s.&lt;br /&gt;
&lt;br /&gt;
The dual logical Audio/Video decoder support 10 bit A/D conversion, enhanced PAL/NTSC comb filtering, a versatile VBI data processing, more sophisticated scaling alogrithms, support of High Definition component video, picture improvement processing, more robustness with VCR-type signals, and increased audio functionallity like SPDIF In/Out and an intergrated audio sample rate coverter from 32Khz to 44Khz or 48Khz.Each channels has its own silent I2C bus for controlling sensitive tuner devices. One of the channels provides an IR interface.&lt;br /&gt;
&lt;br /&gt;
Aside to the dual A/V decoder, there is a versatile I/O block, featuring PHI, SPI, I2C-bus,32 GPIO lines. The PHI is a fast parallel bus interface. The SPI-bus is a high speed serial bus interface. The two I2C bus interfaces operate at high speed grade.&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a highly intergrated circuit for e.g TV insertion inside PC system. The Muti Standard TV decoder covered all Video color standards like PAL, NTSC and SECAM and Sound standards like Dual FM, NICAM, BTSC and EIAJ, Addtional to the TV decider function a digital IF demodulator, a FM Radio decoder, standard interfaces for digital Video and Audio, Remote control receiver/transmission processing and a high speed programming port allows high intergrated system solutions for muti media application.&lt;br /&gt;
&lt;br /&gt;
=== Saa7162 Driver Development ===&lt;br /&gt;
&lt;br /&gt;
Philips announced in their [http://www.nxp.com/applications/pc_pda/pc_tv/dual_analog_pc_tv_receiver/index.html reference design] that they had already written a Linux driver. In May 2007, they finally sent the code to [http://www.interlink.com.au/rad/quattros Richard Dale] (without an [[NDA]]) and Manu Abraham, who is now writing a GPL'd driver under an [[NDA]] (the terms of which are not widely known). See the [http://www.linuxtv.org/pipermail/linux-dvb/2007-May/017856.html full discussion on linux-dvb].  &lt;br /&gt;
&lt;br /&gt;
While development has progressed, it appears that the information available/provided does not fully document some aspects of this chipset, and hence some areas of development have been problematic.  Unfortunately, it appears that before NXP will consider providing additional assistance towards Linux driver support for the chipset, they wish to determine whether it is worth their while by gaining some measure of the potential future user base that Linux drivers will actually provide.  Representatives from device vendors Azurewave and Hauppauge have outlined that they will try to assist LinuxTV in its effort to obtain more assistance in this matter. [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019452.html] [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019463.html].  &lt;br /&gt;
&lt;br /&gt;
This means that a Linux driver for the Saa7162 is still to be released.  Hopefully the remaining issues with the chipset can be resolved soon and then device level support for PCIe cards incorporating the saa7162 can begin.&lt;br /&gt;
&lt;br /&gt;
'''Current Status (as of Nov 21/08) and link to driver''': http://marc.info/?l=linux-dvb&amp;amp;m=122729999014286&amp;amp;w=2&lt;br /&gt;
&lt;br /&gt;
== Saa7164 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
A more complex IC that incorporates a built-in MPEG2 encoder.  &lt;br /&gt;
&lt;br /&gt;
The NXP Saa7164 integrates up to 8 standalone chips: two IF demodulators, two PAL/NTSC/SECAM decoders, two stereo decoders, plus two multi-format compression engines&lt;br /&gt;
&lt;br /&gt;
[http://www.nxp.com/acrobat/literature/9397/75015870.pdf SAA7164 brochure]&lt;br /&gt;
&lt;br /&gt;
Used in the [[Hauppauge_WinTV-HVR-2250]].&lt;br /&gt;
&lt;br /&gt;
=== Saa7164 driver ===&lt;br /&gt;
&lt;br /&gt;
In September 2009, Steven Toth at [http://kernellabs.com kernellabs] submitted code to the linux kernel mailing list that adds support for the NXP SAA7164 PCIe A/V bridge used by the Hauppauge HVR-2200 and HVR-2250 series of products. See instructions at [[Hauppauge WinTV-HVR-2200]]. Note that support is still  limited to DVB-T / ATSC / QAM digital TV only; there is no analog support yet.&lt;br /&gt;
&lt;br /&gt;
Development is continuing; see http://www.steventoth.net/blog/products/hvr-2250/ and http://www.kernellabs.com.&lt;br /&gt;
&lt;br /&gt;
The Saa7164 driver does not support the Saa7160/61/62 chips.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*&lt;br /&gt;
[[Category:Chipsets]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/NXP_SAA716x</id>
		<title>NXP SAA716x</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/NXP_SAA716x"/>
				<updated>2009-09-15T02:21:38Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: Reorganize sections to avoid driver confusion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A family [[PCIe interface chipsets|PCIe interface chipset]] from [[NXP Semiconductors]].&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
In March 2005, Philips Semiconductors announced &amp;quot;the industry's first integrated PCI Express dual global video and stereo decoder for digital home PC desktops and notebooks&amp;quot; ([http://www.electronicstalk.com/news/phi/phi309.html press release]). The new analog decoder chip, the saa7162, uses the increased bandwidth of the PCI Express bus to capture to two simultaneous analog channels of live tv or baseband video (cf. [http://www-us.semiconductors.philips.com/acrobat/literature/9397/75015389.pdf product flyer]) or up to four independent simultaneous digital TV streams (cf. [http://www.nxp.com/acrobat_download/literature/9397/75015302.pdf Philips/NXP SAA7162 product brief]).&lt;br /&gt;
&lt;br /&gt;
In Oct 2006, NXP created a saa7162 product page that includes, amongst other information, an 18 page &amp;quot;preliminary short data sheet&amp;quot; for download:&lt;br /&gt;
[http://www.nxp.com/pip/SAA7162E_V1_R5_G.html SAA7162 Product Description].&lt;br /&gt;
&lt;br /&gt;
The PCI-SIG lists SAA7162 (dual A/V decoder) and SAA7160/SAA7161 (multimedia A/V bridge) as PCIe devices. According to PCIe specs there are two types of PCIe devices; Type 1, which categorize normal PCIe bridge devices, and Type 0, which categorize devices which have a specific/customized programmable interface.  Unfortunately, the PCIe spec is not very detailed when it comes to Type 0 devices, and it is indeed this category that the SAA7160/1/2 reside.&lt;br /&gt;
&lt;br /&gt;
== Saa7162 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
The SAA7162 is a PCI Express bridge with integrated dual stream A/V decoder. The device is a single lane PCIe device opertaion at 2.5G sample/s.&lt;br /&gt;
&lt;br /&gt;
The dual logical Audio/Video decoder support 10 bit A/D conversion, enhanced PAL/NTSC comb filtering, a versatile VBI data processing, more sophisticated scaling alogrithms, support of High Definition component video, picture improvement processing, more robustness with VCR-type signals, and increased audio functionallity like SPDIF In/Out and an intergrated audio sample rate coverter from 32Khz to 44Khz or 48Khz.Each channels has its own silent I2C bus for controlling sensitive tuner devices. One of the channels provides an IR interface.&lt;br /&gt;
&lt;br /&gt;
Aside to the dual A/V decoder, there is a versatile I/O block, featuring PHI, SPI, I2C-bus,32 GPIO lines. The PHI is a fast parallel bus interface. The SPI-bus is a high speed serial bus interface. The two I2C bus interfaces operate at high speed grade.&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a highly intergrated circuit for e.g TV insertion inside PC system. The Muti Standard TV decoder covered all Video color standards like PAL, NTSC and SECAM and Sound standards like Dual FM, NICAM, BTSC and EIAJ, Addtional to the TV decider function a digital IF demodulator, a FM Radio decoder, standard interfaces for digital Video and Audio, Remote control receiver/transmission processing and a high speed programming port allows high intergrated system solutions for muti media application.&lt;br /&gt;
&lt;br /&gt;
== SAA7162 Driver Development ==&lt;br /&gt;
&lt;br /&gt;
Philips announced in their [http://www.nxp.com/applications/pc_pda/pc_tv/dual_analog_pc_tv_receiver/index.html reference design] that they had already written a Linux driver. In May 2007, they finally sent the code to [http://www.interlink.com.au/rad/quattros Richard Dale] (without an [[NDA]]) and Manu Abraham, who is now writing a GPL'd driver under an [[NDA]] (the terms of which are not widely known). See the [http://www.linuxtv.org/pipermail/linux-dvb/2007-May/017856.html full discussion on linux-dvb].  &lt;br /&gt;
&lt;br /&gt;
While development has progressed, it appears that the information available/provided does not fully document some aspects of this chipset, and hence some areas of development have been problematic.  Unfortunately, it appears that before NXP will consider providing additional assistance towards Linux driver support for the chipset, they wish to determine whether it is worth their while by gaining some measure of the potential future user base that Linux drivers will actually provide.  Representatives from device vendors Azurewave and Hauppauge have outlined that they will try to assist LinuxTV in its effort to obtain more assistance in this matter. [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019452.html] [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019463.html].  &lt;br /&gt;
&lt;br /&gt;
This means that a Linux driver for the saa7162 is still to be released.  Hopefully the remaining issues with the chipset can be resolved soon and then device level support for PCIe cards incorporating the saa7162 can begin.&lt;br /&gt;
&lt;br /&gt;
'''Current Status (as of Nov 21/08) and link to driver''': http://marc.info/?l=linux-dvb&amp;amp;m=122729999014286&amp;amp;w=2&lt;br /&gt;
&lt;br /&gt;
== SAA7164 IC chip information ==&lt;br /&gt;
&lt;br /&gt;
A more complex IC that incorporates a built-in MPEG2 encoder.  &lt;br /&gt;
&lt;br /&gt;
The NXP SAA7164 integrates up to 8 standalone chips: two IF demodulators, two PAL/NTSC/SECAM decoders, two stereo decoders, plus two multi-format compression engines&lt;br /&gt;
&lt;br /&gt;
[http://www.nxp.com/acrobat/literature/9397/75015870.pdf SAA7164 brochure]&lt;br /&gt;
&lt;br /&gt;
Used in the [[Hauppauge_WinTV-HVR-2250]].&lt;br /&gt;
&lt;br /&gt;
=== SAA7164 driver ===&lt;br /&gt;
&lt;br /&gt;
In September 2009, Steven Toth at [http://kernellabs.com kernellabs] submitted code to the linux kernel mailing list that adds support for the NXP SAA7164 PCIe A/V bridge used by the Hauppauge HVR-2200 and HVR-2250 series of products. See instructions at [[Hauppauge WinTV-HVR-2200]]. Note that support is still  limited to DVB-T / ATSC / QAM digital TV only; there is no analog support yet.&lt;br /&gt;
&lt;br /&gt;
Development is continuing; see http://www.steventoth.net/blog/products/hvr-2250/ and http://www.kernellabs.com.&lt;br /&gt;
&lt;br /&gt;
The saa7164 driver does not support the saa7160/61/62 chips.&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*&lt;br /&gt;
[[Category:Chipsets]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/NXP_SAA716x</id>
		<title>NXP SAA716x</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/NXP_SAA716x"/>
				<updated>2009-09-15T02:18:24Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* SAA7164 IC chip information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A family [[PCIe interface chipsets|PCIe interface chipset]] from [[NXP Semiconductors]].  &lt;br /&gt;
&lt;br /&gt;
The SAA7160/SAA7161/SAA7162 IC parts will be supported by the SAA716x kernel driver module (see current status below). &lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
In March 2005, Philips Semiconductors announced &amp;quot;the industry's first integrated PCI Express dual global video and stereo decoder for digital home PC desktops and notebooks&amp;quot; ([http://www.electronicstalk.com/news/phi/phi309.html press release]). The new analog decoder chip, the saa7162, uses the increased bandwidth of the PCI Express bus to capture to two simultaneous analog channels of live tv or baseband video (cf. [http://www-us.semiconductors.philips.com/acrobat/literature/9397/75015389.pdf product flyer]) or up to four independent simultaneous digital TV streams (cf. [http://www.nxp.com/acrobat_download/literature/9397/75015302.pdf Philips/NXP SAA7162 product brief]).&lt;br /&gt;
&lt;br /&gt;
In Oct 2006, NXP created a saa7162 product page that includes, amongst other information, an 18 page &amp;quot;preliminary short data sheet&amp;quot; for download:&lt;br /&gt;
[http://www.nxp.com/pip/SAA7162E_V1_R5_G.html SAA7162 Product Description].&lt;br /&gt;
&lt;br /&gt;
The PCI-SIG lists SAA7162 (dual A/V decoder) and SAA7160/SAA7161 (multimedia A/V bridge) as PCIe devices. According to PCIe specs there are two types of PCIe devices; Type 1, which categorize normal PCIe bridge devices, and Type 0, which categorize devices which have a specific/customized programmable interface.  Unfortunately, the PCIe spec is not very detailed when it comes to Type 0 devices, and it is indeed this category that the SAA7160/1/2 reside.&lt;br /&gt;
&lt;br /&gt;
==Saa7162 IC chip information==&lt;br /&gt;
The SAA7162 is a PCI Express bridge with integrated dual stream A/V decoder. The device is a single lane PCIe device opertaion at 2.5G sample/s.&lt;br /&gt;
&lt;br /&gt;
The dual logical Audio/Video decoder support 10 bit A/D conversion, enhanced PAL/NTSC comb filtering, a versatile VBI data processing, more sophisticated scaling alogrithms, support of High Definition component video, picture improvement processing, more robustness with VCR-type signals, and increased audio functionallity like SPDIF In/Out and an intergrated audio sample rate coverter from 32Khz to 44Khz or 48Khz.Each channels has its own silent I2C bus for controlling sensitive tuner devices. One of the channels provides an IR interface.&lt;br /&gt;
&lt;br /&gt;
Aside to the dual A/V decoder, there is a versatile I/O block, featuring PHI, SPI, I2C-bus,32 GPIO lines. The PHI is a fast parallel bus interface. The SPI-bus is a high speed serial bus interface. The two I2C bus interfaces operate at high speed grade.&lt;br /&gt;
&lt;br /&gt;
The Saa7162 is a highly intergrated circuit for e.g TV insertion inside PC system. The Muti Standard TV decoder covered all Video color standards like PAL, NTSC and SECAM and Sound standards like Dual FM, NICAM, BTSC and EIAJ, Addtional to the TV decider function a digital IF demodulator, a FM Radio decoder, standard interfaces for digital Video and Audio, Remote control receiver/transmission processing and a high speed programming port allows high intergrated system solutions for muti media application.&lt;br /&gt;
&lt;br /&gt;
== SAA7164 IC chip information and driver ==&lt;br /&gt;
&lt;br /&gt;
A more complex IC that incorporates a built-in MPEG2 encoder.  &lt;br /&gt;
&lt;br /&gt;
The NXP SAA7164 integrates up to 8 standalone chips: two IF demodulators, two PAL/NTSC/SECAM decoders, two stereo decoders, plus two multi-format compression engines&lt;br /&gt;
&lt;br /&gt;
[http://www.nxp.com/acrobat/literature/9397/75015870.pdf SAA7164 brochure]&lt;br /&gt;
&lt;br /&gt;
Used in the [[Hauppauge_WinTV-HVR-2250]].&lt;br /&gt;
&lt;br /&gt;
In September 2009, Steven Toth at [http://kernellabs.com kernellabs] submitted code to the linux kernel mailing list that adds support for the NXP SAA7164 PCIe A/V bridge used by the Hauppauge HVR-2200 and HVR-2250 series of products. See instructions at [[Hauppauge WinTV-HVR-2200]]. Note that support is still  limited to DVB-T / ATSC / QAM digital TV only; there is no analog support yet.&lt;br /&gt;
&lt;br /&gt;
Development is continuing; see http://www.steventoth.net/blog/products/hvr-2250/ and http://www.kernellabs.com.&lt;br /&gt;
&lt;br /&gt;
The saa7164 driver does not support the saa7160/61/62 chips.&lt;br /&gt;
&lt;br /&gt;
==Driver Development==&lt;br /&gt;
Philips announced in their [http://www.nxp.com/applications/pc_pda/pc_tv/dual_analog_pc_tv_receiver/index.html reference design] that they had already written a Linux driver. In May 2007, they finally sent the code to [http://www.interlink.com.au/rad/quattros Richard Dale] (without an [[NDA]]) and Manu Abraham, who is now writing a GPL'd driver under an [[NDA]] (the terms of which are not widely known). See the [http://www.linuxtv.org/pipermail/linux-dvb/2007-May/017856.html full discussion on linux-dvb].  &lt;br /&gt;
&lt;br /&gt;
While development has progressed, it appears that the information available/provided does not fully document some aspects of this chipset, and hence some areas of development have been problematic.  Unfortunately, it appears that before NXP will consider providing additional assistance towards Linux driver support for the chipset, they wish to determine whether it is worth their while by gaining some measure of the potential future user base that Linux drivers will actually provide.  Representatives from device vendors Azurewave and Hauppauge have outlined that they will try to assist LinuxTV in its effort to obtain more assistance in this matter. [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019452.html] [http://www.linuxtv.org/pipermail/linux-dvb/2007-August/019463.html].  &lt;br /&gt;
&lt;br /&gt;
This means that a Linux driver for the saa7162 is still yet to be released.  Hopefully the remaining issues with the chipset can be resolved soon and then device level support for PCIe cards incorporating the saa7162 can begin.&lt;br /&gt;
&lt;br /&gt;
'''Current Status (as of Nov 21/08) and link to driver''': http://marc.info/?l=linux-dvb&amp;amp;m=122729999014286&amp;amp;w=2&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*&lt;br /&gt;
[[Category:Chipsets]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Text_capture</id>
		<title>Text capture</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Text_capture"/>
				<updated>2009-05-24T15:09:18Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* ccextractor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://en.wikipedia.org/wiki/Teletext Teletext] is popular in Europe and provides both informational pages and captions or subtitles to television programs. In 1992, teletext was provided in 18 countries. &lt;br /&gt;
&lt;br /&gt;
In North America, [http://www.fcc.gov/cgb/dro/caption.html US federal law] requires [http://www.robson.org/capfaq/ closed captioning] of all non-exempt television programs starting in 2006. Some broadcasters are implementing [http://www.robson.org/capfaq/technical.html#XDS XDS], or Extended Data Services.&lt;br /&gt;
&lt;br /&gt;
TV capture chipsets implement teletext and closed captioning in different ways, and the free software code to support text capture is still missing or incomplete for some chipsets.&lt;br /&gt;
&lt;br /&gt;
===Analog television===&lt;br /&gt;
The [http://en.wikipedia.org/wiki/VBI vertical blanking interval (VBI)] is an interval in a television signal that temporarily suspends transmission of the signal for the electron gun to move back up to the first line of the television screen to trace the next screen field. The vertical blanking interval can be used to carry data, since anything sent during the VBI would naturally not be displayed; various test signals, closed captioning, and other digital data can be sent during this time period.&lt;br /&gt;
&lt;br /&gt;
In the PAL standard, [http://en.wikipedia.org/wiki/Teletext Teletext] and Caption data is digitally encoded in the VBI on lines 17 through 20.&lt;br /&gt;
&lt;br /&gt;
In North America, which follows the NTSC standard, [http://www.robson.org/capfaq/ closed captioning] uses line 21 of the VBI.  &lt;br /&gt;
&lt;br /&gt;
===Digital television (DTV) ===&lt;br /&gt;
====DVB====&lt;br /&gt;
The European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The DVB standard transmits sliced VBI data in a separate elementary stream.&lt;br /&gt;
&lt;br /&gt;
====ATSC====&lt;br /&gt;
The [http://www.atsc.org/standards/a53.html A/53 ATSC Digital Television Standard] covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B]. See the [http://en.wikipedia.org/wiki/EIA-708 EIA-708 Wikipedia entry] and [http://www.robson.org/capfaq/dtv.html Digital Television Closed Captioning FAQ]for details.&lt;br /&gt;
&lt;br /&gt;
EIA-708 specifies the transmission of CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex from there.  A freestanding CC capture application would still need to tune in and choose a program ID.  To complicate matters further,&lt;br /&gt;
EIA-708 allows both old style EIA-608-compatible closed caption data as well as the newer DTVCC.&lt;br /&gt;
&lt;br /&gt;
Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Devices Usable With Text==&lt;br /&gt;
===bt8x8 devices===&lt;br /&gt;
Cards based on the bt8x8 chip (cf. [[bttv devices (bt848, bt878)]] have excellent text capture capability for both PAL/SECAM and NTSC. &lt;br /&gt;
&lt;br /&gt;
Commandline output is provided by both ntsc-cc and the test/capture utility in zvbi.&lt;br /&gt;
&lt;br /&gt;
===cx88 devices===&lt;br /&gt;
The latest improvements on vbi support for cx88-based cards, aside from kernel-related stuff and modules reorganization, were made by Tom Zoerner in March of 2004. The README.cx88 still says: &amp;quot;some code present. Doesn't crash any more, but also doesn't work yet ...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Tim sketched out exactly what needs to be done in this [http://marc.theaimsgroup.com/?l=linux-video&amp;amp;m=108518568124567&amp;amp;w=2 22 May 2004 e-mail].&lt;br /&gt;
&lt;br /&gt;
As of Kernel 2.6.16-r7, the cx88 driver (as tested with a pcHDTV 3000 card), captures some VBI data, which is unusable for NTSC closed captioning as only 1150 or so bytes per line of VBI data have valid values and the rest of the 2048 byte line contains unchanging garbage data. There is a [http://www.spinics.net/lists/vfl/msg26029.html patch] being discussed on the video4linux mailing list that likely solved this problem. While the feature is not documented, closed captioning on cx88 most likely works with current (2.6.19) kernels.&lt;br /&gt;
&lt;br /&gt;
In the meantime, nxtvepg (which uses vbi information) is working on cx88 PAL tuners, cf. [http://nxtvepg.sourceforge.net/download.html#requirements system requirements].&lt;br /&gt;
&lt;br /&gt;
The latest test with kernel 2.6.27.2, NTSC closed caption is working, with a small patch published by Rafael Diniz in a [http://marc.info/?l=linux-video&amp;amp;m=122469689710030&amp;amp;w=2 22 October 2008 email]. This patch hopefully will be applied soon.&lt;br /&gt;
&lt;br /&gt;
===ivtv devices===&lt;br /&gt;
For details on [[Ivtv devices (cx23415, cx23416)| ivtv devices]], see the [http://ivtvdriver.org ivtv] wiki.&lt;br /&gt;
&lt;br /&gt;
'''IVTV''' provides generic VBI data via a VBI Linux device.  As EIA-608 closed caption data is among the VBI data, you can get it from the VBI device.  '''IVTV''' provides the VBI data in two different formats -- raw and sliced.  the raw mode is all of the VBI lines, with 720 luminosity samples line.  The sliced format has it decoded into data bytes, with selectable VBI lines.&lt;br /&gt;
&lt;br /&gt;
In addition, '''IVTV''' can embed VBI data in the MPEG stream you get from the video Linux device.  It embeds it in Private Stream 1 of the MPEG stream.  This is not a standard format; it is an IVTV invention.  A few programs, including '''mythtv''' and '''ccextractor''' know the IVTV embedded VBI format with respect to EIA-608 closed captioning.  Bryan Henderson (bryanh@giraffe-data.com) has a patch (May 2008) for Mplayer that makes it do so also.&lt;br /&gt;
&lt;br /&gt;
The README.vbi in a current ivtv release has lots of details.&lt;br /&gt;
&lt;br /&gt;
With a PVR-250, '''IVTV''' provides the VBI device and controls to put it in either raw mode or sliced CC.  (Based on my own experimentation - Bryan Henderson).&lt;br /&gt;
&lt;br /&gt;
Older '''IVTV''' (Before version 0.10) crashes when you read the VBI device if you put the device into sliced mode and you load '''IVTV''' with the autoload=0 option.  Bryan Henderson (bryanh@giraffe-data.com) has a fix for this divide by zero bug.&lt;br /&gt;
&lt;br /&gt;
This [http://www.gossamer-threads.com/lists/ivtv/devel/19383 exchange] on the '''IVTV''' mailing list suggests it can provide CC, VPS and WSS data with the PVR-350, but that hardware limitations prevent teletext. &lt;br /&gt;
&lt;br /&gt;
Similarly, this [http://www.gossamer-threads.com/lists/ivtv/devel/16665?search_string=vbi;#16665 exchange] from January 2005 discusses an ongoing project adding vbi function for PVR-x50. Finally, in this [http://www.gossamer-threads.com/lists/ivtv/devel/19376 exchange] from April 2005, Chris Kennedy discusses vbi with pvr150/500.&lt;br /&gt;
&lt;br /&gt;
In Linux v2.6.14-rc2, Mauro Carvalho Chehab submitted an &amp;quot;experimental Sliced VBI API support for v4l&amp;quot; patch, which apparently uses the hardware bit slicer in the ivtv driver. I take it this means text capture is now improved for the Hauppauge PVR150/250/350/500 cards.&lt;br /&gt;
&lt;br /&gt;
===saa713x devices===&lt;br /&gt;
Cards based on saa713x chips (cf. [[saa713x devices]]) have excellent text capture capability under PAL/SECAM. Support for NTSC closed captioning is now available in libzvbi, including the freestanding [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] from libzvbi 0.2.17, a drop-in replacement for xawtv's [[Text capture#ntsc-cc |ntsc-cc]]. &lt;br /&gt;
&lt;br /&gt;
The CVS version of ntsc-cc in xawtv that includes the libzvbi patch is still not released, pending some final quality tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
===alevt===&lt;br /&gt;
[http://www.goron.de/~froese/ AleVT] is a teletext/videotext decoder and browser for the bttv driver (/dev/vbi) and X11.&lt;br /&gt;
[http://xawdecode.sourceforge.net/ XdTV] -- XdTV interacts with AleVT for Teletext and Nxtvepg for NextView.&lt;br /&gt;
&lt;br /&gt;
===ccextractor===&lt;br /&gt;
&lt;br /&gt;
[http://ccextractor.sourceforge.net '''ccextractor'''] can extract closed captions from a variety of kinds of input streams and render the information in various forms.  It understands as input DVB and IVTV format, and can produce as output SRT or SAMI (standard subtitle file formats) or raw captions in DVB format.&lt;br /&gt;
&lt;br /&gt;
ccextractor is also excellent for extracting the closed captioning from DVDs and DVD images (such as the cdr images created by OSX's DiskImage utility) or ts files. The software is still in beta and the developers are active, so help them improve the application.&lt;br /&gt;
&lt;br /&gt;
===gstreamer===&lt;br /&gt;
The application gstreamer works with closed captioning (they also mention some tweaks for Canadian English and French television); see [http://cvs.freedesktop.org/gstreamer/gst-plugins/gst/vbidec/ Freedesktop's repository].&lt;br /&gt;
&lt;br /&gt;
===MPlayer===&lt;br /&gt;
Scott Larson has (23 September 2005) written a [http://home.pacifier.com/~scowl/eia708.patch patch] for '''mplayer''' to display EIA-708 closed captioning (e.g. from a digital TV broadcast).  Specifically, the patch uses the EIA-608 compatible subformat; it cannot use the DTVCC data.  See the [http://www.pchdtv.com/forum/viewtopic.php?t=986&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight=closed+captioning&amp;amp;start=0 pchdtv forum] for more information.&lt;br /&gt;
&lt;br /&gt;
Bryan Henderson (bryanh@giraffe-data.com) has (May 2008) written a patch for '''mplayer''' to make it do closed captioning based on IVTV MPEG embedded VBI (EIA608) data in its MPEG input.&lt;br /&gt;
&lt;br /&gt;
===mtt===&lt;br /&gt;
A teletext (PAL) browser with a Motif-based GUI and a console mode. In Debian, mtt is part of the motv package.&lt;br /&gt;
&lt;br /&gt;
===Mythtv===&lt;br /&gt;
&lt;br /&gt;
Mythtv's native player can display closed captions encoded into an MPEG-2 stream in the IVTV format.&lt;br /&gt;
&lt;br /&gt;
===nxtvepg===&lt;br /&gt;
The [http://nxtvepg.sourceforge.net/index.html Nextview EPG decoder and browser] is an Electronic TV Programme Guide for the analog domain (as opposed to the various digital EPGs that come with most digital broadcasts). It allows you to decode and browse TV programme listings for most of the major networks in Germany, Austria, France and Switzerland. The EPG information is read from /dev/vbi.&lt;br /&gt;
&lt;br /&gt;
===ntsc-cc===&lt;br /&gt;
The application ntsc-cc handles closed captioning on [[bttv devices (bt848, bt878)]] only, because it implements only the old v4l API. The saa7134 chip uses other sample rates.&lt;br /&gt;
&lt;br /&gt;
For ntsc-cc to work, you typically need to be running an application for viewing or recording television, such as xawtv and mencoder. If no such application is running, ntsc-cc tends to produce garbled output. &lt;br /&gt;
&lt;br /&gt;
An updated version of ntsc-cc is included in zvbi; see [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] below.&lt;br /&gt;
&lt;br /&gt;
===tvtime===&lt;br /&gt;
tvtime displays closed captioning with [[bttv devices (bt848, bt878)|bttv]] and [[saa713x devices|saa7134]] cards (also others?). &lt;br /&gt;
&lt;br /&gt;
In early 2004, Kevin Ko wrote a [http://www.princeton.edu/~kko/tvtime/vbi_lock_0.2.patch patch with useful comments] to tvtime's vbidata.c; see [http://www.princeton.edu/~kko/tvtime/ his detailed account] and [https://sourceforge.net/tracker/?func=detail&amp;amp;atid=506989&amp;amp;aid=884449&amp;amp;group_id=64301 the tvtime bugreport].&lt;br /&gt;
&lt;br /&gt;
===zapzilla===&lt;br /&gt;
[http://zapping.sourceforge.net Zapping] has a built-in teletext viewer called [http://zapping.sourceforge.net/cgi-bin/view/Main/Zapzilla Zapzilla]. &lt;br /&gt;
&lt;br /&gt;
In addition, Zapping provides subtitle overlay through the closed captioning decoder built into libzvbi. &lt;br /&gt;
&lt;br /&gt;
===zvbi===&lt;br /&gt;
The [http://zapping.sourceforge.net/ZVBI zvbi library] offers functions to capture and decode raw VBI data. It works with all drivers using the V4L or V4L2 raw VBI API, the FreeBSD BKTR driver, Linux DVB drivers, and it can read VBI data from a VBI proxy to share V4L and V4L2 VBI devices between multiple applications. As of version 0.2.32 ATSC is also supported. I don't know if the V4L2 sliced API is supported yet (please add if you know).&lt;br /&gt;
&lt;br /&gt;
Higher level functions such as to display or record Teletext and Closed Caption, or to extract network names from Teletext and XDS are also included.&lt;br /&gt;
&lt;br /&gt;
The [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome zvbi library] understands the European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
The European DVB standard transmits sliced VBI data in a separate elementary stream. Current drivers in libzvbi provide full support.&lt;br /&gt;
&lt;br /&gt;
It can read VBI PES packets from Linux DVB devices and extract Teletext, VPS, WSS and Caption data. A demultiplexer is available to extract VBI data from DVB MPEG-2 program streams and a multiplexer to convert sliced VBI data, e. g. captured from analog devices, to DVB format. For details see the [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Documentation zvbi documentation]. The test/capture utility in the source tarball can demonstrate these capabilities.&lt;br /&gt;
&lt;br /&gt;
The zvbi library currently does not understand the American standard [http://www.atsc.org ATSC A/53] &amp;quot;ATSC Digital Television Standard&amp;quot; which also covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B].&lt;br /&gt;
&lt;br /&gt;
Michael Schimek writes that A/53 specifies the transmission of &amp;quot;CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex in software.  Libzvbi does something similar for DVB, so it shouldn't be hard to implement, if it hasn't been done already to extract DVD caption. A freestanding CC capture application would still need to tune in and choose a program ID; that's beyond the scope of libzvbi.&lt;br /&gt;
&lt;br /&gt;
To complicate matters further A/53 may transmit old style caption EIA-608 as well as the newer &amp;quot;digital caption&amp;quot; EIA-708. I don't have enough information to properly implement EIA-708 caption overlay (nor is it useful for me until Zapping goes digital) but to write an ntsc-dtvcc it might suffice.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==== zvbi-ntsc-cc ====&lt;br /&gt;
:Included in libzvbi 0.2.17 onwards (in Debian, it's it the zvbi package). Is built on and preserves the functionality of xawtv's ntsc-cc, but also handles closed captioning for cards based on saa713x chips (cf. [[saa713x devices]]).&lt;br /&gt;
&lt;br /&gt;
:Unlike [[Text capture#ntsc-cc |ntsc-cc]], zvbi-ntsc-cc does not require you to run another application for viewing or recording.&lt;br /&gt;
&lt;br /&gt;
==== zvbi-atsc-cc ====&lt;br /&gt;
:Libzvbi 0.2.32 added an improved version of zvbi-ntsc-cc which can record EIA-608 and EIA-708 caption from ATSC devices.&lt;br /&gt;
&lt;br /&gt;
==Technical background==&lt;br /&gt;
===Displaying captured text===&lt;br /&gt;
To get formatted output for overlay on the television image, Michael Schimek's decoder (part of libzvbi) works like a terminal emulator, printing caption into virtual screen memory.  As long as you have &amp;quot;pop on&amp;quot; style caption, streaming is easy.  For &amp;quot;roll up&amp;quot; caption it needs a more character or line oriented interface.  Perhaps it would suffice to call the client and clear the screen before any vertical cursor motions and scrolling.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
Recommended applications for testing under PAL/SECAM are mtt, zapping/zapzilla and alevt/d.&lt;br /&gt;
&lt;br /&gt;
For lower-level testing, use the utilities in the test/ directory of the zvbi tarball, available on [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Download#Source_Code zvbi's project page]; these are actively maintained.&lt;br /&gt;
&lt;br /&gt;
The test/capture utility currently just dumps printable characters on stdout. This output needs to be &amp;quot;sliced&amp;quot;. Sliced VBI is the data transmitted on each scan line.  It still contains multiple logical streams, parity bits and control codes.  In libzvbi &amp;quot;formatting&amp;quot; takes one stream, converts characters to Unicode and interprets control codes, giving one page of text for display.  An export function would convert the text to ASCII.&lt;br /&gt;
&lt;br /&gt;
You may also use test/capture utility from the zvbi library to display printable closed caption data.&lt;br /&gt;
 capture --dump-cc&lt;br /&gt;
&lt;br /&gt;
To visualize the Vertical Blanking Interval on NTSC, issue&lt;br /&gt;
&lt;br /&gt;
 ntsc-cc -d /dev/vbi -c -w -r 11&lt;br /&gt;
&lt;br /&gt;
Both bttv and saa7134 cards show orderly signals, and cx88 (as of Kernel 2.6.16-r7) shows valid data for the first part of the line, with noise on the rest of the line.&lt;br /&gt;
&lt;br /&gt;
In the zvbi test/ suite, osc similarly visualizes. The test/osc utility is more useful, since it displays which row and line are being graphed and lets you change rows with the arrow keys. NTSC closed captioning should appear on row 11, line 21.&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Text_capture</id>
		<title>Text capture</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Text_capture"/>
				<updated>2009-05-24T15:08:33Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* ccextractor */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://en.wikipedia.org/wiki/Teletext Teletext] is popular in Europe and provides both informational pages and captions or subtitles to television programs. In 1992, teletext was provided in 18 countries. &lt;br /&gt;
&lt;br /&gt;
In North America, [http://www.fcc.gov/cgb/dro/caption.html US federal law] requires [http://www.robson.org/capfaq/ closed captioning] of all non-exempt television programs starting in 2006. Some broadcasters are implementing [http://www.robson.org/capfaq/technical.html#XDS XDS], or Extended Data Services.&lt;br /&gt;
&lt;br /&gt;
TV capture chipsets implement teletext and closed captioning in different ways, and the free software code to support text capture is still missing or incomplete for some chipsets.&lt;br /&gt;
&lt;br /&gt;
===Analog television===&lt;br /&gt;
The [http://en.wikipedia.org/wiki/VBI vertical blanking interval (VBI)] is an interval in a television signal that temporarily suspends transmission of the signal for the electron gun to move back up to the first line of the television screen to trace the next screen field. The vertical blanking interval can be used to carry data, since anything sent during the VBI would naturally not be displayed; various test signals, closed captioning, and other digital data can be sent during this time period.&lt;br /&gt;
&lt;br /&gt;
In the PAL standard, [http://en.wikipedia.org/wiki/Teletext Teletext] and Caption data is digitally encoded in the VBI on lines 17 through 20.&lt;br /&gt;
&lt;br /&gt;
In North America, which follows the NTSC standard, [http://www.robson.org/capfaq/ closed captioning] uses line 21 of the VBI.  &lt;br /&gt;
&lt;br /&gt;
===Digital television (DTV) ===&lt;br /&gt;
====DVB====&lt;br /&gt;
The European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The DVB standard transmits sliced VBI data in a separate elementary stream.&lt;br /&gt;
&lt;br /&gt;
====ATSC====&lt;br /&gt;
The [http://www.atsc.org/standards/a53.html A/53 ATSC Digital Television Standard] covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B]. See the [http://en.wikipedia.org/wiki/EIA-708 EIA-708 Wikipedia entry] and [http://www.robson.org/capfaq/dtv.html Digital Television Closed Captioning FAQ]for details.&lt;br /&gt;
&lt;br /&gt;
EIA-708 specifies the transmission of CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex from there.  A freestanding CC capture application would still need to tune in and choose a program ID.  To complicate matters further,&lt;br /&gt;
EIA-708 allows both old style EIA-608-compatible closed caption data as well as the newer DTVCC.&lt;br /&gt;
&lt;br /&gt;
Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Devices Usable With Text==&lt;br /&gt;
===bt8x8 devices===&lt;br /&gt;
Cards based on the bt8x8 chip (cf. [[bttv devices (bt848, bt878)]] have excellent text capture capability for both PAL/SECAM and NTSC. &lt;br /&gt;
&lt;br /&gt;
Commandline output is provided by both ntsc-cc and the test/capture utility in zvbi.&lt;br /&gt;
&lt;br /&gt;
===cx88 devices===&lt;br /&gt;
The latest improvements on vbi support for cx88-based cards, aside from kernel-related stuff and modules reorganization, were made by Tom Zoerner in March of 2004. The README.cx88 still says: &amp;quot;some code present. Doesn't crash any more, but also doesn't work yet ...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Tim sketched out exactly what needs to be done in this [http://marc.theaimsgroup.com/?l=linux-video&amp;amp;m=108518568124567&amp;amp;w=2 22 May 2004 e-mail].&lt;br /&gt;
&lt;br /&gt;
As of Kernel 2.6.16-r7, the cx88 driver (as tested with a pcHDTV 3000 card), captures some VBI data, which is unusable for NTSC closed captioning as only 1150 or so bytes per line of VBI data have valid values and the rest of the 2048 byte line contains unchanging garbage data. There is a [http://www.spinics.net/lists/vfl/msg26029.html patch] being discussed on the video4linux mailing list that likely solved this problem. While the feature is not documented, closed captioning on cx88 most likely works with current (2.6.19) kernels.&lt;br /&gt;
&lt;br /&gt;
In the meantime, nxtvepg (which uses vbi information) is working on cx88 PAL tuners, cf. [http://nxtvepg.sourceforge.net/download.html#requirements system requirements].&lt;br /&gt;
&lt;br /&gt;
The latest test with kernel 2.6.27.2, NTSC closed caption is working, with a small patch published by Rafael Diniz in a [http://marc.info/?l=linux-video&amp;amp;m=122469689710030&amp;amp;w=2 22 October 2008 email]. This patch hopefully will be applied soon.&lt;br /&gt;
&lt;br /&gt;
===ivtv devices===&lt;br /&gt;
For details on [[Ivtv devices (cx23415, cx23416)| ivtv devices]], see the [http://ivtvdriver.org ivtv] wiki.&lt;br /&gt;
&lt;br /&gt;
'''IVTV''' provides generic VBI data via a VBI Linux device.  As EIA-608 closed caption data is among the VBI data, you can get it from the VBI device.  '''IVTV''' provides the VBI data in two different formats -- raw and sliced.  the raw mode is all of the VBI lines, with 720 luminosity samples line.  The sliced format has it decoded into data bytes, with selectable VBI lines.&lt;br /&gt;
&lt;br /&gt;
In addition, '''IVTV''' can embed VBI data in the MPEG stream you get from the video Linux device.  It embeds it in Private Stream 1 of the MPEG stream.  This is not a standard format; it is an IVTV invention.  A few programs, including '''mythtv''' and '''ccextractor''' know the IVTV embedded VBI format with respect to EIA-608 closed captioning.  Bryan Henderson (bryanh@giraffe-data.com) has a patch (May 2008) for Mplayer that makes it do so also.&lt;br /&gt;
&lt;br /&gt;
The README.vbi in a current ivtv release has lots of details.&lt;br /&gt;
&lt;br /&gt;
With a PVR-250, '''IVTV''' provides the VBI device and controls to put it in either raw mode or sliced CC.  (Based on my own experimentation - Bryan Henderson).&lt;br /&gt;
&lt;br /&gt;
Older '''IVTV''' (Before version 0.10) crashes when you read the VBI device if you put the device into sliced mode and you load '''IVTV''' with the autoload=0 option.  Bryan Henderson (bryanh@giraffe-data.com) has a fix for this divide by zero bug.&lt;br /&gt;
&lt;br /&gt;
This [http://www.gossamer-threads.com/lists/ivtv/devel/19383 exchange] on the '''IVTV''' mailing list suggests it can provide CC, VPS and WSS data with the PVR-350, but that hardware limitations prevent teletext. &lt;br /&gt;
&lt;br /&gt;
Similarly, this [http://www.gossamer-threads.com/lists/ivtv/devel/16665?search_string=vbi;#16665 exchange] from January 2005 discusses an ongoing project adding vbi function for PVR-x50. Finally, in this [http://www.gossamer-threads.com/lists/ivtv/devel/19376 exchange] from April 2005, Chris Kennedy discusses vbi with pvr150/500.&lt;br /&gt;
&lt;br /&gt;
In Linux v2.6.14-rc2, Mauro Carvalho Chehab submitted an &amp;quot;experimental Sliced VBI API support for v4l&amp;quot; patch, which apparently uses the hardware bit slicer in the ivtv driver. I take it this means text capture is now improved for the Hauppauge PVR150/250/350/500 cards.&lt;br /&gt;
&lt;br /&gt;
===saa713x devices===&lt;br /&gt;
Cards based on saa713x chips (cf. [[saa713x devices]]) have excellent text capture capability under PAL/SECAM. Support for NTSC closed captioning is now available in libzvbi, including the freestanding [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] from libzvbi 0.2.17, a drop-in replacement for xawtv's [[Text capture#ntsc-cc |ntsc-cc]]. &lt;br /&gt;
&lt;br /&gt;
The CVS version of ntsc-cc in xawtv that includes the libzvbi patch is still not released, pending some final quality tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
===alevt===&lt;br /&gt;
[http://www.goron.de/~froese/ AleVT] is a teletext/videotext decoder and browser for the bttv driver (/dev/vbi) and X11.&lt;br /&gt;
[http://xawdecode.sourceforge.net/ XdTV] -- XdTV interacts with AleVT for Teletext and Nxtvepg for NextView.&lt;br /&gt;
&lt;br /&gt;
===ccextractor===&lt;br /&gt;
&lt;br /&gt;
[http://ccextractor.sourceforge.net '''ccextractor'''] can extract closed captions from a variety of kinds of input streams and render the information in various forms.  It understands as input DVB and IVTV format, and can produce as output SRT or SAMI (standard subtitle file formats) or raw captions in DVB format.&lt;br /&gt;
&lt;br /&gt;
ccextractor is also excellent for extracting the closed captioning from DVDs and DVD images (such as the cdr images created by OSX's DiskImage utility). The software is still in beta and the developers are active, so help them improve the application.&lt;br /&gt;
&lt;br /&gt;
===gstreamer===&lt;br /&gt;
The application gstreamer works with closed captioning (they also mention some tweaks for Canadian English and French television); see [http://cvs.freedesktop.org/gstreamer/gst-plugins/gst/vbidec/ Freedesktop's repository].&lt;br /&gt;
&lt;br /&gt;
===MPlayer===&lt;br /&gt;
Scott Larson has (23 September 2005) written a [http://home.pacifier.com/~scowl/eia708.patch patch] for '''mplayer''' to display EIA-708 closed captioning (e.g. from a digital TV broadcast).  Specifically, the patch uses the EIA-608 compatible subformat; it cannot use the DTVCC data.  See the [http://www.pchdtv.com/forum/viewtopic.php?t=986&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight=closed+captioning&amp;amp;start=0 pchdtv forum] for more information.&lt;br /&gt;
&lt;br /&gt;
Bryan Henderson (bryanh@giraffe-data.com) has (May 2008) written a patch for '''mplayer''' to make it do closed captioning based on IVTV MPEG embedded VBI (EIA608) data in its MPEG input.&lt;br /&gt;
&lt;br /&gt;
===mtt===&lt;br /&gt;
A teletext (PAL) browser with a Motif-based GUI and a console mode. In Debian, mtt is part of the motv package.&lt;br /&gt;
&lt;br /&gt;
===Mythtv===&lt;br /&gt;
&lt;br /&gt;
Mythtv's native player can display closed captions encoded into an MPEG-2 stream in the IVTV format.&lt;br /&gt;
&lt;br /&gt;
===nxtvepg===&lt;br /&gt;
The [http://nxtvepg.sourceforge.net/index.html Nextview EPG decoder and browser] is an Electronic TV Programme Guide for the analog domain (as opposed to the various digital EPGs that come with most digital broadcasts). It allows you to decode and browse TV programme listings for most of the major networks in Germany, Austria, France and Switzerland. The EPG information is read from /dev/vbi.&lt;br /&gt;
&lt;br /&gt;
===ntsc-cc===&lt;br /&gt;
The application ntsc-cc handles closed captioning on [[bttv devices (bt848, bt878)]] only, because it implements only the old v4l API. The saa7134 chip uses other sample rates.&lt;br /&gt;
&lt;br /&gt;
For ntsc-cc to work, you typically need to be running an application for viewing or recording television, such as xawtv and mencoder. If no such application is running, ntsc-cc tends to produce garbled output. &lt;br /&gt;
&lt;br /&gt;
An updated version of ntsc-cc is included in zvbi; see [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] below.&lt;br /&gt;
&lt;br /&gt;
===tvtime===&lt;br /&gt;
tvtime displays closed captioning with [[bttv devices (bt848, bt878)|bttv]] and [[saa713x devices|saa7134]] cards (also others?). &lt;br /&gt;
&lt;br /&gt;
In early 2004, Kevin Ko wrote a [http://www.princeton.edu/~kko/tvtime/vbi_lock_0.2.patch patch with useful comments] to tvtime's vbidata.c; see [http://www.princeton.edu/~kko/tvtime/ his detailed account] and [https://sourceforge.net/tracker/?func=detail&amp;amp;atid=506989&amp;amp;aid=884449&amp;amp;group_id=64301 the tvtime bugreport].&lt;br /&gt;
&lt;br /&gt;
===zapzilla===&lt;br /&gt;
[http://zapping.sourceforge.net Zapping] has a built-in teletext viewer called [http://zapping.sourceforge.net/cgi-bin/view/Main/Zapzilla Zapzilla]. &lt;br /&gt;
&lt;br /&gt;
In addition, Zapping provides subtitle overlay through the closed captioning decoder built into libzvbi. &lt;br /&gt;
&lt;br /&gt;
===zvbi===&lt;br /&gt;
The [http://zapping.sourceforge.net/ZVBI zvbi library] offers functions to capture and decode raw VBI data. It works with all drivers using the V4L or V4L2 raw VBI API, the FreeBSD BKTR driver, Linux DVB drivers, and it can read VBI data from a VBI proxy to share V4L and V4L2 VBI devices between multiple applications. As of version 0.2.32 ATSC is also supported. I don't know if the V4L2 sliced API is supported yet (please add if you know).&lt;br /&gt;
&lt;br /&gt;
Higher level functions such as to display or record Teletext and Closed Caption, or to extract network names from Teletext and XDS are also included.&lt;br /&gt;
&lt;br /&gt;
The [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome zvbi library] understands the European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
The European DVB standard transmits sliced VBI data in a separate elementary stream. Current drivers in libzvbi provide full support.&lt;br /&gt;
&lt;br /&gt;
It can read VBI PES packets from Linux DVB devices and extract Teletext, VPS, WSS and Caption data. A demultiplexer is available to extract VBI data from DVB MPEG-2 program streams and a multiplexer to convert sliced VBI data, e. g. captured from analog devices, to DVB format. For details see the [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Documentation zvbi documentation]. The test/capture utility in the source tarball can demonstrate these capabilities.&lt;br /&gt;
&lt;br /&gt;
The zvbi library currently does not understand the American standard [http://www.atsc.org ATSC A/53] &amp;quot;ATSC Digital Television Standard&amp;quot; which also covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B].&lt;br /&gt;
&lt;br /&gt;
Michael Schimek writes that A/53 specifies the transmission of &amp;quot;CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex in software.  Libzvbi does something similar for DVB, so it shouldn't be hard to implement, if it hasn't been done already to extract DVD caption. A freestanding CC capture application would still need to tune in and choose a program ID; that's beyond the scope of libzvbi.&lt;br /&gt;
&lt;br /&gt;
To complicate matters further A/53 may transmit old style caption EIA-608 as well as the newer &amp;quot;digital caption&amp;quot; EIA-708. I don't have enough information to properly implement EIA-708 caption overlay (nor is it useful for me until Zapping goes digital) but to write an ntsc-dtvcc it might suffice.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==== zvbi-ntsc-cc ====&lt;br /&gt;
:Included in libzvbi 0.2.17 onwards (in Debian, it's it the zvbi package). Is built on and preserves the functionality of xawtv's ntsc-cc, but also handles closed captioning for cards based on saa713x chips (cf. [[saa713x devices]]).&lt;br /&gt;
&lt;br /&gt;
:Unlike [[Text capture#ntsc-cc |ntsc-cc]], zvbi-ntsc-cc does not require you to run another application for viewing or recording.&lt;br /&gt;
&lt;br /&gt;
==== zvbi-atsc-cc ====&lt;br /&gt;
:Libzvbi 0.2.32 added an improved version of zvbi-ntsc-cc which can record EIA-608 and EIA-708 caption from ATSC devices.&lt;br /&gt;
&lt;br /&gt;
==Technical background==&lt;br /&gt;
===Displaying captured text===&lt;br /&gt;
To get formatted output for overlay on the television image, Michael Schimek's decoder (part of libzvbi) works like a terminal emulator, printing caption into virtual screen memory.  As long as you have &amp;quot;pop on&amp;quot; style caption, streaming is easy.  For &amp;quot;roll up&amp;quot; caption it needs a more character or line oriented interface.  Perhaps it would suffice to call the client and clear the screen before any vertical cursor motions and scrolling.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
Recommended applications for testing under PAL/SECAM are mtt, zapping/zapzilla and alevt/d.&lt;br /&gt;
&lt;br /&gt;
For lower-level testing, use the utilities in the test/ directory of the zvbi tarball, available on [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Download#Source_Code zvbi's project page]; these are actively maintained.&lt;br /&gt;
&lt;br /&gt;
The test/capture utility currently just dumps printable characters on stdout. This output needs to be &amp;quot;sliced&amp;quot;. Sliced VBI is the data transmitted on each scan line.  It still contains multiple logical streams, parity bits and control codes.  In libzvbi &amp;quot;formatting&amp;quot; takes one stream, converts characters to Unicode and interprets control codes, giving one page of text for display.  An export function would convert the text to ASCII.&lt;br /&gt;
&lt;br /&gt;
You may also use test/capture utility from the zvbi library to display printable closed caption data.&lt;br /&gt;
 capture --dump-cc&lt;br /&gt;
&lt;br /&gt;
To visualize the Vertical Blanking Interval on NTSC, issue&lt;br /&gt;
&lt;br /&gt;
 ntsc-cc -d /dev/vbi -c -w -r 11&lt;br /&gt;
&lt;br /&gt;
Both bttv and saa7134 cards show orderly signals, and cx88 (as of Kernel 2.6.16-r7) shows valid data for the first part of the line, with noise on the rest of the line.&lt;br /&gt;
&lt;br /&gt;
In the zvbi test/ suite, osc similarly visualizes. The test/osc utility is more useful, since it displays which row and line are being graphed and lets you change rows with the arrow keys. NTSC closed captioning should appear on row 11, line 21.&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Technology]]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Text_capture</id>
		<title>Text capture</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Text_capture"/>
				<updated>2009-05-02T15:20:50Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* zvbi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://en.wikipedia.org/wiki/Teletext Teletext] is popular in Europe and provides both informational pages and captions or subtitles to television programs. In 1992, teletext was provided in 18 countries. &lt;br /&gt;
&lt;br /&gt;
In North America, [http://www.fcc.gov/cgb/dro/caption.html US federal law] requires [http://www.robson.org/capfaq/ closed captioning] of all non-exempt television programs starting in 2006. Some broadcasters are implementing [http://www.robson.org/capfaq/technical.html#XDS XDS], or Extended Data Services.&lt;br /&gt;
&lt;br /&gt;
TV capture chipsets implement teletext and closed captioning in different ways, and the free software code to support text capture is still missing or incomplete for some chipsets.&lt;br /&gt;
&lt;br /&gt;
===Analog television===&lt;br /&gt;
The [http://en.wikipedia.org/wiki/VBI vertical blanking interval (VBI)] is an interval in a television signal that temporarily suspends transmission of the signal for the electron gun to move back up to the first line of the television screen to trace the next screen field. The vertical blanking interval can be used to carry data, since anything sent during the VBI would naturally not be displayed; various test signals, closed captioning, and other digital data can be sent during this time period.&lt;br /&gt;
&lt;br /&gt;
In the PAL standard, [http://en.wikipedia.org/wiki/Teletext Teletext] and Caption data is digitally encoded in the VBI on lines 17 through 20.&lt;br /&gt;
&lt;br /&gt;
In North America, which follows the NTSC standard, [http://www.robson.org/capfaq/ closed captioning] uses line 21 of the VBI.  &lt;br /&gt;
&lt;br /&gt;
===Digital television (DTV) ===&lt;br /&gt;
====DVB====&lt;br /&gt;
The European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The DVB standard transmits sliced VBI data in a separate elementary stream.&lt;br /&gt;
&lt;br /&gt;
====ATSC====&lt;br /&gt;
The [http://www.atsc.org/standards/a53.html A/53 ATSC Digital Television Standard] covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B]. See the [http://en.wikipedia.org/wiki/EIA-708 EIA-708 Wikipedia entry] and [http://www.robson.org/capfaq/dtv.html Digital Television Closed Captioning FAQ]for details.&lt;br /&gt;
&lt;br /&gt;
EIA-708 specifies the transmission of CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex from there.  A freestanding CC capture application would still need to tune in and choose a program ID.  To complicate matters further,&lt;br /&gt;
EIA-708 allows both old style EIA-608-compatible closed caption data as well as the newer DTVCC.&lt;br /&gt;
&lt;br /&gt;
Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Devices Usable With Text==&lt;br /&gt;
===bt8x8 devices===&lt;br /&gt;
Cards based on the bt8x8 chip (cf. [[bttv devices (bt848, bt878)]] have excellent text capture capability for both PAL/SECAM and NTSC. &lt;br /&gt;
&lt;br /&gt;
Commandline output is provided by both ntsc-cc and the test/capture utility in zvbi.&lt;br /&gt;
&lt;br /&gt;
===cx88 devices===&lt;br /&gt;
The latest improvements on vbi support for cx88-based cards, aside from kernel-related stuff and modules reorganization, were made by Tom Zoerner in March of 2004. The README.cx88 still says: &amp;quot;some code present. Doesn't crash any more, but also doesn't work yet ...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Tim sketched out exactly what needs to be done in this [http://marc.theaimsgroup.com/?l=linux-video&amp;amp;m=108518568124567&amp;amp;w=2 22 May 2004 e-mail].&lt;br /&gt;
&lt;br /&gt;
As of Kernel 2.6.16-r7, the cx88 driver (as tested with a pcHDTV 3000 card), captures some VBI data, which is unusable for NTSC closed captioning as only 1150 or so bytes per line of VBI data have valid values and the rest of the 2048 byte line contains unchanging garbage data. There is a [http://www.spinics.net/lists/vfl/msg26029.html patch] being discussed on the video4linux mailing list that likely solved this problem. While the feature is not documented, closed captioning on cx88 most likely works with current (2.6.19) kernels.&lt;br /&gt;
&lt;br /&gt;
In the meantime, nxtvepg (which uses vbi information) is working on cx88 PAL tuners, cf. [http://nxtvepg.sourceforge.net/download.html#requirements system requirements].&lt;br /&gt;
&lt;br /&gt;
The latest test with kernel 2.6.27.2, NTSC closed caption is working, with a small patch published by Rafael Diniz in a [http://marc.info/?l=linux-video&amp;amp;m=122469689710030&amp;amp;w=2 22 October 2008 email]. This patch hopefully will be applied soon.&lt;br /&gt;
&lt;br /&gt;
===ivtv devices===&lt;br /&gt;
For details on [[Ivtv devices (cx23415, cx23416)| ivtv devices]], see the [http://ivtvdriver.org ivtv] wiki.&lt;br /&gt;
&lt;br /&gt;
'''IVTV''' provides generic VBI data via a VBI Linux device.  As EIA-608 closed caption data is among the VBI data, you can get it from the VBI device.  '''IVTV''' provides the VBI data in two different formats -- raw and sliced.  the raw mode is all of the VBI lines, with 720 luminosity samples line.  The sliced format has it decoded into data bytes, with selectable VBI lines.&lt;br /&gt;
&lt;br /&gt;
In addition, '''IVTV''' can embed VBI data in the MPEG stream you get from the video Linux device.  It embeds it in Private Stream 1 of the MPEG stream.  This is not a standard format; it is an IVTV invention.  A few programs, including '''mythtv''' and '''ccextractor''' know the IVTV embedded VBI format with respect to EIA-608 closed captioning.  Bryan Henderson (bryanh@giraffe-data.com) has a patch (May 2008) for Mplayer that makes it do so also.&lt;br /&gt;
&lt;br /&gt;
The README.vbi in a current ivtv release has lots of details.&lt;br /&gt;
&lt;br /&gt;
With a PVR-250, '''IVTV''' provides the VBI device and controls to put it in either raw mode or sliced CC.  (Based on my own experimentation - Bryan Henderson).&lt;br /&gt;
&lt;br /&gt;
Older '''IVTV''' (Before version 0.10) crashes when you read the VBI device if you put the device into sliced mode and you load '''IVTV''' with the autoload=0 option.  Bryan Henderson (bryanh@giraffe-data.com) has a fix for this divide by zero bug.&lt;br /&gt;
&lt;br /&gt;
This [http://www.gossamer-threads.com/lists/ivtv/devel/19383 exchange] on the '''IVTV''' mailing list suggests it can provide CC, VPS and WSS data with the PVR-350, but that hardware limitations prevent teletext. &lt;br /&gt;
&lt;br /&gt;
Similarly, this [http://www.gossamer-threads.com/lists/ivtv/devel/16665?search_string=vbi;#16665 exchange] from January 2005 discusses an ongoing project adding vbi function for PVR-x50. Finally, in this [http://www.gossamer-threads.com/lists/ivtv/devel/19376 exchange] from April 2005, Chris Kennedy discusses vbi with pvr150/500.&lt;br /&gt;
&lt;br /&gt;
In Linux v2.6.14-rc2, Mauro Carvalho Chehab submitted an &amp;quot;experimental Sliced VBI API support for v4l&amp;quot; patch, which apparently uses the hardware bit slicer in the ivtv driver. I take it this means text capture is now improved for the Hauppauge PVR150/250/350/500 cards.&lt;br /&gt;
&lt;br /&gt;
===saa713x devices===&lt;br /&gt;
Cards based on saa713x chips (cf. [[saa713x devices]]) have excellent text capture capability under PAL/SECAM. Support for NTSC closed captioning is now available in libzvbi, including the freestanding [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] from libzvbi 0.2.17, a drop-in replacement for xawtv's [[Text capture#ntsc-cc |ntsc-cc]]. &lt;br /&gt;
&lt;br /&gt;
The CVS version of ntsc-cc in xawtv that includes the libzvbi patch is still not released, pending some final quality tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
===alevt===&lt;br /&gt;
[http://www.goron.de/~froese/ AleVT] is a teletext/videotext decoder and browser for the bttv driver (/dev/vbi) and X11.&lt;br /&gt;
[http://xawdecode.sourceforge.net/ XdTV] -- XdTV interacts with AleVT for Teletext and Nxtvepg for NextView.&lt;br /&gt;
&lt;br /&gt;
===ccextractor===&lt;br /&gt;
&lt;br /&gt;
[http://ccextractor.sourceforge.net '''ccextractor'''] can extract closed captions from a variety of kinds of input streams and render the information in various forms.  It understands as input DVB and IVTV format, and can produce as output SRT or SAMI (standard subtitle file formats) or raw captions in DVB format.&lt;br /&gt;
&lt;br /&gt;
===gstreamer===&lt;br /&gt;
The application gstreamer works with closed captioning (they also mention some tweaks for Canadian English and French television); see [http://cvs.freedesktop.org/gstreamer/gst-plugins/gst/vbidec/ Freedesktop's repository].&lt;br /&gt;
&lt;br /&gt;
===MPlayer===&lt;br /&gt;
Scott Larson has (23 September 2005) written a [http://home.pacifier.com/~scowl/eia708.patch patch] for '''mplayer''' to display EIA-708 closed captioning (e.g. from a digital TV broadcast).  Specifically, the patch uses the EIA-608 compatible subformat; it cannot use the DTVCC data.  See the [http://www.pchdtv.com/forum/viewtopic.php?t=986&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight=closed+captioning&amp;amp;start=0 pchdtv forum] for more information.&lt;br /&gt;
&lt;br /&gt;
Bryan Henderson (bryanh@giraffe-data.com) has (May 2008) written a patch for '''mplayer''' to make it do closed captioning based on IVTV MPEG embedded VBI (EIA608) data in its MPEG input.&lt;br /&gt;
&lt;br /&gt;
===mtt===&lt;br /&gt;
A teletext (PAL) browser with a Motif-based GUI and a console mode. In Debian, mtt is part of the motv package.&lt;br /&gt;
&lt;br /&gt;
===Mythtv===&lt;br /&gt;
&lt;br /&gt;
Mythtv's native player can display closed captions encoded into an MPEG-2 stream in the IVTV format.&lt;br /&gt;
&lt;br /&gt;
===nxtvepg===&lt;br /&gt;
The [http://nxtvepg.sourceforge.net/index.html Nextview EPG decoder and browser] is an Electronic TV Programme Guide for the analog domain (as opposed to the various digital EPGs that come with most digital broadcasts). It allows you to decode and browse TV programme listings for most of the major networks in Germany, Austria, France and Switzerland. The EPG information is read from /dev/vbi.&lt;br /&gt;
&lt;br /&gt;
===ntsc-cc===&lt;br /&gt;
The application ntsc-cc handles closed captioning on [[bttv devices (bt848, bt878)]] only, because it implements only the old v4l API. The saa7134 chip uses other sample rates.&lt;br /&gt;
&lt;br /&gt;
For ntsc-cc to work, you typically need to be running an application for viewing or recording television, such as xawtv and mencoder. If no such application is running, ntsc-cc tends to produce garbled output. &lt;br /&gt;
&lt;br /&gt;
An updated version of ntsc-cc is included in zvbi; see [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] below.&lt;br /&gt;
&lt;br /&gt;
===tvtime===&lt;br /&gt;
tvtime displays closed captioning with [[bttv devices (bt848, bt878)|bttv]] and [[saa713x devices|saa7134]] cards (also others?). &lt;br /&gt;
&lt;br /&gt;
In early 2004, Kevin Ko wrote a [http://www.princeton.edu/~kko/tvtime/vbi_lock_0.2.patch patch with useful comments] to tvtime's vbidata.c; see [http://www.princeton.edu/~kko/tvtime/ his detailed account] and [https://sourceforge.net/tracker/?func=detail&amp;amp;atid=506989&amp;amp;aid=884449&amp;amp;group_id=64301 the tvtime bugreport].&lt;br /&gt;
&lt;br /&gt;
===zapzilla===&lt;br /&gt;
[http://zapping.sourceforge.net Zapping] has a built-in teletext viewer called [http://zapping.sourceforge.net/cgi-bin/view/Main/Zapzilla Zapzilla]. &lt;br /&gt;
&lt;br /&gt;
In addition, Zapping provides subtitle overlay through the closed captioning decoder built into libzvbi. &lt;br /&gt;
&lt;br /&gt;
===zvbi===&lt;br /&gt;
The [http://zapping.sourceforge.net/ZVBI zvbi library] offers functions to capture and decode raw VBI data. It works with all drivers using the V4L or V4L2 raw VBI API, the FreeBSD BKTR driver, Linux DVB drivers, and it can read VBI data from a VBI proxy to share V4L and V4L2 VBI devices between multiple applications. As of version 0.2.32 ATSC is also supported. I don't know if the V4L2 sliced API is supported yet (please add if you know).&lt;br /&gt;
&lt;br /&gt;
Higher level functions such as to display or record Teletext and Closed Caption, or to extract network names from Teletext and XDS are also included.&lt;br /&gt;
&lt;br /&gt;
The [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome zvbi library] understands the European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
The European DVB standard transmits sliced VBI data in a separate elementary stream. Current drivers in libzvbi provide full support.&lt;br /&gt;
&lt;br /&gt;
It can read VBI PES packets from Linux DVB devices and extract Teletext, VPS, WSS and Caption data. A demultiplexer is available to extract VBI data from DVB MPEG-2 program streams and a multiplexer to convert sliced VBI data, e. g. captured from analog devices, to DVB format. For details see the [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Documentation zvbi documentation]. The test/capture utility in the source tarball can demonstrate these capabilities.&lt;br /&gt;
&lt;br /&gt;
The zvbi library currently does not understand the American standard [http://www.atsc.org ATSC A/53] &amp;quot;ATSC Digital Television Standard&amp;quot; which also covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B].&lt;br /&gt;
&lt;br /&gt;
Michael Schimek writes that A/53 specifies the transmission of &amp;quot;CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex in software.  Libzvbi does something similar for DVB, so it shouldn't be hard to implement, if it hasn't been done already to extract DVD caption. A freestanding CC capture application would still need to tune in and choose a program ID; that's beyond the scope of libzvbi.&lt;br /&gt;
&lt;br /&gt;
To complicate matters further A/53 may transmit old style caption EIA-608 as well as the newer &amp;quot;digital caption&amp;quot; EIA-708. I don't have enough information to properly implement EIA-708 caption overlay (nor is it useful for me until Zapping goes digital) but to write an ntsc-dtvcc it might suffice.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==== zvbi-ntsc-cc ====&lt;br /&gt;
:Included in libzvbi 0.2.17 onwards (in Debian, it's it the zvbi package). Is built on and preserves the functionality of xawtv's ntsc-cc, but also handles closed captioning for cards based on saa713x chips (cf. [[saa713x devices]]).&lt;br /&gt;
&lt;br /&gt;
:Unlike [[Text capture#ntsc-cc |ntsc-cc]], zvbi-ntsc-cc does not require you to run another application for viewing or recording.&lt;br /&gt;
&lt;br /&gt;
==== zvbi-atsc-cc ====&lt;br /&gt;
:Libzvbi 0.2.32 added an improved version of zvbi-ntsc-cc which can record EIA-608 and EIA-708 caption from ATSC devices.&lt;br /&gt;
&lt;br /&gt;
==Technical background==&lt;br /&gt;
===Displaying captured text===&lt;br /&gt;
To get formatted output for overlay on the television image, Michael Schimek's decoder (part of libzvbi) works like a terminal emulator, printing caption into virtual screen memory.  As long as you have &amp;quot;pop on&amp;quot; style caption, streaming is easy.  For &amp;quot;roll up&amp;quot; caption it needs a more character or line oriented interface.  Perhaps it would suffice to call the client and clear the screen before any vertical cursor motions and scrolling.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
Recommended applications for testing under PAL/SECAM are mtt, zapping/zapzilla and alevt/d.&lt;br /&gt;
&lt;br /&gt;
For lower-level testing, use the utilities in the test/ directory of the zvbi tarball, available on [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Download#Source_Code zvbi's project page]; these are actively maintained.&lt;br /&gt;
&lt;br /&gt;
The test/capture utility currently just dumps printable characters on stdout. This output needs to be &amp;quot;sliced&amp;quot;. Sliced VBI is the data transmitted on each scan line.  It still contains multiple logical streams, parity bits and control codes.  In libzvbi &amp;quot;formatting&amp;quot; takes one stream, converts characters to Unicode and interprets control codes, giving one page of text for display.  An export function would convert the text to ASCII.&lt;br /&gt;
&lt;br /&gt;
You may also use test/capture utility from the zvbi library to display printable closed caption data.&lt;br /&gt;
 capture --dump-cc&lt;br /&gt;
&lt;br /&gt;
To visualize the Vertical Blanking Interval on NTSC, issue&lt;br /&gt;
&lt;br /&gt;
 ntsc-cc -d /dev/vbi -c -w -r 11&lt;br /&gt;
&lt;br /&gt;
Both bttv and saa7134 cards show orderly signals, and cx88 (as of Kernel 2.6.16-r7) shows valid data for the first part of the line, with noise on the rest of the line.&lt;br /&gt;
&lt;br /&gt;
In the zvbi test/ suite, osc similarly visualizes. The test/osc utility is more useful, since it displays which row and line are being graphed and lets you change rows with the arrow keys. NTSC closed captioning should appear on row 11, line 21.&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Text_capture</id>
		<title>Text capture</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Text_capture"/>
				<updated>2009-05-02T15:16:01Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* zvbi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://en.wikipedia.org/wiki/Teletext Teletext] is popular in Europe and provides both informational pages and captions or subtitles to television programs. In 1992, teletext was provided in 18 countries. &lt;br /&gt;
&lt;br /&gt;
In North America, [http://www.fcc.gov/cgb/dro/caption.html US federal law] requires [http://www.robson.org/capfaq/ closed captioning] of all non-exempt television programs starting in 2006. Some broadcasters are implementing [http://www.robson.org/capfaq/technical.html#XDS XDS], or Extended Data Services.&lt;br /&gt;
&lt;br /&gt;
TV capture chipsets implement teletext and closed captioning in different ways, and the free software code to support text capture is still missing or incomplete for some chipsets.&lt;br /&gt;
&lt;br /&gt;
===Analog television===&lt;br /&gt;
The [http://en.wikipedia.org/wiki/VBI vertical blanking interval (VBI)] is an interval in a television signal that temporarily suspends transmission of the signal for the electron gun to move back up to the first line of the television screen to trace the next screen field. The vertical blanking interval can be used to carry data, since anything sent during the VBI would naturally not be displayed; various test signals, closed captioning, and other digital data can be sent during this time period.&lt;br /&gt;
&lt;br /&gt;
In the PAL standard, [http://en.wikipedia.org/wiki/Teletext Teletext] and Caption data is digitally encoded in the VBI on lines 17 through 20.&lt;br /&gt;
&lt;br /&gt;
In North America, which follows the NTSC standard, [http://www.robson.org/capfaq/ closed captioning] uses line 21 of the VBI.  &lt;br /&gt;
&lt;br /&gt;
===Digital television (DTV) ===&lt;br /&gt;
====DVB====&lt;br /&gt;
The European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The DVB standard transmits sliced VBI data in a separate elementary stream.&lt;br /&gt;
&lt;br /&gt;
====ATSC====&lt;br /&gt;
The [http://www.atsc.org/standards/a53.html A/53 ATSC Digital Television Standard] covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B]. See the [http://en.wikipedia.org/wiki/EIA-708 EIA-708 Wikipedia entry] and [http://www.robson.org/capfaq/dtv.html Digital Television Closed Captioning FAQ]for details.&lt;br /&gt;
&lt;br /&gt;
EIA-708 specifies the transmission of CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex from there.  A freestanding CC capture application would still need to tune in and choose a program ID.  To complicate matters further,&lt;br /&gt;
EIA-708 allows both old style EIA-608-compatible closed caption data as well as the newer DTVCC.&lt;br /&gt;
&lt;br /&gt;
Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Devices Usable With Text==&lt;br /&gt;
===bt8x8 devices===&lt;br /&gt;
Cards based on the bt8x8 chip (cf. [[bttv devices (bt848, bt878)]] have excellent text capture capability for both PAL/SECAM and NTSC. &lt;br /&gt;
&lt;br /&gt;
Commandline output is provided by both ntsc-cc and the test/capture utility in zvbi.&lt;br /&gt;
&lt;br /&gt;
===cx88 devices===&lt;br /&gt;
The latest improvements on vbi support for cx88-based cards, aside from kernel-related stuff and modules reorganization, were made by Tom Zoerner in March of 2004. The README.cx88 still says: &amp;quot;some code present. Doesn't crash any more, but also doesn't work yet ...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Tim sketched out exactly what needs to be done in this [http://marc.theaimsgroup.com/?l=linux-video&amp;amp;m=108518568124567&amp;amp;w=2 22 May 2004 e-mail].&lt;br /&gt;
&lt;br /&gt;
As of Kernel 2.6.16-r7, the cx88 driver (as tested with a pcHDTV 3000 card), captures some VBI data, which is unusable for NTSC closed captioning as only 1150 or so bytes per line of VBI data have valid values and the rest of the 2048 byte line contains unchanging garbage data. There is a [http://www.spinics.net/lists/vfl/msg26029.html patch] being discussed on the video4linux mailing list that likely solved this problem. While the feature is not documented, closed captioning on cx88 most likely works with current (2.6.19) kernels.&lt;br /&gt;
&lt;br /&gt;
In the meantime, nxtvepg (which uses vbi information) is working on cx88 PAL tuners, cf. [http://nxtvepg.sourceforge.net/download.html#requirements system requirements].&lt;br /&gt;
&lt;br /&gt;
The latest test with kernel 2.6.27.2, NTSC closed caption is working, with a small patch published by Rafael Diniz in a [http://marc.info/?l=linux-video&amp;amp;m=122469689710030&amp;amp;w=2 22 October 2008 email]. This patch hopefully will be applied soon.&lt;br /&gt;
&lt;br /&gt;
===ivtv devices===&lt;br /&gt;
For details on [[Ivtv devices (cx23415, cx23416)| ivtv devices]], see the [http://ivtvdriver.org ivtv] wiki.&lt;br /&gt;
&lt;br /&gt;
'''IVTV''' provides generic VBI data via a VBI Linux device.  As EIA-608 closed caption data is among the VBI data, you can get it from the VBI device.  '''IVTV''' provides the VBI data in two different formats -- raw and sliced.  the raw mode is all of the VBI lines, with 720 luminosity samples line.  The sliced format has it decoded into data bytes, with selectable VBI lines.&lt;br /&gt;
&lt;br /&gt;
In addition, '''IVTV''' can embed VBI data in the MPEG stream you get from the video Linux device.  It embeds it in Private Stream 1 of the MPEG stream.  This is not a standard format; it is an IVTV invention.  A few programs, including '''mythtv''' and '''ccextractor''' know the IVTV embedded VBI format with respect to EIA-608 closed captioning.  Bryan Henderson (bryanh@giraffe-data.com) has a patch (May 2008) for Mplayer that makes it do so also.&lt;br /&gt;
&lt;br /&gt;
The README.vbi in a current ivtv release has lots of details.&lt;br /&gt;
&lt;br /&gt;
With a PVR-250, '''IVTV''' provides the VBI device and controls to put it in either raw mode or sliced CC.  (Based on my own experimentation - Bryan Henderson).&lt;br /&gt;
&lt;br /&gt;
Older '''IVTV''' (Before version 0.10) crashes when you read the VBI device if you put the device into sliced mode and you load '''IVTV''' with the autoload=0 option.  Bryan Henderson (bryanh@giraffe-data.com) has a fix for this divide by zero bug.&lt;br /&gt;
&lt;br /&gt;
This [http://www.gossamer-threads.com/lists/ivtv/devel/19383 exchange] on the '''IVTV''' mailing list suggests it can provide CC, VPS and WSS data with the PVR-350, but that hardware limitations prevent teletext. &lt;br /&gt;
&lt;br /&gt;
Similarly, this [http://www.gossamer-threads.com/lists/ivtv/devel/16665?search_string=vbi;#16665 exchange] from January 2005 discusses an ongoing project adding vbi function for PVR-x50. Finally, in this [http://www.gossamer-threads.com/lists/ivtv/devel/19376 exchange] from April 2005, Chris Kennedy discusses vbi with pvr150/500.&lt;br /&gt;
&lt;br /&gt;
In Linux v2.6.14-rc2, Mauro Carvalho Chehab submitted an &amp;quot;experimental Sliced VBI API support for v4l&amp;quot; patch, which apparently uses the hardware bit slicer in the ivtv driver. I take it this means text capture is now improved for the Hauppauge PVR150/250/350/500 cards.&lt;br /&gt;
&lt;br /&gt;
===saa713x devices===&lt;br /&gt;
Cards based on saa713x chips (cf. [[saa713x devices]]) have excellent text capture capability under PAL/SECAM. Support for NTSC closed captioning is now available in libzvbi, including the freestanding [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] from libzvbi 0.2.17, a drop-in replacement for xawtv's [[Text capture#ntsc-cc |ntsc-cc]]. &lt;br /&gt;
&lt;br /&gt;
The CVS version of ntsc-cc in xawtv that includes the libzvbi patch is still not released, pending some final quality tests.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
===alevt===&lt;br /&gt;
[http://www.goron.de/~froese/ AleVT] is a teletext/videotext decoder and browser for the bttv driver (/dev/vbi) and X11.&lt;br /&gt;
[http://xawdecode.sourceforge.net/ XdTV] -- XdTV interacts with AleVT for Teletext and Nxtvepg for NextView.&lt;br /&gt;
&lt;br /&gt;
===ccextractor===&lt;br /&gt;
&lt;br /&gt;
[http://ccextractor.sourceforge.net '''ccextractor'''] can extract closed captions from a variety of kinds of input streams and render the information in various forms.  It understands as input DVB and IVTV format, and can produce as output SRT or SAMI (standard subtitle file formats) or raw captions in DVB format.&lt;br /&gt;
&lt;br /&gt;
===gstreamer===&lt;br /&gt;
The application gstreamer works with closed captioning (they also mention some tweaks for Canadian English and French television); see [http://cvs.freedesktop.org/gstreamer/gst-plugins/gst/vbidec/ Freedesktop's repository].&lt;br /&gt;
&lt;br /&gt;
===MPlayer===&lt;br /&gt;
Scott Larson has (23 September 2005) written a [http://home.pacifier.com/~scowl/eia708.patch patch] for '''mplayer''' to display EIA-708 closed captioning (e.g. from a digital TV broadcast).  Specifically, the patch uses the EIA-608 compatible subformat; it cannot use the DTVCC data.  See the [http://www.pchdtv.com/forum/viewtopic.php?t=986&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight=closed+captioning&amp;amp;start=0 pchdtv forum] for more information.&lt;br /&gt;
&lt;br /&gt;
Bryan Henderson (bryanh@giraffe-data.com) has (May 2008) written a patch for '''mplayer''' to make it do closed captioning based on IVTV MPEG embedded VBI (EIA608) data in its MPEG input.&lt;br /&gt;
&lt;br /&gt;
===mtt===&lt;br /&gt;
A teletext (PAL) browser with a Motif-based GUI and a console mode. In Debian, mtt is part of the motv package.&lt;br /&gt;
&lt;br /&gt;
===Mythtv===&lt;br /&gt;
&lt;br /&gt;
Mythtv's native player can display closed captions encoded into an MPEG-2 stream in the IVTV format.&lt;br /&gt;
&lt;br /&gt;
===nxtvepg===&lt;br /&gt;
The [http://nxtvepg.sourceforge.net/index.html Nextview EPG decoder and browser] is an Electronic TV Programme Guide for the analog domain (as opposed to the various digital EPGs that come with most digital broadcasts). It allows you to decode and browse TV programme listings for most of the major networks in Germany, Austria, France and Switzerland. The EPG information is read from /dev/vbi.&lt;br /&gt;
&lt;br /&gt;
===ntsc-cc===&lt;br /&gt;
The application ntsc-cc handles closed captioning on [[bttv devices (bt848, bt878)]] only, because it implements only the old v4l API. The saa7134 chip uses other sample rates.&lt;br /&gt;
&lt;br /&gt;
For ntsc-cc to work, you typically need to be running an application for viewing or recording television, such as xawtv and mencoder. If no such application is running, ntsc-cc tends to produce garbled output. &lt;br /&gt;
&lt;br /&gt;
An updated version of ntsc-cc is included in zvbi; see [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] below.&lt;br /&gt;
&lt;br /&gt;
===tvtime===&lt;br /&gt;
tvtime displays closed captioning with [[bttv devices (bt848, bt878)|bttv]] and [[saa713x devices|saa7134]] cards (also others?). &lt;br /&gt;
&lt;br /&gt;
In early 2004, Kevin Ko wrote a [http://www.princeton.edu/~kko/tvtime/vbi_lock_0.2.patch patch with useful comments] to tvtime's vbidata.c; see [http://www.princeton.edu/~kko/tvtime/ his detailed account] and [https://sourceforge.net/tracker/?func=detail&amp;amp;atid=506989&amp;amp;aid=884449&amp;amp;group_id=64301 the tvtime bugreport].&lt;br /&gt;
&lt;br /&gt;
===zapzilla===&lt;br /&gt;
[http://zapping.sourceforge.net Zapping] has a built-in teletext viewer called [http://zapping.sourceforge.net/cgi-bin/view/Main/Zapzilla Zapzilla]. &lt;br /&gt;
&lt;br /&gt;
In addition, Zapping provides subtitle overlay through the closed captioning decoder built into libzvbi. &lt;br /&gt;
&lt;br /&gt;
===zvbi===&lt;br /&gt;
The [http://zapping.sourceforge.net/ZVBI zvbi library] offers functions to capture and decode raw VBI data. It works with all drivers using the V4L or V4L2 raw VBI API, the FreeBSD BKTR driver, Linux DVB drivers, and it can read VBI data from a VBI proxy to share V4L and V4L2 VBI devices between multiple applications. As of version 0.2.21 the V4L2 sliced API and ATSC are not yet supported.&lt;br /&gt;
&lt;br /&gt;
Higher level functions such as to display or record Teletext and Closed Caption, or to extract network names from Teletext and XDS are also included.&lt;br /&gt;
&lt;br /&gt;
The [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome zvbi library] understands the European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
The European DVB standard transmits sliced VBI data in a separate elementary stream. Current drivers in libzvbi provide full support.&lt;br /&gt;
&lt;br /&gt;
It can read VBI PES packets from Linux DVB devices and extract Teletext, VPS, WSS and Caption data. A demultiplexer is available to extract VBI data from DVB MPEG-2 program streams and a multiplexer to convert sliced VBI data, e. g. captured from analog devices, to DVB format. For details see the [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Documentation zvbi documentation]. The test/capture utility in the source tarball can demonstrate these capabilities.&lt;br /&gt;
&lt;br /&gt;
The zvbi library currently does not understand the American standard [http://www.atsc.org ATSC A/53] &amp;quot;ATSC Digital Television Standard&amp;quot; which also covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B].&lt;br /&gt;
&lt;br /&gt;
Michael Schimek writes that A/53 specifies the transmission of &amp;quot;CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex in software.  Libzvbi does something similar for DVB, so it shouldn't be hard to implement, if it hasn't been done already to extract DVD caption. A freestanding CC capture application would still need to tune in and choose a program ID; that's beyond the scope of libzvbi.&lt;br /&gt;
&lt;br /&gt;
To complicate matters further A/53 may transmit old style caption EIA-608 as well as the newer &amp;quot;digital caption&amp;quot; EIA-708. I don't have enough information to properly implement EIA-708 caption overlay (nor is it useful for me until Zapping goes digital) but to write an ntsc-dtvcc it might suffice.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== zvbi-ntsc-cc ====&lt;br /&gt;
:Included in libzvbi 0.2.17 onwards (in Debian, it's it the zvbi package). Is built on and preserves the functionality of xawtv's ntsc-cc, but also handles closed captioning for cards based on saa713x chips (cf. [[saa713x devices]]).&lt;br /&gt;
&lt;br /&gt;
:Unlike [[Text capture#ntsc-cc |ntsc-cc]], zvbi-ntsc-cc does not require you to run another application for viewing or recording.&lt;br /&gt;
&lt;br /&gt;
==== zvbi-atsc-cc ====&lt;br /&gt;
:Libzvbi 0.2.32 added an improved version of zvbi-ntsc-cc which can record EIA-608 and EIA-708 caption from ATSC devices.&lt;br /&gt;
&lt;br /&gt;
==Technical background==&lt;br /&gt;
===Displaying captured text===&lt;br /&gt;
To get formatted output for overlay on the television image, Michael Schimek's decoder (part of libzvbi) works like a terminal emulator, printing caption into virtual screen memory.  As long as you have &amp;quot;pop on&amp;quot; style caption, streaming is easy.  For &amp;quot;roll up&amp;quot; caption it needs a more character or line oriented interface.  Perhaps it would suffice to call the client and clear the screen before any vertical cursor motions and scrolling.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
Recommended applications for testing under PAL/SECAM are mtt, zapping/zapzilla and alevt/d.&lt;br /&gt;
&lt;br /&gt;
For lower-level testing, use the utilities in the test/ directory of the zvbi tarball, available on [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Download#Source_Code zvbi's project page]; these are actively maintained.&lt;br /&gt;
&lt;br /&gt;
The test/capture utility currently just dumps printable characters on stdout. This output needs to be &amp;quot;sliced&amp;quot;. Sliced VBI is the data transmitted on each scan line.  It still contains multiple logical streams, parity bits and control codes.  In libzvbi &amp;quot;formatting&amp;quot; takes one stream, converts characters to Unicode and interprets control codes, giving one page of text for display.  An export function would convert the text to ASCII.&lt;br /&gt;
&lt;br /&gt;
You may also use test/capture utility from the zvbi library to display printable closed caption data.&lt;br /&gt;
 capture --dump-cc&lt;br /&gt;
&lt;br /&gt;
To visualize the Vertical Blanking Interval on NTSC, issue&lt;br /&gt;
&lt;br /&gt;
 ntsc-cc -d /dev/vbi -c -w -r 11&lt;br /&gt;
&lt;br /&gt;
Both bttv and saa7134 cards show orderly signals, and cx88 (as of Kernel 2.6.16-r7) shows valid data for the first part of the line, with noise on the rest of the line.&lt;br /&gt;
&lt;br /&gt;
In the zvbi test/ suite, osc similarly visualizes. The test/osc utility is more useful, since it displays which row and line are being graphed and lets you change rows with the arrow keys. NTSC closed captioning should appear on row 11, line 21.&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/V4L_channel_script</id>
		<title>V4L channel script</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/V4L_channel_script"/>
				<updated>2009-05-02T14:51:01Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==The channel scripts==&lt;br /&gt;
&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
This simple script, with its companion timestamper, is designed to capture television programs on a regular schedule and store the recordings in a dated directory tree along with the closed captioning text files. Because the scripts are so elementary, they are very easy to debug, and the script has been running flawlessly for more than a year now.&lt;br /&gt;
&lt;br /&gt;
The script is designed to handle several capture cards for simultaneous capture, and jobs are scheduled per card in a cron job or issued manually for a single program. Files are saved to the first drive with &amp;quot;tv&amp;quot; in its name and at least 1GB of free space.&lt;br /&gt;
&lt;br /&gt;
The use of [http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html bash] is elementary and can surely be improved on.&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
&lt;br /&gt;
My setup is an amd64 motherboard with on-board NICs, sound, and video, and five PCI slots ([http://www.giga-byte.com/MotherBoard/Products/Products_Spec_GA-K8NS%20Ultra-939.htm Gigabyte K8NS Ultra-939]), so there's lots of room for grabber cards. It currently uses three [[LifeView FlyVideo3000FM NTSC]] and two [[LifeView FlyTV_Platinum]] (saa7134) cards. I chose them because I can get sound directly off the cards and don't need a patch cable for each one to a sound card. &lt;br /&gt;
&lt;br /&gt;
The three capture cards are loaded as follows:&lt;br /&gt;
&lt;br /&gt;
 saa7134 card=2,54,2,54,2 tuner=39,54,39,54,17 video_nr=1,2,3,4,5 vbi_nr=1,2,3,4,5 radio_nr=1,2,3,4,5 disable_ir=1,1,1,1,1&lt;br /&gt;
&lt;br /&gt;
The CPU is an AMD Athlon 64 dual core 4600+ (939); each mencoder session uses about 20% of the CPU. Results from five simultaneous capture is now excellent. The script assumes you get the signal off the air; cf. the &amp;quot;us-bcast&amp;quot; parameter. &lt;br /&gt;
&lt;br /&gt;
I would like to switch to [[PcHDTV |pcHDTV-3000]], but these cards don't have closed captioning support yet.&lt;br /&gt;
&lt;br /&gt;
I capture to SATA drives; the board has support for four of these. The OS is installed on a PATA drive.&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
&lt;br /&gt;
The OS is Debian sid with a 2.6.18-1 kernel. I generally leave the OS alone, but occasionally update some of the applications. &lt;br /&gt;
&lt;br /&gt;
Mencoder is used to grab and compress the footage, using DIVX and mp3lame and an avi wrapper (suggestions for improvements are welcome). I'm currently running [http://www.debian-multimedia.org/ Christian Marillat's] unofficial 1:1.0-pre8cvs20061002-0.0 Debian package. &lt;br /&gt;
&lt;br /&gt;
We don't don't view the footage on the capture machine, but use [http://nfs.sourceforge.net/ NFS] to view the captured files on other machines. On OSX, you can view the avi files with VLC; Windows is untested, but the files should play after installing the DIVX codec. Users can be given access to the recording machine's crontab. On X11, [http://docs.kde.org/development/en/kdeadmin/kcron/index.html kcron] provides a user-friendly interface. The status of the capture machine can usefully be monitored with gnome-system-monitor.&lt;br /&gt;
&lt;br /&gt;
For listings, we use [http://freeguide-tv.sourceforge.net/ Freeguide].&lt;br /&gt;
&lt;br /&gt;
===Capture script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# /usr/local/bin/channel&lt;br /&gt;
#&lt;br /&gt;
# Script to record analog television programs to .avi files, using mencoder, and&lt;br /&gt;
# the associated closed captioning in a separate identically named .txt file&lt;br /&gt;
#&lt;br /&gt;
# You need to include /usr/local/bin in cron's PATH (see kcron's Variables)&lt;br /&gt;
# Use the bash interpreter -- /bin/bash, not /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Usage: channel &amp;lt;channel number&amp;gt; &amp;lt;duration&amp;gt; &amp;lt;title&amp;gt; &amp;lt;capture card number&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# For instance,&lt;br /&gt;
#&lt;br /&gt;
#       channel 28, 30min, &amp;quot;BBC World News&amp;quot;, 1&lt;br /&gt;
#&lt;br /&gt;
# Input parameter rules:&lt;br /&gt;
#    * commas are optional&lt;br /&gt;
#    * give duration (recording time) in minutes &lt;br /&gt;
#    * the word &amp;quot;min&amp;quot; (for minutes) is optional&lt;br /&gt;
#    * a space signals a new parameter&lt;br /&gt;
#    * enclose multi-word titles in quotes&lt;br /&gt;
#    * don't use apostrophes in titles -- messes up searching of captured text&lt;br /&gt;
#    * the default card number is 1&lt;br /&gt;
#&lt;br /&gt;
# Changelog&lt;br /&gt;
#    2005-01-12: added $! to terminate ntsc-cc and channel-timestamp&lt;br /&gt;
#    2005-04-15: added $DEV input parameter to handle multiple tv cards&lt;br /&gt;
#    2005-04-23: added aumix -d /dev/mixer1 -1 R for sound off the saa&lt;br /&gt;
#    2005-05-13: added mixer device number &lt;br /&gt;
#    2005-05-16: new directories are created with 775&lt;br /&gt;
#    2005-05-22: added busy test&lt;br /&gt;
#    2005-10-07: use zvbi-ntsc-cc, soon in libzvbi 0.2.17&lt;br /&gt;
#    2006-02-15: removed colon from filename (FIL=)&lt;br /&gt;
#    2006-08-18: added drive assignment routine (checks for space)&lt;br /&gt;
#    2006-09-04: switched from oss to alsa (2.6.17 kernel)&lt;br /&gt;
#    2006-09-14: check /dev/vbi$DEV instead of /dev/dsp$DEV in busy loop&lt;br /&gt;
#                (you could use /dev/video$DEV)&lt;br /&gt;
#    2006-09-20: added some messages at the end, using 24-hour time&lt;br /&gt;
#    2006-09-24: added XDS information to closed captioning&lt;br /&gt;
#&lt;br /&gt;
# ***************************************************************************&lt;br /&gt;
&lt;br /&gt;
# First some checks triggered by manual mode&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
 echo &amp;quot;Use news &amp;lt;channel number&amp;gt; &amp;lt;recording time in minutes&amp;gt;&amp;quot;;&lt;br /&gt;
 echo &amp;quot;Please give a channel! Valid channels are 2, 4, 5, 7, 9, 11, 13, and 28.&amp;quot;;&lt;br /&gt;
 exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$2&amp;quot; = &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
 echo &amp;quot;Use news &amp;lt;channel number&amp;gt; &amp;lt;recording time in minutes&amp;gt;&amp;quot;;&lt;br /&gt;
 echo &amp;quot;Please give a recording length in minutes!&amp;quot;;&lt;br /&gt;
 exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$3&amp;quot; = &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
 echo &amp;quot;Use news &amp;lt;number&amp;gt; &amp;lt;duration&amp;gt; &amp;lt;title&amp;gt;&amp;quot;;&lt;br /&gt;
 echo &amp;quot;Please give a title to the recording!&amp;quot;;&lt;br /&gt;
 exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Define the video and VBI (vertical blanking interval) device to use&lt;br /&gt;
# Default is /dev/video1 and /dev/vbi1&lt;br /&gt;
if [ &amp;quot;$4&amp;quot; = &amp;quot;&amp;quot; ] ;&lt;br /&gt;
 then DEV=1&lt;br /&gt;
 else DEV=$4&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Define variable DRV to contain the first tv drive with more than 1% free&lt;br /&gt;
for i in $(df | cut -d'/' -f4 | grep tv | sort); do&lt;br /&gt;
  if [ &amp;quot;$(df /$i | grep $i | cut -b 52-54)&amp;quot; -lt 99 ]&lt;br /&gt;
      then DRV=$i&lt;br /&gt;
      echo &amp;quot;Using drive&amp;quot; $DRV &amp;quot;with&amp;quot; &amp;quot;$(df -h /$i | grep $i | cut -b 35-37)GB free&amp;quot;&lt;br /&gt;
      break&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Define variable DIR to contain nested directories for&lt;br /&gt;
#  yyyy, yyyy-mm, and yyyy-mm-dd (today's date)&lt;br /&gt;
DIR=/$DRV/$(date +%Y)/$(date +%Y-%m)/$(date +%F)&lt;br /&gt;
&lt;br /&gt;
# Create the directory (and any missing parents) if needed&lt;br /&gt;
if test ! -d $DIR&lt;br /&gt;
  then mkdir -p -m 775 $DIR&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Strip the comma, if any, from the channel name&lt;br /&gt;
CH=${1%,*}&lt;br /&gt;
&lt;br /&gt;
# Set the channel (current user needs X11 access)&lt;br /&gt;
# You can also set this in mencoder with tv://$CH or channel=$CH&lt;br /&gt;
v4lctl -c /dev/video$DEV setchannel $CH&lt;br /&gt;
&lt;br /&gt;
# Convert channel number to name for the base file name&lt;br /&gt;
case $CH in&lt;br /&gt;
  2) CH=KCBS;;&lt;br /&gt;
  4) CH=KNBC;;&lt;br /&gt;
  5) CH=KTLA-WB;;&lt;br /&gt;
  7) CH=KABC;;&lt;br /&gt;
  9) CH=KCAL;;&lt;br /&gt;
 11) CH=KTTV-FOX;;&lt;br /&gt;
 13) CH=KCOP-UPN;;&lt;br /&gt;
 28) CH=KCET;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
# Strip the {min,|min|,} if it's there, from the duration&lt;br /&gt;
TIM=${2%m*}; TIM=${TIM%,*}&lt;br /&gt;
&lt;br /&gt;
# Strip the comma, if any, from the title, and convert spaces to underscores&lt;br /&gt;
TIT=_`echo ${3%,*} | sed -e &amp;quot;s/ /_/g&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
# Define the file name (escape underscore before $) and print it to screen&lt;br /&gt;
FIL=$(date +%F_%H%M)\_$CH$TIT; echo Preparing to record $FIL&lt;br /&gt;
&lt;br /&gt;
# Check if the capture device is busy&lt;br /&gt;
BUSY=&amp;quot;Capture card $DEV is busy -- will try for another five minutes \n&amp;quot;&lt;br /&gt;
START=$(date +%s); TARGET=$[$START + $[5*60]]&lt;br /&gt;
&lt;br /&gt;
while [ &amp;quot;$(sudo lsof /dev/vbi$DEV)&amp;quot; != &amp;quot;&amp;quot; ]; do&lt;br /&gt;
  if [ $TARGET -gt $(date +%s) ]&lt;br /&gt;
    then echo -ne $BUSY&lt;br /&gt;
      sleep 5; BUSY=&amp;quot;&amp;quot;&lt;br /&gt;
    else echo &amp;quot;Recording of $FIL aborted -- capture card $DEV is not available&amp;quot;&lt;br /&gt;
      exit&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Convert minutes to seconds and adjust down five seconds for the hardware to reset&lt;br /&gt;
TIM=$[$[TIM*60]-5]&lt;br /&gt;
&lt;br /&gt;
# Adjust the duration down by the delay added by the busy check, exit if no time left&lt;br /&gt;
TIM=$[TIM-$[$(date +%s) -$START]]; if [ $TIM -lt 1 ]; then exit; fi&lt;br /&gt;
&lt;br /&gt;
# Start the timestamp script and background&lt;br /&gt;
channel-timestamp $CH $TIT $DIR $FIL &amp;amp;&lt;br /&gt;
&lt;br /&gt;
# Get the PID for the timestamper&lt;br /&gt;
TMSP=$!&lt;br /&gt;
&lt;br /&gt;
# Start cc capture and background the process&lt;br /&gt;
zvbi-ntsc-cc -d /dev/vbi$DEV -cpx &amp;gt;&amp;gt; $DIR/$FIL.txt &amp;amp;&lt;br /&gt;
&lt;br /&gt;
# Get the PID for the closed captioning&lt;br /&gt;
NTSC=$!&lt;br /&gt;
&lt;br /&gt;
# Restore default sound sttings and open up the sound channel on the capture card &lt;br /&gt;
/usr/sbin/alsactl restore $DEV&lt;br /&gt;
&lt;br /&gt;
# Set any additional values (none currently needed)&lt;br /&gt;
#v4lctl -c /dev/video0 color &amp;quot;50%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Record the footage (note this assumes direct audio)&lt;br /&gt;
&lt;br /&gt;
# Use this to control the bitrate -- default is 800&lt;br /&gt;
#lavc -lavcopts vbitrate=1800 -oac mp3lame -lameopts cbr:br=128 -endpos $TIM -o \&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Initiating recording of $FIL from channel $1&amp;quot;&lt;br /&gt;
echo &amp;quot;on capture card $DEV, at $(date +%T), duration $TIM seconds&amp;quot;&lt;br /&gt;
&lt;br /&gt;
mencoder -tv driver=v4l2:device=/dev/video$DEV:fps=30000/1001:chanlist=us-bcast:\&lt;br /&gt;
audiorate=32000:adevice=hw.$DEV:alsa:input=0:amode=1:normid=4 -ffourcc DIVX -ovc \&lt;br /&gt;
lavc -oac mp3lame -lameopts cbr:br=128 -endpos $TIM -o $DIR/$FIL.avi tv:// &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
# Stamp the file with receipts to verify capture success&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
ls -l $DIR/$FIL.*&lt;br /&gt;
echo -e &amp;quot;\nCompleted capture on $(date +%A\ %d\ %B\ %Y) at $(date +%T)&amp;quot;&lt;br /&gt;
echo -e &amp;quot;Video and audio   file size&amp;quot; $(ls -sh $DIR/$FIL.avi | cut -d' ' -f1)&lt;br /&gt;
echo -e &amp;quot;Closed captioning file size&amp;quot; $(ls -sh $DIR/$FIL.txt | cut -d' ' -f1) &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Terminate the closed captioning and the timestamper&lt;br /&gt;
kill $NTSC $TMSP&lt;br /&gt;
&lt;br /&gt;
# EOF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The only part of the script that gave me trouble over a prolonged period was the transition between recordings. Sometimes it takes the kernel several seconds to activate a card, and if the recording length doesn't compensate down, the next scheduled recording bumps into a busy device. However, this problem appears to have been fully solved in the current busy script, which waits for up to five minutes and shortens the recording time by the time waited.&lt;br /&gt;
&lt;br /&gt;
I also tended to lose some programs when a drive was full, since I often missed the exact moment, so I've added some lines to look for a drive with space. I was filling drives at the rate of 4GB a day and had room for four drives, so it would take a year to fill a set of 400GB drives.&lt;br /&gt;
&lt;br /&gt;
===Variant: capture to H.264 using alsa===&lt;br /&gt;
&lt;br /&gt;
If you want to capture to H.264 instead, and use the new [[saa7134-alsa]] module for getting sound, you can use this (and drop aumix from the script, as it doesn't appear to understand alsa's device notation):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mencoder -tv driver=v4l2:device=/dev/video$DEV:fps=30000/1001:chanlist=us-bcast:\&lt;br /&gt;
audiorate=32000:alsa:adevice=hw.$DEV:input=0:amode=1:normid=4:width=576:height=480 \&lt;br /&gt;
-ovc x264 -x264encopts bitrate=500:bframes=2:subq=2:me=2:frameref=2 \&lt;br /&gt;
-oac mp3lame -lameopts cbr:br=64 -endpos $TIM -o $DIR/$FIL.avi tv:// &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Time-stamping script===&lt;br /&gt;
&lt;br /&gt;
The main script calls this little routine for timestamping the closed captioning files. this is useful only if you want to set up a searchable database of text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# /usr/local/bin/channel-timestamp&lt;br /&gt;
#&lt;br /&gt;
# This shell script is used to add timestamps to closed captioning&lt;br /&gt;
# It is called by the main recording script, /usr/local/bin/channel.&lt;br /&gt;
#&lt;br /&gt;
# Add -xv to the top line to get verbose messages&lt;br /&gt;
#&lt;br /&gt;
# Changelog:&lt;br /&gt;
#  2005-01-12: The parent script now handles child process terminations&lt;br /&gt;
#  2005-01-13: Timestamps could use XDS data -- start with the date and&lt;br /&gt;
#              include title (not implemented)&lt;br /&gt;
#&lt;br /&gt;
# *****************************************************************&lt;br /&gt;
&lt;br /&gt;
# Write the first timestamp&lt;br /&gt;
echo $(date +%F_%H:%M:%S)_$1$2 &amp;gt;&amp;gt; $3/$4.txt&lt;br /&gt;
&lt;br /&gt;
# Write a timestamp every ten seconds&lt;br /&gt;
while true&lt;br /&gt;
 do&lt;br /&gt;
  sleep 10&lt;br /&gt;
  echo $(date +%F_%H:%M:%S)_$1$2 &amp;gt;&amp;gt; $3/$4.txt&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# EOF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Crontabs===&lt;br /&gt;
&lt;br /&gt;
While programs can be captured manually using the channel script, I use [http://www.linuxhelp.net/guides/cron/ cron] for scheduled recordings. &lt;br /&gt;
&lt;br /&gt;
Here are some examples of crontab usage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Folders to search for program files.&lt;br /&gt;
PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
# Email output to specified account.&lt;br /&gt;
MAILTO=tna&lt;br /&gt;
# KCAL 9 News at 9pm&lt;br /&gt;
0 21 * * 6      channel 9, 60min, &amp;quot;News at 9pm&amp;quot;, 1&lt;br /&gt;
# KNBC 4 Meet the Press&lt;br /&gt;
0 8 * * 7       channel 4, 60min, &amp;quot;Meet the Press&amp;quot;, 2&lt;br /&gt;
# KABC 7 World News Tonight&lt;br /&gt;
30 17 * * 7     channel 7, 30min, &amp;quot;World News Tonight&amp;quot;, 1&lt;br /&gt;
# KCBS 2 60 Minutes&lt;br /&gt;
0 19 * * 7      channel 2, 60min, &amp;quot;60 Minutes&amp;quot;, 1&lt;br /&gt;
# Fox 11 Morning News at 6 AM/ Good Day LA&lt;br /&gt;
0 6 * * 1,2,3,4,5       channel 11, 60min, &amp;quot;Morning News at 6&amp;quot;, 1&lt;br /&gt;
# KCET 28 BBC World News&lt;br /&gt;
30 5 * * 1,2,3,4,5      channel 28, 30min, &amp;quot;BBC World News&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can edit crontab with kcron or with the &amp;quot;crontab -e&amp;quot; command. It's also possible to use scripts to add jobs:&lt;br /&gt;
&lt;br /&gt;
  crontab -l &amp;gt;&amp;gt; newjob | crontab newjob&lt;br /&gt;
&lt;br /&gt;
If you have a complex crontab you don't want to lose, back it up with &amp;quot;crontab -l &amp;gt; crontab-$(date +%F_%H:%M)&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/V4L_IEEE1394_devices</id>
		<title>V4L IEEE1394 devices</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/V4L_IEEE1394_devices"/>
				<updated>2008-02-15T05:33:14Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &amp;quot;Firewire&amp;quot; is strictly speaking Apple's badge on the ieee1394 standard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Development:_Video4Linux_APIs|V4L API]] in itself does not support any [http://www.linux1394.org ieee1394] (Firewire) devices.  However, in the case of some devices, V4L applications can obtain access to video via ieee1394, using either a [[Loopback|loopback]] or LD_PRELOAD method.&lt;br /&gt;
&lt;br /&gt;
== via Loopback ==&lt;br /&gt;
* V4L with ieee1394 camcorders: &lt;br /&gt;
** using DV4Linux's [http://dv4l.berlios.de dv4l]&lt;br /&gt;
** using [http://www.kinodv.org/ dvgrab] and [http://www.lavrsen.dk/twiki/bin/view/Motion/Dv2Vloopback dv2vloopback]&lt;br /&gt;
* V4L with ieee1394 cameras: &lt;br /&gt;
** using [http://damien.douxchamps.net/ieee1394/coriander/index.php Coriander] &lt;br /&gt;
&lt;br /&gt;
== via LD_PRELOAD==&lt;br /&gt;
* V4L with ieee1394 camcorders:&lt;br /&gt;
** using DV4Linux's [http://dv4l.berlios.de dv4lstart]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/V4L_capturing</id>
		<title>V4L capturing</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/V4L_capturing"/>
				<updated>2008-01-12T14:09:46Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TV Recording applications==&lt;br /&gt;
&lt;br /&gt;
* [http://dvr.sourceforge.net DVR] -- Digital Video Recorder for Linux&lt;br /&gt;
* [http://ffmpeg.sourceforge.net/index.php ffmpeg] (see also below)&lt;br /&gt;
** [http://man.cx/ffmpeg(1) man page] (man.cx)&lt;br /&gt;
* [http://fftv.sourceforge.net fftv]&lt;br /&gt;
* [[gstreamer]]&lt;br /&gt;
* [http://xawdecode.sourceforge.net/ XdTV] -- XdTV is a software that allows you to watch record &amp;amp; stream TV&lt;br /&gt;
* [http://freevo.sourceforge.net Freevo] -- open-source digital video jukebox&lt;br /&gt;
* [[mencoder]]&lt;br /&gt;
** [http://linuxreviews.org/man/mencoder/ man page] (''Linux Reviews'')&lt;br /&gt;
** [[channel script |the channel scripts]]&lt;br /&gt;
** [[capture script |the capture script]]&lt;br /&gt;
* [[MythTV]] -- a Personal Video Recorder project&lt;br /&gt;
* [[streamer]]&lt;br /&gt;
* [[transcode]]&lt;br /&gt;
* [http://paginas.terra.com.br/informatica/gleicon/video4linux/videodog.html videodog]&lt;br /&gt;
* [[vlc]]&lt;br /&gt;
&lt;br /&gt;
==Other frame grabbers==&lt;br /&gt;
&lt;br /&gt;
* See [[webcams]]&lt;br /&gt;
&lt;br /&gt;
==Common configuration and control commands==&lt;br /&gt;
&lt;br /&gt;
1. [[v4l2ucp]] -- universal control panel for v4l2  (available for Debian from [http://debian.video.free.fr/ Marillat])&lt;br /&gt;
&lt;br /&gt;
2. Command-line control the TV card &lt;br /&gt;
&lt;br /&gt;
:a. v4lctl is a part of the xawtv package&lt;br /&gt;
:* v4lctl -c /dev/video0 list&lt;br /&gt;
:* v4lctl -c /dev/video0 bright &amp;quot;60%&amp;quot;&lt;br /&gt;
:* v4lctl -c /dev/video0 contrast &amp;quot;55%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:b. [http://www.vanheusden.com/dov4l/ dov4l]&lt;br /&gt;
:* Console tool that sets the parameters of a Video4Linux-device&lt;br /&gt;
:* You can set picture size, brightness, contrast, tuner frequency, and so on.&lt;br /&gt;
:* You can also retrieve a complete list of all current settings.&lt;br /&gt;
&lt;br /&gt;
3. Capture the stream &lt;br /&gt;
:* videodog:&lt;br /&gt;
:: ''Usage:'' &lt;br /&gt;
:: videodog -x 640 -y 480 -w 3 -b 1 -c 65535 -m PAL -q  -d /dev/video0 -j -f /var/www/webcam.jpg&lt;br /&gt;
:* webcam:&lt;br /&gt;
:: This useful tool supports continuously moving (ftp or scp - ssh copy) of jpeg output to remote server. Also allows put in additional text (date time, location), rotating of image. &lt;br /&gt;
:: ''Usage:'' &lt;br /&gt;
:: webcam /etc/webcamrc&lt;br /&gt;
:: See [[webcams]] for model and driver details&lt;br /&gt;
&lt;br /&gt;
==Capture from composite or S-video==&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -async 12 -vd /dev/video -ad /dev/dsp -f avi -r 25 -s 720x576 -croptop 8 -cropbottom 8 -cropleft 8 \&lt;br /&gt;
 -cropright 8 -sameq -aspect 4:3 -acodec mp2 -ac 2 -ab 224k -ar 48000 -y -t 04:30:00 outfile.avi&lt;br /&gt;
&lt;br /&gt;
:*-async 12 (helps eliminate problems with audio/video syncronization)&lt;br /&gt;
:*v4lctl setattr vcr_hack (needed for bttv cards - can also be set in /etc/modprobe.conf)	&lt;br /&gt;
:*crop values result in far better quality/file size&lt;br /&gt;
&lt;br /&gt;
==Compression formats==&lt;br /&gt;
&lt;br /&gt;
:*[http://wiki.multimedia.cx Multimediawiki]&lt;br /&gt;
:*[http://www.fourcc.org/ Fourcc site]&lt;br /&gt;
:*[http://developers.videolan.org/x264.html x264] -- GPL H.264 encoder&lt;br /&gt;
:**Offers best quality/bitrate efficiency, but a fast CPU for playback/recording is recommended&lt;br /&gt;
:**[http://mirror01.x264.nl/x264/changelog.txt x264 Changelog]&lt;br /&gt;
:**[http://www.avidemux.org/admWiki/index.php?title=H264 Options] overview in Avidemux&lt;br /&gt;
:*[http://www.xvid.org xvid] -- free mpeg4 codec&lt;br /&gt;
&lt;br /&gt;
==Live x264 capture comparison==&lt;br /&gt;
&lt;br /&gt;
The x264 encoder is now of such a high quality that it is possible to compress live tv on the fly with good results. So far transcode is the only solution that delivers on all counts: good audio/video synchronization, small file size, efficient encoding (full size and high quality without dropped frames), and a resulting file that streams with VLC. These results, however, may vary locally; the following is a status report from late March 2006 on a Debian amd64 sid with Marillat's multimedia packages and a dual-core or dual amd64 CPU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;10&amp;quot; cellpadding=&amp;quot;5&amp;quot; width=&amp;quot;70%&amp;quot; cellspacing=&amp;quot;3&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;application&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;a/v sync&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;efficiency&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;file size&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;streaming&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;ffmpeg&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;middling&amp;lt;/td&amp;gt;     &lt;br /&gt;
&amp;lt;td&amp;gt;good&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;small&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;yes&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;mencoder&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;great&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;poor&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;smaller&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;no&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;transcode&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;good&amp;lt;/td&amp;gt;      &lt;br /&gt;
&amp;lt;td&amp;gt;great&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;variable&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;yes&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;ffmpeg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -threads 2 -vd /dev/video$DEV -r 29.97 -b 800 -s 640x480 -vcodec h264 -qmax 51 \&lt;br /&gt;
 -me epzs -deinterlace -g 300 -async 1 -ac 2 -acodec mp3 -ab 96 -ar 32000 \&lt;br /&gt;
 -ad /dev/dsp$DEV -t $TIM -f avi -y $DIR/$FIL.avi&lt;br /&gt;
&lt;br /&gt;
* a/v sync drifts a bit -- not reliable&lt;br /&gt;
* encoding efficiency is high, but frames are dropped silently&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;mencoder&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 mencoder -tv driver=v4l2:device=/dev/video$DEV:fps=30000/1001:chanlist=us-bcast:\&lt;br /&gt;
 audiorate=32000:adevice=/dev/dsp$DEV:input=0:amode=1:normid=4:width=512:height=384 \&lt;br /&gt;
 -ovc x264 -x264encopts threads=2:bitrate=800:subq=2:me=2:frameref=4:8x8dct \&lt;br /&gt;
 -oac mp3lame -lameopts cbr:br=96 -endpos $TIM -o $DIR/$FIL.avi tv:// &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
* creates files that don't stream correctly in VLC -- we've not got to the bottom of this&lt;br /&gt;
* encoding efficiency is somewhat below ffmpeg and transcode -- cannot capture to full 640x480 size without dropping frames&lt;br /&gt;
* superior to the others in its ability to accept a much fuller set of x264 encoding parameters&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;transcode&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 transcode -x v4l2=resync_margin=1:resync_interval=250,v4l2 -M 2 \&lt;br /&gt;
 -i /dev/video$DEV -p /dev/dsp$DEV -y ffmpeg -F h264 -c 00:$TIM \&lt;br /&gt;
 -g 640x480 -f 29.970,4 -u 1024,2 -w 800 -b 96 -Q 5 -e 32000,16,2 \&lt;br /&gt;
 --lame_preset medium -o $DIR/$FIL.avi&lt;br /&gt;
&lt;br /&gt;
* after adding the resync parameters, the sync problem, previously severe, appears to be solved!&lt;br /&gt;
* does a great job keeping up with frames -- full-size capture with no drops -- though I'm still wondering if it might be dropping frames silently &lt;br /&gt;
* file sizes are highly variable and are poorly controlled by the -w video bitrate switch&lt;br /&gt;
* on a single CPU, the audio track is confused and overlapping; on a dual-core or dual CPU, the result is good&lt;br /&gt;
* to run two threads, see [[Transcode]].&lt;br /&gt;
&lt;br /&gt;
A change was made to the x264 repository on 1 August 2006 that allows the switch --threads=auto to detect the number of CPUs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;General&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File size is in theory a simple function of audio and video bitrates. In practice, ffmpeg and mencoder produce files according to bitrate settings, while transcode is all over the map -- in a small sample of ten, an hour at &amp;quot;-w 500&amp;quot;  ranged from a small 377MB all the way up to 684MB, and &amp;quot;-w 800&amp;quot; from 407MB to 754MB. Quality may also vary; currently not assessed.&lt;br /&gt;
&lt;br /&gt;
See also [[Talk:TV_Recording |Discussion]].&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/V4L_capturing</id>
		<title>V4L capturing</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/V4L_capturing"/>
				<updated>2008-01-11T16:17:31Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TV Recording applications==&lt;br /&gt;
&lt;br /&gt;
* [http://dvr.sourceforge.net DVR] -- Digital Video Recorder for Linux&lt;br /&gt;
* [http://ffmpeg.sourceforge.net/index.php ffmpeg] (see also below)&lt;br /&gt;
* [http://fftv.sourceforge.net fftv]&lt;br /&gt;
* [[gstreamer]]&lt;br /&gt;
* [http://xawdecode.sourceforge.net/ XdTV] -- XdTV is a software that allows you to watch record &amp;amp; stream TV&lt;br /&gt;
* [http://freevo.sourceforge.net Freevo] -- open-source digital video jukebox&lt;br /&gt;
* [[mencoder]]&lt;br /&gt;
** [http://linuxreviews.org/man/mencoder/ man page] (''Linux Reviews'')&lt;br /&gt;
** [[channel script |the channel scripts]]&lt;br /&gt;
** [[capture script |the capture script]]&lt;br /&gt;
* [[MythTV]] -- a Personal Video Recorder project&lt;br /&gt;
* [[streamer]]&lt;br /&gt;
* [[transcode]]&lt;br /&gt;
* [http://paginas.terra.com.br/informatica/gleicon/video4linux/videodog.html videodog]&lt;br /&gt;
* [[vlc]]&lt;br /&gt;
&lt;br /&gt;
==Other frame grabbers==&lt;br /&gt;
&lt;br /&gt;
* See [[webcams]]&lt;br /&gt;
&lt;br /&gt;
==Common configuration and control commands==&lt;br /&gt;
&lt;br /&gt;
1. [[v4l2ucp]] -- universal control panel for v4l2  (available for Debian from [http://debian.video.free.fr/ Marillat])&lt;br /&gt;
&lt;br /&gt;
2. Command-line control the TV card &lt;br /&gt;
&lt;br /&gt;
:a. v4lctl is a part of the xawtv package&lt;br /&gt;
:* v4lctl -c /dev/video0 list&lt;br /&gt;
:* v4lctl -c /dev/video0 bright &amp;quot;60%&amp;quot;&lt;br /&gt;
:* v4lctl -c /dev/video0 contrast &amp;quot;55%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:b. [http://www.vanheusden.com/dov4l/ dov4l]&lt;br /&gt;
:* Console tool that sets the parameters of a Video4Linux-device&lt;br /&gt;
:* You can set picture size, brightness, contrast, tuner frequency, and so on.&lt;br /&gt;
:* You can also retrieve a complete list of all current settings.&lt;br /&gt;
&lt;br /&gt;
3. Capture the stream &lt;br /&gt;
:* videodog:&lt;br /&gt;
:: ''Usage:'' &lt;br /&gt;
:: videodog -x 640 -y 480 -w 3 -b 1 -c 65535 -m PAL -q  -d /dev/video0 -j -f /var/www/webcam.jpg&lt;br /&gt;
:* webcam:&lt;br /&gt;
:: This useful tool supports continuously moving (ftp or scp - ssh copy) of jpeg output to remote server. Also allows put in additional text (date time, location), rotating of image. &lt;br /&gt;
:: ''Usage:'' &lt;br /&gt;
:: webcam /etc/webcamrc&lt;br /&gt;
:: See [[webcams]] for model and driver details&lt;br /&gt;
&lt;br /&gt;
==Capture from composite or S-video==&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -async 12 -vd /dev/video -ad /dev/dsp -f avi -r 25 -s 720x576 -croptop 8 -cropbottom 8 -cropleft 8 \&lt;br /&gt;
 -cropright 8 -sameq -aspect 4:3 -acodec mp2 -ac 2 -ab 224k -ar 48000 -y -t 04:30:00 outfile.avi&lt;br /&gt;
&lt;br /&gt;
:*-async 12 (helps eliminate problems with audio/video syncronization)&lt;br /&gt;
:*v4lctl setattr vcr_hack (needed for bttv cards - can also be set in /etc/modprobe.conf)	&lt;br /&gt;
:*crop values result in far better quality/file size&lt;br /&gt;
&lt;br /&gt;
==Compression formats==&lt;br /&gt;
&lt;br /&gt;
:*[http://wiki.multimedia.cx Multimediawiki]&lt;br /&gt;
:*[http://www.fourcc.org/ Fourcc site]&lt;br /&gt;
:*[http://developers.videolan.org/x264.html x264] -- GPL H.264 encoder&lt;br /&gt;
:**Offers best quality/bitrate efficiency, but a fast CPU for playback/recording is recommended&lt;br /&gt;
:**[http://mirror01.x264.nl/x264/changelog.txt x264 Changelog]&lt;br /&gt;
:**[http://www.avidemux.org/admWiki/index.php?title=H264 Options] overview in Avidemux&lt;br /&gt;
:*[http://www.xvid.org xvid] -- free mpeg4 codec&lt;br /&gt;
&lt;br /&gt;
==Live x264 capture comparison==&lt;br /&gt;
&lt;br /&gt;
The x264 encoder is now of such a high quality that it is possible to compress live tv on the fly with good results. So far transcode is the only solution that delivers on all counts: good audio/video synchronization, small file size, efficient encoding (full size and high quality without dropped frames), and a resulting file that streams with VLC. These results, however, may vary locally; the following is a status report from late March 2006 on a Debian amd64 sid with Marillat's multimedia packages and a dual-core or dual amd64 CPU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;10&amp;quot; cellpadding=&amp;quot;5&amp;quot; width=&amp;quot;70%&amp;quot; cellspacing=&amp;quot;3&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;application&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;a/v sync&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;efficiency&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;file size&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;streaming&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;ffmpeg&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;middling&amp;lt;/td&amp;gt;     &lt;br /&gt;
&amp;lt;td&amp;gt;good&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;small&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;yes&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;mencoder&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;great&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;poor&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;smaller&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;no&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;transcode&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;good&amp;lt;/td&amp;gt;      &lt;br /&gt;
&amp;lt;td&amp;gt;great&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;variable&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;yes&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;ffmpeg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -threads 2 -vd /dev/video$DEV -r 29.97 -b 800 -s 640x480 -vcodec h264 -qmax 51 \&lt;br /&gt;
 -me epzs -deinterlace -g 300 -async 1 -ac 2 -acodec mp3 -ab 96 -ar 32000 \&lt;br /&gt;
 -ad /dev/dsp$DEV -t $TIM -f avi -y $DIR/$FIL.avi&lt;br /&gt;
&lt;br /&gt;
* a/v sync drifts a bit -- not reliable&lt;br /&gt;
* encoding efficiency is high, but frames are dropped silently&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;mencoder&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 mencoder -tv driver=v4l2:device=/dev/video$DEV:fps=30000/1001:chanlist=us-bcast:\&lt;br /&gt;
 audiorate=32000:adevice=/dev/dsp$DEV:input=0:amode=1:normid=4:width=512:height=384 \&lt;br /&gt;
 -ovc x264 -x264encopts threads=2:bitrate=800:subq=2:me=2:frameref=4:8x8dct \&lt;br /&gt;
 -oac mp3lame -lameopts cbr:br=96 -endpos $TIM -o $DIR/$FIL.avi tv:// &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
* creates files that don't stream correctly in VLC -- we've not got to the bottom of this&lt;br /&gt;
* encoding efficiency is somewhat below ffmpeg and transcode -- cannot capture to full 640x480 size without dropping frames&lt;br /&gt;
* superior to the others in its ability to accept a much fuller set of x264 encoding parameters&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;transcode&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 transcode -x v4l2=resync_margin=1:resync_interval=250,v4l2 -M 2 \&lt;br /&gt;
 -i /dev/video$DEV -p /dev/dsp$DEV -y ffmpeg -F h264 -c 00:$TIM \&lt;br /&gt;
 -g 640x480 -f 29.970,4 -u 1024,2 -w 800 -b 96 -Q 5 -e 32000,16,2 \&lt;br /&gt;
 --lame_preset medium -o $DIR/$FIL.avi&lt;br /&gt;
&lt;br /&gt;
* after adding the resync parameters, the sync problem, previously severe, appears to be solved!&lt;br /&gt;
* does a great job keeping up with frames -- full-size capture with no drops -- though I'm still wondering if it might be dropping frames silently &lt;br /&gt;
* file sizes are highly variable and are poorly controlled by the -w video bitrate switch&lt;br /&gt;
* on a single CPU, the audio track is confused and overlapping; on a dual-core or dual CPU, the result is good&lt;br /&gt;
* to run two threads, see [[Transcode]].&lt;br /&gt;
&lt;br /&gt;
A change was made to the x264 repository on 1 August 2006 that allows the switch --threads=auto to detect the number of CPUs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;General&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File size is in theory a simple function of audio and video bitrates. In practice, ffmpeg and mencoder produce files according to bitrate settings, while transcode is all over the map -- in a small sample of ten, an hour at &amp;quot;-w 500&amp;quot;  ranged from a small 377MB all the way up to 684MB, and &amp;quot;-w 800&amp;quot; from 407MB to 754MB. Quality may also vary; currently not assessed.&lt;br /&gt;
&lt;br /&gt;
See also [[Talk:TV_Recording |Discussion]].&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/V4L_capturing</id>
		<title>V4L capturing</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/V4L_capturing"/>
				<updated>2008-01-11T16:15:13Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==TV Recording applications==&lt;br /&gt;
&lt;br /&gt;
* [http://dvr.sourceforge.net DVR] -- Digital Video Recorder for Linux&lt;br /&gt;
* [http://ffmpeg.sourceforge.net/index.php ffmpeg] (see also below)&lt;br /&gt;
** [http://linuxreviews.org/man/ffmpeg/ man page] (''Linux Reviews'')&lt;br /&gt;
* [http://fftv.sourceforge.net fftv]&lt;br /&gt;
* [[gstreamer]]&lt;br /&gt;
* [http://xawdecode.sourceforge.net/ XdTV] -- XdTV is a software that allows you to watch record &amp;amp; stream TV&lt;br /&gt;
* [http://freevo.sourceforge.net Freevo] -- open-source digital video jukebox&lt;br /&gt;
* [[mencoder]]&lt;br /&gt;
** [http://linuxreviews.org/man/mencoder/ man page] (''Linux Reviews'')&lt;br /&gt;
** [[channel script |the channel scripts]]&lt;br /&gt;
** [[capture script |the capture script]]&lt;br /&gt;
* [[MythTV]] -- a Personal Video Recorder project&lt;br /&gt;
* [[streamer]]&lt;br /&gt;
* [[transcode]]&lt;br /&gt;
* [http://paginas.terra.com.br/informatica/gleicon/video4linux/videodog.html videodog]&lt;br /&gt;
* [[vlc]]&lt;br /&gt;
&lt;br /&gt;
==Other frame grabbers==&lt;br /&gt;
&lt;br /&gt;
* See [[webcams]]&lt;br /&gt;
&lt;br /&gt;
==Common configuration and control commands==&lt;br /&gt;
&lt;br /&gt;
1. [[v4l2ucp]] -- universal control panel for v4l2  (available for Debian from [http://debian.video.free.fr/ Marillat])&lt;br /&gt;
&lt;br /&gt;
2. Command-line control the TV card &lt;br /&gt;
&lt;br /&gt;
:a. v4lctl is a part of the xawtv package&lt;br /&gt;
:* v4lctl -c /dev/video0 list&lt;br /&gt;
:* v4lctl -c /dev/video0 bright &amp;quot;60%&amp;quot;&lt;br /&gt;
:* v4lctl -c /dev/video0 contrast &amp;quot;55%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:b. [http://www.vanheusden.com/dov4l/ dov4l]&lt;br /&gt;
:* Console tool that sets the parameters of a Video4Linux-device&lt;br /&gt;
:* You can set picture size, brightness, contrast, tuner frequency, and so on.&lt;br /&gt;
:* You can also retrieve a complete list of all current settings.&lt;br /&gt;
&lt;br /&gt;
3. Capture the stream &lt;br /&gt;
:* videodog:&lt;br /&gt;
:: ''Usage:'' &lt;br /&gt;
:: videodog -x 640 -y 480 -w 3 -b 1 -c 65535 -m PAL -q  -d /dev/video0 -j -f /var/www/webcam.jpg&lt;br /&gt;
:* webcam:&lt;br /&gt;
:: This useful tool supports continuously moving (ftp or scp - ssh copy) of jpeg output to remote server. Also allows put in additional text (date time, location), rotating of image. &lt;br /&gt;
:: ''Usage:'' &lt;br /&gt;
:: webcam /etc/webcamrc&lt;br /&gt;
:: See [[webcams]] for model and driver details&lt;br /&gt;
&lt;br /&gt;
==Capture from composite or S-video==&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -async 12 -vd /dev/video -ad /dev/dsp -f avi -r 25 -s 720x576 -croptop 8 -cropbottom 8 -cropleft 8 \&lt;br /&gt;
 -cropright 8 -sameq -aspect 4:3 -acodec mp2 -ac 2 -ab 224k -ar 48000 -y -t 04:30:00 outfile.avi&lt;br /&gt;
&lt;br /&gt;
:*-async 12 (helps eliminate problems with audio/video syncronization)&lt;br /&gt;
:*v4lctl setattr vcr_hack (needed for bttv cards - can also be set in /etc/modprobe.conf)	&lt;br /&gt;
:*crop values result in far better quality/file size&lt;br /&gt;
&lt;br /&gt;
==Compression formats==&lt;br /&gt;
&lt;br /&gt;
:*[http://wiki.multimedia.cx Multimediawiki]&lt;br /&gt;
:*[http://www.fourcc.org/ Fourcc site]&lt;br /&gt;
:*[http://developers.videolan.org/x264.html x264] -- GPL H.264 encoder&lt;br /&gt;
:**Offers best quality/bitrate efficiency, but a fast CPU for playback/recording is recommended&lt;br /&gt;
:**[http://mirror01.x264.nl/x264/changelog.txt x264 Changelog]&lt;br /&gt;
:**[http://www.avidemux.org/admWiki/index.php?title=H264 Options] overview in Avidemux&lt;br /&gt;
:*[http://www.xvid.org xvid] -- free mpeg4 codec&lt;br /&gt;
&lt;br /&gt;
==Live x264 capture comparison==&lt;br /&gt;
&lt;br /&gt;
The x264 encoder is now of such a high quality that it is possible to compress live tv on the fly with good results. So far transcode is the only solution that delivers on all counts: good audio/video synchronization, small file size, efficient encoding (full size and high quality without dropped frames), and a resulting file that streams with VLC. These results, however, may vary locally; the following is a status report from late March 2006 on a Debian amd64 sid with Marillat's multimedia packages and a dual-core or dual amd64 CPU.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;10&amp;quot; cellpadding=&amp;quot;5&amp;quot; width=&amp;quot;70%&amp;quot; cellspacing=&amp;quot;3&amp;quot; frame=&amp;quot;hsides&amp;quot; rules=&amp;quot;all&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;application&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;a/v sync&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;efficiency&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;file size&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;streaming&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;ffmpeg&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;middling&amp;lt;/td&amp;gt;     &lt;br /&gt;
&amp;lt;td&amp;gt;good&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;small&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;yes&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;mencoder&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;great&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;poor&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;smaller&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;no&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;transcode&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;good&amp;lt;/td&amp;gt;      &lt;br /&gt;
&amp;lt;td&amp;gt;great&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;variable&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;yes&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;       &lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;ffmpeg&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ffmpeg -threads 2 -vd /dev/video$DEV -r 29.97 -b 800 -s 640x480 -vcodec h264 -qmax 51 \&lt;br /&gt;
 -me epzs -deinterlace -g 300 -async 1 -ac 2 -acodec mp3 -ab 96 -ar 32000 \&lt;br /&gt;
 -ad /dev/dsp$DEV -t $TIM -f avi -y $DIR/$FIL.avi&lt;br /&gt;
&lt;br /&gt;
* a/v sync drifts a bit -- not reliable&lt;br /&gt;
* encoding efficiency is high, but frames are dropped silently&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;mencoder&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 mencoder -tv driver=v4l2:device=/dev/video$DEV:fps=30000/1001:chanlist=us-bcast:\&lt;br /&gt;
 audiorate=32000:adevice=/dev/dsp$DEV:input=0:amode=1:normid=4:width=512:height=384 \&lt;br /&gt;
 -ovc x264 -x264encopts threads=2:bitrate=800:subq=2:me=2:frameref=4:8x8dct \&lt;br /&gt;
 -oac mp3lame -lameopts cbr:br=96 -endpos $TIM -o $DIR/$FIL.avi tv:// &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
* creates files that don't stream correctly in VLC -- we've not got to the bottom of this&lt;br /&gt;
* encoding efficiency is somewhat below ffmpeg and transcode -- cannot capture to full 640x480 size without dropping frames&lt;br /&gt;
* superior to the others in its ability to accept a much fuller set of x264 encoding parameters&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;transcode&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 transcode -x v4l2=resync_margin=1:resync_interval=250,v4l2 -M 2 \&lt;br /&gt;
 -i /dev/video$DEV -p /dev/dsp$DEV -y ffmpeg -F h264 -c 00:$TIM \&lt;br /&gt;
 -g 640x480 -f 29.970,4 -u 1024,2 -w 800 -b 96 -Q 5 -e 32000,16,2 \&lt;br /&gt;
 --lame_preset medium -o $DIR/$FIL.avi&lt;br /&gt;
&lt;br /&gt;
* after adding the resync parameters, the sync problem, previously severe, appears to be solved!&lt;br /&gt;
* does a great job keeping up with frames -- full-size capture with no drops -- though I'm still wondering if it might be dropping frames silently &lt;br /&gt;
* file sizes are highly variable and are poorly controlled by the -w video bitrate switch&lt;br /&gt;
* on a single CPU, the audio track is confused and overlapping; on a dual-core or dual CPU, the result is good&lt;br /&gt;
* to run two threads, see [[Transcode]].&lt;br /&gt;
&lt;br /&gt;
A change was made to the x264 repository on 1 August 2006 that allows the switch --threads=auto to detect the number of CPUs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;General&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File size is in theory a simple function of audio and video bitrates. In practice, ffmpeg and mencoder produce files according to bitrate settings, while transcode is all over the map -- in a small sample of ten, an hour at &amp;quot;-w 500&amp;quot;  ranged from a small 377MB all the way up to 684MB, and &amp;quot;-w 800&amp;quot; from 407MB to 754MB. Quality may also vary; currently not assessed.&lt;br /&gt;
&lt;br /&gt;
See also [[Talk:TV_Recording |Discussion]].&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC</id>
		<title>LifeView FlyVideo3000FM NTSC</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC"/>
				<updated>2007-12-12T16:11:28Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Recording with mencoder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:LifeView-FlyVideo-3000FM.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
===Introduction ===&lt;br /&gt;
&lt;br /&gt;
This card works perfectly -- it gets 640x480 frames, audio directly from the card, and closed captioning.  I've worked with up to five cards in one computer, though you need a powerful CPU to keep up with the data flow. &lt;br /&gt;
&lt;br /&gt;
For detailed images of the various slightly different models, see [http://www.bttv-gallery.de/ bttv gallery]. Most of LifeView's saa713x cards fit both 32-bit PCI slots and 64-bit PCI-X slots -- see the telltale second slit in the foot of the card.&lt;br /&gt;
&lt;br /&gt;
See also [[LifeView FlyVideo3000 PAL-N]].&lt;br /&gt;
&lt;br /&gt;
=== Identification ===&lt;br /&gt;
&lt;br /&gt;
The 3000 and the 3000FM cards are identified as having the same subsystem:&lt;br /&gt;
&lt;br /&gt;
  lspci -vvv: 02:0a.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev 10)&lt;br /&gt;
        Subsystem: Unknown device 5169:0138&lt;br /&gt;
&lt;br /&gt;
The cards have the [http://www.semiconductors.philips.com/pip/SAA7133HL_V101.html saa7133HL-v101] chip.&lt;br /&gt;
&lt;br /&gt;
=== Loading the right driver ===&lt;br /&gt;
&lt;br /&gt;
The card needs the saa7134 driver, which should be built as a module in the kernel. When the module is inserted, your particular variant may be autodetected or you may need to manually configure it. Try the simplest method first:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134&lt;br /&gt;
&lt;br /&gt;
If the card is not working right, and you have a recent kernel, try this:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 i2c_scan=1&lt;br /&gt;
&lt;br /&gt;
If both fail, you may need to configure the card manually by passing values for the card and/or tuner.&lt;br /&gt;
&lt;br /&gt;
=== Selecting the tuner ===&lt;br /&gt;
&lt;br /&gt;
Use card 2 in the Documentation/video4linux/CARDLIST.saa7134. Versions of FlyVideo 3000 are shipped with different [[Tuners |tuners]]; to find yours, grep on the card and your television standard to pull up relevant alternatives:&lt;br /&gt;
&lt;br /&gt;
 grep Philips Documentation/video4linux/CARDLIST.tuner | grep NTSC&lt;br /&gt;
&lt;br /&gt;
For the NTSC tuner on the FlyVideo 3000 (without the radio), I found 17 was the right one. The FlyVideo3000FM has a different tuner, and I found 43 works, but only gives you channels below 60. Tuner 39 gives you all channels. In kernel 2.6.12 I had to reboot to reset the tuner -- modprobe didn't do it -- but in kernel 2.6.18 the tuner reset without a reboot. With 2.6.19, I switched to tuner 95.&lt;br /&gt;
&lt;br /&gt;
=== Inserting the module ===&lt;br /&gt;
&lt;br /&gt;
For this card, if autodetection fails, you can insert the module with the following options:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 card=2 tuner=39&lt;br /&gt;
&lt;br /&gt;
The 3000 version of the card (without radio) takes tuner 17.&lt;br /&gt;
&lt;br /&gt;
When you've found a method that works -- autodetection or manual configuration -- include the working options in your modules configuration setup. For details, see [[Generic_SAA7134_Card_Installation#Drivers_probing]].&lt;br /&gt;
&lt;br /&gt;
=== Getting PCI audio ===&lt;br /&gt;
&lt;br /&gt;
You can get the audio from the card through the PCI bus instead of through the audio out jack and a patch cable to your sound card.  &lt;br /&gt;
&lt;br /&gt;
For kernels 2.6.15 and later, see [[Saa7134-alsa]] for details on both ALSA and OSS sound. &lt;br /&gt;
&lt;br /&gt;
For earlier kernels, adding &amp;quot;oss=1&amp;quot; as an insmod parameter will create /dev/dsp1 and /dev/mixer1. For detailed instructions, see [http://gentoo-wiki.com/HARDWARE_saa7134 Gentoo's saa7134 wiki].&lt;br /&gt;
&lt;br /&gt;
In earlier kernels, you use &lt;br /&gt;
&lt;br /&gt;
   aumix -d /dev/mixer1 -I&lt;br /&gt;
&lt;br /&gt;
to set the recording channel to 1.&lt;br /&gt;
&lt;br /&gt;
=== Recording with mencoder ===&lt;br /&gt;
&lt;br /&gt;
Use something like this:&lt;br /&gt;
 &lt;br /&gt;
   mencoder tv:// -tv driver=v4l2:device=/dev/video1:fps=30000/1001:chanlist=us-cable:audiorate=32000:&lt;br /&gt;
   adevice=/dev/dsp1:input=0:amode=1:normid=4 -ffourcc DX50 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2 &lt;br /&gt;
   -oac mp3lame -lameopts cbr:br=128 -endpos 60 -o output.avi&lt;br /&gt;
&lt;br /&gt;
This gives me stereo audio with medium-quality video. I found that if I included &amp;quot;-of mpeg&amp;quot; to create a true mpeg stream, the audio got delayed -- there are no sync problems with the avi file.&lt;br /&gt;
&lt;br /&gt;
=== Recording with transcode ===&lt;br /&gt;
&lt;br /&gt;
You can also use transcode to record:&lt;br /&gt;
&lt;br /&gt;
   transcode -x v4l2,v4l2 -M 2 -i /dev/video$DEV -p /dev/dsp1 -e 32000,16,2 -y ffmpeg -F mpeg4 &lt;br /&gt;
   -c 00:30 -g 640x480 -f 29.970,4 -I 1 -u 1024 -Q 3 -E 32000,16,2 --lame_preset medium -o output.avi&lt;br /&gt;
&lt;br /&gt;
Note the &amp;quot;-e 32000,16,2&amp;quot;, letting transcode know about the parameters of the audio stream from the saa7134 card. &lt;br /&gt;
&lt;br /&gt;
The files produced in this manner are almost twice as large as the ones produced by the mencoder command above, but show significantly less pixillation. CPU utilization is also about double. For the saa7134, 48000Hz is only valid for external audio input to the card; for internal audio input (directly via the PCI bus), you have to use 32000Hz.&lt;br /&gt;
&lt;br /&gt;
=== Loading multiple cards ===&lt;br /&gt;
&lt;br /&gt;
If you have more than one card in the same machine, and want to control which devices they create, you can use this sort of thing with kernels before 2.6.15:&lt;br /&gt;
&lt;br /&gt;
 saa7134 video_nr=1,2,3 vbi_nr=1,2,3 mixer_nr=1,2,3 radio_nr=1,2,3 card=2,2,2 tuner=39,39,17 &lt;br /&gt;
&lt;br /&gt;
With 2.6.15 and later kernels, use this instead (drop the mixer and add a line for the audio driver):&lt;br /&gt;
&lt;br /&gt;
 saa7134 card=2,2,2 tuner=39,39,17 video_nr=1,2,3 vbi_nr=1,2,3 radio_nr=1,2,3&lt;br /&gt;
 saa7134-alsa index=1,2,3&lt;br /&gt;
&lt;br /&gt;
In /etc/modprobe.d/saa7134, I use this for five different cards (including two [[LifeView FlyTV Platinum]] cards):&lt;br /&gt;
&lt;br /&gt;
      options saa7134 card=2,54,2,54,2 tuner=39,54,39,54,17 video_nr=1,2,3,4,5 \&lt;br /&gt;
      vbi_nr=1,2,3,4,5 radio_nr=1,2,3,4,5 disable_ir=1,1,1,1,1&lt;br /&gt;
      install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-alsa&lt;br /&gt;
      options saa7134-alsa index=1,2,3,4,5&lt;br /&gt;
&lt;br /&gt;
This creates video1, vbi1, radio1, and the alsa device hw:1 for the first card, and so on up.&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
With the FlyVideo 3000(FM), you should have the small grey credit-card sized remote. And yes, this is [http://www.mail-archive.com/video4linux-list@redhat.com/msg04784.html supported] and should be working (I haven't tested it).&lt;br /&gt;
&lt;br /&gt;
For instructions, see [[Generic_SAA7134_Card_Installation#Remote_setup]].&lt;br /&gt;
&lt;br /&gt;
=== Closed captioning ===&lt;br /&gt;
&lt;br /&gt;
Closed captioning on saa713x is now working; Michael Schimek has added support to libzvbi (mid-May 2005); see [[Text capture]].&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://www.lifeview.com/usa/html/products/PCITV/FlyVideo3000-w1.htm LifeView product page]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Webcam_Devices</id>
		<title>Webcam Devices</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Webcam_Devices"/>
				<updated>2007-09-23T00:16:50Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Applications */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applications==&lt;br /&gt;
&lt;br /&gt;
* [http://tldp.org/HOWTO/Webcam-HOWTO/index.html The Webcam HowTo]&lt;br /&gt;
** [http://tldp.org/HOWTO/Webcam-HOWTO/framegrabbers.html framegrabbing applications] &lt;br /&gt;
* [http://www.ekiga.org Ekiga] -- Ekiga is a free Voice over IP phone allowing you to do free calls over the Internet. Ekiga is the first Open Source application to support both H.323 and SIP, as well as audio and video. Ekiga was formerly known as GnomeMeeting.&lt;br /&gt;
* [http://www.firestorm.cx/fswebcam/ fswebcam] -- fswebcam is a neat and simple webcam app for Linux. It captures images from a V4L1/V4L2 compatible device or file, averages them to reduce noise and draws a caption using the GD Graphics Library which also handles compressing the image to PNG or JPEG. The resulting image is saved to a file or sent to stdio where it can be piped to something like ncftpput or scp.&lt;br /&gt;
* [http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome motion] -- motion-detection using a webcam (on [http://motion.sourceforge.net sourceforge])&lt;br /&gt;
* [http://www.stolk.org/sonic-snap/ sonic-snap] -- webcam application specifically suited for the Sonix sn9c10x chip&lt;br /&gt;
* [http://www.litech.org/spook spook] -- capture live video and audio and stream it over an IP network&lt;br /&gt;
* [http://julien.danjou.info/telak.html telak] -- display remote or local pictures on your desktop&lt;br /&gt;
* [http://vgrabbj.gecius.de/ vgrabbj] -- grabs a image from a camera and puts it in jpg/png format&lt;br /&gt;
* [http://www.linux-projects.org/ Videoview &amp;amp; Device Debugger] -- applications suited for some drivers present in the Linux kernel. Videoview supports the USB Video Class standard.&lt;br /&gt;
* [http://linux.bytesex.org/xawtv webcam] -- captures images and uploads them to a Web-Server via ftp or ssh in a endless loop&lt;br /&gt;
* [http://naaa.de/uvc_streamer.htm UVC-streamer] -- Grabs JPEGs from Linux-UVC compatible cameras and serves them as M-JPEG stream. It is very ressource friendly, most of the time you do not even recognize it in &amp;lt;tt&amp;gt;top&amp;lt;/tt&amp;gt;. It allows to Pan/Tilt the camera, the upcoming second version (''mjpg-streamer'') will also support motion detection and plugins.&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* [http://www.exploits.org/v4l/ Video for Linux resources] -- see Video: Security / Webcams / Monitoring&lt;br /&gt;
* For USB webcams, see also [http://www.qbik.ch/usb/devices/search_res.php?pattern=video&amp;amp;submit=Search%21 video devices] in the [http://www.qbik.ch/usb/devices/index.php USB device overview database]&lt;br /&gt;
&lt;br /&gt;
==UVC webcams==&lt;br /&gt;
&lt;br /&gt;
Do you have USB 2.0 controllers on your notebook and desktop? If so, you could benefit from higher resolutions with the Logitech Quickam for Notebooks Pro, Quickcam Fusion and Quickcam Orbit MP. All those webcams are 1.3MP devices and are supported by the [http://linux-uvc.berlios.de/ linux-uvc] driver. Note that the Quickcam for Notebooks Deluxe doesn't fall in that category; it's supported by the [http://mxhaard.free.fr/ spca5xx] driver.&lt;br /&gt;
&lt;br /&gt;
Those 3 webcams also work in USB 1.1 mode, but are then limited to 640x480. In that case, you could go for the Quickcam Pro 5000, which is a 640x480 device supported by the linux-uvc driver.&lt;br /&gt;
&lt;br /&gt;
UVC webcams are well supported, but you must be aware of a few issues.&lt;br /&gt;
&lt;br /&gt;
* The linux-uvc driver is V4L2-only. This means applications which support V4L1 only will not work. V4L1 is officially deprecated, and have been removed from the kernel recently, so most drivers have or will switch to V4L2 anyway.&lt;br /&gt;
&lt;br /&gt;
* The 4 webcams mentioned above compress images in MJPEG for resolutions up to 960x720. This means that applications must be able to decompress MJPEG streams to use the webcam at lower resolutions. Ekiga supports MJPEG compression.&lt;br /&gt;
&lt;br /&gt;
==Webcam drivers==&lt;br /&gt;
(alphabetize by driver)&lt;br /&gt;
&lt;br /&gt;
Many of these are out-of-tree kernel drivers.&lt;br /&gt;
&lt;br /&gt;
* [http://webcam.sourceforge.net/ cpia] -- first generation of STM's Color Processor Interface (ASIC)  [[Cpia]]&lt;br /&gt;
**Included in mainline kernel&lt;br /&gt;
**Supports a large number of USB devices by Aiptek, Creative, Digicom, Dynalink, Ezonics, Intel, Microtek, Pace, SuperCam, TCE, Terracom, Trust, Utobia, ZoomCam&lt;br /&gt;
**Supports some parallel port devices by Creative, CVideo, CU-SeeMe, Digicom, and ZoomCam&lt;br /&gt;
* [[cpia2]] -- second generation of STM's Color Processor Interface (ASIC)&lt;br /&gt;
**Included in mainline kernel from 2.6.18&lt;br /&gt;
**Supports the [[QX5 USB microscope]], the Swann Versacam MINI webcam, and other devices using the second generation of STM's Color Processor Interface (ASIC)&lt;br /&gt;
* [[em2880]]&lt;br /&gt;
**Supports the [http://videologyinc.com/cameras/ccd-board-camera-20K14XUSB.htm Videology 20K14XUSB webcam]&lt;br /&gt;
**Included in mainline kernel from 2.6.18 (em28xx)&lt;br /&gt;
* [http://www.linux-projects.org et61x251] &lt;br /&gt;
**Supports Etoms ET61X151 or ET61X251-based USB cameras&lt;br /&gt;
**Included in mainline kernel&lt;br /&gt;
* [http://icm532.sourceforge.net/ icm532]&lt;br /&gt;
* [http://linux-uvc.berlios.de/ linux-uvc] -- the USB Video Class Linux device driver&lt;br /&gt;
**Not included in the kernel (as of 2.6.18), but several distros have ready packages&lt;br /&gt;
**Supports several USB2.0 Logitech Quickcams, such as the Orbit MP, the Pro for Notebooks, the Pro 5000, the Dell Notebook, and the Cisco VT Camera II&lt;br /&gt;
* [http://popies.net/meye/ meye] -- the Sony Vaio PictureBook Motion Eye Camera Driver&lt;br /&gt;
**Included in 2.4 and 2.6 kernels -- see [[meye |documentation]]&lt;br /&gt;
**Supports the second version of the MotionEye camera (PCI vendor/device 0x136b/0xff01)&lt;br /&gt;
**A driver for the third version is being written, see r-engine below &lt;br /&gt;
* [http://nw802.sourceforge.net/ nw802]&lt;br /&gt;
* [http://alpha.dyndns.org/ov511/ ov511]&lt;br /&gt;
* [http://www.saillard.org/linux/pwc/ pwc] -- the new driver&lt;br /&gt;
**Available in the latest kernels&lt;br /&gt;
**Supports Philips USB webcams&lt;br /&gt;
**[http://www.lavrsen.dk/twiki/bin/view/PWC/WebHome PWC wiki]&lt;br /&gt;
**[http://www.smcc.demon.nl/webcam/ Discontinued version]&lt;br /&gt;
* [http://qce-ga.sourceforge.net/ qce-ga/qc-usb] &lt;br /&gt;
**Kernel module package available in &lt;br /&gt;
***Debian stable ([http://packages.debian.org/stable/misc/qce-source qce-source])&lt;br /&gt;
***Deban testing and unstable ([http://packages.debian.org/unstable/misc/qc-usb-source qc-usb-source], see also [http://git.debian.org/?p=collab-maint/qc-usb.git;a=summary git repository])&lt;br /&gt;
**Supports Logitech Quickcam Express, LegoCam, Dexxa Webcam, Labtec Webcam (old model), Logitech QuickCam Notebook (some models)&lt;br /&gt;
* [http://www.informatik.uni-oldenburg.de/%7Edelwi/quickcam/ quickcam]&lt;br /&gt;
* [http://r-engine.sourceforge.net/ r-engine] &lt;br /&gt;
**Aims to support Sony Vaio Picturebooks (model PCG-C1M* and newer, PCI vendor/device 0x10cf/0x2011)&lt;br /&gt;
* [http://members.brabant.chello.nl/%7Ej.vreeken/se401/ se401]&lt;br /&gt;
* [http://sqcam.sourceforge.net/ sqcam]&lt;br /&gt;
**Supports webcams based on the sq905 chip, such as Volcano DG640E, Nexxtech Micro Digital Camera, Umax (Yamada) Astranugget; may work with Mito DG640E, Mitek CD10, Mitek 30P, GTW Electronics/ ShuoYing, Industrial(ShenZhen)Co.,Ltd SY-2102, Condord Eye-Q Easy / Eye Q Easy Too, Che-ez Snap, Hercules DualPix, Argus DC-1512, DC-1510, Gear to go, Magpix B350, Jenoptik JD 350, Concord Eye-Q Easy, PockCam&lt;br /&gt;
* [http://www.linux-projects.org/ Sonix SN9C10x]&lt;br /&gt;
**Available in the latest kernels as sn9c102&lt;br /&gt;
**Supports webcams based on the sn9c102 chip, such as the Genius VideoCam NB&lt;br /&gt;
**Another driver was in development here [http://sonix.sourceforge.net/ sonix]&lt;br /&gt;
**[http://tgnard.free.fr/linux/ sn9c101] -- patch for Trust Spacec@m&lt;br /&gt;
* [http://mxhaard.free.fr/ spca5xx] &lt;br /&gt;
**Supports webcams based on Sunplus Sonix Transvision Z-star/Vimicro Conexant Etoms chips&lt;br /&gt;
**Supports webcams such as Aiptek Pencam and Digital Dream l'espion&lt;br /&gt;
**See the long [http://mxhaard.free.fr/spca5xx.html list of devices]&lt;br /&gt;
* [http://syntekdriver.sourceforge.net/ stk11xx]&lt;br /&gt;
**Aims to support Syntek DC-1125/1135 cams&lt;br /&gt;
* [http://gkall.hobby.nl stv680] -- SANE backend&lt;br /&gt;
* [http://stv0680-usb.sourceforge.net/ sty0680]&lt;br /&gt;
* [http://home.t-online.de/home/free-photons/tv8532.html tv8532]&lt;br /&gt;
* [http://linux-uvc.berlios.de/ uvcvideo]&lt;br /&gt;
**USB Video Class driver&lt;br /&gt;
* [http://www.linux-projects.org/ w9968cf] -- included in the kernel&lt;br /&gt;
**Supports Winbond W9967CF or W9968CF-based USB cameras&lt;br /&gt;
** [http://winbond-webcam.sourceforge.net/ w9967cf (obsolete)]&lt;br /&gt;
* [http://www.royale.zerezo.com/zr364xx/ zr364xx]&lt;br /&gt;
**Supports the webcam mode of cameras based on the ZR364xx chips from wendors like Aiptek, Concord, Creative, Genius, Maxell, Fujifilm, Ricoh, Pentacon, Mustek, Konica, Umax etc.&lt;br /&gt;
* [http://www.linux-projects.org zc0301] -- included in the kernel&lt;br /&gt;
**Supports Z-Start/Vimicro ZC0301-based USB cameras&lt;br /&gt;
* [http://zc0302.sourceforge.net zc0302]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Text_capture</id>
		<title>Text capture</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Text_capture"/>
				<updated>2007-09-23T00:01:35Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Teletext Teletext] is popular in Europe and provides both informational pages and captions or subtitles to television programs. In 1992, teletext was provided in 18 countries. &lt;br /&gt;
&lt;br /&gt;
In North America, [http://www.fcc.gov/cgb/dro/caption.html US federal law] requires [http://www.robson.org/capfaq/ closed captioning] of all non-exempt television programs starting in 2006. Some broadcasters are implementing [http://www.robson.org/capfaq/technical.html#XDS XDS], or Extended Data Services.&lt;br /&gt;
&lt;br /&gt;
TV capture chipsets implement teletext and closed captioning in different ways, and the free software code to support text capture is still missing or incomplete for some chipsets.&lt;br /&gt;
&lt;br /&gt;
==Supported cards==&lt;br /&gt;
&lt;br /&gt;
===bt8x8===&lt;br /&gt;
&lt;br /&gt;
Cards based on the bt8x8 chip (cf. [[bttv devices (bt848, bt878)]] have excellent support for text capture for both PAL/SECAM and NTSC. &lt;br /&gt;
&lt;br /&gt;
Commandline output is provided by both ntsc-cc and the test/capture utility in zvbi.&lt;br /&gt;
&lt;br /&gt;
===saa713x===&lt;br /&gt;
&lt;br /&gt;
Cards based on saa713x chips (cf. [[saa713x devices]]) have excellent support for text capture under PAL/SECAM. Support for NTSC closed captioning is now available in libzvbi, including the freestanding [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] from libzvbi 0.2.17, a drop-in replacement for xawtv's [[Text capture#ntsc-cc |ntsc-cc]]. &lt;br /&gt;
&lt;br /&gt;
The CVS version of ntsc-cc in xawtv that includes the libzvbi patch is still not released, pending some final quality tests.&lt;br /&gt;
&lt;br /&gt;
===ivtv===&lt;br /&gt;
&lt;br /&gt;
For details on [[Ivtv devices (cx23415, cx23416)| ivtv devices]], see the new [http://ivtvdriver.org ivtv] wiki.&lt;br /&gt;
&lt;br /&gt;
This [http://www.gossamer-threads.com/lists/ivtv/devel/19383 exchange] on the ivtv list suggests there is support for CC, VPS and WSS signals for the PVR-350, but that hardware limitations prevent teletext. &lt;br /&gt;
&lt;br /&gt;
Similarly, this [http://www.gossamer-threads.com/lists/ivtv/devel/16665?search_string=vbi;#16665 exchange] from January 2005 discusses an ongoing project adding vbi support to PVR-x50. Finally, in this [http://www.gossamer-threads.com/lists/ivtv/devel/19376 exchange] from April 2005, Chris Kennedy discusses vbi support for pvr150/500.&lt;br /&gt;
&lt;br /&gt;
The READMI.vbi in a current ivtv release has lots of details and attempts to improve it are going on.&lt;br /&gt;
&lt;br /&gt;
In Linux v2.6.14-rc2, Mauro Carvalho Chehab submitted an &amp;quot;experimental Sliced VBI API support for v4l&amp;quot; patch, which apparently supports the hardware bit slicer in the ivtv driver. I take it this means text capture is now improved for the Hauppauge PVR150/250/350/500 cards.&lt;br /&gt;
&lt;br /&gt;
===DVB/DTV===&lt;br /&gt;
&lt;br /&gt;
The [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome zvbi library] supports the European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It can read VBI PES packets from Linux DVB devices and extract Teletext, VPS, WSS and Caption data. A demultiplexer is available to extract VBI data from DVB MPEG-2 program streams and a multiplexer to convert sliced VBI data, e. g. captured from analog devices, to DVB format. For details see the [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Documentation zvbi documentation]. The test/capture utility in the source tarball can demonstrate these capabilities.&lt;br /&gt;
&lt;br /&gt;
The American standard [http://www.atsc.org ATSC A/53] &amp;quot;ATSC Digital Television Standard&amp;quot; which also covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B] are not currently supported by the zvbi library. See the [http://en.wikipedia.org/wiki/EIA-708 EIA-708 Wikipedia entry] and [http://www.robson.org/capfaq/dtv.html Ditital Television Closed Captioning FAQ]for details.&lt;br /&gt;
&lt;br /&gt;
However, Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Scott has recently (23 September 2005) written a [http://home.pacifier.com/~scowl/eia708.patch patch] for mplayer to display closed captioning; see the [http://www.pchdtv.com/forum/viewtopic.php?t=986&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight=closed+captioning&amp;amp;start=0 pchdtv forum] for instructions.&lt;br /&gt;
&lt;br /&gt;
===cx88===&lt;br /&gt;
&lt;br /&gt;
The latest improvements on vbi support for cx88-based cards, aside from kernel-related stuff and modules reorganization, were made by Tom Zoerner in March of 2004. The README.cx88 still says: &amp;quot;some code present. Doesn't crash any more, but also doesn't work yet ...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Tim sketched out exactly what needs to be done in this [http://marc.theaimsgroup.com/?l=linux-video&amp;amp;m=108518568124567&amp;amp;w=2 22 May 2004 e-mail].&lt;br /&gt;
&lt;br /&gt;
As of Kernel 2.6.16-r7, the cx88 driver (as tested with a pcHDTV 3000 card), captures some VBI data, which is unusable for NTSC closed captioning as only 1150 or so bytes per line of VBI data have valid values and the rest of the 2048 byte line contains unchanging garbage data. There is a [http://www.spinics.net/lists/vfl/msg26029.html patch] being discussed on the video4linux mailing list that likely solved this problem. While the feature is not documented, closed captioning on cx88 most likely works with current (2.6.19) kernels.&lt;br /&gt;
&lt;br /&gt;
In the meantime, nxtvepg (which uses vbi information) is working on cx88 PAL tuners, cf. [http://nxtvepg.sourceforge.net/download.html#requirements system requirements].&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
&lt;br /&gt;
===alevt===&lt;br /&gt;
&lt;br /&gt;
[http://www.goron.de/~froese/ AleVT] is a teletext/videotext decoder and browser for the bttv driver (/dev/vbi) and X11.&lt;br /&gt;
[http://xawdecode.sourceforge.net/ XdTV] -- XdTV interacts with AleVT for Teletext and Nxtvepg for NextView.&lt;br /&gt;
&lt;br /&gt;
===gstreamer===&lt;br /&gt;
&lt;br /&gt;
The application gstreamer has incorporated support for closed captioning (they also mention some tweaks for Canadian English and French television); see [http://cvs.freedesktop.org/gstreamer/gst-plugins/gst/vbidec/ Freedesktop's repository].&lt;br /&gt;
&lt;br /&gt;
===mtt===&lt;br /&gt;
&lt;br /&gt;
A teletext (PAL) browser with a Motif-based GUI and a console mode. In Debian, mtt is part of the motv package.&lt;br /&gt;
&lt;br /&gt;
===nxtvepg===&lt;br /&gt;
&lt;br /&gt;
The [http://nxtvepg.sourceforge.net/index.html Nextview EPG decoder and browser] is an Electronic TV Programme Guide for the analog domain (as opposed to the various digital EPGs that come with most digital broadcasts). It allows you to decode and browse TV programme listings for most of the major networks in Germany, Austria, France and Switzerland. The EPG information is read from /dev/vbi.&lt;br /&gt;
&lt;br /&gt;
===ntsc-cc===&lt;br /&gt;
&lt;br /&gt;
The application ntsc-cc handles closed captioning on [[bttv devices (bt848, bt878)]] only, because it implements only the old v4l API. The saa7134 chip uses other sample rates.&lt;br /&gt;
&lt;br /&gt;
For ntsc-cc to work, you typically need to be running an application for viewing or recording television, such as xawtv and mencoder. If no such application is running, ntsc-cc tends to produce garbled output. &lt;br /&gt;
&lt;br /&gt;
An updated version of ntsc-cc is included in zvbi; see [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] below.&lt;br /&gt;
&lt;br /&gt;
===tvtime===&lt;br /&gt;
&lt;br /&gt;
tvtime has built-in support for closed captioning for [[bttv devices (bt848, bt878)|bttv]] and [[saa713x devices|saa7134]] cards (also others?). &lt;br /&gt;
&lt;br /&gt;
In early 2004, Kevin Ko wrote a [http://www.princeton.edu/~kko/tvtime/vbi_lock_0.2.patch patch with useful comments] to tvtime's vbidata.c; see [http://www.princeton.edu/~kko/tvtime/ his detailed account] and [https://sourceforge.net/tracker/?func=detail&amp;amp;atid=506989&amp;amp;aid=884449&amp;amp;group_id=64301 the tvtime bugreport].&lt;br /&gt;
&lt;br /&gt;
===zapzilla===&lt;br /&gt;
&lt;br /&gt;
[http://zapping.sourceforge.net Zapping] has a built-in teletext viewer called [http://zapping.sourceforge.net/cgi-bin/view/Main/Zapzilla Zapzilla]. &lt;br /&gt;
&lt;br /&gt;
In addition, Zapping provides subtitle overlay through the closed captioning decoder built into libzvbi. &lt;br /&gt;
&lt;br /&gt;
===zvbi===&lt;br /&gt;
&lt;br /&gt;
The [http://zapping.sourceforge.net/ZVBI zvbi library] offers functions to capture and decode raw VBI data. It works with all drivers using the V4L or V4L2 raw VBI API, the FreeBSD BKTR driver, Linux DVB drivers, and it can read VBI data from a VBI proxy to share V4L and V4L2 VBI devices between multiple applications. As of version 0.2.21 the V4L2 sliced API and ATSC are not yet supported.&lt;br /&gt;
&lt;br /&gt;
Higher level functions such as to display or record Teletext and Closed Caption, or to extract network names from Teletext and XDS are also included.&lt;br /&gt;
&lt;br /&gt;
===zvbi-ntsc-cc===&lt;br /&gt;
&lt;br /&gt;
Included in libzvbi 0.2.17 onwards (in Debian, it's it the zvbi package). Is built on and preserves the functionality of xawtv's ntsc-cc, but also handles closed captioning for cards based on saa713x chips (cf. [[saa713x devices]]).&lt;br /&gt;
&lt;br /&gt;
Unlike [[Text capture#ntsc-cc |ntsc-cc]], zvbi-ntsc-cc does not require you to run another application for viewing or recording.&lt;br /&gt;
&lt;br /&gt;
==Technical background==&lt;br /&gt;
&lt;br /&gt;
===Analog television===&lt;br /&gt;
&lt;br /&gt;
The vertical blanking interval (VBI) is an interval in a television signal that temporarily suspends transmission of the signal for the electron gun&lt;br /&gt;
to move back up to the first line of the television screen to trace the next screen field. The vertical blanking interval can be used to carry&lt;br /&gt;
data, since anything sent during the VBI would naturally not be displayed; various test signals, closed captioning, and other digital data can be&lt;br /&gt;
sent during this time period.&lt;br /&gt;
&lt;br /&gt;
In the PAL standard, [http://en.wikipedia.org/wiki/Teletext Teletext] and Caption data is digitally encoded in the [http://en.wikipedia.org/wiki/VBI vertical blanking interval] (vbi) on lines 17 through 20.&lt;br /&gt;
&lt;br /&gt;
In North America, [http://www.robson.org/capfaq/ closed captioning] uses line 21 of the vertical blanking interval (NTSC standard). &lt;br /&gt;
&lt;br /&gt;
===Digital television===&lt;br /&gt;
&lt;br /&gt;
North American digital television (HDTV) uses the ATSC A/53 standard, cf. [http://www.atsc.org atsc.org]. Michael Schimek writes,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;It transmits CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex in software.  Libzvbi does something similar for DVB, so it shouldn't be hard to implement, if it hasn't been done already to extract DVD&lt;br /&gt;
caption. A freestanding CC capture application would still need to tune in and choose a program ID; that's beyond the scope of libzvbi.&lt;br /&gt;
&lt;br /&gt;
To complicate matters further A/53 may transmit old style caption EIA-608 as well as the newer &amp;quot;digital caption&amp;quot; EIA-708. I don't have&lt;br /&gt;
enough information to properly implement EIA-708 caption overlay (nor is it useful for me until Zapping goes digital) but to write an ntsc-dtvcc&lt;br /&gt;
it might suffice.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The European DVB standard transmits sliced VBI data in a separate elementary stream. Current drivers in libzvbi provide full support.&lt;br /&gt;
&lt;br /&gt;
===Displaying captured text===&lt;br /&gt;
&lt;br /&gt;
To get formatted output for overlay on the television image, Michael Schimek's decoder (part of libzvbi) works like a terminal emulator, printing caption into virtual screen memory.  As long as you have &amp;quot;pop on&amp;quot; style caption, streaming is easy.  For &amp;quot;roll up&amp;quot; caption it needs a more character or line oriented interface.  Perhaps it would suffice to call the client and clear the screen before any vertical cursor motions and scrolling.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
Recommended applications for testing under PAL/SECAM are mtt, zapping/zapzilla and alevt/d.&lt;br /&gt;
&lt;br /&gt;
For lower-level testing, use the utilities in the test/ directory of the zvbi tarball, available on [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Download#Source_Code zvbi's project page]; these are actively maintained.&lt;br /&gt;
&lt;br /&gt;
The test/capture utility currently just dumps printable characters on stdout. This output needs to be &amp;quot;sliced&amp;quot;. Sliced VBI is the data transmitted on each scan line.  It still contains multiple logical streams, parity bits and control codes.  In libzvbi &amp;quot;formatting&amp;quot; takes one stream, converts characters to Unicode and interprets control codes, giving one page of text for display.  An export function would convert the text to ASCII.&lt;br /&gt;
&lt;br /&gt;
You may also use test/capture utility from the zvbi library to display printable closed caption data.&lt;br /&gt;
 capture --dump-cc&lt;br /&gt;
&lt;br /&gt;
To visualize the Vertical Blanking Interval on NTSC, issue&lt;br /&gt;
&lt;br /&gt;
 ntsc-cc -d /dev/vbi -c -w -r 11&lt;br /&gt;
&lt;br /&gt;
Both bttv and saa7134 cards show orderly signals, and cx88 (as of Kernel 2.6.16-r7) shows valid data for the first part of the line, with noise on the rest of the line.&lt;br /&gt;
&lt;br /&gt;
In the zvbi test/ suite, osc similarly visualizes. The test/osc utility is more useful, since it displays which row and line are being graphed and lets you change rows with the arrow keys. NTSC closed captioning should appear on row 11, line 21.&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Text_capture</id>
		<title>Text capture</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Text_capture"/>
				<updated>2007-09-22T23:51:50Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: Reverted edits by Liontooth (Talk); changed back to last version by Ariclone&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Teletext Teletext] is popular in Europe and provides both informational pages and captions or subtitles to television programs. In 1992, teletext was provided in 18 countries. &lt;br /&gt;
&lt;br /&gt;
In North America, [http://www.fcc.gov/cgb/dro/caption.html US federal law] requires [http://www.robson.org/capfaq/ closed captioning] of all non-exempt television programs starting in 2006. Some broadcasters are implementing [http://www.robson.org/capfaq/technical.html#XDS XDS], or Extended Data Services.&lt;br /&gt;
&lt;br /&gt;
TV capture chipsets implement teletext and closed captioning in different ways, and the free software code to support text capture is still missing or incomplete for some chipsets.&lt;br /&gt;
&lt;br /&gt;
==Supported cards==&lt;br /&gt;
&lt;br /&gt;
===bt8x8===&lt;br /&gt;
&lt;br /&gt;
Cards based on the bt8x8 chip (cf. [[bttv devices (bt848, bt878)]] have excellent support for text capture for both PAL/SECAM and NTSC. &lt;br /&gt;
&lt;br /&gt;
Commandline output is provided by both ntsc-cc and the test/capture utility in zvbi.&lt;br /&gt;
&lt;br /&gt;
===saa713x===&lt;br /&gt;
&lt;br /&gt;
Cards based on saa713x chips (cf. [[saa713x devices]]) have excellent support for text capture under PAL/SECAM. Support for NTSC closed captioning is now available in libzvbi, including the freestanding [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] from libzvbi 0.2.17, a drop-in replacement for xawtv's [[Text capture#ntsc-cc |ntsc-cc]]. &lt;br /&gt;
&lt;br /&gt;
The CVS version of ntsc-cc in xawtv that includes the libzvbi patch is still not released, pending some final quality tests.&lt;br /&gt;
&lt;br /&gt;
===ivtv===&lt;br /&gt;
&lt;br /&gt;
For details on [[Ivtv devices (cx23415, cx23416)| ivtv devices]], see the new [http://ivtvdriver.org ivtv] wiki.&lt;br /&gt;
&lt;br /&gt;
This [http://www.gossamer-threads.com/lists/ivtv/devel/19383 exchange] on the ivtv list suggests there is support for CC, VPS and WSS signals for the PVR-350, but that hardware limitations prevent teletext. &lt;br /&gt;
&lt;br /&gt;
Similarly, this [http://www.gossamer-threads.com/lists/ivtv/devel/16665?search_string=vbi;#16665 exchange] from January 2005 discusses an ongoing project adding vbi support to PVR-x50. Finally, in this [http://www.gossamer-threads.com/lists/ivtv/devel/19376 exchange] from April 2005, Chris Kennedy discusses vbi support for pvr150/500.&lt;br /&gt;
&lt;br /&gt;
The READMI.vbi in a current ivtv release has lots of details and attempts to improve it are going on.&lt;br /&gt;
&lt;br /&gt;
In Linux v2.6.14-rc2, Mauro Carvalho Chehab submitted an &amp;quot;experimental Sliced VBI API support for v4l&amp;quot; patch, which apparently supports the hardware bit slicer in the ivtv driver. I take it this means text capture is now improved for the Hauppauge PVR150/250/350/500 cards.&lt;br /&gt;
&lt;br /&gt;
===DVB/DTV===&lt;br /&gt;
&lt;br /&gt;
The [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome zvbi library] supports the European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It can read VBI PES packets from Linux DVB devices and extract Teletext, VPS, WSS and Caption data. A demultiplexer is available to extract VBI data from DVB MPEG-2 program streams and a multiplexer to convert sliced VBI data, e. g. captured from analog devices, to DVB format. For details see the [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Documentation zvbi documentation]. The test/capture utility in the source tarball can demonstrate these capabilities.&lt;br /&gt;
&lt;br /&gt;
The American standard [http://www.atsc.org ATSC A/53] &amp;quot;ATSC Digital Television Standard&amp;quot; which also covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B] are not currently supported by the zvbi library. See the [http://en.wikipedia.org/wiki/EIA-708 EIA-708 Wikipedia entry] and [http://www.robson.org/capfaq/dtv.html Ditital Television Closed Captioning FAQ]for details.&lt;br /&gt;
&lt;br /&gt;
However, Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Scott has recently (23 September 2005) written a [http://home.pacifier.com/~scowl/eia708.patch patch] for mplayer to display closed captioning; see the [http://www.pchdtv.com/forum/viewtopic.php?t=986&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight=closed+captioning&amp;amp;start=0 pchdtv forum] for instructions.&lt;br /&gt;
&lt;br /&gt;
===cx88===&lt;br /&gt;
&lt;br /&gt;
The latest improvements on vbi support for cx88-based cards, aside from kernel-related stuff and modules reorganization, were made by Tom Zoerner in March of 2004. The README.cx88 still says: &amp;quot;some code present. Doesn't crash any more, but also doesn't work yet ...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Tim sketched out exactly what needs to be done in this [http://marc.theaimsgroup.com/?l=linux-video&amp;amp;m=108518568124567&amp;amp;w=2 22 May 2004 e-mail].&lt;br /&gt;
&lt;br /&gt;
As of Kernel 2.6.16-r7, the cx88 driver (as tested with a pcHDTV 3000 card), captures some VBI data, which is unusable for NTSC closed captioning as only 1150 or so bytes per line of VBI data have valid values and the rest of the 2048 byte line contains unchanging garbage data. There is a [http://www.spinics.net/lists/vfl/msg26029.html patch] being discussed on the video4linux mailing list that likely solved this problem. While the feature is not documented, closed captioning on cx88 most likely works with current (2.6.19) kernels.&lt;br /&gt;
&lt;br /&gt;
In the meantime, nxtvepg (which uses vbi information) is working on cx88 PAL tuners, cf. [http://nxtvepg.sourceforge.net/download.html#requirements system requirements].&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
&lt;br /&gt;
===alevt===&lt;br /&gt;
&lt;br /&gt;
[http://www.goron.de/~froese/ AleVT] is a teletext/videotext decoder and browser for the bttv driver (/dev/vbi) and X11.&lt;br /&gt;
[http://xawdecode.sourceforge.net/ XdTV] -- XdTV interacts with AleVT for Teletext and Nxtvepg for NextView.&lt;br /&gt;
&lt;br /&gt;
===gstreamer===&lt;br /&gt;
&lt;br /&gt;
The application gstreamer has incorporated support for closed captioning (they also mention some tweaks for Canadian English and French television); see [http://cvs.freedesktop.org/gstreamer/gst-plugins/gst/vbidec/ Freedesktop's repository].&lt;br /&gt;
&lt;br /&gt;
===mtt===&lt;br /&gt;
&lt;br /&gt;
A teletext (PAL) browser with a Motif-based GUI and a console mode. In Debian, mtt is part of the motv package.&lt;br /&gt;
&lt;br /&gt;
===nxtvepg===&lt;br /&gt;
&lt;br /&gt;
The [http://nxtvepg.sourceforge.net/index.html Nextview EPG decoder and browser] is an Electronic TV Programme Guide for the analog domain (as opposed to the various digital EPGs that come with most digital broadcasts). It allows you to decode and browse TV programme listings for most of the major networks in Germany, Austria, France and Switzerland. The EPG information is read from /dev/vbi.&lt;br /&gt;
&lt;br /&gt;
===ntsc-cc===&lt;br /&gt;
&lt;br /&gt;
The application ntsc-cc handles closed captioning on [[bttv devices (bt848, bt878)]] only, because it implements only the old v4l API. The saa7134 chip uses other sample rates.&lt;br /&gt;
&lt;br /&gt;
For ntsc-cc to work, you typically need to be running an application for viewing or recording television, such as xawtv and mencoder. If no such application is running, ntsc-cc tends to produce garbled output. &lt;br /&gt;
&lt;br /&gt;
An updated version of ntsc-cc is included in zvbi; see [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] below.&lt;br /&gt;
&lt;br /&gt;
===tvtime===&lt;br /&gt;
&lt;br /&gt;
tvtime has built-in support for closed captioning for [[bttv devices (bt848, bt878)|bttv]] and [[saa713x devices|saa7134]] cards (also others?). &lt;br /&gt;
&lt;br /&gt;
In early 2004, Kevin Ko wrote a [http://www.princeton.edu/~kko/tvtime/vbi_lock_0.2.patch patch with useful comments] to tvtime's vbidata.c; see [http://www.princeton.edu/~kko/tvtime/ his detailed account] and [https://sourceforge.net/tracker/?func=detail&amp;amp;atid=506989&amp;amp;aid=884449&amp;amp;group_id=64301 the tvtime bugreport].&lt;br /&gt;
&lt;br /&gt;
===zapzilla===&lt;br /&gt;
&lt;br /&gt;
[http://zapping.sourceforge.net Zapping] has a built-in teletext viewer called [http://zapping.sourceforge.net/cgi-bin/view/Main/Zapzilla Zapzilla]. &lt;br /&gt;
&lt;br /&gt;
In addition, Zapping provides subtitle overlay through the closed captioning decoder built into libzvbi. &lt;br /&gt;
&lt;br /&gt;
===zvbi===&lt;br /&gt;
&lt;br /&gt;
The [http://zapping.sourceforge.net/ZVBI zvbi library] offers functions to capture and decode raw VBI data. It works with all drivers using the V4L or V4L2 raw VBI API, the FreeBSD BKTR driver, Linux DVB drivers, and it can read VBI data from a VBI proxy to share V4L and V4L2 VBI devices between multiple applications. As of version 0.2.21 the V4L2 sliced API and ATSC are not yet supported.&lt;br /&gt;
&lt;br /&gt;
Higher level functions such as to display or record Teletext and Closed Caption, or to extract network names from Teletext and XDS are also included.&lt;br /&gt;
&lt;br /&gt;
===zvbi-ntsc-cc===&lt;br /&gt;
&lt;br /&gt;
Included in libzvbi 0.2.17 onwards (in Debian, it's it the zvbi package). Is built on and preserves the functionality of xawtv's ntsc-cc, but also handles closed captioning for cards based on saa713x chips (cf. [[saa713x devices]]).&lt;br /&gt;
&lt;br /&gt;
Unlike [[Text capture#ntsc-cc |ntsc-cc]], zvbi-ntsc-cc does not require you to run another application for viewing or recording.&lt;br /&gt;
&lt;br /&gt;
==Technical background==&lt;br /&gt;
&lt;br /&gt;
===Analog television===&lt;br /&gt;
&lt;br /&gt;
The vertical blanking interval (VBI) is an interval in a television signal that temporarily suspends transmission of the signal for the electron gun&lt;br /&gt;
to move back up to the first line of the television screen to trace the next screen field. The vertical blanking interval can be used to carry&lt;br /&gt;
data, since anything sent during the VBI would naturally not be displayed; various test signals, closed captioning, and other digital data can be&lt;br /&gt;
sent during this time period.&lt;br /&gt;
&lt;br /&gt;
In the PAL standard, [http://en.wikipedia.org/wiki/Teletext Teletext] and Caption data is digitally encoded in the [http://en.wikipedia.org/wiki/VBI vertical blanking interval] (vbi) on lines 17 through 20.&lt;br /&gt;
&lt;br /&gt;
In North America, [http://www.robson.org/capfaq/ closed captioning] uses line 21 of the vertical blanking interval (NTSC standard). &lt;br /&gt;
&lt;br /&gt;
===Digital television===&lt;br /&gt;
&lt;br /&gt;
North American digital television (HDTV) uses the ATSC A/53 standard, cf. [http://www.atsc.org atsc.org]. Michael Schimek writes,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;It transmits CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex in software.  Libzvbi does something similar for DVB, so it shouldn't be hard to implement, if it hasn't been done already to extract DVD&lt;br /&gt;
caption. A freestanding CC capture application would still need to tune in and choose a program ID; that's beyond the scope of libzvbi.&lt;br /&gt;
&lt;br /&gt;
To complicate matters further A/53 may transmit old style caption EIA-608 as well as the newer &amp;quot;digital caption&amp;quot; EIA-708. I don't have&lt;br /&gt;
enough information to properly implement EIA-708 caption overlay (nor is it useful for me until Zapping goes digital) but to write an ntsc-dtvcc&lt;br /&gt;
it might suffice.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The European DVB standard transmits sliced VBI data in a separate elementary stream. Current drivers in libzvbi provide full support.&lt;br /&gt;
&lt;br /&gt;
===Displaying captured text===&lt;br /&gt;
&lt;br /&gt;
To get formatted output for overlay on the television image, Michael Schimek's decoder (part of libzvbi) works like a terminal emulator, printing caption into virtual screen memory.  As long as you have &amp;quot;pop on&amp;quot; style caption, streaming is easy.  For &amp;quot;roll up&amp;quot; caption it needs a more character or line oriented interface.  Perhaps it would suffice to call the client and clear the screen before any vertical cursor motions and scrolling.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
Recommended applications for testing under PAL/SECAM are mtt, zapping/zapzilla and alevt/d.&lt;br /&gt;
&lt;br /&gt;
For lower-level testing, use the utilities in the test/ directory of the zvbi tarball, available on [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Download#Source_Code zvbi's project page]; these are actively maintained.&lt;br /&gt;
&lt;br /&gt;
The test/capture utility currently just dumps printable characters on stdout. This output needs to be &amp;quot;sliced&amp;quot;. Sliced VBI is the data transmitted on each scan line.  It still contains multiple logical streams, parity bits and control codes.  In libzvbi &amp;quot;formatting&amp;quot; takes one stream, converts characters to Unicode and interprets control codes, giving one page of text for display.  An export function would convert the text to ASCII.&lt;br /&gt;
&lt;br /&gt;
You may also use test/capture utility from the zvbi library to display printable closed caption data.&lt;br /&gt;
 capture --dump-cc&lt;br /&gt;
&lt;br /&gt;
To visualize the Vertical Blanking Interval on NTSC, issue&lt;br /&gt;
&lt;br /&gt;
 ntsc-cc -d /dev/vbi -c -w -r 11&lt;br /&gt;
&lt;br /&gt;
Both bttv and saa7134 cards show orderly signals, and cx88 (as of Kernel 2.6.16-r7) shows valid data for the first part of the line, with noise on the rest of the line.&lt;br /&gt;
&lt;br /&gt;
In the zvbi test/ suite, osc similarly visualizes; cf. [[vbi images]]. The test/osc utility is more useful, since it displays which row and line are being graphed and lets you change rows with the arrow keys. NTSC closed captioning should appear on row 11, line 21.&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Text_capture</id>
		<title>Text capture</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Text_capture"/>
				<updated>2007-09-22T23:49:48Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: Reverted edits by Ariclone (Talk); changed back to last version by CityK&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Teletext Teletext] is popular in Europe and provides both informational pages and captions or subtitles to television programs. In 1992, teletext was provided in 18 countries. &lt;br /&gt;
&lt;br /&gt;
In North America, [http://www.fcc.gov/cgb/dro/caption.html US federal law] requires [http://www.robson.org/capfaq/ closed captioning] of all non-exempt television programs starting in 2006. Some broadcasters are implementing [http://www.robson.org/capfaq/technical.html#XDS XDS], or Extended Data Services.&lt;br /&gt;
&lt;br /&gt;
TV capture chipsets implement teletext and closed captioning in different ways, and the free software code to support text capture is still missing or incomplete for some chipsets.&lt;br /&gt;
&lt;br /&gt;
==Supported cards==&lt;br /&gt;
&lt;br /&gt;
===bt8x8===&lt;br /&gt;
&lt;br /&gt;
Cards based on the bt8x8 chip (cf. [[bttv devices (bt848, bt878)]] have excellent support for text capture for both PAL/SECAM and NTSC. &lt;br /&gt;
&lt;br /&gt;
Commandline output is provided by both ntsc-cc and the test/capture utility in zvbi.&lt;br /&gt;
&lt;br /&gt;
===saa713x===&lt;br /&gt;
&lt;br /&gt;
Cards based on saa713x chips (cf. [[saa713x devices]]) have excellent support for text capture under PAL/SECAM. Support for NTSC closed captioning is now available in libzvbi, including the freestanding [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] from libzvbi 0.2.17, a drop-in replacement for xawtv's [[Text capture#ntsc-cc |ntsc-cc]]. &lt;br /&gt;
&lt;br /&gt;
The CVS version of ntsc-cc in xawtv that includes the libzvbi patch is still not released, pending some final quality tests.&lt;br /&gt;
&lt;br /&gt;
===ivtv===&lt;br /&gt;
&lt;br /&gt;
For details on [[Ivtv devices (cx23415, cx23416)| ivtv devices]], see the new [http://ivtvdriver.org ivtv] wiki.&lt;br /&gt;
&lt;br /&gt;
This [http://www.gossamer-threads.com/lists/ivtv/devel/19383 exchange] on the ivtv list suggests there is support for CC, VPS and WSS signals for the PVR-350, but that hardware limitations prevent teletext. &lt;br /&gt;
&lt;br /&gt;
Similarly, this [http://www.gossamer-threads.com/lists/ivtv/devel/16665?search_string=vbi;#16665 exchange] from January 2005 discusses an ongoing project adding vbi support to PVR-x50. Finally, in this [http://www.gossamer-threads.com/lists/ivtv/devel/19376 exchange] from April 2005, Chris Kennedy discusses vbi support for pvr150/500.&lt;br /&gt;
&lt;br /&gt;
The READMI.vbi in a current ivtv release has lots of details and attempts to improve it are going on.&lt;br /&gt;
&lt;br /&gt;
In Linux v2.6.14-rc2, Mauro Carvalho Chehab submitted an &amp;quot;experimental Sliced VBI API support for v4l&amp;quot; patch, which apparently supports the hardware bit slicer in the ivtv driver. I take it this means text capture is now improved for the Hauppauge PVR150/250/350/500 cards.&lt;br /&gt;
&lt;br /&gt;
===DVB/DTV===&lt;br /&gt;
&lt;br /&gt;
The [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/WebHome zvbi library] supports the European standards [http://www.etsi.org ETSI EN 300 472] &amp;quot;Specification for conveying ITU-R System B Teletext in DVB bitstreams&amp;quot; and [http://www.etsi.org ETSI EN 301 775] &amp;quot;Specification for the carriage of Vertical Blanking Information (VBI) data in DVB bitstreams&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It can read VBI PES packets from Linux DVB devices and extract Teletext, VPS, WSS and Caption data. A demultiplexer is available to extract VBI data from DVB MPEG-2 program streams and a multiplexer to convert sliced VBI data, e. g. captured from analog devices, to DVB format. For details see the [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Documentation zvbi documentation]. The test/capture utility in the source tarball can demonstrate these capabilities.&lt;br /&gt;
&lt;br /&gt;
The American standard [http://www.atsc.org ATSC A/53] &amp;quot;ATSC Digital Television Standard&amp;quot; which also covers Closed Caption transport and the &amp;quot;digital&amp;quot; Closed Caption standard [http://global.ihs.com EIA 708-B] are not currently supported by the zvbi library. See the [http://en.wikipedia.org/wiki/EIA-708 EIA-708 Wikipedia entry] and [http://www.robson.org/capfaq/dtv.html Ditital Television Closed Captioning FAQ]for details.&lt;br /&gt;
&lt;br /&gt;
However, Scott Larson writes that &amp;quot;stations are required to pass both EIA-608 (VBI) and EIA-708 (DTVCC) data. Why? Because If an ATSC receiver is connected to an NTSC TV (which is a likely occurance in the transition to digital broadcasting), the receiver is required to generate the old VBI Line 21 captions from the ATSC stream so the old TV will still have closed captions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
Scott has recently (23 September 2005) written a [http://home.pacifier.com/~scowl/eia708.patch patch] for mplayer to display closed captioning; see the [http://www.pchdtv.com/forum/viewtopic.php?t=986&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight=closed+captioning&amp;amp;start=0 pchdtv forum] for instructions.&lt;br /&gt;
&lt;br /&gt;
===cx88===&lt;br /&gt;
&lt;br /&gt;
The latest improvements on vbi support for cx88-based cards, aside from kernel-related stuff and modules reorganization, were made by Tom Zoerner in March of 2004. The README.cx88 still says: &amp;quot;some code present. Doesn't crash any more, but also doesn't work yet ...&amp;quot; &lt;br /&gt;
&lt;br /&gt;
However, Tim sketched out exactly what needs to be done in this [http://marc.theaimsgroup.com/?l=linux-video&amp;amp;m=108518568124567&amp;amp;w=2 22 May 2004 e-mail].&lt;br /&gt;
&lt;br /&gt;
As of Kernel 2.6.16-r7, the cx88 driver (as tested with a pcHDTV 3000 card), captures some VBI data, which is unusable for NTSC closed captioning as only 1150 or so bytes per line of VBI data have valid values and the rest of the 2048 byte line contains unchanging garbage data. There is a [http://www.spinics.net/lists/vfl/msg26029.html patch] being discussed on the video4linux mailing list that likely solved this problem. While the feature is not documented, closed captioning on cx88 most likely works with current (2.6.19) kernels.&lt;br /&gt;
&lt;br /&gt;
In the meantime, nxtvepg (which uses vbi information) is working on cx88 PAL tuners, cf. [http://nxtvepg.sourceforge.net/download.html#requirements system requirements].&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
&lt;br /&gt;
===alevtv===&lt;br /&gt;
&lt;br /&gt;
[http://www.goron.de/~froese/ AleVT] is a teletext/videotext decoder and browser for the bttv driver (/dev/vbi) and X11.&lt;br /&gt;
[http://xawdecode.sourceforge.net/ XdTV] -- XdTV interacts with AleVT for Teletext and Nxtvepg for NextView.&lt;br /&gt;
&lt;br /&gt;
===gstreamer===&lt;br /&gt;
&lt;br /&gt;
The application gstreamer has incorporated support for closed captioning (they also mention some tweaks for Canadian English and French television); see [http://cvs.freedesktop.org/gstreamer/gst-plugins/gst/vbidec/ Freedesktop's repository].&lt;br /&gt;
&lt;br /&gt;
===mtt===&lt;br /&gt;
&lt;br /&gt;
A teletext (PAL) browser with a Motif-based GUI and a console mode. In Debian, mtt is part of the motv package.&lt;br /&gt;
&lt;br /&gt;
===nxtvepg===&lt;br /&gt;
&lt;br /&gt;
The [http://nxtvepg.sourceforge.net/index.html Nextview EPG decoder and browser] is an Electronic TV Programme Guide for the analog domain (as opposed to the various digital EPGs that come with most digital broadcasts). It allows you to decode and browse TV programme listings for most of the major networks in Germany, Austria, France and Switzerland. The EPG information is read from /dev/vbi.&lt;br /&gt;
&lt;br /&gt;
===ntsc-cc===&lt;br /&gt;
&lt;br /&gt;
The application ntsc-cc handles closed captioning on [[bttv devices (bt848, bt878)]] only, because it implements only the old v4l API. The saa7134 chip uses other sample rates.&lt;br /&gt;
&lt;br /&gt;
For ntsc-cc to work, you typically need to be running an application for viewing or recording television, such as xawtv and mencoder. If no such application is running, ntsc-cc tends to produce garbled output. &lt;br /&gt;
&lt;br /&gt;
An updated version of ntsc-cc is included in zvbi; see [[Text capture#zvbi-ntsc-cc |zvbi-ntsc-cc]] below.&lt;br /&gt;
&lt;br /&gt;
===tvtime===&lt;br /&gt;
&lt;br /&gt;
tvtime has built-in support for closed captioning for [[bttv devices (bt848, bt878)|bttv]] and [[saa713x devices|saa7134]] cards (also others?). &lt;br /&gt;
&lt;br /&gt;
In early 2004, Kevin Ko wrote a [http://www.princeton.edu/~kko/tvtime/vbi_lock_0.2.patch patch with useful comments] to tvtime's vbidata.c; see [http://www.princeton.edu/~kko/tvtime/ his detailed account] and [https://sourceforge.net/tracker/?func=detail&amp;amp;atid=506989&amp;amp;aid=884449&amp;amp;group_id=64301 the tvtime bugreport].&lt;br /&gt;
&lt;br /&gt;
===zapzilla===&lt;br /&gt;
&lt;br /&gt;
[http://zapping.sourceforge.net Zapping] has a built-in teletext viewer called [http://zapping.sourceforge.net/cgi-bin/view/Main/Zapzilla Zapzilla]. &lt;br /&gt;
&lt;br /&gt;
In addition, Zapping provides subtitle overlay through the closed captioning decoder built into libzvbi. &lt;br /&gt;
&lt;br /&gt;
===zvbi===&lt;br /&gt;
&lt;br /&gt;
The [http://zapping.sourceforge.net/ZVBI zvbi library] offers functions to capture and decode raw VBI data. It works with all drivers using the V4L or V4L2 raw VBI API, the FreeBSD BKTR driver, Linux DVB drivers, and it can read VBI data from a VBI proxy to share V4L and V4L2 VBI devices between multiple applications. As of version 0.2.21 the V4L2 sliced API and ATSC are not yet supported.&lt;br /&gt;
&lt;br /&gt;
Higher level functions such as to display or record Teletext and Closed Caption, or to extract network names from Teletext and XDS are also included.&lt;br /&gt;
&lt;br /&gt;
===zvbi-ntsc-cc===&lt;br /&gt;
&lt;br /&gt;
Included in libzvbi 0.2.17 onwards (in Debian, it's it the zvbi package). Is built on and preserves the functionality of xawtv's ntsc-cc, but also handles closed captioning for cards based on saa713x chips (cf. [[saa713x devices]]).&lt;br /&gt;
&lt;br /&gt;
Unlike [[Text capture#ntsc-cc |ntsc-cc]], zvbi-ntsc-cc does not require you to run another application for viewing or recording.&lt;br /&gt;
&lt;br /&gt;
==Technical background==&lt;br /&gt;
&lt;br /&gt;
===Analog television===&lt;br /&gt;
&lt;br /&gt;
The vertical blanking interval (VBI) is an interval in a television signal that temporarily suspends transmission of the signal for the electron gun&lt;br /&gt;
to move back up to the first line of the television screen to trace the next screen field. The vertical blanking interval can be used to carry&lt;br /&gt;
data, since anything sent during the VBI would naturally not be displayed; various test signals, closed captioning, and other digital data can be&lt;br /&gt;
sent during this time period.&lt;br /&gt;
&lt;br /&gt;
In the PAL standard, [http://en.wikipedia.org/wiki/Teletext Teletext] and Caption data is digitally encoded in the [http://en.wikipedia.org/wiki/VBI vertical blanking interval] (vbi) on lines 17 through 20.&lt;br /&gt;
&lt;br /&gt;
In North America, [http://www.robson.org/capfaq/ closed captioning] uses line 21 of the vertical blanking interval (NTSC standard). &lt;br /&gt;
&lt;br /&gt;
===Digital television===&lt;br /&gt;
&lt;br /&gt;
North American digital television (HDTV) uses the ATSC A/53 standard, cf. [http://www.atsc.org atsc.org]. Michael Schimek writes,&lt;br /&gt;
&lt;br /&gt;
&amp;quot;It transmits CC bytes in a user data field following a picture header, inside the video elementary stream. If the driver doesn't extract CC data on its own, and the &amp;quot;broadcast flag&amp;quot; permits this, one could perhaps read video packets from the device, or a complete MPEG-2 program stream from disk, and demultiplex in software.  Libzvbi does something similar for DVB, so it shouldn't be hard to implement, if it hasn't been done already to extract DVD&lt;br /&gt;
caption. A freestanding CC capture application would still need to tune in and choose a program ID; that's beyond the scope of libzvbi.&lt;br /&gt;
&lt;br /&gt;
To complicate matters further A/53 may transmit old style caption EIA-608 as well as the newer &amp;quot;digital caption&amp;quot; EIA-708. I don't have&lt;br /&gt;
enough information to properly implement EIA-708 caption overlay (nor is it useful for me until Zapping goes digital) but to write an ntsc-dtvcc&lt;br /&gt;
it might suffice.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The European DVB standard transmits sliced VBI data in a separate elementary stream. Current drivers in libzvbi provide full support.&lt;br /&gt;
&lt;br /&gt;
===Displaying captured text===&lt;br /&gt;
&lt;br /&gt;
To get formatted output for overlay on the television image, Michael Schimek's decoder (part of libzvbi) works like a terminal emulator, printing caption into virtual screen memory.  As long as you have &amp;quot;pop on&amp;quot; style caption, streaming is easy.  For &amp;quot;roll up&amp;quot; caption it needs a more character or line oriented interface.  Perhaps it would suffice to call the client and clear the screen before any vertical cursor motions and scrolling.&lt;br /&gt;
&lt;br /&gt;
===Testing===&lt;br /&gt;
&lt;br /&gt;
Recommended applications for testing under PAL/SECAM are mtt, zapping/zapzilla and alevt/d.&lt;br /&gt;
&lt;br /&gt;
For lower-level testing, use the utilities in the test/ directory of the zvbi tarball, available on [http://zapping.sourceforge.net/cgi-bin/view/ZVBI/Download#Source_Code zvbi's project page]; these are actively maintained.&lt;br /&gt;
&lt;br /&gt;
The test/capture utility currently just dumps printable characters on stdout. This output needs to be &amp;quot;sliced&amp;quot;. Sliced VBI is the data transmitted on each scan line.  It still contains multiple logical streams, parity bits and control codes.  In libzvbi &amp;quot;formatting&amp;quot; takes one stream, converts characters to Unicode and interprets control codes, giving one page of text for display.  An export function would convert the text to ASCII.&lt;br /&gt;
&lt;br /&gt;
You may also use test/capture utility from the zvbi library to display printable closed caption data.&lt;br /&gt;
 capture --dump-cc&lt;br /&gt;
&lt;br /&gt;
To visualize the Vertical Blanking Interval on NTSC, issue&lt;br /&gt;
&lt;br /&gt;
 ntsc-cc -d /dev/vbi -c -w -r 11&lt;br /&gt;
&lt;br /&gt;
Both bttv and saa7134 cards show orderly signals, and cx88 (as of Kernel 2.6.16-r7) shows valid data for the first part of the line, with noise on the rest of the line.&lt;br /&gt;
&lt;br /&gt;
In the zvbi test/ suite, osc similarly visualizes; cf. [[vbi images]]. The test/osc utility is more useful, since it displays which row and line are being graphed and lets you change rows with the arrow keys. NTSC closed captioning should appear on row 11, line 21.&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC</id>
		<title>LifeView FlyVideo3000FM NTSC</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC"/>
				<updated>2007-09-22T23:46:01Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Recording with transcode */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:LifeView-FlyVideo-3000FM.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
===Introduction ===&lt;br /&gt;
&lt;br /&gt;
This card works perfectly -- it gets 640x480 frames, audio directly from the card, and closed captioning.  I've worked with up to five cards in one computer, though you need a powerful CPU to keep up with the data flow. &lt;br /&gt;
&lt;br /&gt;
For detailed images of the various slightly different models, see [http://www.bttv-gallery.de/ bttv gallery]. Most of LifeView's saa713x cards fit both 32-bit PCI slots and 64-bit PCI-X slots -- see the telltale second slit in the foot of the card.&lt;br /&gt;
&lt;br /&gt;
See also [[LifeView FlyVideo3000 PAL-N]].&lt;br /&gt;
&lt;br /&gt;
=== Identification ===&lt;br /&gt;
&lt;br /&gt;
The 3000 and the 3000FM cards are identified as having the same subsystem:&lt;br /&gt;
&lt;br /&gt;
  lspci -vvv: 02:0a.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev 10)&lt;br /&gt;
        Subsystem: Unknown device 5169:0138&lt;br /&gt;
&lt;br /&gt;
The cards have the [http://www.semiconductors.philips.com/pip/SAA7133HL_V101.html saa7133HL-v101] chip.&lt;br /&gt;
&lt;br /&gt;
=== Loading the right driver ===&lt;br /&gt;
&lt;br /&gt;
The card needs the saa7134 driver, which should be built as a module in the kernel. When the module is inserted, your particular variant may be autodetected or you may need to manually configure it. Try the simplest method first:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134&lt;br /&gt;
&lt;br /&gt;
If the card is not working right, and you have a recent kernel, try this:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 i2c_scan=1&lt;br /&gt;
&lt;br /&gt;
If both fail, you may need to configure the card manually by passing values for the card and/or tuner.&lt;br /&gt;
&lt;br /&gt;
=== Selecting the tuner ===&lt;br /&gt;
&lt;br /&gt;
Use card 2 in the Documentation/video4linux/CARDLIST.saa7134. Versions of FlyVideo 3000 are shipped with different [[Tuners |tuners]]; to find yours, grep on the card and your television standard to pull up relevant alternatives:&lt;br /&gt;
&lt;br /&gt;
 grep Philips Documentation/video4linux/CARDLIST.tuner | grep NTSC&lt;br /&gt;
&lt;br /&gt;
For the NTSC tuner on the FlyVideo 3000 (without the radio), I found 17 was the right one. The FlyVideo3000FM has a different tuner, and I found 43 works, but only gives you channels below 60. Tuner 39 gives you all channels. In kernel 2.6.12 I had to reboot to reset the tuner -- modprobe didn't do it -- but in kernel 2.6.18 the tuner reset without a reboot. With 2.6.19, I switched to tuner 95.&lt;br /&gt;
&lt;br /&gt;
=== Inserting the module ===&lt;br /&gt;
&lt;br /&gt;
For this card, if autodetection fails, you can insert the module with the following options:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 card=2 tuner=39&lt;br /&gt;
&lt;br /&gt;
The 3000 version of the card (without radio) takes tuner 17.&lt;br /&gt;
&lt;br /&gt;
When you've found a method that works -- autodetection or manual configuration -- include the working options in your modules configuration setup. For details, see [[Generic_SAA7134_Card_Installation#Drivers_probing]].&lt;br /&gt;
&lt;br /&gt;
=== Getting PCI audio ===&lt;br /&gt;
&lt;br /&gt;
You can get the audio from the card through the PCI bus instead of through the audio out jack and a patch cable to your sound card.  &lt;br /&gt;
&lt;br /&gt;
For kernels 2.6.15 and later, see [[Saa7134-alsa]] for details on both ALSA and OSS sound. &lt;br /&gt;
&lt;br /&gt;
For earlier kernels, adding &amp;quot;oss=1&amp;quot; as an insmod parameter will create /dev/dsp1 and /dev/mixer1. For detailed instructions, see [http://gentoo-wiki.com/HARDWARE_saa7134 Gentoo's saa7134 wiki].&lt;br /&gt;
&lt;br /&gt;
In earlier kernels, you use &lt;br /&gt;
&lt;br /&gt;
   aumix -d /dev/mixer1 -I&lt;br /&gt;
&lt;br /&gt;
to set the recording channel to 1.&lt;br /&gt;
&lt;br /&gt;
=== Recording with mencoder ===&lt;br /&gt;
&lt;br /&gt;
Use something like this:&lt;br /&gt;
 &lt;br /&gt;
   mencoder tv:// -tv driver=v4l2:device=/dev/video1:fps=30000/1001:chanlist=us-cable:audiorate=32000:&lt;br /&gt;
   adevice=/dev/dsp1:input=0:amode=1:normid=4 -ffourcc DIVX -ovc lavc -lavcopts vcodec=mpeg4:mbd=2 &lt;br /&gt;
   -oac mp3lame -lameopts cbr:br=128 -endpos 60 -o output.avi&lt;br /&gt;
&lt;br /&gt;
This gives me stereo audio with medium-quality video. I found that if I included &amp;quot;-of mpeg&amp;quot; to create a true mpeg stream, the audio got delayed -- there are no sync problems with the avi file.&lt;br /&gt;
&lt;br /&gt;
=== Recording with transcode ===&lt;br /&gt;
&lt;br /&gt;
You can also use transcode to record:&lt;br /&gt;
&lt;br /&gt;
   transcode -x v4l2,v4l2 -M 2 -i /dev/video$DEV -p /dev/dsp1 -e 32000,16,2 -y ffmpeg -F mpeg4 &lt;br /&gt;
   -c 00:30 -g 640x480 -f 29.970,4 -I 1 -u 1024 -Q 3 -E 32000,16,2 --lame_preset medium -o output.avi&lt;br /&gt;
&lt;br /&gt;
Note the &amp;quot;-e 32000,16,2&amp;quot;, letting transcode know about the parameters of the audio stream from the saa7134 card. &lt;br /&gt;
&lt;br /&gt;
The files produced in this manner are almost twice as large as the ones produced by the mencoder command above, but show significantly less pixillation. CPU utilization is also about double. For the saa7134, 48000Hz is only valid for external audio input to the card; for internal audio input (directly via the PCI bus), you have to use 32000Hz.&lt;br /&gt;
&lt;br /&gt;
=== Loading multiple cards ===&lt;br /&gt;
&lt;br /&gt;
If you have more than one card in the same machine, and want to control which devices they create, you can use this sort of thing with kernels before 2.6.15:&lt;br /&gt;
&lt;br /&gt;
 saa7134 video_nr=1,2,3 vbi_nr=1,2,3 mixer_nr=1,2,3 radio_nr=1,2,3 card=2,2,2 tuner=39,39,17 &lt;br /&gt;
&lt;br /&gt;
With 2.6.15 and later kernels, use this instead (drop the mixer and add a line for the audio driver):&lt;br /&gt;
&lt;br /&gt;
 saa7134 card=2,2,2 tuner=39,39,17 video_nr=1,2,3 vbi_nr=1,2,3 radio_nr=1,2,3&lt;br /&gt;
 saa7134-alsa index=1,2,3&lt;br /&gt;
&lt;br /&gt;
In /etc/modprobe.d/saa7134, I use this for five different cards (including two [[LifeView FlyTV Platinum]] cards):&lt;br /&gt;
&lt;br /&gt;
      options saa7134 card=2,54,2,54,2 tuner=39,54,39,54,17 video_nr=1,2,3,4,5 \&lt;br /&gt;
      vbi_nr=1,2,3,4,5 radio_nr=1,2,3,4,5 disable_ir=1,1,1,1,1&lt;br /&gt;
      install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-alsa&lt;br /&gt;
      options saa7134-alsa index=1,2,3,4,5&lt;br /&gt;
&lt;br /&gt;
This creates video1, vbi1, radio1, and the alsa device hw:1 for the first card, and so on up.&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
With the FlyVideo 3000(FM), you should have the small grey credit-card sized remote. And yes, this is [http://www.mail-archive.com/video4linux-list@redhat.com/msg04784.html supported] and should be working (I haven't tested it).&lt;br /&gt;
&lt;br /&gt;
For instructions, see [[Generic_SAA7134_Card_Installation#Remote_setup]].&lt;br /&gt;
&lt;br /&gt;
=== Closed captioning ===&lt;br /&gt;
&lt;br /&gt;
Closed captioning on saa713x is now working; Michael Schimek has added support to libzvbi (mid-May 2005); see [[Text capture]].&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://www.lifeview.com/usa/html/products/PCITV/FlyVideo3000-w1.htm LifeView product page]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC</id>
		<title>LifeView FlyVideo3000FM NTSC</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC"/>
				<updated>2007-09-22T23:44:52Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Recording with mencoder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:LifeView-FlyVideo-3000FM.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
===Introduction ===&lt;br /&gt;
&lt;br /&gt;
This card works perfectly -- it gets 640x480 frames, audio directly from the card, and closed captioning.  I've worked with up to five cards in one computer, though you need a powerful CPU to keep up with the data flow. &lt;br /&gt;
&lt;br /&gt;
For detailed images of the various slightly different models, see [http://www.bttv-gallery.de/ bttv gallery]. Most of LifeView's saa713x cards fit both 32-bit PCI slots and 64-bit PCI-X slots -- see the telltale second slit in the foot of the card.&lt;br /&gt;
&lt;br /&gt;
See also [[LifeView FlyVideo3000 PAL-N]].&lt;br /&gt;
&lt;br /&gt;
=== Identification ===&lt;br /&gt;
&lt;br /&gt;
The 3000 and the 3000FM cards are identified as having the same subsystem:&lt;br /&gt;
&lt;br /&gt;
  lspci -vvv: 02:0a.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev 10)&lt;br /&gt;
        Subsystem: Unknown device 5169:0138&lt;br /&gt;
&lt;br /&gt;
The cards have the [http://www.semiconductors.philips.com/pip/SAA7133HL_V101.html saa7133HL-v101] chip.&lt;br /&gt;
&lt;br /&gt;
=== Loading the right driver ===&lt;br /&gt;
&lt;br /&gt;
The card needs the saa7134 driver, which should be built as a module in the kernel. When the module is inserted, your particular variant may be autodetected or you may need to manually configure it. Try the simplest method first:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134&lt;br /&gt;
&lt;br /&gt;
If the card is not working right, and you have a recent kernel, try this:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 i2c_scan=1&lt;br /&gt;
&lt;br /&gt;
If both fail, you may need to configure the card manually by passing values for the card and/or tuner.&lt;br /&gt;
&lt;br /&gt;
=== Selecting the tuner ===&lt;br /&gt;
&lt;br /&gt;
Use card 2 in the Documentation/video4linux/CARDLIST.saa7134. Versions of FlyVideo 3000 are shipped with different [[Tuners |tuners]]; to find yours, grep on the card and your television standard to pull up relevant alternatives:&lt;br /&gt;
&lt;br /&gt;
 grep Philips Documentation/video4linux/CARDLIST.tuner | grep NTSC&lt;br /&gt;
&lt;br /&gt;
For the NTSC tuner on the FlyVideo 3000 (without the radio), I found 17 was the right one. The FlyVideo3000FM has a different tuner, and I found 43 works, but only gives you channels below 60. Tuner 39 gives you all channels. In kernel 2.6.12 I had to reboot to reset the tuner -- modprobe didn't do it -- but in kernel 2.6.18 the tuner reset without a reboot. With 2.6.19, I switched to tuner 95.&lt;br /&gt;
&lt;br /&gt;
=== Inserting the module ===&lt;br /&gt;
&lt;br /&gt;
For this card, if autodetection fails, you can insert the module with the following options:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 card=2 tuner=39&lt;br /&gt;
&lt;br /&gt;
The 3000 version of the card (without radio) takes tuner 17.&lt;br /&gt;
&lt;br /&gt;
When you've found a method that works -- autodetection or manual configuration -- include the working options in your modules configuration setup. For details, see [[Generic_SAA7134_Card_Installation#Drivers_probing]].&lt;br /&gt;
&lt;br /&gt;
=== Getting PCI audio ===&lt;br /&gt;
&lt;br /&gt;
You can get the audio from the card through the PCI bus instead of through the audio out jack and a patch cable to your sound card.  &lt;br /&gt;
&lt;br /&gt;
For kernels 2.6.15 and later, see [[Saa7134-alsa]] for details on both ALSA and OSS sound. &lt;br /&gt;
&lt;br /&gt;
For earlier kernels, adding &amp;quot;oss=1&amp;quot; as an insmod parameter will create /dev/dsp1 and /dev/mixer1. For detailed instructions, see [http://gentoo-wiki.com/HARDWARE_saa7134 Gentoo's saa7134 wiki].&lt;br /&gt;
&lt;br /&gt;
In earlier kernels, you use &lt;br /&gt;
&lt;br /&gt;
   aumix -d /dev/mixer1 -I&lt;br /&gt;
&lt;br /&gt;
to set the recording channel to 1.&lt;br /&gt;
&lt;br /&gt;
=== Recording with mencoder ===&lt;br /&gt;
&lt;br /&gt;
Use something like this:&lt;br /&gt;
 &lt;br /&gt;
   mencoder tv:// -tv driver=v4l2:device=/dev/video1:fps=30000/1001:chanlist=us-cable:audiorate=32000:&lt;br /&gt;
   adevice=/dev/dsp1:input=0:amode=1:normid=4 -ffourcc DIVX -ovc lavc -lavcopts vcodec=mpeg4:mbd=2 &lt;br /&gt;
   -oac mp3lame -lameopts cbr:br=128 -endpos 60 -o output.avi&lt;br /&gt;
&lt;br /&gt;
This gives me stereo audio with medium-quality video. I found that if I included &amp;quot;-of mpeg&amp;quot; to create a true mpeg stream, the audio got delayed -- there are no sync problems with the avi file.&lt;br /&gt;
&lt;br /&gt;
=== Recording with transcode ===&lt;br /&gt;
&lt;br /&gt;
You can also use transcode to record:&lt;br /&gt;
&lt;br /&gt;
   transcode -x v4l2,v4l2 -M 2 -i /dev/video$DEV -p /dev/dsp1 -e 32000,16,2 -y ffmpeg -F mpeg4 &lt;br /&gt;
   -c 00:30 -g 640x480 -f 29.970,4 -I 1 -u 1024 -Q 3 -E 32000,16,2 --lame_preset medium -o output.avi&lt;br /&gt;
&lt;br /&gt;
Note the &amp;quot;-e 32000,16,2&amp;quot;, letting transcode know about the parameters of the audio stream from the saa7134 card. &lt;br /&gt;
&lt;br /&gt;
The files produced in this manner are almost twice as large as the ones produced by the mencoder command above, but show significantly less pixillation. CPU utilization is also about double. For the saa7134, 48000Hz is only valid for external audio input to the card; for tv you have to use 32000Hz.&lt;br /&gt;
&lt;br /&gt;
=== Loading multiple cards ===&lt;br /&gt;
&lt;br /&gt;
If you have more than one card in the same machine, and want to control which devices they create, you can use this sort of thing with kernels before 2.6.15:&lt;br /&gt;
&lt;br /&gt;
 saa7134 video_nr=1,2,3 vbi_nr=1,2,3 mixer_nr=1,2,3 radio_nr=1,2,3 card=2,2,2 tuner=39,39,17 &lt;br /&gt;
&lt;br /&gt;
With 2.6.15 and later kernels, use this instead (drop the mixer and add a line for the audio driver):&lt;br /&gt;
&lt;br /&gt;
 saa7134 card=2,2,2 tuner=39,39,17 video_nr=1,2,3 vbi_nr=1,2,3 radio_nr=1,2,3&lt;br /&gt;
 saa7134-alsa index=1,2,3&lt;br /&gt;
&lt;br /&gt;
In /etc/modprobe.d/saa7134, I use this for five different cards (including two [[LifeView FlyTV Platinum]] cards):&lt;br /&gt;
&lt;br /&gt;
      options saa7134 card=2,54,2,54,2 tuner=39,54,39,54,17 video_nr=1,2,3,4,5 \&lt;br /&gt;
      vbi_nr=1,2,3,4,5 radio_nr=1,2,3,4,5 disable_ir=1,1,1,1,1&lt;br /&gt;
      install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-alsa&lt;br /&gt;
      options saa7134-alsa index=1,2,3,4,5&lt;br /&gt;
&lt;br /&gt;
This creates video1, vbi1, radio1, and the alsa device hw:1 for the first card, and so on up.&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
With the FlyVideo 3000(FM), you should have the small grey credit-card sized remote. And yes, this is [http://www.mail-archive.com/video4linux-list@redhat.com/msg04784.html supported] and should be working (I haven't tested it).&lt;br /&gt;
&lt;br /&gt;
For instructions, see [[Generic_SAA7134_Card_Installation#Remote_setup]].&lt;br /&gt;
&lt;br /&gt;
=== Closed captioning ===&lt;br /&gt;
&lt;br /&gt;
Closed captioning on saa713x is now working; Michael Schimek has added support to libzvbi (mid-May 2005); see [[Text capture]].&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://www.lifeview.com/usa/html/products/PCITV/FlyVideo3000-w1.htm LifeView product page]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC</id>
		<title>LifeView FlyVideo3000FM NTSC</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC"/>
				<updated>2007-09-22T23:43:47Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Selecting the tuner */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:LifeView-FlyVideo-3000FM.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
===Introduction ===&lt;br /&gt;
&lt;br /&gt;
This card works perfectly -- it gets 640x480 frames, audio directly from the card, and closed captioning.  I've worked with up to five cards in one computer, though you need a powerful CPU to keep up with the data flow. &lt;br /&gt;
&lt;br /&gt;
For detailed images of the various slightly different models, see [http://www.bttv-gallery.de/ bttv gallery]. Most of LifeView's saa713x cards fit both 32-bit PCI slots and 64-bit PCI-X slots -- see the telltale second slit in the foot of the card.&lt;br /&gt;
&lt;br /&gt;
See also [[LifeView FlyVideo3000 PAL-N]].&lt;br /&gt;
&lt;br /&gt;
=== Identification ===&lt;br /&gt;
&lt;br /&gt;
The 3000 and the 3000FM cards are identified as having the same subsystem:&lt;br /&gt;
&lt;br /&gt;
  lspci -vvv: 02:0a.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev 10)&lt;br /&gt;
        Subsystem: Unknown device 5169:0138&lt;br /&gt;
&lt;br /&gt;
The cards have the [http://www.semiconductors.philips.com/pip/SAA7133HL_V101.html saa7133HL-v101] chip.&lt;br /&gt;
&lt;br /&gt;
=== Loading the right driver ===&lt;br /&gt;
&lt;br /&gt;
The card needs the saa7134 driver, which should be built as a module in the kernel. When the module is inserted, your particular variant may be autodetected or you may need to manually configure it. Try the simplest method first:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134&lt;br /&gt;
&lt;br /&gt;
If the card is not working right, and you have a recent kernel, try this:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 i2c_scan=1&lt;br /&gt;
&lt;br /&gt;
If both fail, you may need to configure the card manually by passing values for the card and/or tuner.&lt;br /&gt;
&lt;br /&gt;
=== Selecting the tuner ===&lt;br /&gt;
&lt;br /&gt;
Use card 2 in the Documentation/video4linux/CARDLIST.saa7134. Versions of FlyVideo 3000 are shipped with different [[Tuners |tuners]]; to find yours, grep on the card and your television standard to pull up relevant alternatives:&lt;br /&gt;
&lt;br /&gt;
 grep Philips Documentation/video4linux/CARDLIST.tuner | grep NTSC&lt;br /&gt;
&lt;br /&gt;
For the NTSC tuner on the FlyVideo 3000 (without the radio), I found 17 was the right one. The FlyVideo3000FM has a different tuner, and I found 43 works, but only gives you channels below 60. Tuner 39 gives you all channels. In kernel 2.6.12 I had to reboot to reset the tuner -- modprobe didn't do it -- but in kernel 2.6.18 the tuner reset without a reboot. With 2.6.19, I switched to tuner 95.&lt;br /&gt;
&lt;br /&gt;
=== Inserting the module ===&lt;br /&gt;
&lt;br /&gt;
For this card, if autodetection fails, you can insert the module with the following options:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 card=2 tuner=39&lt;br /&gt;
&lt;br /&gt;
The 3000 version of the card (without radio) takes tuner 17.&lt;br /&gt;
&lt;br /&gt;
When you've found a method that works -- autodetection or manual configuration -- include the working options in your modules configuration setup. For details, see [[Generic_SAA7134_Card_Installation#Drivers_probing]].&lt;br /&gt;
&lt;br /&gt;
=== Getting PCI audio ===&lt;br /&gt;
&lt;br /&gt;
You can get the audio from the card through the PCI bus instead of through the audio out jack and a patch cable to your sound card.  &lt;br /&gt;
&lt;br /&gt;
For kernels 2.6.15 and later, see [[Saa7134-alsa]] for details on both ALSA and OSS sound. &lt;br /&gt;
&lt;br /&gt;
For earlier kernels, adding &amp;quot;oss=1&amp;quot; as an insmod parameter will create /dev/dsp1 and /dev/mixer1. For detailed instructions, see [http://gentoo-wiki.com/HARDWARE_saa7134 Gentoo's saa7134 wiki].&lt;br /&gt;
&lt;br /&gt;
In earlier kernels, you use &lt;br /&gt;
&lt;br /&gt;
   aumix -d /dev/mixer1 -I&lt;br /&gt;
&lt;br /&gt;
to set the recording channel to 1.&lt;br /&gt;
&lt;br /&gt;
=== Recording with mencoder ===&lt;br /&gt;
&lt;br /&gt;
Use something like this:&lt;br /&gt;
 &lt;br /&gt;
   mencoder tv:// -tv driver=v4l2:device=/dev/video1:fps=30000/1001:chanlist=us-cable:audiorate=32000:&lt;br /&gt;
   adevice=/dev/dsp1:input=0:amode=1:normid=4 -ffourcc DIVX -ovc lavc -lavcopts vcodec=mpeg4:mbd=2 &lt;br /&gt;
   -oac mp3lame -lameopts cbr:br=128 -endpos 60 -o output.avi&lt;br /&gt;
&lt;br /&gt;
This gives me stereo audio with high-quality video. I found that if I included &amp;quot;-of mpeg&amp;quot; to create a true mpeg stream, the audio got delayed -- there are no sync problems with the avi file.&lt;br /&gt;
&lt;br /&gt;
=== Recording with transcode ===&lt;br /&gt;
&lt;br /&gt;
You can also use transcode to record:&lt;br /&gt;
&lt;br /&gt;
   transcode -x v4l2,v4l2 -M 2 -i /dev/video$DEV -p /dev/dsp1 -e 32000,16,2 -y ffmpeg -F mpeg4 &lt;br /&gt;
   -c 00:30 -g 640x480 -f 29.970,4 -I 1 -u 1024 -Q 3 -E 32000,16,2 --lame_preset medium -o output.avi&lt;br /&gt;
&lt;br /&gt;
Note the &amp;quot;-e 32000,16,2&amp;quot;, letting transcode know about the parameters of the audio stream from the saa7134 card. &lt;br /&gt;
&lt;br /&gt;
The files produced in this manner are almost twice as large as the ones produced by the mencoder command above, but show significantly less pixillation. CPU utilization is also about double. For the saa7134, 48000Hz is only valid for external audio input to the card; for tv you have to use 32000Hz.&lt;br /&gt;
&lt;br /&gt;
=== Loading multiple cards ===&lt;br /&gt;
&lt;br /&gt;
If you have more than one card in the same machine, and want to control which devices they create, you can use this sort of thing with kernels before 2.6.15:&lt;br /&gt;
&lt;br /&gt;
 saa7134 video_nr=1,2,3 vbi_nr=1,2,3 mixer_nr=1,2,3 radio_nr=1,2,3 card=2,2,2 tuner=39,39,17 &lt;br /&gt;
&lt;br /&gt;
With 2.6.15 and later kernels, use this instead (drop the mixer and add a line for the audio driver):&lt;br /&gt;
&lt;br /&gt;
 saa7134 card=2,2,2 tuner=39,39,17 video_nr=1,2,3 vbi_nr=1,2,3 radio_nr=1,2,3&lt;br /&gt;
 saa7134-alsa index=1,2,3&lt;br /&gt;
&lt;br /&gt;
In /etc/modprobe.d/saa7134, I use this for five different cards (including two [[LifeView FlyTV Platinum]] cards):&lt;br /&gt;
&lt;br /&gt;
      options saa7134 card=2,54,2,54,2 tuner=39,54,39,54,17 video_nr=1,2,3,4,5 \&lt;br /&gt;
      vbi_nr=1,2,3,4,5 radio_nr=1,2,3,4,5 disable_ir=1,1,1,1,1&lt;br /&gt;
      install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-alsa&lt;br /&gt;
      options saa7134-alsa index=1,2,3,4,5&lt;br /&gt;
&lt;br /&gt;
This creates video1, vbi1, radio1, and the alsa device hw:1 for the first card, and so on up.&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
With the FlyVideo 3000(FM), you should have the small grey credit-card sized remote. And yes, this is [http://www.mail-archive.com/video4linux-list@redhat.com/msg04784.html supported] and should be working (I haven't tested it).&lt;br /&gt;
&lt;br /&gt;
For instructions, see [[Generic_SAA7134_Card_Installation#Remote_setup]].&lt;br /&gt;
&lt;br /&gt;
=== Closed captioning ===&lt;br /&gt;
&lt;br /&gt;
Closed captioning on saa713x is now working; Michael Schimek has added support to libzvbi (mid-May 2005); see [[Text capture]].&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://www.lifeview.com/usa/html/products/PCITV/FlyVideo3000-w1.htm LifeView product page]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC</id>
		<title>LifeView FlyVideo3000FM NTSC</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC"/>
				<updated>2007-09-22T23:41:32Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:LifeView-FlyVideo-3000FM.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
===Introduction ===&lt;br /&gt;
&lt;br /&gt;
This card works perfectly -- it gets 640x480 frames, audio directly from the card, and closed captioning.  I've worked with up to five cards in one computer, though you need a powerful CPU to keep up with the data flow. &lt;br /&gt;
&lt;br /&gt;
For detailed images of the various slightly different models, see [http://www.bttv-gallery.de/ bttv gallery]. Most of LifeView's saa713x cards fit both 32-bit PCI slots and 64-bit PCI-X slots -- see the telltale second slit in the foot of the card.&lt;br /&gt;
&lt;br /&gt;
See also [[LifeView FlyVideo3000 PAL-N]].&lt;br /&gt;
&lt;br /&gt;
=== Identification ===&lt;br /&gt;
&lt;br /&gt;
The 3000 and the 3000FM cards are identified as having the same subsystem:&lt;br /&gt;
&lt;br /&gt;
  lspci -vvv: 02:0a.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev 10)&lt;br /&gt;
        Subsystem: Unknown device 5169:0138&lt;br /&gt;
&lt;br /&gt;
The cards have the [http://www.semiconductors.philips.com/pip/SAA7133HL_V101.html saa7133HL-v101] chip.&lt;br /&gt;
&lt;br /&gt;
=== Loading the right driver ===&lt;br /&gt;
&lt;br /&gt;
The card needs the saa7134 driver, which should be built as a module in the kernel. When the module is inserted, your particular variant may be autodetected or you may need to manually configure it. Try the simplest method first:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134&lt;br /&gt;
&lt;br /&gt;
If the card is not working right, and you have a recent kernel, try this:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 i2c_scan=1&lt;br /&gt;
&lt;br /&gt;
If both fail, you may need to configure the card manually by passing values for the card and/or tuner.&lt;br /&gt;
&lt;br /&gt;
=== Selecting the tuner ===&lt;br /&gt;
&lt;br /&gt;
Use card 2 in the Documentation/video4linux/CARDLIST.saa7134. Versions of FlyVideo 3000 are shipped with different [[Tuners |tuners]]; to find yours, grep on the card and your television standard to pull up relevant alternatives:&lt;br /&gt;
&lt;br /&gt;
 grep Philips Documentation/video4linux/CARDLIST.tuner | grep NTSC&lt;br /&gt;
&lt;br /&gt;
For the NTSC tuner on the FlyVideo 3000 (without the radio), I found 17 was the right one. The FlyVideo3000FM has a different tuner, and I found 43 works, but only gives you channels below 60. Tuner 39 gives you all channels. In kernel 2.6.12 I had to reboot to reset the tuner -- modprobe didn't do it -- but in kernel 2.6.18 the tuner reset without a reboot.&lt;br /&gt;
&lt;br /&gt;
=== Inserting the module ===&lt;br /&gt;
&lt;br /&gt;
For this card, if autodetection fails, you can insert the module with the following options:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 card=2 tuner=39&lt;br /&gt;
&lt;br /&gt;
The 3000 version of the card (without radio) takes tuner 17.&lt;br /&gt;
&lt;br /&gt;
When you've found a method that works -- autodetection or manual configuration -- include the working options in your modules configuration setup. For details, see [[Generic_SAA7134_Card_Installation#Drivers_probing]].&lt;br /&gt;
&lt;br /&gt;
=== Getting PCI audio ===&lt;br /&gt;
&lt;br /&gt;
You can get the audio from the card through the PCI bus instead of through the audio out jack and a patch cable to your sound card.  &lt;br /&gt;
&lt;br /&gt;
For kernels 2.6.15 and later, see [[Saa7134-alsa]] for details on both ALSA and OSS sound. &lt;br /&gt;
&lt;br /&gt;
For earlier kernels, adding &amp;quot;oss=1&amp;quot; as an insmod parameter will create /dev/dsp1 and /dev/mixer1. For detailed instructions, see [http://gentoo-wiki.com/HARDWARE_saa7134 Gentoo's saa7134 wiki].&lt;br /&gt;
&lt;br /&gt;
In earlier kernels, you use &lt;br /&gt;
&lt;br /&gt;
   aumix -d /dev/mixer1 -I&lt;br /&gt;
&lt;br /&gt;
to set the recording channel to 1.&lt;br /&gt;
&lt;br /&gt;
=== Recording with mencoder ===&lt;br /&gt;
&lt;br /&gt;
Use something like this:&lt;br /&gt;
 &lt;br /&gt;
   mencoder tv:// -tv driver=v4l2:device=/dev/video1:fps=30000/1001:chanlist=us-cable:audiorate=32000:&lt;br /&gt;
   adevice=/dev/dsp1:input=0:amode=1:normid=4 -ffourcc DIVX -ovc lavc -lavcopts vcodec=mpeg4:mbd=2 &lt;br /&gt;
   -oac mp3lame -lameopts cbr:br=128 -endpos 60 -o output.avi&lt;br /&gt;
&lt;br /&gt;
This gives me stereo audio with high-quality video. I found that if I included &amp;quot;-of mpeg&amp;quot; to create a true mpeg stream, the audio got delayed -- there are no sync problems with the avi file.&lt;br /&gt;
&lt;br /&gt;
=== Recording with transcode ===&lt;br /&gt;
&lt;br /&gt;
You can also use transcode to record:&lt;br /&gt;
&lt;br /&gt;
   transcode -x v4l2,v4l2 -M 2 -i /dev/video$DEV -p /dev/dsp1 -e 32000,16,2 -y ffmpeg -F mpeg4 &lt;br /&gt;
   -c 00:30 -g 640x480 -f 29.970,4 -I 1 -u 1024 -Q 3 -E 32000,16,2 --lame_preset medium -o output.avi&lt;br /&gt;
&lt;br /&gt;
Note the &amp;quot;-e 32000,16,2&amp;quot;, letting transcode know about the parameters of the audio stream from the saa7134 card. &lt;br /&gt;
&lt;br /&gt;
The files produced in this manner are almost twice as large as the ones produced by the mencoder command above, but show significantly less pixillation. CPU utilization is also about double. For the saa7134, 48000Hz is only valid for external audio input to the card; for tv you have to use 32000Hz.&lt;br /&gt;
&lt;br /&gt;
=== Loading multiple cards ===&lt;br /&gt;
&lt;br /&gt;
If you have more than one card in the same machine, and want to control which devices they create, you can use this sort of thing with kernels before 2.6.15:&lt;br /&gt;
&lt;br /&gt;
 saa7134 video_nr=1,2,3 vbi_nr=1,2,3 mixer_nr=1,2,3 radio_nr=1,2,3 card=2,2,2 tuner=39,39,17 &lt;br /&gt;
&lt;br /&gt;
With 2.6.15 and later kernels, use this instead (drop the mixer and add a line for the audio driver):&lt;br /&gt;
&lt;br /&gt;
 saa7134 card=2,2,2 tuner=39,39,17 video_nr=1,2,3 vbi_nr=1,2,3 radio_nr=1,2,3&lt;br /&gt;
 saa7134-alsa index=1,2,3&lt;br /&gt;
&lt;br /&gt;
In /etc/modprobe.d/saa7134, I use this for five different cards (including two [[LifeView FlyTV Platinum]] cards):&lt;br /&gt;
&lt;br /&gt;
      options saa7134 card=2,54,2,54,2 tuner=39,54,39,54,17 video_nr=1,2,3,4,5 \&lt;br /&gt;
      vbi_nr=1,2,3,4,5 radio_nr=1,2,3,4,5 disable_ir=1,1,1,1,1&lt;br /&gt;
      install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-alsa&lt;br /&gt;
      options saa7134-alsa index=1,2,3,4,5&lt;br /&gt;
&lt;br /&gt;
This creates video1, vbi1, radio1, and the alsa device hw:1 for the first card, and so on up.&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
With the FlyVideo 3000(FM), you should have the small grey credit-card sized remote. And yes, this is [http://www.mail-archive.com/video4linux-list@redhat.com/msg04784.html supported] and should be working (I haven't tested it).&lt;br /&gt;
&lt;br /&gt;
For instructions, see [[Generic_SAA7134_Card_Installation#Remote_setup]].&lt;br /&gt;
&lt;br /&gt;
=== Closed captioning ===&lt;br /&gt;
&lt;br /&gt;
Closed captioning on saa713x is now working; Michael Schimek has added support to libzvbi (mid-May 2005); see [[Text capture]].&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
* [http://www.lifeview.com/usa/html/products/PCITV/FlyVideo3000-w1.htm LifeView product page]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Webcam_Devices</id>
		<title>Webcam Devices</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Webcam_Devices"/>
				<updated>2007-08-07T23:24:00Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Webcam drivers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Applications==&lt;br /&gt;
&lt;br /&gt;
* [http://tldp.org/HOWTO/Webcam-HOWTO/index.html The Webcam HowTo]&lt;br /&gt;
** [http://tldp.org/HOWTO/Webcam-HOWTO/framegrabbers.html framegrabbing applications] &lt;br /&gt;
* [http://www.ekiga.org Ekiga] -- Ekiga is a free Voice over IP phone allowing you to do free calls over the Internet. Ekiga is the first Open Source application to support both H.323 and SIP, as well as audio and video. Ekiga was formerly known as GnomeMeeting.&lt;br /&gt;
* [http://www.firestorm.cx/fswebcam/ fswebcam] -- fswebcam is a neat and simple webcam app for Linux. It captures images from a V4L1/V4L2 compatible device or file, averages them to reduce noise and draws a caption using the GD Graphics Library which also handles compressing the image to PNG or JPEG. The resulting image is saved to a file or sent to stdio where it can be piped to something like ncftpput or scp.&lt;br /&gt;
* [http://motion.sourceforge.net motion] -- motion-detection using a webcam&lt;br /&gt;
* [http://www.stolk.org/sonic-snap/ sonic-snap] -- webcam application specifically suited for the Sonix sn9c10x chip&lt;br /&gt;
* [http://www.litech.org/spook spook] -- capture live video and audio and stream it over an IP network&lt;br /&gt;
* [http://julien.danjou.info/telak.html telak] -- display remote or local pictures on your desktop&lt;br /&gt;
* [http://vgrabbj.gecius.de/ vgrabbj] -- grabs a image from a camera and puts it in jpg/png format&lt;br /&gt;
* [http://www.linux-projects.org/ Videoview &amp;amp; Device Debugger] -- applications suited for some drivers present in the Linux kernel. Videoview supports the USB Video Class standard.&lt;br /&gt;
* [http://linux.bytesex.org/xawtv webcam] -- captures images and uploads them to a Web-Server via ftp or ssh in a endless loop&lt;br /&gt;
&lt;br /&gt;
==Resources==&lt;br /&gt;
* [http://www.exploits.org/v4l/ Video for Linux resources] -- see Video: Security / Webcams / Monitoring&lt;br /&gt;
* For USB webcams, see also [http://www.qbik.ch/usb/devices/search_res.php?pattern=video&amp;amp;submit=Search%21 video devices] in the [http://www.qbik.ch/usb/devices/index.php USB device overview database]&lt;br /&gt;
&lt;br /&gt;
==UVC webcams==&lt;br /&gt;
&lt;br /&gt;
Do you have USB 2.0 controllers on your notebook and desktop? If so, you could benefit from higher resolutions with the Logitech Quickam for Notebooks Pro, Quickcam Fusion and Quickcam Orbit MP. All those webcams are 1.3MP devices and are supported by the [http://linux-uvc.berlios.de/ linux-uvc] driver. Note that the Quickcam for Notebooks Deluxe doesn't fall in that category; it's supported by the [http://mxhaard.free.fr/ spca5xx] driver.&lt;br /&gt;
&lt;br /&gt;
Those 3 webcams also work in USB 1.1 mode, but are then limited to 640x480. In that case, you could go for the Quickcam Pro 5000, which is a 640x480 device supported by the linux-uvc driver.&lt;br /&gt;
&lt;br /&gt;
UVC webcams are well supported, but you must be aware of a few issues.&lt;br /&gt;
&lt;br /&gt;
* The linux-uvc driver is V4L2-only. This means applications which support V4L1 only will not work. V4L1 is officially deprecated, and have been removed from the kernel recently, so most drivers have or will switch to V4L2 anyway.&lt;br /&gt;
&lt;br /&gt;
* The 4 webcams mentioned above compress images in MJPEG for resolutions up to 960x720. This means that applications must be able to decompress MJPEG streams to use the webcam at lower resolutions. Ekiga supports MJPEG compression.&lt;br /&gt;
&lt;br /&gt;
==Webcam drivers==&lt;br /&gt;
(alphabetize by driver)&lt;br /&gt;
&lt;br /&gt;
Many of these are out-of-tree kernel drivers.&lt;br /&gt;
&lt;br /&gt;
* [http://webcam.sourceforge.net/ cpia] -- first generation of STM's Color Processor Interface (ASIC)  [[Cpia]]&lt;br /&gt;
**Included in mainline kernel&lt;br /&gt;
**Supports a large number of USB devices by Aiptek, Creative, Digicom, Dynalink, Ezonics, Intel, Microtek, Pace, SuperCam, TCE, Terracom, Trust, Utobia, ZoomCam&lt;br /&gt;
**Supports some parallel port devices by Creative, CVideo, CU-SeeMe, Digicom, and ZoomCam&lt;br /&gt;
* [[cpia2]] -- second generation of STM's Color Processor Interface (ASIC)&lt;br /&gt;
**Included in mainline kernel from 2.6.18&lt;br /&gt;
**Supports the [[QX5 USB microscope]], the Swann Versacam MINI webcam, and other devices using the second generation of STM's Color Processor Interface (ASIC)&lt;br /&gt;
* [[em2880]]&lt;br /&gt;
**Supports the [http://videologyinc.com/cameras/ccd-board-camera-20K14XUSB.htm Videology 20K14XUSB webcam]&lt;br /&gt;
**Included in mainline kernel from 2.6.18 (em28xx)&lt;br /&gt;
* [http://www.linux-projects.org et61x251] &lt;br /&gt;
**Supports Etoms ET61X151 or ET61X251-based USB cameras&lt;br /&gt;
**Included in mainline kernel&lt;br /&gt;
* [http://icm532.sourceforge.net/ icm532]&lt;br /&gt;
* [http://linux-uvc.berlios.de/ linux-uvc] -- the USB Video Class Linux device driver&lt;br /&gt;
**Not included in the kernel (as of 2.6.18), but several distros have ready packages&lt;br /&gt;
**Supports several USB2.0 Logitech Quickcams, such as the Orbit MP, the Pro for Notebooks, the Pro 5000, the Dell Notebook, and the Cisco VT Camera II&lt;br /&gt;
* [http://popies.net/meye/ meye] -- the Sony Vaio PictureBook Motion Eye Camera Driver&lt;br /&gt;
**Included in 2.4 and 2.6 kernels -- see [[meye |documentation]]&lt;br /&gt;
**Supports the second version of the MotionEye camera (PCI vendor/device 0x136b/0xff01)&lt;br /&gt;
**A driver for the third version is being written, see r-engine below &lt;br /&gt;
* [http://nw802.sourceforge.net/ nw802]&lt;br /&gt;
* [http://alpha.dyndns.org/ov511/ ov511]&lt;br /&gt;
* [http://www.saillard.org/linux/pwc/ pwc] -- the new driver&lt;br /&gt;
**Available in the latest kernels&lt;br /&gt;
**Supports Philips USB webcams&lt;br /&gt;
**[http://www.lavrsen.dk/twiki/bin/view/PWC/WebHome PWC wiki]&lt;br /&gt;
**[http://www.smcc.demon.nl/webcam/ Discontinued version]&lt;br /&gt;
* [http://qce-ga.sourceforge.net/ qce-ga/qc-usb] &lt;br /&gt;
**Kernel module package available in &lt;br /&gt;
***Debian stable ([http://packages.debian.org/stable/misc/qce-source qce-source])&lt;br /&gt;
***Deban testing and unstable ([http://packages.debian.org/unstable/misc/qc-usb-source qc-usb-source], see also [http://git.debian.org/?p=collab-maint/qc-usb.git;a=summary git repository])&lt;br /&gt;
**Supports Logitech Quickcam Express, LegoCam, Dexxa Webcam, Labtec Webcam (old model), Logitech QuickCam Notebook (some models)&lt;br /&gt;
* [http://www.informatik.uni-oldenburg.de/%7Edelwi/quickcam/ quickcam]&lt;br /&gt;
* [http://r-engine.sourceforge.net/ r-engine] &lt;br /&gt;
**Aims to support Sony Vaio Picturebooks (model PCG-C1M* and newer, PCI vendor/device 0x10cf/0x2011)&lt;br /&gt;
* [http://members.brabant.chello.nl/%7Ej.vreeken/se401/ se401]&lt;br /&gt;
* [http://sqcam.sourceforge.net/ sqcam]&lt;br /&gt;
**Supports webcams based on the sq905 chip, such as Volcano DG640E, Nexxtech Micro Digital Camera, Umax (Yamada) Astranugget; may work with Mito DG640E, Mitek CD10, Mitek 30P, GTW Electronics/ ShuoYing, Industrial(ShenZhen)Co.,Ltd SY-2102, Condord Eye-Q Easy / Eye Q Easy Too, Che-ez Snap, Hercules DualPix, Argus DC-1512, DC-1510, Gear to go, Magpix B350, Jenoptik JD 350, Concord Eye-Q Easy, PockCam&lt;br /&gt;
* [http://www.linux-projects.org/ Sonix SN9C10x]&lt;br /&gt;
**Available in the latest kernels as sn9c102&lt;br /&gt;
**Supports webcams based on the sn9c102 chip, such as the Genius VideoCam NB&lt;br /&gt;
**Another driver was in development here [http://sonix.sourceforge.net/ sonix]&lt;br /&gt;
**[http://tgnard.free.fr/linux/ sn9c101] -- patch for Trust Spacec@m&lt;br /&gt;
* [http://mxhaard.free.fr/ spca5xx] &lt;br /&gt;
**Supports webcams based on Sunplus Sonix Transvision Z-star/Vimicro Conexant Etoms chips&lt;br /&gt;
**Supports webcams such as Aiptek Pencam and Digital Dream l'espion&lt;br /&gt;
**See the long [http://mxhaard.free.fr/spca5xx.html list of devices]&lt;br /&gt;
* [http://syntekdriver.sourceforge.net/ stk11xx]&lt;br /&gt;
**Aims to support Syntek DC-1125/1135 cams&lt;br /&gt;
* [http://gkall.hobby.nl stv680] -- SANE backend&lt;br /&gt;
* [http://stv0680-usb.sourceforge.net/ sty0680]&lt;br /&gt;
* [http://home.t-online.de/home/free-photons/tv8532.html tv8532]&lt;br /&gt;
* [http://linux-uvc.berlios.de/ uvcvideo]&lt;br /&gt;
**USB Video Class driver&lt;br /&gt;
* [http://www.linux-projects.org/ w9968cf] -- included in the kernel&lt;br /&gt;
**Supports Winbond W9967CF or W9968CF-based USB cameras&lt;br /&gt;
** [http://winbond-webcam.sourceforge.net/ w9967cf (obsolete)]&lt;br /&gt;
* [http://www.royale.zerezo.com/zr364xx/ zr364xx]&lt;br /&gt;
**Supports the webcam mode of cameras based on the ZR364xx chips from wendors like Aiptek, Concord, Creative, Genius, Maxell, Fujifilm, Ricoh, Pentacon, Mustek, Konica, Umax etc.&lt;br /&gt;
* [http://www.linux-projects.org zc0301] -- included in the kernel&lt;br /&gt;
**Supports Z-Start/Vimicro ZC0301-based USB cameras&lt;br /&gt;
* [http://zc0302.sourceforge.net zc0302]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/V4L_channel_script</id>
		<title>V4L channel script</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/V4L_channel_script"/>
				<updated>2007-07-17T15:33:29Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==The channel scripts==&lt;br /&gt;
&lt;br /&gt;
===Introduction===&lt;br /&gt;
&lt;br /&gt;
This simple script, with its companion timestamper, is designed to capture television programs on a regular schedule and store the recordings in a dated directory tree along with the closed captioning text files. Because the scripts are so elementary, they are very easy to debug, and the script has been running flawlessly for more than a year now.&lt;br /&gt;
&lt;br /&gt;
The script is designed to handle several capture cards for simultaneous capture, and jobs are scheduled per card in a cron job or issued manually for a single program. Files are saved to the first drive with &amp;quot;tv&amp;quot; in its name and at least 1GB of free space.&lt;br /&gt;
&lt;br /&gt;
The use of [http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html bash] is elementary and can surely be improved on; I'm self-taught. Since the wiki uses the GPL license, the scripts are hereby GPL'd; feel free to modify.&lt;br /&gt;
&lt;br /&gt;
===Hardware===&lt;br /&gt;
&lt;br /&gt;
My setup is an amd64 motherboard with on-board NICs, sound, and video, and five PCI slots ([http://www.giga-byte.com/MotherBoard/Products/Products_Spec_GA-K8NS%20Ultra-939.htm Gigabyte K8NS Ultra-939]), so there's lots of room for grabber cards. It currently uses three [[FlyVideo3000FM NTSC]] and two [[FlyTV_Platinum]] (saa7134) cards. I chose them because I can get sound directly off the cards and don't need a patch cable for each one to a sound card. &lt;br /&gt;
&lt;br /&gt;
The three capture cards are loaded as follows:&lt;br /&gt;
&lt;br /&gt;
 saa7134 card=2,54,2,54,2 tuner=39,54,39,54,17 video_nr=1,2,3,4,5 vbi_nr=1,2,3,4,5 radio_nr=1,2,3,4,5 disable_ir=1,1,1,1,1&lt;br /&gt;
&lt;br /&gt;
The CPU is an AMD Athlon 64 dual core 4600+ (939); each mencoder session uses about 20% of the CPU. Results from five simultaneous capture is now excellent. The script assumes you get the signal off the air; cf. the &amp;quot;us-bcast&amp;quot; parameter. &lt;br /&gt;
&lt;br /&gt;
I would like to switch to [[PcHDTV |pcHDTV-3000]], but these cards don't have closed captioning support yet.&lt;br /&gt;
&lt;br /&gt;
I capture to SATA drives; the board has support for four of these. The OS is installed on a PATA drive.&lt;br /&gt;
&lt;br /&gt;
===Software===&lt;br /&gt;
&lt;br /&gt;
The OS is Debian sid with a 2.6.18-1 kernel. I generally leave the OS alone, but occasionally update some of the applications. &lt;br /&gt;
&lt;br /&gt;
Mencoder is used to grab and compress the footage, using DIVX and mp3lame and an avi wrapper (suggestions for improvements are welcome). I'm currently running [http://www.debian-multimedia.org/ Christian Marillat's] unofficial 1:1.0-pre8cvs20061002-0.0 Debian package. &lt;br /&gt;
&lt;br /&gt;
We don't don't view the footage on the capture machine, but use [http://nfs.sourceforge.net/ NFS] to view the captured files on other machines. On OSX, you can view the avi files with VLC; Windows is untested, but the files should play after installing the DIVX codec. Users can be given access to the recording machine's crontab. On X11, [http://docs.kde.org/development/en/kdeadmin/kcron/index.html kcron] provides a user-friendly interface. The status of the capture machine can usefully be monitored with gnome-system-monitor.&lt;br /&gt;
&lt;br /&gt;
For listings, we use [http://freeguide-tv.sourceforge.net/ Freeguide].&lt;br /&gt;
&lt;br /&gt;
===Capture script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# /usr/local/bin/channel&lt;br /&gt;
#&lt;br /&gt;
# Script to record analog television programs to .avi files, using mencoder, and&lt;br /&gt;
# the associated closed captioning in a separate identically named .txt file&lt;br /&gt;
#&lt;br /&gt;
# You need to include /usr/local/bin in cron's PATH (see kcron's Variables)&lt;br /&gt;
# Use the bash interpreter -- /bin/bash, not /bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Usage: channel &amp;lt;channel number&amp;gt; &amp;lt;duration&amp;gt; &amp;lt;title&amp;gt; &amp;lt;capture card number&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# For instance,&lt;br /&gt;
#&lt;br /&gt;
#       channel 28, 30min, &amp;quot;BBC World News&amp;quot;, 1&lt;br /&gt;
#&lt;br /&gt;
# Input parameter rules:&lt;br /&gt;
#    * commas are optional&lt;br /&gt;
#    * give duration (recording time) in minutes &lt;br /&gt;
#    * the word &amp;quot;min&amp;quot; (for minutes) is optional&lt;br /&gt;
#    * a space signals a new parameter&lt;br /&gt;
#    * enclose multi-word titles in quotes&lt;br /&gt;
#    * don't use apostrophes in titles -- messes up searching of captured text&lt;br /&gt;
#    * the default card number is 1&lt;br /&gt;
#&lt;br /&gt;
# Changelog&lt;br /&gt;
#    2005-01-12: added $! to terminate ntsc-cc and channel-timestamp&lt;br /&gt;
#    2005-04-15: added $DEV input parameter to handle multiple tv cards&lt;br /&gt;
#    2005-04-23: added aumix -d /dev/mixer1 -1 R for sound off the saa&lt;br /&gt;
#    2005-05-13: added mixer device number &lt;br /&gt;
#    2005-05-16: new directories are created with 775&lt;br /&gt;
#    2005-05-22: added busy test&lt;br /&gt;
#    2005-10-07: use zvbi-ntsc-cc, soon in libzvbi 0.2.17&lt;br /&gt;
#    2006-02-15: removed colon from filename (FIL=)&lt;br /&gt;
#    2006-08-18: added drive assignment routine (checks for space)&lt;br /&gt;
#    2006-09-04: switched from oss to alsa (2.6.17 kernel)&lt;br /&gt;
#    2006-09-14: check /dev/vbi$DEV instead of /dev/dsp$DEV in busy loop&lt;br /&gt;
#                (you could use /dev/video$DEV)&lt;br /&gt;
#    2006-09-20: added some messages at the end, using 24-hour time&lt;br /&gt;
#    2006-09-24: added XDS information to closed captioning&lt;br /&gt;
#&lt;br /&gt;
# ***************************************************************************&lt;br /&gt;
&lt;br /&gt;
# First some checks triggered by manual mode&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$1&amp;quot; = &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
 echo &amp;quot;Use news &amp;lt;channel number&amp;gt; &amp;lt;recording time in minutes&amp;gt;&amp;quot;;&lt;br /&gt;
 echo &amp;quot;Please give a channel! Valid channels are 2, 4, 5, 7, 9, 11, 13, and 28.&amp;quot;;&lt;br /&gt;
 exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$2&amp;quot; = &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
 echo &amp;quot;Use news &amp;lt;channel number&amp;gt; &amp;lt;recording time in minutes&amp;gt;&amp;quot;;&lt;br /&gt;
 echo &amp;quot;Please give a recording length in minutes!&amp;quot;;&lt;br /&gt;
 exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$3&amp;quot; = &amp;quot;&amp;quot; ] ; then&lt;br /&gt;
 echo &amp;quot;Use news &amp;lt;number&amp;gt; &amp;lt;duration&amp;gt; &amp;lt;title&amp;gt;&amp;quot;;&lt;br /&gt;
 echo &amp;quot;Please give a title to the recording!&amp;quot;;&lt;br /&gt;
 exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Define the video and VBI (vertical blanking interval) device to use&lt;br /&gt;
# Default is /dev/video1 and /dev/vbi1&lt;br /&gt;
if [ &amp;quot;$4&amp;quot; = &amp;quot;&amp;quot; ] ;&lt;br /&gt;
 then DEV=1&lt;br /&gt;
 else DEV=$4&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Define variable DRV to contain the first tv drive with more than 1% free&lt;br /&gt;
for i in $(df | cut -d'/' -f4 | grep tv | sort); do&lt;br /&gt;
  if [ &amp;quot;$(df /$i | grep $i | cut -b 52-54)&amp;quot; -lt 99 ]&lt;br /&gt;
      then DRV=$i&lt;br /&gt;
      echo &amp;quot;Using drive&amp;quot; $DRV &amp;quot;with&amp;quot; &amp;quot;$(df -h /$i | grep $i | cut -b 35-37)GB free&amp;quot;&lt;br /&gt;
      break&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Define variable DIR to contain nested directories for&lt;br /&gt;
#  yyyy, yyyy-mm, and yyyy-mm-dd (today's date)&lt;br /&gt;
DIR=/$DRV/$(date +%Y)/$(date +%Y-%m)/$(date +%F)&lt;br /&gt;
&lt;br /&gt;
# Create the directory (and any missing parents) if needed&lt;br /&gt;
if test ! -d $DIR&lt;br /&gt;
  then mkdir -p -m 775 $DIR&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Strip the comma, if any, from the channel name&lt;br /&gt;
CH=${1%,*}&lt;br /&gt;
&lt;br /&gt;
# Set the channel (current user needs X11 access)&lt;br /&gt;
# You can also set this in mencoder with tv://$CH or channel=$CH&lt;br /&gt;
v4lctl -c /dev/video$DEV setchannel $CH&lt;br /&gt;
&lt;br /&gt;
# Convert channel number to name for the base file name&lt;br /&gt;
case $CH in&lt;br /&gt;
  2) CH=KCBS;;&lt;br /&gt;
  4) CH=KNBC;;&lt;br /&gt;
  5) CH=KTLA-WB;;&lt;br /&gt;
  7) CH=KABC;;&lt;br /&gt;
  9) CH=KCAL;;&lt;br /&gt;
 11) CH=KTTV-FOX;;&lt;br /&gt;
 13) CH=KCOP-UPN;;&lt;br /&gt;
 28) CH=KCET;;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
# Strip the {min,|min|,} if it's there, from the duration&lt;br /&gt;
TIM=${2%m*}; TIM=${TIM%,*}&lt;br /&gt;
&lt;br /&gt;
# Strip the comma, if any, from the title, and convert spaces to underscores&lt;br /&gt;
TIT=_`echo ${3%,*} | sed -e &amp;quot;s/ /_/g&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
# Define the file name (escape underscore before $) and print it to screen&lt;br /&gt;
FIL=$(date +%F_%H%M)\_$CH$TIT; echo Preparing to record $FIL&lt;br /&gt;
&lt;br /&gt;
# Check if the capture device is busy&lt;br /&gt;
BUSY=&amp;quot;Capture card $DEV is busy -- will try for another five minutes \n&amp;quot;&lt;br /&gt;
START=$(date +%s); TARGET=$[$START + $[5*60]]&lt;br /&gt;
&lt;br /&gt;
while [ &amp;quot;$(sudo lsof /dev/vbi$DEV)&amp;quot; != &amp;quot;&amp;quot; ]; do&lt;br /&gt;
  if [ $TARGET -gt $(date +%s) ]&lt;br /&gt;
    then echo -ne $BUSY&lt;br /&gt;
      sleep 5; BUSY=&amp;quot;&amp;quot;&lt;br /&gt;
    else echo &amp;quot;Recording of $FIL aborted -- capture card $DEV is not available&amp;quot;&lt;br /&gt;
      exit&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Convert minutes to seconds and adjust down five seconds for the hardware to reset&lt;br /&gt;
TIM=$[$[TIM*60]-5]&lt;br /&gt;
&lt;br /&gt;
# Adjust the duration down by the delay added by the busy check, exit if no time left&lt;br /&gt;
TIM=$[TIM-$[$(date +%s) -$START]]; if [ $TIM -lt 1 ]; then exit; fi&lt;br /&gt;
&lt;br /&gt;
# Start the timestamp script and background&lt;br /&gt;
channel-timestamp $CH $TIT $DIR $FIL &amp;amp;&lt;br /&gt;
&lt;br /&gt;
# Get the PID for the timestamper&lt;br /&gt;
TMSP=$!&lt;br /&gt;
&lt;br /&gt;
# Start cc capture and background the process&lt;br /&gt;
zvbi-ntsc-cc -d /dev/vbi$DEV -cpx &amp;gt;&amp;gt; $DIR/$FIL.txt &amp;amp;&lt;br /&gt;
&lt;br /&gt;
# Get the PID for the closed captioning&lt;br /&gt;
NTSC=$!&lt;br /&gt;
&lt;br /&gt;
# Restore default sound sttings and open up the sound channel on the capture card &lt;br /&gt;
/usr/sbin/alsactl restore $DEV&lt;br /&gt;
&lt;br /&gt;
# Set any additional values (none currently needed)&lt;br /&gt;
#v4lctl -c /dev/video0 color &amp;quot;50%&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Record the footage (note this assumes direct audio)&lt;br /&gt;
&lt;br /&gt;
# Use this to control the bitrate -- default is 800&lt;br /&gt;
#lavc -lavcopts vbitrate=1800 -oac mp3lame -lameopts cbr:br=128 -endpos $TIM -o \&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Initiating recording of $FIL from channel $1&amp;quot;&lt;br /&gt;
echo &amp;quot;on capture card $DEV, at $(date +%T), duration $TIM seconds&amp;quot;&lt;br /&gt;
&lt;br /&gt;
mencoder -tv driver=v4l2:device=/dev/video$DEV:fps=30000/1001:chanlist=us-bcast:\&lt;br /&gt;
audiorate=32000:adevice=hw.$DEV:alsa:input=0:amode=1:normid=4 -ffourcc DIVX -ovc \&lt;br /&gt;
lavc -oac mp3lame -lameopts cbr:br=128 -endpos $TIM -o $DIR/$FIL.avi tv:// &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
# Stamp the file with receipts to verify capture success&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
ls -l $DIR/$FIL.*&lt;br /&gt;
echo -e &amp;quot;\nCompleted capture on $(date +%A\ %d\ %B\ %Y) at $(date +%T)&amp;quot;&lt;br /&gt;
echo -e &amp;quot;Video and audio   file size&amp;quot; $(ls -sh $DIR/$FIL.avi | cut -d' ' -f1)&lt;br /&gt;
echo -e &amp;quot;Closed captioning file size&amp;quot; $(ls -sh $DIR/$FIL.txt | cut -d' ' -f1) &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Terminate the closed captioning and the timestamper&lt;br /&gt;
kill $NTSC $TMSP&lt;br /&gt;
&lt;br /&gt;
# EOF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The only part of the script that gave me trouble over a prolonged period was the transition between recordings. Sometimes it takes the kernel several seconds to activate a card, and if the recording length doesn't compensate down, the next scheduled recording bumps into a busy device. However, this problem appears to have been fully solved in the current busy script, which waits for up to five minutes and shortens the recording time by the time waited.&lt;br /&gt;
&lt;br /&gt;
I also tended to lose some programs when a drive was full, since I often missed the exact moment, so I've added some lines to look for a drive with space. I was filling drives at the rate of 4GB a day and had room for four drives, so it would take a year to fill a set of 400GB drives.&lt;br /&gt;
&lt;br /&gt;
===Variant: capture to H.264 using alsa===&lt;br /&gt;
&lt;br /&gt;
If you want to capture to H.264 instead, and use the new [[saa7134-alsa]] module for getting sound, you can use this (and drop aumix from the script, as it doesn't appear to understand alsa's device notation):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mencoder -tv driver=v4l2:device=/dev/video$DEV:fps=30000/1001:chanlist=us-bcast:\&lt;br /&gt;
audiorate=32000:alsa:adevice=hw.$DEV:input=0:amode=1:normid=4:width=576:height=480 \&lt;br /&gt;
-ovc x264 -x264encopts bitrate=500:bframes=2:subq=2:me=2:frameref=2 \&lt;br /&gt;
-oac mp3lame -lameopts cbr:br=64 -endpos $TIM -o $DIR/$FIL.avi tv:// &amp;gt; /dev/null&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Time-stamping script===&lt;br /&gt;
&lt;br /&gt;
The main script calls this little routine for timestamping the closed captioning files. this is useful only if you want to set up a searchable database of text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# /usr/local/bin/channel-timestamp&lt;br /&gt;
#&lt;br /&gt;
# This shell script is used to add timestamps to closed captioning&lt;br /&gt;
# It is called by the main recording script, /usr/local/bin/channel.&lt;br /&gt;
#&lt;br /&gt;
# Add -xv to the top line to get verbose messages&lt;br /&gt;
#&lt;br /&gt;
# Changelog:&lt;br /&gt;
#  2005-01-12: The parent script now handles child process terminations&lt;br /&gt;
#  2005-01-13: Timestamps could use XDS data -- start with the date and&lt;br /&gt;
#              include title (not implemented)&lt;br /&gt;
#&lt;br /&gt;
# *****************************************************************&lt;br /&gt;
&lt;br /&gt;
# Write the first timestamp&lt;br /&gt;
echo $(date +%F_%H:%M:%S)_$1$2 &amp;gt;&amp;gt; $3/$4.txt&lt;br /&gt;
&lt;br /&gt;
# Write a timestamp every ten seconds&lt;br /&gt;
while true&lt;br /&gt;
 do&lt;br /&gt;
  sleep 10&lt;br /&gt;
  echo $(date +%F_%H:%M:%S)_$1$2 &amp;gt;&amp;gt; $3/$4.txt&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# EOF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Crontabs===&lt;br /&gt;
&lt;br /&gt;
While programs can be captured manually using the channel script, I use [http://www.linuxhelp.net/guides/cron/ cron] for scheduled recordings. &lt;br /&gt;
&lt;br /&gt;
Here are some examples of crontab usage:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# Folders to search for program files.&lt;br /&gt;
PATH=/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
# Email output to specified account.&lt;br /&gt;
MAILTO=tna&lt;br /&gt;
# KCAL 9 News at 9pm&lt;br /&gt;
0 21 * * 6      channel 9, 60min, &amp;quot;News at 9pm&amp;quot;, 1&lt;br /&gt;
# KNBC 4 Meet the Press&lt;br /&gt;
0 8 * * 7       channel 4, 60min, &amp;quot;Meet the Press&amp;quot;, 2&lt;br /&gt;
# KABC 7 World News Tonight&lt;br /&gt;
30 17 * * 7     channel 7, 30min, &amp;quot;World News Tonight&amp;quot;, 1&lt;br /&gt;
# KCBS 2 60 Minutes&lt;br /&gt;
0 19 * * 7      channel 2, 60min, &amp;quot;60 Minutes&amp;quot;, 1&lt;br /&gt;
# Fox 11 Morning News at 6 AM/ Good Day LA&lt;br /&gt;
0 6 * * 1,2,3,4,5       channel 11, 60min, &amp;quot;Morning News at 6&amp;quot;, 1&lt;br /&gt;
# KCET 28 BBC World News&lt;br /&gt;
30 5 * * 1,2,3,4,5      channel 28, 30min, &amp;quot;BBC World News&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can edit crontab with kcron or with the &amp;quot;crontab -e&amp;quot; command. It's also possible to use scripts to add jobs:&lt;br /&gt;
&lt;br /&gt;
  crontab -l &amp;gt;&amp;gt; newjob | crontab newjob&lt;br /&gt;
&lt;br /&gt;
If you have a complex crontab you don't want to lose, back it up with &amp;quot;crontab -l &amp;gt; crontab-$(date +%F_%H:%M)&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Btaudio_(bt878)</id>
		<title>Btaudio (bt878)</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Btaudio_(bt878)"/>
				<updated>2007-07-17T15:24:40Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Supported cards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The btaudio kernel module allows you to get the audio from your tuner card directly over the PCI bus without using a patch cable to your sound card. This is useful if you would like to reserve your sound card for other functions, if you want to have multiple tuner cards in one computer, or if your sound card does not handle full-duplex.&lt;br /&gt;
&lt;br /&gt;
===Instructions===&lt;br /&gt;
&lt;br /&gt;
* [[btaudio_kernel_instructions | Gerd Knorr's instructions]] (copied from the 2.6.12-rc2 kernel and lightly updated)&lt;br /&gt;
* MythTV wiki: [http://www.mythtv.org/wiki/index.php/Btaudio setting up btaudio on an ATI TV Wonder card]&lt;br /&gt;
* [[TVCapture_98 | Failed attempt]] at getting the sound directly off a LifeView FlyVideo3000 bttv card&lt;br /&gt;
* Note that [[saa713x_devices | saa713x cards]] unproblematically let you get the audio directly&lt;br /&gt;
&lt;br /&gt;
===Supported cards===&lt;br /&gt;
&lt;br /&gt;
Although all cards with BT87x chips are capable of supporting btaudio, not all cards do. In some cases, the manufacturer elected not to connect the TV tuner analogue audio out to one of the two ADC analogue inputs, which means you'll get no sound from btaudio. In other cases, (see [[#Initialization failures |Initialization failures]] below or [[TVCapture_98#Getting_the_sound_directly_off_the_tv_card | TVCapture_98]]), the card is wired correctly, but not adequately initialized, so that the btaudio driver fails.&lt;br /&gt;
&lt;br /&gt;
According to the [http://www.mythtv.org/docs/mythtv-HOWTO-23.html#btaudio MythTV HowTo], you need a bttv tuner device with an MSP34xx chip. This is incorrect. While a digital signal processor such as the MSP34xx is required for btaudio's digital mode, any bt87x card has the required hardware to work with btaudio's analog mode.&lt;br /&gt;
&lt;br /&gt;
These cards are known to work with btaudio; the real set of working cards is much larger:&lt;br /&gt;
&lt;br /&gt;
 ATI TV Wonder&lt;br /&gt;
 Hauppauge WinTV-radio with dbx-TV stereo, model 401&lt;br /&gt;
 Hauppauge WinTV-Theater, model 495, 498 (Europe)&lt;br /&gt;
 Hauppauge WinTV Express, models 751, 753 (but see note)&lt;br /&gt;
&lt;br /&gt;
Note: Hauppauge model labels are often uninformative. For example, the box labeled model 753 may contain one of these:&lt;br /&gt;
 board #44804 rev #D183, auto card=10; tuner TCL2002MB-3 (hidden sticker), &lt;br /&gt;
   but has to be forced to tuner=41 (Phillips PAL-MK(FI1216MK)&lt;br /&gt;
 board #44804 rev #D108, auto card=10; tuner FI1216MK15 (hidden sticker), &lt;br /&gt;
   autodetected as tuner=5.&lt;br /&gt;
&lt;br /&gt;
The following cards are said not to work, but it's not known if they are wired the wrong way, not properly initialized, or just mistakenly thought not to work:&lt;br /&gt;
&lt;br /&gt;
 Pinnacle Studio PCTV Pro &lt;br /&gt;
 ATI TV Wonder VE&lt;br /&gt;
 Leadtek Winfast 2000 XP (PAL, UK and NTSC)&lt;br /&gt;
 I/O Magic PC-PVR &lt;br /&gt;
&lt;br /&gt;
Some cards are reported to work, but the quality is poor; there may be individual differences within a model series.&lt;br /&gt;
&lt;br /&gt;
===Technical background===&lt;br /&gt;
&lt;br /&gt;
====Overview====&lt;br /&gt;
&lt;br /&gt;
The analog mode of the btaudio driver should just work on any BT87x card. The functions it supports are all integrated into the BT87x; all that is required is that the analog audio from the tuner is connected to the analog audio in on the chip, which in most cases it will be. The digital mode requires an additional digital audio source, such as the MSP34xx, which not all cards have. The following information is assembled largely from David Martin's informative posts to the v4l mailing list in April 2005.&lt;br /&gt;
&lt;br /&gt;
* [http://www.ortodoxism.ro/datasheets/Conexant/mXttzww.pdf Fusion 878A datasheet] from [http://www.datasheetcatalog.com/conexant/1/ Conexant]&lt;br /&gt;
&lt;br /&gt;
====Analog mode====&lt;br /&gt;
&lt;br /&gt;
The bt878 and bt879 (the latter no longer in production) include a high-frequency Analog to Digital Converter, supporting both 8 and 16 bits audio at 448000 samples per second.&lt;br /&gt;
&lt;br /&gt;
Juan Domenech Fernandez has written up his experiments with the &amp;quot;low frequency ADC that comes with the Bt878A chip&amp;quot; in two parts; these articles provide valuable technical detail about the hardware driven by btaudio:&lt;br /&gt;
&lt;br /&gt;
* [http://www.domenech.org/bt878a-adc/index-e.htm Analog to Digital Converter with 16 bits and 448000 Samples per second based in the Bt878A]&lt;br /&gt;
* [http://www.domenech.org/bt878a-adc/index-decimator-e.htm btaudio.c module modification to get 896000 Samples per second with the Bt878A ADC]&lt;br /&gt;
&lt;br /&gt;
The 878 audio ADC has two inputs - STV (Sound TV) and SML (Sound Mic/Line). The 878A also has an FM input, SFM (Sound FM), used only if the card has a radio tuner. The BT879 has a pair of FM/FM stereo inputs. The cards all have a digital audio packetizer and FIFO buffer for DMA audio transport across the PCI bus to the host PC. All of this is on the BT87x silicon - identical on every card - and accessible via the btaudio driver. As a result the btaudio driver is almost entirely card agnostic. It only does a few  things, roughly something like:&lt;br /&gt;
&lt;br /&gt;
# Control the ADC switching mux to determine which of the two analogue input lines will be sampled.&lt;br /&gt;
# Control the ADC input gain (ie. the volume)&lt;br /&gt;
# Control the digital low pass filter to set the decimation factor and, hence, the digital output frequency.&lt;br /&gt;
# Control the digital audio packetizer input selection (the ADC or the external digital line in).&lt;br /&gt;
# Set the digital audio packetizer output mode and characteristics for the PCI bus data transfer.&lt;br /&gt;
&lt;br /&gt;
On the [http://www.ortodoxism.ro/datasheets/Conexant/mXttzww.pdf 878A datasheet], the relevant pins are 94, 98, and 100. You need to inspect your card to see how the card manufacturer has used these pins:&lt;br /&gt;
&lt;br /&gt;
     http://www.domenech.org/bt878a-adc/conexant-fusion-878a-pin-out-bt878a-adc.png&lt;br /&gt;
&lt;br /&gt;
These ADC pins serve the following functions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table padding=&amp;quot;5&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt; Pin &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; Signal &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; Description &amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt; 100 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; STV I &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; TV sound input from TV tuner. &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt; 98 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; SFM I &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; FM sound input from FM tuner. &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt; 94 &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; SML I &amp;lt;/td&amp;gt; &amp;lt;td&amp;gt; MIC/line input. &amp;lt;/td&amp;gt; &amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Analogue mono audio comes via the tuner or an external input source onto one or both of the BT87x analogue audio input pins. The btaudio driver controls the BT87x audio A/D and digital audio packetizer and provides a pseudo OSS device for applications to get access to the sound stream. &lt;br /&gt;
&lt;br /&gt;
There are cases where the TV card designer elected NOT to connect the TV tuner analogue audio out to one of the two ADC analogue inputs (usually pin 100 on the BT87x). In this case, and in this case only, you will not get the broadcast audio. You will get static or silence. Nothing short of a soldering iron will help you.&lt;br /&gt;
&lt;br /&gt;
However, the majority of cards have the required connections. Most designs seem to hook up the tuner mono TV audio to the BT87x STV pin. In some cases cards have multiple signal sources (a tuner and an external composite video and audio input pair, for example). In these designs there will be an analogue switching IC between the two input sources and the BT87x. Usually the the audio inputs bypass the switcher IC and the tuner is on the STV pin and the auxiliary audio is on the LINE pin. I have seen at least one card where the switcher IC routes both audio and video, and with the audio output from the switch only going to the external audio out, so you can use btaudio for the TV tuner, but not for the external audio input.&lt;br /&gt;
&lt;br /&gt;
When you do get sound, the quality of the output can vary wildly from card to card (from good to unusably awful). Sometimes you can play around with sample frequencies and input gain settings and improve things.&lt;br /&gt;
&lt;br /&gt;
====The analog mixer====&lt;br /&gt;
&lt;br /&gt;
The analog device created by the btaudio driver has three mixer channels, called Line1, Line2, and Line3. The wiring varies; the sound can come through on different lines (cf. [[btaudio#Instructions | Instructions]] section above). One of the line inputs that show up in the mixer is an internal mux switch between STV and SML. According to the datasheet, sections 2.15.1 and 6.3, the mux is controlled by bits 24-25, A_SEL; legal values are 0 (STV, default), 1 (SFM), 2 (SML), or 3 (no mux), cf. pp. 165-6.&lt;br /&gt;
&lt;br /&gt;
The other is a switch for a single stage 6dB preamp boost for the audio signal. The input gain control in the audio A/D (Line2 in the mixer) has 15 gain settings, from 0.5 times (-6db) to 3 times (10db) - this is in addition to the 6dB switchable audio preamp boost. What gain setting you need depends on the magnitude of the input signal from the tuner. The audio A/D is designed with a nominal input signal of 0.5V RMS, but the tuner input could be wildly different.&lt;br /&gt;
&lt;br /&gt;
The ADC audio stage runs a 1.792MHz clock with valid hardware decimation values between 4 and 15 (controlled by bits 8-11, DA_SDR, of local register 0x10C, Audio Control Register (GPIO_DMA_CTL). &lt;br /&gt;
&lt;br /&gt;
Juan uses these commands to test the device:&lt;br /&gt;
&lt;br /&gt;
  sox -w -r 448000 -t ossdsp /dev/dsp1 -t .wav test.wav&lt;br /&gt;
&lt;br /&gt;
The dmesg results indicates which decimation values are used to downsample, yielding this table of twelve valid hardware rates:&lt;br /&gt;
&lt;br /&gt;
  4:   448    kHz&lt;br /&gt;
  5:   358.4  kHz&lt;br /&gt;
  6:   298.67 kHz&lt;br /&gt;
  7:   256    kHz&lt;br /&gt;
  8:   224    kHz&lt;br /&gt;
  9:   199.1  kHz&lt;br /&gt;
 10:   179.2  kHz&lt;br /&gt;
 11:   162.9  kHz&lt;br /&gt;
 12:   149.3  kHz&lt;br /&gt;
 13:   137.8  kHz&lt;br /&gt;
 14:   128    kHz&lt;br /&gt;
 15:   119.47 kHz&lt;br /&gt;
&lt;br /&gt;
He notes that by editing the btaudio driver, it's possible to make the ADC accept a decimation value lower than 4 for even higher sampling rates.&lt;br /&gt;
&lt;br /&gt;
====Digital mode====&lt;br /&gt;
&lt;br /&gt;
In the case of analog broadcast capture, digital audio inputs will always come via an external source - normally a NICAM or FM-FM stereo decoder IC which provides an i2s output signal to the BT87x digital audio input line. Those are generally controlled (control meaning mode and input selection) via i2c using the tvaudio driver.&lt;br /&gt;
&lt;br /&gt;
However, most analogue capture cards have nothing connected to the inputs and they don't work - if you try and use the btaudio digital input, your application will freeze and nothing will happen. &lt;br /&gt;
&lt;br /&gt;
The long and short of this is that analog mono audio via btaudio should either &amp;quot;just work&amp;quot; or it won't work at all and there is essentially nothing you can do about it if it doesn't, although I would expect the latter case to be in the minority. Digital audio won't work in the majority of cases because there is no external digital audio source to drive it.&lt;br /&gt;
&lt;br /&gt;
====Initialization failures====&lt;br /&gt;
&lt;br /&gt;
Petr Vandrovec describes a case where a bt878 card fails to work with the btaudio driver unless it is first initialized by a Win98 driver:&lt;br /&gt;
&lt;br /&gt;
:&amp;quot;On my hardware (AverMedia TVCapture98) digital channel is not connected anywhere, and analog grabbing works only if Win98 with btpcivid.vxd from Feb 25 1999 (105492 bytes) are booted after poweron, but before Linux. Without performing initialization by this .vxd only samples with value 0x7FFF are captured, as some voltage reference is not programmed or something. And only this .vxd seems to do needed intialization - newer .vxds and WDM *.sys drivers do not seem to perform this initialization.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
It is the tvaudio driver that handles the initialisation and controls external i2c-connected audio processors. The bttv driver itself contains GPIO controls for connected tuners, muxes/switches, and the like. There are already Aver card-specific audio initialisation functions in the bttv driver to handle this case -- Petr himself wrote them. If there are initialization problems, they occur outside of the btaudio driver.&lt;br /&gt;
&lt;br /&gt;
See the [http://platan.vc.cvut.cz/btaudio/bad.png captured graph after power-on] and compare with the [http://platan.vc.cvut.cz/btaudio/ok.png graph captured after booting Win98]. The signal in the latter comes from a square wave generator with digital low-pass filter at ~24.85kHz. Vertical lines denote 49.7kHz samples from tone generator, and whole thing was grabbed at 448kHz.&lt;br /&gt;
&lt;br /&gt;
Update: Ytlin reports that he initialized his cards successfully with another driver for MS Windows, the LGPL'd [http://btwincap.sourceforge.net btwdmdrv]. Since this driver is open source, it may be possible to use it to determine what needs to be done by the Linux driver.&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/Saa713x_devices</id>
		<title>Saa713x devices</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/Saa713x_devices"/>
				<updated>2007-07-17T15:13:16Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
TV cards based on the saa713x chips are well supported. The picture quality is typically high, and the sound can be taken directly from the TV card or through a patch cable to your sound card. On the [[text_capture | text capture]] front, both teletext and NTSC closed captioning are supported.&lt;br /&gt;
&lt;br /&gt;
For an excellent guide, see Gentoo wiki's [http://gentoo-wiki.com/HARDWARE_saa7134 HARDWARE saa7134]. See also [http://www.datasheetarchive.com/datasheet/pdf/4366.html Philips saa datasheets]&lt;br /&gt;
&lt;br /&gt;
==Supported cards==&lt;br /&gt;
&lt;br /&gt;
See the list of [[CARDLIST.saa7134 | currently supported saa7134 devices]].&lt;br /&gt;
&lt;br /&gt;
(This page design seems the best one -- a link to the supported cards, but then a list of the cards by vendor below, with links for help. The [[Bttv devices (bt848, bt878) |bttv]] and [[cx88 devices (cx2388x) |cx88]] pages should be redesigned along the same lines.)&lt;br /&gt;
&lt;br /&gt;
==Sound support==&lt;br /&gt;
&lt;br /&gt;
Support for DMA sound, or sound taken directly off the PCI bus, has improved in the 2.6.16 kernel, thanks to the work of Ricardo Cerqueira and others. There are now two separate drivers for DMA sound, saa7134-alsa and saa7134-oss. In order to enable these in the kernel, you must first have selected support for ALSA and/or OSS under Sound. If you build both DMA devices as modules, you can use both alternately, though they cannot both be loaded at the same time.&lt;br /&gt;
&lt;br /&gt;
While the saa7134-oss is listed as deprecated, there are still programs that have difficulties using ALSA's device enumeration, and the oss module remains useful.&lt;br /&gt;
&lt;br /&gt;
These modules do not require parameters during insertion; for details see [[saa7134-alsa]].&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
See [[Generic SAA7134 Card Installation]] for how to properly setup your saa7134-based tv tuner card or use the installation instructions for your specific card:&lt;br /&gt;
&lt;br /&gt;
=== [[Avermedia]] ===&lt;br /&gt;
As described in [[AverTV_305/307_linux_user_guide |AverTV 305/307 linux user guide (russian)]], the following cards are supported:&lt;br /&gt;
* AVerTV 305&lt;br /&gt;
* AVerTV Studio 305&lt;br /&gt;
* AVerTV 307&lt;br /&gt;
* AVerTV Studio 307&lt;br /&gt;
In addition, the following cards are known to work:&lt;br /&gt;
* [[AVerMedia Cardbus E500]]&lt;br /&gt;
* [[AVerMedia Cardbus Plus E501R |AVerMedia Cardbus Plus E501R (russian)]]&lt;br /&gt;
* [[AverMedia M156 / Medion 2819]]&lt;br /&gt;
* [[AVerMedia DVD EZMaker]]&lt;br /&gt;
* [[AVerMedia AVerTV GO 007]]&lt;br /&gt;
* [[Avermedia AVerTV GO 007 FM]]&lt;br /&gt;
* [[AVerMedia AVerTVHD MCE A180]]&lt;br /&gt;
* [[AVerMedia Cardbus Hybrid TV FM E506R]]&lt;br /&gt;
* [[AVerMedia AverTV Hybrid+FM PCI A16D]]&lt;br /&gt;
&lt;br /&gt;
=== Bona ===&lt;br /&gt;
The brand is also refered to as Mentor. [http://www.bona.com.tw:8080/ Bona Website]&lt;br /&gt;
* [[Bona TV-PCI]]&lt;br /&gt;
&lt;br /&gt;
=== Canopus ===&lt;br /&gt;
* [[KTVX-CB (aka ITACHU),CardBus]]&lt;br /&gt;
&lt;br /&gt;
=== Compro ===&lt;br /&gt;
* [[Compro VideoMate T300]]&lt;br /&gt;
* [[Compro VideoMate T200a]]&lt;br /&gt;
* [[Compro VideoMate T200]]&lt;br /&gt;
* [[Compro VideoMate TV Gold-Plus]]&lt;br /&gt;
* [[Compro VideoMate TV PVR/FM]]&lt;br /&gt;
* [[Compro VideoMate TV Gold-Plus PAL]]&lt;br /&gt;
&lt;br /&gt;
=== KNC One (KNC1) ===&lt;br /&gt;
* [[KNC One TV-Station DVR]]&lt;br /&gt;
* [[KNC One TV-Station RDS]] / Typhoon TV Tuner RDS&lt;br /&gt;
&lt;br /&gt;
=== KWorld === &lt;br /&gt;
* [[Kworld ATSC-110 |ATSC-110]]&lt;br /&gt;
* [[Studio TV Terminator]] (a.k.a. Global TV Terminator)&lt;br /&gt;
* [[Kworld NB-TV 100 (VS-NBTV100) CardBus]]&lt;br /&gt;
* [[Tevion DVBT-220RF|Tevion/KWorld DVB-T 220RF]]&lt;br /&gt;
&lt;br /&gt;
=== Lifeview ===&lt;br /&gt;
* [[FlyVIDEO2000]]&lt;br /&gt;
* [[FlyVideo3000FM NTSC|FlyVideo3000FM and FlyVideo3000]]&lt;br /&gt;
* [[FlyVideo3000 PAL-N]]&lt;br /&gt;
* [[FlyDVB-T Hybrid]], CardBus or PCI&lt;br /&gt;
* [[FlyDVB-T Duo CardBuS PAL]]&lt;br /&gt;
* [[FlyTV Platinum]]&lt;br /&gt;
&lt;br /&gt;
=== Mercury === &lt;br /&gt;
&lt;br /&gt;
* [[Mercury TV PAL]]&lt;br /&gt;
&lt;br /&gt;
=== Pearl ===&lt;br /&gt;
&lt;br /&gt;
* [[Auvisio TV Tuner &amp;amp; Video Capture Card]]&lt;br /&gt;
&lt;br /&gt;
=== Pinnacle ===&lt;br /&gt;
* [[Pinnacle PCTV 40i]]&lt;br /&gt;
* [[Pinnacle PCTV 50i]]&lt;br /&gt;
* [[Pinnacle PCTV 110i]]&lt;br /&gt;
* [[Pinnacle PCTV 300i]]&lt;br /&gt;
* [[Pinnacle PCTV 310i]]&lt;br /&gt;
* [[Pinnacle PCTV Stereo]]&lt;br /&gt;
* [[Pinnacle PCTV Stereo XE]]&lt;br /&gt;
&lt;br /&gt;
=== Sabrent ===&lt;br /&gt;
* [[Sabrent SBT-TVFM]]&lt;br /&gt;
* [[Sabrent TV-PCIRC]]&lt;br /&gt;
&lt;br /&gt;
=== Terratec ===&lt;br /&gt;
* [[Terratec Cinergy 250 PCI]]&lt;br /&gt;
* [[Terratec Cinergy 400]]&lt;br /&gt;
* [[Terratec Cinergy 400TV mobile]]&lt;br /&gt;
* [[Terratec Cinergy 600]]&lt;br /&gt;
* [[Terratec Cinergy HT PCI]]&lt;br /&gt;
&lt;br /&gt;
=== Tevion ===&lt;br /&gt;
* [[Tevion MD 9717]]&lt;br /&gt;
* [[Tevion DVBT-220RF]]&lt;br /&gt;
&lt;br /&gt;
=== Vivanco ===&lt;br /&gt;
* [[Vivanco Cardbus DVB-T]]&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* [[Smartv_card |SmartTV Card]]&lt;br /&gt;
* [http://techcomindia.com/itemdetail.asp?Cat=&amp;amp;CatID=&amp;amp;prodid=501&amp;amp;ProdName=SSD%2DTV%2D670 TECH-COM, Card Model: SSD-TV-670 ]&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	<entry>
		<id>http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC</id>
		<title>LifeView FlyVideo3000FM NTSC</title>
		<link rel="alternate" type="text/html" href="http://www.linuxtv.org/wiki/index.php/LifeView_FlyVideo3000FM_NTSC"/>
				<updated>2007-07-12T21:01:28Z</updated>
		
		<summary type="html">&lt;p&gt;Liontooth: /* Remote control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:LifeView-FlyVideo-3000FM.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
===Introduction ===&lt;br /&gt;
&lt;br /&gt;
This card works perfectly -- it gets 640x480 frames, audio directly from the card, and closed captioning.  Up to four cards can be placed in one computer, though you need a powerful CPU to keep up with the data flow. (I even managed to get five cards to work -- alternating between the 3000FM and the [[FlyTV Platinum |Platinum]] cards.)&lt;br /&gt;
&lt;br /&gt;
For detailed images of the various slightly different models, see [http://www.bttv-gallery.de/ bttv gallery]. Most of LifeView's saa713x cards fit both 32-bit PCI slots and 64-bit PCI-X slots -- see the telltale second slit in the foot of the card.&lt;br /&gt;
&lt;br /&gt;
See also [[FlyVideo3000_PAL-N]].&lt;br /&gt;
&lt;br /&gt;
=== Identification ===&lt;br /&gt;
&lt;br /&gt;
The 3000 and the 3000FM cards are identified as having the same subsystem:&lt;br /&gt;
&lt;br /&gt;
  lspci -vvv: 02:0a.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev 10)&lt;br /&gt;
        Subsystem: Unknown device 5169:0138&lt;br /&gt;
&lt;br /&gt;
The cards have the [http://www.semiconductors.philips.com/pip/SAA7133HL_V101.html saa7133HL-v101] chip.&lt;br /&gt;
&lt;br /&gt;
=== Loading the right driver ===&lt;br /&gt;
&lt;br /&gt;
The card needs the saa7134 driver, which should be built as a module in the kernel. When the module is inserted, your particular variant may be autodetected or you may need to manually configure it. Try the simplest method first:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134&lt;br /&gt;
&lt;br /&gt;
If the card is not working right, and you have a recent kernel, try this:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 i2c_scan=1&lt;br /&gt;
&lt;br /&gt;
If both fail, you may need to configure the card manually by passing values for the card and/or tuner.&lt;br /&gt;
&lt;br /&gt;
=== Selecting the tuner ===&lt;br /&gt;
&lt;br /&gt;
Use card 2 in the Documentation/video4linux/CARDLIST.saa7134. Versions of FlyVideo 3000 are shipped with different [[Tuners |tuners]]; to find yours, grep on the card and your television standard to pull up relevant alternatives:&lt;br /&gt;
&lt;br /&gt;
 grep Philips Documentation/video4linux/CARDLIST.tuner | grep NTSC&lt;br /&gt;
&lt;br /&gt;
For the NTSC tuner on the FlyVideo 3000 (without the radio), I found 17 was the right one. The FlyVideo3000FM has a different tuner, and I found 43 works, but only gives you channels below 60. Tuner 39 gives you all channels. In kernel 2.6.12 I had to reboot to reset the tuner -- modprobe didn't do it -- but in kernel 2.6.18 the tuner reset without a reboot.&lt;br /&gt;
&lt;br /&gt;
=== Inserting the module ===&lt;br /&gt;
&lt;br /&gt;
For this card, if autodetection fails, you can insert the module with the following options:&lt;br /&gt;
&lt;br /&gt;
 modprobe saa7134 card=2 tuner=39&lt;br /&gt;
&lt;br /&gt;
The 3000 version of the card (without radio) takes tuner 17.&lt;br /&gt;
&lt;br /&gt;
When you've found a method that works -- autodetection or manual configuration -- include the working options in your modules configuration setup. For details, see [[Generic_SAA7134_Card_Installation#Drivers_probing]].&lt;br /&gt;
&lt;br /&gt;
=== Getting PCI audio ===&lt;br /&gt;
&lt;br /&gt;
You can get the audio from the card through the PCI bus instead of through the audio out jack and a patch cable to your sound card.  &lt;br /&gt;
&lt;br /&gt;
For kernels 2.6.15 and later, see [[Saa7134-alsa]] for details on both ALSA and OSS sound. &lt;br /&gt;
&lt;br /&gt;
For earlier kernels, adding &amp;quot;oss=1&amp;quot; as an insmod parameter will create /dev/dsp1 and /dev/mixer1. For detailed instructions, see [http://gentoo-wiki.com/HARDWARE_saa7134 Gentoo's saa7134 wiki].&lt;br /&gt;
&lt;br /&gt;
In earlier kernels, you use &lt;br /&gt;
&lt;br /&gt;
   aumix -d /dev/mixer1 -I&lt;br /&gt;
&lt;br /&gt;
to set the recording channel to 1.&lt;br /&gt;
&lt;br /&gt;
=== Recording with mencoder ===&lt;br /&gt;
&lt;br /&gt;
Use something like this:&lt;br /&gt;
 &lt;br /&gt;
   mencoder tv:// -tv driver=v4l2:device=/dev/video1:fps=30000/1001:chanlist=us-cable:audiorate=32000:&lt;br /&gt;
   adevice=/dev/dsp1:input=0:amode=1:normid=4 -ffourcc DIVX -ovc lavc -lavcopts vcodec=mpeg4:mbd=2 &lt;br /&gt;
   -oac mp3lame -lameopts cbr:br=128 -endpos 60 -o output.avi&lt;br /&gt;
&lt;br /&gt;
This gives me stereo audio with high-quality video. I found that if I included &amp;quot;-of mpeg&amp;quot; to create a true mpeg stream, the audio got delayed -- there are no sync problems with the avi file.&lt;br /&gt;
&lt;br /&gt;
=== Recording with transcode ===&lt;br /&gt;
&lt;br /&gt;
You can also use transcode to record:&lt;br /&gt;
&lt;br /&gt;
   transcode -x v4l2,v4l2 -M 2 -i /dev/video$DEV -p /dev/dsp1 -e 32000,16,2 -y ffmpeg -F mpeg4 &lt;br /&gt;
   -c 00:30 -g 640x480 -f 29.970,4 -I 1 -u 1024 -Q 3 -E 32000,16,2 --lame_preset medium -o output.avi&lt;br /&gt;
&lt;br /&gt;
Note the &amp;quot;-e 32000,16,2&amp;quot;, letting transcode know about the parameters of the audio stream from the saa7134 card. &lt;br /&gt;
&lt;br /&gt;
The files produced in this manner are almost twice as large as the ones produced by the mencoder command above, but show significantly less pixillation. CPU utilization is also about double. For the saa7134, 48000Hz is only valid for external audio input to the card; for tv you have to use 32000Hz.&lt;br /&gt;
&lt;br /&gt;
=== Loading multiple cards ===&lt;br /&gt;
&lt;br /&gt;
If you have more than one card in the same machine, and want to control which devices they create, you can use this sort of thing with kernels before 2.6.15:&lt;br /&gt;
&lt;br /&gt;
 saa7134 video_nr=1,2,3 vbi_nr=1,2,3 mixer_nr=1,2,3 radio_nr=1,2,3 card=2,2,2 tuner=39,39,17 &lt;br /&gt;
&lt;br /&gt;
With 2.6.15 and later kernels, use this instead (drop the mixer and add a line for the audio driver):&lt;br /&gt;
&lt;br /&gt;
 saa7134 card=2,2,2 tuner=39,39,17 video_nr=1,2,3 vbi_nr=1,2,3 radio_nr=1,2,3&lt;br /&gt;
 saa7134-alsa index=1,2,3&lt;br /&gt;
&lt;br /&gt;
In /etc/modprobe.d/saa7134, I use this for five different cards (including two [[FlyTV Platinum |Platinum]] cards):&lt;br /&gt;
&lt;br /&gt;
      options saa7134 card=2,54,2,54,2 tuner=39,54,39,54,17 video_nr=1,2,3,4,5 \&lt;br /&gt;
      vbi_nr=1,2,3,4,5 radio_nr=1,2,3,4,5 disable_ir=1,1,1,1,1&lt;br /&gt;
      install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-alsa&lt;br /&gt;
      options saa7134-alsa index=1,2,3,4,5&lt;br /&gt;
&lt;br /&gt;
This creates video1, vbi1, radio1, and the alsa device hw:1 for the first card, and so on up.&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
With the FlyVideo 3000(FM), you should have the small grey credit-card sized remote. And yes, this is [http://www.mail-archive.com/video4linux-list@redhat.com/msg04784.html supported] and should be working (I haven't tested it).&lt;br /&gt;
&lt;br /&gt;
For instructions, see [[Generic_SAA7134_Card_Installation#Remote_setup]].&lt;br /&gt;
&lt;br /&gt;
=== Closed captioning ===&lt;br /&gt;
&lt;br /&gt;
Closed captioning on saa713x is now working; Michael Schimek has added support to libzvbi (mid-May 2005); see [[Text capture]].&lt;/div&gt;</summary>
		<author><name>Liontooth</name></author>	</entry>

	</feed>