1 2The ivtv driver 3=============== 4 5Author: Hans Verkuil <hverkuil@xs4all.nl> 6 7This is a v4l2 device driver for the Conexant cx23415/6 MPEG encoder/decoder. 8The cx23415 can do both encoding and decoding, the cx23416 can only do MPEG 9encoding. Currently the only card featuring full decoding support is the 10Hauppauge PVR-350. 11 12.. note:: 13 14 #) This driver requires the latest encoder firmware (version 2.06.039, size 15 376836 bytes). Get the firmware from here: 16 17 https://linuxtv.org/downloads/firmware/#conexant 18 19 #) 'normal' TV applications do not work with this driver, you need 20 an application that can handle MPEG input such as mplayer, xine, MythTV, 21 etc. 22 23The primary goal of the IVTV project is to provide a "clean room" Linux 24Open Source driver implementation for video capture cards based on the 25iCompression iTVC15 or Conexant CX23415/CX23416 MPEG Codec. 26 27Features 28-------- 29 30 * Hardware mpeg2 capture of broadcast video (and sound) via the tuner or 31 S-Video/Composite and audio line-in. 32 * Hardware mpeg2 capture of FM radio where hardware support exists 33 * Supports NTSC, PAL, SECAM with stereo sound 34 * Supports SAP and bilingual transmissions. 35 * Supports raw VBI (closed captions and teletext). 36 * Supports sliced VBI (closed captions and teletext) and is able to insert 37 this into the captured MPEG stream. 38 * Supports raw YUV and PCM input. 39 40Additional features for the PVR-350 (CX23415 based) 41--------------------------------------------------- 42 43 * Provides hardware mpeg2 playback 44 * Provides comprehensive OSD (On Screen Display: ie. graphics overlaying the 45 video signal) 46 * Provides a framebuffer (allowing X applications to appear on the video 47 device) 48 * Supports raw YUV output. 49 50IMPORTANT: In case of problems first read this page: 51 https://help.ubuntu.com/community/Install_IVTV_Troubleshooting 52 53See also 54-------- 55 56https://linuxtv.org 57 58IRC 59--- 60 61irc://irc.freenode.net/#v4l 62 63---------------------------------------------------------- 64 65Devices 66------- 67 68A maximum of 12 ivtv boards are allowed at the moment. 69 70Cards that don't have a video output capability (i.e. non PVR350 cards) 71lack the vbi8, vbi16, video16 and video48 devices. They also do not 72support the framebuffer device /dev/fbx for OSD. 73 74The radio0 device may or may not be present, depending on whether the 75card has a radio tuner or not. 76 77Here is a list of the base v4l devices: 78 79.. code-block:: none 80 81 crw-rw---- 1 root video 81, 0 Jun 19 22:22 /dev/video0 82 crw-rw---- 1 root video 81, 16 Jun 19 22:22 /dev/video16 83 crw-rw---- 1 root video 81, 24 Jun 19 22:22 /dev/video24 84 crw-rw---- 1 root video 81, 32 Jun 19 22:22 /dev/video32 85 crw-rw---- 1 root video 81, 48 Jun 19 22:22 /dev/video48 86 crw-rw---- 1 root video 81, 64 Jun 19 22:22 /dev/radio0 87 crw-rw---- 1 root video 81, 224 Jun 19 22:22 /dev/vbi0 88 crw-rw---- 1 root video 81, 228 Jun 19 22:22 /dev/vbi8 89 crw-rw---- 1 root video 81, 232 Jun 19 22:22 /dev/vbi16 90 91Base devices 92------------ 93 94For every extra card you have the numbers increased by one. For example, 95/dev/video0 is listed as the 'base' encoding capture device so we have: 96 97- /dev/video0 is the encoding capture device for the first card (card 0) 98- /dev/video1 is the encoding capture device for the second card (card 1) 99- /dev/video2 is the encoding capture device for the third card (card 2) 100 101Note that if the first card doesn't have a feature (eg no decoder, so no 102video16, the second card will still use video17. The simple rule is 'add 103the card number to the base device number'. If you have other capture 104cards (e.g. WinTV PCI) that are detected first, then you have to tell 105the ivtv module about it so that it will start counting at 1 (or 2, or 106whatever). Otherwise the device numbers can get confusing. The ivtv 107'ivtv_first_minor' module option can be used for that. 108 109 110- /dev/video0 111 112 The encoding capture device(s). 113 114 Read-only. 115 116 Reading from this device gets you the MPEG1/2 program stream. 117 Example: 118 119 .. code-block:: none 120 121 cat /dev/video0 > my.mpg (you need to hit ctrl-c to exit) 122 123 124- /dev/video16 125 126 The decoder output device(s) 127 128 Write-only. Only present if the MPEG decoder (i.e. CX23415) exists. 129 130 An mpeg2 stream sent to this device will appear on the selected video 131 display, audio will appear on the line-out/audio out. It is only 132 available for cards that support video out. Example: 133 134 .. code-block:: none 135 136 cat my.mpg >/dev/video16 137 138 139- /dev/video24 140 141 The raw audio capture device(s). 142 143 Read-only 144 145 The raw audio PCM stereo stream from the currently selected 146 tuner or audio line-in. Reading from this device results in a raw 147 (signed 16 bit Little Endian, 48000 Hz, stereo pcm) capture. 148 This device only captures audio. This should be replaced by an ALSA 149 device in the future. 150 Note that there is no corresponding raw audio output device, this is 151 not supported in the decoder firmware. 152 153 154- /dev/video32 155 156 The raw video capture device(s) 157 158 Read-only 159 160 The raw YUV video output from the current video input. The YUV format 161 is non-standard (V4L2_PIX_FMT_HM12). 162 163 Note that the YUV and PCM streams are not synchronized, so they are of 164 limited use. 165 166 167- /dev/video48 168 169 The raw video display device(s) 170 171 Write-only. Only present if the MPEG decoder (i.e. CX23415) exists. 172 173 Writes a YUV stream to the decoder of the card. 174 175 176- /dev/radio0 177 178 The radio tuner device(s) 179 180 Cannot be read or written. 181 182 Used to enable the radio tuner and tune to a frequency. You cannot 183 read or write audio streams with this device. Once you use this 184 device to tune the radio, use /dev/video24 to read the raw pcm stream 185 or /dev/video0 to get an mpeg2 stream with black video. 186 187 188- /dev/vbi0 189 190 The 'vertical blank interval' (Teletext, CC, WSS etc) capture device(s) 191 192 Read-only 193 194 Captures the raw (or sliced) video data sent during the Vertical Blank 195 Interval. This data is used to encode teletext, closed captions, VPS, 196 widescreen signalling, electronic program guide information, and other 197 services. 198 199 200- /dev/vbi8 201 202 Processed vbi feedback device(s) 203 204 Read-only. Only present if the MPEG decoder (i.e. CX23415) exists. 205 206 The sliced VBI data embedded in an MPEG stream is reproduced on this 207 device. So while playing back a recording on /dev/video16, you can 208 read the embedded VBI data from /dev/vbi8. 209 210 211- /dev/vbi16 212 213 The vbi 'display' device(s) 214 215 Write-only. Only present if the MPEG decoder (i.e. CX23415) exists. 216 217 Can be used to send sliced VBI data to the video-out connector. 218