The Linux Kernel
Linux Kernel Documentation
Introduction
Sphinx Build
Writing Documentation
Specific guidelines for the kernel documentation
list tables
Including kernel-doc comments
Writing kernel-doc comments
How to format kernel-doc comments
Highlights and cross-references
Cross-referencing from reStructuredText
Function documentation
Structure, union, and enumeration documentation
In-line member documentation comments
Private members
Typedef documentation
Overview documentation comments
Recommendations
DocBook XML [DEPRECATED]
Converting DocBook to Sphinx
Components of the kernel-doc system
How to use kernel-doc comments in DocBook XML template files
Linux Media Infrastructure userspace API
Introduction
Part I - Video for Linux API
1. Common API Elements
1.1. Opening and Closing Devices
1.2. Querying Capabilities
1.3. Application Priority
1.4. Video Inputs and Outputs
1.5. Audio Inputs and Outputs
1.6. Tuners and Modulators
1.7. Video Standards
1.8. Digital Video (DV) Timings
1.9. User Controls
1.10. Extended Controls
1.11. Data Formats
1.12. Single- and multi-planar APIs
1.13. Image Cropping, Insertion and Scaling
1.14. API for cropping, composing and scaling
1.15. Streaming Parameters
2. Image Formats
2.1. Single-planar format structure
2.2. Multi-planar format structures
2.3. Standard Image Formats
2.4. Colorspaces
2.5. Defining Colorspaces in V4L2
2.6. Detailed Colorspace Descriptions
2.7. Detailed Transfer Function Descriptions
2.8. Indexed Format
2.9. RGB Formats
2.10. YUV Formats
2.11. Depth Formats
2.12. Compressed Formats
2.13. SDR Formats
2.14. Reserved Format Identifiers
3. Input/Output
3.1. Read/Write
3.2. Streaming I/O (Memory Mapping)
3.3. Streaming I/O (User Pointers)
3.4. Streaming I/O (DMA buffer importing)
3.5. Asynchronous I/O
3.6. Buffers
3.7. Field Order
4. Interfaces
4.1. Video Capture Interface
4.2. Video Overlay Interface
4.3. Video Output Interface
4.4. Video Output Overlay Interface
4.5. Codec Interface
4.6. Effect Devices Interface
4.7. Raw VBI Data Interface
4.8. Sliced VBI Data Interface
4.9. Teletext Interface
4.10. Radio Interface
4.11. RDS Interface
4.12. Software Defined Radio Interface (SDR)
4.13. Event Interface
4.14. Sub-device Interface
5. V4L2 Driver Programming
6. Libv4l Userspace Library
6.1. Introduction
7. Changes
7.1. Differences between V4L and V4L2
7.2. Changes of the V4L2 API
8. Function Reference
8.1. V4L2 close()
8.2. V4L2 ioctl()
8.3. ioctl VIDIOC_CREATE_BUFS
8.4. ioctl VIDIOC_CROPCAP
8.5. ioctl VIDIOC_DBG_G_CHIP_INFO
8.6. ioctl VIDIOC_DBG_G_REGISTER, VIDIOC_DBG_S_REGISTER
8.7. ioctl VIDIOC_DECODER_CMD, VIDIOC_TRY_DECODER_CMD
8.8. ioctl VIDIOC_DQEVENT
8.9. ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
8.10. ioctl VIDIOC_ENCODER_CMD, VIDIOC_TRY_ENCODER_CMD
8.11. ioctl VIDIOC_ENUMAUDIO
8.12. ioctl VIDIOC_ENUMAUDOUT
8.13. ioctl VIDIOC_ENUM_DV_TIMINGS, VIDIOC_SUBDEV_ENUM_DV_TIMINGS
8.14. ioctl VIDIOC_ENUM_FMT
8.15. ioctl VIDIOC_ENUM_FRAMESIZES
8.16. ioctl VIDIOC_ENUM_FRAMEINTERVALS
8.17. ioctl VIDIOC_ENUM_FREQ_BANDS
8.18. ioctl VIDIOC_ENUMINPUT
8.19. ioctl VIDIOC_ENUMOUTPUT
8.20. ioctl VIDIOC_ENUMSTD
8.21. ioctl VIDIOC_EXPBUF
8.22. ioctl VIDIOC_G_AUDIO, VIDIOC_S_AUDIO
8.23. ioctl VIDIOC_G_AUDOUT, VIDIOC_S_AUDOUT
8.24. ioctl VIDIOC_G_CROP, VIDIOC_S_CROP
8.25. ioctl VIDIOC_G_CTRL, VIDIOC_S_CTRL
8.26. ioctl VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS
8.27. ioctl VIDIOC_G_EDID, VIDIOC_S_EDID, VIDIOC_SUBDEV_G_EDID, VIDIOC_SUBDEV_S_EDID
8.28. ioctl VIDIOC_G_ENC_INDEX
8.29. ioctl VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS, VIDIOC_TRY_EXT_CTRLS
8.30. ioctl VIDIOC_G_FBUF, VIDIOC_S_FBUF
8.31. ioctl VIDIOC_G_FMT, VIDIOC_S_FMT, VIDIOC_TRY_FMT
8.32. ioctl VIDIOC_G_FREQUENCY, VIDIOC_S_FREQUENCY
8.33. ioctl VIDIOC_G_INPUT, VIDIOC_S_INPUT
8.34. ioctl VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP
8.35. ioctl VIDIOC_G_MODULATOR, VIDIOC_S_MODULATOR
8.36. ioctl VIDIOC_G_OUTPUT, VIDIOC_S_OUTPUT
8.37. ioctl VIDIOC_G_PARM, VIDIOC_S_PARM
8.38. ioctl VIDIOC_G_PRIORITY, VIDIOC_S_PRIORITY
8.39. ioctl VIDIOC_G_SELECTION, VIDIOC_S_SELECTION
8.40. ioctl VIDIOC_G_SLICED_VBI_CAP
8.41. ioctl VIDIOC_G_STD, VIDIOC_S_STD
8.42. ioctl VIDIOC_G_TUNER, VIDIOC_S_TUNER
8.43. ioctl VIDIOC_LOG_STATUS
8.44. ioctl VIDIOC_OVERLAY
8.45. ioctl VIDIOC_PREPARE_BUF
8.46. ioctl VIDIOC_QBUF, VIDIOC_DQBUF
8.47. ioctl VIDIOC_QUERYBUF
8.48. ioctl VIDIOC_QUERYCAP
8.49. ioctls VIDIOC_QUERYCTRL, VIDIOC_QUERY_EXT_CTRL and VIDIOC_QUERYMENU
8.50. ioctl VIDIOC_QUERY_DV_TIMINGS
8.51. ioctl VIDIOC_QUERYSTD
8.52. ioctl VIDIOC_REQBUFS
8.53. ioctl VIDIOC_S_HW_FREQ_SEEK
8.54. ioctl VIDIOC_STREAMON, VIDIOC_STREAMOFF
8.55. ioctl VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL
8.56. ioctl VIDIOC_SUBDEV_ENUM_FRAME_SIZE
8.57. ioctl VIDIOC_SUBDEV_ENUM_MBUS_CODE
8.58. ioctl VIDIOC_SUBDEV_G_CROP, VIDIOC_SUBDEV_S_CROP
8.59. ioctl VIDIOC_SUBDEV_G_FMT, VIDIOC_SUBDEV_S_FMT
8.60. ioctl VIDIOC_SUBDEV_G_FRAME_INTERVAL, VIDIOC_SUBDEV_S_FRAME_INTERVAL
8.61. ioctl VIDIOC_SUBDEV_G_SELECTION, VIDIOC_SUBDEV_S_SELECTION
8.62. ioctl VIDIOC_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT
8.63. V4L2 mmap()
8.64. V4L2 munmap()
8.65. V4L2 open()
8.66. V4L2 poll()
8.67. V4L2 read()
8.68. V4L2 select()
8.69. V4L2 write()
9. Common definitions for V4L2 and V4L2 subdev interfaces
9.1. Common selection definitions
10. Video For Linux Two Header File
10.1. videodev2.h
11. Video Capture Example
11.1. file: media/v4l/capture.c
12. Video Grabber example using libv4l
12.1. file: media/v4l/v4l2grab.c
13. References
13.1. CEA 608-E
13.2. EN 300 294
13.3. ETS 300 231
13.4. ETS 300 706
13.5. ISO 13818-1
13.6. ISO 13818-2
13.7. ITU BT.470
13.8. ITU BT.601
13.9. ITU BT.653
13.10. ITU BT.709
13.11. ITU BT.1119
13.12. JFIF
13.13. ITU-T.81
13.14. W3C JPEG JFIF
13.15. SMPTE 12M
13.16. SMPTE 170M
13.17. SMPTE 240M
13.18. SMPTE RP 431-2
13.19. SMPTE ST 2084
13.20. sRGB
13.21. sYCC
13.22. xvYCC
13.23. AdobeRGB
13.24. opRGB
13.25. ITU BT.2020
13.26. EBU Tech 3213
13.27. IEC 62106
13.28. NRSC-4-B
13.29. ISO 12232:2006
13.30. CEA-861-E
13.31. VESA DMT
13.32. EDID
13.33. HDCP
13.34. HDMI
13.35. HDMI2
13.36. DP
13.37. poynton
13.38. colimg
Revision and Copyright
Revision History
Part II - Digital TV API
1. Introduction
1.1. What you need to know
1.2. History
1.3. Overview
1.4. Linux DVB Devices
1.5. API include files
2. DVB Frontend API
2.1. Querying frontend information
2.2. Querying frontend status and statistics
2.3. DVB Frontend properties
2.4. Example: Setting digital TV frontend properties
2.5. Frontend Function Calls
2.6. DVB Frontend legacy API (a. k. a. DVBv3)
3. DVB Demux Device
3.1. Demux Data Types
3.2. Demux Function Calls
4. DVB CA Device
4.1. CA Data Types
4.2. CA Function Calls
5. DVB Network API
6. DVB net Function Calls
6.1. ioctl NET_ADD_IF
6.2. ioctl NET_REMOVE_IF
6.3. ioctl NET_GET_IF
7. DVB Deprecated APIs
7.1. DVB Video Device
7.2. DVB Audio Device
8. Examples
8.1. Example: Tuning
8.2. Example: The DVR device
9. DVB Audio Header File
9.1. audio.h
10. DVB Conditional Access Header File
10.1. ca.h
11. DVB Demux Header File
11.1. dmx.h
12. DVB Frontend Header File
12.1. frontend.h
13. DVB Network Header File
13.1. net.h
14. DVB Video Header File
14.1. video.h
Revision and Copyright
Revision History
Part III - Remote Controller API
1. Introduction
2. Remote Controller’s sysfs nodes
2.1. /sys/class/rc/
2.2. /sys/class/rc/rcN/
2.3. /sys/class/rc/rcN/protocols
2.4. /sys/class/rc/rcN/filter
2.5. /sys/class/rc/rcN/filter_mask
2.6. /sys/class/rc/rcN/wakeup_protocols
2.7. /sys/class/rc/rcN/wakeup_filter
2.8. /sys/class/rc/rcN/wakeup_filter_mask
3. Remote controller tables
4. Changing default Remote Controller mappings
4.1. file: uapi/v4l/keytable.c
5. LIRC Device Interface
5.1. Introduction
5.2. LIRC modes
5.3. LIRC Function Reference
5.4. LIRC Header File
Revision and Copyright
Revision History
Part IV - Media Controller API
1. Introduction
2. Media device model
3. Types and flags used to represent the media graph elements
4. Function Reference
4.1. media open()
4.2. media close()
4.3. media ioctl()
4.4. ioctl MEDIA_IOC_DEVICE_INFO
4.5. ioctl MEDIA_IOC_G_TOPOLOGY
4.6. ioctl MEDIA_IOC_ENUM_ENTITIES
4.7. ioctl MEDIA_IOC_ENUM_LINKS
4.8. ioctl MEDIA_IOC_SETUP_LINK
5. Media Controller Header File
5.1. media.h
Revision and Copyright
Revision History
Part V - Consumer Electronics Control API
1. Introduction
2. Function Reference
2.1. cec open()
2.2. cec close()
2.3. cec ioctl()
2.4. cec poll()
2.5. ioctl CEC_ADAP_G_CAPS
2.6. ioctls CEC_ADAP_G_LOG_ADDRS and CEC_ADAP_S_LOG_ADDRS
2.7. ioctls CEC_ADAP_G_PHYS_ADDR and CEC_ADAP_S_PHYS_ADDR
2.8. ioctl CEC_DQEVENT
2.9. ioctls CEC_G_MODE and CEC_S_MODE
2.10. ioctls CEC_RECEIVE and CEC_TRANSMIT
3. CEC Header File
3.1. cec.h
Revision and Copyright
Revision History
Generic Error Codes
GNU Free Documentation License
0. PREAMBLE
1. APPLICABILITY AND DEFINITIONS
2. VERBATIM COPYING
3. COPYING IN QUANTITY
4. MODIFICATIONS
5. COMBINING DOCUMENTS
6. COLLECTIONS OF DOCUMENTS
7. AGGREGATION WITH INDEPENDENT WORKS
8. TRANSLATION
9. TERMINATION
10. FUTURE REVISIONS OF THIS LICENSE
Addendum
Media subsystem kernel internal API
1. Video2Linux devices
1.1. Introduction
1.2. Structure of a V4L driver
1.3. Structure of the V4L2 framework
1.4. Video device’ s internal representation
1.4.1. ioctls and locking
1.4.2. Video device registration
1.4.3. video device debugging
1.4.4. Video device cleanup
1.4.5. helper functions
1.4.6. video_device functions and data structures
1.5. V4L2 device instance
1.5.1. v4l2_device functions and data structures
1.6. V4L2 File handlers
1.6.1. V4L2 fh functions and data structures
1.7. V4L2 sub-devices
1.8. V4L2 sub-device userspace API
1.9. I2C sub-device drivers
1.10. V4L2 sub-device functions and data structures
1.11. V4L2 events
1.11.1. Event subscription
1.11.2. Unsubscribing an event
1.11.3. Check if there’s a pending event
1.11.4. How events work
1.12. V4L2 Controls
1.12.1. Introduction
1.12.2. Objects in the framework
1.12.3. Basic usage for V4L2 and sub-device drivers
1.12.4. Inheriting Controls
1.12.5. Accessing Control Values
1.12.6. Menu Controls
1.12.7. Custom Controls
1.12.8. Active and Grabbed Controls
1.12.9. Control Clusters
1.12.10. Handling autogain/gain-type Controls with Auto Clusters
1.12.11. VIDIOC_LOG_STATUS Support
1.12.12. Different Handlers for Different Video Nodes
1.12.13. Finding Controls
1.12.14. Inheriting Controls
1.12.15. V4L2_CTRL_TYPE_CTRL_CLASS Controls
1.12.16. Adding Notify Callbacks
1.12.17. v4l2_ctrl functions and data structures
1.13. Videobuf Framework
1.13.1. Introduction
1.13.2. Buffer types
1.13.3. Data structures, callbacks, and initialization
1.13.4. File operations
1.13.5. ioctl() operations
1.13.6. Buffer allocation
1.13.7. Filling the buffers
1.14. V4L2 videobuf2 functions and data structures
1.15. V4L2 clocks
1.16. V4L2 DV Timings functions
1.17. V4L2 flash functions and data structures
1.18. V4L2 Media Controller functions and data structures
1.19. V4L2 Media Bus functions and data structures
1.20. V4L2 Memory to Memory functions and data structures
1.21. V4L2 Open Firmware kAPI
1.22. V4L2 rect helper functions
1.23. Tuner functions and data structures
1.24. V4L2 common functions and data structures
1.25. Hauppauge TV EEPROM functions and data structures
2. Digital TV (DVB) devices
3. Digital TV Common functions
4. Digital TV Frontend kABI
4.1. Digital TV Frontend
5. Digital TV Demux kABI
5.1. Digital TV Demux
6. Demux Callback API
6.1. Demux Callback
7. Digital TV Conditional Access kABI
8. Remote Controller devices
8.1. Remote Controller core
8.2. LIRC
9. Media Controller devices
9.1. Media Controller
9.1.1. Abstract media device model
9.1.2. Media device
9.1.3. Entities
9.1.4. Interfaces
9.1.5. Pads
9.1.6. Links
9.1.7. Graph traversal
9.1.8. Use count and power handling
9.1.9. Links setup
9.1.10. Pipelines and media streams
9.1.11. Link validation
Linux Digital TV driver-specific documentation
1. Introdution
2. HOWTO: Get An Avermedia DVB-T working under Linux
2.1. Assumptions and Introduction
2.2. The Avermedia DVB-T
2.3. Getting the card going
2.4. Receiving DVB-T in Australia
2.5. Known Limitations
2.6. Further Update
3. How to get the bt8xx cards working
3.1. General information
3.2. Loading Modules
3.2.1. Running TwinHan and Clones
3.2.2. Running multiple cards
3.2.3. Probing the cards with broken PCI subsystem ID
4. Hardware supported by the linuxtv.org DVB drivers
5. Digital TV Conditional Access Interface (CI API)
5.1. ca_zap
5.2. Cards that fall in this category
5.3. CI modules that are supported
5.4. The High level CI API
5.4.1. For the programmer
5.5. Why the need for another CI interface?
6. Idea behind the dvb-usb-framework
6.1. Supported devices
6.2. How to use?
6.2.1. Firmware
6.2.2. Compiling
6.2.3. Loading the drivers
6.3. Known problems and bugs
6.3.1. Adding support for devices
6.3.2. USB1.1 Bandwidth limitation
6.3.3. Comments
6.4. 3. Acknowledgements
7. FAQ
8. Firmware files for lmedm04 cards
8.1. For DM04+/QQBOX LME2510C (Sharp 7395 Tuner)
8.2. For DM04 LME2510 (LG Tuner)
8.3. For DM04 LME2510C (LG Tuner)
8.4. For LME2510
8.5. For LME2510C
9. Opera firmware
10. How to set up the Technisat/B2C2 Flexcop devices
10.1. Find out what device you have
10.2. Kernel compilation:
11. TechnoTrend/Hauppauge DEC USB Driver
11.1. Driver Status
11.2. Getting the Firmware
11.3. Hotplug Firmware Loading
12. UDEV rules for DVB
13. Contributors
Video4Linux (V4L) driver-specific documentation
1. Guidelines for Linux4Linux pixel format 4CCs
1.1. Raw bayer
2. Infrared remote control support in video4linux drivers
2.1. Basics
2.2. How it works
3. Using with lircd
4. Using without lircd
5. Tuner drivers
5.1. Simple tuner Programming
5.2. Tuner Manufacturers
6. Cards List
6.1. AU0828 cards list
6.2. BTTV cards list
6.3. cx23885 cards list
6.4. CX88 cards list
6.5. EM28xx cards list
6.6. IVTV cards list
6.7. SAA7134 cards list
6.8. SAA7134 cards list
6.9. TM6000 cards list
6.10. Tuner cards list
6.11. Usbvision cards list
6.12. The gspca cards list
7. The bttv driver
7.1. Release notes for bttv
7.2. Make bttv work with your card
7.3. Autodetecting cards
7.4. Still doesn’t work?
7.5. Modprobe options
7.6. If the box freezes hard with bttv
7.6.1. bttv bugs
7.6.2. hardware bugs
7.6.3. other
7.7. Bttv quirks
7.7.1. Normal PCI Mode
7.7.2. 430FX Compatibility Mode
7.7.3. Interfacing with Non-PCI 2.1 Compliant Core Logic
7.8. bttv and sound mini howto
7.8.1. How sound works in detail
7.8.2. Other elements of the tvcards array
7.9. Cards
7.9.1. Supported cards: Bt848/Bt848a/Bt849/Bt878/Bt879 cards
7.9.2. MATRIX Vision
7.9.3. Miro/Pinnacle PCTV
7.9.4. Hauppauge Win/TV pci
7.9.5. Askey CPH-Series
7.9.6. Lifeview Flyvideo Series:
7.9.7. Typhoon TV card series:
7.9.8. Guillemot
7.9.9. Mentor
7.9.10. Prolink
7.9.11. Dynalink
7.9.12. Phoebemicro
7.9.13. Genius/Kye
7.9.14. Tekram
7.9.15. Lucky Star
7.9.16. Leadtek
7.9.17. KNC One
7.9.18. Provideo
7.9.19. Highscreen
7.9.20. Zoltrix
7.9.21. AVerMedia
7.9.22. Aimslab
7.9.23. IXMicro (former: IMS=Integrated Micro Solutions)
7.9.24. Lifetec/Medion/Tevion/Aldi
7.9.25. Modular Technologies (www.modulartech.com) UK
7.9.26. Terratec
7.9.27. Technisat
7.9.28. Siemens
7.9.29. Powercolor
7.9.30. Pinnacle
7.9.31. Lenco
7.9.32. Iomega
7.9.33. LML
7.9.34. Grandtec
7.9.35. Koutech
7.9.36. IODATA (jp)
7.9.37. Canopus (jp)
7.9.38. www.sigmacom.co.kr
7.9.39. www.sasem.co.kr
7.9.40. hama
7.9.41. Sigma Designs
7.9.42. Formac
7.9.43. ATI
7.9.44. Diamond Multimedia
7.9.45. Aopen
7.9.46. Intel
7.9.47. STB
7.9.48. Videologic
7.9.49. Technotrend
7.9.50. Teles
7.9.51. Remote Vision
7.9.52. Boeder
7.9.53. Media-Surfer (esc-kathrein.de)
7.9.54. Jetway (www.jetway.com.tw)
7.9.55. Galaxis
7.9.56. Hauppauge
7.9.57. Matrix-Vision
7.9.58. Conceptronic (.net)
7.9.59. BestData
7.9.60. Gallant (www.gallantcom.com) www.minton.com.tw
7.9.61. Asonic (www.asonic.com.cn) (website down)
7.9.62. Hoontech
7.9.63. Teppro (www.itcteppro.com.tw)
7.9.64. Kworld (www.kworld.com.tw)
7.9.65. JTT/ Justy Corp.(http://www.jtt.ne.jp/)
7.9.66. ADS www.adstech.com
7.9.67. AVEC www.prochips.com
7.9.68. NoBrand
7.9.69. Mach www.machspeed.com
7.9.70. Eline www.eline-net.com/
7.9.71. Spirit
7.9.72. Boser www.boser.com.tw
7.9.73. Satelco www.citycom-gmbh.de, www.satelco.de
7.9.74. Sensoray www.sensoray.com
7.9.75. CEI (Chartered Electronics Industries Pte Ltd [CEI] [FCC ID HBY])
7.9.76. AITech
7.9.77. MAXRON
7.9.78. www.ids-imaging.de
7.9.79. www.sknet-web.co.jp
7.9.80. A-Max www.amaxhk.com (Colormax, Amax, Napa)
7.9.81. Cybertainment
7.9.82. VCR (http://www.vcrinc.com/)
7.9.83. Twinhan
7.9.84. MSI
7.9.85. Focus www.focusinfo.com
7.9.86. Sdisilk www.sdisilk.com/
7.9.87. www.euresys.com
7.9.88. PMC/Pace
7.9.89. Mercury www.kobian.com (UK and FR)
7.9.90. TEC sound
7.9.91. Lorenzen www.lorenzen.de
7.9.92. Origo (.uk) www.origo2000.com
7.9.93. I/O Magic www.iomagic.com
7.9.94. Arowana
7.9.95. iTVC15 boards
7.9.96. Asus www.asuscom.com
7.9.97. Hoontech
7.10. Chips used at bttv devices
7.11. Specs
7.12. Thanks
7.13. Contributors
8. The cafe_ccic driver
8.1. Introdution
8.2. Load time options
9. The cpia2 driver
9.1. Introduction
9.2. Features
9.3. Making and installing the stv672 driver modules
9.3.1. Requirements
9.3.2. Setup
9.3.3. Driver options
9.3.4. Setting the options
9.3.5. What buffer size should I use?
9.3.6. How many buffers should I use?
9.3.7. Using the camera
9.3.8. Notes to developers
9.3.9. Programmer’s overview of cpia2 driver
10. The cx18 driver
11. The cx2341x driver
11.1. Memory at cx2341x chips
11.1.1. Memory Map
11.1.2. Registers
11.1.3. Interrupt Status Register
11.2. Missing documentation
11.3. The cx2341x firmware upload
11.3.1. How to find
11.3.2. How to load
11.4. How to call the firmware API
11.5. OSD firmware API description
11.5.1. CX2341X_OSD_GET_FRAMEBUFFER
11.5.2. CX2341X_OSD_GET_PIXEL_FORMAT
11.5.3. CX2341X_OSD_SET_PIXEL_FORMAT
11.5.4. CX2341X_OSD_GET_STATE
11.5.5. CX2341X_OSD_SET_STATE
11.5.6. CX2341X_OSD_GET_OSD_COORDS
11.5.7. CX2341X_OSD_SET_OSD_COORDS
11.5.8. CX2341X_OSD_GET_SCREEN_COORDS
11.5.9. CX2341X_OSD_SET_SCREEN_COORDS
11.5.10. CX2341X_OSD_GET_GLOBAL_ALPHA
11.5.11. CX2341X_OSD_SET_GLOBAL_ALPHA
11.5.12. CX2341X_OSD_SET_BLEND_COORDS
11.5.13. CX2341X_OSD_GET_FLICKER_STATE
11.5.14. CX2341X_OSD_SET_FLICKER_STATE
11.5.15. CX2341X_OSD_BLT_COPY
11.5.16. CX2341X_OSD_BLT_FILL
11.5.17. CX2341X_OSD_BLT_TEXT
11.5.18. CX2341X_OSD_SET_FRAMEBUFFER_WINDOW
11.5.19. CX2341X_OSD_SET_CHROMA_KEY
11.5.20. CX2341X_OSD_GET_ALPHA_CONTENT_INDEX
11.5.21. CX2341X_OSD_SET_ALPHA_CONTENT_INDEX
11.6. Encoder firmware API description
11.6.1. CX2341X_ENC_PING_FW
11.6.2. CX2341X_ENC_START_CAPTURE
11.6.3. CX2341X_ENC_STOP_CAPTURE
11.6.4. CX2341X_ENC_SET_AUDIO_ID
11.6.5. CX2341X_ENC_SET_VIDEO_ID
11.6.6. CX2341X_ENC_SET_PCR_ID
11.6.7. CX2341X_ENC_SET_FRAME_RATE
11.6.8. CX2341X_ENC_SET_FRAME_SIZE
11.6.9. CX2341X_ENC_SET_BIT_RATE
11.6.10. CX2341X_ENC_SET_GOP_PROPERTIES
11.6.11. CX2341X_ENC_SET_ASPECT_RATIO
11.6.12. CX2341X_ENC_SET_DNR_FILTER_MODE
11.6.13. CX2341X_ENC_SET_DNR_FILTER_PROPS
11.6.14. CX2341X_ENC_SET_CORING_LEVELS
11.6.15. CX2341X_ENC_SET_SPATIAL_FILTER_TYPE
11.6.16. CX2341X_ENC_SET_VBI_LINE
11.6.17. CX2341X_ENC_SET_STREAM_TYPE
11.6.18. CX2341X_ENC_SET_OUTPUT_PORT
11.6.19. CX2341X_ENC_SET_AUDIO_PROPERTIES
11.6.20. CX2341X_ENC_HALT_FW
11.6.21. CX2341X_ENC_GET_VERSION
11.6.22. CX2341X_ENC_SET_GOP_CLOSURE
11.6.23. CX2341X_ENC_GET_SEQ_END
11.6.24. CX2341X_ENC_SET_PGM_INDEX_INFO
11.6.25. CX2341X_ENC_SET_VBI_CONFIG
11.6.26. CX2341X_ENC_SET_DMA_BLOCK_SIZE
11.6.27. CX2341X_ENC_GET_PREV_DMA_INFO_MB_10
11.6.28. CX2341X_ENC_GET_PREV_DMA_INFO_MB_9
11.6.29. CX2341X_ENC_SCHED_DMA_TO_HOST
11.6.30. CX2341X_ENC_INITIALIZE_INPUT
11.6.31. CX2341X_ENC_SET_FRAME_DROP_RATE
11.6.32. CX2341X_ENC_PAUSE_ENCODER
11.6.33. CX2341X_ENC_REFRESH_INPUT
11.6.34. CX2341X_ENC_SET_COPYRIGHT
11.6.35. CX2341X_ENC_SET_EVENT_NOTIFICATION
11.6.36. CX2341X_ENC_SET_NUM_VSYNC_LINES
11.6.37. CX2341X_ENC_SET_PLACEHOLDER
11.6.38. CX2341X_ENC_MUTE_VIDEO
11.6.39. CX2341X_ENC_MUTE_AUDIO
11.6.40. CX2341X_ENC_SET_VERT_CROP_LINE
11.6.41. CX2341X_ENC_MISC
11.7. Decoder firmware API description
11.7.1. CX2341X_DEC_PING_FW
11.7.2. CX2341X_DEC_START_PLAYBACK
11.7.3. CX2341X_DEC_STOP_PLAYBACK
11.7.4. CX2341X_DEC_SET_PLAYBACK_SPEED
11.7.5. CX2341X_DEC_STEP_VIDEO
11.7.6. CX2341X_DEC_SET_DMA_BLOCK_SIZE
11.7.7. CX2341X_DEC_GET_XFER_INFO
11.7.8. CX2341X_DEC_GET_DMA_STATUS
11.7.9. CX2341X_DEC_SCHED_DMA_FROM_HOST
11.7.10. CX2341X_DEC_PAUSE_PLAYBACK
11.7.11. CX2341X_DEC_HALT_FW
11.7.12. CX2341X_DEC_SET_STANDARD
11.7.13. CX2341X_DEC_GET_VERSION
11.7.14. CX2341X_DEC_SET_STREAM_INPUT
11.7.15. CX2341X_DEC_GET_TIMING_INFO
11.7.16. CX2341X_DEC_SET_AUDIO_MODE
11.7.17. CX2341X_DEC_SET_EVENT_NOTIFICATION
11.7.18. CX2341X_DEC_SET_DISPLAY_BUFFERS
11.7.19. CX2341X_DEC_EXTRACT_VBI
11.7.20. CX2341X_DEC_SET_DECODER_SOURCE
11.7.21. CX2341X_DEC_SET_PREBUFFERING
11.8. PVR350 Video decoder registers 0x02002800 -> 0x02002B00
11.9. The cx231xx DMA engine
11.9.1. Introduction
11.9.2. Flow
11.9.3. Mailbox #10
11.9.4. Scatter-Gather Array
11.9.5. DMA Transfer Status
11.10. Non-compressed file format
11.10.1. Raw format c example
11.11. Format of embedded V4L2_MPEG_STREAM_VBI_FMT_IVTV VBI data
12. The cx88 driver
12.1. Current status
12.2. How to add support for new cards
12.3. Documentation missing at the cx88 datasheet
12.4. Hauppauge WinTV cx88 IR information
12.4.1. Additional info
13. The VPBE V4L2 driver design
13.1. File partitioning
13.2. Functional partitioning
13.3. Current status
13.4. To be done
14. The Samsung S5P/EXYNOS4 FIMC driver
14.1. Supported SoCs
14.2. Supported features
14.3. Not currently supported
14.4. Files partitioning
14.5. User space interfaces
14.5.1. Media device interface
14.5.2. Memory-to-memory video node
14.5.3. Capture video node
14.5.4. Camera capture subdevs
14.5.5. sysfs
14.6. 5. Device mapping to video and subdev device nodes
14.7. 7. Build
15. The ivtv driver
15.1. Features
15.2. Additional features for the PVR-350 (CX23415 based)
15.3. See also
15.4. IRC
15.5. Devices
15.6. Base devices
16. Vaio Picturebook Motion Eye Camera Driver
16.1. Hardware supported
16.2. Driver options
16.3. Module use
16.4. Usage:
16.5. Private API
16.6. Bugs / Todo
17. OMAP 3 Image Signal Processor (ISP) driver
17.1. Introduction
17.2. Split to subdevs
17.3. Controlling the OMAP 3 ISP
17.4. Events
17.5. Private IOCTLs
17.6. CCDC and preview block IOCTLs
17.7. Statistic blocks IOCTLs
17.8. VIDIOC_OMAP3ISP_STAT_EN
17.9. VIDIOC_OMAP3ISP_AEWB_CFG, VIDIOC_OMAP3ISP_HIST_CFG and VIDIOC_OMAP3ISP_AF_CFG
17.10. VIDIOC_OMAP3ISP_STAT_REQ
17.11. Technical reference manuals (TRMs) and other documentation
17.12. References
18. OMAP4 ISS Driver
18.1. Introduction
18.2. Tested platforms
18.3. File list
18.4. References
19. The pvrusb2 driver
19.1. Background
19.2. Building
19.3. Source file list / functional overview
20. PXA-Camera Host Driver
20.1. Constraints
20.2. Global video workflow
20.3. DMA usage
21. The Radiotrack radio driver
21.1. ACKNOWLEDGMENTS
21.2. WHY THIS DOCUMENT?
21.3. PHYSICAL DESCRIPTION
21.4. CONTROLLING THE CARD WITH IOPORT
21.5. PROGRAMMING EXAMPLES
22. The saa7134 driver
22.1. Status
22.2. Build
22.3. Changes / Fixes
22.4. Known Problems
22.5. Card Variations:
22.6. LifeView GPIOs
22.7. Credits
23. Cropping and Scaling algorithm, used in the sh_mobile_ceu_camera driver
23.1. Terminology
23.2. Generic scaling / cropping scheme
23.3. S_FMT
23.4. S_CROP
24. The Silicon Labs Si470x FM Radio Receivers driver
24.1. Information from Silicon Labs
24.2. Supported ICs
24.3. Supported USB devices
24.4. Software
24.5. Audio Listing
24.6. Module Parameters
24.7. Errors
24.8. Open Issues
24.9. Other useful information and links
25. The Silicon Labs Si4713 FM Radio Transmitter Driver
25.1. Information about the Device
25.2. Device driver description
25.3. Properties description
25.4. RNL
25.5. Stereo/Mono and RDS subchannels
25.6. Testing
26. The SI476x Driver
26.1. TODO for the driver
26.2. Parameters exposed over debugfs
27. The Soc-Camera Drivers
27.1. Terminology
27.2. Purpose of the soc-camera subsystem
27.3. Existing drivers
27.4. Camera host API
27.5. Camera API
27.6. VIDIOC_S_CROP and VIDIOC_S_FMT behaviour
27.7. Format conversion
28. The Linux USB Video Class (UVC) driver
28.1. Extension Unit (XU) support
28.1.1. Introduction
28.1.2. Control mappings
28.1.3. Security
28.1.4. Debugging
28.1.5. IOCTL reference
29. The Virtual Video Test Driver (vivid)
29.1. Configuring the driver
29.2. Video Capture
29.2.1. Webcam Input
29.2.2. TV and S-Video Inputs
29.2.3. HDMI Input
29.3. Video Output
29.3.1. S-Video Output
29.3.2. HDMI Output
29.4. VBI Capture
29.5. VBI Output
29.6. Radio Receiver
29.7. Radio Transmitter
29.8. Software Defined Radio Receiver
29.9. Controls
29.9.1. User Controls - Test Controls
29.9.2. User Controls - Video Capture
29.9.3. User Controls - Audio
29.9.4. Vivid Controls
29.9.5. Digital Video Controls
29.9.6. FM Radio Receiver Controls
29.9.7. FM Radio Modulator Controls
29.10. Video, VBI and RDS Looping
29.10.1. Video and Sliced VBI looping
29.10.2. Radio & RDS Looping
29.11. Cropping, Composing, Scaling
29.12. Formats
29.13. Capture Overlay
29.14. Output Overlay
29.15. CEC (Consumer Electronics Control)
29.16. Some Future Improvements
30. The Zoran driver
30.1. Frequently Asked Questions
30.2. What cards are supported
30.2.1. Iomega Buz
30.2.2. AverMedia 6 Eyes AVS6EYES
30.2.3. Linux Media Labs LML33
30.2.4. Linux Media Labs LML33R10
30.2.5. Pinnacle/Miro DC10(new)
30.2.6. Pinnacle/Miro DC10+
30.2.7. Pinnacle/Miro DC10(old)
30.2.8. Pinnacle/Miro DC30
30.2.9. Pinnacle/Miro DC30+
30.3. 1.1 What the TV decoder can do an what not
30.3.1. Philips saa7111 TV decoder
30.3.2. Philips saa7110a TV decoder
30.3.3. Philips saa7114 TV decoder
30.3.4. Brooktree bt819 TV decoder
30.3.5. Micronas vpx3220a TV decoder
30.3.6. Samsung ks0127 TV decoder
30.4. What the TV encoder can do an what not
30.4.1. Philips saa7185 TV Encoder
30.4.2. Brooktree bt856 TV Encoder
30.4.3. Analog Devices adv7170 TV Encoder
30.4.4. Analog Devices adv7175 TV Encoder
30.4.5. ITT mse3000 TV encoder
30.4.6. Conexant bt866 TV encoder
30.5. How do I get this damn thing to work
30.6. What mainboard should I use (or why doesn’t my card work)
30.7. Programming interface
30.8. Applications
30.9. Concerning buffer sizes, quality, output size etc.
30.10. It hangs/crashes/fails/whatevers! Help!
30.11. Maintainers/Contacting
30.12. Driver’s License
31. Zoran 364xx based USB webcam module
31.1. Introduction
31.2. Install
31.3. Usage
31.4. links
31.5. Supported devices
Linux GPU Driver Developer’s Guide
Introduction
Style Guidelines
DRM Internals
Driver Initialization
Driver Information
Device Instance and Driver Handling
Driver Load
Bus-specific Device Registration and PCI Support
Open/Close, File Operations and IOCTLs
Open and Close
File Operations
IOCTLs
Legacy Support Code
Legacy Suspend/Resume
Legacy DMA Services
DRM Memory Management
The Translation Table Manager (TTM)
TTM initialization
The Graphics Execution Manager (GEM)
GEM Initialization
GEM Objects Creation
GEM Objects Lifetime
GEM Objects Naming
GEM Objects Mapping
Memory Coherency
Command Execution
GEM Function Reference
VMA Offset Manager
PRIME Buffer Sharing
Overview and Driver Interface
PRIME Helper Functions
PRIME Function References
DRM MM Range Allocator
Overview
LRU Scan/Eviction Support
DRM MM Range Allocator Function References
CMA Helper Functions Reference
Kernel Mode Setting (KMS)
Mode Setting
Display Modes Function Reference
Atomic Mode Setting Function Reference
Frame Buffer Abstraction
DRM Format Handling
Dumb Buffer Objects
Output Polling
KMS Initialization and Cleanup
CRTCs (
struct
drm_crtc
)
Planes (
struct
drm_plane
)
Encoders (
struct
drm_encoder
)
Connectors (
struct
drm_connector
)
Cleanup
Output discovery and initialization example
KMS API Functions
KMS Data Structures
KMS Locking
KMS Properties
Existing KMS Properties
Vertical Blanking
Vertical Blanking and Interrupt Handling Functions Reference
Mode Setting Helper Functions
Atomic Modeset Helper Functions Reference
Overview
Implementing Asynchronous Atomic Commit
Atomic State Reset and Initialization
Modeset Helper Reference for Common Vtables
Legacy CRTC/Modeset Helper Functions Reference
Output Probing Helper Functions Reference
fbdev Helper Functions Reference
Framebuffer CMA Helper Functions Reference
Display Port Helper Functions Reference
Display Port Dual Mode Adaptor Helper Functions Reference
Display Port MST Helper Functions Reference
MIPI DSI Helper Functions Reference
EDID Helper Functions Reference
Rectangle Utilities Reference
Flip-work Helper Reference
HDMI Infoframes Helper Reference
Plane Helper Reference
Tile group
Bridges
Overview
Default bridge callback sequence
Panel Helper Reference
Simple KMS Helper Reference
Userland interfaces
libdrm Device Lookup
Primary Nodes, DRM Master and Authentication
Render nodes
VBlank event handling
drm/i915 Intel GFX Driver
Core Driver Infrastructure
Runtime Power Management
Interrupt Handling
Intel GVT-g Guest Support(vGPU)
Display Hardware Handling
Mode Setting Infrastructure
Frontbuffer Tracking
Display FIFO Underrun Reporting
Plane Configuration
Atomic Plane Helpers
Output Probing
Hotplug
High Definition Audio
Panel Self Refresh PSR (PSR/SRD)
Frame Buffer Compression (FBC)
Display Refresh Rate Switching (DRRS)
DPIO
CSR firmware support for DMC
Video BIOS Table (VBT)
Memory Management and Command Submission
Batchbuffer Parsing
Batchbuffer Pools
Logical Rings, Logical Ring Contexts and Execlists
Global GTT views
GTT Fences and Swizzling
Object Tiling IOCTLs
Buffer Object Eviction
Buffer Object Memory Shrinking
GuC
GuC-specific firmware loader
GuC-based command submission
GuC Firmware Layout
Tracing
i915_ppgtt_create and i915_ppgtt_release
i915_context_create and i915_context_free
switch_mm
VGA Switcheroo
Modes of Use
Manual switching and manual power control
Driver power control
API
Public functions
Public structures
Public constants
Private structures
Handlers
apple-gmux Handler
The Linux Kernel
Docs
»
Linux Media Infrastructure userspace API
»
Part IV - Media Controller API
»
4. Function Reference
View page source
4. Function Reference
ΒΆ
4.1. media open()
4.2. media close()
4.3. media ioctl()
4.4. ioctl MEDIA_IOC_DEVICE_INFO
4.5. ioctl MEDIA_IOC_G_TOPOLOGY
4.6. ioctl MEDIA_IOC_ENUM_ENTITIES
4.7. ioctl MEDIA_IOC_ENUM_LINKS
4.8. ioctl MEDIA_IOC_SETUP_LINK