132e2eae2SMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0 232e2eae2SMauro Carvalho Chehab 332e2eae2SMauro Carvalho ChehabThe ivtv driver 432e2eae2SMauro Carvalho Chehab=============== 532e2eae2SMauro Carvalho Chehab 632e2eae2SMauro Carvalho ChehabAuthor: Hans Verkuil <hverkuil@xs4all.nl> 732e2eae2SMauro Carvalho Chehab 832e2eae2SMauro Carvalho ChehabThis is a v4l2 device driver for the Conexant cx23415/6 MPEG encoder/decoder. 932e2eae2SMauro Carvalho ChehabThe cx23415 can do both encoding and decoding, the cx23416 can only do MPEG 1032e2eae2SMauro Carvalho Chehabencoding. Currently the only card featuring full decoding support is the 1132e2eae2SMauro Carvalho ChehabHauppauge PVR-350. 1232e2eae2SMauro Carvalho Chehab 1332e2eae2SMauro Carvalho Chehab.. note:: 1432e2eae2SMauro Carvalho Chehab 1532e2eae2SMauro Carvalho Chehab #) This driver requires the latest encoder firmware (version 2.06.039, size 1632e2eae2SMauro Carvalho Chehab 376836 bytes). Get the firmware from here: 1732e2eae2SMauro Carvalho Chehab 1832e2eae2SMauro Carvalho Chehab https://linuxtv.org/downloads/firmware/#conexant 1932e2eae2SMauro Carvalho Chehab 2032e2eae2SMauro Carvalho Chehab #) 'normal' TV applications do not work with this driver, you need 2132e2eae2SMauro Carvalho Chehab an application that can handle MPEG input such as mplayer, xine, MythTV, 2232e2eae2SMauro Carvalho Chehab etc. 2332e2eae2SMauro Carvalho Chehab 2432e2eae2SMauro Carvalho ChehabThe primary goal of the IVTV project is to provide a "clean room" Linux 2532e2eae2SMauro Carvalho ChehabOpen Source driver implementation for video capture cards based on the 2632e2eae2SMauro Carvalho ChehabiCompression iTVC15 or Conexant CX23415/CX23416 MPEG Codec. 2732e2eae2SMauro Carvalho Chehab 2832e2eae2SMauro Carvalho ChehabFeatures 2932e2eae2SMauro Carvalho Chehab-------- 3032e2eae2SMauro Carvalho Chehab 3132e2eae2SMauro Carvalho Chehab * Hardware mpeg2 capture of broadcast video (and sound) via the tuner or 3232e2eae2SMauro Carvalho Chehab S-Video/Composite and audio line-in. 3332e2eae2SMauro Carvalho Chehab * Hardware mpeg2 capture of FM radio where hardware support exists 3432e2eae2SMauro Carvalho Chehab * Supports NTSC, PAL, SECAM with stereo sound 3532e2eae2SMauro Carvalho Chehab * Supports SAP and bilingual transmissions. 3632e2eae2SMauro Carvalho Chehab * Supports raw VBI (closed captions and teletext). 3732e2eae2SMauro Carvalho Chehab * Supports sliced VBI (closed captions and teletext) and is able to insert 3832e2eae2SMauro Carvalho Chehab this into the captured MPEG stream. 3932e2eae2SMauro Carvalho Chehab * Supports raw YUV and PCM input. 4032e2eae2SMauro Carvalho Chehab 4132e2eae2SMauro Carvalho ChehabAdditional features for the PVR-350 (CX23415 based) 4232e2eae2SMauro Carvalho Chehab--------------------------------------------------- 4332e2eae2SMauro Carvalho Chehab 4432e2eae2SMauro Carvalho Chehab * Provides hardware mpeg2 playback 4532e2eae2SMauro Carvalho Chehab * Provides comprehensive OSD (On Screen Display: ie. graphics overlaying the 4632e2eae2SMauro Carvalho Chehab video signal) 4732e2eae2SMauro Carvalho Chehab * Provides a framebuffer (allowing X applications to appear on the video 4832e2eae2SMauro Carvalho Chehab device) 4932e2eae2SMauro Carvalho Chehab * Supports raw YUV output. 5032e2eae2SMauro Carvalho Chehab 5132e2eae2SMauro Carvalho ChehabIMPORTANT: In case of problems first read this page: 5232e2eae2SMauro Carvalho Chehab https://help.ubuntu.com/community/Install_IVTV_Troubleshooting 5332e2eae2SMauro Carvalho Chehab 5432e2eae2SMauro Carvalho ChehabSee also 5532e2eae2SMauro Carvalho Chehab-------- 5632e2eae2SMauro Carvalho Chehab 5732e2eae2SMauro Carvalho Chehabhttps://linuxtv.org 5832e2eae2SMauro Carvalho Chehab 5932e2eae2SMauro Carvalho ChehabIRC 6032e2eae2SMauro Carvalho Chehab--- 6132e2eae2SMauro Carvalho Chehab 6232e2eae2SMauro Carvalho Chehabirc://irc.freenode.net/#v4l 6332e2eae2SMauro Carvalho Chehab 6432e2eae2SMauro Carvalho Chehab---------------------------------------------------------- 6532e2eae2SMauro Carvalho Chehab 6632e2eae2SMauro Carvalho ChehabDevices 6732e2eae2SMauro Carvalho Chehab------- 6832e2eae2SMauro Carvalho Chehab 6932e2eae2SMauro Carvalho ChehabA maximum of 12 ivtv boards are allowed at the moment. 7032e2eae2SMauro Carvalho Chehab 7132e2eae2SMauro Carvalho ChehabCards that don't have a video output capability (i.e. non PVR350 cards) 7232e2eae2SMauro Carvalho Chehablack the vbi8, vbi16, video16 and video48 devices. They also do not 7332e2eae2SMauro Carvalho Chehabsupport the framebuffer device /dev/fbx for OSD. 7432e2eae2SMauro Carvalho Chehab 7532e2eae2SMauro Carvalho ChehabThe radio0 device may or may not be present, depending on whether the 7632e2eae2SMauro Carvalho Chehabcard has a radio tuner or not. 7732e2eae2SMauro Carvalho Chehab 7832e2eae2SMauro Carvalho ChehabHere is a list of the base v4l devices: 7932e2eae2SMauro Carvalho Chehab 8032e2eae2SMauro Carvalho Chehab.. code-block:: none 8132e2eae2SMauro Carvalho Chehab 8232e2eae2SMauro Carvalho Chehab crw-rw---- 1 root video 81, 0 Jun 19 22:22 /dev/video0 8332e2eae2SMauro Carvalho Chehab crw-rw---- 1 root video 81, 16 Jun 19 22:22 /dev/video16 8432e2eae2SMauro Carvalho Chehab crw-rw---- 1 root video 81, 24 Jun 19 22:22 /dev/video24 8532e2eae2SMauro Carvalho Chehab crw-rw---- 1 root video 81, 32 Jun 19 22:22 /dev/video32 8632e2eae2SMauro Carvalho Chehab crw-rw---- 1 root video 81, 48 Jun 19 22:22 /dev/video48 8732e2eae2SMauro Carvalho Chehab crw-rw---- 1 root video 81, 64 Jun 19 22:22 /dev/radio0 8832e2eae2SMauro Carvalho Chehab crw-rw---- 1 root video 81, 224 Jun 19 22:22 /dev/vbi0 8932e2eae2SMauro Carvalho Chehab crw-rw---- 1 root video 81, 228 Jun 19 22:22 /dev/vbi8 9032e2eae2SMauro Carvalho Chehab crw-rw---- 1 root video 81, 232 Jun 19 22:22 /dev/vbi16 9132e2eae2SMauro Carvalho Chehab 9232e2eae2SMauro Carvalho ChehabBase devices 9332e2eae2SMauro Carvalho Chehab------------ 9432e2eae2SMauro Carvalho Chehab 9532e2eae2SMauro Carvalho ChehabFor every extra card you have the numbers increased by one. For example, 9632e2eae2SMauro Carvalho Chehab/dev/video0 is listed as the 'base' encoding capture device so we have: 9732e2eae2SMauro Carvalho Chehab 9832e2eae2SMauro Carvalho Chehab- /dev/video0 is the encoding capture device for the first card (card 0) 9932e2eae2SMauro Carvalho Chehab- /dev/video1 is the encoding capture device for the second card (card 1) 10032e2eae2SMauro Carvalho Chehab- /dev/video2 is the encoding capture device for the third card (card 2) 10132e2eae2SMauro Carvalho Chehab 10232e2eae2SMauro Carvalho ChehabNote that if the first card doesn't have a feature (eg no decoder, so no 10332e2eae2SMauro Carvalho Chehabvideo16, the second card will still use video17. The simple rule is 'add 10432e2eae2SMauro Carvalho Chehabthe card number to the base device number'. If you have other capture 10532e2eae2SMauro Carvalho Chehabcards (e.g. WinTV PCI) that are detected first, then you have to tell 10632e2eae2SMauro Carvalho Chehabthe ivtv module about it so that it will start counting at 1 (or 2, or 10732e2eae2SMauro Carvalho Chehabwhatever). Otherwise the device numbers can get confusing. The ivtv 10832e2eae2SMauro Carvalho Chehab'ivtv_first_minor' module option can be used for that. 10932e2eae2SMauro Carvalho Chehab 11032e2eae2SMauro Carvalho Chehab 11132e2eae2SMauro Carvalho Chehab- /dev/video0 11232e2eae2SMauro Carvalho Chehab 11332e2eae2SMauro Carvalho Chehab The encoding capture device(s). 11432e2eae2SMauro Carvalho Chehab 11532e2eae2SMauro Carvalho Chehab Read-only. 11632e2eae2SMauro Carvalho Chehab 11732e2eae2SMauro Carvalho Chehab Reading from this device gets you the MPEG1/2 program stream. 11832e2eae2SMauro Carvalho Chehab Example: 11932e2eae2SMauro Carvalho Chehab 12032e2eae2SMauro Carvalho Chehab .. code-block:: none 12132e2eae2SMauro Carvalho Chehab 12232e2eae2SMauro Carvalho Chehab cat /dev/video0 > my.mpg (you need to hit ctrl-c to exit) 12332e2eae2SMauro Carvalho Chehab 12432e2eae2SMauro Carvalho Chehab 12532e2eae2SMauro Carvalho Chehab- /dev/video16 12632e2eae2SMauro Carvalho Chehab 12732e2eae2SMauro Carvalho Chehab The decoder output device(s) 12832e2eae2SMauro Carvalho Chehab 12932e2eae2SMauro Carvalho Chehab Write-only. Only present if the MPEG decoder (i.e. CX23415) exists. 13032e2eae2SMauro Carvalho Chehab 13132e2eae2SMauro Carvalho Chehab An mpeg2 stream sent to this device will appear on the selected video 13232e2eae2SMauro Carvalho Chehab display, audio will appear on the line-out/audio out. It is only 13332e2eae2SMauro Carvalho Chehab available for cards that support video out. Example: 13432e2eae2SMauro Carvalho Chehab 13532e2eae2SMauro Carvalho Chehab .. code-block:: none 13632e2eae2SMauro Carvalho Chehab 13732e2eae2SMauro Carvalho Chehab cat my.mpg >/dev/video16 13832e2eae2SMauro Carvalho Chehab 13932e2eae2SMauro Carvalho Chehab 14032e2eae2SMauro Carvalho Chehab- /dev/video24 14132e2eae2SMauro Carvalho Chehab 14232e2eae2SMauro Carvalho Chehab The raw audio capture device(s). 14332e2eae2SMauro Carvalho Chehab 14432e2eae2SMauro Carvalho Chehab Read-only 14532e2eae2SMauro Carvalho Chehab 14632e2eae2SMauro Carvalho Chehab The raw audio PCM stereo stream from the currently selected 14732e2eae2SMauro Carvalho Chehab tuner or audio line-in. Reading from this device results in a raw 14832e2eae2SMauro Carvalho Chehab (signed 16 bit Little Endian, 48000 Hz, stereo pcm) capture. 14932e2eae2SMauro Carvalho Chehab This device only captures audio. This should be replaced by an ALSA 15032e2eae2SMauro Carvalho Chehab device in the future. 15132e2eae2SMauro Carvalho Chehab Note that there is no corresponding raw audio output device, this is 15232e2eae2SMauro Carvalho Chehab not supported in the decoder firmware. 15332e2eae2SMauro Carvalho Chehab 15432e2eae2SMauro Carvalho Chehab 15532e2eae2SMauro Carvalho Chehab- /dev/video32 15632e2eae2SMauro Carvalho Chehab 15732e2eae2SMauro Carvalho Chehab The raw video capture device(s) 15832e2eae2SMauro Carvalho Chehab 15932e2eae2SMauro Carvalho Chehab Read-only 16032e2eae2SMauro Carvalho Chehab 16132e2eae2SMauro Carvalho Chehab The raw YUV video output from the current video input. The YUV format 162*78eee7b5SEzequiel Garcia is a 16x16 linear tiled NV12 format (V4L2_PIX_FMT_NV12_16L16) 16332e2eae2SMauro Carvalho Chehab 16432e2eae2SMauro Carvalho Chehab Note that the YUV and PCM streams are not synchronized, so they are of 16532e2eae2SMauro Carvalho Chehab limited use. 16632e2eae2SMauro Carvalho Chehab 16732e2eae2SMauro Carvalho Chehab 16832e2eae2SMauro Carvalho Chehab- /dev/video48 16932e2eae2SMauro Carvalho Chehab 17032e2eae2SMauro Carvalho Chehab The raw video display device(s) 17132e2eae2SMauro Carvalho Chehab 17232e2eae2SMauro Carvalho Chehab Write-only. Only present if the MPEG decoder (i.e. CX23415) exists. 17332e2eae2SMauro Carvalho Chehab 17432e2eae2SMauro Carvalho Chehab Writes a YUV stream to the decoder of the card. 17532e2eae2SMauro Carvalho Chehab 17632e2eae2SMauro Carvalho Chehab 17732e2eae2SMauro Carvalho Chehab- /dev/radio0 17832e2eae2SMauro Carvalho Chehab 17932e2eae2SMauro Carvalho Chehab The radio tuner device(s) 18032e2eae2SMauro Carvalho Chehab 18132e2eae2SMauro Carvalho Chehab Cannot be read or written. 18232e2eae2SMauro Carvalho Chehab 18332e2eae2SMauro Carvalho Chehab Used to enable the radio tuner and tune to a frequency. You cannot 18432e2eae2SMauro Carvalho Chehab read or write audio streams with this device. Once you use this 18532e2eae2SMauro Carvalho Chehab device to tune the radio, use /dev/video24 to read the raw pcm stream 18632e2eae2SMauro Carvalho Chehab or /dev/video0 to get an mpeg2 stream with black video. 18732e2eae2SMauro Carvalho Chehab 18832e2eae2SMauro Carvalho Chehab 18932e2eae2SMauro Carvalho Chehab- /dev/vbi0 19032e2eae2SMauro Carvalho Chehab 19132e2eae2SMauro Carvalho Chehab The 'vertical blank interval' (Teletext, CC, WSS etc) capture device(s) 19232e2eae2SMauro Carvalho Chehab 19332e2eae2SMauro Carvalho Chehab Read-only 19432e2eae2SMauro Carvalho Chehab 19532e2eae2SMauro Carvalho Chehab Captures the raw (or sliced) video data sent during the Vertical Blank 19632e2eae2SMauro Carvalho Chehab Interval. This data is used to encode teletext, closed captions, VPS, 19732e2eae2SMauro Carvalho Chehab widescreen signalling, electronic program guide information, and other 19832e2eae2SMauro Carvalho Chehab services. 19932e2eae2SMauro Carvalho Chehab 20032e2eae2SMauro Carvalho Chehab 20132e2eae2SMauro Carvalho Chehab- /dev/vbi8 20232e2eae2SMauro Carvalho Chehab 20332e2eae2SMauro Carvalho Chehab Processed vbi feedback device(s) 20432e2eae2SMauro Carvalho Chehab 20532e2eae2SMauro Carvalho Chehab Read-only. Only present if the MPEG decoder (i.e. CX23415) exists. 20632e2eae2SMauro Carvalho Chehab 20732e2eae2SMauro Carvalho Chehab The sliced VBI data embedded in an MPEG stream is reproduced on this 20832e2eae2SMauro Carvalho Chehab device. So while playing back a recording on /dev/video16, you can 20932e2eae2SMauro Carvalho Chehab read the embedded VBI data from /dev/vbi8. 21032e2eae2SMauro Carvalho Chehab 21132e2eae2SMauro Carvalho Chehab 21232e2eae2SMauro Carvalho Chehab- /dev/vbi16 21332e2eae2SMauro Carvalho Chehab 21432e2eae2SMauro Carvalho Chehab The vbi 'display' device(s) 21532e2eae2SMauro Carvalho Chehab 21632e2eae2SMauro Carvalho Chehab Write-only. Only present if the MPEG decoder (i.e. CX23415) exists. 21732e2eae2SMauro Carvalho Chehab 21832e2eae2SMauro Carvalho Chehab Can be used to send sliced VBI data to the video-out connector. 219