Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0
0002 
0003 The ivtv driver
0004 ===============
0005 
0006 Author: Hans Verkuil <hverkuil@xs4all.nl>
0007 
0008 This is a v4l2 device driver for the Conexant cx23415/6 MPEG encoder/decoder.
0009 The cx23415 can do both encoding and decoding, the cx23416 can only do MPEG
0010 encoding. Currently the only card featuring full decoding support is the
0011 Hauppauge PVR-350.
0012 
0013 .. note::
0014 
0015    #) This driver requires the latest encoder firmware (version 2.06.039, size
0016       376836 bytes). Get the firmware from here:
0017 
0018       https://linuxtv.org/downloads/firmware/#conexant
0019 
0020    #) 'normal' TV applications do not work with this driver, you need
0021       an application that can handle MPEG input such as mplayer, xine, MythTV,
0022       etc.
0023 
0024 The primary goal of the IVTV project is to provide a "clean room" Linux
0025 Open Source driver implementation for video capture cards based on the
0026 iCompression iTVC15 or Conexant CX23415/CX23416 MPEG Codec.
0027 
0028 Features
0029 --------
0030 
0031  * Hardware mpeg2 capture of broadcast video (and sound) via the tuner or
0032    S-Video/Composite and audio line-in.
0033  * Hardware mpeg2 capture of FM radio where hardware support exists
0034  * Supports NTSC, PAL, SECAM with stereo sound
0035  * Supports SAP and bilingual transmissions.
0036  * Supports raw VBI (closed captions and teletext).
0037  * Supports sliced VBI (closed captions and teletext) and is able to insert
0038    this into the captured MPEG stream.
0039  * Supports raw YUV and PCM input.
0040 
0041 Additional features for the PVR-350 (CX23415 based)
0042 ---------------------------------------------------
0043 
0044  * Provides hardware mpeg2 playback
0045  * Provides comprehensive OSD (On Screen Display: ie. graphics overlaying the
0046    video signal)
0047  * Provides a framebuffer (allowing X applications to appear on the video
0048    device)
0049  * Supports raw YUV output.
0050 
0051 IMPORTANT: In case of problems first read this page:
0052         https://help.ubuntu.com/community/Install_IVTV_Troubleshooting
0053 
0054 See also
0055 --------
0056 
0057 https://linuxtv.org
0058 
0059 IRC
0060 ---
0061 
0062 irc://irc.freenode.net/#v4l
0063 
0064 ----------------------------------------------------------
0065 
0066 Devices
0067 -------
0068 
0069 A maximum of 12 ivtv boards are allowed at the moment.
0070 
0071 Cards that don't have a video output capability (i.e. non PVR350 cards)
0072 lack the vbi8, vbi16, video16 and video48 devices. They also do not
0073 support the framebuffer device /dev/fbx for OSD.
0074 
0075 The radio0 device may or may not be present, depending on whether the
0076 card has a radio tuner or not.
0077 
0078 Here is a list of the base v4l devices:
0079 
0080 .. code-block:: none
0081 
0082         crw-rw----    1 root     video     81,   0 Jun 19 22:22 /dev/video0
0083         crw-rw----    1 root     video     81,  16 Jun 19 22:22 /dev/video16
0084         crw-rw----    1 root     video     81,  24 Jun 19 22:22 /dev/video24
0085         crw-rw----    1 root     video     81,  32 Jun 19 22:22 /dev/video32
0086         crw-rw----    1 root     video     81,  48 Jun 19 22:22 /dev/video48
0087         crw-rw----    1 root     video     81,  64 Jun 19 22:22 /dev/radio0
0088         crw-rw----    1 root     video     81, 224 Jun 19 22:22 /dev/vbi0
0089         crw-rw----    1 root     video     81, 228 Jun 19 22:22 /dev/vbi8
0090         crw-rw----    1 root     video     81, 232 Jun 19 22:22 /dev/vbi16
0091 
0092 Base devices
0093 ------------
0094 
0095 For every extra card you have the numbers increased by one. For example,
0096 /dev/video0 is listed as the 'base' encoding capture device so we have:
0097 
0098 - /dev/video0  is the encoding capture device for the first card (card 0)
0099 - /dev/video1  is the encoding capture device for the second card (card 1)
0100 - /dev/video2  is the encoding capture device for the third card (card 2)
0101 
0102 Note that if the first card doesn't have a feature (eg no decoder, so no
0103 video16, the second card will still use video17. The simple rule is 'add
0104 the card number to the base device number'. If you have other capture
0105 cards (e.g. WinTV PCI) that are detected first, then you have to tell
0106 the ivtv module about it so that it will start counting at 1 (or 2, or
0107 whatever). Otherwise the device numbers can get confusing. The ivtv
0108 'ivtv_first_minor' module option can be used for that.
0109 
0110 
0111 - /dev/video0
0112 
0113   The encoding capture device(s).
0114 
0115   Read-only.
0116 
0117   Reading from this device gets you the MPEG1/2 program stream.
0118   Example:
0119 
0120   .. code-block:: none
0121 
0122         cat /dev/video0 > my.mpg (you need to hit ctrl-c to exit)
0123 
0124 
0125 - /dev/video16
0126 
0127   The decoder output device(s)
0128 
0129   Write-only. Only present if the MPEG decoder (i.e. CX23415) exists.
0130 
0131   An mpeg2 stream sent to this device will appear on the selected video
0132   display, audio will appear on the line-out/audio out.  It is only
0133   available for cards that support video out. Example:
0134 
0135   .. code-block:: none
0136 
0137         cat my.mpg >/dev/video16
0138 
0139 
0140 - /dev/video24
0141 
0142   The raw audio capture device(s).
0143 
0144   Read-only
0145 
0146   The raw audio PCM stereo stream from the currently selected
0147   tuner or audio line-in.  Reading from this device results in a raw
0148   (signed 16 bit Little Endian, 48000 Hz, stereo pcm) capture.
0149   This device only captures audio. This should be replaced by an ALSA
0150   device in the future.
0151   Note that there is no corresponding raw audio output device, this is
0152   not supported in the decoder firmware.
0153 
0154 
0155 - /dev/video32
0156 
0157   The raw video capture device(s)
0158 
0159   Read-only
0160 
0161   The raw YUV video output from the current video input. The YUV format
0162   is a 16x16 linear tiled NV12 format (V4L2_PIX_FMT_NV12_16L16)
0163 
0164   Note that the YUV and PCM streams are not synchronized, so they are of
0165   limited use.
0166 
0167 
0168 - /dev/video48
0169 
0170   The raw video display device(s)
0171 
0172   Write-only. Only present if the MPEG decoder (i.e. CX23415) exists.
0173 
0174   Writes a YUV stream to the decoder of the card.
0175 
0176 
0177 - /dev/radio0
0178 
0179   The radio tuner device(s)
0180 
0181   Cannot be read or written.
0182 
0183   Used to enable the radio tuner and tune to a frequency. You cannot
0184   read or write audio streams with this device.  Once you use this
0185   device to tune the radio, use /dev/video24 to read the raw pcm stream
0186   or /dev/video0 to get an mpeg2 stream with black video.
0187 
0188 
0189 - /dev/vbi0
0190 
0191   The 'vertical blank interval' (Teletext, CC, WSS etc) capture device(s)
0192 
0193   Read-only
0194 
0195   Captures the raw (or sliced) video data sent during the Vertical Blank
0196   Interval. This data is used to encode teletext, closed captions, VPS,
0197   widescreen signalling, electronic program guide information, and other
0198   services.
0199 
0200 
0201 - /dev/vbi8
0202 
0203   Processed vbi feedback device(s)
0204 
0205   Read-only. Only present if the MPEG decoder (i.e. CX23415) exists.
0206 
0207   The sliced VBI data embedded in an MPEG stream is reproduced on this
0208   device. So while playing back a recording on /dev/video16, you can
0209   read the embedded VBI data from /dev/vbi8.
0210 
0211 
0212 - /dev/vbi16
0213 
0214   The vbi 'display' device(s)
0215 
0216   Write-only. Only present if the MPEG decoder (i.e. CX23415) exists.
0217 
0218   Can be used to send sliced VBI data to the video-out connector.