Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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