History

Merge tag 'media/v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media

Pull media updates from Mauro Carvalho Chehab: - Documentation improvements: conversion of all non-DocBook documents to Sphinx and lots of fixes to the uAPI media book - New PCI driver for Techwell TW5864 media grabber boards - New SoC driver for ATMEL Image Sensor Controller - Removal of some obsolete SoC drivers (s5p-tv driver and soc_camera drivers) - Addition of ST CEC driver - Lots of drivers fixes, improvements and additions * tag 'media/v4.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (464 commits) [media] ttusb_dec: avoid the risk of go past buffer [media] cx23885: Fix some smatch warnings [media] si2165: switch to regmap [media] si2165: use i2c_client->dev instead of i2c_adapter->dev for logging [media] si2165: Remove legacy attach [media] cx231xx: attach si2165 driver via i2c_client [media] cx231xx: Prepare for attaching new style i2c_client DVB demod drivers [media] cx23885: attach si2165 driver via i2c_client [media] si2165: support i2c_client attach [media] si2165: avoid division by zero [media] rcar-vin: add R-Car gen2 fallback compatibility string [media] lgdt3306a: remove 20*50 msec unnecessary timeout [media] cx25821: Remove deprecated create_singlethread_workqueue [media] cx25821: Drop Freeing of Workqueue [media] cxd2841er: force 8MHz bandwidth for DVB-C if specified bw not supported [media] redrat3: hardware-specific parameters [media] redrat3: remove hw_timeout member [media] cxd2841er: BER and SNR reading for ISDB-T [media] dvb-usb: avoid link error with dib3000m{b,c| [media] dvb-usb: split out common parts of dibusb ...

Linus Torvalds committed 10 years ago

Commit de34f4d2 parents 56e520c 9fce0c2756 files · +40567 −49076Browse files

Unified · Split

756 files
  1. Documentation/conf.py +2 −0
  2. Documentation/devicetree/bindings/media/atmel-isc.txt +65 −0
  3. Documentation/devicetree/bindings/media/exynos4-fimc-is.txt +4 −3
  4. Documentation/devicetree/bindings/media/i2c/ad5820.txt +19 −0
  5. Documentation/devicetree/bindings/media/i2c/adv7180.txt +5 −0
  6. Documentation/devicetree/bindings/media/renesas,fcp.txt +8 −1
  7. Documentation/devicetree/bindings/media/st,st-hva.txt +24 −0
  8. Documentation/devicetree/bindings/media/stih-cec.txt +25 −0
  9. Documentation/media/audio.h.rst.exceptions +3 −3
  10. Documentation/media/ca.h.rst.exceptions +16 −16
  11. Documentation/media/cec.h.rst.exceptions +0 −6
  12. Documentation/media/conf_nitpick.py +36 −20
  13. Documentation/media/dmx.h.rst.exceptions +44 −41
  14. Documentation/media/frontend.h.rst.exceptions +4 −4
  15. Documentation/media/index.rst +5 −0
  16. Documentation/media/intro.rst +1 −1
  17. Documentation/media/kapi/cec-core.rst +94 −53
  18. Documentation/media/kapi/dtv-core.rst +37 −3
  19. Documentation/media/kapi/mc-core.rst +13 −12
  20. Documentation/media/kapi/v4l2-dev.rst +6 −4
  21. Documentation/media/kapi/v4l2-event.rst +3 −3
  22. Documentation/media/kapi/v4l2-fh.rst +2 −2
  23. Documentation/media/kapi/v4l2-subdev.rst +6 −17
  24. Documentation/media/media_api_files/typical_media_device.pdf +0 −0
  25. Documentation/media/media_kapi.rst +1 −0
  26. Documentation/media/net.h.rst.exceptions +2 −2
  27. Documentation/media/uapi/cec/cec-func-close.rst +6 −3
  28. Documentation/media/uapi/cec/cec-func-ioctl.rst +7 −4
  29. Documentation/media/uapi/cec/cec-func-open.rst +5 −2
  30. Documentation/media/uapi/cec/cec-func-poll.rst +15 −3
  31. Documentation/media/uapi/cec/cec-intro.rst +3 −1
  32. Documentation/media/uapi/cec/cec-ioc-adap-g-caps.rst +9 −7
  33. Documentation/media/uapi/cec/cec-ioc-adap-g-log-addrs.rst +21 −10
  34. Documentation/media/uapi/cec/cec-ioc-adap-g-phys-addr.rst +10 −7
  35. Documentation/media/uapi/cec/cec-ioc-dqevent.rst +18 −19
  36. Documentation/media/uapi/cec/cec-ioc-g-mode.rst +13 −7
  37. Documentation/media/uapi/cec/cec-ioc-receive.rst +24 −14
  38. Documentation/media/uapi/dvb/audio-bilingual-channel-select.rst +5 −10
  39. Documentation/media/uapi/dvb/audio-channel-select.rst +5 −9
  40. Documentation/media/uapi/dvb/audio-clear-buffer.rst +3 −9
  41. Documentation/media/uapi/dvb/audio-continue.rst +3 −8
  42. Documentation/media/uapi/dvb/audio-fclose.rst +3 −1
  43. Documentation/media/uapi/dvb/audio-fopen.rst +5 −1
  44. Documentation/media/uapi/dvb/audio-fwrite.rst +3 −1
  45. Documentation/media/uapi/dvb/audio-get-capabilities.rst +5 −9
  46. Documentation/media/uapi/dvb/audio-get-pts.rst +5 −9
  47. Documentation/media/uapi/dvb/audio-get-status.rst +5 −9
  48. Documentation/media/uapi/dvb/audio-pause.rst +3 −8
  49. Documentation/media/uapi/dvb/audio-play.rst +3 −8
  50. Documentation/media/uapi/dvb/audio-select-source.rst +5 −9
  51. Documentation/media/uapi/dvb/audio-set-attributes.rst +6 −10
  52. Documentation/media/uapi/dvb/audio-set-av-sync.rst +7 −17
  53. Documentation/media/uapi/dvb/audio-set-bypass-mode.rst +7 −18
  54. Documentation/media/uapi/dvb/audio-set-ext-id.rst +5 −10
  55. Documentation/media/uapi/dvb/audio-set-id.rst +5 −10
  56. Documentation/media/uapi/dvb/audio-set-karaoke.rst +5 −9
  57. Documentation/media/uapi/dvb/audio-set-mixer.rst +5 −10
  58. Documentation/media/uapi/dvb/audio-set-mute.rst +7 −17
  59. Documentation/media/uapi/dvb/audio-set-streamtype.rst +5 −9
  60. Documentation/media/uapi/dvb/audio-stop.rst +3 −8
  61. Documentation/media/uapi/dvb/audio_data_types.rst +7 −30
  62. Documentation/media/uapi/dvb/ca-fclose.rst +5 −13
  63. Documentation/media/uapi/dvb/ca-fopen.rst +20 −31
  64. Documentation/media/uapi/dvb/ca-get-cap.rst +31 −20
  65. Documentation/media/uapi/dvb/ca-get-descr-info.rst +24 −20
  66. Documentation/media/uapi/dvb/ca-get-msg.rst +31 −16
  67. Documentation/media/uapi/dvb/ca-get-slot-info.rst +79 −13
  68. Documentation/media/uapi/dvb/ca-reset.rst +5 −19
  69. Documentation/media/uapi/dvb/ca-send-msg.rst +7 −23
  70. Documentation/media/uapi/dvb/ca-set-descr.rst +7 −23
  71. Documentation/media/uapi/dvb/ca-set-pid.rst +19 −18
  72. Documentation/media/uapi/dvb/ca_data_types.rst +6 −6
  73. Documentation/media/uapi/dvb/dmx-add-pid.rst +6 −22
  74. Documentation/media/uapi/dvb/dmx-fclose.rst +4 −12
  75. Documentation/media/uapi/dvb/dmx-fopen.rst +18 −27
  76. Documentation/media/uapi/dvb/dmx-fread.rst +10 −24
  77. Documentation/media/uapi/dvb/dmx-fwrite.rst +10 −24
  78. Documentation/media/uapi/dvb/dmx-get-caps.rst +7 −25
  79. Documentation/media/uapi/dvb/dmx-get-event.rst +6 −22
  80. Documentation/media/uapi/dvb/dmx-get-pes-pids.rst +7 −24
  81. Documentation/media/uapi/dvb/dmx-get-stc.rst +6 −25
  82. Documentation/media/uapi/dvb/dmx-remove-pid.rst +6 −22
  83. Documentation/media/uapi/dvb/dmx-set-buffer-size.rst +6 −23
  84. Documentation/media/uapi/dvb/dmx-set-filter.rst +6 −22
  85. Documentation/media/uapi/dvb/dmx-set-pes-filter.rst +7 −22
  86. Documentation/media/uapi/dvb/dmx-set-source.rst +7 −22
  87. Documentation/media/uapi/dvb/dmx-start.rst +5 −19
  88. Documentation/media/uapi/dvb/dmx-stop.rst +4 −18
  89. Documentation/media/uapi/dvb/dmx_types.rst +15 −25
  90. Documentation/media/uapi/dvb/dtv-fe-stats.rst +1 −1
  91. Documentation/media/uapi/dvb/dtv-properties.rst +1 −1
  92. Documentation/media/uapi/dvb/dtv-property.rst +1 −1
  93. Documentation/media/uapi/dvb/dtv-stats.rst +1 −1
  94. Documentation/media/uapi/dvb/dvb-fe-read-status.rst +3 −1
  95. Documentation/media/uapi/dvb/dvb-frontend-event.rst +1 −1
  96. Documentation/media/uapi/dvb/dvb-frontend-parameters.rst +5 −5
  97. Documentation/media/uapi/dvb/dvbapi.rst +3 −1
  98. Documentation/media/uapi/dvb/dvbproperty.rst +4 −2
  99. Documentation/media/uapi/dvb/examples.rst +3 −1
  100. Documentation/media/uapi/dvb/fe-bandwidth-t.rst +1 −4
  101. Documentation/media/uapi/dvb/fe-diseqc-recv-slave-reply.rst +5 −8
  102. Documentation/media/uapi/dvb/fe-diseqc-reset-overload.rst +2 −5
  103. Documentation/media/uapi/dvb/fe-diseqc-send-burst.rst +4 −11
  104. Documentation/media/uapi/dvb/fe-diseqc-send-master-cmd.rst +6 −8
  105. Documentation/media/uapi/dvb/fe-dishnetwork-send-legacy-cmd.rst +6 −10
  106. Documentation/media/uapi/dvb/fe-enable-high-lnb-voltage.rst +2 −4
  107. Documentation/media/uapi/dvb/fe-get-event.rst +8 −27
  108. Documentation/media/uapi/dvb/fe-get-frontend.rst +8 −22
  109. Documentation/media/uapi/dvb/fe-get-info.rst +11 −13
  110. Documentation/media/uapi/dvb/fe-get-property.rst +6 −5
  111. Documentation/media/uapi/dvb/fe-read-ber.rst +8 −22
  112. Documentation/media/uapi/dvb/fe-read-signal-strength.rst +7 −24
  113. Documentation/media/uapi/dvb/fe-read-snr.rst +7 −22
  114. Documentation/media/uapi/dvb/fe-read-status.rst +10 −9
  115. Documentation/media/uapi/dvb/fe-read-uncorrected-blocks.rst +7 −24
  116. Documentation/media/uapi/dvb/fe-set-frontend-tune-mode.rst +2 −4
  117. Documentation/media/uapi/dvb/fe-set-frontend.rst +8 −23
  118. Documentation/media/uapi/dvb/fe-set-tone.rst +4 −11
  119. Documentation/media/uapi/dvb/fe-set-voltage.rst +4 −6
  120. Documentation/media/uapi/dvb/fe-type-t.rst +5 −5
  121. Documentation/media/uapi/dvb/fe_property_parameters.rst +29 −48
  122. Documentation/media/uapi/dvb/frontend-stat-properties.rst +1 −1
  123. Documentation/media/uapi/dvb/frontend.rst +3 −1
  124. Documentation/media/uapi/dvb/frontend_f_close.rst +3 −3
  125. Documentation/media/uapi/dvb/frontend_f_open.rst +2 −2
  126. Documentation/media/uapi/dvb/net-add-if.rst +5 −13
  127. Documentation/media/uapi/dvb/net-get-if.rst +5 −7
  128. Documentation/media/uapi/dvb/net-remove-if.rst +2 −4
  129. Documentation/media/uapi/dvb/video-clear-buffer.rst +3 −1
  130. Documentation/media/uapi/dvb/video-command.rst +33 −1
  131. Documentation/media/uapi/dvb/video-continue.rst +3 −1
  132. Documentation/media/uapi/dvb/video-fast-forward.rst +3 −1
  133. Documentation/media/uapi/dvb/video-fclose.rst +2 −1
  134. Documentation/media/uapi/dvb/video-fopen.rst +4 −1
  135. Documentation/media/uapi/dvb/video-freeze.rst +3 −1
  136. Documentation/media/uapi/dvb/video-fwrite.rst +2 −1
  137. Documentation/media/uapi/dvb/video-get-capabilities.rst +3 −1
  138. Documentation/media/uapi/dvb/video-get-event.rst +20 −1
  139. Documentation/media/uapi/dvb/video-get-frame-count.rst +3 −1
  140. Documentation/media/uapi/dvb/video-get-frame-rate.rst +3 −1
  141. Documentation/media/uapi/dvb/video-get-navi.rst +11 −1
  142. Documentation/media/uapi/dvb/video-get-pts.rst +3 −1
  143. Documentation/media/uapi/dvb/video-get-size.rst +13 −1
  144. Documentation/media/uapi/dvb/video-get-status.rst +14 −1
  145. Documentation/media/uapi/dvb/video-play.rst +3 −1
  146. Documentation/media/uapi/dvb/video-select-source.rst +13 −1
  147. Documentation/media/uapi/dvb/video-set-attributes.rst +19 −1
  148. Documentation/media/uapi/dvb/video-set-blank.rst +3 −1
  149. Documentation/media/uapi/dvb/video-set-display-format.rst +3 −1
  150. Documentation/media/uapi/dvb/video-set-format.rst +12 −1
  151. Documentation/media/uapi/dvb/video-set-highlight.rst +27 −1
  152. Documentation/media/uapi/dvb/video-set-id.rst +3 −1
  153. Documentation/media/uapi/dvb/video-set-spu-palette.rst +11 −1
  154. Documentation/media/uapi/dvb/video-set-spu.rst +12 −1
  155. Documentation/media/uapi/dvb/video-set-streamtype.rst +3 −1
  156. Documentation/media/uapi/dvb/video-set-system.rst +3 −1
  157. Documentation/media/uapi/dvb/video-slowmotion.rst +3 −1
  158. Documentation/media/uapi/dvb/video-stillpicture.rst +3 −1
  159. Documentation/media/uapi/dvb/video-stop.rst +3 −1
  160. Documentation/media/uapi/dvb/video-try-command.rst +3 −1
  161. Documentation/media/uapi/dvb/video_types.rst +8 −8
  162. Documentation/media/uapi/gen-errors.rst +2 −0
  163. Documentation/media/uapi/mediactl/media-func-close.rst +3 −3
  164. Documentation/media/uapi/mediactl/media-func-ioctl.rst +3 −3
  165. Documentation/media/uapi/mediactl/media-func-open.rst +2 −2
  166. Documentation/media/uapi/mediactl/media-ioc-device-info.rst +6 −6
  167. Documentation/media/uapi/mediactl/media-ioc-enum-entities.rst +7 −7
  168. Documentation/media/uapi/mediactl/media-ioc-enum-links.rst +19 −15
  169. Documentation/media/uapi/mediactl/media-ioc-g-topology.rst +16 −12
  170. Documentation/media/uapi/mediactl/media-ioc-setup-link.rst +4 −6
  171. Documentation/media/uapi/mediactl/media-types.rst +30 −10
  172. Documentation/media/uapi/rc/lirc-get-features.rst +2 −4
  173. Documentation/media/uapi/rc/lirc-get-length.rst +2 −4
  174. Documentation/media/uapi/rc/lirc-get-rec-mode.rst +6 −5
  175. Documentation/media/uapi/rc/lirc-get-rec-resolution.rst +2 −4
  176. Documentation/media/uapi/rc/lirc-get-send-mode.rst +5 −4
  177. Documentation/media/uapi/rc/lirc-get-timeout.rst +5 −4
  178. Documentation/media/uapi/rc/lirc-read.rst +5 −2
  179. Documentation/media/uapi/rc/lirc-set-measure-carrier-mode.rst +2 −4
  180. Documentation/media/uapi/rc/lirc-set-rec-carrier-range.rst +2 −4
  181. Documentation/media/uapi/rc/lirc-set-rec-carrier.rst +2 −4
  182. Documentation/media/uapi/rc/lirc-set-rec-timeout-reports.rst +2 −4
  183. Documentation/media/uapi/rc/lirc-set-rec-timeout.rst +2 −4
  184. Documentation/media/uapi/rc/lirc-set-send-carrier.rst +2 −4
  185. Documentation/media/uapi/rc/lirc-set-send-duty-cycle.rst +2 −4
  186. Documentation/media/uapi/rc/lirc-set-transmitter-mask.rst +2 −4
  187. Documentation/media/uapi/rc/lirc-set-wideband-receiver.rst +5 −5
  188. Documentation/media/uapi/rc/lirc-write.rst +5 −3
  189. Documentation/media/uapi/rc/rc-tables.rst +2 −0
  190. Documentation/media/uapi/v4l/audio.rst +9 −7
  191. Documentation/media/uapi/v4l/buffer.rst +543 −861
  192. Documentation/media/uapi/v4l/control.rst +39 −100
  193. Documentation/media/uapi/v4l/crop.rst +16 −10
  194. Documentation/media/uapi/v4l/dev-capture.rst +8 −8
  195. Documentation/media/uapi/v4l/dev-codec.rst +3 −1
  196. Documentation/media/uapi/v4l/dev-osd.rst +14 −12
  197. Documentation/media/uapi/v4l/dev-output.rst +9 −9
  198. Documentation/media/uapi/v4l/dev-overlay.rst +19 −15
  199. Documentation/media/uapi/v4l/dev-radio.rst +1 −1
  200. Documentation/media/uapi/v4l/dev-raw-vbi.rst +110 −157
  201. Documentation/media/uapi/v4l/dev-raw-vbi_files/vbi_525.pdf +0 −0
  202. Documentation/media/uapi/v4l/dev-raw-vbi_files/vbi_625.pdf +0 −0
  203. Documentation/media/uapi/v4l/dev-rds.rst +72 −143
  204. Documentation/media/uapi/v4l/dev-sdr.rst +22 −35
  205. Documentation/media/uapi/v4l/dev-sliced-vbi.rst +309 −475
  206. Documentation/media/uapi/v4l/dev-subdev.rst +49 −84
  207. Documentation/media/uapi/v4l/dev-touch.rst +56 −0
  208. Documentation/media/uapi/v4l/devices.rst +1 −0
  209. Documentation/media/uapi/v4l/diff-v4l.rst +246 −514
  210. Documentation/media/uapi/v4l/dmabuf.rst +4 −4
  211. Documentation/media/uapi/v4l/extended-controls.rst +1110 −2221
  212. Documentation/media/uapi/v4l/field-order.rst +74 −122
  213. Documentation/media/uapi/v4l/format.rst +1 −1
  214. Documentation/media/uapi/v4l/func-close.rst +2 −2
  215. Documentation/media/uapi/v4l/func-ioctl.rst +2 −2
  216. Documentation/media/uapi/v4l/func-mmap.rst +9 −7
  217. Documentation/media/uapi/v4l/func-munmap.rst +4 −4
  218. Documentation/media/uapi/v4l/func-open.rst +2 −2
  219. Documentation/media/uapi/v4l/func-poll.rst +2 −2
  220. Documentation/media/uapi/v4l/func-read.rst +5 −3
  221. Documentation/media/uapi/v4l/func-select.rst +16 −2
  222. Documentation/media/uapi/v4l/func-write.rst +5 −3
  223. Documentation/media/uapi/v4l/hist-v4l2.rst +148 −261
  224. Documentation/media/uapi/v4l/libv4l-introduction.rst +46 −31
  225. Documentation/media/uapi/v4l/mmap.rst +6 −6
  226. Documentation/media/uapi/v4l/pixfmt-002.rst +120 −183
  227. Documentation/media/uapi/v4l/pixfmt-003.rst +68 −140
  228. Documentation/media/uapi/v4l/pixfmt-006.rst +102 −241
  229. Documentation/media/uapi/v4l/pixfmt-007.rst +301 −453
  230. Documentation/media/uapi/v4l/pixfmt-013.rst +73 −115
  231. Documentation/media/uapi/v4l/pixfmt-grey.rst +20 −53
  232. Documentation/media/uapi/v4l/pixfmt-indexed.rst +28 −54
  233. Documentation/media/uapi/v4l/pixfmt-m420.rst +80 −173
  234. Documentation/media/uapi/v4l/pixfmt-nv12.rst +80 −172
  235. Documentation/media/uapi/v4l/pixfmt-nv12m.rst +82 −176
  236. Documentation/media/uapi/v4l/pixfmt-nv12mt.rst +2 −4
  237. Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt.gif +0 −0
  238. Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt.png +0 −0
  239. Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt_example.gif +0 −0
  240. Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt_example.png +0 −0
  241. Documentation/media/uapi/v4l/pixfmt-nv16.rst +104 −221
  242. Documentation/media/uapi/v4l/pixfmt-nv16m.rst +105 −225
  243. Documentation/media/uapi/v4l/pixfmt-nv24.rst +56 −132
  244. Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst +786 −1404
  245. Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst +173 −296
  246. Documentation/media/uapi/v4l/pixfmt-reserved.rst +221 −326
  247. Documentation/media/uapi/v4l/pixfmt-rgb.rst +0 −3
  248. Documentation/media/uapi/v4l/pixfmt-sbggr16.rst +36 −88
  249. Documentation/media/uapi/v4l/pixfmt-sbggr8.rst +0 −81
  250. Documentation/media/uapi/v4l/pixfmt-sdr-cs08.rst +4 −17
  251. Documentation/media/uapi/v4l/pixfmt-sdr-cs14le.rst +6 −20
  252. Documentation/media/uapi/v4l/pixfmt-sdr-cu08.rst +4 −17
  253. Documentation/media/uapi/v4l/pixfmt-sdr-cu16le.rst +6 −19
  254. Documentation/media/uapi/v4l/pixfmt-sdr-ru12le.rst +4 −10
  255. Documentation/media/uapi/v4l/pixfmt-sgbrg8.rst +0 −81
  256. Documentation/media/uapi/v4l/pixfmt-sgrbg8.rst +0 −81
  257. Documentation/media/uapi/v4l/pixfmt-srggb10.rst +45 −89
  258. Documentation/media/uapi/v4l/pixfmt-srggb10alaw8.rst +0 −2
  259. Documentation/media/uapi/v4l/pixfmt-srggb10p.rst +42 −67
  260. Documentation/media/uapi/v4l/pixfmt-srggb12.rst +40 −84
  261. Documentation/media/uapi/v4l/pixfmt-srggb8.rst +33 −60
  262. Documentation/media/uapi/v4l/pixfmt-tch-td08.rst +52 −0
  263. Documentation/media/uapi/v4l/pixfmt-tch-td16.rst +67 −0
  264. Documentation/media/uapi/v4l/pixfmt-tch-tu08.rst +50 −0
  265. Documentation/media/uapi/v4l/pixfmt-tch-tu16.rst +66 −0
  266. Documentation/media/uapi/v4l/pixfmt-uv8.rst +21 −50
  267. Documentation/media/uapi/v4l/pixfmt-uyvy.rst +72 −159
  268. Documentation/media/uapi/v4l/pixfmt-vyuy.rst +72 −159
  269. Documentation/media/uapi/v4l/pixfmt-y10.rst +37 −82
  270. Documentation/media/uapi/v4l/pixfmt-y10b.rst +5 −17
  271. Documentation/media/uapi/v4l/pixfmt-y12.rst +37 −82
  272. Documentation/media/uapi/v4l/pixfmt-y12i.rst +3 −11
  273. Documentation/media/uapi/v4l/pixfmt-y16-be.rst +40 −83
  274. Documentation/media/uapi/v4l/pixfmt-y16.rst +40 −83
  275. Documentation/media/uapi/v4l/pixfmt-y41p.rst +108 −231
  276. Documentation/media/uapi/v4l/pixfmt-y8i.rst +37 −82
  277. Documentation/media/uapi/v4l/pixfmt-yuv410.rst +75 −156
  278. Documentation/media/uapi/v4l/pixfmt-yuv411p.rst +67 −166
  279. Documentation/media/uapi/v4l/pixfmt-yuv420.rst +90 −186
  280. Documentation/media/uapi/v4l/pixfmt-yuv420m.rst +92 −194
  281. Documentation/media/uapi/v4l/pixfmt-yuv422m.rst +82 −199
  282. Documentation/media/uapi/v4l/pixfmt-yuv422p.rst +80 −191
  283. Documentation/media/uapi/v4l/pixfmt-yuv444m.rst +88 −213
  284. Documentation/media/uapi/v4l/pixfmt-yuyv.rst +77 −164
  285. Documentation/media/uapi/v4l/pixfmt-yvyu.rst +72 −159
  286. Documentation/media/uapi/v4l/pixfmt-z16.rst +37 −82
  287. Documentation/media/uapi/v4l/pixfmt.rst +3 −2
  288. Documentation/media/uapi/v4l/planar-apis.rst +5 −5
  289. Documentation/media/uapi/v4l/rw.rst +1 −1
  290. Documentation/media/uapi/v4l/selection-api-005.rst +5 −5
  291. Documentation/media/uapi/v4l/standard.rst +7 −5
  292. Documentation/media/uapi/v4l/streaming-par.rst +1 −1
  293. Documentation/media/uapi/v4l/subdev-formats.rst +6341 −11507
  294. Documentation/media/uapi/v4l/tch-formats.rst +18 −0
  295. Documentation/media/uapi/v4l/tuner.rst +10 −8
  296. Documentation/media/uapi/v4l/userp.rst +7 −5
  297. Documentation/media/uapi/v4l/v4l2-selection-flags.rst +29 −56
  298. Documentation/media/uapi/v4l/v4l2-selection-targets.rst +56 −117
  299. Documentation/media/uapi/v4l/v4l2.rst +6 −6
  300. Documentation/media/uapi/v4l/video.rst +1 −1
  301. Documentation/media/uapi/v4l/vidioc-create-bufs.rst +31 −56
  302. Documentation/media/uapi/v4l/vidioc-cropcap.rst +55 −90
  303. Documentation/media/uapi/v4l/vidioc-dbg-g-chip-info.rst +45 −90
  304. Documentation/media/uapi/v4l/vidioc-dbg-g-register.rst +44 −90
  305. Documentation/media/uapi/v4l/vidioc-decoder-cmd.rst +132 −193
  306. Documentation/media/uapi/v4l/vidioc-dqevent.rst +269 −453
  307. Documentation/media/uapi/v4l/vidioc-dv-timings-cap.rst +89 −178
  308. Documentation/media/uapi/v4l/vidioc-encoder-cmd.rst +60 −94
  309. Documentation/media/uapi/v4l/vidioc-enum-dv-timings.rst +29 −44
  310. Documentation/media/uapi/v4l/vidioc-enum-fmt.rst +64 −101
  311. Documentation/media/uapi/v4l/vidioc-enum-frameintervals.rst +68 −138
  312. Documentation/media/uapi/v4l/vidioc-enum-framesizes.rst +80 −163
  313. Documentation/media/uapi/v4l/vidioc-enum-freq-bands.rst +76 −126
  314. Documentation/media/uapi/v4l/vidioc-enumaudio.rst +4 −6
  315. Documentation/media/uapi/v4l/vidioc-enumaudioout.rst +7 −7
  316. Documentation/media/uapi/v4l/vidioc-enuminput.rst +152 −286
  317. Documentation/media/uapi/v4l/vidioc-enumoutput.rst +81 −147
  318. Documentation/media/uapi/v4l/vidioc-enumstd.rst +118 −207
  319. Documentation/media/uapi/v4l/vidioc-expbuf.rst +38 −68
  320. Documentation/media/uapi/v4l/vidioc-g-audio.rst +45 −80
  321. Documentation/media/uapi/v4l/vidioc-g-audioout.rst +32 −54
  322. Documentation/media/uapi/v4l/vidioc-g-crop.rst +22 −28
  323. Documentation/media/uapi/v4l/vidioc-g-ctrl.rst +18 −25
  324. Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst +173 −318
  325. Documentation/media/uapi/v4l/vidioc-g-edid.rst +42 −56
  326. Documentation/media/uapi/v4l/vidioc-g-enc-index.rst +63 −125
  327. Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst +235 −354
  328. Documentation/media/uapi/v4l/vidioc-g-fbuf.rst +239 −385
  329. Documentation/media/uapi/v4l/vidioc-g-fmt.rst +57 −96
  330. Documentation/media/uapi/v4l/vidioc-g-frequency.rst +36 −55
  331. Documentation/media/uapi/v4l/vidioc-g-input.rst +6 −5
  332. Documentation/media/uapi/v4l/vidioc-g-jpegcomp.rst +52 −110
  333. Documentation/media/uapi/v4l/vidioc-g-modulator.rst +112 −175
  334. Documentation/media/uapi/v4l/vidioc-g-output.rst +6 −5
  335. Documentation/media/uapi/v4l/vidioc-g-parm.rst +163 −250
  336. Documentation/media/uapi/v4l/vidioc-g-priority.rst +31 −55
  337. Documentation/media/uapi/v4l/vidioc-g-selection.rst +43 −58
  338. Documentation/media/uapi/v4l/vidioc-g-sliced-vbi-cap.rst +129 −211
  339. Documentation/media/uapi/v4l/vidioc-g-std.rst +6 −7
  340. Documentation/media/uapi/v4l/vidioc-g-tuner.rst +346 −598
  341. Documentation/media/uapi/v4l/vidioc-log-status.rst +4 −1
  342. Documentation/media/uapi/v4l/vidioc-overlay.rst +2 −4
  343. Documentation/media/uapi/v4l/vidioc-prepare-buf.rst +3 −5
  344. Documentation/media/uapi/v4l/vidioc-qbuf.rst +18 −15
  345. Documentation/media/uapi/v4l/vidioc-query-dv-timings.rst +9 −6
  346. Documentation/media/uapi/v4l/vidioc-querybuf.rst +9 −11
  347. Documentation/media/uapi/v4l/vidioc-querycap.rst +208 −373
  348. Documentation/media/uapi/v4l/vidioc-queryctrl.rst +385 −635
  349. Documentation/media/uapi/v4l/vidioc-querystd.rst +5 −5
  350. Documentation/media/uapi/v4l/vidioc-reqbufs.rst +23 −43
  351. Documentation/media/uapi/v4l/vidioc-s-hw-freq-seek.rst +53 −93
  352. Documentation/media/uapi/v4l/vidioc-streamon.rst +9 −6
  353. Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-interval.rst +33 −74
  354. Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-size.rst +37 −82
  355. Documentation/media/uapi/v4l/vidioc-subdev-enum-mbus-code.rst +25 −50
  356. Documentation/media/uapi/v4l/vidioc-subdev-g-crop.rst +24 −43
  357. Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst +33 −58
  358. Documentation/media/uapi/v4l/vidioc-subdev-g-frame-interval.rst +21 −34
  359. Documentation/media/uapi/v4l/vidioc-subdev-g-selection.rst +29 −56
  360. Documentation/media/uapi/v4l/vidioc-subscribe-event.rst +52 −75
  361. Documentation/media/v4l-drivers/bttv.rst +1 −0
  362. Documentation/media/v4l-drivers/cpia2.rst +3 −0
  363. Documentation/media/v4l-drivers/cx23885-cardlist.rst +1 −0
  364. Documentation/media/v4l-drivers/fourcc.rst +1 −1
  365. Documentation/media/v4l-drivers/si476x.rst +62 −54
  366. Documentation/media/v4l-drivers/zr364xx.rst +1 −1
  367. Documentation/media/video.h.rst.exceptions +10 −10
  368. Documentation/media/videodev2.h.rst.exceptions +108 −102
  369. Documentation/sphinx/parse-headers.pl +69 −58
  370. MAINTAINERS +64 −25
  371. arch/arm/boot/dts/stih407-family.dtsi +12 −0
  372. drivers/gpu/drm/exynos/Kconfig +1 −2
  373. drivers/input/rmi4/Kconfig +11 −0
  374. drivers/input/rmi4/Makefile +1 −0
  375. drivers/input/rmi4/rmi_bus.c +3 −0
  376. drivers/input/rmi4/rmi_driver.h +1 −0
  377. drivers/input/rmi4/rmi_f54.c +757 −0
  378. drivers/input/touchscreen/Kconfig +9 −0
  379. drivers/input/touchscreen/atmel_mxt_ts.c +521 −0
  380. drivers/input/touchscreen/sur40.c +108 −34
  381. drivers/media/Kconfig +4 −3
  382. drivers/media/Makefile +1 −1
  383. drivers/media/common/v4l2-tpg/v4l2-tpg-core.c +6 −8
  384. drivers/media/dvb-core/demux.h +21 −23
  385. drivers/media/dvb-core/dvb_frontend.c +6 −22
  386. drivers/media/dvb-core/dvb_math.h +1 −1
  387. drivers/media/dvb-core/dvb_ringbuffer.h +149 −77
  388. drivers/media/dvb-frontends/Kconfig +2 −0
  389. drivers/media/dvb-frontends/ascot2e.c +1 −1
  390. drivers/media/dvb-frontends/cxd2820r.h +26 −0
  391. drivers/media/dvb-frontends/cxd2820r_c.c +151 −151
  392. drivers/media/dvb-frontends/cxd2820r_core.c +297 −300
  393. drivers/media/dvb-frontends/cxd2820r_priv.h +16 −26
  394. drivers/media/dvb-frontends/cxd2820r_t.c +144 −156
  395. drivers/media/dvb-frontends/cxd2820r_t2.c +135 −143
  396. drivers/media/dvb-frontends/cxd2841er.c +93 −15
  397. drivers/media/dvb-frontends/drxk_hard.c +1 −1
  398. drivers/media/dvb-frontends/dvb-pll.c +1 −1
  399. drivers/media/dvb-frontends/helene.c +8 −4
  400. drivers/media/dvb-frontends/horus3a.c +1 −1
  401. drivers/media/dvb-frontends/ix2505v.c +1 −1
  402. drivers/media/dvb-frontends/lgdt3306a.c +5 −13
  403. drivers/media/dvb-frontends/mb86a20s.c +53 −51
  404. drivers/media/dvb-frontends/si2165.c +122 −106
  405. drivers/media/dvb-frontends/si2165.h +9 −18
  406. drivers/media/dvb-frontends/si2165_priv.h +17 −0
  407. drivers/media/dvb-frontends/stb6000.c +1 −1
  408. drivers/media/dvb-frontends/stb6100.c +1 −1
  409. drivers/media/dvb-frontends/stv6110.c +1 −1
  410. drivers/media/dvb-frontends/stv6110x.c +1 −1
  411. drivers/media/dvb-frontends/tda18271c2dd.c +1 −1
  412. drivers/media/dvb-frontends/tda665x.c +1 −1
  413. drivers/media/dvb-frontends/tda8261.c +1 −1
  414. drivers/media/dvb-frontends/tda826x.c +1 −1
  415. drivers/media/dvb-frontends/ts2020.c +1 −1
  416. drivers/media/dvb-frontends/tua6100.c +1 −1
  417. drivers/media/dvb-frontends/zl10036.c +1 −1
  418. drivers/media/dvb-frontends/zl10039.c +1 −1
  419. drivers/media/i2c/Kconfig +16 −2
  420. drivers/media/i2c/Makefile +2 −0
  421. drivers/media/i2c/ad5820.c +372 −0
  422. drivers/media/i2c/ad9389b.c +4 −19
  423. drivers/media/i2c/adv7180.c +88 −34
  424. drivers/media/i2c/adv7183.c +0 −1
  425. drivers/media/i2c/adv7393.c +0 −1
  426. drivers/media/i2c/adv7511.c +1 −0
  427. drivers/media/i2c/ak881x.c +17 −11
  428. drivers/media/i2c/cs3308.c +0 −1
  429. drivers/media/i2c/ir-kbd-i2c.c +60 −30
  430. drivers/media/i2c/mt9m111.c +49 −67
  431. drivers/media/i2c/ov9650.c +6 −1
  432. drivers/media/i2c/s5c73m3/s5c73m3-core.c +1 −1
  433. drivers/media/i2c/s5k4ecgx.c +0 −1
  434. drivers/media/i2c/s5k6a3.c +1 −1
  435. drivers/media/i2c/smiapp/smiapp-core.c +80 −100
  436. drivers/media/i2c/smiapp/smiapp-quirk.c +7 −9
  437. drivers/media/i2c/smiapp/smiapp-regs.c +11 −11
  438. drivers/media/i2c/smiapp/smiapp.h +3 −2
  439. drivers/media/i2c/soc_camera/Kconfig +5 −2
  440. drivers/media/i2c/soc_camera/Makefile +0 −1
  441. drivers/media/i2c/soc_camera/imx074.c +18 −24
  442. drivers/media/i2c/soc_camera/mt9m001.c +38 −32
  443. drivers/media/i2c/soc_camera/mt9t031.c +30 −24
  444. drivers/media/i2c/soc_camera/mt9t112.c +34 −26
  445. drivers/media/i2c/soc_camera/mt9v022.c +37 −31
  446. drivers/media/i2c/soc_camera/ov2640.c +18 −23
  447. drivers/media/i2c/soc_camera/ov5642.c +28 −25
  448. drivers/media/i2c/soc_camera/ov6650.c +37 −37
  449. drivers/media/i2c/soc_camera/ov772x.c +21 −23
  450. drivers/media/i2c/soc_camera/ov9640.c +18 −23
  451. drivers/media/i2c/soc_camera/ov9740.c +18 −23
  452. drivers/media/i2c/soc_camera/rj54n1cb0c.c +29 −23
  453. drivers/media/i2c/soc_camera/tw9910.c +15 −32
  454. drivers/media/i2c/ths8200.c +0 −1
  455. drivers/media/i2c/tlv320aic23b.c +0 −1
  456. drivers/media/i2c/tvp514x.c +1 −2
  457. drivers/media/i2c/tvp5150.c +45 −44
  458. drivers/media/i2c/tvp7002.c +0 −1
  459. drivers/media/i2c/vs6624.c +0 −1
  460. drivers/media/media-device.c +111 −113
  461. drivers/media/media-entity.c +8 −5
  462. drivers/media/pci/Kconfig +1 −0
  463. drivers/media/pci/Makefile +1 −0
  464. drivers/media/pci/bt8xx/bttv-driver.c +39 −20
  465. drivers/media/pci/bt8xx/bttvp.h +1 −1
  466. drivers/media/pci/cobalt/cobalt-alsa-pcm.c +2 −2
  467. drivers/media/pci/cobalt/cobalt-driver.c +24 −23
  468. drivers/media/pci/cobalt/cobalt-v4l2.c +5 −2
  469. drivers/media/pci/cx18/cx18-alsa-pcm.c +1 −1
  470. drivers/media/pci/cx18/cx18-i2c.c +2 −1
  471. drivers/media/pci/cx23885/cx23885-417.c +1 −1
  472. drivers/media/pci/cx23885/cx23885-alsa.c +1 −1
  473. drivers/media/pci/cx23885/cx23885-cards.c +29 −0
  474. drivers/media/pci/cx23885/cx23885-dvb.c +125 −10
  475. drivers/media/pci/cx23885/cx23885-i2c.c +1 −1
  476. drivers/media/pci/cx23885/cx23885-input.c +1 −1
  477. drivers/media/pci/cx23885/cx23885-video.c +1 −1
  478. drivers/media/pci/cx23885/cx23885.h +3 −2
  479. drivers/media/pci/cx25821/cx25821-alsa.c +1 −1
  480. drivers/media/pci/cx25821/cx25821-audio-upstream.c +2 −12
  481. drivers/media/pci/cx25821/cx25821-i2c.c +1 −1
  482. drivers/media/pci/cx25821/cx25821-video.c +1 −1
  483. drivers/media/pci/cx25821/cx25821.h +0 −1
  484. drivers/media/pci/cx88/cx88-alsa.c +1 −1
  485. drivers/media/pci/cx88/cx88-blackbird.c +1 −1
  486. drivers/media/pci/cx88/cx88-dvb.c +1 −1
  487. drivers/media/pci/cx88/cx88-input.c +5 −3
  488. drivers/media/pci/cx88/cx88-video.c +1 −1
  489. drivers/media/pci/ddbridge/ddbridge-core.c +9 −9
  490. drivers/media/pci/ivtv/ivtv-alsa-pcm.c +1 −1
  491. drivers/media/pci/ivtv/ivtv-i2c.c +3 −2
  492. drivers/media/pci/netup_unidvb/netup_unidvb_core.c +1 −1
  493. drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c +1 −4
  494. drivers/media/pci/ngene/ngene-cards.c +7 −7
  495. drivers/media/pci/pt3/pt3.c +1 −3
  496. drivers/media/pci/saa7134/saa7134-alsa.c +1 −1
  497. drivers/media/pci/saa7134/saa7134-empress.c +1 −1
  498. drivers/media/pci/saa7134/saa7134-i2c.c +1 −1
  499. drivers/media/pci/saa7134/saa7134-input.c +2 −2
  500. drivers/media/pci/saa7134/saa7134-video.c +28 −13
  501. drivers/media/pci/saa7164/saa7164-i2c.c +1 −1
  502. drivers/media/pci/smipcie/smipcie-main.c +4 −4
  503. drivers/media/pci/solo6x10/solo6x10-g723.c +1 −1
  504. drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c +1 −1
  505. drivers/media/pci/tw5864/Kconfig +12 −0
  506. drivers/media/pci/tw5864/Makefile +3 −0
  507. drivers/media/pci/tw5864/tw5864-core.c +359 −0
  508. drivers/media/pci/tw5864/tw5864-h264.c +259 −0
  509. drivers/media/pci/tw5864/tw5864-reg.h +2133 −0
  510. drivers/media/pci/tw5864/tw5864-util.c +37 −0
  511. drivers/media/pci/tw5864/tw5864-video.c +1510 −0
  512. drivers/media/pci/tw5864/tw5864.h +205 −0
  513. drivers/media/pci/tw68/tw68-video.c +1 −1
  514. drivers/media/pci/tw686x/tw686x-audio.c +1 −1
  515. drivers/media/pci/tw686x/tw686x-video.c +121 −61
  516. drivers/media/pci/zoran/zoran_driver.c +49 −64
  517. drivers/media/platform/Kconfig +26 −2
  518. drivers/media/platform/Makefile +4 −1
  519. drivers/media/platform/atmel/Kconfig +9 −0
  520. drivers/media/platform/atmel/Makefile +1 −0
  521. drivers/media/platform/atmel/atmel-isc-regs.h +165 −0
  522. drivers/media/platform/atmel/atmel-isc.c +1520 −0
  523. drivers/media/platform/davinci/vpbe_display.c +37 −28
  524. drivers/media/platform/davinci/vpfe_capture.c +34 −18
  525. drivers/media/platform/exynos-gsc/gsc-m2m.c +5 −4
  526. drivers/media/platform/exynos4-is/fimc-capture.c +2 −1
  527. drivers/media/platform/exynos4-is/fimc-is-i2c.c +17 −10
  528. drivers/media/platform/exynos4-is/fimc-is.c +22 −7
  529. drivers/media/platform/exynos4-is/fimc-is.h +3 −0
  530. drivers/media/platform/exynos4-is/fimc-isp.c +1 −0
  531. drivers/media/platform/exynos4-is/fimc-lite.c +5 −12
  532. drivers/media/platform/exynos4-is/fimc-m2m.c +1 −1
  533. drivers/media/platform/exynos4-is/media-dev.c +5 −1
  534. drivers/media/platform/exynos4-is/mipi-csis.c +1 −0
  535. drivers/media/platform/m2m-deinterlace.c +2 −2
  536. drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h +1 −1
  537. drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c +70 −1
  538. drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c +3 −3
  539. drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c +3 −3
  540. drivers/media/platform/mtk-vcodec/venc_drv_if.c +2 −2
  541. drivers/media/platform/mx2_emmaprp.c +1 −1
  542. drivers/media/platform/omap/omap_vout.c +27 −26
  543. drivers/media/platform/omap3isp/isp.c +5 −1
  544. drivers/media/platform/omap3isp/ispvideo.c +57 −31
  545. drivers/media/platform/pxa_camera.c +1308 −641
  546. drivers/media/platform/rcar-fcp.c +5 −4
  547. drivers/media/platform/rcar-vin/Kconfig +1 −1
  548. drivers/media/platform/rcar-vin/rcar-core.c +122 −141
  549. drivers/media/platform/rcar-vin/rcar-dma.c +40 −19
  550. drivers/media/platform/rcar-vin/rcar-v4l2.c +187 −112
  551. drivers/media/platform/rcar-vin/rcar-vin.h +16 −11
  552. drivers/media/platform/rcar_jpu.c +1 −1
  553. drivers/media/platform/s5p-g2d/g2d.c +1 −1
  554. drivers/media/platform/s5p-jpeg/jpeg-core.c +17 −26
  555. drivers/media/platform/s5p-mfc/s5p_mfc.c +53 −33
  556. drivers/media/platform/s5p-mfc/s5p_mfc_common.h +2 −0
  557. drivers/media/platform/s5p-mfc/s5p_mfc_dec.c +6 −5
  558. drivers/media/platform/s5p-tv/Kconfig +0 −88
  559. drivers/media/platform/s5p-tv/Makefile +0 −19
  560. drivers/media/platform/s5p-tv/hdmi_drv.c +0 −1059
  561. drivers/media/platform/s5p-tv/hdmiphy_drv.c +0 −324
  562. drivers/media/platform/s5p-tv/mixer.h +0 −364
  563. drivers/media/platform/s5p-tv/mixer_drv.c +0 −527
  564. drivers/media/platform/s5p-tv/mixer_grp_layer.c +0 −270
  565. drivers/media/platform/s5p-tv/mixer_reg.c +0 −551
  566. drivers/media/platform/s5p-tv/mixer_video.c +0 −1130
  567. drivers/media/platform/s5p-tv/mixer_vp_layer.c +0 −242
  568. drivers/media/platform/s5p-tv/regs-hdmi.h +0 −146
  569. drivers/media/platform/s5p-tv/regs-mixer.h +0 −122
  570. drivers/media/platform/s5p-tv/regs-sdo.h +0 −63
  571. drivers/media/platform/s5p-tv/regs-vp.h +0 −88
  572. drivers/media/platform/s5p-tv/sdo_drv.c +0 −497
  573. drivers/media/platform/s5p-tv/sii9234_drv.c +0 −407
  574. drivers/media/platform/sh_vou.c +10 −7
  575. drivers/media/platform/soc_camera/Kconfig +0 −25
  576. drivers/media/platform/soc_camera/Makefile +0 −3
  577. drivers/media/platform/soc_camera/atmel-isi.c +1 −1
  578. drivers/media/platform/soc_camera/rcar_vin.c +0 −1970
  579. drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c +29 −240
  580. drivers/media/platform/soc_camera/sh_mobile_csi2.c +0 −400
  581. drivers/media/platform/soc_camera/soc_camera.c +37 −93
  582. drivers/media/platform/soc_camera/soc_camera_platform.c +18 −27
  583. drivers/media/platform/soc_camera/soc_scale_crop.c +55 −42
  584. drivers/media/platform/soc_camera/soc_scale_crop.h +3 −3
  585. drivers/media/platform/sti/bdisp/bdisp-v4l2.c +1 −1
  586. drivers/media/platform/sti/hva/Makefile +2 −0
  587. drivers/media/platform/sti/hva/hva-h264.c +1050 −0
  588. drivers/media/platform/sti/hva/hva-hw.c +538 −0
  589. drivers/media/platform/sti/hva/hva-hw.h +42 −0
  590. drivers/media/platform/sti/hva/hva-mem.c +59 −0
  591. drivers/media/platform/sti/hva/hva-mem.h +34 −0
  592. drivers/media/platform/sti/hva/hva-v4l2.c +1415 −0
  593. drivers/media/platform/sti/hva/hva.h +315 −0
  594. drivers/media/platform/ti-vpe/cal.c +1 −1
  595. drivers/media/platform/ti-vpe/vpe.c +1 −1
  596. drivers/media/platform/vim2m.c +1 −1
  597. drivers/media/platform/vivid/vivid-core.c +33 −30
  598. drivers/media/platform/vivid/vivid-ctrls.c +2 −1
  599. drivers/media/platform/vivid/vivid-vid-cap.c +2 −2
  600. drivers/media/platform/vsp1/vsp1.h +2 −0
  601. drivers/media/platform/vsp1/vsp1_bru.c +27 −9
  602. drivers/media/platform/vsp1/vsp1_clu.c +39 −23
  603. drivers/media/platform/vsp1/vsp1_dl.c +107 −19
  604. drivers/media/platform/vsp1/vsp1_dl.h +1 −0
  605. drivers/media/platform/vsp1/vsp1_drm.c +12 −14
  606. drivers/media/platform/vsp1/vsp1_drv.c +38 −7
  607. drivers/media/platform/vsp1/vsp1_entity.c +19 −3
  608. drivers/media/platform/vsp1/vsp1_entity.h +19 −6
  609. drivers/media/platform/vsp1/vsp1_hsit.c +14 −6
  610. drivers/media/platform/vsp1/vsp1_lif.c +14 −6
  611. drivers/media/platform/vsp1/vsp1_lut.c +28 −14
  612. drivers/media/platform/vsp1/vsp1_pipe.c +11 −2
  613. drivers/media/platform/vsp1/vsp1_pipe.h +10 −1
  614. drivers/media/platform/vsp1/vsp1_regs.h +2 −0
  615. drivers/media/platform/vsp1/vsp1_rpf.c +71 −38
  616. drivers/media/platform/vsp1/vsp1_rwpf.c +54 −29
  617. drivers/media/platform/vsp1/vsp1_rwpf.h +0 −13
  618. drivers/media/platform/vsp1/vsp1_sru.c +42 −8
  619. drivers/media/platform/vsp1/vsp1_uds.c +59 −12
  620. drivers/media/platform/vsp1/vsp1_video.c +174 −18
  621. drivers/media/platform/vsp1/vsp1_wpf.c +82 −50
  622. drivers/media/platform/xilinx/xilinx-dma.c +1 −1
  623. drivers/media/radio/si470x/radio-si470x-i2c.c +0 −1
  624. drivers/media/radio/si4713/radio-usb-si4713.c +1 −1
  625. drivers/media/rc/igorplugusb.c +2 −1
  626. drivers/media/rc/img-ir/img-ir-nec.c +4 −2
  627. drivers/media/rc/ir-nec-decoder.c +6 −2
  628. drivers/media/rc/ir-rc6-decoder.c +2 −2
  629. drivers/media/rc/nuvoton-cir.c +14 −26
  630. drivers/media/rc/rc-ir-raw.c +7 −2
  631. drivers/media/rc/rc-main.c +7 −6
  632. drivers/media/rc/redrat3.c +54 −13
  633. drivers/media/rc/streamzap.c +1 −1
  634. drivers/media/spi/Kconfig +14 −0
  635. drivers/media/spi/Makefile +1 −0
  636. drivers/media/spi/gs1662.c +478 −0
  637. drivers/media/tuners/mt2063.c +1 −1
  638. drivers/media/tuners/mt20xx.c +2 −2
  639. drivers/media/tuners/mxl5007t.c +1 −1
  640. drivers/media/tuners/tda18271-fe.c +6 −5
  641. drivers/media/tuners/tda18271-priv.h +2 −0
  642. drivers/media/tuners/tda827x.c +2 −2
  643. drivers/media/tuners/tea5761.c +1 −1
  644. drivers/media/tuners/tea5767.c +7 −4
  645. drivers/media/tuners/tuner-simple.c +1 −1
  646. drivers/media/usb/airspy/airspy.c +1 −1
  647. drivers/media/usb/au0828/au0828-input.c +2 −1
  648. drivers/media/usb/au0828/au0828-video.c +1 −1
  649. drivers/media/usb/cx231xx/cx231xx-audio.c +1 −1
  650. drivers/media/usb/cx231xx/cx231xx-avcore.c +4 −1
  651. drivers/media/usb/cx231xx/cx231xx-cards.c +3 −3
  652. drivers/media/usb/cx231xx/cx231xx-core.c +54 −13
  653. drivers/media/usb/cx231xx/cx231xx-dvb.c +56 −26
  654. drivers/media/usb/cx231xx/cx231xx-i2c.c +2 −2
  655. drivers/media/usb/dvb-usb-v2/af9015.c +6 −2
  656. drivers/media/usb/dvb-usb-v2/af9035.c +7 −2
  657. drivers/media/usb/dvb-usb-v2/az6007.c +9 −4
  658. drivers/media/usb/dvb-usb-v2/dvb_usb_core.c +0 −2
  659. drivers/media/usb/dvb-usb-v2/lmedm04.c +3 −2
  660. drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c +1 −1
  661. drivers/media/usb/dvb-usb-v2/rtl28xxu.c +7 −2
  662. drivers/media/usb/dvb-usb/Kconfig +16 −5
  663. drivers/media/usb/dvb-usb/Makefile +7 −4
  664. drivers/media/usb/dvb-usb/dib0700_core.c +3 −1
  665. drivers/media/usb/dvb-usb/dibusb-common.c +0 −158
  666. drivers/media/usb/dvb-usb/dibusb-mc-common.c +168 −0
  667. drivers/media/usb/dvb-usb/dtt200u.c +4 −1
  668. drivers/media/usb/em28xx/em28xx-audio.c +1 −1
  669. drivers/media/usb/em28xx/em28xx-i2c.c +1 −1
  670. drivers/media/usb/em28xx/em28xx-video.c +1 −1
  671. drivers/media/usb/go7007/go7007-i2c.c +1 −1
  672. drivers/media/usb/go7007/go7007-usb.c +1 −1
  673. drivers/media/usb/go7007/go7007-v4l2.c +1 −1
  674. drivers/media/usb/go7007/snd-go7007.c +1 −1
  675. drivers/media/usb/gspca/finepix.c +2 −6
  676. drivers/media/usb/gspca/jl2005bcd.c +2 −6
  677. drivers/media/usb/gspca/sonixj.c +4 −9
  678. drivers/media/usb/gspca/vicam.c +2 −6
  679. drivers/media/usb/hackrf/hackrf.c +2 −2
  680. drivers/media/usb/hdpvr/hdpvr-i2c.c +2 −2
  681. drivers/media/usb/msi2500/msi2500.c +1 −1
  682. drivers/media/usb/pvrusb2/pvrusb2-hdw-internal.h +0 −1
  683. drivers/media/usb/pvrusb2/pvrusb2-hdw.c +7 −16
  684. drivers/media/usb/pvrusb2/pvrusb2-i2c-core.c +2 −1
  685. drivers/media/usb/pvrusb2/pvrusb2-v4l2.c +51 −30
  686. drivers/media/usb/pwc/pwc-if.c +1 −1
  687. drivers/media/usb/s2255/s2255drv.c +1 −1
  688. drivers/media/usb/stk1160/stk1160-i2c.c +1 −1
  689. drivers/media/usb/stk1160/stk1160-v4l.c +1 −1
  690. drivers/media/usb/tm6000/tm6000-alsa.c +1 −1
  691. drivers/media/usb/ttusb-dec/ttusb_dec.c +18 −12
  692. drivers/media/usb/usbtv/usbtv-audio.c +1 −1
  693. drivers/media/usb/usbtv/usbtv-video.c +1 −1
  694. drivers/media/usb/uvc/uvc_queue.c +1 −1
  695. drivers/media/v4l2-core/v4l2-async.c +0 −7
  696. drivers/media/v4l2-core/v4l2-common.c +1 −1
  697. drivers/media/v4l2-core/v4l2-ctrls.c +1 −0
  698. drivers/media/v4l2-core/v4l2-dev.c +11 −3
  699. drivers/media/v4l2-core/v4l2-device.c +1 −4
  700. drivers/media/v4l2-core/v4l2-dv-timings.c +7 −4
  701. drivers/media/v4l2-core/v4l2-ioctl.c +35 −9
  702. drivers/media/v4l2-core/v4l2-mem2mem.c +1 −127
  703. drivers/media/v4l2-core/videobuf2-core.c +16 −262
  704. drivers/media/v4l2-core/videobuf2-dma-contig.c +9 −0
  705. drivers/media/v4l2-core/videobuf2-dma-sg.c +13 −6
  706. drivers/media/v4l2-core/videobuf2-v4l2.c +0 −142
  707. drivers/media/v4l2-core/videobuf2-vmalloc.c +8 −5
  708. drivers/staging/media/Kconfig +2 −2
  709. drivers/staging/media/Makefile +1 −1
  710. drivers/staging/media/cec/Kconfig +0 −3
  711. drivers/staging/media/cec/cec-adap.c +0 −4
  712. drivers/staging/media/cec/cec-core.c +1 −2
  713. drivers/staging/media/lirc/lirc_parallel.c +6 −4
  714. drivers/staging/media/omap4iss/iss.c +6 −2
  715. drivers/staging/media/omap4iss/iss_video.c +99 −0
  716. drivers/staging/media/pulse8-cec/pulse8-cec.c +325 −77
  717. drivers/staging/media/s5p-cec/s5p_cec.c +3 −16
  718. drivers/staging/media/st-cec/Kconfig +8 −0
  719. drivers/staging/media/st-cec/Makefile +1 −0
  720. drivers/staging/media/st-cec/stih-cec.c +380 −0
  721. drivers/staging/media/tw686x-kh/Kconfig +0 −17
  722. drivers/staging/media/tw686x-kh/Makefile +0 −3
  723. drivers/staging/media/tw686x-kh/TODO +0 −6
  724. drivers/staging/media/tw686x-kh/tw686x-kh-core.c +0 −140
  725. drivers/staging/media/tw686x-kh/tw686x-kh-regs.h +0 −103
  726. drivers/staging/media/tw686x-kh/tw686x-kh-video.c +0 −813
  727. drivers/staging/media/tw686x-kh/tw686x-kh.h +0 −117
  728. include/linux/platform_data/media/camera-pxa.h +2 −0
  729. include/media/drv-intf/sh_mobile_ceu.h +0 −1
  730. include/media/drv-intf/sh_mobile_csi2.h +0 −48
  731. include/media/i2c/smiapp.h +1 −6
  732. include/media/media-device.h +85 −46
  733. include/media/media-devnode.h +3 −2
  734. include/media/media-entity.h +160 −88
  735. include/media/rc-core.h +1 −1
  736. include/media/rc-map.h +80 −25
  737. include/media/rcar-fcp.h +1 −1
  738. include/media/soc_camera.h +2 −5
  739. include/media/v4l2-ctrls.h +50 −12
  740. include/media/v4l2-dev.h +10 −8
  741. include/media/v4l2-device.h +34 −34
  742. include/media/v4l2-dv-timings.h +2 −2
  743. include/media/v4l2-event.h +2 −1
  744. include/media/v4l2-flash-led-class.h +11 −4
  745. include/media/v4l2-ioctl.h +304 −206
  746. include/media/v4l2-mc.h +2 −2
  747. include/media/v4l2-mem2mem.h +246 −18
  748. include/media/v4l2-subdev.h +12 −20
  749. include/media/videobuf2-core.h +345 −35
  750. include/media/videobuf2-v4l2.h +179 −3
  751. include/media/vsp1.h +1 −1
  752. include/uapi/linux/dvb/video.h +2 −1
  753. include/uapi/linux/media-bus-format.h +9 −1
  754. include/uapi/linux/media.h +1 −0
  755. include/uapi/linux/v4l2-dv-timings.h +12 −0
  756. include/uapi/linux/videodev2.h +30 −8
Documentation/conf.py+2−0
@@ -342,6 +342,8 @@ latex_documents = [ · 341 unmodified lines
342342 'The kernel development community', 'manual'),
343343 ('gpu/index', 'gpu.tex', 'Linux GPU Driver Developer\'s Guide',
344344 'The kernel development community', 'manual'),
345+ ('media/index', 'media.tex', 'Linux Media Subsystem Documentation',
346+ 'The kernel development community', 'manual'),
345347 ]
346348
347349 # The name of an image file (relative to this directory) to place at the top of
Documentation/devicetree/bindings/media/atmel-isc.txt+65−0
@@ -0,0 +1,65 @@
1+Atmel Image Sensor Controller (ISC)
2+----------------------------------------------
3+
4+Required properties for ISC:
5+- compatible
6+ Must be "atmel,sama5d2-isc".
7+- reg
8+ Physical base address and length of the registers set for the device.
9+- interrupts
10+ Should contain IRQ line for the ISC.
11+- clocks
12+ List of clock specifiers, corresponding to entries in
13+ the clock-names property;
14+ Please refer to clock-bindings.txt.
15+- clock-names
16+ Required elements: "hclock", "iscck", "gck".
17+- #clock-cells
18+ Should be 0.
19+- clock-output-names
20+ Should be "isc-mck".
21+- pinctrl-names, pinctrl-0
22+ Please refer to pinctrl-bindings.txt.
23+
24+ISC supports a single port node with parallel bus. It should contain one
25+'port' child node with child 'endpoint' node. Please refer to the bindings
26+defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
27+
28+Example:
29+isc: isc@f0008000 {
30+ compatible = "atmel,sama5d2-isc";
31+ reg = <0xf0008000 0x4000>;
32+ interrupts = <46 IRQ_TYPE_LEVEL_HIGH 5>;
33+ clocks = <&isc_clk>, <&iscck>, <&isc_gclk>;
34+ clock-names = "hclock", "iscck", "gck";
35+ #clock-cells = <0>;
36+ clock-output-names = "isc-mck";
37+ pinctrl-names = "default";
38+ pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>;
39+
40+ port {
41+ isc_0: endpoint {
42+ remote-endpoint = <&ov7740_0>;
43+ hsync-active = <1>;
44+ vsync-active = <0>;
45+ pclk-sample = <1>;
46+ };
47+ };
48+};
49+
50+i2c1: i2c@fc028000 {
51+ ov7740: camera@21 {
52+ compatible = "ovti,ov7740";
53+ reg = <0x21>;
54+ clocks = <&isc>;
55+ clock-names = "xvclk";
56+ assigned-clocks = <&isc>;
57+ assigned-clock-rates = <24000000>;
58+
59+ port {
60+ ov7740_0: endpoint {
61+ remote-endpoint = <&isc_0>;
62+ };
63+ };
64+ };
65+};
Documentation/devicetree/bindings/media/exynos4-fimc-is.txt+4−3
@@ -16,9 +16,10 @@ Required properties: · 15 unmodified lines
1616 - clocks : list of clock specifiers, corresponding to entries in
1717 clock-names property;
1818 - clock-names : must contain "ppmuispx", "ppmuispx", "lite0", "lite1"
19− "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "uart",
20− "ispdiv0", "ispdiv1", "mcuispdiv0", "mcuispdiv1", "aclk200",
21− "div_aclk200", "aclk400mcuisp", "div_aclk400mcuisp" entries,
19+ "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "gicisp",
20+ "pwm_isp", "mcuctl_isp", "uart", "ispdiv0", "ispdiv1",
21+ "mcuispdiv0", "mcuispdiv1", "aclk200", "div_aclk200",
22+ "aclk400mcuisp", "div_aclk400mcuisp" entries,
2223 matching entries in the clocks property.
2324 pmu subnode
2425 -----------
Documentation/devicetree/bindings/media/i2c/ad5820.txt+19−0
@@ -0,0 +1,19 @@
1+* Analog Devices AD5820 autofocus coil
2+
3+Required Properties:
4+
5+ - compatible: Must contain "adi,ad5820"
6+
7+ - reg: I2C slave address
8+
9+ - VANA-supply: supply of voltage for VANA pin
10+
11+Example:
12+
13+ ad5820: coil@c {
14+ compatible = "adi,ad5820";
15+ reg = <0x0c>;
16+
17+ VANA-supply = <&vaux4>;
18+ };
19+
Documentation/devicetree/bindings/media/i2c/adv7180.txt+5−0
@@ -15,6 +15,11 @@ Required Properties : · 14 unmodified lines
1515 "adi,adv7282"
1616 "adi,adv7282-m"
1717
18+Optional Properties :
19+- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
20+ if any.
21+
22+
1823 Example:
1924
2025 i2c0@1c22000 {
Documentation/devicetree/bindings/media/renesas,fcp.txt+8−1
@@ -7,12 +7,14 @@ conversion of AXI transactions in order to reduce the memory bandwidth. · 6 unmodified lines
77
88 There are three types of FCP: FCP for Codec (FCPC), FCP for VSP (FCPV) and FCP
99 for FDP (FCPF). Their configuration and behaviour depend on the module they
10−are paired with. These DT bindings currently support the FCPV only.
10+are paired with. These DT bindings currently support the FCPV and FCPF.
1111
1212 - compatible: Must be one or more of the following
1313
1414 - "renesas,r8a7795-fcpv" for R8A7795 (R-Car H3) compatible 'FCP for VSP'
15+ - "renesas,r8a7795-fcpf" for R8A7795 (R-Car H3) compatible 'FCP for FDP'
1516 - "renesas,fcpv" for generic compatible 'FCP for VSP'
17+ - "renesas,fcpf" for generic compatible 'FCP for FDP'
1618
1719 When compatible with the generic version, nodes must list the
1820 SoC-specific version corresponding to the platform first, followed by the
@@ -21,6 +23,10 @@ are paired with. These DT bindings currently support the FCPV only. · 2 unmodified lines
2123 - reg: the register base and size for the device registers
2224 - clocks: Reference to the functional clock
2325
26+Optional properties:
27+ - power-domains : power-domain property defined with a power domain specifier
28+ to respective power domain.
29+
2430
2531 Device node example
2632 -------------------
@@ -29,4 +35,5 @@ Device node example · 2 unmodified lines
2935 compatible = "renesas,r8a7795-fcpv", "renesas,fcpv";
3036 reg = <0 0xfea2f000 0 0x200>;
3137 clocks = <&cpg CPG_MOD 602>;
38+ power-domains = <&sysc R8A7795_PD_A3VP>;
3239 };
Documentation/devicetree/bindings/media/st,st-hva.txt+24−0
@@ -0,0 +1,24 @@
1+st-hva: multi-format video encoder for STMicroelectronics SoC.
2+
3+Required properties:
4+- compatible: should be "st,st-hva".
5+- reg: HVA physical address location and length, esram address location and
6+ length.
7+- reg-names: names of the registers listed in registers property in the same
8+ order.
9+- interrupts: HVA interrupt number.
10+- clocks: from common clock binding: handle hardware IP needed clocks, the
11+ number of clocks may depend on the SoC type.
12+ See ../clock/clock-bindings.txt for details.
13+- clock-names: names of the clocks listed in clocks property in the same order.
14+
15+Example:
16+ hva@8c85000{
17+ compatible = "st,st-hva";
18+ reg = <0x8c85000 0x400>, <0x6000000 0x40000>;
19+ reg-names = "hva_registers", "hva_esram";
20+ interrupts = <GIC_SPI 58 IRQ_TYPE_NONE>,
21+ <GIC_SPI 59 IRQ_TYPE_NONE>;
22+ clock-names = "clk_hva";
23+ clocks = <&clk_s_c0_flexgen CLK_HVA>;
24+ };
Documentation/devicetree/bindings/media/stih-cec.txt+25−0
@@ -0,0 +1,25 @@
1+STMicroelectronics STIH4xx HDMI CEC driver
2+
3+Required properties:
4+ - compatible : value should be "st,stih-cec"
5+ - reg : Physical base address of the IP registers and length of memory
6+ mapped region.
7+ - clocks : from common clock binding: handle to HDMI CEC clock
8+ - interrupts : HDMI CEC interrupt number to the CPU.
9+ - pinctrl-names: Contains only one value - "default"
10+ - pinctrl-0: Specifies the pin control groups used for CEC hardware.
11+ - resets: Reference to a reset controller
12+
13+Example for STIH407:
14+
15+sti-cec@094a087c {
16+ compatible = "st,stih-cec";
17+ reg = <0x94a087c 0x64>;
18+ clocks = <&clk_sysin>;
19+ clock-names = "cec-clk";
20+ interrupts = <GIC_SPI 140 IRQ_TYPE_NONE>;
21+ interrupt-names = "cec-irq";
22+ pinctrl-names = "default";
23+ pinctrl-0 = <&pinctrl_cec0_default>;
24+ resets = <&softreset STIH407_LPM_SOFTRESET>;
25+};
Documentation/media/audio.h.rst.exceptions+3−3
@@ -2,7 +2,7 @@ · 1 unmodified line
22 ignore define _DVBAUDIO_H_
33
44 # Typedef pointing to structs
5−replace typedef audio_karaoke_t audio-karaoke
5+replace typedef audio_karaoke_t :c:type:`audio_karaoke`
66
77 # Undocumented audio caps, as this is a deprecated API anyway
88 ignore define AUDIO_CAP_DTS
@@ -16,5 +16,5 @@ ignore define AUDIO_CAP_SDDS · 7 unmodified lines
1616 ignore define AUDIO_CAP_AC3
1717
1818 # some typedefs should point to struct/enums
19−replace typedef audio_mixer_t audio-mixer
20−replace typedef audio_status_t audio-status
19+replace typedef audio_mixer_t :c:type:`audio_mixer`
20+replace typedef audio_status_t :c:type:`audio_status`
Documentation/media/ca.h.rst.exceptions+16−16
@@ -2,23 +2,23 @@ · 1 unmodified line
22 ignore define _DVBCA_H_
33
44 # struct ca_slot_info defines
5−replace define CA_CI ca-slot-info
6−replace define CA_CI_LINK ca-slot-info
7−replace define CA_CI_PHYS ca-slot-info
8−replace define CA_DESCR ca-slot-info
9−replace define CA_SC ca-slot-info
10−replace define CA_CI_MODULE_PRESENT ca-slot-info
11−replace define CA_CI_MODULE_READY ca-slot-info
5+replace define CA_CI :c:type:`ca_slot_info`
6+replace define CA_CI_LINK :c:type:`ca_slot_info`
7+replace define CA_CI_PHYS :c:type:`ca_slot_info`
8+replace define CA_DESCR :c:type:`ca_slot_info`
9+replace define CA_SC :c:type:`ca_slot_info`
10+replace define CA_CI_MODULE_PRESENT :c:type:`ca_slot_info`
11+replace define CA_CI_MODULE_READY :c:type:`ca_slot_info`
1212
1313 # struct ca_descr_info defines
14−replace define CA_ECD ca-descr-info
15−replace define CA_NDS ca-descr-info
16−replace define CA_DSS ca-descr-info
14+replace define CA_ECD :c:type:`ca_descr_info`
15+replace define CA_NDS :c:type:`ca_descr_info`
16+replace define CA_DSS :c:type:`ca_descr_info`
1717
1818 # some typedefs should point to struct/enums
19−replace typedef ca_pid_t ca-pid
20−replace typedef ca_slot_info_t ca-slot-info
21−replace typedef ca_descr_info_t ca-descr-info
22−replace typedef ca_caps_t ca-caps
23−replace typedef ca_msg_t ca-msg
24−replace typedef ca_descr_t ca-descr
19+replace typedef ca_pid_t :c:type:`ca_pid`
20+replace typedef ca_slot_info_t :c:type:`ca_slot_info`
21+replace typedef ca_descr_info_t :c:type:`ca_descr_info`
22+replace typedef ca_caps_t :c:type:`ca_caps`
23+replace typedef ca_msg_t :c:type:`ca_msg`
24+replace typedef ca_descr_t :c:type:`ca_descr`
Documentation/media/cec.h.rst.exceptions+0−6
@@ -1,12 +1,6 @@
11 # Ignore header name
22 ignore define _CEC_UAPI_H
33
4−# Rename some symbols, to avoid namespace conflicts
5−replace struct cec_event_state_change cec-event-state-change_s
6−replace struct cec_event_lost_msgs cec-event-lost-msgs_s
7−replace enum cec_mode_initiator cec-mode-initiator_e
8−replace enum cec_mode_follower cec-mode-follower_e
9−
104 # define macros to ignore
115
126 ignore define CEC_MAX_MSG_SIZE
Documentation/media/conf_nitpick.py+36−20
@@ -21,10 +21,14 @@ nitpick_ignore = [ · 20 unmodified lines
2121 ("c:func", "clock_gettime"),
2222 ("c:func", "close"),
2323 ("c:func", "container_of"),
24+ ("c:func", "copy_from_user"),
25+ ("c:func", "copy_to_user"),
2426 ("c:func", "determine_valid_ioctls"),
2527 ("c:func", "ERR_PTR"),
28+ ("c:func", "i2c_new_device"),
2629 ("c:func", "ioctl"),
2730 ("c:func", "IS_ERR"),
31+ ("c:func", "KERNEL_VERSION"),
2832 ("c:func", "mmap"),
2933 ("c:func", "open"),
3034 ("c:func", "pci_name"),
@@ -36,58 +40,70 @@ nitpick_ignore = [ · 5 unmodified lines
3640 ("c:func", "struct fd_set"),
3741 ("c:func", "struct pollfd"),
3842 ("c:func", "usb_make_path"),
43+ ("c:func", "wait_finish"),
44+ ("c:func", "wait_prepare"),
3945 ("c:func", "write"),
46+
4047 ("c:type", "atomic_t"),
4148 ("c:type", "bool"),
49+ ("c:type", "boolean"),
4250 ("c:type", "buf_queue"),
4351 ("c:type", "device"),
4452 ("c:type", "device_driver"),
4553 ("c:type", "device_node"),
4654 ("c:type", "enum"),
55+ ("c:type", "fd"),
56+ ("c:type", "fd_set"),
4757 ("c:type", "file"),
4858 ("c:type", "i2c_adapter"),
4959 ("c:type", "i2c_board_info"),
5060 ("c:type", "i2c_client"),
61+ ("c:type", "int16_t"),
5162 ("c:type", "ktime_t"),
5263 ("c:type", "led_classdev_flash"),
5364 ("c:type", "list_head"),
5465 ("c:type", "lock_class_key"),
5566 ("c:type", "module"),
5667 ("c:type", "mutex"),
68+ ("c:type", "NULL"),
69+ ("c:type", "off_t"),
5770 ("c:type", "pci_dev"),
5871 ("c:type", "pdvbdev"),
72+ ("c:type", "poll_table"),
73+ ("c:type", "platform_device"),
74+ ("c:type", "pollfd"),
5975 ("c:type", "poll_table_struct"),
6076 ("c:type", "s32"),
6177 ("c:type", "s64"),
6278 ("c:type", "sd"),
79+ ("c:type", "size_t"),
6380 ("c:type", "spi_board_info"),
6481 ("c:type", "spi_device"),
6582 ("c:type", "spi_master"),
66− ("c:type", "struct fb_fix_screeninfo"),
67− ("c:type", "struct pollfd"),
68− ("c:type", "struct timeval"),
69− ("c:type", "struct video_capability"),
83+ ("c:type", "ssize_t"),
84+ ("c:type", "fb_fix_screeninfo"),
85+ ("c:type", "pollfd"),
86+ ("c:type", "timeval"),
87+ ("c:type", "video_capability"),
88+ ("c:type", "timeval"),
89+ ("c:type", "__u16"),
7090 ("c:type", "u16"),
91+ ("c:type", "__u32"),
7192 ("c:type", "u32"),
93+ ("c:type", "__u64"),
7294 ("c:type", "u64"),
7395 ("c:type", "u8"),
96+ ("c:type", "uint16_t"),
97+ ("c:type", "uint32_t"),
7498 ("c:type", "union"),
99+ ("c:type", "__user"),
75100 ("c:type", "usb_device"),
101+ ("c:type", "usb_interface"),
102+ ("c:type", "v4l2_std_id"),
103+ ("c:type", "video_system_t"),
104+ ("c:type", "vm_area_struct"),
105+
106+ # Opaque structures
76107
77− ("cpp:type", "boolean"),
78− ("cpp:type", "fd"),
79− ("cpp:type", "fd_set"),
80− ("cpp:type", "int16_t"),
81− ("cpp:type", "NULL"),
82− ("cpp:type", "off_t"),
83− ("cpp:type", "pollfd"),
84− ("cpp:type", "size_t"),
85− ("cpp:type", "ssize_t"),
86− ("cpp:type", "timeval"),
87− ("cpp:type", "__u16"),
88− ("cpp:type", "__u32"),
89− ("cpp:type", "__u64"),
90− ("cpp:type", "uint16_t"),
91− ("cpp:type", "uint32_t"),
92− ("cpp:type", "video_system_t"),
108+ ("c:type", "v4l2_m2m_dev"),
93109 ]
Documentation/media/dmx.h.rst.exceptions+44−41
@@ -4,29 +4,29 @@ ignore define _UAPI_DVBDMX_H_ · 3 unmodified lines
44 # Ignore limit constants
55 ignore define DMX_FILTER_SIZE
66
7−# dmx-pes-type-t enum symbols
8−replace enum dmx_ts_pes dmx-pes-type-t
9−replace symbol DMX_PES_AUDIO0 dmx-pes-type-t
10−replace symbol DMX_PES_VIDEO0 dmx-pes-type-t
11−replace symbol DMX_PES_TELETEXT0 dmx-pes-type-t
12−replace symbol DMX_PES_SUBTITLE0 dmx-pes-type-t
13−replace symbol DMX_PES_PCR0 dmx-pes-type-t
14−replace symbol DMX_PES_AUDIO1 dmx-pes-type-t
15−replace symbol DMX_PES_VIDEO1 dmx-pes-type-t
16−replace symbol DMX_PES_TELETEXT1 dmx-pes-type-t
17−replace symbol DMX_PES_SUBTITLE1 dmx-pes-type-t
18−replace symbol DMX_PES_PCR1 dmx-pes-type-t
19−replace symbol DMX_PES_AUDIO2 dmx-pes-type-t
20−replace symbol DMX_PES_VIDEO2 dmx-pes-type-t
21−replace symbol DMX_PES_TELETEXT2 dmx-pes-type-t
22−replace symbol DMX_PES_SUBTITLE2 dmx-pes-type-t
23−replace symbol DMX_PES_PCR2 dmx-pes-type-t
24−replace symbol DMX_PES_AUDIO3 dmx-pes-type-t
25−replace symbol DMX_PES_VIDEO3 dmx-pes-type-t
26−replace symbol DMX_PES_TELETEXT3 dmx-pes-type-t
27−replace symbol DMX_PES_SUBTITLE3 dmx-pes-type-t
28−replace symbol DMX_PES_PCR3 dmx-pes-type-t
29−replace symbol DMX_PES_OTHER dmx-pes-type-t
7+# dmx_pes_type_t enum symbols
8+replace enum dmx_ts_pes :c:type:`dmx_pes_type`
9+replace symbol DMX_PES_AUDIO0 :c:type:`dmx_pes_type`
10+replace symbol DMX_PES_VIDEO0 :c:type:`dmx_pes_type`
11+replace symbol DMX_PES_TELETEXT0 :c:type:`dmx_pes_type`
12+replace symbol DMX_PES_SUBTITLE0 :c:type:`dmx_pes_type`
13+replace symbol DMX_PES_PCR0 :c:type:`dmx_pes_type`
14+replace symbol DMX_PES_AUDIO1 :c:type:`dmx_pes_type`
15+replace symbol DMX_PES_VIDEO1 :c:type:`dmx_pes_type`
16+replace symbol DMX_PES_TELETEXT1 :c:type:`dmx_pes_type`
17+replace symbol DMX_PES_SUBTITLE1 :c:type:`dmx_pes_type`
18+replace symbol DMX_PES_PCR1 :c:type:`dmx_pes_type`
19+replace symbol DMX_PES_AUDIO2 :c:type:`dmx_pes_type`
20+replace symbol DMX_PES_VIDEO2 :c:type:`dmx_pes_type`
21+replace symbol DMX_PES_TELETEXT2 :c:type:`dmx_pes_type`
22+replace symbol DMX_PES_SUBTITLE2 :c:type:`dmx_pes_type`
23+replace symbol DMX_PES_PCR2 :c:type:`dmx_pes_type`
24+replace symbol DMX_PES_AUDIO3 :c:type:`dmx_pes_type`
25+replace symbol DMX_PES_VIDEO3 :c:type:`dmx_pes_type`
26+replace symbol DMX_PES_TELETEXT3 :c:type:`dmx_pes_type`
27+replace symbol DMX_PES_SUBTITLE3 :c:type:`dmx_pes_type`
28+replace symbol DMX_PES_PCR3 :c:type:`dmx_pes_type`
29+replace symbol DMX_PES_OTHER :c:type:`dmx_pes_type`
3030
3131 # Ignore obsolete symbols
3232 ignore define DMX_PES_AUDIO
@@ -36,28 +36,31 @@ ignore define DMX_PES_SUBTITLE · 3 unmodified lines
3636 ignore define DMX_PES_PCR
3737
3838 # dmx_input_t symbols
39−replace enum dmx_input dmx-input-t
40−replace symbol DMX_IN_FRONTEND dmx-input-t
41−replace symbol DMX_IN_DVR dmx-input-t
39+replace enum dmx_input :c:type:`dmx_input`
40+replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
41+replace symbol DMX_IN_DVR :c:type:`dmx_input`
4242
4343 # dmx_source_t symbols
44−replace enum dmx_source dmx-source-t
45−replace symbol DMX_SOURCE_FRONT0 dmx-source-t
46−replace symbol DMX_SOURCE_FRONT1 dmx-source-t
47−replace symbol DMX_SOURCE_FRONT2 dmx-source-t
48−replace symbol DMX_SOURCE_FRONT3 dmx-source-t
49−replace symbol DMX_SOURCE_DVR0 dmx-source-t
50−replace symbol DMX_SOURCE_DVR1 dmx-source-t
51−replace symbol DMX_SOURCE_DVR2 dmx-source-t
52−replace symbol DMX_SOURCE_DVR3 dmx-source-t
44+replace enum dmx_source :c:type:`dmx_source`
45+replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source`
46+replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source`
47+replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source`
48+replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source`
49+replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source`
50+replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source`
51+replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source`
52+replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source`
5353
5454
5555 # Flags for struct dmx_sct_filter_params
56−replace define DMX_CHECK_CRC dmx-sct-filter-params
57−replace define DMX_ONESHOT dmx-sct-filter-params
58−replace define DMX_IMMEDIATE_START dmx-sct-filter-params
59−replace define DMX_KERNEL_CLIENT dmx-sct-filter-params
56+replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
57+replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
58+replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
59+replace define DMX_KERNEL_CLIENT :c:type:`dmx_sct_filter_params`
6060
6161 # some typedefs should point to struct/enums
62−replace typedef dmx_caps_t dmx-caps
63−replace typedef dmx_filter_t dmx-filter
62+replace typedef dmx_caps_t :c:type:`dmx_caps`
63+replace typedef dmx_filter_t :c:type:`dmx_filter`
64+replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
65+replace typedef dmx_input_t :c:type:`dmx_input`
66+replace typedef dmx_source_t :c:type:`dmx_source`
Documentation/media/frontend.h.rst.exceptions+4−4
@@ -26,22 +26,22 @@ ignore define MAX_DTV_STATS · 25 unmodified lines
2626 ignore define DTV_IOCTL_MAX_MSGS
2727
2828 # Stats enum is documented altogether
29−replace enum fecap_scale_params frontend-stat-properties
29+replace enum fecap_scale_params :ref:`frontend-stat-properties`
3030 replace symbol FE_SCALE_COUNTER frontend-stat-properties
3131 replace symbol FE_SCALE_DECIBEL frontend-stat-properties
3232 replace symbol FE_SCALE_NOT_AVAILABLE frontend-stat-properties
3333 replace symbol FE_SCALE_RELATIVE frontend-stat-properties
3434
3535 # the same reference is used for both get and set ioctls
36−replace ioctl FE_SET_PROPERTY FE_GET_PROPERTY
36+replace ioctl FE_SET_PROPERTY :c:type:`FE_GET_PROPERTY`
3737
3838 # Ignore struct used only internally at Kernel
3939 ignore struct dtv_cmds_h
4040
4141 # Typedefs that use the enum reference
42−replace typedef fe_sec_voltage_t fe-sec-voltage
42+replace typedef fe_sec_voltage_t :c:type:`fe_sec_voltage`
4343
4444 # Replaces for flag constants
45−replace define FE_TUNE_MODE_ONESHOT fe_set_frontend_tune_mode
45+replace define FE_TUNE_MODE_ONESHOT :c:func:`FE_SET_FRONTEND_TUNE_MODE`
4646 replace define LNA_AUTO dtv-lna
4747 replace define NO_STREAM_ID_FILTER dtv-stream-id
Documentation/media/index.rst+5−0
@@ -1,6 +1,11 @@
11 Linux Media Subsystem Documentation
22 ===================================
33
4+.. Sphinx 1.4.x has a definition for DUrole that doesn't work on alltt blocks
5+.. raw:: latex
6+
7+ \renewcommand*{\DUrole}[2]{ #2 }
8+
49 Contents:
510
611 .. toctree::
Documentation/media/intro.rst+1−1
@@ -30,7 +30,7 @@ divided into five parts. · 29 unmodified lines
3030 called as DVB API, in fact it covers several different video standards
3131 including DVB-T/T2, DVB-S/S2, DVB-C, ATSC, ISDB-T, ISDB-S, DTMB, etc. The
3232 complete list of supported standards can be found at
33− :ref:`fe-delivery-system-t`.
33+ :c:type:`fe_delivery_system`.
3434
3535 3. The :ref:`third part <remote_controllers>` covers the Remote Controller API.
3636
Documentation/media/kapi/cec-core.rstrenamed from Documentation/cec.txt+94−53
@@ -36,39 +36,50 @@ CEC Adapter · 35 unmodified lines
3636 The struct cec_adapter represents the CEC adapter hardware. It is created by
3737 calling cec_allocate_adapter() and deleted by calling cec_delete_adapter():
3838
39−struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
39+.. c:function::
40+ struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops,
4041 void *priv, const char *name, u32 caps, u8 available_las,
4142 struct device *parent);
42−void cec_delete_adapter(struct cec_adapter *adap);
43+
44+.. c:function::
45+ void cec_delete_adapter(struct cec_adapter *adap);
4346
4447 To create an adapter you need to pass the following information:
4548
46−ops: adapter operations which are called by the CEC framework and that you
47−have to implement.
49+ops:
50+ adapter operations which are called by the CEC framework and that you
51+ have to implement.
4852
49−priv: will be stored in adap->priv and can be used by the adapter ops.
53+priv:
54+ will be stored in adap->priv and can be used by the adapter ops.
5055
51−name: the name of the CEC adapter. Note: this name will be copied.
56+name:
57+ the name of the CEC adapter. Note: this name will be copied.
5258
53−caps: capabilities of the CEC adapter. These capabilities determine the
59+caps:
60+ capabilities of the CEC adapter. These capabilities determine the
5461 capabilities of the hardware and which parts are to be handled
5562 by userspace and which parts are handled by kernelspace. The
5663 capabilities are returned by CEC_ADAP_G_CAPS.
5764
58−available_las: the number of simultaneous logical addresses that this
65+available_las:
66+ the number of simultaneous logical addresses that this
5967 adapter can handle. Must be 1 <= available_las <= CEC_MAX_LOG_ADDRS.
6068
61−parent: the parent device.
69+parent:
70+ the parent device.
6271
6372
6473 To register the /dev/cecX device node and the remote control device (if
6574 CEC_CAP_RC is set) you call:
6675
67−int cec_register_adapter(struct cec_adapter *adap);
76+.. c:function::
77+ int cec_register_adapter(struct cec_adapter \*adap);
6878
6979 To unregister the devices call:
7080
71−void cec_unregister_adapter(struct cec_adapter *adap);
81+.. c:function::
82+ void cec_unregister_adapter(struct cec_adapter \*adap);
7283
7384 Note: if cec_register_adapter() fails, then call cec_delete_adapter() to
7485 clean up. But if cec_register_adapter() succeeded, then only call
@@ -83,18 +94,23 @@ Implementing the Low-Level CEC Adapter · 8 unmodified lines
8394 The following low-level adapter operations have to be implemented in
8495 your driver:
8596
86−struct cec_adap_ops {
87− /* Low-level callbacks */
88− int (*adap_enable)(struct cec_adapter *adap, bool enable);
89− int (*adap_monitor_all_enable)(struct cec_adapter *adap, bool enable);
90− int (*adap_log_addr)(struct cec_adapter *adap, u8 logical_addr);
91− int (*adap_transmit)(struct cec_adapter *adap, u8 attempts,
92− u32 signal_free_time, struct cec_msg *msg);
93− void (*adap_log_status)(struct cec_adapter *adap);
97+.. c:type:: struct cec_adap_ops
98+
99+.. code-block:: none
100+
101+ struct cec_adap_ops
102+ {
103+ /* Low-level callbacks */
104+ int (*adap_enable)(struct cec_adapter *adap, bool enable);
105+ int (*adap_monitor_all_enable)(struct cec_adapter *adap, bool enable);
106+ int (*adap_log_addr)(struct cec_adapter *adap, u8 logical_addr);
107+ int (*adap_transmit)(struct cec_adapter *adap, u8 attempts,
108+ u32 signal_free_time, struct cec_msg *msg);
109+ void (\*adap_log_status)(struct cec_adapter *adap);
94110
95− /* High-level callbacks */
96− ...
97−};
111+ /* High-level callbacks */
112+ ...
113+ };
98114
99115 The three low-level ops deal with various aspects of controlling the CEC adapter
100116 hardware:
@@ -102,6 +118,7 @@ hardware: · 1 unmodified line
102118
103119 To enable/disable the hardware:
104120
121+.. c:function::
105122 int (*adap_enable)(struct cec_adapter *adap, bool enable);
106123
107124 This callback enables or disables the CEC hardware. Enabling the CEC hardware
@@ -115,6 +132,7 @@ Note that adap_enable must return 0 if enable is false. · 7 unmodified lines
115132
116133 To enable/disable the 'monitor all' mode:
117134
135+.. c:function::
118136 int (*adap_monitor_all_enable)(struct cec_adapter *adap, bool enable);
119137
120138 If enabled, then the adapter should be put in a mode to also monitor messages
@@ -127,6 +145,7 @@ Note that adap_monitor_all_enable must return 0 if enable is false. · 6 unmodified lines
127145
128146 To program a new logical address:
129147
148+.. c:function::
130149 int (*adap_log_addr)(struct cec_adapter *adap, u8 logical_addr);
131150
132151 If logical_addr == CEC_LOG_ADDR_INVALID then all programmed logical addresses
@@ -140,6 +159,7 @@ Note that adap_log_addr must return 0 if logical_addr is CEC_LOG_ADDR_INVALID. · 7 unmodified lines
140159
141160 To transmit a new message:
142161
162+.. c:function::
143163 int (*adap_transmit)(struct cec_adapter *adap, u8 attempts,
144164 u32 signal_free_time, struct cec_msg *msg);
145165
@@ -158,6 +178,7 @@ microseconds (one data bit period is 2.4 ms). · 12 unmodified lines
158178
159179 To log the current CEC hardware status:
160180
181+.. c:function::
161182 void (*adap_status)(struct cec_adapter *adap, struct seq_file *file);
162183
163184 This optional callback can be used to show the status of the CEC hardware.
@@ -169,29 +190,41 @@ driven) by calling into the framework in the following situations: · 5 unmodified lines
169190
170191 When a transmit finished (successfully or otherwise):
171192
172−void cec_transmit_done(struct cec_adapter *adap, u8 status, u8 arb_lost_cnt,
193+.. c:function::
194+ void cec_transmit_done(struct cec_adapter *adap, u8 status, u8 arb_lost_cnt,
173195 u8 nack_cnt, u8 low_drive_cnt, u8 error_cnt);
174196
175197 The status can be one of:
176198
177−CEC_TX_STATUS_OK: the transmit was successful.
178−CEC_TX_STATUS_ARB_LOST: arbitration was lost: another CEC initiator
179−took control of the CEC line and you lost the arbitration.
180−CEC_TX_STATUS_NACK: the message was nacked (for a directed message) or
181−acked (for a broadcast message). A retransmission is needed.
182−CEC_TX_STATUS_LOW_DRIVE: low drive was detected on the CEC bus. This
183−indicates that a follower detected an error on the bus and requested a
184−retransmission.
185−CEC_TX_STATUS_ERROR: some unspecified error occurred: this can be one of
186−the previous two if the hardware cannot differentiate or something else
187−entirely.
188−CEC_TX_STATUS_MAX_RETRIES: could not transmit the message after
189−trying multiple times. Should only be set by the driver if it has hardware
190−support for retrying messages. If set, then the framework assumes that it
191−doesn't have to make another attempt to transmit the message since the
192−hardware did that already.
193−
194−The *_cnt arguments are the number of error conditions that were seen.
199+CEC_TX_STATUS_OK:
200+ the transmit was successful.
201+
202+CEC_TX_STATUS_ARB_LOST:
203+ arbitration was lost: another CEC initiator
204+ took control of the CEC line and you lost the arbitration.
205+
206+CEC_TX_STATUS_NACK:
207+ the message was nacked (for a directed message) or
208+ acked (for a broadcast message). A retransmission is needed.
209+
210+CEC_TX_STATUS_LOW_DRIVE:
211+ low drive was detected on the CEC bus. This indicates that
212+ a follower detected an error on the bus and requested a
213+ retransmission.
214+
215+CEC_TX_STATUS_ERROR:
216+ some unspecified error occurred: this can be one of
217+ the previous two if the hardware cannot differentiate or something
218+ else entirely.
219+
220+CEC_TX_STATUS_MAX_RETRIES:
221+ could not transmit the message after trying multiple times.
222+ Should only be set by the driver if it has hardware support for
223+ retrying messages. If set, then the framework assumes that it
224+ doesn't have to make another attempt to transmit the message
225+ since the hardware did that already.
226+
227+The \*_cnt arguments are the number of error conditions that were seen.
195228 This may be 0 if no information is available. Drivers that do not support
196229 hardware retry can just set the counter corresponding to the transmit error
197230 to 1, if the hardware does support retry then either set these counters to
@@ -200,7 +233,8 @@ times, or fill in the correct values as reported by the hardware. · 2 unmodified lines
200233
201234 When a CEC message was received:
202235
203−void cec_received_msg(struct cec_adapter *adap, struct cec_msg *msg);
236+.. c:function::
237+ void cec_received_msg(struct cec_adapter *adap, struct cec_msg *msg);
204238
205239 Speaks for itself.
206240
@@ -210,17 +244,20 @@ Implementing the High-Level CEC Adapter · 3 unmodified lines
210244 The low-level operations drive the hardware, the high-level operations are
211245 CEC protocol driven. The following high-level callbacks are available:
212246
213−struct cec_adap_ops {
214− /* Low-level callbacks */
215− ...
247+.. code-block:: none
216248
217− /* High-level CEC message callback */
218− int (*received)(struct cec_adapter *adap, struct cec_msg *msg);
219−};
249+ struct cec_adap_ops {
250+ /\* Low-level callbacks \*/
251+ ...
252+
253+ /\* High-level CEC message callback \*/
254+ int (\*received)(struct cec_adapter \*adap, struct cec_msg \*msg);
255+ };
220256
221257 The received() callback allows the driver to optionally handle a newly
222258 received CEC message
223259
260+.. c:function::
224261 int (*received)(struct cec_adapter *adap, struct cec_msg *msg);
225262
226263 If the driver wants to process a CEC message, then it can implement this
@@ -234,13 +271,16 @@ CEC framework functions · 7 unmodified lines
234271
235272 CEC Adapter drivers can call the following CEC framework functions:
236273
237−int cec_transmit_msg(struct cec_adapter *adap, struct cec_msg *msg,
238− bool block);
274+.. c:function::
275+ int cec_transmit_msg(struct cec_adapter *adap, struct cec_msg *msg,
276+ bool block);
239277
240278 Transmit a CEC message. If block is true, then wait until the message has been
241279 transmitted, otherwise just queue it and return.
242280
243−void cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, bool block);
281+.. c:function::
282+ void cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr,
283+ bool block);
244284
245285 Change the physical address. This function will set adap->phys_addr and
246286 send an event if it has changed. If cec_s_log_addrs() has been called and
@@ -254,8 +294,9 @@ then the CEC adapter will be disabled. If you change a valid physical address · 7 unmodified lines
254294 to another valid physical address, then this function will first set the
255295 address to CEC_PHYS_ADDR_INVALID before enabling the new physical address.
256296
257−int cec_s_log_addrs(struct cec_adapter *adap,
258− struct cec_log_addrs *log_addrs, bool block);
297+.. c:function::
298+ int cec_s_log_addrs(struct cec_adapter *adap,
299+ struct cec_log_addrs *log_addrs, bool block);
259300
260301 Claim the CEC logical addresses. Should never be called if CEC_CAP_LOG_ADDRS
261302 is set. If block is true, then wait until the logical addresses have been
Documentation/media/kapi/dtv-core.rst+37−3
@@ -6,8 +6,6 @@ Digital TV Common functions · 5 unmodified lines
66
77 .. kernel-doc:: drivers/media/dvb-core/dvb_math.h
88
9−.. kernel-doc:: drivers/media/dvb-core/dvb_ringbuffer.h
10−
119 .. kernel-doc:: drivers/media/dvb-core/dvbdev.h
1210
1311
@@ -18,6 +16,42 @@ Digital TV Common functions · 4 unmodified lines
1816 .. kernel-doc:: drivers/media/dvb-core/dvbdev.h
1917 :export: drivers/media/dvb-core/dvbdev.c
2018
19+Digital TV Ring buffer
20+----------------------
21+
22+Those routines implement ring buffers used to handle digital TV data and
23+copy it from/to userspace.
24+
25+.. note::
26+
27+ 1) For performance reasons read and write routines don't check buffer sizes
28+ and/or number of bytes free/available. This has to be done before these
29+ routines are called. For example:
30+
31+ .. code-block:: c
32+
33+ /* write @buflen: bytes */
34+ free = dvb_ringbuffer_free(rbuf);
35+ if (free >= buflen)
36+ count = dvb_ringbuffer_write(rbuf, buffer, buflen);
37+ else
38+ /* do something */
39+
40+ /* read min. 1000, max. @bufsize: bytes */
41+ avail = dvb_ringbuffer_avail(rbuf);
42+ if (avail >= 1000)
43+ count = dvb_ringbuffer_read(rbuf, buffer, min(avail, bufsize));
44+ else
45+ /* do something */
46+
47+ 2) If there is exactly one reader and one writer, there is no need
48+ to lock read or write operations.
49+ Two or more readers must be locked against each other.
50+ Flushing the buffer counts as a read operation.
51+ Resetting the buffer counts as a read and write operation.
52+ Two or more writers must be locked against each other.
53+
54+.. kernel-doc:: drivers/media/dvb-core/dvb_ringbuffer.h
2155
2256
2357 Digital TV Frontend kABI
@@ -121,7 +155,7 @@ triggered by a hardware interrupt, it is recommended to use the Linux · 97 unmodified lines
121155 bottom half mechanism or start a tasklet instead of making the callback
122156 function call directly from a hardware interrupt.
123157
124−This mechanism is implemented by :c:func:`dmx_ts_cb()` and :cpp:func:`dmx_section_cb()`
158+This mechanism is implemented by :c:func:`dmx_ts_cb()` and :c:func:`dmx_section_cb()`
125159 callbacks.
126160
127161 .. kernel-doc:: drivers/media/dvb-core/demux.h
Documentation/media/kapi/mc-core.rst+13−12
@@ -34,7 +34,7 @@ pad to a sink pad. · 33 unmodified lines
3434 Media device
3535 ^^^^^^^^^^^^
3636
37−A media device is represented by a :c:type:`struct media_device <media_device>`
37+A media device is represented by a struct :c:type:`media_device`
3838 instance, defined in ``include/media/media-device.h``.
3939 Allocation of the structure is handled by the media device driver, usually by
4040 embedding the :c:type:`media_device` instance in a larger driver-specific
@@ -47,7 +47,7 @@ and unregistered by calling :c:func:`media_device_unregister()`. · 6 unmodified lines
4747 Entities
4848 ^^^^^^^^
4949
50−Entities are represented by a :c:type:`struct media_entity <media_entity>`
50+Entities are represented by a struct :c:type:`media_entity`
5151 instance, defined in ``include/media/media-entity.h``. The structure is usually
5252 embedded into a higher-level structure, such as
5353 :c:type:`v4l2_subdev` or :c:type:`video_device`
@@ -65,10 +65,10 @@ Interfaces · 11 unmodified lines
6565 ^^^^^^^^^^
6666
6767 Interfaces are represented by a
68−:c:type:`struct media_interface <media_interface>` instance, defined in
68+struct :c:type:`media_interface` instance, defined in
6969 ``include/media/media-entity.h``. Currently, only one type of interface is
7070 defined: a device node. Such interfaces are represented by a
71−:c:type:`struct media_intf_devnode <media_intf_devnode>`.
71+struct :c:type:`media_intf_devnode`.
7272
7373 Drivers initialize and create device node interfaces by calling
7474 :c:func:`media_devnode_create()`
@@ -77,7 +77,7 @@ and remove them by calling: · 2 unmodified lines
7777
7878 Pads
7979 ^^^^
80−Pads are represented by a :c:type:`struct media_pad <media_pad>` instance,
80+Pads are represented by a struct :c:type:`media_pad` instance,
8181 defined in ``include/media/media-entity.h``. Each entity stores its pads in
8282 a pads array managed by the entity driver. Drivers usually embed the array in
8383 a driver-specific structure.
@@ -85,8 +85,9 @@ a driver-specific structure. · 1 unmodified line
8585 Pads are identified by their entity and their 0-based index in the pads
8686 array.
8787
88−Both information are stored in the :c:type:`struct media_pad`, making the
89−:c:type:`media_pad` pointer the canonical way to store and pass link references.
88+Both information are stored in the struct :c:type:`media_pad`,
89+making the struct :c:type:`media_pad` pointer the canonical way
90+to store and pass link references.
9091
9192 Pads have flags that describe the pad capabilities and state.
9293
@@ -101,7 +102,7 @@ Pads have flags that describe the pad capabilities and state. · 8 unmodified lines
101102 Links
102103 ^^^^^
103104
104−Links are represented by a :c:type:`struct media_link <media_link>` instance,
105+Links are represented by a struct :c:type:`media_link` instance,
105106 defined in ``include/media/media-entity.h``. There are two types of links:
106107
107108 **1. pad to pad links**:
@@ -184,7 +185,7 @@ Use count and power handling · 76 unmodified lines
184185
185186 Due to the wide differences between drivers regarding power management
186187 needs, the media controller does not implement power management. However,
187−the :c:type:`struct media_entity <media_entity>` includes a ``use_count``
188+the struct :c:type:`media_entity` includes a ``use_count``
188189 field that media drivers
189190 can use to track the number of users of every entity for power management
190191 needs.
@@ -210,11 +211,11 @@ prevent link states from being modified during streaming by calling · 19 unmodified lines
210211 The function will mark all entities connected to the given entity through
211212 enabled links, either directly or indirectly, as streaming.
212213
213−The :c:type:`struct media_pipeline <media_pipeline>` instance pointed to by
214+The struct :c:type:`media_pipeline` instance pointed to by
214215 the pipe argument will be stored in every entity in the pipeline.
215−Drivers should embed the :c:type:`struct media_pipeline <media_pipeline>`
216+Drivers should embed the struct :c:type:`media_pipeline`
216217 in higher-level pipeline structures and can then access the
217−pipeline through the :c:type:`struct media_entity <media_entity>`
218+pipeline through the struct :c:type:`media_entity`
218219 pipe field.
219220
220221 Calls to :c:func:`media_entity_pipeline_start()` can be nested.
Documentation/media/kapi/v4l2-dev.rst+6−4
@@ -56,7 +56,7 @@ You should also set these fields of :c:type:`video_device`: · 55 unmodified lines
5656 :c:type:`video_device`->vfl_dir fields are used to disable ops that do not
5757 match the type/dir combination. E.g. VBI ops are disabled for non-VBI nodes,
5858 and output ops are disabled for a capture device. This makes it possible to
59− provide just one :c:type:`v4l2_ioctl_ops struct` for both vbi and
59+ provide just one :c:type:`v4l2_ioctl_ops` struct for both vbi and
6060 video nodes.
6161
6262 - :c:type:`video_device`->lock: leave to ``NULL`` if you want to do all the
@@ -166,14 +166,14 @@ something. · 103 unmodified lines
166166 In the case of :ref:`videobuf2 <vb2_framework>` you will need to implement the
167167 ``wait_prepare()`` and ``wait_finish()`` callbacks to unlock/lock if applicable.
168168 If you use the ``queue->lock`` pointer, then you can use the helper functions
169−:c:func:`vb2_ops_wait_prepare` and :cpp:func:`vb2_ops_wait_finish`.
169+:c:func:`vb2_ops_wait_prepare` and :c:func:`vb2_ops_wait_finish`.
170170
171171 The implementation of a hotplug disconnect should also take the lock from
172172 :c:type:`video_device` before calling v4l2_device_disconnect. If you are also
173173 using :c:type:`video_device`->queue->lock, then you have to first lock
174174 :c:type:`video_device`->queue->lock followed by :c:type:`video_device`->lock.
175175 That way you can be sure no ioctl is running when you call
176−:c:type:`v4l2_device_disconnect`.
176+:c:func:`v4l2_device_disconnect`.
177177
178178 Video device registration
179179 -------------------------
@@ -200,6 +200,7 @@ types exist: · 20 unmodified lines
200200 - ``VFL_TYPE_VBI``: ``/dev/vbiX`` for vertical blank data (i.e. closed captions, teletext)
201201 - ``VFL_TYPE_RADIO``: ``/dev/radioX`` for radio tuners
202202 - ``VFL_TYPE_SDR``: ``/dev/swradioX`` for Software Defined Radio tuners
203+- ``VFL_TYPE_TOUCH``: ``/dev/v4l-touchX`` for touch sensors
203204
204205 The last argument gives you a certain amount of control over the device
205206 device node number used (i.e. the X in ``videoX``). Normally you will pass -1
@@ -262,6 +263,7 @@ file operations. · 56 unmodified lines
262263
263264 It is a bitmask and the following bits can be set:
264265
266+.. tabularcolumns:: |p{5ex}|L|
265267
266268 ===== ================================================================
267269 Mask Description
@@ -334,7 +336,7 @@ And this function: · 66 unmodified lines
334336
335337 returns the video_device belonging to the file struct.
336338
337−The :c:func:`video_devdata` function combines :cpp:func:`video_get_drvdata`
339+The :c:func:`video_devdata` function combines :c:func:`video_get_drvdata`
338340 with :c:func:`video_devdata`:
339341
340342 :c:func:`video_drvdata <video_drvdata>`
Documentation/media/kapi/v4l2-event.rst+3−3
@@ -40,7 +40,7 @@ A good example of these ``replace``/``merge`` callbacks is in v4l2-event.c: · 39 unmodified lines
4040 In order to queue events to video device, drivers should call:
4141
4242 :c:func:`v4l2_event_queue <v4l2_event_queue>`
43− (:c:type:`vdev <video_device>`, :ref:`ev <v4l2-event>`)
43+ (:c:type:`vdev <video_device>`, :c:type:`ev <v4l2_event>`)
4444
4545 The driver's only responsibility is to fill in the type and the data fields.
4646 The other fields will be filled in by V4L2.
@@ -51,7 +51,7 @@ Event subscription · 4 unmodified lines
5151 Subscribing to an event is via:
5252
5353 :c:func:`v4l2_event_subscribe <v4l2_event_subscribe>`
54− (:c:type:`fh <v4l2_fh>`, :ref:`sub <v4l2-event-subscription>` ,
54+ (:c:type:`fh <v4l2_fh>`, :c:type:`sub <v4l2_event_subscription>` ,
5555 elems, :c:type:`ops <v4l2_subscribed_event_ops>`)
5656
5757
@@ -86,7 +86,7 @@ Unsubscribing an event · 28 unmodified lines
8686 Unsubscribing to an event is via:
8787
8888 :c:func:`v4l2_event_unsubscribe <v4l2_event_unsubscribe>`
89− (:c:type:`fh <v4l2_fh>`, :ref:`sub <v4l2-event-subscription>`)
89+ (:c:type:`fh <v4l2_fh>`, :c:type:`sub <v4l2_event_subscription>`)
9090
9191 This function is used to implement :c:type:`video_device`->
9292 :c:type:`ioctl_ops <v4l2_ioctl_ops>`-> ``vidioc_unsubscribe_event``.
Documentation/media/kapi/v4l2-fh.rst+2−2
@@ -21,8 +21,8 @@ function by the driver. · 20 unmodified lines
2121 In many cases the struct :c:type:`v4l2_fh` will be embedded in a larger
2222 structure. In that case you should call:
2323
24−#) :c:func:`v4l2_fh_init` and :cpp:func:`v4l2_fh_add` in ``open()``
25−#) :c:func:`v4l2_fh_del` and :cpp:func:`v4l2_fh_exit` in ``release()``
24+#) :c:func:`v4l2_fh_init` and :c:func:`v4l2_fh_add` in ``open()``
25+#) :c:func:`v4l2_fh_del` and :c:func:`v4l2_fh_exit` in ``release()``
2626
2727 Drivers can extract their own file handle structure by using the container_of
2828 macro.
Documentation/media/kapi/v4l2-subdev.rst+6−17
@@ -27,7 +27,7 @@ methods. · 26 unmodified lines
2727 Bridges might also need to store per-subdev private data, such as a pointer to
2828 bridge-specific per-subdev private data. The :c:type:`v4l2_subdev` structure
2929 provides host private data for that purpose that can be accessed with
30−:c:func:`v4l2_get_subdev_hostdata` and :cpp:func:`v4l2_set_subdev_hostdata`.
30+:c:func:`v4l2_get_subdev_hostdata` and :c:func:`v4l2_set_subdev_hostdata`.
3131
3232 From the bridge driver perspective, you load the sub-device module and somehow
3333 obtain the :c:type:`v4l2_subdev` pointer. For i2c devices this is easy: you call
@@ -412,19 +412,7 @@ later date. It differs between i2c drivers and as such can be confusing. · 378 unmodified lines
412412 To see which chip variants are supported you can look in the i2c driver code
413413 for the i2c_device_id table. This lists all the possibilities.
414414
415−There are two more helper functions:
416−
417−:c:func:`v4l2_i2c_new_subdev_cfg`: this function adds new irq and
418−platform_data arguments and has both 'addr' and 'probed_addrs' arguments:
419−if addr is not 0 then that will be used (non-probing variant), otherwise the
420−probed_addrs are probed.
421−
422−For example: this will probe for address 0x10:
423−
424−.. code-block:: c
425−
426− struct v4l2_subdev *sd = v4l2_i2c_new_subdev_cfg(v4l2_dev, adapter,
427− "module_foo", "chipid", 0, NULL, 0, I2C_ADDRS(0x10));
415+There are one more helper function:
428416
429417 :c:func:`v4l2_i2c_new_subdev_board` uses an :c:type:`i2c_board_info` struct
430418 which is passed to the i2c driver and replaces the irq, platform_data and addr
@@ -433,9 +421,10 @@ arguments. · 2 unmodified lines
433421 If the subdev supports the s_config core ops, then that op is called with
434422 the irq and platform_data arguments after the subdev was setup.
435423
436−The older :c:func:`v4l2_i2c_new_subdev` and
437−:c:func:`v4l2_i2c_new_probed_subdev` functions will call ``s_config`` as
438−well, but with irq set to 0 and platform_data set to ``NULL``.
424+The :c:func:`v4l2_i2c_new_subdev` function will call
425+:c:func:`v4l2_i2c_new_subdev_board`, internally filling a
426+:c:type:`i2c_board_info` structure using the ``client_type`` and the
427+``addr`` to fill it.
439428
440429 V4L2 sub-device functions and data structures
441430 ---------------------------------------------
Documentation/media/media_api_files/typical_media_device.pdf+0−0

Binary file not shown.

Documentation/media/media_kapi.rst+1−0
@@ -32,3 +32,4 @@ For more details see the file COPYING in the source distribution of Linux. · 31 unmodified lines
3232 kapi/dtv-core
3333 kapi/rc-core
3434 kapi/mc-core
35+ kapi/cec-core
Documentation/media/net.h.rst.exceptions+2−2
@@ -7,5 +7,5 @@ ignore ioctl __NET_GET_IF_OLD · 6 unmodified lines
77 ignore struct __dvb_net_if_old
88
99 # Macros used at struct dvb_net_if
10−replace define DVB_NET_FEEDTYPE_MPE dvb-net-if
11−replace define DVB_NET_FEEDTYPE_ULE dvb-net-if
10+replace define DVB_NET_FEEDTYPE_MPE :c:type:`dvb_net_if`
11+replace define DVB_NET_FEEDTYPE_ULE :c:type:`dvb_net_if`
Documentation/media/uapi/cec/cec-func-close.rst+6−3
@@ -20,19 +20,22 @@ Synopsis · 19 unmodified lines
2020 #include <unistd.h>
2121
2222
23−.. cpp:function:: int close( int fd )
23+.. c:function:: int close( int fd )
24+ :name: cec-close
2425
2526 Arguments
2627 =========
2728
2829 ``fd``
29− File descriptor returned by :ref:`open() <func-open>`.
30+ File descriptor returned by :c:func:`open() <cec-open>`.
3031
3132
3233 Description
3334 ===========
3435
35−.. note:: This documents the proposed CEC API. This API is not yet finalized
36+.. note::
37+
38+ This documents the proposed CEC API. This API is not yet finalized
3639 and is currently only available as a staging kernel module.
3740
3841 Closes the cec device. Resources associated with the file descriptor are
Documentation/media/uapi/cec/cec-func-ioctl.rst+7−4
@@ -19,17 +19,18 @@ Synopsis · 18 unmodified lines
1919 #include <sys/ioctl.h>
2020
2121
22−.. cpp:function:: int ioctl( int fd, int request, void *argp )
22+.. c:function:: int ioctl( int fd, int request, void *argp )
23+ :name: cec-ioctl
2324
2425 Arguments
2526 =========
2627
2728 ``fd``
28− File descriptor returned by :ref:`open() <func-open>`.
29+ File descriptor returned by :c:func:`open() <cec-open>`.
2930
3031 ``request``
3132 CEC ioctl request code as defined in the cec.h header file, for
32− example :ref:`CEC_ADAP_G_CAPS`.
33+ example :c:func:`CEC_ADAP_G_CAPS`.
3334
3435 ``argp``
3536 Pointer to a request-specific structure.
@@ -38,7 +39,9 @@ Arguments · 2 unmodified lines
3839 Description
3940 ===========
4041
41−.. note:: This documents the proposed CEC API. This API is not yet finalized
42+.. note::
43+
44+ This documents the proposed CEC API. This API is not yet finalized
4245 and is currently only available as a staging kernel module.
4346
4447 The :c:func:`ioctl()` function manipulates cec device parameters. The
Documentation/media/uapi/cec/cec-func-open.rst+5−2
@@ -19,7 +19,8 @@ Synopsis · 18 unmodified lines
1919 #include <fcntl.h>
2020
2121
22−.. cpp:function:: int open( const char *device_name, int flags )
22+.. c:function:: int open( const char *device_name, int flags )
23+ :name: cec-open
2324
2425
2526 Arguments
@@ -45,7 +46,9 @@ Arguments · 19 unmodified lines
4546 Description
4647 ===========
4748
48−.. note:: This documents the proposed CEC API. This API is not yet finalized
49+.. note::
50+
51+ This documents the proposed CEC API. This API is not yet finalized
4952 and is currently only available as a staging kernel module.
5053
5154 To open a cec device applications call :c:func:`open()` with the
Documentation/media/uapi/cec/cec-func-poll.rst+15−3
@@ -20,16 +20,28 @@ Synopsis · 19 unmodified lines
2020 #include <sys/poll.h>
2121
2222
23−.. cpp:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout )
23+.. c:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout )
24+ :name: cec-poll
2425
2526 Arguments
2627 =========
2728
29+``ufds``
30+ List of FD events to be watched
31+
32+``nfds``
33+ Number of FD efents at the \*ufds array
34+
35+``timeout``
36+ Timeout to wait for events
37+
2838
2939 Description
3040 ===========
3141
32−.. note:: This documents the proposed CEC API. This API is not yet finalized
42+.. note::
43+
44+ This documents the proposed CEC API. This API is not yet finalized
3345 and is currently only available as a staging kernel module.
3446
3547 With the :c:func:`poll()` function applications can wait for CEC
@@ -37,7 +49,7 @@ events. · 1 unmodified line
3749
3850 On success :c:func:`poll()` returns the number of file descriptors
3951 that have been selected (that is, file descriptors for which the
40−``revents`` field of the respective :c:type:`struct pollfd` structure
52+``revents`` field of the respective struct :c:type:`pollfd`
4153 is non-zero). CEC devices set the ``POLLIN`` and ``POLLRDNORM`` flags in
4254 the ``revents`` field if there are messages in the receive queue. If the
4355 transmit queue has room for new messages, the ``POLLOUT`` and
Documentation/media/uapi/cec/cec-intro.rst+3−1
@@ -3,7 +3,9 @@ · 2 unmodified lines
33 Introduction
44 ============
55
6−.. note:: This documents the proposed CEC API. This API is not yet finalized
6+.. note::
7+
8+ This documents the proposed CEC API. This API is not yet finalized
79 and is currently only available as a staging kernel module.
810
911 HDMI connectors provide a single pin for use by the Consumer Electronics
Documentation/media/uapi/cec/cec-ioc-adap-g-caps.rst+9−7
@@ -14,7 +14,8 @@ CEC_ADAP_G_CAPS - Query device capabilities · 13 unmodified lines
1414 Synopsis
1515 ========
1616
17−.. cpp:function:: int ioctl( int fd, int request, struct cec_caps *argp )
17+.. c:function:: int ioctl( int fd, CEC_ADAP_G_CAPS, struct cec_caps *argp )
18+ :name: CEC_ADAP_G_CAPS
1819
1920 Arguments
2021 =========
@@ -22,25 +23,25 @@ Arguments · 1 unmodified line
2223 ``fd``
2324 File descriptor returned by :ref:`open() <cec-func-open>`.
2425
25−``request``
26− CEC_ADAP_G_CAPS
27−
2826 ``argp``
2927
3028
3129 Description
3230 ===========
3331
34−.. note:: This documents the proposed CEC API. This API is not yet finalized
32+.. note::
33+
34+ This documents the proposed CEC API. This API is not yet finalized
3535 and is currently only available as a staging kernel module.
3636
3737 All cec devices must support :ref:`ioctl CEC_ADAP_G_CAPS <CEC_ADAP_G_CAPS>`. To query
3838 device information, applications call the ioctl with a pointer to a
39−struct :ref:`cec_caps <cec-caps>`. The driver fills the structure and
39+struct :c:type:`cec_caps`. The driver fills the structure and
4040 returns the information to the application. The ioctl never fails.
4141
42+.. tabularcolumns:: |p{1.2cm}|p{2.5cm}|p{13.8cm}|
4243
43−.. _cec-caps:
44+.. c:type:: cec_caps
4445
4546 .. flat-table:: struct cec_caps
4647 :header-rows: 0
@@ -84,6 +85,7 @@ returns the information to the application. The ioctl never fails. · 37 unmodified lines
8485 macro.
8586
8687
88+.. tabularcolumns:: |p{4.4cm}|p{2.5cm}|p{10.6cm}|
8789
8890 .. _cec-capabilities:
8991
Documentation/media/uapi/cec/cec-ioc-adap-g-log-addrs.rst+21−10
@@ -17,33 +17,35 @@ CEC_ADAP_G_LOG_ADDRS, CEC_ADAP_S_LOG_ADDRS - Get or set the logical addresses · 16 unmodified lines
1717 Synopsis
1818 ========
1919
20−.. cpp:function:: int ioctl( int fd, int request, struct cec_log_addrs *argp )
20+.. c:function:: int ioctl( int fd, CEC_ADAP_G_LOG_ADDRS, struct cec_log_addrs *argp )
21+ :name: CEC_ADAP_G_LOG_ADDRS
2122
23+.. c:function:: int ioctl( int fd, CEC_ADAP_S_LOG_ADDRS, struct cec_log_addrs *argp )
24+ :name: CEC_ADAP_S_LOG_ADDRS
2225
2326 Arguments
2427 =========
2528
2629 ``fd``
27− File descriptor returned by :ref:`open() <cec-func-open>`.
28−
29−``request``
30− CEC_ADAP_G_LOG_ADDRS, CEC_ADAP_S_LOG_ADDRS
30+ File descriptor returned by :c:func:`open() <cec-open>`.
3131
3232 ``argp``
33−
33+ Pointer to struct :c:type:`cec_log_addrs`.
3434
3535 Description
3636 ===========
3737
38−.. note:: This documents the proposed CEC API. This API is not yet finalized
38+.. note::
39+
40+ This documents the proposed CEC API. This API is not yet finalized
3941 and is currently only available as a staging kernel module.
4042
4143 To query the current CEC logical addresses, applications call
4244 :ref:`ioctl CEC_ADAP_G_LOG_ADDRS <CEC_ADAP_G_LOG_ADDRS>` with a pointer to a
43−:c:type:`struct cec_log_addrs` where the driver stores the logical addresses.
45+struct :c:type:`cec_log_addrs` where the driver stores the logical addresses.
4446
4547 To set new logical addresses, applications fill in
46−:c:type:`struct cec_log_addrs` and call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
48+struct :c:type:`cec_log_addrs` and call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
4749 with a pointer to this struct. The :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
4850 is only available if ``CEC_CAP_LOG_ADDRS`` is set (the ``ENOTTY`` error code is
4951 returned otherwise). The :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
@@ -64,8 +66,11 @@ logical addresses are claimed or cleared. · 14 unmodified lines
6466 Attempting to call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` when
6567 logical address types are already defined will return with error ``EBUSY``.
6668
69+.. c:type:: cec_log_addrs
6770
68−.. _cec-log-addrs:
71+.. tabularcolumns:: |p{1.0cm}|p{7.5cm}|p{8.0cm}|
72+
73+.. cssclass:: longtable
6974
7075 .. flat-table:: struct cec_log_addrs
7176 :header-rows: 0
@@ -220,6 +225,8 @@ logical address types are already defined will return with error ``EBUSY``. · 148 unmodified lines
220225 fallback to the Unregistered logical address. Note that if the Unregistered
221226 logical address was explicitly requested, then this flag has no effect.
222227
228+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
229+
223230 .. _cec-versions:
224231
225232 .. flat-table:: CEC Versions
@@ -253,6 +260,7 @@ logical address types are already defined will return with error ``EBUSY``. · 27 unmodified lines
253260 - CEC version according to the HDMI 2.0 standard.
254261
255262
263+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
256264
257265 .. _cec-prim-dev-types:
258266
@@ -319,6 +327,7 @@ logical address types are already defined will return with error ``EBUSY``. · 60 unmodified lines
319327 - Use for a video processor device.
320328
321329
330+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
322331
323332 .. _cec-log-addr-types:
324333
@@ -388,6 +397,8 @@ logical address types are already defined will return with error ``EBUSY``. · 63 unmodified lines
388397
389398
390399
400+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
401+
391402 .. _cec-all-dev-types-flags:
392403
393404 .. flat-table:: CEC All Device Types Flags
Documentation/media/uapi/cec/cec-ioc-adap-g-phys-addr.rst+10−7
@@ -17,24 +17,27 @@ CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR - Get or set the physical address · 16 unmodified lines
1717 Synopsis
1818 ========
1919
20−.. cpp:function:: int ioctl( int fd, int request, __u16 *argp )
20+.. c:function:: int ioctl( int fd, CEC_ADAP_G_PHYS_ADDR, __u16 *argp )
21+ :name: CEC_ADAP_G_PHYS_ADDR
22+
23+.. c:function:: int ioctl( int fd, CEC_ADAP_S_PHYS_ADDR, __u16 *argp )
24+ :name: CEC_ADAP_S_PHYS_ADDR
2125
2226 Arguments
2327 =========
2428
2529 ``fd``
26− File descriptor returned by :ref:`open() <cec-func-open>`.
27−
28−``request``
29− CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR
30+ File descriptor returned by :c:func:`open() <cec-open>`.
3031
3132 ``argp``
32−
33+ Pointer to the CEC address.
3334
3435 Description
3536 ===========
3637
37−.. note:: This documents the proposed CEC API. This API is not yet finalized
38+.. note::
39+
40+ This documents the proposed CEC API. This API is not yet finalized
3841 and is currently only available as a staging kernel module.
3942
4043 To query the current physical address applications call
Documentation/media/uapi/cec/cec-ioc-dqevent.rst+18−19
@@ -15,8 +15,8 @@ CEC_DQEVENT - Dequeue a CEC event · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. c:function:: int ioctl( int fd, int request, struct cec_event *argp )
19− :name: CEC_DQEVENT
18+.. c:function:: int ioctl( int fd, CEC_DQEVENT, struct cec_event *argp )
19+ :name: CEC_DQEVENT
2020
2121 Arguments
2222 =========
@@ -24,16 +24,15 @@ Arguments · 1 unmodified line
2424 ``fd``
2525 File descriptor returned by :ref:`open() <cec-func-open>`.
2626
27−``request``
28− CEC_DQEVENT
29−
3027 ``argp``
3128
3229
3330 Description
3431 ===========
3532
36−.. note:: This documents the proposed CEC API. This API is not yet finalized
33+.. note::
34+
35+ This documents the proposed CEC API. This API is not yet finalized
3736 and is currently only available as a staging kernel module.
3837
3938 CEC devices can send asynchronous events. These can be retrieved by
@@ -50,8 +49,9 @@ two :ref:`CEC_EVENT_STATE_CHANGE <CEC-EVENT-STATE-CHANGE>` events with · 10 unmodified lines
5049 the same state). In that case the intermediate state changes were lost but
5150 it is guaranteed that the state did change in between the two events.
5251
52+.. tabularcolumns:: |p{1.2cm}|p{2.9cm}|p{13.4cm}|
5353
54−.. _cec-event-state-change_s:
54+.. c:type:: cec_event_state_change
5555
5656 .. flat-table:: struct cec_event_state_change
5757 :header-rows: 0
@@ -80,8 +80,9 @@ it is guaranteed that the state did change in between the two events. · 22 unmodified lines
8080 has the unregistered logical address. In that case all other bits are 0.
8181
8282
83+.. c:type:: cec_event_lost_msgs
8384
84−.. _cec-event-lost-msgs_s:
85+.. tabularcolumns:: |p{1.0cm}|p{2.0cm}|p{14.5cm}|
8586
8687 .. flat-table:: struct cec_event_lost_msgs
8788 :header-rows: 0
@@ -106,8 +107,9 @@ it is guaranteed that the state did change in between the two events. · 18 unmodified lines
106107 this is more than enough.
107108
108109
110+.. tabularcolumns:: |p{1.0cm}|p{4.2cm}|p{2.5cm}|p{8.8cm}|
109111
110−.. _cec-event:
112+.. c:type:: cec_event
111113
112114 .. flat-table:: struct cec_event
113115 :header-rows: 0
@@ -121,11 +123,10 @@ it is guaranteed that the state did change in between the two events. · 7 unmodified lines
121123
122124 - ``ts``
123125
124− - Timestamp of the event in ns.
125− The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access
126− the same clock from userspace use :c:func:`clock_gettime(2)`.
126+ - :cspan:`1` Timestamp of the event in ns.
127127
128− -
128+ The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access
129+ the same clock from userspace use :c:func:`clock_gettime`.
129130
130131 - .. row 2
131132
@@ -133,9 +134,7 @@ it is guaranteed that the state did change in between the two events. · 1 unmodified line
133134
134135 - ``event``
135136
136− - The CEC event type, see :ref:`cec-events`.
137−
138− -
137+ - :cspan:`1` The CEC event type, see :ref:`cec-events`.
139138
140139 - .. row 3
141140
@@ -143,9 +142,7 @@ it is guaranteed that the state did change in between the two events. · 1 unmodified line
143142
144143 - ``flags``
145144
146− - Event flags, see :ref:`cec-event-flags`.
147−
148− -
145+ - :cspan:`1` Event flags, see :ref:`cec-event-flags`.
149146
150147 - .. row 4
151148
@@ -177,6 +174,7 @@ it is guaranteed that the state did change in between the two events. · 25 unmodified lines
177174 event.
178175
179176
177+.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
180178
181179 .. _cec-events:
182180
@@ -206,6 +204,7 @@ it is guaranteed that the state did change in between the two events. · 23 unmodified lines
206204 application didn't dequeue CEC messages fast enough.
207205
208206
207+.. tabularcolumns:: |p{6.0cm}|p{0.6cm}|p{10.9cm}|
209208
210209 .. _cec-event-flags:
211210
Documentation/media/uapi/cec/cec-ioc-g-mode.rst+13−7
@@ -13,24 +13,27 @@ CEC_G_MODE, CEC_S_MODE - Get or set exclusive use of the CEC adapter · 12 unmodified lines
1313 Synopsis
1414 ========
1515
16−.. cpp:function:: int ioctl( int fd, int request, __u32 *argp )
16+.. c:function:: int ioctl( int fd, CEC_G_MODE, __u32 *argp )
17+ :name: CEC_G_MODE
18+
19+.. c:function:: int ioctl( int fd, CEC_S_MODE, __u32 *argp )
20+ :name: CEC_S_MODE
1721
1822 Arguments
1923 =========
2024
2125 ``fd``
22− File descriptor returned by :ref:`open() <cec-func-open>`.
23−
24−``request``
25− CEC_G_MODE, CEC_S_MODE
26+ File descriptor returned by :c:func:`open() <cec-open>`.
2627
2728 ``argp``
28−
29+ Pointer to CEC mode.
2930
3031 Description
3132 ===========
3233
33−.. note:: This documents the proposed CEC API. This API is not yet finalized
34+.. note::
35+
36+ This documents the proposed CEC API. This API is not yet finalized
3437 and is currently only available as a staging kernel module.
3538
3639 By default any filehandle can use :ref:`CEC_TRANSMIT`, but in order to prevent
@@ -71,6 +74,7 @@ always call :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`. · 34 unmodified lines
7174
7275 Available initiator modes are:
7376
77+.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
7478
7579 .. _cec-mode-initiator_e:
7680
@@ -114,6 +118,7 @@ Available initiator modes are: · 37 unmodified lines
114118
115119 Available follower modes are:
116120
121+.. tabularcolumns:: |p{6.6cm}|p{0.9cm}|p{10.0cm}|
117122
118123 .. _cec-mode-follower_e:
119124
@@ -206,6 +211,7 @@ Available follower modes are: · 86 unmodified lines
206211
207212 Core message processing details:
208213
214+.. tabularcolumns:: |p{6.6cm}|p{10.9cm}|
209215
210216 .. _cec-core-processing:
211217
Documentation/media/uapi/cec/cec-ioc-receive.rst+24−14
@@ -16,28 +16,32 @@ CEC_RECEIVE, CEC_TRANSMIT - Receive or transmit a CEC message · 15 unmodified lines
1616 Synopsis
1717 ========
1818
19−.. cpp:function:: int ioctl( int fd, int request, struct cec_msg *argp )
19+.. c:function:: int ioctl( int fd, CEC_RECEIVE, struct cec_msg *argp )
20+ :name: CEC_RECEIVE
21+
22+.. c:function:: int ioctl( int fd, CEC_TRANSMIT, struct cec_msg *argp )
23+ :name: CEC_TRANSMIT
2024
2125 Arguments
2226 =========
2327
2428 ``fd``
25− File descriptor returned by :ref:`open() <cec-func-open>`.
26−
27−``request``
28− CEC_RECEIVE, CEC_TRANSMIT
29+ File descriptor returned by :c:func:`open() <cec-open>`.
2930
3031 ``argp``
31−
32+ Pointer to struct cec_msg.
3233
3334 Description
3435 ===========
3536
36−.. note:: This documents the proposed CEC API. This API is not yet finalized
37+.. note::
38+
39+ This documents the proposed CEC API. This API is not yet finalized
3740 and is currently only available as a staging kernel module.
3841
3942 To receive a CEC message the application has to fill in the
40−``timeout`` field of :c:type:`struct cec_msg` and pass it to :ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`.
43+``timeout`` field of struct :c:type:`cec_msg` and pass it to
44+:ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`.
4145 If the file descriptor is in non-blocking mode and there are no received
4246 messages pending, then it will return -1 and set errno to the ``EAGAIN``
4347 error code. If the file descriptor is in blocking mode and ``timeout``
@@ -51,9 +55,9 @@ A received message can be: · 7 unmodified lines
5155 2. the result of an earlier non-blocking transmit (the ``sequence`` field will
5256 be non-zero).
5357
54−To send a CEC message the application has to fill in the
55−:c:type:`struct cec_msg` and pass it to
56−:ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`. The :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` is only available if
58+To send a CEC message the application has to fill in the struct
59+:c:type:` cec_msg` and pass it to :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`.
60+The :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` is only available if
5761 ``CEC_CAP_TRANSMIT`` is set. If there is no more room in the transmit
5862 queue, then it will return -1 and set errno to the ``EBUSY`` error code.
5963 The transmit queue has enough room for 18 messages (about 1 second worth
@@ -71,7 +75,11 @@ checked against the received messages to find the corresponding transmit · 11 unmodified lines
7175 result.
7276
7377
74−.. _cec-msg:
78+.. tabularcolumns:: |p{1.0cm}|p{3.5cm}|p{13.0cm}|
79+
80+.. c:type:: cec_msg
81+
82+.. cssclass:: longtable
7583
7684 .. flat-table:: struct cec_msg
7785 :header-rows: 0
@@ -87,7 +95,7 @@ result. · 9 unmodified lines
8795
8896 - Timestamp in ns of when the last byte of the message was transmitted.
8997 The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access
90− the same clock from userspace use :c:func:`clock_gettime(2)`.
98+ the same clock from userspace use :c:func:`clock_gettime`.
9199
92100 - .. row 2
93101
@@ -97,7 +105,7 @@ result. · 3 unmodified lines
97105
98106 - Timestamp in ns of when the last byte of the message was received.
99107 The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access
100− the same clock from userspace use :c:func:`clock_gettime(2)`.
108+ the same clock from userspace use :c:func:`clock_gettime`.
101109
102110 - .. row 3
103111
@@ -247,6 +255,7 @@ result. · 143 unmodified lines
247255 valid if the :ref:`CEC_TX_STATUS_ERROR <CEC-TX-STATUS-ERROR>` status bit is set.
248256
249257
258+.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
250259
251260 .. _cec-tx-status:
252261
@@ -315,6 +324,7 @@ result. · 62 unmodified lines
315324 be set to explain which failures were seen.
316325
317326
327+.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
318328
319329 .. _cec-rx-status:
320330
Documentation/media/uapi/dvb/audio-bilingual-channel-select.rst+5−10
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_BILINGUAL_CHANNEL_SELECT
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_BILINGUAL_CHANNEL_SELECT, audio_channel_select_t)
19+.. c:function:: int ioctl(int fd, AUDIO_BILINGUAL_CHANNEL_SELECT, struct *audio_channel_select)
20+ :name: AUDIO_BILINGUAL_CHANNEL_SELECT
1921
2022
2123 Arguments
@@ -25,20 +27,13 @@ Arguments · 3 unmodified lines
2527 :header-rows: 0
2628 :stub-columns: 0
2729
28−
29− - .. row 1
30+ -
3031
3132 - int fd
3233
3334 - File descriptor returned by a previous call to open().
3435
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_BILINGUAL_CHANNEL_SELECT for this command.
40−
41− - .. row 3
36+ -
4237
4338 - audio_channel_select_t ch
4439
Documentation/media/uapi/dvb/audio-channel-select.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_CHANNEL_SELECT
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_CHANNEL_SELECT, audio_channel_select_t)
19+.. c:function:: int ioctl(int fd, AUDIO_CHANNEL_SELECT, struct *audio_channel_select)
20+ :name: AUDIO_CHANNEL_SELECT
1921
2022
2123 Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
2628 :stub-columns: 0
2729
2830
29− - .. row 1
31+ -
3032
3133 - int fd
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_CHANNEL_SELECT for this command.
40−
41− - .. row 3
37+ -
4238
4339 - audio_channel_select_t ch
4440
Documentation/media/uapi/dvb/audio-clear-buffer.rst+3−9
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_CLEAR_BUFFER
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_CLEAR_BUFFER)
19−
19+.. c:function:: int ioctl(int fd, AUDIO_CLEAR_BUFFER)
20+ :name: AUDIO_CLEAR_BUFFER
2021
2122 Arguments
2223 ---------
@@ -32,13 +33,6 @@ Arguments · 9 unmodified lines
3233
3334 - File descriptor returned by a previous call to open().
3435
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_CLEAR_BUFFER for this command.
40−
41−
4236 Description
4337 -----------
4438
Documentation/media/uapi/dvb/audio-continue.rst+3−8
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_CONTINUE
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_CONTINUE)
19+.. c:function:: int ioctl(int fd, AUDIO_CONTINUE)
20+ :name: AUDIO_CONTINUE
1921
2022
2123 Arguments
@@ -32,13 +34,6 @@ Arguments · 10 unmodified lines
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_CONTINUE for this command.
40−
41−
4237 Description
4338 -----------
4439
Documentation/media/uapi/dvb/audio-fclose.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 DVB audio close()
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int close(int fd)
19+.. c:function:: int close(int fd)
20+ :name: dvb-audio-close
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/audio-fopen.rst+5−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 DVB audio open()
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int open(const char *deviceName, int flags)
19+.. c:function:: int open(const char *deviceName, int flags)
20+ :name: dvb-audio-open
1921
2022
2123 Arguments
@@ -80,6 +82,8 @@ AUDIO_GET_STATUS. All other call will return with an error code. · 58 unmodified lines
8082 Return Value
8183 ------------
8284
85+.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
86+
8387 .. flat-table::
8488 :header-rows: 0
8589 :stub-columns: 0
Documentation/media/uapi/dvb/audio-fwrite.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 DVB audio write()
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: size_t write(int fd, const void *buf, size_t count)
19+.. c:function:: size_t write(int fd, const void *buf, size_t count)
20+ :name: dvb-audio-write
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/audio-get-capabilities.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_GET_CAPABILITIES
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_GET_CAPABILITIES, unsigned int *cap)
19+.. c:function:: int ioctl(int fd, AUDIO_GET_CAPABILITIES, unsigned int *cap)
20+ :name: AUDIO_GET_CAPABILITIES
1921
2022
2123 Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
2628 :stub-columns: 0
2729
2830
29− - .. row 1
31+ -
3032
3133 - int fd
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_GET_CAPABILITIES for this command.
40−
41− - .. row 3
37+ -
4238
4339 - unsigned int \*cap
4440
Documentation/media/uapi/dvb/audio-get-pts.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_GET_PTS
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_GET_PTS, __u64 *pts)
19+.. c:function:: int ioctl(int fd, AUDIO_GET_PTS, __u64 *pts)
20+ :name: AUDIO_GET_PTS
1921
2022
2123 Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
2628 :stub-columns: 0
2729
2830
29− - .. row 1
31+ -
3032
3133 - int fd
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_GET_PTS for this command.
40−
41− - .. row 3
37+ -
4238
4339 - __u64 \*pts
4440
Documentation/media/uapi/dvb/audio-get-status.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_GET_STATUS
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_GET_STATUS, struct audio_status *status)
19+.. c:function:: int ioctl(int fd, AUDIO_GET_STATUS, struct audio_status *status)
20+ :name: AUDIO_GET_STATUS
1921
2022
2123 Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
2628 :stub-columns: 0
2729
2830
29− - .. row 1
31+ -
3032
3133 - int fd
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_GET_STATUS for this command.
40−
41− - .. row 3
37+ -
4238
4339 - struct audio_status \*status
4440
Documentation/media/uapi/dvb/audio-pause.rst+3−8
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_PAUSE
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_PAUSE)
19−
19+.. c:function:: int ioctl(int fd, AUDIO_PAUSE)
20+ :name: AUDIO_PAUSE
2021
2122 Arguments
2223 ---------
@@ -32,12 +33,6 @@ Arguments · 9 unmodified lines
3233
3334 - File descriptor returned by a previous call to open().
3435
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_PAUSE for this command.
40−
4136
4237 Description
4338 -----------
Documentation/media/uapi/dvb/audio-play.rst+3−8
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_PLAY
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_PLAY)
19+.. c:function:: int ioctl(int fd, AUDIO_PLAY)
20+ :name: AUDIO_PLAY
1921
2022
2123 Arguments
@@ -32,13 +34,6 @@ Arguments · 10 unmodified lines
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_PLAY for this command.
40−
41−
4237 Description
4338 -----------
4439
Documentation/media/uapi/dvb/audio-select-source.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_SELECT_SOURCE
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_SELECT_SOURCE, audio_stream_source_t source)
19+.. c:function:: int ioctl(int fd, AUDIO_SELECT_SOURCE, struct audio_stream_source *source)
20+ :name: AUDIO_SELECT_SOURCE
1921
2022
2123 Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
2628 :stub-columns: 0
2729
2830
29− - .. row 1
31+ -
3032
3133 - int fd
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_SELECT_SOURCE for this command.
40−
41− - .. row 3
37+ -
4238
4339 - audio_stream_source_t source
4440
Documentation/media/uapi/dvb/audio-set-attributes.rst+6−10
@@ -11,12 +11,14 @@ Name · 10 unmodified lines
1111
1212 AUDIO_SET_ATTRIBUTES
1313
14+.. attention:: This ioctl is deprecated
15+
1416
1517 Synopsis
1618 --------
1719
18−.. cpp:function:: int ioctl(fd, int request = AUDIO_SET_ATTRIBUTES, audio_attributes_t attr )
19−
20+.. c:function:: int ioctl(fd, AUDIO_SET_ATTRIBUTES, struct audio_attributes *attr )
21+ :name: AUDIO_SET_ATTRIBUTES
2022
2123 Arguments
2224 ---------
@@ -26,19 +28,13 @@ Arguments · 3 unmodified lines
2628 :stub-columns: 0
2729
2830
29− - .. row 1
31+ -
3032
3133 - int fd
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_SET_ATTRIBUTES for this command.
40−
41− - .. row 3
37+ -
4238
4339 - audio_attributes_t attr
4440
Documentation/media/uapi/dvb/audio-set-av-sync.rst+7−17
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_SET_AV_SYNC
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_AV_SYNC, boolean state)
19+.. c:function:: int ioctl(int fd, AUDIO_SET_AV_SYNC, boolean state)
20+ :name: AUDIO_SET_AV_SYNC
1921
2022
2123 Arguments
@@ -26,33 +28,21 @@ Arguments · 4 unmodified lines
2628 :stub-columns: 0
2729
2830
29− - .. row 1
31+ -
3032
3133 - int fd
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_AV_SYNC for this command.
40−
41− - .. row 3
37+ -
4238
4339 - boolean state
4440
4541 - Tells the DVB subsystem if A/V synchronization shall be ON or OFF.
4642
47− - .. row 4
48−
49− -
50− - TRUE AV-sync ON
51−
52− - .. row 5
43+ TRUE: AV-sync ON
5344
54− -
55− - FALSE AV-sync OFF
45+ FALSE: AV-sync OFF
5646
5747
5848 Description
Documentation/media/uapi/dvb/audio-set-bypass-mode.rst+7−18
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_SET_BYPASS_MODE
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_BYPASS_MODE, boolean mode)
19−
19+.. c:function:: int ioctl(int fd, AUDIO_SET_BYPASS_MODE, boolean mode)
20+ :name: AUDIO_SET_BYPASS_MODE
2021
2122 Arguments
2223 ---------
@@ -26,34 +27,22 @@ Arguments · 3 unmodified lines
2627 :stub-columns: 0
2728
2829
29− - .. row 1
30+ -
3031
3132 - int fd
3233
3334 - File descriptor returned by a previous call to open().
3435
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_SET_BYPASS_MODE for this command.
40−
41− - .. row 3
36+ -
4237
4338 - boolean mode
4439
4540 - Enables or disables the decoding of the current Audio stream in
4641 the DVB subsystem.
4742
48− - .. row 4
49−
50− -
51− - TRUE Bypass is disabled
52−
53− - .. row 5
43+ TRUE: Bypass is disabled
5444
55− -
56− - FALSE Bypass is enabled
45+ FALSE: Bypass is enabled
5746
5847
5948 Description
Documentation/media/uapi/dvb/audio-set-ext-id.rst+5−10
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_SET_EXT_ID
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = AUDIO_SET_EXT_ID, int id)
19−
19+.. c:function:: int ioctl(fd, AUDIO_SET_EXT_ID, int id)
20+ :name: AUDIO_SET_EXT_ID
2021
2122 Arguments
2223 ---------
@@ -26,19 +27,13 @@ Arguments · 3 unmodified lines
2627 :stub-columns: 0
2728
2829
29− - .. row 1
30+ -
3031
3132 - int fd
3233
3334 - File descriptor returned by a previous call to open().
3435
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_SET_EXT_ID for this command.
40−
41− - .. row 3
36+ -
4237
4338 - int id
4439
Documentation/media/uapi/dvb/audio-set-id.rst+5−10
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_SET_ID
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_ID, int id)
19−
19+.. c:function:: int ioctl(int fd, AUDIO_SET_ID, int id)
20+ :name: AUDIO_SET_ID
2021
2122 Arguments
2223 ---------
@@ -26,19 +27,13 @@ Arguments · 3 unmodified lines
2627 :stub-columns: 0
2728
2829
29− - .. row 1
30+ -
3031
3132 - int fd
3233
3334 - File descriptor returned by a previous call to open().
3435
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_SET_ID for this command.
40−
41− - .. row 3
36+ -
4237
4338 - int id
4439
Documentation/media/uapi/dvb/audio-set-karaoke.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_SET_KARAOKE
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = AUDIO_SET_KARAOKE, audio_karaoke_t *karaoke)
19+.. c:function:: int ioctl(fd, AUDIO_SET_KARAOKE, struct audio_karaoke *karaoke)
20+ :name: AUDIO_SET_KARAOKE
1921
2022
2123 Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
2628 :stub-columns: 0
2729
2830
29− - .. row 1
31+ -
3032
3133 - int fd
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_SET_KARAOKE for this command.
40−
41− - .. row 3
37+ -
4238
4339 - audio_karaoke_t \*karaoke
4440
Documentation/media/uapi/dvb/audio-set-mixer.rst+5−10
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_SET_MIXER
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_MIXER, audio_mixer_t *mix)
19−
19+.. c:function:: int ioctl(int fd, AUDIO_SET_MIXER, struct audio_mixer *mix)
20+ :name: AUDIO_SET_MIXER
2021
2122 Arguments
2223 ---------
@@ -26,19 +27,13 @@ Arguments · 3 unmodified lines
2627 :stub-columns: 0
2728
2829
29− - .. row 1
30+ -
3031
3132 - int fd
3233
3334 - File descriptor returned by a previous call to open().
3435
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_SET_ID for this command.
40−
41− - .. row 3
36+ -
4237
4338 - audio_mixer_t \*mix
4439
Documentation/media/uapi/dvb/audio-set-mute.rst+7−17
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_SET_MUTE
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_MUTE, boolean state)
19+.. c:function:: int ioctl(int fd, AUDIO_SET_MUTE, boolean state)
20+ :name: AUDIO_SET_MUTE
1921
2022
2123 Arguments
@@ -26,33 +28,21 @@ Arguments · 4 unmodified lines
2628 :stub-columns: 0
2729
2830
29− - .. row 1
31+ -
3032
3133 - int fd
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_SET_MUTE for this command.
40−
41− - .. row 3
37+ -
4238
4339 - boolean state
4440
4541 - Indicates if audio device shall mute or not.
4642
47− - .. row 4
48−
49− -
50− - TRUE Audio Mute
51−
52− - .. row 5
43+ TRUE: Audio Mute
5344
54− -
55− - FALSE Audio Un-mute
45+ FALSE: Audio Un-mute
5646
5747
5848 Description
Documentation/media/uapi/dvb/audio-set-streamtype.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_SET_STREAMTYPE
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = AUDIO_SET_STREAMTYPE, int type)
19+.. c:function:: int ioctl(fd, AUDIO_SET_STREAMTYPE, int type)
20+ :name: AUDIO_SET_STREAMTYPE
1921
2022
2123 Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
2628 :stub-columns: 0
2729
2830
29− - .. row 1
31+ -
3032
3133 - int fd
3234
3335 - File descriptor returned by a previous call to open().
3436
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_SET_STREAMTYPE for this command.
40−
41− - .. row 3
37+ -
4238
4339 - int type
4440
Documentation/media/uapi/dvb/audio-stop.rst+3−8
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
1111
1212 AUDIO_STOP
1313
14+.. attention:: This ioctl is deprecated
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = AUDIO_STOP)
19−
19+.. c:function:: int ioctl(int fd, AUDIO_STOP)
20+ :name: AUDIO_STOP
2021
2122 Arguments
2223 ---------
@@ -32,12 +33,6 @@ Arguments · 9 unmodified lines
3233
3334 - File descriptor returned by a previous call to open().
3435
35− - .. row 2
36−
37− - int request
38−
39− - Equals AUDIO_STOP for this command.
40−
4136
4237 Description
4338 -----------
Documentation/media/uapi/dvb/audio_data_types.rst+7−30
@@ -9,11 +9,7 @@ Audio Data Types · 8 unmodified lines
99 This section describes the structures, data types and defines used when
1010 talking to the audio device.
1111
12−
13−.. _audio-stream-source-t:
14−
15−audio_stream_source_t
16−=====================
12+.. c:type:: audio_stream_source
1713
1814 The audio stream source is set through the AUDIO_SELECT_SOURCE call
1915 and can take the following values, depending on whether we are replaying
@@ -33,10 +29,7 @@ AUDIO_SOURCE_MEMORY is selected the stream comes from the application · 13 unmodified lines
3329 through the ``write()`` system call.
3430
3531
36−.. _audio-play-state-t:
37−
38−audio_play_state_t
39−==================
32+.. c:type:: audio_play_state
4033
4134 The following values can be returned by the AUDIO_GET_STATUS call
4235 representing the state of audio playback.
@@ -51,10 +44,7 @@ representing the state of audio playback. · 8 unmodified lines
5144 } audio_play_state_t;
5245
5346
54−.. _audio-channel-select-t:
55−
56−audio_channel_select_t
57−======================
47+.. c:type:: audio_channel_select
5848
5949 The audio channel selected via AUDIO_CHANNEL_SELECT is determined by
6050 the following values.
@@ -71,10 +61,7 @@ the following values. · 10 unmodified lines
7161 } audio_channel_select_t;
7262
7363
74−.. _audio-status:
75−
76−struct audio_status
77−===================
64+.. c:type:: audio_status
7865
7966 The AUDIO_GET_STATUS call returns the following structure informing
8067 about various states of the playback operation.
@@ -93,10 +80,7 @@ about various states of the playback operation. · 12 unmodified lines
9380 } audio_status_t;
9481
9582
96−.. _audio-mixer:
97−
98−struct audio_mixer
99−==================
83+.. c:type:: audio_mixer
10084
10185 The following structure is used by the AUDIO_SET_MIXER call to set the
10286 audio volume.
@@ -131,11 +115,7 @@ following bits set according to the hardwares capabilities. · 28 unmodified lines
131115 #define AUDIO_CAP_SDDS 128
132116 #define AUDIO_CAP_AC3 256
133117
134−
135−.. _audio-karaoke:
136−
137−struct audio_karaoke
138−====================
118+.. c:type:: audio_karaoke
139119
140120 The ioctl AUDIO_SET_KARAOKE uses the following format:
141121
@@ -155,10 +135,7 @@ into the left channel and Vocal2 into the right channel at 100% each. Ff · 13 unmodified lines
155135 Melody is non-zero, the melody channel gets mixed into left and right.
156136
157137
158−.. _audio-attributes-t:
159−
160−audio attributes
161−================
138+.. c:type:: audio_attributes
162139
163140 The following attributes can be set by a call to AUDIO_SET_ATTRIBUTES:
164141
Documentation/media/uapi/dvb/ca-fclose.rst+5−13
@@ -15,28 +15,20 @@ DVB CA close() · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int close(int fd)
18+.. c:function:: int close(int fd)
19+ :name: dvb-ca-close
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
25+``fd``
26+ File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
3527
3628 Description
3729 -----------
3830
39−This system call closes a previously opened audio device.
31+This system call closes a previously opened CA device.
4032
4133
4234 Return Value
Documentation/media/uapi/dvb/ca-fopen.rst+20−31
@@ -15,48 +15,35 @@ DVB CA open() · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int open(const char *deviceName, int flags)
18+.. c:function:: int open(const char *name, int flags)
19+ :name: dvb-ca-open
1920
2021
2122 Arguments
2223 ---------
2324
25+``name``
26+ Name of specific DVB CA device.
27+
28+``flags``
29+ A bit-wise OR of the following flags:
30+
2431 .. flat-table::
2532 :header-rows: 0
2633 :stub-columns: 0
2734
35+ -
36+ - O_RDONLY
37+ - read-only access
2838
29− - .. row 1
30−
31− - const char \*deviceName
32−
33− - Name of specific video device.
39+ -
40+ - O_RDWR
41+ - read/write access
3442
35− - .. row 2
36−
37− - int flags
38−
39− - A bit-wise OR of the following flags:
40−
41− - .. row 3
42−
43− -
44− - O_RDONLY read-only access
45−
46− - .. row 4
47−
48− -
49− - O_RDWR read/write access
50−
51− - .. row 5
52−
53− -
54− - O_NONBLOCK open in non-blocking mode
55−
56− - .. row 6
57−
58− -
59− - (blocking mode is the default)
43+ -
44+ - O_NONBLOCK
45+ - open in non-blocking mode
46+ (blocking mode is the default)
6047
6148
6249 Description
@@ -79,6 +66,8 @@ the device in this mode will fail, and an error code will be returned. · 16 unmodified lines
7966 Return Value
8067 ------------
8168
69+.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
70+
8271 .. flat-table::
8372 :header-rows: 0
8473 :stub-columns: 0
Documentation/media/uapi/dvb/ca-get-cap.rst+31−20
@@ -15,40 +15,51 @@ CA_GET_CAP · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = CA_GET_CAP, ca_caps_t *)
18+.. c:function:: int ioctl(fd, CA_GET_CAP, struct ca_caps *caps)
19+ :name: CA_GET_CAP
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
25+``fd``
26+ File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
3227
33− - File descriptor returned by a previous call to open().
28+``caps``
29+ Pointer to struct :c:type:`ca_caps`.
3430
35− - .. row 2
31+.. c:type:: struct ca_caps
3632
37− - int request
38−
39− - Equals CA_GET_CAP for this command.
40−
41− - .. row 3
42−
43− - ca_caps_t *
33+.. flat-table:: struct ca_caps
34+ :header-rows: 1
35+ :stub-columns: 0
4436
45− - Undocumented.
37+ -
38+ - type
39+ - name
40+ - description
41+ -
42+ - unsigned int
43+ - slot_num
44+ - total number of CA card and module slots
45+ -
46+ - unsigned int
47+ - slot_type
48+ - bitmask with all supported slot types
49+ -
50+ - unsigned int
51+ - descr_num
52+ - total number of descrambler slots (keys)
53+ -
54+ - unsigned int
55+ - descr_type
56+ - bit mask with all supported descr types
4657
4758
4859 Description
4960 -----------
5061
51−This ioctl is undocumented. Documentation is welcome.
62+.. note:: This ioctl is undocumented. Documentation is welcome.
5263
5364
5465 Return Value
Documentation/media/uapi/dvb/ca-get-descr-info.rst+24−20
@@ -15,40 +15,44 @@ CA_GET_DESCR_INFO · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = CA_GET_DESCR_INFO, ca_descr_info_t *)
19−
18+.. c:function:: int ioctl(fd, CA_GET_DESCR_INFO, struct ca_descr_info *desc)
19+ :name: CA_GET_DESCR_INFO
2020
2121 Arguments
2222 ---------
2323
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
24+``fd``
25+ File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
3026
31− - int fd
27+``desc``
28+ Pointer to struct :c:type:`ca_descr_info`.
3229
33− - File descriptor returned by a previous call to open().
30+.. c:type:: struct ca_descr_info
3431
35− - .. row 2
36−
37− - int request
38−
39− - Equals CA_GET_DESCR_INFO for this command.
40−
41− - .. row 3
32+.. flat-table:: struct ca_descr_info
33+ :header-rows: 1
34+ :stub-columns: 0
4235
43− - ca_descr_info_t \*
36+ -
37+ - type
38+ - name
39+ - description
4440
45− - Undocumented.
41+ -
42+ - unsigned int
43+ - num
44+ - number of available descramblers (keys)
45+ -
46+ - unsigned int
47+ - type
48+ - type of supported scrambling system. Valid values are:
49+ ``CA_ECD``, ``CA_NDS`` and ``CA_DSS``.
4650
4751
4852 Description
4953 -----------
5054
51−This ioctl is undocumented. Documentation is welcome.
55+.. note:: This ioctl is undocumented. Documentation is welcome.
5256
5357
5458 Return Value
Documentation/media/uapi/dvb/ca-get-msg.rst+31−16
@@ -15,40 +15,55 @@ CA_GET_MSG · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = CA_GET_MSG, ca_msg_t *)
18+.. c:function:: int ioctl(fd, CA_GET_MSG, struct ca_msg *msg)
19+ :name: CA_GET_MSG
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
25+``fd``
26+ File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
2827
29− - .. row 1
28+``msg``
29+ Pointer to struct :c:type:`ca_msg`.
3030
31− - int fd
3231
33− - File descriptor returned by a previous call to open().
32+.. c:type:: struct ca_msg
3433
35− - .. row 2
36−
37− - int request
34+.. flat-table:: struct ca_msg
35+ :header-rows: 1
36+ :stub-columns: 0
3837
39− - Equals CA_GET_MSG for this command.
38+ -
39+ - type
40+ - name
41+ - description
42+ -
43+ - unsigned int
44+ - index
45+ -
4046
41− - .. row 3
47+ -
48+ - unsigned int
49+ - type
50+ -
4251
43− - ca_msg_t \*
52+ -
53+ - unsigned int
54+ - length
55+ -
4456
45− - Undocumented.
57+ -
58+ - unsigned char
59+ - msg[256]
60+ -
4661
4762
4863 Description
4964 -----------
5065
51−This ioctl is undocumented. Documentation is welcome.
66+.. note:: This ioctl is undocumented. Documentation is welcome.
5267
5368
5469 Return Value
Documentation/media/uapi/dvb/ca-get-slot-info.rst+79−13
@@ -15,40 +15,106 @@ CA_GET_SLOT_INFO · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = CA_GET_SLOT_INFO, ca_slot_info_t *)
18+.. c:function:: int ioctl(fd, CA_GET_SLOT_INFO, struct ca_slot_info *info)
19+ :name: CA_GET_SLOT_INFO
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
25+``fd``
26+ File descriptor returned by a previous call to :c:func:`open() <cec-open>`.
27+
28+``info``
29+ Pointer to struct c:type:`ca_slot_info`.
30+
31+.. _ca_slot_info_type:
32+
33+.. flat-table:: ca_slot_info types
34+ :header-rows: 1
2635 :stub-columns: 0
2736
37+ -
38+ - type
39+ - name
40+ - description
41+ -
42+ - CA_CI
43+ - 1
44+ - CI high level interface
45+
46+ -
47+ - CA_CI_LINK
48+ - 2
49+ - CI link layer level interface
50+
51+ -
52+ - CA_CI_PHYS
53+ - 4
54+ - CI physical layer level interface
55+
56+ -
57+ - CA_DESCR
58+ - 8
59+ - built-in descrambler
60+
61+ -
62+ - CA_SC
63+ - 128
64+ - simple smart card interface
65+
66+.. _ca_slot_info_flag:
67+
68+.. flat-table:: ca_slot_info flags
69+ :header-rows: 1
70+ :stub-columns: 0
2871
29− - .. row 1
72+ -
73+ - type
74+ - name
75+ - description
3076
31− - int fd
77+ -
78+ - CA_CI_MODULE_PRESENT
79+ - 1
80+ - module (or card) inserted
3281
33− - File descriptor returned by a previous call to open().
82+ -
83+ - CA_CI_MODULE_READY
84+ - 2
85+ -
3486
35− - .. row 2
87+.. c:type:: ca_slot_info
3688
37− - int request
89+.. flat-table:: struct ca_slot_info
90+ :header-rows: 1
91+ :stub-columns: 0
3892
39− - Equals CA_GET_SLOT_INFO for this command.
93+ -
94+ - type
95+ - name
96+ - description
4097
41− - .. row 3
98+ -
99+ - int
100+ - num
101+ - slot number
42102
43− - ca_slot_info_t \*
103+ -
104+ - int
105+ - type
106+ - CA interface this slot supports, as defined at :ref:`ca_slot_info_type`.
44107
45− - Undocumented.
108+ -
109+ - unsigned int
110+ - flags
111+ - flags as defined at :ref:`ca_slot_info_flag`.
46112
47113
48114 Description
49115 -----------
50116
51−This ioctl is undocumented. Documentation is welcome.
117+.. note:: This ioctl is undocumented. Documentation is welcome.
52118
53119
54120 Return Value
Documentation/media/uapi/dvb/ca-reset.rst+5−19
@@ -15,34 +15,20 @@ CA_RESET · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = CA_RESET)
18+.. c:function:: int ioctl(fd, CA_RESET)
19+ :name: CA_RESET
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals CA_RESET for this command.
40−
25+``fd``
26+ File descriptor returned by a previous call to :c:func:`open() <cec-open>`.
4127
4228 Description
4329 -----------
4430
45−This ioctl is undocumented. Documentation is welcome.
31+.. note:: This ioctl is undocumented. Documentation is welcome.
4632
4733
4834 Return Value
Documentation/media/uapi/dvb/ca-send-msg.rst+7−23
@@ -15,40 +15,24 @@ CA_SEND_MSG · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = CA_SEND_MSG, ca_msg_t *)
18+.. c:function:: int ioctl(fd, CA_SEND_MSG, struct ca_msg *msg)
19+ :name: CA_SEND_MSG
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
25+``fd``
26+ File descriptor returned by a previous call to :c:func:`open() <cec-open>`.
2727
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals CA_SEND_MSG for this command.
40−
41− - .. row 3
42−
43− - ca_msg_t \*
44−
45− - Undocumented.
28+``msg``
29+ Pointer to struct :c:type:`ca_msg`.
4630
4731
4832 Description
4933 -----------
5034
51−This ioctl is undocumented. Documentation is welcome.
35+.. note:: This ioctl is undocumented. Documentation is welcome.
5236
5337
5438 Return Value
Documentation/media/uapi/dvb/ca-set-descr.rst+7−23
@@ -15,40 +15,24 @@ CA_SET_DESCR · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = CA_SET_DESCR, ca_descr_t *)
18+.. c:function:: int ioctl(fd, CA_SET_DESCR, struct ca_descr *desc)
19+ :name: CA_SET_DESCR
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
25+``fd``
26+ File descriptor returned by a previous call to :c:func:`open() <cec-open>`.
2727
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals CA_SET_DESCR for this command.
40−
41− - .. row 3
42−
43− - ca_descr_t \*
44−
45− - Undocumented.
28+``msg``
29+ Pointer to struct :c:type:`ca_descr`.
4630
4731
4832 Description
4933 -----------
5034
51−This ioctl is undocumented. Documentation is welcome.
35+.. note:: This ioctl is undocumented. Documentation is welcome.
5236
5337
5438 Return Value
Documentation/media/uapi/dvb/ca-set-pid.rst+19−18
@@ -15,40 +15,41 @@ CA_SET_PID · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = CA_SET_PID, ca_pid_t *)
18+.. c:function:: int ioctl(fd, CA_SET_PID, struct ca_pid *pid)
19+ :name: CA_SET_PID
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
25+``fd``
26+ File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
3027
31− - int fd
28+``pid``
29+ Pointer to struct :c:type:`ca_pid`.
3230
33− - File descriptor returned by a previous call to open().
31+.. c:type:: ca_pid
3432
35− - .. row 2
36−
37− - int request
38−
39− - Equals CA_SET_PID for this command.
33+.. flat-table:: struct ca_pid
34+ :header-rows: 1
35+ :stub-columns: 0
4036
41− - .. row 3
37+ -
38+ - unsigned int
39+ - pid
40+ - Program ID
4241
43− - ca_pid_t \*
42+ -
43+ - int
44+ - index
45+ - PID index. Use -1 to disable.
4446
45− - Undocumented.
4647
4748
4849 Description
4950 -----------
5051
51−This ioctl is undocumented. Documentation is welcome.
52+.. note:: This ioctl is undocumented. Documentation is welcome.
5253
5354
5455 Return Value
Documentation/media/uapi/dvb/ca_data_types.rst+6−6
@@ -7,7 +7,7 @@ CA Data Types · 6 unmodified lines
77 *************
88
99
10−.. _ca-slot-info:
10+.. c:type:: ca_slot_info
1111
1212 ca_slot_info_t
1313 ==============
@@ -31,7 +31,7 @@ ca_slot_info_t · 17 unmodified lines
3131 } ca_slot_info_t;
3232
3333
34−.. _ca-descr-info:
34+.. c:type:: ca_descr_info
3535
3636 ca_descr_info_t
3737 ===============
@@ -48,7 +48,7 @@ ca_descr_info_t · 10 unmodified lines
4848 } ca_descr_info_t;
4949
5050
51−.. _ca-caps:
51+.. c:type:: ca_caps
5252
5353 ca_caps_t
5454 =========
@@ -64,7 +64,7 @@ ca_caps_t · 9 unmodified lines
6464 } ca_cap_t;
6565
6666
67−.. _ca-msg:
67+.. c:type:: ca_msg
6868
6969 ca_msg_t
7070 ========
@@ -81,7 +81,7 @@ ca_msg_t · 10 unmodified lines
8181 } ca_msg_t;
8282
8383
84−.. _ca-descr:
84+.. c:type:: ca_descr
8585
8686 ca_descr_t
8787 ==========
@@ -96,7 +96,7 @@ ca_descr_t · 8 unmodified lines
9696 } ca_descr_t;
9797
9898
99−.. _ca-pid:
99+.. c:type:: ca_pid
100100
101101 ca-pid
102102 ======
Documentation/media/uapi/dvb/dmx-add-pid.rst+6−22
@@ -15,34 +15,18 @@ DMX_ADD_PID · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = DMX_ADD_PID, __u16 *)
18+.. c:function:: int ioctl(fd, DMX_ADD_PID, __u16 *pid)
19+ :name: DMX_ADD_PID
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
25+``fd``
26+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
2727
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_ADD_PID for this command.
40−
41− - .. row 3
42−
43− - __u16 *
44−
45− - PID number to be filtered.
28+``pid``
29+ PID number to be filtered.
4630
4731
4832 Description
Documentation/media/uapi/dvb/dmx-fclose.rst+4−12
@@ -15,23 +15,15 @@ DVB demux close() · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int close(int fd)
18+.. c:function:: int close(int fd)
19+ :name: dvb-dmx-close
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
25+``fd``
26+ File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
3527
3628 Description
3729 -----------
Documentation/media/uapi/dvb/dmx-fopen.rst+18−27
@@ -15,43 +15,34 @@ DVB demux open() · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int open(const char *deviceName, int flags)
19−
18+.. c:function:: int open(const char *deviceName, int flags)
19+ :name: dvb-dmx-open
2020
2121 Arguments
2222 ---------
2323
24+``name``
25+ Name of specific DVB demux device.
26+
27+``flags``
28+ A bit-wise OR of the following flags:
29+
2430 .. flat-table::
2531 :header-rows: 0
2632 :stub-columns: 0
2733
34+ -
35+ - O_RDONLY
36+ - read-only access
2837
29− - .. row 1
30−
31− - const char \*deviceName
32−
33− - Name of demux device.
34−
35− - .. row 2
36−
37− - int flags
38−
39− - A bit-wise OR of the following flags:
40−
41− - .. row 3
42−
43− -
44− - O_RDWR read/write access
45−
46− - .. row 4
47−
48− -
49− - O_NONBLOCK open in non-blocking mode
50−
51− - .. row 5
38+ -
39+ - O_RDWR
40+ - read/write access
5241
53− -
54− - (blocking mode is the default)
42+ -
43+ - O_NONBLOCK
44+ - open in non-blocking mode
45+ (blocking mode is the default)
5546
5647
5748 Description
Documentation/media/uapi/dvb/dmx-fread.rst+10−24
@@ -15,35 +15,20 @@ DVB demux read() · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: size_t read(int fd, void *buf, size_t count)
19−
18+.. c:function:: size_t read(int fd, void *buf, size_t count)
19+ :name: dvb-dmx-read
2020
2121 Arguments
2222 ---------
2323
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
24+``fd``
25+ File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
3426
35− - .. row 2
36−
37− - void \*buf
38−
39− - Pointer to the buffer to be used for returned filtered data.
40−
41− - .. row 3
42−
43− - size_t count
44−
45− - Size of buf.
27+ ``buf``
28+ Buffer to be filled
4629
30+``count``
31+ Max number of bytes to read
4732
4833 Description
4934 -----------
@@ -53,10 +38,11 @@ data. The filtered data is transferred from the driver’s internal · 3 unmodified lines
5338 circular buffer to buf. The maximum amount of data to be transferred is
5439 implied by count.
5540
56−
5741 Return Value
5842 ------------
5943
44+.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
45+
6046 .. flat-table::
6147 :header-rows: 0
6248 :stub-columns: 0
Documentation/media/uapi/dvb/dmx-fwrite.rst+10−24
@@ -15,35 +15,20 @@ DVB demux write() · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: ssize_t write(int fd, const void *buf, size_t count)
19−
18+.. c:function:: ssize_t write(int fd, const void *buf, size_t count)
19+ :name: dvb-dmx-write
2020
2121 Arguments
2222 ---------
2323
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
24+``fd``
25+ File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
3426
35− - .. row 2
36−
37− - void \*buf
38−
39− - Pointer to the buffer containing the Transport Stream.
40−
41− - .. row 3
42−
43− - size_t count
44−
45− - Size of buf.
27+``buf``
28+ Buffer with data to be written
4629
30+``count``
31+ Number of bytes at the buffer
4732
4833 Description
4934 -----------
@@ -59,11 +44,12 @@ The amount of data to be transferred is implied by count. · 9 unmodified lines
5944 Return Value
6045 ------------
6146
47+.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
48+
6249 .. flat-table::
6350 :header-rows: 0
6451 :stub-columns: 0
6552
66−
6753 - .. row 1
6854
6955 - ``EWOULDBLOCK``
Documentation/media/uapi/dvb/dmx-get-caps.rst+7−25
@@ -15,41 +15,23 @@ DMX_GET_CAPS · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = DMX_GET_CAPS, dmx_caps_t *)
19−
18+.. c:function:: int ioctl(fd, DMX_GET_CAPS, struct dmx_caps *caps)
19+ :name: DMX_GET_CAPS
2020
2121 Arguments
2222 ---------
2323
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
24+``fd``
25+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
3626
37− - int request
38−
39− - Equals DMX_GET_CAPS for this command.
40−
41− - .. row 3
42−
43− - dmx_caps_t *
44−
45− - Undocumented.
27+``caps``
28+ Pointer to struct :c:type:`dmx_caps`
4629
4730
4831 Description
4932 -----------
5033
51−This ioctl is undocumented. Documentation is welcome.
52−
34+.. note:: This ioctl is undocumented. Documentation is welcome.
5335
5436 Return Value
5537 ------------
Documentation/media/uapi/dvb/dmx-get-event.rst+6−22
@@ -15,34 +15,18 @@ DMX_GET_EVENT · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl( int fd, int request = DMX_GET_EVENT, struct dmx_event *ev)
18+.. c:function:: int ioctl( int fd, DMX_GET_EVENT, struct dmx_event *ev)
19+ :name: DMX_GET_EVENT
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_GET_EVENT for this command.
40−
41− - .. row 3
42−
43− - struct dmx_event \*ev
25+``fd``
26+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
4427
45− - Pointer to the location where the event is to be stored.
28+``ev``
29+ Pointer to the location where the event is to be stored.
4630
4731
4832 Description
Documentation/media/uapi/dvb/dmx-get-pes-pids.rst+7−24
@@ -15,40 +15,23 @@ DMX_GET_PES_PIDS · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = DMX_GET_PES_PIDS, __u16[5])
19−
18+.. c:function:: int ioctl(fd, DMX_GET_PES_PIDS, __u16 pids[5])
19+ :name: DMX_GET_PES_PIDS
2020
2121 Arguments
2222 ---------
2323
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_GET_PES_PIDS for this command.
40−
41− - .. row 3
42−
43− - __u16[5]
24+``fd``
25+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
4426
45− - Undocumented.
27+``pids``
28+ Undocumented.
4629
4730
4831 Description
4932 -----------
5033
51−This ioctl is undocumented. Documentation is welcome.
34+.. note:: This ioctl is undocumented. Documentation is welcome.
5235
5336
5437 Return Value
Documentation/media/uapi/dvb/dmx-get-stc.rst+6−25
@@ -15,34 +15,17 @@ DMX_GET_STC · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl( int fd, int request = DMX_GET_STC, struct dmx_stc *stc)
19−
18+.. c:function:: int ioctl( int fd, DMX_GET_STC, struct dmx_stc *stc)
19+ :name: DMX_GET_STC
2020
2121 Arguments
2222 ---------
2323
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
24+``fd``
25+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
3226
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_GET_STC for this command.
40−
41− - .. row 3
42−
43− - struct dmx_stc \*stc
44−
45− - Pointer to the location where the stc is to be stored.
27+``stc``
28+ Pointer to the location where the stc is to be stored.
4629
4730
4831 Description
@@ -63,8 +46,6 @@ On success 0 is returned, on error -1 and the ``errno`` variable is set · 14 unmodified lines
6346 appropriately. The generic error codes are described at the
6447 :ref:`Generic Error Codes <gen-errors>` chapter.
6548
66−
67−
6849 .. flat-table::
6950 :header-rows: 0
7051 :stub-columns: 0
Documentation/media/uapi/dvb/dmx-remove-pid.rst+6−22
@@ -15,34 +15,18 @@ DMX_REMOVE_PID · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = DMX_REMOVE_PID, __u16 *)
18+.. c:function:: int ioctl(fd, DMX_REMOVE_PID, __u16 *pid)
19+ :name: DMX_REMOVE_PID
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
25+``fd``
26+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
2727
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_REMOVE_PID for this command.
40−
41− - .. row 3
42−
43− - __u16 *
44−
45− - PID of the PES filter to be removed.
28+``pid``
29+ PID of the PES filter to be removed.
4630
4731
4832 Description
Documentation/media/uapi/dvb/dmx-set-buffer-size.rst+6−23
@@ -15,35 +15,18 @@ DMX_SET_BUFFER_SIZE · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl( int fd, int request = DMX_SET_BUFFER_SIZE, unsigned long size)
18+.. c:function:: int ioctl( int fd, DMX_SET_BUFFER_SIZE, unsigned long size)
19+ :name: DMX_SET_BUFFER_SIZE
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_SET_BUFFER_SIZE for this command.
40−
41− - .. row 3
42−
43− - unsigned long size
44−
45− - Size of circular buffer.
25+``fd``
26+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
4627
28+``size``
29+ Unsigned long size
4730
4831 Description
4932 -----------
Documentation/media/uapi/dvb/dmx-set-filter.rst+6−22
@@ -15,34 +15,18 @@ DMX_SET_FILTER · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl( int fd, int request = DMX_SET_FILTER, struct dmx_sct_filter_params *params)
19−
18+.. c:function:: int ioctl( int fd, DMX_SET_FILTER, struct dmx_sct_filter_params *params)
19+ :name: DMX_SET_FILTER
2020
2121 Arguments
2222 ---------
2323
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_SET_FILTER for this command.
40−
41− - .. row 3
24+``fd``
25+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
4226
43− - struct dmx_sct_filter_params \*params
27+``params``
4428
45− - Pointer to structure containing filter parameters.
29+ Pointer to structure containing filter parameters.
4630
4731
4832 Description
Documentation/media/uapi/dvb/dmx-set-pes-filter.rst+7−22
@@ -15,34 +15,19 @@ DMX_SET_PES_FILTER · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl( int fd, int request = DMX_SET_PES_FILTER, struct dmx_pes_filter_params *params)
18+.. c:function:: int ioctl( int fd, DMX_SET_PES_FILTER, struct dmx_pes_filter_params *params)
19+ :name: DMX_SET_PES_FILTER
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
3225
33− - File descriptor returned by a previous call to open().
26+``fd``
27+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
3428
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_SET_PES_FILTER for this command.
40−
41− - .. row 3
42−
43− - struct dmx_pes_filter_params \*params
44−
45− - Pointer to structure containing filter parameters.
29+``params``
30+ Pointer to structure containing filter parameters.
4631
4732
4833 Description
@@ -61,7 +46,7 @@ On success 0 is returned, on error -1 and the ``errno`` variable is set · 12 unmodified lines
6146 appropriately. The generic error codes are described at the
6247 :ref:`Generic Error Codes <gen-errors>` chapter.
6348
64−
49+.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
6550
6651 .. flat-table::
6752 :header-rows: 0
Documentation/media/uapi/dvb/dmx-set-source.rst+7−22
@@ -15,40 +15,25 @@ DMX_SET_SOURCE · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl(fd, int request = DMX_SET_SOURCE, dmx_source_t *)
18+.. c:function:: int ioctl(fd, DMX_SET_SOURCE, struct dmx_source *src)
19+ :name: DMX_SET_SOURCE
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
2725
26+``fd``
27+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
2828
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_SET_SOURCE for this command.
40−
41− - .. row 3
42−
43− - dmx_source_t *
44−
45− - Undocumented.
29+``src``
30+ Undocumented.
4631
4732
4833 Description
4934 -----------
5035
51−This ioctl is undocumented. Documentation is welcome.
36+.. note:: This ioctl is undocumented. Documentation is welcome.
5237
5338
5439 Return Value
Documentation/media/uapi/dvb/dmx-start.rst+5−19
@@ -15,29 +15,15 @@ DMX_START · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl( int fd, int request = DMX_START)
18+.. c:function:: int ioctl( int fd, DMX_START)
19+ :name: DMX_START
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_START for this command.
40−
25+``fd``
26+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
4127
4228 Description
4329 -----------
@@ -53,7 +39,7 @@ On success 0 is returned, on error -1 and the ``errno`` variable is set · 9 unmodified lines
5339 appropriately. The generic error codes are described at the
5440 :ref:`Generic Error Codes <gen-errors>` chapter.
5541
56−
42+.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
5743
5844 .. flat-table::
5945 :header-rows: 0
Documentation/media/uapi/dvb/dmx-stop.rst+4−18
@@ -15,29 +15,15 @@ DMX_STOP · 14 unmodified lines
1515 Synopsis
1616 --------
1717
18−.. cpp:function:: int ioctl( int fd, int request = DMX_STOP)
18+.. c:function:: int ioctl( int fd, DMX_STOP)
19+ :name: DMX_STOP
1920
2021
2122 Arguments
2223 ---------
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals DMX_STOP for this command.
40−
25+``fd``
26+ File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
4127
4228 Description
4329 -----------
Documentation/media/uapi/dvb/dmx_types.rst+15−25
@@ -6,14 +6,12 @@ · 5 unmodified lines
66 Demux Data Types
77 ****************
88
9−
10−.. _dmx-output-t:
11−
129 Output for the demux
1310 ====================
1411
12+.. c:type:: dmx_output
1513
16−.. _dmx-output:
14+.. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
1715
1816 .. flat-table:: enum dmx_output
1917 :header-rows: 1
@@ -65,12 +63,10 @@ Output for the demux · 45 unmodified lines
6563 from the DMX device.
6664
6765
68−
69−.. _dmx-input-t:
70−
7166 dmx_input_t
7267 ===========
7368
69+.. c:type:: dmx_input
7470
7571 .. code-block:: c
7672
@@ -81,11 +77,11 @@ dmx_input_t · 4 unmodified lines
8177 } dmx_input_t;
8278
8379
84−.. _dmx-pes-type-t:
85−
8680 dmx_pes_type_t
8781 ==============
8882
83+.. c:type:: dmx_pes_type
84+
8985
9086 .. code-block:: c
9187
@@ -119,11 +115,10 @@ dmx_pes_type_t · 27 unmodified lines
119115 } dmx_pes_type_t;
120116
121117
122−.. _dmx-filter:
123−
124118 struct dmx_filter
125119 =================
126120
121+.. c:type:: dmx_filter
127122
128123 .. code-block:: c
129124
@@ -135,7 +130,7 @@ struct dmx_filter · 5 unmodified lines
135130 } dmx_filter_t;
136131
137132
138−.. _dmx-sct-filter-params:
133+.. c:type:: dmx_sct_filter_params
139134
140135 struct dmx_sct_filter_params
141136 ============================
@@ -156,11 +151,10 @@ struct dmx_sct_filter_params · 14 unmodified lines
156151 };
157152
158153
159−.. _dmx-pes-filter-params:
160−
161154 struct dmx_pes_filter_params
162155 ============================
163156
157+.. c:type:: dmx_pes_filter_params
164158
165159 .. code-block:: c
166160
@@ -174,11 +168,10 @@ struct dmx_pes_filter_params · 7 unmodified lines
174168 };
175169
176170
177−.. _dmx-event:
178−
179171 struct dmx_event
180172 ================
181173
174+.. c:type:: dmx_event
182175
183176 .. code-block:: c
184177
@@ -193,11 +186,10 @@ struct dmx_event · 8 unmodified lines
193186 };
194187
195188
196−.. _dmx-stc:
197−
198189 struct dmx_stc
199190 ==============
200191
192+.. c:type:: dmx_stc
201193
202194 .. code-block:: c
203195
@@ -208,11 +200,10 @@ struct dmx_stc · 4 unmodified lines
208200 };
209201
210202
211−.. _dmx-caps:
212−
213203 struct dmx_caps
214204 ===============
215205
206+.. c:type:: dmx_caps
216207
217208 .. code-block:: c
218209
@@ -222,15 +213,14 @@ struct dmx_caps · 3 unmodified lines
222213 } dmx_caps_t;
223214
224215
225−.. _dmx-source-t:
226−
227−enum dmx_source_t
228−=================
216+enum dmx_source
217+===============
229218
219+.. c:type:: dmx_source
230220
231221 .. code-block:: c
232222
233− typedef enum {
223+ typedef enum dmx_source {
234224 DMX_SOURCE_FRONT0 = 0,
235225 DMX_SOURCE_FRONT1,
236226 DMX_SOURCE_FRONT2,
Documentation/media/uapi/dvb/dtv-fe-stats.rst+1−1
@@ -1,6 +1,6 @@
11 .. -*- coding: utf-8; mode: rst -*-
22
3−.. _dtv-fe-stats:
3+.. c:type:: dtv_fe_stats
44
55 *******************
66 struct dtv_fe_stats
Documentation/media/uapi/dvb/dtv-properties.rst+1−1
@@ -1,6 +1,6 @@
11 .. -*- coding: utf-8; mode: rst -*-
22
3−.. _dtv-properties:
3+.. c:type:: dtv_properties
44
55 *********************
66 struct dtv_properties
Documentation/media/uapi/dvb/dtv-property.rst+1−1
@@ -1,6 +1,6 @@
11 .. -*- coding: utf-8; mode: rst -*-
22
3−.. _dtv-property:
3+.. c:type:: dtv_property
44
55 *******************
66 struct dtv_property
Documentation/media/uapi/dvb/dtv-stats.rst+1−1
@@ -1,6 +1,6 @@
11 .. -*- coding: utf-8; mode: rst -*-
22
3−.. _dtv-stats:
3+.. c:type:: dtv_stats
44
55 ****************
66 struct dtv_stats
Documentation/media/uapi/dvb/dvb-fe-read-status.rst+3−1
@@ -17,7 +17,9 @@ using :ref:`FE_READ_STATUS`. · 16 unmodified lines
1717 Signal statistics are provided via
1818 :ref:`FE_GET_PROPERTY`.
1919
20−.. note:: Most statistics require the demodulator to be fully locked
20+.. note::
21+
22+ Most statistics require the demodulator to be fully locked
2123 (e. g. with FE_HAS_LOCK bit set). See
2224 :ref:`Frontend statistics indicators <frontend-stat-properties>` for
2325 more details.
Documentation/media/uapi/dvb/dvb-frontend-event.rst+1−1
@@ -1,6 +1,6 @@
11 .. -*- coding: utf-8; mode: rst -*-
22
3−.. _dvb-frontend-event:
3+.. c:type:: dvb_frontend_event
44
55 ***************
66 frontend events
Documentation/media/uapi/dvb/dvb-frontend-parameters.rst+5−5
@@ -1,6 +1,6 @@
11 .. -*- coding: utf-8; mode: rst -*-
22
3−.. _dvb-frontend-parameters:
3+.. c:type:: dvb_frontend_parameters
44
55 *******************
66 frontend parameters
@@ -49,7 +49,7 @@ frontends the ``frequency`` specifies the absolute frequency and is · 42 unmodified lines
4949 given in Hz.
5050
5151
52−.. _dvb-qpsk-parameters:
52+.. c:type:: dvb_qpsk_parameters
5353
5454 QPSK parameters
5555 ===============
@@ -66,7 +66,7 @@ structure: · 10 unmodified lines
6666 };
6767
6868
69−.. _dvb-qam-parameters:
69+.. c:type:: dvb_qam_parameters
7070
7171 QAM parameters
7272 ==============
@@ -83,7 +83,7 @@ for cable QAM frontend you use the ``dvb_qam_parameters`` structure: · 10 unmodified lines
8383 };
8484
8585
86−.. _dvb-vsb-parameters:
86+.. c:type:: dvb_vsb_parameters
8787
8888 VSB parameters
8989 ==============
@@ -98,7 +98,7 @@ ATSC frontends are supported by the ``dvb_vsb_parameters`` structure: · 8 unmodified lines
9898 };
9999
100100
101−.. _dvb-ofdm-parameters:
101+.. c:type:: dvb_ofdm_parameters
102102
103103 OFDM parameters
104104 ===============
Documentation/media/uapi/dvb/dvbapi.rst+3−1
@@ -8,7 +8,9 @@ · 7 unmodified lines
88 Part II - Digital TV API
99 ########################
1010
11−.. note:: This API is also known as **DVB API**, although it is generic
11+.. note::
12+
13+ This API is also known as **DVB API**, although it is generic
1214 enough to support all digital TV standards.
1315
1416 **Version 5.10**
Documentation/media/uapi/dvb/dvbproperty.rst+4−2
@@ -20,8 +20,10 @@ Also, the union didn't have any space left to be expanded without · 19 unmodified lines
2020 breaking userspace. So, the decision was to deprecate the legacy
2121 union/struct based approach, in favor of a properties set approach.
2222
23−.. note:: On Linux DVB API version 3, setting a frontend were done via
24− :ref:`struct dvb_frontend_parameters <dvb-frontend-parameters>`.
23+.. note::
24+
25+ On Linux DVB API version 3, setting a frontend were done via
26+ struct :c:type:`dvb_frontend_parameters`.
2527 This got replaced on version 5 (also called "S2API", as this API were
2628 added originally_enabled to provide support for DVB-S2), because the
2729 old API has a very limited support to new standards and new hardware.
Documentation/media/uapi/dvb/examples.rst+3−1
@@ -9,7 +9,9 @@ Examples · 8 unmodified lines
99 In this section we would like to present some examples for using the DVB
1010 API.
1111
12−..note:: This section is out of date, and the code below won't even
12+.. note::
13+
14+ This section is out of date, and the code below won't even
1315 compile. Please refer to the
1416 `libdvbv5 <https://linuxtv.org/docs/libdvbv5/index.html>`__ for
1517 updated/recommended examples.
Documentation/media/uapi/dvb/fe-bandwidth-t.rst+1−4
@@ -1,13 +1,10 @@
11 .. -*- coding: utf-8; mode: rst -*-
22
3−.. _fe-bandwidth-t:
4−
53 ******************
64 Frontend bandwidth
75 ******************
86
9−
10−.. _fe-bandwidth:
7+.. c:type:: fe_bandwidth
118
129 .. flat-table:: enum fe_bandwidth
1310 :header-rows: 1
Documentation/media/uapi/dvb/fe-diseqc-recv-slave-reply.rst+5−8
@@ -15,7 +15,8 @@ FE_DISEQC_RECV_SLAVE_REPLY - Receives reply from a DiSEqC 2.0 command · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct dvb_diseqc_slave_reply *argp )
18+.. c:function:: int ioctl( int fd, FE_DISEQC_RECV_SLAVE_REPLY, struct dvb_diseqc_slave_reply *argp )
19+ :name: FE_DISEQC_RECV_SLAVE_REPLY
1920
2021
2122 Arguments
@@ -24,12 +25,9 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_DISEQC_RECV_SLAVE_REPLY
29−
3028 ``argp``
3129 pointer to struct
32− :ref:`dvb_diseqc_slave_reply <dvb-diseqc-slave-reply>`
30+ :c:type:`dvb_diseqc_slave_reply`
3331
3432
3533 Description
@@ -37,10 +35,9 @@ Description · 1 unmodified line
3735
3836 Receives reply from a DiSEqC 2.0 command.
3937
40−.. _dvb-diseqc-slave-reply:
38+.. c:type:: dvb_diseqc_slave_reply
4139
42−struct dvb_diseqc_slave_reply
43−-----------------------------
40+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
4441
4542 .. flat-table:: struct dvb_diseqc_slave_reply
4643 :header-rows: 0
Documentation/media/uapi/dvb/fe-diseqc-reset-overload.rst+2−5
@@ -15,7 +15,8 @@ FE_DISEQC_RESET_OVERLOAD - Restores the power to the antenna subsystem, if it wa · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, NULL )
18+.. c:function:: int ioctl( int fd, FE_DISEQC_RESET_OVERLOAD, NULL )
19+ :name: FE_DISEQC_RESET_OVERLOAD
1920
2021
2122 Arguments
@@ -24,10 +25,6 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_DISEQC_RESET_OVERLOAD
29−
30−
3128 Description
3229 ===========
3330
Documentation/media/uapi/dvb/fe-diseqc-send-burst.rst+4−11
@@ -15,7 +15,8 @@ FE_DISEQC_SEND_BURST - Sends a 22KHz tone burst for 2x1 mini DiSEqC satellite se · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, enum fe_sec_mini_cmd *tone )
18+.. c:function:: int ioctl( int fd, FE_DISEQC_SEND_BURST, enum fe_sec_mini_cmd *tone )
19+ :name: FE_DISEQC_SEND_BURST
1920
2021
2122 Arguments
@@ -24,11 +25,8 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_DISEQC_SEND_BURST
29−
3028 ``tone``
31− pointer to enum :ref:`fe_sec_mini_cmd <fe-sec-mini-cmd>`
29+ pointer to enum :c:type:`fe_sec_mini_cmd`
3230
3331
3432 Description
@@ -41,12 +39,7 @@ read/write permissions. · 6 unmodified lines
4139 It provides support for what's specified at
4240 `Digital Satellite Equipment Control (DiSEqC) - Simple "ToneBurst" Detection Circuit specification. <http://www.eutelsat.com/files/contributed/satellites/pdf/Diseqc/associated%20docs/simple_tone_burst_detec.pdf>`__
4341
44−.. _fe-sec-mini-cmd-t:
45−
46−enum fe_sec_mini_cmd
47−====================
48−
49−.. _fe-sec-mini-cmd:
42+.. c:type:: fe_sec_mini_cmd
5043
5144 .. flat-table:: enum fe_sec_mini_cmd
5245 :header-rows: 1
Documentation/media/uapi/dvb/fe-diseqc-send-master-cmd.rst+6−8
@@ -15,7 +15,8 @@ FE_DISEQC_SEND_MASTER_CMD - Sends a DiSEqC command · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct dvb_diseqc_master_cmd *argp )
18+.. c:function:: int ioctl( int fd, FE_DISEQC_SEND_MASTER_CMD, struct dvb_diseqc_master_cmd *argp )
19+ :name: FE_DISEQC_SEND_MASTER_CMD
1920
2021
2122 Arguments
@@ -24,12 +25,9 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_DISEQC_SEND_MASTER_CMD
29−
3028 ``argp``
3129 pointer to struct
32− :ref:`dvb_diseqc_master_cmd <dvb-diseqc-master-cmd>`
30+ :c:type:`dvb_diseqc_master_cmd`
3331
3432
3533 Description
@@ -37,10 +35,10 @@ Description · 1 unmodified line
3735
3836 Sends a DiSEqC command to the antenna subsystem.
3937
40−.. _dvb-diseqc-master-cmd:
4138
42−struct dvb_diseqc_master_cmd
43−============================
39+.. c:type:: dvb_diseqc_master_cmd
40+
41+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
4442
4543 .. flat-table:: struct dvb_diseqc_master_cmd
4644 :header-rows: 0
Documentation/media/uapi/dvb/fe-dishnetwork-send-legacy-cmd.rst+6−10
@@ -15,22 +15,18 @@ FE_DISHNETWORK_SEND_LEGACY_CMD · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl(int fd, int request = FE_DISHNETWORK_SEND_LEGACY_CMD, unsigned long cmd)
18+.. c:function:: int ioctl(int fd, FE_DISHNETWORK_SEND_LEGACY_CMD, unsigned long cmd)
19+ :name: FE_DISHNETWORK_SEND_LEGACY_CMD
1920
2021
2122 Arguments
2223 =========
2324
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
25+``fd``
26+ File descriptor returned by :c:func:`open() <dvb-fe-open>`.
2727
28−
29− - .. row 1
30−
31− - unsigned long cmd
32−
33− - sends the specified raw cmd to the dish via DISEqC.
28+``cmd``
29+ Sends the specified raw cmd to the dish via DISEqC.
3430
3531
3632 Description
Documentation/media/uapi/dvb/fe-enable-high-lnb-voltage.rst+2−4
@@ -15,7 +15,8 @@ FE_ENABLE_HIGH_LNB_VOLTAGE - Select output DC level between normal LNBf voltages · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, unsigned int high )
18+.. c:function:: int ioctl( int fd, FE_ENABLE_HIGH_LNB_VOLTAGE, unsigned int high )
19+ :name: FE_ENABLE_HIGH_LNB_VOLTAGE
1920
2021
2122 Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_ENABLE_HIGH_LNB_VOLTAGE
29−
3028 ``high``
3129 Valid flags:
3230
Documentation/media/uapi/dvb/fe-get-event.rst+8−27
@@ -11,43 +11,24 @@ Name · 10 unmodified lines
1111
1212 FE_GET_EVENT
1313
14+.. attention:: This ioctl is deprecated.
15+
1416
1517 Synopsis
1618 ========
1719
18−.. cpp:function:: int ioctl(int fd, int request = QPSK_GET_EVENT, struct dvb_frontend_event *ev)
20+.. c:function:: int ioctl(int fd, FE_GET_EVENT, struct dvb_frontend_event *ev)
21+ :name: FE_GET_EVENT
1922
2023
2124 Arguments
2225 =========
2326
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals :ref:`FE_GET_EVENT` for this command.
40−
41− - .. row 3
42−
43− - struct dvb_frontend_event \*ev
44−
45− - Points to the location where the event,
46−
47− - .. row 4
27+``fd``
28+ File descriptor returned by :c:func:`open() <dvb-fe-open>`.
4829
49− -
50− - if any, is to be stored.
30+``ev``
31+ Points to the location where the event, if any, is to be stored.
5132
5233
5334 Description
Documentation/media/uapi/dvb/fe-get-frontend.rst+8−22
@@ -11,39 +11,25 @@ Name · 10 unmodified lines
1111
1212 FE_GET_FRONTEND
1313
14+.. attention:: This ioctl is deprecated.
15+
1416
1517 Synopsis
1618 ========
1719
18−.. cpp:function:: int ioctl(int fd, int request = FE_GET_FRONTEND, struct dvb_frontend_parameters *p)
20+.. c:function:: int ioctl(int fd, FE_GET_FRONTEND, struct dvb_frontend_parameters *p)
21+ :name: FE_GET_FRONTEND
1922
2023
2124 Arguments
2225 =========
2326
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals :ref:`FE_SET_FRONTEND` for this
40− command.
41−
42− - .. row 3
27+``fd``
28+ File descriptor returned by :c:func:`open() <dvb-fe-open>`.
4329
44− - struct dvb_frontend_parameters \*p
4530
46− - Points to parameters for tuning operation.
31+``p``
32+ Points to parameters for tuning operation.
4733
4834
4935 Description
Documentation/media/uapi/dvb/fe-get-info.rst+11−13
@@ -15,7 +15,8 @@ FE_GET_INFO - Query DVB frontend capabilities and returns information about the · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct dvb_frontend_info *argp )
18+.. c:function:: int ioctl( int fd, FE_GET_INFO, struct dvb_frontend_info *argp )
19+ :name: FE_GET_INFO
1920
2021
2122 Arguments
@@ -24,12 +25,9 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_GET_INFO
29−
3028 ``argp``
3129 pointer to struct struct
32− :ref:`dvb_frontend_info <dvb-frontend-info>`
30+ :c:type:`dvb_frontend_info`
3331
3432
3533 Description
@@ -42,10 +40,9 @@ takes a pointer to dvb_frontend_info which is filled by the driver. · 6 unmodified lines
4240 When the driver is not compatible with this specification the ioctl
4341 returns an error.
4442
45−.. _dvb-frontend-info:
43+.. c:type:: dvb_frontend_info
4644
47−struct dvb_frontend_info
48−========================
45+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
4946
5047 .. flat-table:: struct dvb_frontend_info
5148 :header-rows: 0
@@ -137,18 +134,18 @@ struct dvb_frontend_info · 85 unmodified lines
137134
138135 - .. row 11
139136
140− - enum :ref:`fe_caps <fe-caps>`
137+ - enum :c:type:`fe_caps`
141138
142139 - caps
143140
144141 - Capabilities supported by the frontend
145142
146143
147−.. note:: The frequencies are specified in Hz for Terrestrial and Cable
148− systems. They're specified in kHz for Satellite systems
144+.. note::
149145
146+ The frequencies are specified in Hz for Terrestrial and Cable
147+ systems. They're specified in kHz for Satellite systems
150148
151−.. _fe-caps-t:
152149
153150 frontend capabilities
154151 =====================
@@ -156,8 +153,9 @@ frontend capabilities · 1 unmodified line
156153 Capabilities describe what a frontend can do. Some capabilities are
157154 supported only on some specific frontend types.
158155
156+.. c:type:: fe_caps
159157
160−.. _fe-caps:
158+.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
161159
162160 .. flat-table:: enum fe_caps
163161 :header-rows: 1
Documentation/media/uapi/dvb/fe-get-property.rst+6−5
@@ -15,7 +15,11 @@ FE_SET_PROPERTY - FE_GET_PROPERTY - FE_SET_PROPERTY sets one or more frontend pr · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct dtv_properties *argp )
18+.. c:function:: int ioctl( int fd, FE_GET_PROPERTY, struct dtv_properties *argp )
19+ :name: FE_GET_PROPERTY
20+
21+.. c:function:: int ioctl( int fd, FE_SET_PROPERTY, struct dtv_properties *argp )
22+ :name: FE_SET_PROPERTY
1923
2024
2125 Arguments
@@ -24,11 +28,8 @@ Arguments · 2 unmodified lines
2428 ``fd``
2529 File descriptor returned by :ref:`open() <frontend_f_open>`.
2630
27−``request``
28− FE_SET_PROPERTY, FE_GET_PROPERTY
29−
3031 ``argp``
31− pointer to struct :ref:`dtv_properties <dtv-properties>`
32+ pointer to struct :c:type:`dtv_properties`
3233
3334
3435 Description
Documentation/media/uapi/dvb/fe-read-ber.rst+8−22
@@ -11,37 +11,23 @@ Name · 10 unmodified lines
1111
1212 FE_READ_BER
1313
14+.. attention:: This ioctl is deprecated.
15+
1416 Synopsis
1517 ========
1618
17−.. cpp:function:: int ioctl(int fd, int request = FE_READ_BER, uint32_t *ber)
19+.. c:function:: int ioctl(int fd, FE_READ_BER, uint32_t *ber)
20+ :name: FE_READ_BER
1821
1922
2023 Arguments
2124 =========
2225
23−.. flat-table::
24− :header-rows: 0
25− :stub-columns: 0
26−
27−
28− - .. row 1
29−
30− - int fd
31−
32− - File descriptor returned by a previous call to open().
33−
34− - .. row 2
35−
36− - int request
37−
38− - Equals :ref:`FE_READ_BER` for this command.
39−
40− - .. row 3
41−
42− - uint32_t \*ber
26+``fd``
27+ File descriptor returned by :c:func:`open() <dvb-fe-open>`.
4328
44− - The bit error rate is stored into \*ber.
29+``ber``
30+ The bit error rate is stored into \*ber.
4531
4632
4733 Description
Documentation/media/uapi/dvb/fe-read-signal-strength.rst+7−24
@@ -11,40 +11,23 @@ Name · 10 unmodified lines
1111
1212 FE_READ_SIGNAL_STRENGTH
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 ========
1718
18−.. cpp:function:: int ioctl( int fd, int request = FE_READ_SIGNAL_STRENGTH, uint16_t *strength)
19+.. c:function:: int ioctl( int fd, FE_READ_SIGNAL_STRENGTH, uint16_t *strength)
20+ :name: FE_READ_SIGNAL_STRENGTH
1921
2022
2123 Arguments
2224 =========
2325
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
26+``fd``
27+ File descriptor returned by :c:func:`open() <dvb-fe-open>`.
2728
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals
40− :ref:`FE_READ_SIGNAL_STRENGTH`
41− for this command.
42−
43− - .. row 3
44−
45− - uint16_t \*strength
46−
47− - The signal strength value is stored into \*strength.
29+``strength``
30+ The signal strength value is stored into \*strength.
4831
4932
5033 Description
Documentation/media/uapi/dvb/fe-read-snr.rst+7−22
@@ -11,38 +11,23 @@ Name · 10 unmodified lines
1111
1212 FE_READ_SNR
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 ========
1718
18−.. cpp:function:: int ioctl(int fd, int request = FE_READ_SNR, int16_t *snr)
19+.. c:function:: int ioctl(int fd, FE_READ_SNR, int16_t *snr)
20+ :name: FE_READ_SNR
1921
2022
2123 Arguments
2224 =========
2325
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
26+``fd``
27+ File descriptor returned by :c:func:`open() <dvb-fe-open>`.
2728
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals :ref:`FE_READ_SNR` for this command.
40−
41− - .. row 3
42−
43− - uint16_t \*snr
44−
45− - The signal-to-noise ratio is stored into \*snr.
29+``snr``
30+ The signal-to-noise ratio is stored into \*snr.
4631
4732
4833 Description
Documentation/media/uapi/dvb/fe-read-status.rst+10−9
@@ -15,7 +15,8 @@ FE_READ_STATUS - Returns status information about the front-end. This call only · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, unsigned int *status )
18+.. c:function:: int ioctl( int fd, FE_READ_STATUS, unsigned int *status )
19+ :name: FE_READ_STATUS
1920
2021
2122 Arguments
@@ -24,12 +25,9 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_READ_STATUS
29−
3028 ``status``
3129 pointer to a bitmask integer filled with the values defined by enum
32− :ref:`fe_status <fe-status>`.
30+ :c:type:`fe_status`.
3331
3432
3533 Description
@@ -40,20 +38,23 @@ used to check about the locking status of the frontend after being · 4 unmodified lines
4038 tuned. The ioctl takes a pointer to an integer where the status will be
4139 written.
4240
43−.. note:: The size of status is actually sizeof(enum fe_status), with
41+.. note::
42+
43+ The size of status is actually sizeof(enum fe_status), with
4444 varies according with the architecture. This needs to be fixed in the
4545 future.
4646
4747
48−.. _fe-status-t:
49−
5048 int fe_status
5149 =============
5250
5351 The fe_status parameter is used to indicate the current state and/or
5452 state changes of the frontend hardware. It is produced using the enum
55−:ref:`fe_status <fe-status>` values on a bitmask
53+:c:type:`fe_status` values on a bitmask
54+
55+.. c:type:: fe_status
5656
57+.. tabularcolumns:: |p{3.5cm}|p{14.0cm}|
5758
5859 .. _fe-status:
5960
Documentation/media/uapi/dvb/fe-read-uncorrected-blocks.rst+7−24
@@ -11,40 +11,23 @@ Name · 10 unmodified lines
1111
1212 FE_READ_UNCORRECTED_BLOCKS
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 ========
1718
18−.. cpp:function:: int ioctl( int fd, int request =FE_READ_UNCORRECTED_BLOCKS, uint32_t *ublocks)
19+.. c:function:: int ioctl( int fd, FE_READ_UNCORRECTED_BLOCKS, uint32_t *ublocks)
20+ :name: FE_READ_UNCORRECTED_BLOCKS
1921
2022
2123 Arguments
2224 =========
2325
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
26+``fd``
27+ File descriptor returned by :c:func:`open() <dvb-fe-open>`.
2728
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals
40− :ref:`FE_READ_UNCORRECTED_BLOCKS`
41− for this command.
42−
43− - .. row 3
44−
45− - uint32_t \*ublocks
46−
47− - The total number of uncorrected blocks seen by the driver so far.
29+``ublocks``
30+ The total number of uncorrected blocks seen by the driver so far.
4831
4932
5033 Description
Documentation/media/uapi/dvb/fe-set-frontend-tune-mode.rst+2−4
@@ -15,7 +15,8 @@ FE_SET_FRONTEND_TUNE_MODE - Allow setting tuner mode flags to the frontend. · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, unsigned int flags )
18+.. c:function:: int ioctl( int fd, FE_SET_FRONTEND_TUNE_MODE, unsigned int flags )
19+ :name: FE_SET_FRONTEND_TUNE_MODE
1920
2021
2122 Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_SET_FRONTEND_TUNE_MODE
29−
3028 ``flags``
3129 Valid flags:
3230
Documentation/media/uapi/dvb/fe-set-frontend.rst+8−23
@@ -6,6 +6,8 @@ · 5 unmodified lines
66 FE_SET_FRONTEND
77 ***************
88
9+.. attention:: This ioctl is deprecated.
10+
911 Name
1012 ====
1113
@@ -15,35 +17,18 @@ FE_SET_FRONTEND · 3 unmodified lines
1517 Synopsis
1618 ========
1719
18−.. cpp:function:: int ioctl(int fd, int request = FE_SET_FRONTEND, struct dvb_frontend_parameters *p)
20+.. c:function:: int ioctl(int fd, FE_SET_FRONTEND, struct dvb_frontend_parameters *p)
21+ :name: FE_SET_FRONTEND
1922
2023
2124 Arguments
2225 =========
2326
24−.. flat-table::
25− :header-rows: 0
26− :stub-columns: 0
27−
28−
29− - .. row 1
30−
31− - int fd
32−
33− - File descriptor returned by a previous call to open().
34−
35− - .. row 2
36−
37− - int request
38−
39− - Equals :ref:`FE_SET_FRONTEND` for this
40− command.
41−
42− - .. row 3
43−
44− - struct dvb_frontend_parameters \*p
27+``fd``
28+ File descriptor returned by :c:func:`open() <dvb-fe-open>`.
4529
46− - Points to parameters for tuning operation.
30+``p``
31+ Points to parameters for tuning operation.
4732
4833
4934 Description
Documentation/media/uapi/dvb/fe-set-tone.rst+4−11
@@ -15,7 +15,8 @@ FE_SET_TONE - Sets/resets the generation of the continuous 22kHz tone. · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, enum fe_sec_tone_mode *tone )
18+.. c:function:: int ioctl( int fd, FE_SET_TONE, enum fe_sec_tone_mode *tone )
19+ :name: FE_SET_TONE
1920
2021
2122 Arguments
@@ -24,11 +25,8 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_SET_TONE
29−
3028 ``tone``
31− pointer to enum :ref:`fe_sec_tone_mode <fe-sec-tone-mode>`
29+ pointer to enum :c:type:`fe_sec_tone_mode`
3230
3331
3432 Description
@@ -47,12 +45,7 @@ this is done using the DiSEqC ioctls. · 12 unmodified lines
4745 capability of selecting the band. So, it is recommended that applications
4846 would change to SEC_TONE_OFF when the device is not used.
4947
50−.. _fe-sec-tone-mode-t:
51−
52−enum fe_sec_tone_mode
53−=====================
54−
55−.. _fe-sec-tone-mode:
48+.. c:type:: fe_sec_tone_mode
5649
5750 .. flat-table:: enum fe_sec_tone_mode
5851 :header-rows: 1
Documentation/media/uapi/dvb/fe-set-voltage.rst+4−6
@@ -15,7 +15,8 @@ FE_SET_VOLTAGE - Allow setting the DC level sent to the antenna subsystem. · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, enum fe_sec_voltage *voltage )
18+.. c:function:: int ioctl( int fd, FE_SET_VOLTAGE, enum fe_sec_voltage *voltage )
19+ :name: FE_SET_VOLTAGE
1920
2021
2122 Arguments
@@ -24,14 +25,11 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_SET_VOLTAGE
29−
3028 ``voltage``
31− pointer to enum :ref:`fe_sec_voltage <fe-sec-voltage>`
29+ pointer to enum :c:type:`fe_sec_voltage`
3230
3331 Valid values are described at enum
34− :ref:`fe_sec_voltage <fe-sec-voltage>`.
32+ :c:type:`fe_sec_voltage`.
3533
3634
3735 Description
Documentation/media/uapi/dvb/fe-type-t.rst+5−5
@@ -1,7 +1,5 @@
11 .. -*- coding: utf-8; mode: rst -*-
22
3−.. _fe-type-t:
4−
53 *************
64 Frontend type
75 *************
@@ -11,7 +9,9 @@ modulation used in transmission. The fontend types are given by · 3 unmodified lines
119 fe_type_t type, defined as:
1210
1311
14−.. _fe-type:
12+.. c:type:: fe_type
13+
14+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
1515
1616 .. flat-table:: Frontend types
1717 :header-rows: 1
@@ -76,7 +76,7 @@ at the above, as they're supported via the new · 58 unmodified lines
7676 ioctl's, using the :ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>`
7777 parameter.
7878
79−In the old days, struct :ref:`dvb_frontend_info <dvb-frontend-info>`
79+In the old days, struct :c:type:`dvb_frontend_info`
8080 used to contain ``fe_type_t`` field to indicate the delivery systems,
8181 filled with either FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC. While this
8282 is still filled to keep backward compatibility, the usage of this field
@@ -85,7 +85,7 @@ devices support multiple delivery systems. Please use · 2 unmodified lines
8585 :ref:`DTV_ENUM_DELSYS <DTV-ENUM-DELSYS>` instead.
8686
8787 On devices that support multiple delivery systems, struct
88−:ref:`dvb_frontend_info <dvb-frontend-info>`::``fe_type_t`` is
88+:c:type:`dvb_frontend_info`::``fe_type_t`` is
8989 filled with the currently standard, as selected by the last call to
9090 :ref:`FE_SET_PROPERTY <FE_GET_PROPERTY>` using the
9191 :ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>` property.
Documentation/media/uapi/dvb/fe_property_parameters.rst+29−48
@@ -68,10 +68,10 @@ DTV_MODULATION · 67 unmodified lines
6868
6969 Specifies the frontend modulation type for delivery systems that
7070 supports more than one modulation type. The modulation can be one of the
71−types defined by enum :ref:`fe_modulation <fe-modulation>`.
71+types defined by enum :c:type:`fe_modulation`.
7272
7373
74−.. _fe-modulation-t:
74+.. c:type:: fe_modulation
7575
7676 Modulation property
7777 -------------------
@@ -82,8 +82,6 @@ enum contains the values used by the Kernel. Please note that not all · 4 unmodified lines
8282 modulations are supported by a given standard.
8383
8484
85−.. _fe-modulation:
86−
8785 .. flat-table:: enum fe_modulation
8886 :header-rows: 1
8987 :stub-columns: 0
@@ -251,8 +249,7 @@ DTV_INVERSION · 161 unmodified lines
251249
252250 Specifies if the frontend should do spectral inversion or not.
253251
254−
255−.. _fe-spectral-inversion-t:
252+.. c:type:: fe_spectral_inversion
256253
257254 enum fe_modulation: Frontend spectral inversion
258255 -----------------------------------------------
@@ -264,8 +261,6 @@ support, the DVB core will try to lock at the carrier first with · 5 unmodified lines
264261 inversion off. If it fails, it will try to enable inversion.
265262
266263
267−.. _fe-spectral-inversion:
268−
269264 .. flat-table:: enum fe_modulation
270265 :header-rows: 1
271266 :stub-columns: 0
@@ -327,15 +322,11 @@ DTV_INNER_FEC · 55 unmodified lines
327322
328323 Used cable/satellite transmissions. The acceptable values are:
329324
330−
331−.. _fe-code-rate-t:
325+.. c:type:: fe_code_rate
332326
333327 enum fe_code_rate: type of the Forward Error Correction.
334328 --------------------------------------------------------
335329
336−
337−.. _fe-code-rate:
338−
339330 .. flat-table:: enum fe_code_rate
340331 :header-rows: 1
341332 :stub-columns: 0
@@ -464,7 +455,7 @@ voltage has to be switched consistently to the DiSEqC commands as · 122 unmodified lines
464455 described in the DiSEqC spec.
465456
466457
467−.. _fe-sec-voltage:
458+.. c:type:: fe_sec_voltage
468459
469460 .. flat-table:: enum fe_sec_voltage
470461 :header-rows: 1
@@ -519,14 +510,12 @@ DTV_PILOT · 48 unmodified lines
519510 Sets DVB-S2 pilot
520511
521512
522−.. _fe-pilot-t:
513+.. c:type:: fe_pilot
523514
524515 fe_pilot type
525516 -------------
526517
527518
528−.. _fe-pilot:
529−
530519 .. flat-table:: enum fe_pilot
531520 :header-rows: 1
532521 :stub-columns: 0
@@ -572,14 +561,12 @@ DTV_ROLLOFF · 39 unmodified lines
572561 Sets DVB-S2 rolloff
573562
574563
575−.. _fe-rolloff-t:
564+.. c:type:: fe_rolloff
576565
577566 fe_rolloff type
578567 ---------------
579568
580569
581−.. _fe-rolloff:
582−
583570 .. flat-table:: enum fe_rolloff
584571 :header-rows: 1
585572 :stub-columns: 0
@@ -657,7 +644,7 @@ DTV_DELIVERY_SYSTEM · 71 unmodified lines
657644 Specifies the type of Delivery system
658645
659646
660−.. _fe-delivery-system-t:
647+.. c:type:: fe_delivery_system
661648
662649 fe_delivery_system type
663650 -----------------------
@@ -665,8 +652,6 @@ fe_delivery_system type · 1 unmodified line
665652 Possible values:
666653
667654
668−.. _fe-delivery-system:
669−
670655 .. flat-table:: enum fe_delivery_system
671656 :header-rows: 1
672657 :stub-columns: 0
@@ -1005,10 +990,9 @@ Possible values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1 (AUTO) · 332 unmodified lines
1005990 Note: Truth table for ``DTV_ISDBT_SOUND_BROADCASTING`` and
1006991 ``DTV_ISDBT_PARTIAL_RECEPTION`` and ``LAYER[A-C]_SEGMENT_COUNT``
1007992
1008−
1009993 .. _isdbt-layer_seg-cnt-table:
1010994
1011−.. flat-table::
995+.. flat-table:: Truth table for ISDB-T Sound Broadcasting
1012996 :header-rows: 0
1013997 :stub-columns: 0
1014998
@@ -1099,9 +1083,9 @@ The values here are referring to what can be found in the · 84 unmodified lines
10991083 TMCC-structure, as shown in the table below.
11001084
11011085
1102−.. _isdbt-layer-interleaving-table:
1086+.. c:type:: isdbt_layer_interleaving_table
11031087
1104−.. flat-table::
1088+.. flat-table:: ISDB-T time interleaving modes
11051089 :header-rows: 0
11061090 :stub-columns: 0
11071091
@@ -1234,8 +1218,9 @@ Reed Solomon (RS) frame mode. · 126 unmodified lines
12341218
12351219 Possible values are:
12361220
1221+.. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
12371222
1238−.. _atscmh-rs-frame-mode:
1223+.. c:type:: atscmh_rs_frame_mode
12391224
12401225 .. flat-table:: enum atscmh_rs_frame_mode
12411226 :header-rows: 1
@@ -1279,7 +1264,7 @@ Reed Solomon(RS) frame ensemble. · 37 unmodified lines
12791264 Possible values are:
12801265
12811266
1282−.. _atscmh-rs-frame-ensemble:
1267+.. c:type:: atscmh_rs_frame_ensemble
12831268
12841269 .. flat-table:: enum atscmh_rs_frame_ensemble
12851270 :header-rows: 1
@@ -1328,7 +1313,7 @@ Reed Solomon (RS) code mode (primary). · 42 unmodified lines
13281313 Possible values are:
13291314
13301315
1331−.. _atscmh-rs-code-mode:
1316+.. c:type:: atscmh_rs_code_mode
13321317
13331318 .. flat-table:: enum atscmh_rs_code_mode
13341319 :header-rows: 1
@@ -1383,7 +1368,7 @@ DTV_ATSCMH_RS_CODE_MODE_SEC · 48 unmodified lines
13831368 Reed Solomon (RS) code mode (secondary).
13841369
13851370 Possible values are the same as documented on enum
1386−:ref:`atscmh_rs_code_mode <atscmh-rs-code-mode>`:
1371+:c:type:`atscmh_rs_code_mode`:
13871372
13881373
13891374 .. _DTV-ATSCMH-SCCC-BLOCK-MODE:
@@ -1395,8 +1380,9 @@ Series Concatenated Convolutional Code Block Mode. · 5 unmodified lines
13951380
13961381 Possible values are:
13971382
1383+.. tabularcolumns:: |p{4.5cm}|p{13.0cm}|
13981384
1399−.. _atscmh-sccc-block-mode:
1385+.. c:type:: atscmh_sccc_block_mode
14001386
14011387 .. flat-table:: enum atscmh_scc_block_mode
14021388 :header-rows: 1
@@ -1447,7 +1433,7 @@ Series Concatenated Convolutional Code Rate. · 44 unmodified lines
14471433 Possible values are:
14481434
14491435
1450−.. _atscmh-sccc-code-mode:
1436+.. c:type:: atscmh_sccc_code_mode
14511437
14521438 .. flat-table:: enum atscmh_sccc_code_mode
14531439 :header-rows: 1
@@ -1494,7 +1480,7 @@ DTV_ATSCMH_SCCC_CODE_MODE_B · 40 unmodified lines
14941480 Series Concatenated Convolutional Code Rate.
14951481
14961482 Possible values are the same as documented on enum
1497−:ref:`atscmh_sccc_code_mode <atscmh-sccc-code-mode>`.
1483+:c:type:`atscmh_sccc_code_mode`.
14981484
14991485
15001486 .. _DTV-ATSCMH-SCCC-CODE-MODE-C:
@@ -1505,7 +1491,7 @@ DTV_ATSCMH_SCCC_CODE_MODE_C · 4 unmodified lines
15051491 Series Concatenated Convolutional Code Rate.
15061492
15071493 Possible values are the same as documented on enum
1508−:ref:`atscmh_sccc_code_mode <atscmh-sccc-code-mode>`.
1494+:c:type:`atscmh_sccc_code_mode`.
15091495
15101496
15111497 .. _DTV-ATSCMH-SCCC-CODE-MODE-D:
@@ -1516,7 +1502,7 @@ DTV_ATSCMH_SCCC_CODE_MODE_D · 4 unmodified lines
15161502 Series Concatenated Convolutional Code Rate.
15171503
15181504 Possible values are the same as documented on enum
1519−:ref:`atscmh_sccc_code_mode <atscmh-sccc-code-mode>`.
1505+:c:type:`atscmh_sccc_code_mode`.
15201506
15211507
15221508 .. _DTV-API-VERSION:
@@ -1533,7 +1519,7 @@ DTV_CODE_RATE_HP · 10 unmodified lines
15331519 ================
15341520
15351521 Used on terrestrial transmissions. The acceptable values are the ones
1536−described at :ref:`fe_transmit_mode_t <fe-transmit-mode-t>`.
1522+described at :c:type:`fe_transmit_mode`.
15371523
15381524
15391525 .. _DTV-CODE-RATE-LP:
@@ -1542,7 +1528,7 @@ DTV_CODE_RATE_LP · 2 unmodified lines
15421528 ================
15431529
15441530 Used on terrestrial transmissions. The acceptable values are the ones
1545−described at :ref:`fe_transmit_mode_t <fe-transmit-mode-t>`.
1531+described at :c:type:`fe_transmit_mode`.
15461532
15471533
15481534 .. _DTV-GUARD-INTERVAL:
@@ -1553,14 +1539,12 @@ DTV_GUARD_INTERVAL · 4 unmodified lines
15531539 Possible values are:
15541540
15551541
1556−.. _fe-guard-interval-t:
1542+.. c:type:: fe_guard_interval
15571543
15581544 Modulation guard interval
15591545 -------------------------
15601546
15611547
1562−.. _fe-guard-interval:
1563−
15641548 .. flat-table:: enum fe_guard_interval
15651549 :header-rows: 1
15661550 :stub-columns: 0
@@ -1682,13 +1666,12 @@ Specifies the number of carriers used by the standard. This is used only · 115 unmodified lines
16821666 on OFTM-based standards, e. g. DVB-T/T2, ISDB-T, DTMB
16831667
16841668
1685−.. _fe-transmit-mode-t:
1669+.. c:type:: fe_transmit_mode
16861670
16871671 enum fe_transmit_mode: Number of carriers per channel
16881672 -----------------------------------------------------
16891673
1690−
1691−.. _fe-transmit-mode:
1674+.. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
16921675
16931676 .. flat-table:: enum fe_transmit_mode
16941677 :header-rows: 1
@@ -1799,14 +1782,12 @@ DTV_HIERARCHY · 104 unmodified lines
17991782 Frontend hierarchy
18001783
18011784
1802−.. _fe-hierarchy-t:
1785+.. c:type:: fe_hierarchy
18031786
18041787 Frontend hierarchy
18051788 ------------------
18061789
18071790
1808−.. _fe-hierarchy:
1809−
18101791 .. flat-table:: enum fe_hierarchy
18111792 :header-rows: 1
18121793 :stub-columns: 0
@@ -1912,7 +1893,7 @@ DTV_INTERLEAVING · 99 unmodified lines
19121893 Time interleaving to be used. Currently, used only on DTMB.
19131894
19141895
1915−.. _fe-interleaving:
1896+.. c:type:: fe_interleaving
19161897
19171898 .. flat-table:: enum fe_interleaving
19181899 :header-rows: 1
Documentation/media/uapi/dvb/frontend-stat-properties.rst+1−1
@@ -20,7 +20,7 @@ standards, up to 3 groups of statistics can be provided, and · 19 unmodified lines
2020 plus one metric per each carrier group (called "layer" on ISDB).
2121
2222 So, in order to be consistent with other delivery systems, the first
23−value at :ref:`dtv_property.stat.dtv_stats <dtv-stats>` array refers
23+value at :c:type:`dtv_property.stat.dtv_stats <dtv_stats>` array refers
2424 to the global metric. The other elements of the array represent each
2525 layer, starting from layer A(index 1), layer B (index 2) and so on.
2626
Documentation/media/uapi/dvb/frontend.rst+3−1
@@ -29,7 +29,9 @@ The frontend can be accessed through ``/dev/dvb/adapter?/frontend?``. · 28 unmodified lines
2929 Data types and ioctl definitions can be accessed by including
3030 ``linux/dvb/frontend.h`` in your application.
3131
32−.. note:: Transmission via the internet (DVB-IP) is not yet handled by this
32+.. note::
33+
34+ Transmission via the internet (DVB-IP) is not yet handled by this
3335 API but a future extension is possible.
3436
3537 On Satellite systems, the API support for the Satellite Equipment
Documentation/media/uapi/dvb/frontend_f_close.rst+3−3
@@ -20,14 +20,14 @@ Synopsis · 19 unmodified lines
2020 #include <unistd.h>
2121
2222
23−.. cpp:function:: int close( int fd )
24−
23+.. c:function:: int close( int fd )
24+ :name: dvb-fe-close
2525
2626 Arguments
2727 =========
2828
2929 ``fd``
30− File descriptor returned by :ref:`open() <func-open>`.
30+ File descriptor returned by :c:func:`open() <dvb-fe-open>`.
3131
3232
3333 Description
Documentation/media/uapi/dvb/frontend_f_open.rst+2−2
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
2020 #include <fcntl.h>
2121
2222
23−.. cpp:function:: int open( const char *device_name, int flags )
24−
23+.. c:function:: int open( const char *device_name, int flags )
24+ :name: dvb-fe-open
2525
2626 Arguments
2727 =========
Documentation/media/uapi/dvb/net-add-if.rst+5−13
@@ -15,7 +15,8 @@ NET_ADD_IF - Creates a new network interface for a given Packet ID. · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct dvb_net_if *net_if )
18+.. c:function:: int ioctl( int fd, NET_ADD_IF, struct dvb_net_if *net_if )
19+ :name: NET_ADD_IF
1920
2021
2122 Arguments
@@ -24,11 +25,8 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_SET_TONE
29−
3028 ``net_if``
31− pointer to struct :ref:`dvb_net_if <dvb-net-if>`
29+ pointer to struct :c:type:`dvb_net_if`
3230
3331
3432 Description
@@ -40,16 +38,10 @@ ULE) and the interface number for the new interface to be created. When · 5 unmodified lines
4038 the system call successfully returns, a new virtual network interface is
4139 created.
4240
43−The struct :ref:`dvb_net_if <dvb-net-if>`::ifnum field will be
41+The struct :c:type:`dvb_net_if`::ifnum field will be
4442 filled with the number of the created interface.
4543
46−
47−.. _dvb-net-if-t:
48−
49−struct dvb_net_if description
50−=============================
51−
52−.. _dvb-net-if:
44+.. c:type:: dvb_net_if
5345
5446 .. flat-table:: struct dvb_net_if
5547 :header-rows: 1
Documentation/media/uapi/dvb/net-get-if.rst+5−7
@@ -15,7 +15,8 @@ NET_GET_IF - Read the configuration data of an interface created via - :ref:`NET · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct dvb_net_if *net_if )
18+.. c:function:: int ioctl( int fd, NET_GET_IF, struct dvb_net_if *net_if )
19+ :name: NET_GET_IF
1920
2021
2122 Arguments
@@ -24,19 +25,16 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_SET_TONE
29−
3028 ``net_if``
31− pointer to struct :ref:`dvb_net_if <dvb-net-if>`
29+ pointer to struct :c:type:`dvb_net_if`
3230
3331
3432 Description
3533 ===========
3634
3735 The NET_GET_IF ioctl uses the interface number given by the struct
38−:ref:`dvb_net_if <dvb-net-if>`::ifnum field and fills the content of
39−struct :ref:`dvb_net_if <dvb-net-if>` with the packet ID and
36+:c:type:`dvb_net_if`::ifnum field and fills the content of
37+struct :c:type:`dvb_net_if` with the packet ID and
4038 encapsulation type used on such interface. If the interface was not
4139 created yet with :ref:`NET_ADD_IF <net>`, it will return -1 and fill
4240 the ``errno`` with ``EINVAL`` error code.
Documentation/media/uapi/dvb/net-remove-if.rst+2−4
@@ -15,7 +15,8 @@ NET_REMOVE_IF - Removes a network interface. · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, int ifnum )
18+.. c:function:: int ioctl( int fd, NET_REMOVE_IF, int ifnum )
19+ :name: NET_REMOVE_IF
1920
2021
2122 Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <frontend_f_open>`.
2627
27−``request``
28− FE_SET_TONE
29−
3028 ``net_if``
3129 number of the interface to be removed
3230
Documentation/media/uapi/dvb/video-clear-buffer.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_CLEAR_BUFFER
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_CLEAR_BUFFER)
19+.. c:function:: int ioctl(fd, VIDEO_CLEAR_BUFFER)
20+ :name: VIDEO_CLEAR_BUFFER
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-command.rst+33−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_COMMAND
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = VIDEO_COMMAND, struct video_command *cmd)
19+.. c:function:: int ioctl(int fd, VIDEO_COMMAND, struct video_command *cmd)
20+ :name: VIDEO_COMMAND
1921
2022
2123 Arguments
@@ -57,6 +59,36 @@ subset of the ``v4l2_decoder_cmd`` struct, so refer to the · 35 unmodified lines
5759 :ref:`VIDIOC_DECODER_CMD` documentation for
5860 more information.
5961
62+.. c:type:: struct video_command
63+
64+.. code-block:: c
65+
66+ /* The structure must be zeroed before use by the application
67+ This ensures it can be extended safely in the future. */
68+ struct video_command {
69+ __u32 cmd;
70+ __u32 flags;
71+ union {
72+ struct {
73+ __u64 pts;
74+ } stop;
75+
76+ struct {
77+ /* 0 or 1000 specifies normal speed,
78+ 1 specifies forward single stepping,
79+ -1 specifies backward single stepping,
80+ >1: playback at speed/1000 of the normal speed,
81+ <-1: reverse playback at (-speed/1000) of the normal speed. */
82+ __s32 speed;
83+ __u32 format;
84+ } play;
85+
86+ struct {
87+ __u32 data[16];
88+ } raw;
89+ };
90+ };
91+
6092
6193 Return Value
6294 ------------
Documentation/media/uapi/dvb/video-continue.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_CONTINUE
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_CONTINUE)
19+.. c:function:: int ioctl(fd, VIDEO_CONTINUE)
20+ :name: VIDEO_CONTINUE
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-fast-forward.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_FAST_FORWARD
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_FAST_FORWARD, int nFrames)
19+.. c:function:: int ioctl(fd, VIDEO_FAST_FORWARD, int nFrames)
20+ :name: VIDEO_FAST_FORWARD
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-fclose.rst+2−1
@@ -11,11 +11,12 @@ Name · 10 unmodified lines
1111
1212 dvb video close()
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int close(int fd)
19+.. c:function:: int close(int fd)
1920
2021
2122 Arguments
Documentation/media/uapi/dvb/video-fopen.rst+4−1
@@ -11,11 +11,12 @@ Name · 10 unmodified lines
1111
1212 dvb video open()
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int open(const char *deviceName, int flags)
19+.. c:function:: int open(const char *deviceName, int flags)
1920
2021
2122 Arguments
@@ -82,6 +83,8 @@ return an error code. · 60 unmodified lines
8283 Return Value
8384 ------------
8485
86+.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
87+
8588 .. flat-table::
8689 :header-rows: 0
8790 :stub-columns: 0
Documentation/media/uapi/dvb/video-freeze.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_FREEZE
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_FREEZE)
19+.. c:function:: int ioctl(fd, VIDEO_FREEZE)
20+ :name: VIDEO_FREEZE
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-fwrite.rst+2−1
@@ -11,11 +11,12 @@ Name · 10 unmodified lines
1111
1212 dvb video write()
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: size_t write(int fd, const void *buf, size_t count)
19+.. c:function:: size_t write(int fd, const void *buf, size_t count)
1920
2021
2122 Arguments
Documentation/media/uapi/dvb/video-get-capabilities.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_GET_CAPABILITIES
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_GET_CAPABILITIES, unsigned int *cap)
19+.. c:function:: int ioctl(fd, VIDEO_GET_CAPABILITIES, unsigned int *cap)
20+ :name: VIDEO_GET_CAPABILITIES
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-get-event.rst+20−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_GET_EVENT
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_GET_EVENT, struct video_event *ev)
19+.. c:function:: int ioctl(fd, VIDEO_GET_EVENT, struct video_event *ev)
20+ :name: VIDEO_GET_EVENT
1921
2022
2123 Arguments
@@ -62,6 +64,23 @@ included in the exceptfds argument, and for poll(), POLLPRI should be · 40 unmodified lines
6264 specified as the wake-up condition. Read-only permissions are sufficient
6365 for this ioctl call.
6466
67+.. c:type:: video_event
68+
69+.. code-block:: c
70+
71+ struct video_event {
72+ __s32 type;
73+ #define VIDEO_EVENT_SIZE_CHANGED 1
74+ #define VIDEO_EVENT_FRAME_RATE_CHANGED 2
75+ #define VIDEO_EVENT_DECODER_STOPPED 3
76+ #define VIDEO_EVENT_VSYNC 4
77+ __kernel_time_t timestamp;
78+ union {
79+ video_size_t size;
80+ unsigned int frame_rate; /* in frames per 1000sec */
81+ unsigned char vsync_field; /* unknown/odd/even/progressive */
82+ } u;
83+ };
6584
6685 Return Value
6786 ------------
Documentation/media/uapi/dvb/video-get-frame-count.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_GET_FRAME_COUNT
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = VIDEO_GET_FRAME_COUNT, __u64 *pts)
19+.. c:function:: int ioctl(int fd, VIDEO_GET_FRAME_COUNT, __u64 *pts)
20+ :name: VIDEO_GET_FRAME_COUNT
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-get-frame-rate.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_GET_FRAME_RATE
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = VIDEO_GET_FRAME_RATE, unsigned int *rate)
19+.. c:function:: int ioctl(int fd, VIDEO_GET_FRAME_RATE, unsigned int *rate)
20+ :name: VIDEO_GET_FRAME_RATE
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-get-navi.rst+11−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_GET_NAVI
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_GET_NAVI , video_navi_pack_t *navipack)
19+.. c:function:: int ioctl(fd, VIDEO_GET_NAVI , struct video_navi_pack *navipack)
20+ :name: VIDEO_GET_NAVI
1921
2022
2123 Arguments
@@ -52,6 +54,14 @@ This ioctl returns navigational information from the DVD stream. This is · 30 unmodified lines
5254 especially needed if an encoded stream has to be decoded by the
5355 hardware.
5456
57+.. c:type:: video_navi_pack
58+
59+.. code-block::c
60+
61+ typedef struct video_navi_pack {
62+ int length; /* 0 ... 1024 */
63+ __u8 data[1024];
64+ } video_navi_pack_t;
5565
5666 Return Value
5767 ------------
Documentation/media/uapi/dvb/video-get-pts.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_GET_PTS
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = VIDEO_GET_PTS, __u64 *pts)
19+.. c:function:: int ioctl(int fd, VIDEO_GET_PTS, __u64 *pts)
20+ :name: VIDEO_GET_PTS
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-get-size.rst+13−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_GET_SIZE
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = VIDEO_GET_SIZE, video_size_t *size)
19+.. c:function:: int ioctl(int fd, VIDEO_GET_SIZE, video_size_t *size)
20+ :name: VIDEO_GET_SIZE
1921
2022
2123 Arguments
@@ -50,6 +52,16 @@ Description · 28 unmodified lines
5052
5153 This ioctl returns the size and aspect ratio.
5254
55+.. c:type:: video_size_t
56+
57+.. code-block::c
58+
59+ typedef struct {
60+ int w;
61+ int h;
62+ video_format_t aspect_ratio;
63+ } video_size_t;
64+
5365
5466 Return Value
5567 ------------
Documentation/media/uapi/dvb/video-get-status.rst+14−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_GET_STATUS
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_GET_STATUS, struct video_status *status)
19+.. c:function:: int ioctl(fd, VIDEO_GET_STATUS, struct video_status *status)
20+ :name: VIDEO_GET_STATUS
1921
2022
2123 Arguments
@@ -51,6 +53,17 @@ Description · 29 unmodified lines
5153 This ioctl call asks the Video Device to return the current status of
5254 the device.
5355
56+.. c:type:: video_status
57+
58+.. code-block:: c
59+
60+ struct video_status {
61+ int video_blank; /* blank video on freeze? */
62+ video_play_state_t play_state; /* current state of playback */
63+ video_stream_source_t stream_source; /* current source (demux/memory) */
64+ video_format_t video_format; /* current aspect ratio of stream*/
65+ video_displayformat_t display_format;/* selected cropping mode */
66+ };
5467
5568 Return Value
5669 ------------
Documentation/media/uapi/dvb/video-play.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_PLAY
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_PLAY)
19+.. c:function:: int ioctl(fd, VIDEO_PLAY)
20+ :name: VIDEO_PLAY
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-select-source.rst+13−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SELECT_SOURCE
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SELECT_SOURCE, video_stream_source_t source)
19+.. c:function:: int ioctl(fd, VIDEO_SELECT_SOURCE, video_stream_source_t source)
20+ :name: VIDEO_SELECT_SOURCE
1921
2022
2123 Arguments
@@ -56,6 +58,16 @@ This ioctl call informs the video device which source shall be used for · 34 unmodified lines
5658 the input data. The possible sources are demux or memory. If memory is
5759 selected, the data is fed to the video device through the write command.
5860
61+.. c:type:: video_stream_source_t
62+
63+.. code-block:: c
64+
65+ typedef enum {
66+ VIDEO_SOURCE_DEMUX, /* Select the demux as the main source */
67+ VIDEO_SOURCE_MEMORY /* If this source is selected, the stream
68+ comes from the user through the write
69+ system call */
70+ } video_stream_source_t;
5971
6072 Return Value
6173 ------------
Documentation/media/uapi/dvb/video-set-attributes.rst+19−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SET_ATTRIBUTES
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SET_ATTRIBUTE ,video_attributes_t vattr)
19+.. c:function:: int ioctl(fd, VIDEO_SET_ATTRIBUTE ,video_attributes_t vattr)
20+ :name: VIDEO_SET_ATTRIBUTE
1921
2022
2123 Arguments
@@ -53,6 +55,22 @@ information about the stream. Some hardware may not need this · 31 unmodified lines
5355 information, but the call also tells the hardware to prepare for DVD
5456 playback.
5557
58+.. c:type:: video_attributes_t
59+
60+.. code-block::c
61+
62+ typedef __u16 video_attributes_t;
63+ /* bits: descr. */
64+ /* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */
65+ /* 13-12 TV system (0=525/60, 1=625/50) */
66+ /* 11-10 Aspect ratio (0=4:3, 3=16:9) */
67+ /* 9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca */
68+ /* 7 line 21-1 data present in GOP (1=yes, 0=no) */
69+ /* 6 line 21-2 data present in GOP (1=yes, 0=no) */
70+ /* 5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 */
71+ /* 2 source letterboxed (1=yes, 0=no) */
72+ /* 0 film/camera mode (0=camera, 1=film (625/50 only)) */
73+
5674
5775 Return Value
5876 ------------
Documentation/media/uapi/dvb/video-set-blank.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SET_BLANK
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SET_BLANK, boolean mode)
19+.. c:function:: int ioctl(fd, VIDEO_SET_BLANK, boolean mode)
20+ :name: VIDEO_SET_BLANK
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-set-display-format.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SET_DISPLAY_FORMAT
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SET_DISPLAY_FORMAT, video_display_format_t format)
19+.. c:function:: int ioctl(fd, VIDEO_SET_DISPLAY_FORMAT)
20+ :name: VIDEO_SET_DISPLAY_FORMAT
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-set-format.rst+12−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SET_FORMAT
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SET_FORMAT, video_format_t format)
19+.. c:function:: int ioctl(fd, VIDEO_SET_FORMAT, video_format_t format)
20+ :name: VIDEO_SET_FORMAT
1921
2022
2123 Arguments
@@ -52,6 +54,15 @@ This ioctl sets the screen format (aspect ratio) of the connected output · 30 unmodified lines
5254 device (TV) so that the output of the decoder can be adjusted
5355 accordingly.
5456
57+.. c:type:: video_format_t
58+
59+.. code-block:: c
60+
61+ typedef enum {
62+ VIDEO_FORMAT_4_3, /* Select 4:3 format */
63+ VIDEO_FORMAT_16_9, /* Select 16:9 format. */
64+ VIDEO_FORMAT_221_1 /* 2.21:1 */
65+ } video_format_t;
5566
5667 Return Value
5768 ------------
Documentation/media/uapi/dvb/video-set-highlight.rst+27−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SET_HIGHLIGHT
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SET_HIGHLIGHT ,video_highlight_t *vhilite)
19+.. c:function:: int ioctl(fd, VIDEO_SET_HIGHLIGHT, struct video_highlight *vhilite)
20+ :name: VIDEO_SET_HIGHLIGHT
1921
2022
2123 Arguments
@@ -51,6 +53,30 @@ Description · 29 unmodified lines
5153 This ioctl sets the SPU highlight information for the menu access of a
5254 DVD.
5355
56+.. c:type:: video_highlight
57+
58+.. code-block:: c
59+
60+ typedef
61+ struct video_highlight {
62+ int active; /* 1=show highlight, 0=hide highlight */
63+ __u8 contrast1; /* 7- 4 Pattern pixel contrast */
64+ /* 3- 0 Background pixel contrast */
65+ __u8 contrast2; /* 7- 4 Emphasis pixel-2 contrast */
66+ /* 3- 0 Emphasis pixel-1 contrast */
67+ __u8 color1; /* 7- 4 Pattern pixel color */
68+ /* 3- 0 Background pixel color */
69+ __u8 color2; /* 7- 4 Emphasis pixel-2 color */
70+ /* 3- 0 Emphasis pixel-1 color */
71+ __u32 ypos; /* 23-22 auto action mode */
72+ /* 21-12 start y */
73+ /* 9- 0 end y */
74+ __u32 xpos; /* 23-22 button color number */
75+ /* 21-12 start x */
76+ /* 9- 0 end x */
77+ } video_highlight_t;
78+
79+
5480
5581 Return Value
5682 ------------
Documentation/media/uapi/dvb/video-set-id.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SET_ID
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = VIDEO_SET_ID, int id)
19+.. c:function:: int ioctl(int fd, VIDEO_SET_ID, int id)
20+ :name: VIDEO_SET_ID
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-set-spu-palette.rst+11−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SET_SPU_PALETTE
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SET_SPU_PALETTE, video_spu_palette_t *palette )
19+.. c:function:: int ioctl(fd, VIDEO_SET_SPU_PALETTE, struct video_spu_palette *palette )
20+ :name: VIDEO_SET_SPU_PALETTE
1921
2022
2123 Arguments
@@ -50,6 +52,14 @@ Description · 28 unmodified lines
5052
5153 This ioctl sets the SPU color palette.
5254
55+.. c:type:: video_spu_palette
56+
57+.. code-block::c
58+
59+ typedef struct video_spu_palette { /* SPU Palette information */
60+ int length;
61+ __u8 __user *palette;
62+ } video_spu_palette_t;
5363
5464 Return Value
5565 ------------
Documentation/media/uapi/dvb/video-set-spu.rst+12−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SET_SPU
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SET_SPU , video_spu_t *spu)
19+.. c:function:: int ioctl(fd, VIDEO_SET_SPU , struct video_spu *spu)
20+ :name: VIDEO_SET_SPU
1921
2022
2123 Arguments
@@ -52,6 +54,15 @@ Description · 30 unmodified lines
5254 This ioctl activates or deactivates SPU decoding in a DVD input stream.
5355 It can only be used, if the driver is able to handle a DVD stream.
5456
57+.. c:type:: struct video_spu
58+
59+.. code-block:: c
60+
61+ typedef struct video_spu {
62+ int active;
63+ int stream_id;
64+ } video_spu_t;
65+
5566
5667 Return Value
5768 ------------
Documentation/media/uapi/dvb/video-set-streamtype.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SET_STREAMTYPE
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SET_STREAMTYPE, int type)
19+.. c:function:: int ioctl(fd, VIDEO_SET_STREAMTYPE, int type)
20+ :name: VIDEO_SET_STREAMTYPE
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-set-system.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SET_SYSTEM
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SET_SYSTEM , video_system_t system)
19+.. c:function:: int ioctl(fd, VIDEO_SET_SYSTEM , video_system_t system)
20+ :name: VIDEO_SET_SYSTEM
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-slowmotion.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_SLOWMOTION
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_SLOWMOTION, int nFrames)
19+.. c:function:: int ioctl(fd, VIDEO_SLOWMOTION, int nFrames)
20+ :name: VIDEO_SLOWMOTION
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-stillpicture.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_STILLPICTURE
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_STILLPICTURE, struct video_still_picture *sp)
19+.. c:function:: int ioctl(fd, VIDEO_STILLPICTURE, struct video_still_picture *sp)
20+ :name: VIDEO_STILLPICTURE
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-stop.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_STOP
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(fd, int request = VIDEO_STOP, boolean mode)
19+.. c:function:: int ioctl(fd, VIDEO_STOP, boolean mode)
20+ :name: VIDEO_STOP
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video-try-command.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
1111
1212 VIDEO_TRY_COMMAND
1313
14+.. attention:: This ioctl is deprecated.
1415
1516 Synopsis
1617 --------
1718
18−.. cpp:function:: int ioctl(int fd, int request = VIDEO_TRY_COMMAND, struct video_command *cmd)
19+.. c:function:: int ioctl(int fd, VIDEO_TRY_COMMAND, struct video_command *cmd)
20+ :name: VIDEO_TRY_COMMAND
1921
2022
2123 Arguments
Documentation/media/uapi/dvb/video_types.rst+8−8
@@ -95,7 +95,7 @@ representing the state of video playback. · 94 unmodified lines
9595 } video_play_state_t;
9696
9797
98−.. _video-command:
98+.. c:type:: video_command
9999
100100 struct video_command
101101 ====================
@@ -146,7 +146,7 @@ video_size_t · 44 unmodified lines
146146 } video_size_t;
147147
148148
149−.. _video-event:
149+.. c:type:: video_event
150150
151151 struct video_event
152152 ==================
@@ -172,7 +172,7 @@ VIDEO_GET_EVENT call. · 19 unmodified lines
172172 };
173173
174174
175−.. _video-status:
175+.. c:type:: video_status
176176
177177 struct video_status
178178 ===================
@@ -203,7 +203,7 @@ case the source video format is not the same as the format of the output · 24 unmodified lines
203203 device.
204204
205205
206−.. _video-still-picture:
206+.. c:type:: video_still_picture
207207
208208 struct video_still_picture
209209 ==========================
@@ -271,7 +271,7 @@ output. The following system types can be set: · 61 unmodified lines
271271 } video_system_t;
272272
273273
274−.. _video-highlight:
274+.. c:type:: video_highlight
275275
276276 struct video_highlight
277277 ======================
@@ -302,7 +302,7 @@ information. The call expects the following format for that information: · 24 unmodified lines
302302 } video_highlight_t;
303303
304304
305−.. _video-spu:
305+.. c:type:: video_spu
306306
307307 struct video_spu
308308 ================
@@ -320,7 +320,7 @@ to the following format: · 11 unmodified lines
320320 } video_spu_t;
321321
322322
323−.. _video-spu-palette:
323+.. c:type:: video_spu_palette
324324
325325 struct video_spu_palette
326326 ========================
@@ -338,7 +338,7 @@ VIDEO_SPU_PALETTE: · 11 unmodified lines
338338 } video_spu_palette_t;
339339
340340
341−.. _video-navi-pack:
341+.. c:type:: video_navi_pack
342342
343343 struct video_navi_pack
344344 ======================
Documentation/media/uapi/gen-errors.rst+2−0
@@ -9,6 +9,8 @@ Generic Error Codes · 8 unmodified lines
99
1010 .. _gen-errors:
1111
12+.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
13+
1214 .. flat-table:: Generic error codes
1315 :header-rows: 0
1416 :stub-columns: 0
Documentation/media/uapi/mediactl/media-func-close.rst+3−3
@@ -20,14 +20,14 @@ Synopsis · 19 unmodified lines
2020 #include <unistd.h>
2121
2222
23−.. cpp:function:: int close( int fd )
24−
23+.. c:function:: int close( int fd )
24+ :name: mc-close
2525
2626 Arguments
2727 =========
2828
2929 ``fd``
30− File descriptor returned by :ref:`open() <func-open>`.
30+ File descriptor returned by :c:func:`open() <mc-open>`.
3131
3232
3333 Description
Documentation/media/uapi/mediactl/media-func-ioctl.rst+3−3
@@ -20,14 +20,14 @@ Synopsis · 19 unmodified lines
2020 #include <sys/ioctl.h>
2121
2222
23−.. cpp:function:: int ioctl( int fd, int request, void *argp )
24−
23+.. c:function:: int ioctl( int fd, int request, void *argp )
24+ :name: mc-ioctl
2525
2626 Arguments
2727 =========
2828
2929 ``fd``
30− File descriptor returned by :ref:`open() <func-open>`.
30+ File descriptor returned by :c:func:`open() <mc-open>`.
3131
3232 ``request``
3333 Media ioctl request code as defined in the media.h header file, for
Documentation/media/uapi/mediactl/media-func-open.rst+2−2
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
2020 #include <fcntl.h>
2121
2222
23−.. cpp:function:: int open( const char *device_name, int flags )
24−
23+.. c:function:: int open( const char *device_name, int flags )
24+ :name: mc-open
2525
2626 Arguments
2727 =========
Documentation/media/uapi/mediactl/media-ioc-device-info.rst+6−6
@@ -15,7 +15,8 @@ MEDIA_IOC_DEVICE_INFO - Query device information · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct media_device_info *argp )
18+.. c:function:: int ioctl( int fd, MEDIA_IOC_DEVICE_INFO, struct media_device_info *argp )
19+ :name: MEDIA_IOC_DEVICE_INFO
1920
2021
2122 Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <media-func-open>`.
2627
27−``request``
28− MEDIA_IOC_DEVICE_INFO
29−
3028 ``argp``
3129
3230
@@ -35,12 +33,14 @@ Description · 2 unmodified lines
3533
3634 All media devices must support the ``MEDIA_IOC_DEVICE_INFO`` ioctl. To
3735 query device information, applications call the ioctl with a pointer to
38−a struct :ref:`media_device_info <media-device-info>`. The driver
36+a struct :c:type:`media_device_info`. The driver
3937 fills the structure and returns the information to the application. The
4038 ioctl never fails.
4139
4240
43−.. _media-device-info:
41+.. c:type:: media_device_info
42+
43+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
4444
4545 .. flat-table:: struct media_device_info
4646 :header-rows: 0
Documentation/media/uapi/mediactl/media-ioc-enum-entities.rst+7−7
@@ -15,7 +15,8 @@ MEDIA_IOC_ENUM_ENTITIES - Enumerate entities and their properties · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct media_entity_desc *argp )
18+.. c:function:: int ioctl( int fd, MEDIA_IOC_ENUM_ENTITIES, struct media_entity_desc *argp )
19+ :name: MEDIA_IOC_ENUM_ENTITIES
1920
2021
2122 Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <media-func-open>`.
2627
27−``request``
28− MEDIA_IOC_ENUM_ENTITIES
29−
3028 ``argp``
3129
3230
@@ -34,7 +32,7 @@ Description · 1 unmodified line
3432 ===========
3533
3634 To query the attributes of an entity, applications set the id field of a
37−struct :ref:`media_entity_desc <media-entity-desc>` structure and
35+struct :c:type:`media_entity_desc` structure and
3836 call the MEDIA_IOC_ENUM_ENTITIES ioctl with a pointer to this
3937 structure. The driver fills the rest of the structure or returns an
4038 EINVAL error code when the id is invalid.
@@ -51,7 +49,9 @@ enumerate entities by calling MEDIA_IOC_ENUM_ENTITIES with increasing · 10 unmodified lines
5149 id's until they get an error.
5250
5351
54−.. _media-entity-desc:
52+.. c:type:: media_entity_desc
53+
54+.. tabularcolumns:: |p{1.5cm}|p{1.5cm}|p{1.5cm}|p{1.5cm}|p{11.5cm}|
5555
5656 .. flat-table:: struct media_entity_desc
5757 :header-rows: 0
@@ -195,5 +195,5 @@ appropriately. The generic error codes are described at the · 137 unmodified lines
195195 :ref:`Generic Error Codes <gen-errors>` chapter.
196196
197197 EINVAL
198− The struct :ref:`media_entity_desc <media-entity-desc>` ``id``
198+ The struct :c:type:`media_entity_desc` ``id``
199199 references a non-existing entity.
Documentation/media/uapi/mediactl/media-ioc-enum-links.rst+19−15
@@ -15,7 +15,8 @@ MEDIA_IOC_ENUM_LINKS - Enumerate all pads and links for a given entity · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct media_links_enum *argp )
18+.. c:function:: int ioctl( int fd, MEDIA_IOC_ENUM_LINKS, struct media_links_enum *argp )
19+ :name: MEDIA_IOC_ENUM_LINKS
1920
2021
2122 Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <media-func-open>`.
2627
27−``request``
28− MEDIA_IOC_ENUM_LINKS
29−
3028 ``argp``
3129
3230
@@ -34,10 +32,10 @@ Description · 1 unmodified line
3432 ===========
3533
3634 To enumerate pads and/or links for a given entity, applications set the
37−entity field of a struct :ref:`media_links_enum <media-links-enum>`
35+entity field of a struct :c:type:`media_links_enum`
3836 structure and initialize the struct
39−:ref:`media_pad_desc <media-pad-desc>` and struct
40−:ref:`media_link_desc <media-link-desc>` structure arrays pointed by
37+:c:type:`media_pad_desc` and struct
38+:c:type:`media_link_desc` structure arrays pointed by
4139 the ``pads`` and ``links`` fields. They then call the
4240 MEDIA_IOC_ENUM_LINKS ioctl with a pointer to this structure.
4341
@@ -55,7 +53,9 @@ Only forward links that originate at one of the entity's source pads are · 11 unmodified lines
5553 returned during the enumeration process.
5654
5755
58−.. _media-links-enum:
56+.. c:type:: media_links_enum
57+
58+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
5959
6060 .. flat-table:: struct media_links_enum
6161 :header-rows: 0
@@ -73,7 +73,7 @@ returned during the enumeration process. · 11 unmodified lines
7373
7474 - .. row 2
7575
76− - struct :ref:`media_pad_desc <media-pad-desc>`
76+ - struct :c:type:`media_pad_desc`
7777
7878 - \*\ ``pads``
7979
@@ -82,7 +82,7 @@ returned during the enumeration process. · 2 unmodified lines
8282
8383 - .. row 3
8484
85− - struct :ref:`media_link_desc <media-link-desc>`
85+ - struct :c:type:`media_link_desc`
8686
8787 - \*\ ``links``
8888
@@ -91,7 +91,9 @@ returned during the enumeration process. · 2 unmodified lines
9191
9292
9393
94−.. _media-pad-desc:
94+.. c:type:: media_pad_desc
95+
96+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
9597
9698 .. flat-table:: struct media_pad_desc
9799 :header-rows: 0
@@ -125,7 +127,9 @@ returned during the enumeration process. · 27 unmodified lines
125127
126128
127129
128−.. _media-link-desc:
130+.. c:type:: media_link_desc
131+
132+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
129133
130134 .. flat-table:: struct media_link_desc
131135 :header-rows: 0
@@ -135,7 +139,7 @@ returned during the enumeration process. · 3 unmodified lines
135139
136140 - .. row 1
137141
138− - struct :ref:`media_pad_desc <media-pad-desc>`
142+ - struct :c:type:`media_pad_desc`
139143
140144 - ``source``
141145
@@ -143,7 +147,7 @@ returned during the enumeration process. · 1 unmodified line
143147
144148 - .. row 2
145149
146− - struct :ref:`media_pad_desc <media-pad-desc>`
150+ - struct :c:type:`media_pad_desc`
147151
148152 - ``sink``
149153
@@ -166,5 +170,5 @@ appropriately. The generic error codes are described at the · 16 unmodified lines
166170 :ref:`Generic Error Codes <gen-errors>` chapter.
167171
168172 EINVAL
169− The struct :ref:`media_links_enum <media-links-enum>` ``id``
173+ The struct :c:type:`media_links_enum` ``id``
170174 references a non-existing entity.
Documentation/media/uapi/mediactl/media-ioc-g-topology.rst+16−12
@@ -15,7 +15,8 @@ MEDIA_IOC_G_TOPOLOGY - Enumerate the graph topology and graph element properties · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct media_v2_topology *argp )
18+.. c:function:: int ioctl( int fd, MEDIA_IOC_G_TOPOLOGY, struct media_v2_topology *argp )
19+ :name: MEDIA_IOC_G_TOPOLOGY
1920
2021
2122 Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <media-func-open>`.
2627
27−``request``
28− MEDIA_IOC_G_TOPOLOGY
29−
3028 ``argp``
3129
3230
@@ -35,7 +33,7 @@ Description · 2 unmodified lines
3533
3634 The typical usage of this ioctl is to call it twice. On the first call,
3735 the structure defined at struct
38−:ref:`media_v2_topology <media-v2-topology>` should be zeroed. At
36+:c:type:`media_v2_topology` should be zeroed. At
3937 return, if no errors happen, this ioctl will return the
4038 ``topology_version`` and the total number of entities, interfaces, pads
4139 and links.
@@ -48,8 +46,9 @@ other values untouched. · 6 unmodified lines
4846 If the ``topology_version`` remains the same, the ioctl should fill the
4947 desired arrays with the media graph elements.
5048
49+.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
5150
52−.. _media-v2-topology:
51+.. c:type:: media_v2_topology
5352
5453 .. flat-table:: struct media_v2_topology
5554 :header-rows: 0
@@ -142,8 +141,9 @@ desired arrays with the media graph elements. · 86 unmodified lines
142141 won't store the links. It will just update ``num_links``
143142
144143
144+.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
145145
146−.. _media-v2-entity:
146+.. c:type:: media_v2_entity
147147
148148 .. flat-table:: struct media_v2_entity
149149 :header-rows: 0
@@ -185,8 +185,9 @@ desired arrays with the media graph elements. · 35 unmodified lines
185185 this array to zero.
186186
187187
188+.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
188189
189−.. _media-v2-interface:
190+.. c:type:: media_v2_interface
190191
191192 .. flat-table:: struct media_v2_interface
192193 :header-rows: 0
@@ -233,11 +234,12 @@ desired arrays with the media graph elements. · 40 unmodified lines
233234 - ``devnode``
234235
235236 - Used only for device node interfaces. See
236− :ref:`media-v2-intf-devnode` for details..
237+ :c:type:`media_v2_intf_devnode` for details..
237238
238239
240+.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
239241
240−.. _media-v2-intf-devnode:
242+.. c:type:: media_v2_intf_devnode
241243
242244 .. flat-table:: struct media_v2_interface
243245 :header-rows: 0
@@ -262,8 +264,9 @@ desired arrays with the media graph elements. · 18 unmodified lines
262264 - Device node minor number.
263265
264266
267+.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
265268
266−.. _media-v2-pad:
269+.. c:type:: media_v2_pad
267270
268271 .. flat-table:: struct media_v2_pad
269272 :header-rows: 0
@@ -305,8 +308,9 @@ desired arrays with the media graph elements. · 35 unmodified lines
305308 this array to zero.
306309
307310
311+.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
308312
309−.. _media-v2-link:
313+.. c:type:: media_v2_link
310314
311315 .. flat-table:: struct media_v2_pad
312316 :header-rows: 0
Documentation/media/uapi/mediactl/media-ioc-setup-link.rst+4−6
@@ -15,7 +15,8 @@ MEDIA_IOC_SETUP_LINK - Modify the properties of a link · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, struct media_link_desc *argp )
18+.. c:function:: int ioctl( int fd, MEDIA_IOC_SETUP_LINK, struct media_link_desc *argp )
19+ :name: MEDIA_IOC_SETUP_LINK
1920
2021
2122 Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
2425 ``fd``
2526 File descriptor returned by :ref:`open() <media-func-open>`.
2627
27−``request``
28− MEDIA_IOC_SETUP_LINK
29−
3028 ``argp``
3129
3230
@@ -34,7 +32,7 @@ Description · 1 unmodified line
3432 ===========
3533
3634 To change link properties applications fill a struct
37−:ref:`media_link_desc <media-link-desc>` with link identification
35+:c:type:`media_link_desc` with link identification
3836 information (source and sink pad) and the new requested link flags. They
3937 then call the MEDIA_IOC_SETUP_LINK ioctl with a pointer to that
4038 structure.
@@ -63,6 +61,6 @@ appropriately. The generic error codes are described at the · 22 unmodified lines
6361 :ref:`Generic Error Codes <gen-errors>` chapter.
6462
6563 EINVAL
66− The struct :ref:`media_link_desc <media-link-desc>` references a
64+ The struct :c:type:`media_link_desc` references a
6765 non-existing link, or the link is immutable and an attempt to modify
6866 its configuration was made.
Documentation/media/uapi/mediactl/media-types.rst+30−10
@@ -5,9 +5,12 @@ · 4 unmodified lines
55 Types and flags used to represent the media graph elements
66 ==========================================================
77
8+.. tabularcolumns:: |p{8.0cm}|p{10.5cm}|
89
910 .. _media-entity-type:
1011
12+.. cssclass:: longtable
13+
1114 .. flat-table:: Media entity types
1215 :header-rows: 0
1316 :stub-columns: 0
@@ -15,10 +18,12 @@ Types and flags used to represent the media graph elements · 1 unmodified line
1518
1619 - .. row 1
1720
18− .. _MEDIA-ENT-F-UNKNOWN:
21+ .. _MEDIA-ENT-F-UNKNOWN:
1922 .. _MEDIA-ENT-F-V4L2-SUBDEV-UNKNOWN:
2023
21− - ``MEDIA_ENT_F_UNKNOWN`` and ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN``
24+ - ``MEDIA_ENT_F_UNKNOWN`` and
25+
26+ ``MEDIA_ENT_F_V4L2_SUBDEV_UNKNOWN``
2227
2328 - Unknown entity. That generally indicates that a driver didn't
2429 initialize properly the entity, with is a Kernel bug
@@ -294,6 +299,8 @@ Types and flags used to represent the media graph elements · 269 unmodified lines
294299 its source pad.
295300
296301
302+.. tabularcolumns:: |p{5.5cm}|p{12.0cm}|
303+
297304 .. _media-entity-flag:
298305
299306 .. flat-table:: Media entity flags
@@ -319,6 +326,7 @@ Types and flags used to represent the media graph elements · 19 unmodified lines
319326 - The entity represents a data conector
320327
321328
329+.. tabularcolumns:: |p{6.5cm}|p{6.0cm}|p{5.0cm}|
322330
323331 .. _media-intf-type:
324332
@@ -405,7 +413,7 @@ Types and flags used to represent the media graph elements · 80 unmodified lines
405413
406414 - Device node interface for radio (V4L)
407415
408− - typically, /dev/vbi?
416+ - typically, /dev/radio?
409417
410418 - .. row 9
411419
@@ -429,6 +437,16 @@ Types and flags used to represent the media graph elements · 17 unmodified lines
429437
430438 - .. row 11
431439
440+ .. _MEDIA-INTF-T-V4L-TOUCH:
441+
442+ - ``MEDIA_INTF_T_V4L_TOUCH``
443+
444+ - Device node interface for Touch device (V4L)
445+
446+ - typically, /dev/v4l-touch?
447+
448+ - .. row 12
449+
432450 .. _MEDIA-INTF-T-ALSA-PCM-CAPTURE:
433451
434452 - ``MEDIA_INTF_T_ALSA_PCM_CAPTURE``
@@ -437,7 +455,7 @@ Types and flags used to represent the media graph elements · 2 unmodified lines
437455
438456 - typically, /dev/snd/pcmC?D?c
439457
440− - .. row 12
458+ - .. row 13
441459
442460 .. _MEDIA-INTF-T-ALSA-PCM-PLAYBACK:
443461
@@ -447,7 +465,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
447465
448466 - typically, /dev/snd/pcmC?D?p
449467
450− - .. row 13
468+ - .. row 14
451469
452470 .. _MEDIA-INTF-T-ALSA-CONTROL:
453471
@@ -457,7 +475,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
457475
458476 - typically, /dev/snd/controlC?
459477
460− - .. row 14
478+ - .. row 15
461479
462480 .. _MEDIA-INTF-T-ALSA-COMPRESS:
463481
@@ -467,7 +485,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
467485
468486 - typically, /dev/snd/compr?
469487
470− - .. row 15
488+ - .. row 16
471489
472490 .. _MEDIA-INTF-T-ALSA-RAWMIDI:
473491
@@ -477,7 +495,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
477495
478496 - typically, /dev/snd/midi?
479497
480− - .. row 16
498+ - .. row 17
481499
482500 .. _MEDIA-INTF-T-ALSA-HWDEP:
483501
@@ -487,7 +505,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
487505
488506 - typically, /dev/snd/hwC?D?
489507
490− - .. row 17
508+ - .. row 18
491509
492510 .. _MEDIA-INTF-T-ALSA-SEQUENCER:
493511
@@ -497,7 +515,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
497515
498516 - typically, /dev/snd/seq
499517
500− - .. row 18
518+ - .. row 19
501519
502520 .. _MEDIA-INTF-T-ALSA-TIMER:
503521
@@ -508,6 +526,7 @@ Types and flags used to represent the media graph elements · 4 unmodified lines
508526 - typically, /dev/snd/timer
509527
510528
529+.. tabularcolumns:: |p{5.5cm}|p{12.0cm}|
511530
512531 .. _media-pad-flag:
513532
@@ -551,6 +570,7 @@ Types and flags used to represent the media graph elements · 37 unmodified lines
551570 One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE``
552571 must be set for every pad.
553572
573+.. tabularcolumns:: |p{5.5cm}|p{12.0cm}|
554574
555575 .. _media-link-flag:
556576
Documentation/media/uapi/rc/lirc-get-features.rst+2−4
@@ -14,7 +14,8 @@ LIRC_GET_FEATURES - Get the underlying hardware device's features · 13 unmodified lines
1414 Synopsis
1515 ========
1616
17−.. cpp:function:: int ioctl( int fd, int request, __u32 *features)
17+.. c:function:: int ioctl( int fd, LIRC_GET_FEATURES, __u32 *features)
18+ :name: LIRC_GET_FEATURES
1819
1920 Arguments
2021 =========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
2223 ``fd``
2324 File descriptor returned by open().
2425
25−``request``
26− LIRC_GET_FEATURES
27−
2826 ``features``
2927 Bitmask with the LIRC features.
3028
Documentation/media/uapi/rc/lirc-get-length.rst+2−4
@@ -14,7 +14,8 @@ LIRC_GET_LENGTH - Retrieves the code length in bits. · 13 unmodified lines
1414 Synopsis
1515 ========
1616
17−.. cpp:function:: int ioctl( int fd, int request, __u32 *length )
17+.. c:function:: int ioctl( int fd, LIRC_GET_LENGTH, __u32 *length )
18+ :name: LIRC_GET_LENGTH
1819
1920 Arguments
2021 =========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
2223 ``fd``
2324 File descriptor returned by open().
2425
25−``request``
26− LIRC_GET_LENGTH
27−
2826 ``length``
2927 length, in bits
3028
Documentation/media/uapi/rc/lirc-get-rec-mode.rst+6−5
@@ -10,12 +10,16 @@ ioctls LIRC_GET_REC_MODE and LIRC_SET_REC_MODE · 9 unmodified lines
1010 Name
1111 ====
1212
13−LIRC_GET_REC_MODE/LIRC_GET_REC_MODE - Get/set supported receive modes.
13+LIRC_GET_REC_MODE/LIRC_SET_REC_MODE - Get/set supported receive modes.
1414
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, __u32 rx_modes)
18+.. c:function:: int ioctl( int fd, LIRC_GET_REC_MODE, __u32 rx_modes)
19+ :name: LIRC_GET_REC_MODE
20+
21+.. c:function:: int ioctl( int fd, LIRC_SET_REC_MODE, __u32 rx_modes)
22+ :name: LIRC_SET_REC_MODE
1923
2024 Arguments
2125 =========
@@ -23,9 +27,6 @@ Arguments · 1 unmodified line
2327 ``fd``
2428 File descriptor returned by open().
2529
26−``request``
27− LIRC_GET_REC_MODE or LIRC_GET_REC_MODE
28−
2930 ``rx_modes``
3031 Bitmask with the supported transmit modes.
3132
Documentation/media/uapi/rc/lirc-get-rec-resolution.rst+2−4
@@ -14,7 +14,8 @@ LIRC_GET_REC_RESOLUTION - Obtain the value of receive resolution, in microsecond · 13 unmodified lines
1414 Synopsis
1515 ========
1616
17−.. cpp:function:: int ioctl( int fd, int request, __u32 *microseconds)
17+.. c:function:: int ioctl( int fd, LIRC_GET_REC_RESOLUTION, __u32 *microseconds)
18+ :name: LIRC_GET_REC_RESOLUTION
1819
1920 Arguments
2021 =========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
2223 ``fd``
2324 File descriptor returned by open().
2425
25−``request``
26− LIRC_GET_REC_RESOLUTION
27−
2826 ``microseconds``
2927 Resolution, in microseconds.
3028
Documentation/media/uapi/rc/lirc-get-send-mode.rst+5−4
@@ -15,7 +15,11 @@ LIRC_GET_SEND_MODE/LIRC_SET_SEND_MODE - Get/set supported transmit mode. · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, __u32 *tx_modes )
18+.. c:function:: int ioctl( int fd, LIRC_GET_SEND_MODE, __u32 *tx_modes )
19+ :name: LIRC_GET_SEND_MODE
20+
21+.. c:function:: int ioctl( int fd, LIRC_SET_SEND_MODE, __u32 *tx_modes )
22+ :name: LIRC_SET_SEND_MODE
1923
2024 Arguments
2125 =========
@@ -23,9 +27,6 @@ Arguments · 1 unmodified line
2327 ``fd``
2428 File descriptor returned by open().
2529
26−``request``
27− LIRC_GET_SEND_MODE
28−
2930 ``tx_modes``
3031 Bitmask with the supported transmit modes.
3132
Documentation/media/uapi/rc/lirc-get-timeout.rst+5−4
@@ -16,7 +16,11 @@ range for IR receive. · 15 unmodified lines
1616 Synopsis
1717 ========
1818
19−.. cpp:function:: int ioctl( int fd, int request, __u32 *timeout)
19+.. c:function:: int ioctl( int fd, LIRC_GET_MIN_TIMEOUT, __u32 *timeout)
20+ :name: LIRC_GET_MIN_TIMEOUT
21+
22+.. c:function:: int ioctl( int fd, LIRC_GET_MAX_TIMEOUT, __u32 *timeout)
23+ :name: LIRC_GET_MAX_TIMEOUT
2024
2125 Arguments
2226 =========
@@ -24,9 +28,6 @@ Arguments · 1 unmodified line
2428 ``fd``
2529 File descriptor returned by open().
2630
27−``request``
28− LIRC_GET_MIN_TIMEOUT or LIRC_GET_MAX_TIMEOUT
29−
3031 ``timeout``
3132 Timeout, in microseconds.
3233
Documentation/media/uapi/rc/lirc-read.rst+5−2
@@ -20,7 +20,8 @@ Synopsis · 19 unmodified lines
2020 #include <unistd.h>
2121
2222
23−.. cpp:function:: ssize_t read( int fd, void *buf, size_t count )
23+.. c:function:: ssize_t read( int fd, void *buf, size_t count )
24+ :name: lirc-read
2425
2526
2627 Arguments
@@ -30,8 +31,10 @@ Arguments · 3 unmodified lines
3031 File descriptor returned by ``open()``.
3132
3233 ``buf``
33−``count``
34+ Buffer to be filled
3435
36+``count``
37+ Max number of bytes to read
3538
3639 Description
3740 ===========
Documentation/media/uapi/rc/lirc-set-measure-carrier-mode.rst+2−4
@@ -14,7 +14,8 @@ LIRC_SET_MEASURE_CARRIER_MODE - enable or disable measure mode · 13 unmodified lines
1414 Synopsis
1515 ========
1616
17−.. cpp:function:: int ioctl( int fd, int request, __u32 *enable )
17+.. c:function:: int ioctl( int fd, LIRC_SET_MEASURE_CARRIER_MODE, __u32 *enable )
18+ :name: LIRC_SET_MEASURE_CARRIER_MODE
1819
1920 Arguments
2021 =========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
2223 ``fd``
2324 File descriptor returned by open().
2425
25−``request``
26− LIRC_SET_MEASURE_CARRIER_MODE
27−
2826 ``enable``
2927 enable = 1 means enable measure mode, enable = 0 means disable measure
3028 mode.
Documentation/media/uapi/rc/lirc-set-rec-carrier-range.rst+2−4
@@ -15,7 +15,8 @@ IR receive. · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, __u32 *frequency )
18+.. c:function:: int ioctl( int fd, LIRC_SET_REC_CARRIER_RANGE, __u32 *frequency )
19+ :name: LIRC_SET_REC_CARRIER_RANGE
1920
2021 Arguments
2122 =========
@@ -23,9 +24,6 @@ Arguments · 1 unmodified line
2324 ``fd``
2425 File descriptor returned by open().
2526
26−``request``
27− LIRC_SET_REC_CARRIER_RANGE
28−
2927 ``frequency``
3028 Frequency of the carrier that modulates PWM data, in Hz.
3129
Documentation/media/uapi/rc/lirc-set-rec-carrier.rst+2−4
@@ -15,7 +15,8 @@ LIRC_SET_REC_CARRIER - Set carrier used to modulate IR receive. · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, __u32 *frequency )
18+.. c:function:: int ioctl( int fd, LIRC_SET_REC_CARRIER, __u32 *frequency )
19+ :name: LIRC_SET_REC_CARRIER
1920
2021 Arguments
2122 =========
@@ -23,9 +24,6 @@ Arguments · 1 unmodified line
2324 ``fd``
2425 File descriptor returned by open().
2526
26−``request``
27− LIRC_SET_REC_CARRIER
28−
2927 ``frequency``
3028 Frequency of the carrier that modulates PWM data, in Hz.
3129
Documentation/media/uapi/rc/lirc-set-rec-timeout-reports.rst+2−4
@@ -14,7 +14,8 @@ LIRC_SET_REC_TIMEOUT_REPORTS - enable or disable timeout reports for IR receive · 13 unmodified lines
1414 Synopsis
1515 ========
1616
17−.. cpp:function:: int ioctl( int fd, int request, __u32 *enable )
17+.. c:function:: int ioctl( int fd, LIRC_SET_REC_TIMEOUT_REPORTS, __u32 *enable )
18+ :name: LIRC_SET_REC_TIMEOUT_REPORTS
1819
1920 Arguments
2021 =========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
2223 ``fd``
2324 File descriptor returned by open().
2425
25−``request``
26− LIRC_SET_REC_TIMEOUT_REPORTS
27−
2826 ``enable``
2927 enable = 1 means enable timeout report, enable = 0 means disable timeout
3028 reports.
Documentation/media/uapi/rc/lirc-set-rec-timeout.rst+2−4
@@ -14,7 +14,8 @@ LIRC_SET_REC_TIMEOUT - sets the integer value for IR inactivity timeout. · 13 unmodified lines
1414 Synopsis
1515 ========
1616
17−.. cpp:function:: int ioctl( int fd, int request, __u32 *timeout )
17+.. c:function:: int ioctl( int fd, LIRC_SET_REC_TIMEOUT, __u32 *timeout )
18+ :name: LIRC_SET_REC_TIMEOUT
1819
1920 Arguments
2021 =========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
2223 ``fd``
2324 File descriptor returned by open().
2425
25−``request``
26− LIRC_SET_REC_TIMEOUT
27−
2826 ``timeout``
2927 Timeout, in microseconds.
3028
Documentation/media/uapi/rc/lirc-set-send-carrier.rst+2−4
@@ -15,7 +15,8 @@ LIRC_SET_SEND_CARRIER - Set send carrier used to modulate IR TX. · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, __u32 *frequency )
18+.. c:function:: int ioctl( int fd, LIRC_SET_SEND_CARRIER, __u32 *frequency )
19+ :name: LIRC_SET_SEND_CARRIER
1920
2021 Arguments
2122 =========
@@ -23,9 +24,6 @@ Arguments · 1 unmodified line
2324 ``fd``
2425 File descriptor returned by open().
2526
26−``request``
27− LIRC_SET_SEND_CARRIER
28−
2927 ``frequency``
3028 Frequency of the carrier to be modulated, in Hz.
3129
Documentation/media/uapi/rc/lirc-set-send-duty-cycle.rst+2−4
@@ -15,7 +15,8 @@ IR transmit. · 14 unmodified lines
1515 Synopsis
1616 ========
1717
18−.. cpp:function:: int ioctl( int fd, int request, __u32 *duty_cycle)
18+.. c:function:: int ioctl( int fd, LIRC_SET_SEND_DUTY_CYCLE, __u32 *duty_cycle)
19+ :name: LIRC_SET_SEND_DUTY_CYCLE
1920
2021 Arguments
2122 =========
@@ -23,9 +24,6 @@ Arguments · 1 unmodified line
2324 ``fd``
2425 File descriptor returned by open().
2526
26−``request``
27− LIRC_SET_SEND_DUTY_CYCLE
28−
2927 ``duty_cycle``
3028 Duty cicle, describing the pulse width in percent (from 1 to 99) of
3129 the total cycle. Values 0 and 100 are reserved.
Documentation/media/uapi/rc/lirc-set-transmitter-mask.rst+2−4
@@ -14,7 +14,8 @@ LIRC_SET_TRANSMITTER_MASK - Enables send codes on a given set of transmitters · 13 unmodified lines
1414 Synopsis
1515 ========
1616
17−.. cpp:function:: int ioctl( int fd, int request, __u32 *mask )
17+.. c:function:: int ioctl( int fd, LIRC_SET_TRANSMITTER_MASK, __u32 *mask )
18+ :name: LIRC_SET_TRANSMITTER_MASK
1819
1920 Arguments
2021 =========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
2223 ``fd``
2324 File descriptor returned by open().
2425
25−``request``
26− LIRC_SET_TRANSMITTER_MASK
27−
2826 ``mask``
2927 Mask with channels to enable tx. Channel 0 is the least significant bit.
3028
Documentation/media/uapi/rc/lirc-set-wideband-receiver.rst+5−5
@@ -14,7 +14,8 @@ LIRC_SET_WIDEBAND_RECEIVER - enable wide band receiver. · 13 unmodified lines
1414 Synopsis
1515 ========
1616
17−.. cpp:function:: int ioctl( int fd, int request, __u32 *enable )
17+.. c:function:: int ioctl( int fd, LIRC_SET_WIDEBAND_RECEIVER, __u32 *enable )
18+ :name: LIRC_SET_WIDEBAND_RECEIVER
1819
1920 Arguments
2021 =========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
2223 ``fd``
2324 File descriptor returned by open().
2425
25−``request``
26− LIRC_SET_WIDEBAND_RECEIVER
27−
2826 ``enable``
2927 enable = 1 means enable wideband receiver, enable = 0 means disable
3028 wideband receiver.
@@ -42,7 +40,9 @@ that prevents them to be used with some remotes. Wide band receiver might · 11 unmodified lines
4240 also be more precise. On the other hand its disadvantage it usually
4341 reduced range of reception.
4442
45−.. note:: Wide band receiver might be implictly enabled if you enable
43+.. note::
44+
45+ Wide band receiver might be implictly enabled if you enable
4646 carrier reports. In that case it will be disabled as soon as you disable
4747 carrier reports. Trying to disable wide band receiver while carrier
4848 reports are active will do nothing.
Documentation/media/uapi/rc/lirc-write.rst+5−3
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
2020 #include <unistd.h>
2121
2222
23−.. cpp:function:: ssize_t write( int fd, void *buf, size_t count )
24−
23+.. c:function:: ssize_t write( int fd, void *buf, size_t count )
24+ :name: lirc-write
2525
2626 Arguments
2727 =========
@@ -30,8 +30,10 @@ Arguments · 2 unmodified lines
3030 File descriptor returned by ``open()``.
3131
3232 ``buf``
33−``count``
33+ Buffer with data to be written
3434
35+``count``
36+ Number of bytes at the buffer
3537
3638 Description
3739 ===========
Documentation/media/uapi/rc/rc-tables.rst+2−0
@@ -25,6 +25,8 @@ the remote via /dev/input/event devices. · 24 unmodified lines
2525
2626 .. _rc_standard_keymap:
2727
28+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
29+
2830 .. flat-table:: IR default keymapping
2931 :header-rows: 0
3032 :stub-columns: 0
Documentation/media/uapi/v4l/audio.rst+9−7
@@ -21,15 +21,15 @@ more than one video input or output. Assumed two composite video inputs · 20 unmodified lines
2121 and two audio inputs exist, there may be up to four valid combinations.
2222 The relation of video and audio connectors is defined in the
2323 ``audioset`` field of the respective struct
24−:ref:`v4l2_input <v4l2-input>` or struct
25−:ref:`v4l2_output <v4l2-output>`, where each bit represents the index
24+:c:type:`v4l2_input` or struct
25+:c:type:`v4l2_output`, where each bit represents the index
2626 number, starting at zero, of one audio input or output.
2727
2828 To learn about the number and attributes of the available inputs and
2929 outputs applications can enumerate them with the
3030 :ref:`VIDIOC_ENUMAUDIO` and
3131 :ref:`VIDIOC_ENUMAUDOUT <VIDIOC_ENUMAUDOUT>` ioctl, respectively.
32−The struct :ref:`v4l2_audio <v4l2-audio>` returned by the
32+The struct :c:type:`v4l2_audio` returned by the
3333 :ref:`VIDIOC_ENUMAUDIO` ioctl also contains signal
3434 :status information applicable when the current audio input is queried.
3535
@@ -37,7 +37,9 @@ The :ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` and · 1 unmodified line
3737 :ref:`VIDIOC_G_AUDOUT <VIDIOC_G_AUDOUT>` ioctls report the current
3838 audio input and output, respectively.
3939
40−.. note:: Note that, unlike :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and
40+.. note::
41+
42+ Note that, unlike :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and
4143 :ref:`VIDIOC_G_OUTPUT <VIDIOC_G_OUTPUT>` these ioctls return a
4244 structure as :ref:`VIDIOC_ENUMAUDIO` and
4345 :ref:`VIDIOC_ENUMAUDOUT <VIDIOC_ENUMAUDOUT>` do, not just an index.
@@ -51,7 +53,7 @@ Drivers must implement all audio input ioctls when the device has · 7 unmodified lines
5153 multiple selectable audio inputs, all audio output ioctls when the
5254 device has multiple selectable audio outputs. When the device has any
5355 audio inputs or outputs the driver must set the ``V4L2_CAP_AUDIO`` flag
54−in the struct :ref:`v4l2_capability <v4l2-capability>` returned by
56+in the struct :c:type:`v4l2_capability` returned by
5557 the :ref:`VIDIOC_QUERYCAP` ioctl.
5658
5759
@@ -89,7 +91,7 @@ Example: Switching to the first audio input · 31 unmodified lines
8991 }
9092
9193 .. [#f1]
92− Actually struct :ref:`v4l2_audio <v4l2-audio>` ought to have a
93− ``tuner`` field like struct :ref:`v4l2_input <v4l2-input>`, not
94+ Actually struct :c:type:`v4l2_audio` ought to have a
95+ ``tuner`` field like struct :c:type:`v4l2_input`, not
9496 only making the API more consistent but also permitting radio devices
9597 with multiple tuners.
Documentation/media/uapi/v4l/buffer.rst+543−861
@@ -11,14 +11,14 @@ the Streaming I/O methods. In the multi-planar API, the data is held in · 10 unmodified lines
1111 planes, while the buffer structure acts as a container for the planes.
1212 Only pointers to buffers (planes) are exchanged, the data itself is not
1313 copied. These pointers, together with meta-information like timestamps
14−or field parity, are stored in a struct :ref:`struct v4l2_buffer <v4l2-buffer>`,
14+or field parity, are stored in a struct :c:type:`v4l2_buffer`,
1515 argument to the :ref:`VIDIOC_QUERYBUF`,
1616 :ref:`VIDIOC_QBUF` and
1717 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. In the multi-planar API,
18−some plane-specific members of struct :ref:`struct v4l2_buffer <v4l2-buffer>`,
18+some plane-specific members of struct :c:type:`v4l2_buffer`,
1919 such as pointers and sizes for each plane, are stored in struct
20−:ref:`struct v4l2_plane <v4l2-plane>` instead. In that case, struct
21−:ref:`struct v4l2_buffer <v4l2-buffer>` contains an array of plane structures.
20+struct :c:type:`v4l2_plane` instead. In that case, struct
21+struct :c:type:`v4l2_buffer` contains an array of plane structures.
2222
2323 Dequeued video buffers come with timestamps. The driver decides at which
2424 part of the frame and with which clock the timestamp is taken. Please
@@ -34,470 +34,302 @@ flags are copied from the OUTPUT video buffer to the CAPTURE video · 9 unmodified lines
3434 buffer.
3535
3636
37−.. _v4l2-buffer:
37+.. c:type:: v4l2_buffer
3838
3939 struct v4l2_buffer
4040 ==================
4141
42+.. tabularcolumns:: |p{2.8cm}|p{2.5cm}|p{1.3cm}|p{10.5cm}|
43+
44+.. cssclass:: longtable
45+
4246 .. flat-table:: struct v4l2_buffer
4347 :header-rows: 0
4448 :stub-columns: 0
45− :widths: 1 1 1 2
46−
47−
48− - .. row 1
49−
50− - __u32
51−
52− - ``index``
53−
54− -
55− - Number of the buffer, set by the application except when calling
56− :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>`, then it is set by the
57− driver. This field can range from zero to the number of buffers
58− allocated with the :ref:`VIDIOC_REQBUFS` ioctl
59− (struct :ref:`v4l2_requestbuffers <v4l2-requestbuffers>`
60− ``count``), plus any buffers allocated with
61− :ref:`VIDIOC_CREATE_BUFS` minus one.
62−
63− - .. row 2
64−
65− - __u32
66−
67− - ``type``
68−
69− -
70− - Type of the buffer, same as struct
71− :ref:`v4l2_format <v4l2-format>` ``type`` or struct
72− :ref:`v4l2_requestbuffers <v4l2-requestbuffers>` ``type``, set
73− by the application. See :ref:`v4l2-buf-type`
74−
75− - .. row 3
76−
77− - __u32
78−
79− - ``bytesused``
80−
81− -
82− - The number of bytes occupied by the data in the buffer. It depends
83− on the negotiated data format and may change with each buffer for
84− compressed variable size data like JPEG images. Drivers must set
85− this field when ``type`` refers to a capture stream, applications
86− when it refers to an output stream. If the application sets this
87− to 0 for an output stream, then ``bytesused`` will be set to the
88− size of the buffer (see the ``length`` field of this struct) by
89− the driver. For multiplanar formats this field is ignored and the
90− ``planes`` pointer is used instead.
91−
92− - .. row 4
93−
94− - __u32
95−
96− - ``flags``
97−
98− -
99− - Flags set by the application or driver, see :ref:`buffer-flags`.
100−
101− - .. row 5
102−
103− - __u32
104−
105− - ``field``
106−
107− -
108− - Indicates the field order of the image in the buffer, see
109− :ref:`v4l2-field`. This field is not used when the buffer
110− contains VBI data. Drivers must set it when ``type`` refers to a
111− capture stream, applications when it refers to an output stream.
112−
113− - .. row 6
114−
115− - struct timeval
116−
117− - ``timestamp``
118−
119− -
120− - For capture streams this is time when the first data byte was
121− captured, as returned by the :c:func:`clock_gettime()` function
122− for the relevant clock id; see ``V4L2_BUF_FLAG_TIMESTAMP_*`` in
123− :ref:`buffer-flags`. For output streams the driver stores the
124− time at which the last data byte was actually sent out in the
125− ``timestamp`` field. This permits applications to monitor the
126− drift between the video and system clock. For output streams that
127− use ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` the application has to fill
128− in the timestamp which will be copied by the driver to the capture
129− stream.
130−
131− - .. row 7
132−
133− - struct :ref:`v4l2_timecode <v4l2-timecode>`
134−
135− - ``timecode``
136−
137− -
138− - When ``type`` is ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` and the
139− ``V4L2_BUF_FLAG_TIMECODE`` flag is set in ``flags``, this
140− structure contains a frame timecode. In
141− :ref:`V4L2_FIELD_ALTERNATE <v4l2-field>` mode the top and
142− bottom field contain the same timecode. Timecodes are intended to
143− help video editing and are typically recorded on video tapes, but
144− also embedded in compressed formats like MPEG. This field is
145− independent of the ``timestamp`` and ``sequence`` fields.
146−
147− - .. row 8
148−
149− - __u32
150−
151− - ``sequence``
152−
153− -
154− - Set by the driver, counting the frames (not fields!) in sequence.
155− This field is set for both input and output devices.
156−
157− - .. row 9
158−
159− - :cspan:`3`
160−
161− In :ref:`V4L2_FIELD_ALTERNATE <v4l2-field>` mode the top and
162− bottom field have the same sequence number. The count starts at
163− zero and includes dropped or repeated frames. A dropped frame was
164− received by an input device but could not be stored due to lack of
165− free buffer space. A repeated frame was displayed again by an
166− output device because the application did not pass new data in
167− time.
168−
169− .. note:: This may count the frames received e.g. over USB, without
170− taking into account the frames dropped by the remote hardware due
171− to limited compression throughput or bus bandwidth. These devices
172− identify by not enumerating any video standards, see
173− :ref:`standard`.
174−
175− - .. row 10
176−
177− - __u32
178−
179− - ``memory``
180−
181− -
182− - This field must be set by applications and/or drivers in
183− accordance with the selected I/O method. See :ref:`v4l2-memory`
184−
185− - .. row 11
186−
187− - union
188−
189− - ``m``
190−
191− - .. row 12
192−
193− -
194− - __u32
195−
196− - ``offset``
197−
198− - For the single-planar API and when ``memory`` is
199− ``V4L2_MEMORY_MMAP`` this is the offset of the buffer from the
200− start of the device memory. The value is returned by the driver
201− and apart of serving as parameter to the
202− :ref:`mmap() <func-mmap>` function not useful for applications.
203− See :ref:`mmap` for details
204−
205− - .. row 13
206−
207− -
208− - unsigned long
209−
210− - ``userptr``
211−
212− - For the single-planar API and when ``memory`` is
213− ``V4L2_MEMORY_USERPTR`` this is a pointer to the buffer (casted to
214− unsigned long type) in virtual memory, set by the application. See
215− :ref:`userp` for details.
216−
217− - .. row 14
218−
219− -
220− - struct v4l2_plane
221−
222− - ``*planes``
223−
224− - When using the multi-planar API, contains a userspace pointer to
225− an array of struct :ref:`v4l2_plane <v4l2-plane>`. The size of
226− the array should be put in the ``length`` field of this
227− :ref:`struct v4l2_buffer <v4l2-buffer>` structure.
228−
229− - .. row 15
230−
231− -
232− - int
233−
234− - ``fd``
235−
236− - For the single-plane API and when ``memory`` is
237− ``V4L2_MEMORY_DMABUF`` this is the file descriptor associated with
238− a DMABUF buffer.
239−
240− - .. row 16
241−
242− - __u32
243−
244− - ``length``
245−
246− -
247− - Size of the buffer (not the payload) in bytes for the
248− single-planar API. This is set by the driver based on the calls to
249− :ref:`VIDIOC_REQBUFS` and/or
250− :ref:`VIDIOC_CREATE_BUFS`. For the
251− multi-planar API the application sets this to the number of
252− elements in the ``planes`` array. The driver will fill in the
253− actual number of valid elements in that array.
254−
255− - .. row 17
256−
257− - __u32
258−
259− - ``reserved2``
260−
261− -
262− - A place holder for future extensions. Drivers and applications
263− must set this to 0.
264−
265− - .. row 18
266−
267− - __u32
268−
269− - ``reserved``
270−
271− -
272− - A place holder for future extensions. Drivers and applications
273− must set this to 0.
274−
275−
276−
277−.. _v4l2-plane:
49+ :widths: 1 2 1 10
50+
51+ * - __u32
52+ - ``index``
53+ -
54+ - Number of the buffer, set by the application except when calling
55+ :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>`, then it is set by the
56+ driver. This field can range from zero to the number of buffers
57+ allocated with the :ref:`VIDIOC_REQBUFS` ioctl
58+ (struct :c:type:`v4l2_requestbuffers`
59+ ``count``), plus any buffers allocated with
60+ :ref:`VIDIOC_CREATE_BUFS` minus one.
61+ * - __u32
62+ - ``type``
63+ -
64+ - Type of the buffer, same as struct
65+ :c:type:`v4l2_format` ``type`` or struct
66+ :c:type:`v4l2_requestbuffers` ``type``, set
67+ by the application. See :c:type:`v4l2_buf_type`
68+ * - __u32
69+ - ``bytesused``
70+ -
71+ - The number of bytes occupied by the data in the buffer. It depends
72+ on the negotiated data format and may change with each buffer for
73+ compressed variable size data like JPEG images. Drivers must set
74+ this field when ``type`` refers to a capture stream, applications
75+ when it refers to an output stream. If the application sets this
76+ to 0 for an output stream, then ``bytesused`` will be set to the
77+ size of the buffer (see the ``length`` field of this struct) by
78+ the driver. For multiplanar formats this field is ignored and the
79+ ``planes`` pointer is used instead.
80+ * - __u32
81+ - ``flags``
82+ -
83+ - Flags set by the application or driver, see :ref:`buffer-flags`.
84+ * - __u32
85+ - ``field``
86+ -
87+ - Indicates the field order of the image in the buffer, see
88+ :c:type:`v4l2_field`. This field is not used when the buffer
89+ contains VBI data. Drivers must set it when ``type`` refers to a
90+ capture stream, applications when it refers to an output stream.
91+ * - struct timeval
92+ - ``timestamp``
93+ -
94+ - For capture streams this is time when the first data byte was
95+ captured, as returned by the :c:func:`clock_gettime()` function
96+ for the relevant clock id; see ``V4L2_BUF_FLAG_TIMESTAMP_*`` in
97+ :ref:`buffer-flags`. For output streams the driver stores the
98+ time at which the last data byte was actually sent out in the
99+ ``timestamp`` field. This permits applications to monitor the
100+ drift between the video and system clock. For output streams that
101+ use ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` the application has to fill
102+ in the timestamp which will be copied by the driver to the capture
103+ stream.
104+ * - struct :c:type:`v4l2_timecode`
105+ - ``timecode``
106+ -
107+ - When ``type`` is ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` and the
108+ ``V4L2_BUF_FLAG_TIMECODE`` flag is set in ``flags``, this
109+ structure contains a frame timecode. In
110+ :c:type:`V4L2_FIELD_ALTERNATE <v4l2_field>` mode the top and
111+ bottom field contain the same timecode. Timecodes are intended to
112+ help video editing and are typically recorded on video tapes, but
113+ also embedded in compressed formats like MPEG. This field is
114+ independent of the ``timestamp`` and ``sequence`` fields.
115+ * - __u32
116+ - ``sequence``
117+ -
118+ - Set by the driver, counting the frames (not fields!) in sequence.
119+ This field is set for both input and output devices.
120+ * - :cspan:`3`
121+
122+ In :c:type:`V4L2_FIELD_ALTERNATE <v4l2_field>` mode the top and
123+ bottom field have the same sequence number. The count starts at
124+ zero and includes dropped or repeated frames. A dropped frame was
125+ received by an input device but could not be stored due to lack of
126+ free buffer space. A repeated frame was displayed again by an
127+ output device because the application did not pass new data in
128+ time.
129+
130+ .. note::
131+
132+ This may count the frames received e.g. over USB, without
133+ taking into account the frames dropped by the remote hardware due
134+ to limited compression throughput or bus bandwidth. These devices
135+ identify by not enumerating any video standards, see
136+ :ref:`standard`.
137+
138+ * - __u32
139+ - ``memory``
140+ -
141+ - This field must be set by applications and/or drivers in
142+ accordance with the selected I/O method. See :c:type:`v4l2_memory`
143+ * - union
144+ - ``m``
145+ * -
146+ - __u32
147+ - ``offset``
148+ - For the single-planar API and when ``memory`` is
149+ ``V4L2_MEMORY_MMAP`` this is the offset of the buffer from the
150+ start of the device memory. The value is returned by the driver
151+ and apart of serving as parameter to the
152+ :ref:`mmap() <func-mmap>` function not useful for applications.
153+ See :ref:`mmap` for details
154+ * -
155+ - unsigned long
156+ - ``userptr``
157+ - For the single-planar API and when ``memory`` is
158+ ``V4L2_MEMORY_USERPTR`` this is a pointer to the buffer (casted to
159+ unsigned long type) in virtual memory, set by the application. See
160+ :ref:`userp` for details.
161+ * -
162+ - struct v4l2_plane
163+ - ``*planes``
164+ - When using the multi-planar API, contains a userspace pointer to
165+ an array of struct :c:type:`v4l2_plane`. The size of
166+ the array should be put in the ``length`` field of this
167+ struct :c:type:`v4l2_buffer` structure.
168+ * -
169+ - int
170+ - ``fd``
171+ - For the single-plane API and when ``memory`` is
172+ ``V4L2_MEMORY_DMABUF`` this is the file descriptor associated with
173+ a DMABUF buffer.
174+ * - __u32
175+ - ``length``
176+ -
177+ - Size of the buffer (not the payload) in bytes for the
178+ single-planar API. This is set by the driver based on the calls to
179+ :ref:`VIDIOC_REQBUFS` and/or
180+ :ref:`VIDIOC_CREATE_BUFS`. For the
181+ multi-planar API the application sets this to the number of
182+ elements in the ``planes`` array. The driver will fill in the
183+ actual number of valid elements in that array.
184+ * - __u32
185+ - ``reserved2``
186+ -
187+ - A place holder for future extensions. Drivers and applications
188+ must set this to 0.
189+ * - __u32
190+ - ``reserved``
191+ -
192+ - A place holder for future extensions. Drivers and applications
193+ must set this to 0.
194+
195+
196+
197+.. c:type:: v4l2_plane
278198
279199 struct v4l2_plane
280200 =================
281201
202+.. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{3.5cm}|p{7.0cm}|
203+
204+.. cssclass:: longtable
205+
282206 .. flat-table::
283207 :header-rows: 0
284208 :stub-columns: 0
285209 :widths: 1 1 1 2
286210
287−
288− - .. row 1
289−
290− - __u32
291−
292− - ``bytesused``
293−
294− -
295− - The number of bytes occupied by data in the plane (its payload).
296− Drivers must set this field when ``type`` refers to a capture
297− stream, applications when it refers to an output stream. If the
298− application sets this to 0 for an output stream, then
299− ``bytesused`` will be set to the size of the plane (see the
300− ``length`` field of this struct) by the driver.
301−
302− .. note:: Note that the actual image data starts at ``data_offset``
303− which may not be 0.
304−
305− - .. row 2
306−
307− - __u32
308−
309− - ``length``
310−
311− -
312− - Size in bytes of the plane (not its payload). This is set by the
313− driver based on the calls to
314− :ref:`VIDIOC_REQBUFS` and/or
315− :ref:`VIDIOC_CREATE_BUFS`.
316−
317− - .. row 3
318−
319− - union
320−
321− - ``m``
322−
323− -
324− -
325−
326− - .. row 4
327−
328− -
329− - __u32
330−
331− - ``mem_offset``
332−
333− - When the memory type in the containing struct
334− :ref:`v4l2_buffer <v4l2-buffer>` is ``V4L2_MEMORY_MMAP``, this
335− is the value that should be passed to :ref:`mmap() <func-mmap>`,
336− similar to the ``offset`` field in struct
337− :ref:`v4l2_buffer <v4l2-buffer>`.
338−
339− - .. row 5
340−
341− -
342− - unsigned long
343−
344− - ``userptr``
345−
346− - When the memory type in the containing struct
347− :ref:`v4l2_buffer <v4l2-buffer>` is ``V4L2_MEMORY_USERPTR``,
348− this is a userspace pointer to the memory allocated for this plane
349− by an application.
350−
351− - .. row 6
352−
353− -
354− - int
355−
356− - ``fd``
357−
358− - When the memory type in the containing struct
359− :ref:`v4l2_buffer <v4l2-buffer>` is ``V4L2_MEMORY_DMABUF``,
360− this is a file descriptor associated with a DMABUF buffer, similar
361− to the ``fd`` field in struct :ref:`v4l2_buffer <v4l2-buffer>`.
362−
363− - .. row 7
364−
365− - __u32
366−
367− - ``data_offset``
368−
369− -
370− - Offset in bytes to video data in the plane. Drivers must set this
371− field when ``type`` refers to a capture stream, applications when
372− it refers to an output stream.
373−
374− .. note:: That data_offset is included in ``bytesused``. So the
375− size of the image in the plane is ``bytesused``-``data_offset``
376− at offset ``data_offset`` from the start of the plane.
377−
378− - .. row 8
379−
380− - __u32
381−
382− - ``reserved[11]``
383−
384− -
385− - Reserved for future use. Should be zeroed by drivers and
386− applications.
387−
388−
389−
390−.. _v4l2-buf-type:
211+ * - __u32
212+ - ``bytesused``
213+ -
214+ - The number of bytes occupied by data in the plane (its payload).
215+ Drivers must set this field when ``type`` refers to a capture
216+ stream, applications when it refers to an output stream. If the
217+ application sets this to 0 for an output stream, then
218+ ``bytesused`` will be set to the size of the plane (see the
219+ ``length`` field of this struct) by the driver.
220+
221+ .. note::
222+
223+ Note that the actual image data starts at ``data_offset``
224+ which may not be 0.
225+ * - __u32
226+ - ``length``
227+ -
228+ - Size in bytes of the plane (not its payload). This is set by the
229+ driver based on the calls to
230+ :ref:`VIDIOC_REQBUFS` and/or
231+ :ref:`VIDIOC_CREATE_BUFS`.
232+ * - union
233+ - ``m``
234+ -
235+ -
236+ * -
237+ - __u32
238+ - ``mem_offset``
239+ - When the memory type in the containing struct
240+ :c:type:`v4l2_buffer` is ``V4L2_MEMORY_MMAP``, this
241+ is the value that should be passed to :ref:`mmap() <func-mmap>`,
242+ similar to the ``offset`` field in struct
243+ :c:type:`v4l2_buffer`.
244+ * -
245+ - unsigned long
246+ - ``userptr``
247+ - When the memory type in the containing struct
248+ :c:type:`v4l2_buffer` is ``V4L2_MEMORY_USERPTR``,
249+ this is a userspace pointer to the memory allocated for this plane
250+ by an application.
251+ * -
252+ - int
253+ - ``fd``
254+ - When the memory type in the containing struct
255+ :c:type:`v4l2_buffer` is ``V4L2_MEMORY_DMABUF``,
256+ this is a file descriptor associated with a DMABUF buffer, similar
257+ to the ``fd`` field in struct :c:type:`v4l2_buffer`.
258+ * - __u32
259+ - ``data_offset``
260+ -
261+ - Offset in bytes to video data in the plane. Drivers must set this
262+ field when ``type`` refers to a capture stream, applications when
263+ it refers to an output stream.
264+
265+ .. note::
266+
267+ That data_offset is included in ``bytesused``. So the
268+ size of the image in the plane is ``bytesused``-``data_offset``
269+ at offset ``data_offset`` from the start of the plane.
270+ * - __u32
271+ - ``reserved[11]``
272+ -
273+ - Reserved for future use. Should be zeroed by drivers and
274+ applications.
275+
276+
277+
278+.. c:type:: v4l2_buf_type
391279
392280 enum v4l2_buf_type
393281 ==================
394282
283+.. cssclass:: longtable
284+
285+.. tabularcolumns:: |p{7.2cm}|p{0.6cm}|p{9.7cm}|
286+
395287 .. flat-table::
396288 :header-rows: 0
397289 :stub-columns: 0
398− :widths: 3 1 4
399−
400−
401− - .. row 1
402−
403− - ``V4L2_BUF_TYPE_VIDEO_CAPTURE``
404−
405− - 1
406−
407− - Buffer of a single-planar video capture stream, see
408− :ref:`capture`.
409−
410− - .. row 2
411−
412− - ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``
413−
414− - 9
415−
416− - Buffer of a multi-planar video capture stream, see
417− :ref:`capture`.
418−
419− - .. row 3
420−
421− - ``V4L2_BUF_TYPE_VIDEO_OUTPUT``
422−
423− - 2
424−
425− - Buffer of a single-planar video output stream, see
426− :ref:`output`.
427−
428− - .. row 4
429−
430− - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``
431−
432− - 10
433−
434− - Buffer of a multi-planar video output stream, see :ref:`output`.
435−
436− - .. row 5
437−
438− - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``
439−
440− - 3
441−
442− - Buffer for video overlay, see :ref:`overlay`.
443−
444− - .. row 6
445−
446− - ``V4L2_BUF_TYPE_VBI_CAPTURE``
447−
448− - 4
449−
450− - Buffer of a raw VBI capture stream, see :ref:`raw-vbi`.
451−
452− - .. row 7
453−
454− - ``V4L2_BUF_TYPE_VBI_OUTPUT``
455−
456− - 5
457−
458− - Buffer of a raw VBI output stream, see :ref:`raw-vbi`.
459−
460− - .. row 8
461−
462− - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE``
463−
464− - 6
465−
466− - Buffer of a sliced VBI capture stream, see :ref:`sliced`.
467−
468− - .. row 9
469−
470− - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``
471−
472− - 7
473−
474− - Buffer of a sliced VBI output stream, see :ref:`sliced`.
475−
476− - .. row 10
477−
478− - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY``
479−
480− - 8
481−
482− - Buffer for video output overlay (OSD), see :ref:`osd`.
483−
484− - .. row 11
485−
486− - ``V4L2_BUF_TYPE_SDR_CAPTURE``
487−
488− - 11
489−
490− - Buffer for Software Defined Radio (SDR) capture stream, see
491− :ref:`sdr`.
492−
493− - .. row 12
494−
495− - ``V4L2_BUF_TYPE_SDR_OUTPUT``
496−
497− - 12
498−
499− - Buffer for Software Defined Radio (SDR) output stream, see
500− :ref:`sdr`.
290+ :widths: 4 1 9
291+
292+ * - ``V4L2_BUF_TYPE_VIDEO_CAPTURE``
293+ - 1
294+ - Buffer of a single-planar video capture stream, see
295+ :ref:`capture`.
296+ * - ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``
297+ - 9
298+ - Buffer of a multi-planar video capture stream, see
299+ :ref:`capture`.
300+ * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT``
301+ - 2
302+ - Buffer of a single-planar video output stream, see
303+ :ref:`output`.
304+ * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``
305+ - 10
306+ - Buffer of a multi-planar video output stream, see :ref:`output`.
307+ * - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``
308+ - 3
309+ - Buffer for video overlay, see :ref:`overlay`.
310+ * - ``V4L2_BUF_TYPE_VBI_CAPTURE``
311+ - 4
312+ - Buffer of a raw VBI capture stream, see :ref:`raw-vbi`.
313+ * - ``V4L2_BUF_TYPE_VBI_OUTPUT``
314+ - 5
315+ - Buffer of a raw VBI output stream, see :ref:`raw-vbi`.
316+ * - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE``
317+ - 6
318+ - Buffer of a sliced VBI capture stream, see :ref:`sliced`.
319+ * - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``
320+ - 7
321+ - Buffer of a sliced VBI output stream, see :ref:`sliced`.
322+ * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY``
323+ - 8
324+ - Buffer for video output overlay (OSD), see :ref:`osd`.
325+ * - ``V4L2_BUF_TYPE_SDR_CAPTURE``
326+ - 11
327+ - Buffer for Software Defined Radio (SDR) capture stream, see
328+ :ref:`sdr`.
329+ * - ``V4L2_BUF_TYPE_SDR_OUTPUT``
330+ - 12
331+ - Buffer for Software Defined Radio (SDR) output stream, see
332+ :ref:`sdr`.
501333
502334
503335
@@ -506,371 +338,267 @@ enum v4l2_buf_type · 2 unmodified lines
506338 Buffer Flags
507339 ============
508340
341+.. tabularcolumns:: |p{7.0cm}|p{2.2cm}|p{8.3cm}|
342+
343+.. cssclass:: longtable
344+
509345 .. flat-table::
510346 :header-rows: 0
511347 :stub-columns: 0
512348 :widths: 3 1 4
513349
514−
515− - .. _`V4L2-BUF-FLAG-MAPPED`:
516−
517− - ``V4L2_BUF_FLAG_MAPPED``
518−
519− - 0x00000001
520−
521− - The buffer resides in device memory and has been mapped into the
522− application's address space, see :ref:`mmap` for details.
523− Drivers set or clear this flag when the
524− :ref:`VIDIOC_QUERYBUF`,
525− :ref:`VIDIOC_QBUF` or
526− :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Set by the
527− driver.
528−
529− - .. _`V4L2-BUF-FLAG-QUEUED`:
530−
531− - ``V4L2_BUF_FLAG_QUEUED``
532−
533− - 0x00000002
534−
535− - Internally drivers maintain two buffer queues, an incoming and
536− outgoing queue. When this flag is set, the buffer is currently on
537− the incoming queue. It automatically moves to the outgoing queue
538− after the buffer has been filled (capture devices) or displayed
539− (output devices). Drivers set or clear this flag when the
540− ``VIDIOC_QUERYBUF`` ioctl is called. After (successful) calling
541− the ``VIDIOC_QBUF``\ ioctl it is always set and after
542− ``VIDIOC_DQBUF`` always cleared.
543−
544− - .. _`V4L2-BUF-FLAG-DONE`:
545−
546− - ``V4L2_BUF_FLAG_DONE``
547−
548− - 0x00000004
549−
550− - When this flag is set, the buffer is currently on the outgoing
551− queue, ready to be dequeued from the driver. Drivers set or clear
552− this flag when the ``VIDIOC_QUERYBUF`` ioctl is called. After
553− calling the ``VIDIOC_QBUF`` or ``VIDIOC_DQBUF`` it is always
554− cleared. Of course a buffer cannot be on both queues at the same
555− time, the ``V4L2_BUF_FLAG_QUEUED`` and ``V4L2_BUF_FLAG_DONE`` flag
556− are mutually exclusive. They can be both cleared however, then the
557− buffer is in "dequeued" state, in the application domain so to
558− say.
559−
560− - .. _`V4L2-BUF-FLAG-ERROR`:
561−
562− - ``V4L2_BUF_FLAG_ERROR``
563−
564− - 0x00000040
565−
566− - When this flag is set, the buffer has been dequeued successfully,
567− although the data might have been corrupted. This is recoverable,
568− streaming may continue as normal and the buffer may be reused
569− normally. Drivers set this flag when the ``VIDIOC_DQBUF`` ioctl is
570− called.
571−
572− - .. _`V4L2-BUF-FLAG-KEYFRAME`:
573−
574− - ``V4L2_BUF_FLAG_KEYFRAME``
575−
576− - 0x00000008
577−
578− - Drivers set or clear this flag when calling the ``VIDIOC_DQBUF``
579− ioctl. It may be set by video capture devices when the buffer
580− contains a compressed image which is a key frame (or field), i. e.
581− can be decompressed on its own. Also known as an I-frame.
582− Applications can set this bit when ``type`` refers to an output
583− stream.
584−
585− - .. _`V4L2-BUF-FLAG-PFRAME`:
586−
587− - ``V4L2_BUF_FLAG_PFRAME``
588−
589− - 0x00000010
590−
591− - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags predicted frames
592− or fields which contain only differences to a previous key frame.
593− Applications can set this bit when ``type`` refers to an output
594− stream.
595−
596− - .. _`V4L2-BUF-FLAG-BFRAME`:
597−
598− - ``V4L2_BUF_FLAG_BFRAME``
599−
600− - 0x00000020
601−
602− - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags a bi-directional
603− predicted frame or field which contains only the differences
604− between the current frame and both the preceding and following key
605− frames to specify its content. Applications can set this bit when
606− ``type`` refers to an output stream.
607−
608− - .. _`V4L2-BUF-FLAG-TIMECODE`:
609−
610− - ``V4L2_BUF_FLAG_TIMECODE``
611−
612− - 0x00000100
613−
614− - The ``timecode`` field is valid. Drivers set or clear this flag
615− when the ``VIDIOC_DQBUF`` ioctl is called. Applications can set
616− this bit and the corresponding ``timecode`` structure when
617− ``type`` refers to an output stream.
618−
619− - .. _`V4L2-BUF-FLAG-PREPARED`:
620−
621− - ``V4L2_BUF_FLAG_PREPARED``
622−
623− - 0x00000400
624−
625− - The buffer has been prepared for I/O and can be queued by the
626− application. Drivers set or clear this flag when the
627− :ref:`VIDIOC_QUERYBUF`,
628− :ref:`VIDIOC_PREPARE_BUF <VIDIOC_QBUF>`,
629− :ref:`VIDIOC_QBUF` or
630− :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called.
631−
632− - .. _`V4L2-BUF-FLAG-NO-CACHE-INVALIDATE`:
633−
634− - ``V4L2_BUF_FLAG_NO_CACHE_INVALIDATE``
635−
636− - 0x00000800
637−
638− - Caches do not have to be invalidated for this buffer. Typically
639− applications shall use this flag if the data captured in the
640− buffer is not going to be touched by the CPU, instead the buffer
641− will, probably, be passed on to a DMA-capable hardware unit for
642− further processing or output.
643−
644− - .. _`V4L2-BUF-FLAG-NO-CACHE-CLEAN`:
645−
646− - ``V4L2_BUF_FLAG_NO_CACHE_CLEAN``
647−
648− - 0x00001000
649−
650− - Caches do not have to be cleaned for this buffer. Typically
651− applications shall use this flag for output buffers if the data in
652− this buffer has not been created by the CPU but by some
653− DMA-capable unit, in which case caches have not been used.
654−
655− - .. _`V4L2-BUF-FLAG-LAST`:
656−
657− - ``V4L2_BUF_FLAG_LAST``
658−
659− - 0x00100000
660−
661− - Last buffer produced by the hardware. mem2mem codec drivers set
662− this flag on the capture queue for the last buffer when the
663− :ref:`VIDIOC_QUERYBUF` or
664− :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Due to
665− hardware limitations, the last buffer may be empty. In this case
666− the driver will set the ``bytesused`` field to 0, regardless of
667− the format. Any Any subsequent call to the
668− :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore,
669− but return an ``EPIPE`` error code.
670−
671− - .. _`V4L2-BUF-FLAG-TIMESTAMP-MASK`:
672−
673− - ``V4L2_BUF_FLAG_TIMESTAMP_MASK``
674−
675− - 0x0000e000
676−
677− - Mask for timestamp types below. To test the timestamp type, mask
678− out bits not belonging to timestamp type by performing a logical
679− and operation with buffer flags and timestamp mask.
680−
681− - .. _`V4L2-BUF-FLAG-TIMESTAMP-UNKNOWN`:
682−
683− - ``V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN``
684−
685− - 0x00000000
686−
687− - Unknown timestamp type. This type is used by drivers before Linux
688− 3.9 and may be either monotonic (see below) or realtime (wall
689− clock). Monotonic clock has been favoured in embedded systems
690− whereas most of the drivers use the realtime clock. Either kinds
691− of timestamps are available in user space via
692− :c:func:`clock_gettime(2)` using clock IDs ``CLOCK_MONOTONIC``
693− and ``CLOCK_REALTIME``, respectively.
694−
695− - .. _`V4L2-BUF-FLAG-TIMESTAMP-MONOTONIC`:
696−
697− - ``V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC``
698−
699− - 0x00002000
700−
701− - The buffer timestamp has been taken from the ``CLOCK_MONOTONIC``
702− clock. To access the same clock outside V4L2, use
703− :c:func:`clock_gettime(2)`.
704−
705− - .. _`V4L2-BUF-FLAG-TIMESTAMP-COPY`:
706−
707− - ``V4L2_BUF_FLAG_TIMESTAMP_COPY``
708−
709− - 0x00004000
710−
711− - The CAPTURE buffer timestamp has been taken from the corresponding
712− OUTPUT buffer. This flag applies only to mem2mem devices.
713−
714− - .. _`V4L2-BUF-FLAG-TSTAMP-SRC-MASK`:
715−
716− - ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK``
717−
718− - 0x00070000
719−
720− - Mask for timestamp sources below. The timestamp source defines the
721− point of time the timestamp is taken in relation to the frame.
722− Logical 'and' operation between the ``flags`` field and
723− ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` produces the value of the
724− timestamp source. Applications must set the timestamp source when
725− ``type`` refers to an output stream and
726− ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` is set.
727−
728− - .. _`V4L2-BUF-FLAG-TSTAMP-SRC-EOF`:
729−
730− - ``V4L2_BUF_FLAG_TSTAMP_SRC_EOF``
731−
732− - 0x00000000
733−
734− - End Of Frame. The buffer timestamp has been taken when the last
735− pixel of the frame has been received or the last pixel of the
736− frame has been transmitted. In practice, software generated
737− timestamps will typically be read from the clock a small amount of
738− time after the last pixel has been received or transmitten,
739− depending on the system and other activity in it.
740−
741− - .. _`V4L2-BUF-FLAG-TSTAMP-SRC-SOE`:
742−
743− - ``V4L2_BUF_FLAG_TSTAMP_SRC_SOE``
744−
745− - 0x00010000
746−
747− - Start Of Exposure. The buffer timestamp has been taken when the
748− exposure of the frame has begun. This is only valid for the
749− ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` buffer type.
750−
751−
752−
753−.. _v4l2-memory:
350+ * .. _`V4L2-BUF-FLAG-MAPPED`:
351+
352+ - ``V4L2_BUF_FLAG_MAPPED``
353+ - 0x00000001
354+ - The buffer resides in device memory and has been mapped into the
355+ application's address space, see :ref:`mmap` for details.
356+ Drivers set or clear this flag when the
357+ :ref:`VIDIOC_QUERYBUF`,
358+ :ref:`VIDIOC_QBUF` or
359+ :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Set by the
360+ driver.
361+ * .. _`V4L2-BUF-FLAG-QUEUED`:
362+
363+ - ``V4L2_BUF_FLAG_QUEUED``
364+ - 0x00000002
365+ - Internally drivers maintain two buffer queues, an incoming and
366+ outgoing queue. When this flag is set, the buffer is currently on
367+ the incoming queue. It automatically moves to the outgoing queue
368+ after the buffer has been filled (capture devices) or displayed
369+ (output devices). Drivers set or clear this flag when the
370+ ``VIDIOC_QUERYBUF`` ioctl is called. After (successful) calling
371+ the ``VIDIOC_QBUF``\ ioctl it is always set and after
372+ ``VIDIOC_DQBUF`` always cleared.
373+ * .. _`V4L2-BUF-FLAG-DONE`:
374+
375+ - ``V4L2_BUF_FLAG_DONE``
376+ - 0x00000004
377+ - When this flag is set, the buffer is currently on the outgoing
378+ queue, ready to be dequeued from the driver. Drivers set or clear
379+ this flag when the ``VIDIOC_QUERYBUF`` ioctl is called. After
380+ calling the ``VIDIOC_QBUF`` or ``VIDIOC_DQBUF`` it is always
381+ cleared. Of course a buffer cannot be on both queues at the same
382+ time, the ``V4L2_BUF_FLAG_QUEUED`` and ``V4L2_BUF_FLAG_DONE`` flag
383+ are mutually exclusive. They can be both cleared however, then the
384+ buffer is in "dequeued" state, in the application domain so to
385+ say.
386+ * .. _`V4L2-BUF-FLAG-ERROR`:
387+
388+ - ``V4L2_BUF_FLAG_ERROR``
389+ - 0x00000040
390+ - When this flag is set, the buffer has been dequeued successfully,
391+ although the data might have been corrupted. This is recoverable,
392+ streaming may continue as normal and the buffer may be reused
393+ normally. Drivers set this flag when the ``VIDIOC_DQBUF`` ioctl is
394+ called.
395+ * .. _`V4L2-BUF-FLAG-KEYFRAME`:
396+
397+ - ``V4L2_BUF_FLAG_KEYFRAME``
398+ - 0x00000008
399+ - Drivers set or clear this flag when calling the ``VIDIOC_DQBUF``
400+ ioctl. It may be set by video capture devices when the buffer
401+ contains a compressed image which is a key frame (or field), i. e.
402+ can be decompressed on its own. Also known as an I-frame.
403+ Applications can set this bit when ``type`` refers to an output
404+ stream.
405+ * .. _`V4L2-BUF-FLAG-PFRAME`:
406+
407+ - ``V4L2_BUF_FLAG_PFRAME``
408+ - 0x00000010
409+ - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags predicted frames
410+ or fields which contain only differences to a previous key frame.
411+ Applications can set this bit when ``type`` refers to an output
412+ stream.
413+ * .. _`V4L2-BUF-FLAG-BFRAME`:
414+
415+ - ``V4L2_BUF_FLAG_BFRAME``
416+ - 0x00000020
417+ - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags a bi-directional
418+ predicted frame or field which contains only the differences
419+ between the current frame and both the preceding and following key
420+ frames to specify its content. Applications can set this bit when
421+ ``type`` refers to an output stream.
422+ * .. _`V4L2-BUF-FLAG-TIMECODE`:
423+
424+ - ``V4L2_BUF_FLAG_TIMECODE``
425+ - 0x00000100
426+ - The ``timecode`` field is valid. Drivers set or clear this flag
427+ when the ``VIDIOC_DQBUF`` ioctl is called. Applications can set
428+ this bit and the corresponding ``timecode`` structure when
429+ ``type`` refers to an output stream.
430+ * .. _`V4L2-BUF-FLAG-PREPARED`:
431+
432+ - ``V4L2_BUF_FLAG_PREPARED``
433+ - 0x00000400
434+ - The buffer has been prepared for I/O and can be queued by the
435+ application. Drivers set or clear this flag when the
436+ :ref:`VIDIOC_QUERYBUF`,
437+ :ref:`VIDIOC_PREPARE_BUF <VIDIOC_QBUF>`,
438+ :ref:`VIDIOC_QBUF` or
439+ :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called.
440+ * .. _`V4L2-BUF-FLAG-NO-CACHE-INVALIDATE`:
441+
442+ - ``V4L2_BUF_FLAG_NO_CACHE_INVALIDATE``
443+ - 0x00000800
444+ - Caches do not have to be invalidated for this buffer. Typically
445+ applications shall use this flag if the data captured in the
446+ buffer is not going to be touched by the CPU, instead the buffer
447+ will, probably, be passed on to a DMA-capable hardware unit for
448+ further processing or output.
449+ * .. _`V4L2-BUF-FLAG-NO-CACHE-CLEAN`:
450+
451+ - ``V4L2_BUF_FLAG_NO_CACHE_CLEAN``
452+ - 0x00001000
453+ - Caches do not have to be cleaned for this buffer. Typically
454+ applications shall use this flag for output buffers if the data in
455+ this buffer has not been created by the CPU but by some
456+ DMA-capable unit, in which case caches have not been used.
457+ * .. _`V4L2-BUF-FLAG-LAST`:
458+
459+ - ``V4L2_BUF_FLAG_LAST``
460+ - 0x00100000
461+ - Last buffer produced by the hardware. mem2mem codec drivers set
462+ this flag on the capture queue for the last buffer when the
463+ :ref:`VIDIOC_QUERYBUF` or
464+ :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Due to
465+ hardware limitations, the last buffer may be empty. In this case
466+ the driver will set the ``bytesused`` field to 0, regardless of
467+ the format. Any Any subsequent call to the
468+ :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore,
469+ but return an ``EPIPE`` error code.
470+ * .. _`V4L2-BUF-FLAG-TIMESTAMP-MASK`:
471+
472+ - ``V4L2_BUF_FLAG_TIMESTAMP_MASK``
473+ - 0x0000e000
474+ - Mask for timestamp types below. To test the timestamp type, mask
475+ out bits not belonging to timestamp type by performing a logical
476+ and operation with buffer flags and timestamp mask.
477+ * .. _`V4L2-BUF-FLAG-TIMESTAMP-UNKNOWN`:
478+
479+ - ``V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN``
480+ - 0x00000000
481+ - Unknown timestamp type. This type is used by drivers before Linux
482+ 3.9 and may be either monotonic (see below) or realtime (wall
483+ clock). Monotonic clock has been favoured in embedded systems
484+ whereas most of the drivers use the realtime clock. Either kinds
485+ of timestamps are available in user space via
486+ :c:func:`clock_gettime` using clock IDs ``CLOCK_MONOTONIC``
487+ and ``CLOCK_REALTIME``, respectively.
488+ * .. _`V4L2-BUF-FLAG-TIMESTAMP-MONOTONIC`:
489+
490+ - ``V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC``
491+ - 0x00002000
492+ - The buffer timestamp has been taken from the ``CLOCK_MONOTONIC``
493+ clock. To access the same clock outside V4L2, use
494+ :c:func:`clock_gettime`.
495+ * .. _`V4L2-BUF-FLAG-TIMESTAMP-COPY`:
496+
497+ - ``V4L2_BUF_FLAG_TIMESTAMP_COPY``
498+ - 0x00004000
499+ - The CAPTURE buffer timestamp has been taken from the corresponding
500+ OUTPUT buffer. This flag applies only to mem2mem devices.
501+ * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-MASK`:
502+
503+ - ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK``
504+ - 0x00070000
505+ - Mask for timestamp sources below. The timestamp source defines the
506+ point of time the timestamp is taken in relation to the frame.
507+ Logical 'and' operation between the ``flags`` field and
508+ ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` produces the value of the
509+ timestamp source. Applications must set the timestamp source when
510+ ``type`` refers to an output stream and
511+ ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` is set.
512+ * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-EOF`:
513+
514+ - ``V4L2_BUF_FLAG_TSTAMP_SRC_EOF``
515+ - 0x00000000
516+ - End Of Frame. The buffer timestamp has been taken when the last
517+ pixel of the frame has been received or the last pixel of the
518+ frame has been transmitted. In practice, software generated
519+ timestamps will typically be read from the clock a small amount of
520+ time after the last pixel has been received or transmitten,
521+ depending on the system and other activity in it.
522+ * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-SOE`:
523+
524+ - ``V4L2_BUF_FLAG_TSTAMP_SRC_SOE``
525+ - 0x00010000
526+ - Start Of Exposure. The buffer timestamp has been taken when the
527+ exposure of the frame has begun. This is only valid for the
528+ ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` buffer type.
529+
530+
531+
532+.. c:type:: v4l2_memory
754533
755534 enum v4l2_memory
756535 ================
757536
537+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
538+
758539 .. flat-table::
759540 :header-rows: 0
760541 :stub-columns: 0
761542 :widths: 3 1 4
762543
763−
764− - .. row 1
765−
766− - ``V4L2_MEMORY_MMAP``
767−
768− - 1
769−
770− - The buffer is used for :ref:`memory mapping <mmap>` I/O.
771−
772− - .. row 2
773−
774− - ``V4L2_MEMORY_USERPTR``
775−
776− - 2
777−
778− - The buffer is used for :ref:`user pointer <userp>` I/O.
779−
780− - .. row 3
781−
782− - ``V4L2_MEMORY_OVERLAY``
783−
784− - 3
785−
786− - [to do]
787−
788− - .. row 4
789−
790− - ``V4L2_MEMORY_DMABUF``
791−
792− - 4
793−
794− - The buffer is used for :ref:`DMA shared buffer <dmabuf>` I/O.
544+ * - ``V4L2_MEMORY_MMAP``
545+ - 1
546+ - The buffer is used for :ref:`memory mapping <mmap>` I/O.
547+ * - ``V4L2_MEMORY_USERPTR``
548+ - 2
549+ - The buffer is used for :ref:`user pointer <userp>` I/O.
550+ * - ``V4L2_MEMORY_OVERLAY``
551+ - 3
552+ - [to do]
553+ * - ``V4L2_MEMORY_DMABUF``
554+ - 4
555+ - The buffer is used for :ref:`DMA shared buffer <dmabuf>` I/O.
795556
796557
797558
798559 Timecodes
799560 =========
800561
801−The :ref:`struct v4l2_timecode <v4l2-timecode>` structure is designed to hold a
562+The struct :c:type:`v4l2_timecode` structure is designed to hold a
802563 :ref:`smpte12m` or similar timecode. (struct
803−:c:type:`struct timeval` timestamps are stored in struct
804−:ref:`v4l2_buffer <v4l2-buffer>` field ``timestamp``.)
564+struct :c:type:`timeval` timestamps are stored in struct
565+:c:type:`v4l2_buffer` field ``timestamp``.)
805566
806567
807−.. _v4l2-timecode:
568+.. c:type:: v4l2_timecode
808569
809570 struct v4l2_timecode
810571 --------------------
811572
573+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
574+
812575 .. flat-table::
813576 :header-rows: 0
814577 :stub-columns: 0
815578 :widths: 1 1 2
816579
817−
818− - .. row 1
819−
820− - __u32
821−
822− - ``type``
823−
824− - Frame rate the timecodes are based on, see :ref:`timecode-type`.
825−
826− - .. row 2
827−
828− - __u32
829−
830− - ``flags``
831−
832− - Timecode flags, see :ref:`timecode-flags`.
833−
834− - .. row 3
835−
836− - __u8
837−
838− - ``frames``
839−
840− - Frame count, 0 ... 23/24/29/49/59, depending on the type of
841− timecode.
842−
843− - .. row 4
844−
845− - __u8
846−
847− - ``seconds``
848−
849− - Seconds count, 0 ... 59. This is a binary, not BCD number.
850−
851− - .. row 5
852−
853− - __u8
854−
855− - ``minutes``
856−
857− - Minutes count, 0 ... 59. This is a binary, not BCD number.
858−
859− - .. row 6
860−
861− - __u8
862−
863− - ``hours``
864−
865− - Hours count, 0 ... 29. This is a binary, not BCD number.
866−
867− - .. row 7
868−
869− - __u8
870−
871− - ``userbits``\ [4]
872−
873− - The "user group" bits from the timecode.
580+ * - __u32
581+ - ``type``
582+ - Frame rate the timecodes are based on, see :ref:`timecode-type`.
583+ * - __u32
584+ - ``flags``
585+ - Timecode flags, see :ref:`timecode-flags`.
586+ * - __u8
587+ - ``frames``
588+ - Frame count, 0 ... 23/24/29/49/59, depending on the type of
589+ timecode.
590+ * - __u8
591+ - ``seconds``
592+ - Seconds count, 0 ... 59. This is a binary, not BCD number.
593+ * - __u8
594+ - ``minutes``
595+ - Minutes count, 0 ... 59. This is a binary, not BCD number.
596+ * - __u8
597+ - ``hours``
598+ - Hours count, 0 ... 29. This is a binary, not BCD number.
599+ * - __u8
600+ - ``userbits``\ [4]
601+ - The "user group" bits from the timecode.
874602
875603
876604
@@ -879,51 +607,28 @@ struct v4l2_timecode · 2 unmodified lines
879607 Timecode Types
880608 --------------
881609
610+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
611+
882612 .. flat-table::
883613 :header-rows: 0
884614 :stub-columns: 0
885615 :widths: 3 1 4
886616
887−
888− - .. row 1
889−
890− - ``V4L2_TC_TYPE_24FPS``
891−
892− - 1
893−
894− - 24 frames per second, i. e. film.
895−
896− - .. row 2
897−
898− - ``V4L2_TC_TYPE_25FPS``
899−
900− - 2
901−
902− - 25 frames per second, i. e. PAL or SECAM video.
903−
904− - .. row 3
905−
906− - ``V4L2_TC_TYPE_30FPS``
907−
908− - 3
909−
910− - 30 frames per second, i. e. NTSC video.
911−
912− - .. row 4
913−
914− - ``V4L2_TC_TYPE_50FPS``
915−
916− - 4
917−
918− -
919−
920− - .. row 5
921−
922− - ``V4L2_TC_TYPE_60FPS``
923−
924− - 5
925−
926− -
617+ * - ``V4L2_TC_TYPE_24FPS``
618+ - 1
619+ - 24 frames per second, i. e. film.
620+ * - ``V4L2_TC_TYPE_25FPS``
621+ - 2
622+ - 25 frames per second, i. e. PAL or SECAM video.
623+ * - ``V4L2_TC_TYPE_30FPS``
624+ - 3
625+ - 30 frames per second, i. e. NTSC video.
626+ * - ``V4L2_TC_TYPE_50FPS``
627+ - 4
628+ -
629+ * - ``V4L2_TC_TYPE_60FPS``
630+ - 5
631+ -
927632
928633
929634
@@ -932,51 +637,28 @@ Timecode Types · 2 unmodified lines
932637 Timecode Flags
933638 --------------
934639
640+.. tabularcolumns:: |p{6.6cm}|p{1.4cm}|p{9.5cm}|
641+
935642 .. flat-table::
936643 :header-rows: 0
937644 :stub-columns: 0
938645 :widths: 3 1 4
939646
940−
941− - .. row 1
942−
943− - ``V4L2_TC_FLAG_DROPFRAME``
944−
945− - 0x0001
946−
947− - Indicates "drop frame" semantics for counting frames in 29.97 fps
948− material. When set, frame numbers 0 and 1 at the start of each
949− minute, except minutes 0, 10, 20, 30, 40, 50 are omitted from the
950− count.
951−
952− - .. row 2
953−
954− - ``V4L2_TC_FLAG_COLORFRAME``
955−
956− - 0x0002
957−
958− - The "color frame" flag.
959−
960− - .. row 3
961−
962− - ``V4L2_TC_USERBITS_field``
963−
964− - 0x000C
965−
966− - Field mask for the "binary group flags".
967−
968− - .. row 4
969−
970− - ``V4L2_TC_USERBITS_USERDEFINED``
971−
972− - 0x0000
973−
974− - Unspecified format.
975−
976− - .. row 5
977−
978− - ``V4L2_TC_USERBITS_8BITCHARS``
979−
980− - 0x0008
981−
982− - 8-bit ISO characters.
647+ * - ``V4L2_TC_FLAG_DROPFRAME``
648+ - 0x0001
649+ - Indicates "drop frame" semantics for counting frames in 29.97 fps
650+ material. When set, frame numbers 0 and 1 at the start of each
651+ minute, except minutes 0, 10, 20, 30, 40, 50 are omitted from the
652+ count.
653+ * - ``V4L2_TC_FLAG_COLORFRAME``
654+ - 0x0002
655+ - The "color frame" flag.
656+ * - ``V4L2_TC_USERBITS_field``
657+ - 0x000C
658+ - Field mask for the "binary group flags".
659+ * - ``V4L2_TC_USERBITS_USERDEFINED``
660+ - 0x0000
661+ - Unspecified format.
662+ * - ``V4L2_TC_USERBITS_8BITCHARS``
663+ - 0x0008
664+ - 8-bit ISO characters.
Documentation/media/uapi/v4l/control.rst+39−100
@@ -191,109 +191,48 @@ Control IDs · 190 unmodified lines
191191
192192
193193
194+.. tabularcolumns:: |p{5.5cm}|p{12cm}|
195+
194196 .. flat-table::
195197 :header-rows: 0
196198 :stub-columns: 0
197−
198−
199− - .. row 1
200−
201− - ``V4L2_COLORFX_NONE``
202−
203− - Color effect is disabled.
204−
205− - .. row 2
206−
207− - ``V4L2_COLORFX_ANTIQUE``
208−
209− - An aging (old photo) effect.
210−
211− - .. row 3
212−
213− - ``V4L2_COLORFX_ART_FREEZE``
214−
215− - Frost color effect.
216−
217− - .. row 4
218−
219− - ``V4L2_COLORFX_AQUA``
220−
221− - Water color, cool tone.
222−
223− - .. row 5
224−
225− - ``V4L2_COLORFX_BW``
226−
227− - Black and white.
228−
229− - .. row 6
230−
231− - ``V4L2_COLORFX_EMBOSS``
232−
233− - Emboss, the highlights and shadows replace light/dark boundaries
234− and low contrast areas are set to a gray background.
235−
236− - .. row 7
237−
238− - ``V4L2_COLORFX_GRASS_GREEN``
239−
240− - Grass green.
241−
242− - .. row 8
243−
244− - ``V4L2_COLORFX_NEGATIVE``
245−
246− - Negative.
247−
248− - .. row 9
249−
250− - ``V4L2_COLORFX_SEPIA``
251−
252− - Sepia tone.
253−
254− - .. row 10
255−
256− - ``V4L2_COLORFX_SKETCH``
257−
258− - Sketch.
259−
260− - .. row 11
261−
262− - ``V4L2_COLORFX_SKIN_WHITEN``
263−
264− - Skin whiten.
265−
266− - .. row 12
267−
268− - ``V4L2_COLORFX_SKY_BLUE``
269−
270− - Sky blue.
271−
272− - .. row 13
273−
274− - ``V4L2_COLORFX_SOLARIZATION``
275−
276− - Solarization, the image is partially reversed in tone, only color
277− values above or below a certain threshold are inverted.
278−
279− - .. row 14
280−
281− - ``V4L2_COLORFX_SILHOUETTE``
282−
283− - Silhouette (outline).
284−
285− - .. row 15
286−
287− - ``V4L2_COLORFX_VIVID``
288−
289− - Vivid colors.
290−
291− - .. row 16
292−
293− - ``V4L2_COLORFX_SET_CBCR``
294−
295− - The Cb and Cr chroma components are replaced by fixed coefficients
296− determined by ``V4L2_CID_COLORFX_CBCR`` control.
199+ :widths: 11 24
200+
201+ * - ``V4L2_COLORFX_NONE``
202+ - Color effect is disabled.
203+ * - ``V4L2_COLORFX_ANTIQUE``
204+ - An aging (old photo) effect.
205+ * - ``V4L2_COLORFX_ART_FREEZE``
206+ - Frost color effect.
207+ * - ``V4L2_COLORFX_AQUA``
208+ - Water color, cool tone.
209+ * - ``V4L2_COLORFX_BW``
210+ - Black and white.
211+ * - ``V4L2_COLORFX_EMBOSS``
212+ - Emboss, the highlights and shadows replace light/dark boundaries
213+ and low contrast areas are set to a gray background.
214+ * - ``V4L2_COLORFX_GRASS_GREEN``
215+ - Grass green.
216+ * - ``V4L2_COLORFX_NEGATIVE``
217+ - Negative.
218+ * - ``V4L2_COLORFX_SEPIA``
219+ - Sepia tone.
220+ * - ``V4L2_COLORFX_SKETCH``
221+ - Sketch.
222+ * - ``V4L2_COLORFX_SKIN_WHITEN``
223+ - Skin whiten.
224+ * - ``V4L2_COLORFX_SKY_BLUE``
225+ - Sky blue.
226+ * - ``V4L2_COLORFX_SOLARIZATION``
227+ - Solarization, the image is partially reversed in tone, only color
228+ values above or below a certain threshold are inverted.
229+ * - ``V4L2_COLORFX_SILHOUETTE``
230+ - Silhouette (outline).
231+ * - ``V4L2_COLORFX_VIVID``
232+ - Vivid colors.
233+ * - ``V4L2_COLORFX_SET_CBCR``
234+ - The Cb and Cr chroma components are replaced by fixed coefficients
235+ determined by ``V4L2_CID_COLORFX_CBCR`` control.
297236
298237
299238
Documentation/media/uapi/v4l/crop.rst+16−10
@@ -15,7 +15,9 @@ offset into a video signal. · 14 unmodified lines
1515 Applications can use the following API to select an area in the video
1616 signal, query the default area and the hardware limits.
1717
18−.. note:: Despite their name, the :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>`,
18+.. note::
19+
20+ Despite their name, the :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>`,
1921 :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and :ref:`VIDIOC_S_CROP
2022 <VIDIOC_G_CROP>` ioctls apply to input as well as output devices.
2123
@@ -38,7 +40,9 @@ support scaling or the :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and · 16 unmodified lines
3840 :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` ioctls. Their size (and position
3941 where applicable) will be fixed in this case.
4042
41−.. note:: All capture and output devices must support the
43+.. note::
44+
45+ All capture and output devices must support the
4246 :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>` ioctl such that applications
4347 can determine if scaling takes place.
4448
@@ -61,7 +65,7 @@ Cropping Structures · 16 unmodified lines
6165
6266 For capture devices the coordinates of the top left corner, width and
6367 height of the area which can be sampled is given by the ``bounds``
64−substructure of the struct :ref:`v4l2_cropcap <v4l2-cropcap>` returned
68+substructure of the struct :c:type:`v4l2_cropcap` returned
6569 by the :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>` ioctl. To support a wide
6670 range of hardware this specification does not define an origin or units.
6771 However by convention drivers should horizontally count unscaled samples
@@ -73,8 +77,8 @@ can capture both fields. · 5 unmodified lines
7377
7478 The top left corner, width and height of the source rectangle, that is
7579 the area actually sampled, is given by struct
76−:ref:`v4l2_crop <v4l2-crop>` using the same coordinate system as
77−struct :ref:`v4l2_cropcap <v4l2-cropcap>`. Applications can use the
80+:c:type:`v4l2_crop` using the same coordinate system as
81+struct :c:type:`v4l2_cropcap`. Applications can use the
7882 :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>`
7983 ioctls to get and set this rectangle. It must lie completely within the
8084 capture boundaries and the driver may further adjust the requested size
@@ -82,7 +86,7 @@ and/or position according to hardware limitations. · 1 unmodified line
8286
8387 Each capture device has a default source rectangle, given by the
8488 ``defrect`` substructure of struct
85−:ref:`v4l2_cropcap <v4l2-cropcap>`. The center of this rectangle
89+:c:type:`v4l2_cropcap`. The center of this rectangle
8690 shall align with the center of the active picture area of the video
8791 signal, and cover what the driver writer considers the complete picture.
8892 Drivers shall reset the source rectangle to the default when the driver
@@ -100,11 +104,11 @@ Video hardware can have various cropping, insertion and scaling · 11 unmodified lines
100104 limitations. It may only scale up or down, support only discrete scaling
101105 factors, or have different scaling abilities in horizontal and vertical
102106 direction. Also it may not support scaling at all. At the same time the
103−struct :ref:`v4l2_crop <v4l2-crop>` rectangle may have to be aligned,
107+struct :c:type:`v4l2_crop` rectangle may have to be aligned,
104108 and both the source and target rectangles may have arbitrary upper and
105109 lower size limits. In particular the maximum ``width`` and ``height`` in
106−struct :ref:`v4l2_crop <v4l2-crop>` may be smaller than the struct
107−:ref:`v4l2_cropcap <v4l2-cropcap>`. ``bounds`` area. Therefore, as
110+struct :c:type:`v4l2_crop` may be smaller than the struct
111+:c:type:`v4l2_cropcap`. ``bounds`` area. Therefore, as
108112 usual, drivers are expected to adjust the requested parameters and
109113 return the actual values selected.
110114
@@ -144,7 +148,9 @@ reopening a device, such that piping data into or out of a device will · 33 unmodified lines
144148 work without special preparations. More advanced applications should
145149 ensure the parameters are suitable before starting I/O.
146150
147−.. note:: On the next two examples, a video capture device is assumed;
151+.. note::
152+
153+ On the next two examples, a video capture device is assumed;
148154 change ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` for other types of device.
149155
150156 Example: Resetting the cropping parameters
Documentation/media/uapi/v4l/dev-capture.rst+8−8
@@ -26,7 +26,7 @@ Querying Capabilities · 25 unmodified lines
2626 Devices supporting the video capture interface set the
2727 ``V4L2_CAP_VIDEO_CAPTURE`` or ``V4L2_CAP_VIDEO_CAPTURE_MPLANE`` flag in
2828 the ``capabilities`` field of struct
29−:ref:`v4l2_capability <v4l2-capability>` returned by the
29+:c:type:`v4l2_capability` returned by the
3030 :ref:`VIDIOC_QUERYCAP` ioctl. As secondary device
3131 functions they may also support the :ref:`video overlay <overlay>`
3232 (``V4L2_CAP_VIDEO_OVERLAY``) and the :ref:`raw VBI capture <raw-vbi>`
@@ -64,18 +64,18 @@ Cropping initialization at minimum requires to reset the parameters to · 31 unmodified lines
6464 defaults. An example is given in :ref:`crop`.
6565
6666 To query the current image format applications set the ``type`` field of
67−a struct :ref:`v4l2_format <v4l2-format>` to
67+a struct :c:type:`v4l2_format` to
6868 ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` or
6969 ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE`` and call the
7070 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer to this
7171 structure. Drivers fill the struct
72−:ref:`v4l2_pix_format <v4l2-pix-format>` ``pix`` or the struct
73−:ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` ``pix_mp``
72+:c:type:`v4l2_pix_format` ``pix`` or the struct
73+:c:type:`v4l2_pix_format_mplane` ``pix_mp``
7474 member of the ``fmt`` union.
7575
7676 To request different parameters applications set the ``type`` field of a
77−struct :ref:`v4l2_format <v4l2-format>` as above and initialize all
78−fields of the struct :ref:`v4l2_pix_format <v4l2-pix-format>`
77+struct :c:type:`v4l2_format` as above and initialize all
78+fields of the struct :c:type:`v4l2_pix_format`
7979 ``vbi`` member of the ``fmt`` union, or better just modify the results
8080 of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`
8181 ioctl with a pointer to this structure. Drivers may adjust the
@@ -86,8 +86,8 @@ Like :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` the :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` · 4 unmodified lines
8686 can be used to learn about hardware limitations without disabling I/O or
8787 possibly time consuming hardware preparations.
8888
89−The contents of struct :ref:`v4l2_pix_format <v4l2-pix-format>` and
90−struct :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` are
89+The contents of struct :c:type:`v4l2_pix_format` and
90+struct :c:type:`v4l2_pix_format_mplane` are
9191 discussed in :ref:`pixfmt`. See also the specification of the
9292 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` and :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctls for
9393 details. Video capture devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`
Documentation/media/uapi/v4l/dev-codec.rst+3−1
@@ -21,7 +21,9 @@ for both capture and output to start the codec. · 20 unmodified lines
2121 Video compression codecs use the MPEG controls to setup their codec
2222 parameters
2323
24−.. note:: The MPEG controls actually support many more codecs than
24+.. note::
25+
26+ The MPEG controls actually support many more codecs than
2527 just MPEG. See :ref:`mpeg-controls`.
2628
2729 Memory-to-memory devices can often be used as a shared resource: you can
Documentation/media/uapi/v4l/dev-osd.rst+14−12
@@ -16,7 +16,9 @@ this interface, which borrows structures and ioctls of the · 15 unmodified lines
1616 The OSD function is accessible through the same character special file
1717 as the :ref:`Video Output <capture>` function.
1818
19−.. note:: The default function of such a ``/dev/video`` device is video
19+.. note::
20+
21+ The default function of such a ``/dev/video`` device is video
2022 capturing or output. The OSD function is only available after calling
2123 the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.
2224
@@ -26,7 +28,7 @@ Querying Capabilities · 3 unmodified lines
2628
2729 Devices supporting the *Video Output Overlay* interface set the
2830 ``V4L2_CAP_VIDEO_OUTPUT_OVERLAY`` flag in the ``capabilities`` field of
29−struct :ref:`v4l2_capability <v4l2-capability>` returned by the
31+struct :c:type:`v4l2_capability` returned by the
3032 :ref:`VIDIOC_QUERYCAP` ioctl.
3133
3234
@@ -39,11 +41,11 @@ accessible as a framebuffer device (``/dev/fbN``). Given a V4L2 device, · 6 unmodified lines
3941 applications can find the corresponding framebuffer device by calling
4042 the :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` ioctl. It returns, amongst
4143 other information, the physical address of the framebuffer in the
42−``base`` field of struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`.
44+``base`` field of struct :c:type:`v4l2_framebuffer`.
4345 The framebuffer device ioctl ``FBIOGET_FSCREENINFO`` returns the same
4446 address in the ``smem_start`` field of struct
45−:c:type:`struct fb_fix_screeninfo`. The ``FBIOGET_FSCREENINFO``
46−ioctl and struct :c:type:`struct fb_fix_screeninfo` are defined in
47+struct :c:type:`fb_fix_screeninfo`. The ``FBIOGET_FSCREENINFO``
48+ioctl and struct :c:type:`fb_fix_screeninfo` are defined in
4749 the ``linux/fb.h`` header file.
4850
4951 The width and height of the framebuffer depends on the current video
@@ -112,18 +114,18 @@ sizes and positions of these rectangles. Further drivers may support any · 62 unmodified lines
112114 (or none) of the clipping/blending methods defined for the
113115 :ref:`Video Overlay <overlay>` interface.
114116
115−A struct :ref:`v4l2_window <v4l2-window>` defines the size of the
117+A struct :c:type:`v4l2_window` defines the size of the
116118 source rectangle, its position in the framebuffer and the
117119 clipping/blending method to be used for the overlay. To get the current
118120 parameters applications set the ``type`` field of a struct
119−:ref:`v4l2_format <v4l2-format>` to
121+:c:type:`v4l2_format` to
120122 ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY`` and call the
121123 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl. The driver fills the
122−:ref:`struct v4l2_window <v4l2-window>` substructure named ``win``. It is not
124+struct :c:type:`v4l2_window` substructure named ``win``. It is not
123125 possible to retrieve a previously programmed clipping list or bitmap.
124126
125127 To program the source rectangle applications set the ``type`` field of a
126−struct :ref:`v4l2_format <v4l2-format>` to
128+struct :c:type:`v4l2_format` to
127129 ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY``, initialize the ``win``
128130 substructure and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.
129131 The driver adjusts the parameters against hardware limits and returns
@@ -132,10 +134,10 @@ the :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctl can be used to learn · 2 unmodified lines
132134 about driver capabilities without actually changing driver state. Unlike
133135 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` this also works after the overlay has been enabled.
134136
135−A struct :ref:`v4l2_crop <v4l2-crop>` defines the size and position
137+A struct :c:type:`v4l2_crop` defines the size and position
136138 of the target rectangle. The scaling factor of the overlay is implied by
137−the width and height given in struct :ref:`v4l2_window <v4l2-window>`
138−and struct :ref:`v4l2_crop <v4l2-crop>`. The cropping API applies to
139+the width and height given in struct :c:type:`v4l2_window`
140+and struct :c:type:`v4l2_crop`. The cropping API applies to
139141 *Video Output* and *Video Output Overlay* devices in the same way as to
140142 *Video Capture* and *Video Overlay* devices, merely reversing the
141143 direction of the data flow. For more information see :ref:`crop`.
Documentation/media/uapi/v4l/dev-output.rst+9−9
@@ -16,7 +16,7 @@ device special files named ``/dev/video`` and ``/dev/video0`` to · 15 unmodified lines
1616 ``/dev/video`` is typically a symbolic link to the preferred video
1717 device.
1818
19−..note:: The same device file names are used also for video capture devices.
19+.. note:: The same device file names are used also for video capture devices.
2020
2121
2222 Querying Capabilities
@@ -25,7 +25,7 @@ Querying Capabilities · 2 unmodified lines
2525 Devices supporting the video output interface set the
2626 ``V4L2_CAP_VIDEO_OUTPUT`` or ``V4L2_CAP_VIDEO_OUTPUT_MPLANE`` flag in
2727 the ``capabilities`` field of struct
28−:ref:`v4l2_capability <v4l2-capability>` returned by the
28+:c:type:`v4l2_capability` returned by the
2929 :ref:`VIDIOC_QUERYCAP` ioctl. As secondary device
3030 functions they may also support the :ref:`raw VBI output <raw-vbi>`
3131 (``V4L2_CAP_VBI_OUTPUT``) interface. At least one of the read/write or
@@ -62,17 +62,17 @@ Cropping initialization at minimum requires to reset the parameters to · 30 unmodified lines
6262 defaults. An example is given in :ref:`crop`.
6363
6464 To query the current image format applications set the ``type`` field of
65−a struct :ref:`v4l2_format <v4l2-format>` to
65+a struct :c:type:`v4l2_format` to
6666 ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` or ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``
6767 and call the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer
6868 to this structure. Drivers fill the struct
69−:ref:`v4l2_pix_format <v4l2-pix-format>` ``pix`` or the struct
70−:ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` ``pix_mp``
69+:c:type:`v4l2_pix_format` ``pix`` or the struct
70+:c:type:`v4l2_pix_format_mplane` ``pix_mp``
7171 member of the ``fmt`` union.
7272
7373 To request different parameters applications set the ``type`` field of a
74−struct :ref:`v4l2_format <v4l2-format>` as above and initialize all
75−fields of the struct :ref:`v4l2_pix_format <v4l2-pix-format>`
74+struct :c:type:`v4l2_format` as above and initialize all
75+fields of the struct :c:type:`v4l2_pix_format`
7676 ``vbi`` member of the ``fmt`` union, or better just modify the results
7777 of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`
7878 ioctl with a pointer to this structure. Drivers may adjust the
@@ -83,8 +83,8 @@ Like :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` the :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` · 4 unmodified lines
8383 can be used to learn about hardware limitations without disabling I/O or
8484 possibly time consuming hardware preparations.
8585
86−The contents of struct :ref:`v4l2_pix_format <v4l2-pix-format>` and
87−struct :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` are
86+The contents of struct :c:type:`v4l2_pix_format` and
87+struct :c:type:`v4l2_pix_format_mplane` are
8888 discussed in :ref:`pixfmt`. See also the specification of the
8989 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` and :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctls for
9090 details. Video output devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`
Documentation/media/uapi/v4l/dev-overlay.rst+19−15
@@ -19,7 +19,9 @@ video into a window. · 18 unmodified lines
1919 Video overlay devices are accessed through the same character special
2020 files as :ref:`video capture <capture>` devices.
2121
22−.. note:: The default function of a ``/dev/video`` device is video
22+.. note::
23+
24+ The default function of a ``/dev/video`` device is video
2325 capturing. The overlay function is only available after calling
2426 the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.
2527
@@ -41,7 +43,7 @@ Querying Capabilities · 15 unmodified lines
4143
4244 Devices supporting the video overlay interface set the
4345 ``V4L2_CAP_VIDEO_OVERLAY`` flag in the ``capabilities`` field of struct
44−:ref:`v4l2_capability <v4l2-capability>` returned by the
46+:c:type:`v4l2_capability` returned by the
4547 :ref:`VIDIOC_QUERYCAP` ioctl. The overlay I/O
4648 method specified below must be supported. Tuners and audio inputs are
4749 optional.
@@ -117,17 +119,17 @@ at minimum requires to reset the parameters to defaults. An example is · 69 unmodified lines
117119 given in :ref:`crop`.
118120
119121 The overlay window is described by a struct
120−:ref:`v4l2_window <v4l2-window>`. It defines the size of the image,
122+:c:type:`v4l2_window`. It defines the size of the image,
121123 its position over the graphics surface and the clipping to be applied.
122124 To get the current parameters applications set the ``type`` field of a
123−struct :ref:`v4l2_format <v4l2-format>` to
125+struct :c:type:`v4l2_format` to
124126 ``V4L2_BUF_TYPE_VIDEO_OVERLAY`` and call the
125127 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl. The driver fills the
126−:ref:`struct v4l2_window <v4l2-window>` substructure named ``win``. It is not
128+struct :c:type:`v4l2_window` substructure named ``win``. It is not
127129 possible to retrieve a previously programmed clipping list or bitmap.
128130
129131 To program the overlay window applications set the ``type`` field of a
130−struct :ref:`v4l2_format <v4l2-format>` to
132+struct :c:type:`v4l2_format` to
131133 ``V4L2_BUF_TYPE_VIDEO_OVERLAY``, initialize the ``win`` substructure and
132134 call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. The driver
133135 adjusts the parameters against hardware limits and returns the actual
@@ -137,7 +139,7 @@ about driver capabilities without actually changing driver state. Unlike · 3 unmodified lines
137139 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` this also works after the overlay has been enabled.
138140
139141 The scaling factor of the overlaid image is implied by the width and
140−height given in struct :ref:`v4l2_window <v4l2-window>` and the size
142+height given in struct :c:type:`v4l2_window` and the size
141143 of the cropping rectangle. For more information see :ref:`crop`.
142144
143145 When simultaneous capturing and overlay is supported and the hardware
@@ -147,7 +149,7 @@ takes precedence. The attempt to capture or overlay as well · 3 unmodified lines
147149 code or return accordingly modified parameters.
148150
149151
150−.. _v4l2-window:
152+.. c:type:: v4l2_window
151153
152154 struct v4l2_window
153155 ------------------
@@ -173,7 +175,7 @@ struct v4l2_window · 19 unmodified lines
173175 :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` applications set this field
174176 to the desired pixel value for the chroma key. The format is the
175177 same as the pixel format of the framebuffer (struct
176− :ref:`v4l2_framebuffer <v4l2-framebuffer>` ``fmt.pixelformat``
178+ :c:type:`v4l2_framebuffer` ``fmt.pixelformat``
177179 field), with bytes in host order. E. g. for
178180 :ref:`V4L2_PIX_FMT_BGR24 <V4L2-PIX-FMT-BGR32>` the value should
179181 be 0xRRGGBB on a little endian, 0xBBGGRR on a big endian host.
@@ -236,13 +238,15 @@ exceeded are undefined. [#f3]_ · 56 unmodified lines
236238 :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>`,
237239 :ref:`framebuffer-flags`).
238240
239− .. note:: This field was added in Linux 2.6.23, extending the
240− structure. However the :ref:`VIDIOC_[G|S|TRY]_FMT <VIDIOC_G_FMT>`
241− ioctls, which take a pointer to a :ref:`v4l2_format <v4l2-format>`
242− parent structure with padding bytes at the end, are not affected.
241+.. note::
242+
243+ This field was added in Linux 2.6.23, extending the
244+ structure. However the :ref:`VIDIOC_[G|S|TRY]_FMT <VIDIOC_G_FMT>`
245+ ioctls, which take a pointer to a :c:type:`v4l2_format`
246+ parent structure with padding bytes at the end, are not affected.
243247
244248
245−.. _v4l2-clip:
249+.. c:type:: v4l2_clip
246250
247251 struct v4l2_clip [#f4]_
248252 -----------------------
@@ -258,7 +262,7 @@ struct v4l2_clip [#f4]_ · 9 unmodified lines
258262 linked list of clipping rectangles.
259263
260264
261−.. _v4l2-rect:
265+.. c:type:: v4l2_rect
262266
263267 struct v4l2_rect
264268 ----------------
Documentation/media/uapi/v4l/dev-radio.rst+1−1
@@ -20,7 +20,7 @@ Querying Capabilities · 19 unmodified lines
2020 Devices supporting the radio interface set the ``V4L2_CAP_RADIO`` and
2121 ``V4L2_CAP_TUNER`` or ``V4L2_CAP_MODULATOR`` flag in the
2222 ``capabilities`` field of struct
23−:ref:`v4l2_capability <v4l2-capability>` returned by the
23+:c:type:`v4l2_capability` returned by the
2424 :ref:`VIDIOC_QUERYCAP` ioctl. Other combinations of
2525 capability flags are reserved for future extensions.
2626
Documentation/media/uapi/v4l/dev-raw-vbi.rst+110−157
@@ -39,7 +39,7 @@ Querying Capabilities · 38 unmodified lines
3939 Devices supporting the raw VBI capturing or output API set the
4040 ``V4L2_CAP_VBI_CAPTURE`` or ``V4L2_CAP_VBI_OUTPUT`` flags, respectively,
4141 in the ``capabilities`` field of struct
42−:ref:`v4l2_capability <v4l2-capability>` returned by the
42+:c:type:`v4l2_capability` returned by the
4343 :ref:`VIDIOC_QUERYCAP` ioctl. At least one of the
4444 read/write, streaming or asynchronous I/O methods must be supported. VBI
4545 devices may or may not have a tuner or modulator.
@@ -69,16 +69,16 @@ always ensure they really get what they want, requesting reasonable · 23 unmodified lines
6969 parameters and then checking if the actual parameters are suitable.
7070
7171 To query the current raw VBI capture parameters applications set the
72−``type`` field of a struct :ref:`v4l2_format <v4l2-format>` to
72+``type`` field of a struct :c:type:`v4l2_format` to
7373 ``V4L2_BUF_TYPE_VBI_CAPTURE`` or ``V4L2_BUF_TYPE_VBI_OUTPUT``, and call
7474 the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer to this
7575 structure. Drivers fill the struct
76−:ref:`v4l2_vbi_format <v4l2-vbi-format>` ``vbi`` member of the
76+:c:type:`v4l2_vbi_format` ``vbi`` member of the
7777 ``fmt`` union.
7878
7979 To request different parameters applications set the ``type`` field of a
80−struct :ref:`v4l2_format <v4l2-format>` as above and initialize all
81−fields of the struct :ref:`v4l2_vbi_format <v4l2-vbi-format>`
80+struct :c:type:`v4l2_format` as above and initialize all
81+fields of the struct :c:type:`v4l2_vbi_format`
8282 ``vbi`` member of the ``fmt`` union, or better just modify the results
8383 of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`
8484 ioctl with a pointer to this structure. Drivers return an ``EINVAL`` error
@@ -99,131 +99,91 @@ VBI devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and · 14 unmodified lines
9999 and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does.
100100 :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` is optional.
101101
102+.. tabularcolumns:: |p{2.4cm}|p{4.4cm}|p{10.7cm}|
102103
103−.. _v4l2-vbi-format:
104+.. c:type:: v4l2_vbi_format
105+
106+.. cssclass:: longtable
104107
105108 .. flat-table:: struct v4l2_vbi_format
106109 :header-rows: 0
107110 :stub-columns: 0
108111 :widths: 1 1 2
109112
110−
111− - .. row 1
112−
113− - __u32
114−
115− - ``sampling_rate``
116−
117− - Samples per second, i. e. unit 1 Hz.
118−
119− - .. row 2
120−
121− - __u32
122−
123− - ``offset``
124−
125− - Horizontal offset of the VBI image, relative to the leading edge
126− of the line synchronization pulse and counted in samples: The
127− first sample in the VBI image will be located ``offset`` /
128− ``sampling_rate`` seconds following the leading edge. See also
129− :ref:`vbi-hsync`.
130−
131− - .. row 3
132−
133− - __u32
134−
135− - ``samples_per_line``
136−
137− -
138−
139− - .. row 4
140−
141− - __u32
142−
143− - ``sample_format``
144−
145− - Defines the sample format as in :ref:`pixfmt`, a
146− four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``,
147− i. e. each sample consists of 8 bits with lower values oriented
148− towards the black level. Do not assume any other correlation of
149− values with the signal level. For example, the MSB does not
150− necessarily indicate if the signal is 'high' or 'low' because 128
151− may not be the mean value of the signal. Drivers shall not convert
152− the sample format by software.
153−
154− - .. row 5
155−
156− - __u32
157−
158− - ``start``\ [#f2]_
159−
160− - This is the scanning system line number associated with the first
161− line of the VBI image, of the first and the second field
162− respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid
163− values. The ``V4L2_VBI_ITU_525_F1_START``,
164− ``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and
165− ``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers
166− for each field for each 525 or 625 line format as a convenience.
167− Don't forget that ITU line numbering starts at 1, not 0. VBI input
168− drivers can return start values 0 if the hardware cannot reliable
169− identify scanning lines, VBI acquisition may not require this
170− information.
171−
172− - .. row 6
173−
174− - __u32
175−
176− - ``count``\ [#f2]_
177−
178− - The number of lines in the first and second field image,
179− respectively.
180−
181− - .. row 7
182−
183− - :cspan:`2`
184−
185− Drivers should be as flexibility as possible. For example, it may
186− be possible to extend or move the VBI capture window down to the
187− picture area, implementing a 'full field mode' to capture data
188− service transmissions embedded in the picture.
189−
190− An application can set the first or second ``count`` value to zero
191− if no data is required from the respective field; ``count``\ [1]
192− if the scanning system is progressive, i. e. not interlaced. The
193− corresponding start value shall be ignored by the application and
194− driver. Anyway, drivers may not support single field capturing and
195− return both count values non-zero.
196−
197− Both ``count`` values set to zero, or line numbers outside the
198− bounds depicted in :ref:`vbi-525` and :ref:`vbi-625`, or a
199− field image covering lines of two fields, are invalid and shall
200− not be returned by the driver.
201−
202− To initialize the ``start`` and ``count`` fields, applications
203− must first determine the current video standard selection. The
204− :ref:`v4l2_std_id <v4l2-std-id>` or the ``framelines`` field
205− of struct :ref:`v4l2_standard <v4l2-standard>` can be evaluated
206− for this purpose.
207−
208− - .. row 8
209−
210− - __u32
211−
212− - ``flags``
213−
214− - See :ref:`vbifmt-flags` below. Currently only drivers set flags,
215− applications must set this field to zero.
216−
217− - .. row 9
218−
219− - __u32
220−
221− - ``reserved``\ [#f2]_
222−
223− - This array is reserved for future extensions. Drivers and
224− applications must set it to zero.
225−
226−
113+ * - __u32
114+ - ``sampling_rate``
115+ - Samples per second, i. e. unit 1 Hz.
116+ * - __u32
117+ - ``offset``
118+ - Horizontal offset of the VBI image, relative to the leading edge
119+ of the line synchronization pulse and counted in samples: The
120+ first sample in the VBI image will be located ``offset`` /
121+ ``sampling_rate`` seconds following the leading edge. See also
122+ :ref:`vbi-hsync`.
123+ * - __u32
124+ - ``samples_per_line``
125+ -
126+ * - __u32
127+ - ``sample_format``
128+ - Defines the sample format as in :ref:`pixfmt`, a
129+ four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``,
130+ i. e. each sample consists of 8 bits with lower values oriented
131+ towards the black level. Do not assume any other correlation of
132+ values with the signal level. For example, the MSB does not
133+ necessarily indicate if the signal is 'high' or 'low' because 128
134+ may not be the mean value of the signal. Drivers shall not convert
135+ the sample format by software.
136+ * - __u32
137+ - ``start``\ [#f2]_
138+ - This is the scanning system line number associated with the first
139+ line of the VBI image, of the first and the second field
140+ respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid
141+ values. The ``V4L2_VBI_ITU_525_F1_START``,
142+ ``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and
143+ ``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers
144+ for each field for each 525 or 625 line format as a convenience.
145+ Don't forget that ITU line numbering starts at 1, not 0. VBI input
146+ drivers can return start values 0 if the hardware cannot reliable
147+ identify scanning lines, VBI acquisition may not require this
148+ information.
149+ * - __u32
150+ - ``count``\ [#f2]_
151+ - The number of lines in the first and second field image,
152+ respectively.
153+ * - :cspan:`2`
154+
155+ Drivers should be as flexibility as possible. For example, it may
156+ be possible to extend or move the VBI capture window down to the
157+ picture area, implementing a 'full field mode' to capture data
158+ service transmissions embedded in the picture.
159+
160+ An application can set the first or second ``count`` value to zero
161+ if no data is required from the respective field; ``count``\ [1]
162+ if the scanning system is progressive, i. e. not interlaced. The
163+ corresponding start value shall be ignored by the application and
164+ driver. Anyway, drivers may not support single field capturing and
165+ return both count values non-zero.
166+
167+ Both ``count`` values set to zero, or line numbers are outside the
168+ bounds depicted\ [#f4]_, or a field image covering lines of two
169+ fields, are invalid and shall not be returned by the driver.
170+
171+ To initialize the ``start`` and ``count`` fields, applications
172+ must first determine the current video standard selection. The
173+ :ref:`v4l2_std_id <v4l2-std-id>` or the ``framelines`` field
174+ of struct :c:type:`v4l2_standard` can be evaluated
175+ for this purpose.
176+ * - __u32
177+ - ``flags``
178+ - See :ref:`vbifmt-flags` below. Currently only drivers set flags,
179+ applications must set this field to zero.
180+ * - __u32
181+ - ``reserved``\ [#f2]_
182+ - This array is reserved for future extensions. Drivers and
183+ applications must set it to zero.
184+
185+
186+.. tabularcolumns:: |p{4.0cm}|p{1.5cm}|p{12.0cm}|
227187
228188 .. _vbifmt-flags:
229189
@@ -232,40 +192,30 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does · 2 unmodified lines
232192 :stub-columns: 0
233193 :widths: 3 1 4
234194
235−
236− - .. row 1
237−
238− - ``V4L2_VBI_UNSYNC``
239−
240− - 0x0001
241−
242− - This flag indicates hardware which does not properly distinguish
243− between fields. Normally the VBI image stores the first field
244− (lower scanning line numbers) first in memory. This may be a top
245− or bottom field depending on the video standard. When this flag is
246− set the first or second field may be stored first, however the
247− fields are still in correct temporal order with the older field
248− first in memory. [#f3]_
249−
250− - .. row 2
251−
252− - ``V4L2_VBI_INTERLACED``
253−
254− - 0x0002
255−
256− - By default the two field images will be passed sequentially; all
257− lines of the first field followed by all lines of the second field
258− (compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and
259− ``V4L2_FIELD_SEQ_BT``, whether the top or bottom field is first in
260− memory depends on the video standard). When this flag is set, the
261− two fields are interlaced (cf. ``V4L2_FIELD_INTERLACED``). The
262− first line of the first field followed by the first line of the
263− second field, then the two second lines, and so on. Such a layout
264− may be necessary when the hardware has been programmed to capture
265− or output interlaced video images and is unable to separate the
266− fields for VBI capturing at the same time. For simplicity setting
267− this flag implies that both ``count`` values are equal and
268− non-zero.
195+ * - ``V4L2_VBI_UNSYNC``
196+ - 0x0001
197+ - This flag indicates hardware which does not properly distinguish
198+ between fields. Normally the VBI image stores the first field
199+ (lower scanning line numbers) first in memory. This may be a top
200+ or bottom field depending on the video standard. When this flag is
201+ set the first or second field may be stored first, however the
202+ fields are still in correct temporal order with the older field
203+ first in memory. [#f3]_
204+ * - ``V4L2_VBI_INTERLACED``
205+ - 0x0002
206+ - By default the two field images will be passed sequentially; all
207+ lines of the first field followed by all lines of the second field
208+ (compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and
209+ ``V4L2_FIELD_SEQ_BT``, whether the top or bottom field is first in
210+ memory depends on the video standard). When this flag is set, the
211+ two fields are interlaced (cf. ``V4L2_FIELD_INTERLACED``). The
212+ first line of the first field followed by the first line of the
213+ second field, then the two second lines, and so on. Such a layout
214+ may be necessary when the hardware has been programmed to capture
215+ or output interlaced video images and is unable to separate the
216+ fields for VBI capturing at the same time. For simplicity setting
217+ this flag implies that both ``count`` values are equal and
218+ non-zero.
269219
270220
271221
@@ -348,3 +298,6 @@ another process. · 76 unmodified lines
348298 Most VBI services transmit on both fields, but some have different
349299 semantics depending on the field number. These cannot be reliable
350300 decoded or encoded when ``V4L2_VBI_UNSYNC`` is set.
301+
302+.. [#f4]
303+ The valid values ar shown at :ref:`vbi-525` and :ref:`vbi-625`.
Documentation/media/uapi/v4l/dev-raw-vbi_files/vbi_525.pdf+0−0

Binary file not shown.

Documentation/media/uapi/v4l/dev-raw-vbi_files/vbi_625.pdf+0−0

Binary file not shown.

Documentation/media/uapi/v4l/dev-rds.rst+72−143
@@ -14,7 +14,9 @@ at devices capable of receiving and/or transmitting RDS information. · 13 unmodified lines
1414 For more information see the core RDS standard :ref:`iec62106` and the
1515 RBDS standard :ref:`nrsc4`.
1616
17−.. note:: Note that the RBDS standard as is used in the USA is almost
17+.. note::
18+
19+ Note that the RBDS standard as is used in the USA is almost
1820 identical to the RDS standard. Any RDS decoder/encoder can also handle
1921 RBDS. Only some of the fields have slightly different meanings. See the
2022 RBDS standard for more information.
@@ -32,10 +34,10 @@ Querying Capabilities · 11 unmodified lines
3234
3335 Devices supporting the RDS capturing API set the
3436 ``V4L2_CAP_RDS_CAPTURE`` flag in the ``capabilities`` field of struct
35−:ref:`v4l2_capability <v4l2-capability>` returned by the
37+:c:type:`v4l2_capability` returned by the
3638 :ref:`VIDIOC_QUERYCAP` ioctl. Any tuner that
3739 supports RDS will set the ``V4L2_TUNER_CAP_RDS`` flag in the
38−``capability`` field of struct :ref:`v4l2_tuner <v4l2-tuner>`. If the
40+``capability`` field of struct :c:type:`v4l2_tuner`. If the
3941 driver only passes RDS blocks without interpreting the data the
4042 ``V4L2_TUNER_CAP_RDS_BLOCK_IO`` flag has to be set, see
4143 :ref:`Reading RDS data <reading-rds-data>`. For future use the flag
@@ -46,19 +48,19 @@ linux-media mailing list: · 4 unmodified lines
4648 `https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__.
4749
4850 Whether an RDS signal is present can be detected by looking at the
49−``rxsubchans`` field of struct :ref:`v4l2_tuner <v4l2-tuner>`: the
51+``rxsubchans`` field of struct :c:type:`v4l2_tuner`: the
5052 ``V4L2_TUNER_SUB_RDS`` will be set if RDS data was detected.
5153
5254 Devices supporting the RDS output API set the ``V4L2_CAP_RDS_OUTPUT``
5355 flag in the ``capabilities`` field of struct
54−:ref:`v4l2_capability <v4l2-capability>` returned by the
56+:c:type:`v4l2_capability` returned by the
5557 :ref:`VIDIOC_QUERYCAP` ioctl. Any modulator that
5658 supports RDS will set the ``V4L2_TUNER_CAP_RDS`` flag in the
5759 ``capability`` field of struct
58−:ref:`v4l2_modulator <v4l2-modulator>`. In order to enable the RDS
60+:c:type:`v4l2_modulator`. In order to enable the RDS
5961 transmission one must set the ``V4L2_TUNER_SUB_RDS`` bit in the
6062 ``txsubchans`` field of struct
61−:ref:`v4l2_modulator <v4l2-modulator>`. If the driver only passes RDS
63+:c:type:`v4l2_modulator`. If the driver only passes RDS
6264 blocks without interpreting the data the ``V4L2_TUNER_CAP_RDS_BLOCK_IO``
6365 flag has to be set. If the tuner is capable of handling RDS entities
6466 like program identification codes and radio text, the flag
@@ -91,165 +93,92 @@ RDS datastructures · 26 unmodified lines
9193 ==================
9294
9395
94−.. _v4l2-rds-data:
96+.. c:type:: v4l2_rds_data
97+
98+.. tabularcolumns:: |p{2.5cm}|p{2.5cm}|p{12.5cm}|
9599
96100 .. flat-table:: struct v4l2_rds_data
97101 :header-rows: 0
98102 :stub-columns: 0
99103 :widths: 1 1 5
100104
101−
102− - .. row 1
103−
104− - __u8
105−
106− - ``lsb``
107−
108− - Least Significant Byte of RDS Block
109−
110− - .. row 2
111−
112− - __u8
113−
114− - ``msb``
115−
116− - Most Significant Byte of RDS Block
117−
118− - .. row 3
119−
120− - __u8
121−
122− - ``block``
123−
124− - Block description
105+ * - __u8
106+ - ``lsb``
107+ - Least Significant Byte of RDS Block
108+ * - __u8
109+ - ``msb``
110+ - Most Significant Byte of RDS Block
111+ * - __u8
112+ - ``block``
113+ - Block description
125114
126115
127116
128117 .. _v4l2-rds-block:
129118
119+.. tabularcolumns:: |p{2.9cm}|p{14.6cm}|
120+
130121 .. flat-table:: Block description
131122 :header-rows: 0
132123 :stub-columns: 0
133124 :widths: 1 5
134125
135−
136− - .. row 1
137−
138− - Bits 0-2
139−
140− - Block (aka offset) of the received data.
141−
142− - .. row 2
143−
144− - Bits 3-5
145−
146− - Deprecated. Currently identical to bits 0-2. Do not use these
147− bits.
148−
149− - .. row 3
150−
151− - Bit 6
152−
153− - Corrected bit. Indicates that an error was corrected for this data
154− block.
155−
156− - .. row 4
157−
158− - Bit 7
159−
160− - Error bit. Indicates that an uncorrectable error occurred during
161− reception of this block.
126+ * - Bits 0-2
127+ - Block (aka offset) of the received data.
128+ * - Bits 3-5
129+ - Deprecated. Currently identical to bits 0-2. Do not use these
130+ bits.
131+ * - Bit 6
132+ - Corrected bit. Indicates that an error was corrected for this data
133+ block.
134+ * - Bit 7
135+ - Error bit. Indicates that an uncorrectable error occurred during
136+ reception of this block.
162137
163138
164139
165140 .. _v4l2-rds-block-codes:
166141
142+.. tabularcolumns:: |p{5.6cm}|p{2.0cm}|p{1.5cm}|p{7.0cm}|
143+
167144 .. flat-table:: Block defines
168145 :header-rows: 0
169146 :stub-columns: 0
170147 :widths: 1 1 1 5
171148
172−
173− - .. row 1
174−
175− - V4L2_RDS_BLOCK_MSK
176−
177− -
178− - 7
179−
180− - Mask for bits 0-2 to get the block ID.
181−
182− - .. row 2
183−
184− - V4L2_RDS_BLOCK_A
185−
186− -
187− - 0
188−
189− - Block A.
190−
191− - .. row 3
192−
193− - V4L2_RDS_BLOCK_B
194−
195− -
196− - 1
197−
198− - Block B.
199−
200− - .. row 4
201−
202− - V4L2_RDS_BLOCK_C
203−
204− -
205− - 2
206−
207− - Block C.
208−
209− - .. row 5
210−
211− - V4L2_RDS_BLOCK_D
212−
213− -
214− - 3
215−
216− - Block D.
217−
218− - .. row 6
219−
220− - V4L2_RDS_BLOCK_C_ALT
221−
222− -
223− - 4
224−
225− - Block C'.
226−
227− - .. row 7
228−
229− - V4L2_RDS_BLOCK_INVALID
230−
231− - read-only
232−
233− - 7
234−
235− - An invalid block.
236−
237− - .. row 8
238−
239− - V4L2_RDS_BLOCK_CORRECTED
240−
241− - read-only
242−
243− - 0x40
244−
245− - A bit error was detected but corrected.
246−
247− - .. row 9
248−
249− - V4L2_RDS_BLOCK_ERROR
250−
251− - read-only
252−
253− - 0x80
254−
255− - An uncorrectable error occurred.
149+ * - V4L2_RDS_BLOCK_MSK
150+ -
151+ - 7
152+ - Mask for bits 0-2 to get the block ID.
153+ * - V4L2_RDS_BLOCK_A
154+ -
155+ - 0
156+ - Block A.
157+ * - V4L2_RDS_BLOCK_B
158+ -
159+ - 1
160+ - Block B.
161+ * - V4L2_RDS_BLOCK_C
162+ -
163+ - 2
164+ - Block C.
165+ * - V4L2_RDS_BLOCK_D
166+ -
167+ - 3
168+ - Block D.
169+ * - V4L2_RDS_BLOCK_C_ALT
170+ -
171+ - 4
172+ - Block C'.
173+ * - V4L2_RDS_BLOCK_INVALID
174+ - read-only
175+ - 7
176+ - An invalid block.
177+ * - V4L2_RDS_BLOCK_CORRECTED
178+ - read-only
179+ - 0x40
180+ - A bit error was detected but corrected.
181+ * - V4L2_RDS_BLOCK_ERROR
182+ - read-only
183+ - 0x80
184+ - An uncorrectable error occurred.
Documentation/media/uapi/v4l/dev-sdr.rst+22−35
@@ -21,7 +21,7 @@ Querying Capabilities · 20 unmodified lines
2121 Devices supporting the SDR receiver interface set the
2222 ``V4L2_CAP_SDR_CAPTURE`` and ``V4L2_CAP_TUNER`` flag in the
2323 ``capabilities`` field of struct
24−:ref:`v4l2_capability <v4l2-capability>` returned by the
24+:c:type:`v4l2_capability` returned by the
2525 :ref:`VIDIOC_QUERYCAP` ioctl. That flag means the
2626 device has an Analog to Digital Converter (ADC), which is a mandatory
2727 element for the SDR receiver.
@@ -29,7 +29,7 @@ element for the SDR receiver. · 1 unmodified line
2929 Devices supporting the SDR transmitter interface set the
3030 ``V4L2_CAP_SDR_OUTPUT`` and ``V4L2_CAP_MODULATOR`` flag in the
3131 ``capabilities`` field of struct
32−:ref:`v4l2_capability <v4l2-capability>` returned by the
32+:c:type:`v4l2_capability` returned by the
3333 :ref:`VIDIOC_QUERYCAP` ioctl. That flag means the
3434 device has an Digital to Analog Converter (DAC), which is a mandatory
3535 element for the SDR transmitter.
@@ -67,53 +67,40 @@ basic :ref:`format` ioctls, the · 31 unmodified lines
6767 well.
6868
6969 To use the :ref:`format` ioctls applications set the ``type``
70−field of a struct :ref:`v4l2_format <v4l2-format>` to
70+field of a struct :c:type:`v4l2_format` to
7171 ``V4L2_BUF_TYPE_SDR_CAPTURE`` or ``V4L2_BUF_TYPE_SDR_OUTPUT`` and use
72−the struct :ref:`v4l2_sdr_format <v4l2-sdr-format>` ``sdr`` member
72+the struct :c:type:`v4l2_sdr_format` ``sdr`` member
7373 of the ``fmt`` union as needed per the desired operation. Currently
7474 there is two fields, ``pixelformat`` and ``buffersize``, of struct
75−struct :ref:`v4l2_sdr_format <v4l2-sdr-format>` which are used.
75+struct :c:type:`v4l2_sdr_format` which are used.
7676 Content of the ``pixelformat`` is V4L2 FourCC code of the data format.
7777 The ``buffersize`` field is maximum buffer size in bytes required for
7878 data transfer, set by the driver in order to inform application.
7979
8080
81−.. _v4l2-sdr-format:
81+.. c:type:: v4l2_sdr_format
82+
83+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
8284
8385 .. flat-table:: struct v4l2_sdr_format
8486 :header-rows: 0
8587 :stub-columns: 0
8688 :widths: 1 1 2
8789
88−
89− - .. row 1
90−
91− - __u32
92−
93− - ``pixelformat``
94−
95− - The data format or type of compression, set by the application.
96− This is a little endian
97− :ref:`four character code <v4l2-fourcc>`. V4L2 defines SDR
98− formats in :ref:`sdr-formats`.
99−
100− - .. row 2
101−
102− - __u32
103−
104− - ``buffersize``
105−
106− - Maximum size in bytes required for data. Value is set by the
107− driver.
108−
109− - .. row 3
110−
111− - __u8
112−
113− - ``reserved[24]``
114−
115− - This array is reserved for future extensions. Drivers and
116− applications must set it to zero.
90+ * - __u32
91+ - ``pixelformat``
92+ - The data format or type of compression, set by the application.
93+ This is a little endian
94+ :ref:`four character code <v4l2-fourcc>`. V4L2 defines SDR
95+ formats in :ref:`sdr-formats`.
96+ * - __u32
97+ - ``buffersize``
98+ - Maximum size in bytes required for data. Value is set by the
99+ driver.
100+ * - __u8
101+ - ``reserved[24]``
102+ - This array is reserved for future extensions. Drivers and
103+ applications must set it to zero.
117104
118105
119106 An SDR device may support :ref:`read/write <rw>` and/or streaming
Documentation/media/uapi/v4l/dev-sliced-vbi.rst+309−475
@@ -34,7 +34,7 @@ Querying Capabilities · 33 unmodified lines
3434 Devices supporting the sliced VBI capturing or output API set the
3535 ``V4L2_CAP_SLICED_VBI_CAPTURE`` or ``V4L2_CAP_SLICED_VBI_OUTPUT`` flag
3636 respectively, in the ``capabilities`` field of struct
37−:ref:`v4l2_capability <v4l2-capability>` returned by the
37+:c:type:`v4l2_capability` returned by the
3838 :ref:`VIDIOC_QUERYCAP` ioctl. At least one of the
3939 read/write, streaming or asynchronous :ref:`I/O methods <io>` must be
4040 supported. Sliced VBI devices may have a tuner or modulator.
@@ -67,17 +67,17 @@ line 16 the hardware may be able to look for a VPS or Teletext signal, · 26 unmodified lines
6767 but not both at the same time.
6868
6969 To determine the currently selected services applications set the
70−``type`` field of struct :ref:`v4l2_format <v4l2-format>` to
70+``type`` field of struct :c:type:`v4l2_format` to
7171 ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or
7272 ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``, and the
7373 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl fills the ``fmt.sliced``
7474 member, a struct
75−:ref:`v4l2_sliced_vbi_format <v4l2-sliced-vbi-format>`.
75+:c:type:`v4l2_sliced_vbi_format`.
7676
7777 Applications can request different parameters by initializing or
7878 modifying the ``fmt.sliced`` member and calling the
7979 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl with a pointer to the
80−:ref:`struct v4l2_format <v4l2-format>` structure.
80+struct :c:type:`v4l2_format` structure.
8181
8282 The sliced VBI API is more complicated than the raw VBI API because the
8383 hardware must be told which VBI service to expect on each scan line. Not
@@ -100,149 +100,104 @@ which may return ``EBUSY`` can be the · 16 unmodified lines
100100 :ref:`select() <func-select>` call.
101101
102102
103−.. _v4l2-sliced-vbi-format:
103+.. c:type:: v4l2_sliced_vbi_format
104104
105105 struct v4l2_sliced_vbi_format
106106 -----------------------------
107107
108+.. tabularcolumns:: |p{1.0cm}|p{4.5cm}|p{4.0cm}|p{4.0cm}|p{4.0cm}|
109+
110+.. cssclass:: longtable
111+
108112 .. flat-table::
109113 :header-rows: 0
110114 :stub-columns: 0
111115 :widths: 3 3 2 2 2
112116
113−
114− - .. row 1
115−
116− - __u32
117−
118− - ``service_set``
119−
120− - :cspan:`2`
121−
122− If ``service_set`` is non-zero when passed with
123− :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or
124− :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`, the ``service_lines``
125− array will be filled by the driver according to the services
126− specified in this field. For example, if ``service_set`` is
127− initialized with ``V4L2_SLICED_TELETEXT_B | V4L2_SLICED_WSS_625``,
128− a driver for the cx25840 video decoder sets lines 7-22 of both
129− fields [#f1]_ to ``V4L2_SLICED_TELETEXT_B`` and line 23 of the first
130− field to ``V4L2_SLICED_WSS_625``. If ``service_set`` is set to
131− zero, then the values of ``service_lines`` will be used instead.
132−
133− On return the driver sets this field to the union of all elements
134− of the returned ``service_lines`` array. It may contain less
135− services than requested, perhaps just one, if the hardware cannot
136− handle more services simultaneously. It may be empty (zero) if
137− none of the requested services are supported by the hardware.
138−
139− - .. row 2
140−
141− - __u16
142−
143− - ``service_lines``\ [2][24]
144−
145− - :cspan:`2`
146−
147− Applications initialize this array with sets of data services the
148− driver shall look for or insert on the respective scan line.
149− Subject to hardware capabilities drivers return the requested set,
150− a subset, which may be just a single service, or an empty set.
151− When the hardware cannot handle multiple services on the same line
152− the driver shall choose one. No assumptions can be made on which
153− service the driver chooses.
154−
155− Data services are defined in :ref:`vbi-services2`. Array indices
156− map to ITU-R line numbers (see also :ref:`vbi-525` and
157− :ref:`vbi-625`) as follows:
158−
159− - .. row 3
160−
161− -
162− -
163− - Element
164−
165− - 525 line systems
166−
167− - 625 line systems
168−
169− - .. row 4
170−
171− -
172− -
173− - ``service_lines``\ [0][1]
174−
175− - 1
176−
177− - 1
178−
179− - .. row 5
180−
181− -
182− -
183− - ``service_lines``\ [0][23]
184−
185− - 23
186−
187− - 23
188−
189− - .. row 6
190−
191− -
192− -
193− - ``service_lines``\ [1][1]
194−
195− - 264
196−
197− - 314
198−
199− - .. row 7
200−
201− -
202− -
203− - ``service_lines``\ [1][23]
204−
205− - 286
206−
207− - 336
208−
209− - .. row 8
210−
211− -
212− -
213− - :cspan:`2` Drivers must set ``service_lines`` [0][0] and
214− ``service_lines``\ [1][0] to zero. The
215− ``V4L2_VBI_ITU_525_F1_START``, ``V4L2_VBI_ITU_525_F2_START``,
216− ``V4L2_VBI_ITU_625_F1_START`` and ``V4L2_VBI_ITU_625_F2_START``
217− defines give the start line numbers for each field for each 525 or
218− 625 line format as a convenience. Don't forget that ITU line
219− numbering starts at 1, not 0.
220−
221− - .. row 9
222−
223− - __u32
224−
225− - ``io_size``
226−
227− - :cspan:`2` Maximum number of bytes passed by one
228− :ref:`read() <func-read>` or :ref:`write() <func-write>` call,
229− and the buffer size in bytes for the
230− :ref:`VIDIOC_QBUF` and
231− :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. Drivers set this field
232− to the size of struct
233− :ref:`v4l2_sliced_vbi_data <v4l2-sliced-vbi-data>` times the
234− number of non-zero elements in the returned ``service_lines``
235− array (that is the number of lines potentially carrying data).
236−
237− - .. row 10
238−
239− - __u32
240−
241− - ``reserved``\ [2]
242−
243− - :cspan:`2` This array is reserved for future extensions.
244− Applications and drivers must set it to zero.
245−
117+ * - __u32
118+ - ``service_set``
119+ - :cspan:`2`
120+
121+ If ``service_set`` is non-zero when passed with
122+ :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or
123+ :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`, the ``service_lines``
124+ array will be filled by the driver according to the services
125+ specified in this field. For example, if ``service_set`` is
126+ initialized with ``V4L2_SLICED_TELETEXT_B | V4L2_SLICED_WSS_625``,
127+ a driver for the cx25840 video decoder sets lines 7-22 of both
128+ fields [#f1]_ to ``V4L2_SLICED_TELETEXT_B`` and line 23 of the first
129+ field to ``V4L2_SLICED_WSS_625``. If ``service_set`` is set to
130+ zero, then the values of ``service_lines`` will be used instead.
131+
132+ On return the driver sets this field to the union of all elements
133+ of the returned ``service_lines`` array. It may contain less
134+ services than requested, perhaps just one, if the hardware cannot
135+ handle more services simultaneously. It may be empty (zero) if
136+ none of the requested services are supported by the hardware.
137+ * - __u16
138+ - ``service_lines``\ [2][24]
139+ - :cspan:`2`
140+
141+ Applications initialize this array with sets of data services the
142+ driver shall look for or insert on the respective scan line.
143+ Subject to hardware capabilities drivers return the requested set,
144+ a subset, which may be just a single service, or an empty set.
145+ When the hardware cannot handle multiple services on the same line
146+ the driver shall choose one. No assumptions can be made on which
147+ service the driver chooses.
148+
149+ Data services are defined in :ref:`vbi-services2`. Array indices
150+ map to ITU-R line numbers\ [#f2]_ as follows:
151+ * -
152+ -
153+ - Element
154+ - 525 line systems
155+ - 625 line systems
156+ * -
157+ -
158+ - ``service_lines``\ [0][1]
159+ - 1
160+ - 1
161+ * -
162+ -
163+ - ``service_lines``\ [0][23]
164+ - 23
165+ - 23
166+ * -
167+ -
168+ - ``service_lines``\ [1][1]
169+ - 264
170+ - 314
171+ * -
172+ -
173+ - ``service_lines``\ [1][23]
174+ - 286
175+ - 336
176+ * -
177+ -
178+ - :cspan:`2` Drivers must set ``service_lines`` [0][0] and
179+ ``service_lines``\ [1][0] to zero. The
180+ ``V4L2_VBI_ITU_525_F1_START``, ``V4L2_VBI_ITU_525_F2_START``,
181+ ``V4L2_VBI_ITU_625_F1_START`` and ``V4L2_VBI_ITU_625_F2_START``
182+ defines give the start line numbers for each field for each 525 or
183+ 625 line format as a convenience. Don't forget that ITU line
184+ numbering starts at 1, not 0.
185+ * - __u32
186+ - ``io_size``
187+ - :cspan:`2` Maximum number of bytes passed by one
188+ :ref:`read() <func-read>` or :ref:`write() <func-write>` call,
189+ and the buffer size in bytes for the
190+ :ref:`VIDIOC_QBUF` and
191+ :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. Drivers set this field
192+ to the size of struct
193+ :c:type:`v4l2_sliced_vbi_data` times the
194+ number of non-zero elements in the returned ``service_lines``
195+ array (that is the number of lines potentially carrying data).
196+ * - __u32
197+ - ``reserved``\ [2]
198+ - :cspan:`2` This array is reserved for future extensions.
199+
200+ Applications and drivers must set it to zero.
246201
247202
248203 .. _vbi-services2:
@@ -250,96 +205,65 @@ struct v4l2_sliced_vbi_format · 1 unmodified line
250205 Sliced VBI services
251206 -------------------
252207
208+.. raw:: latex
209+
210+ \begin{adjustbox}{width=\columnwidth}
211+
212+.. tabularcolumns:: |p{5.0cm}|p{1.4cm}|p{3.0cm}|p{2.5cm}|p{9.0cm}|
213+
253214 .. flat-table::
254215 :header-rows: 1
255216 :stub-columns: 0
256217 :widths: 2 1 1 2 2
257218
258−
259− - .. row 1
260−
261− - Symbol
262−
263− - Value
264−
265− - Reference
266−
267− - Lines, usually
268−
269− - Payload
270−
271− - .. row 2
272−
273− - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B)
274−
275− - 0x0001
276−
277− - :ref:`ets300706`, :ref:`itu653`
278−
279− - PAL/SECAM line 7-22, 320-335 (second field 7-22)
280−
281− - Last 42 of the 45 byte Teletext packet, that is without clock
282− run-in and framing code, lsb first transmitted.
283−
284− - .. row 3
285−
286− - ``V4L2_SLICED_VPS``
287−
288− - 0x0400
289−
290− - :ref:`ets300231`
291−
292− - PAL line 16
293−
294− - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb
295− first transmitted.
296−
297− - .. row 4
298−
299− - ``V4L2_SLICED_CAPTION_525``
300−
301− - 0x1000
302−
303− - :ref:`cea608`
304−
305− - NTSC line 21, 284 (second field 21)
306−
307− - Two bytes in transmission order, including parity bit, lsb first
308− transmitted.
309−
310− - .. row 5
311−
312− - ``V4L2_SLICED_WSS_625``
313−
314− - 0x4000
315−
316− - :ref:`itu1119`, :ref:`en300294`
317−
318− - PAL/SECAM line 23
319−
320− -
321−
322− ::
323−
324− Byte 0 1
325− msb lsb msb lsb
326− Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9
327−
328− - .. row 6
329−
330− - ``V4L2_SLICED_VBI_525``
331−
332− - 0x1000
333−
334− - :cspan:`2` Set of services applicable to 525 line systems.
335−
336− - .. row 7
337−
338− - ``V4L2_SLICED_VBI_625``
339−
340− - 0x4401
341−
342− - :cspan:`2` Set of services applicable to 625 line systems.
219+ * - Symbol
220+ - Value
221+ - Reference
222+ - Lines, usually
223+ - Payload
224+ * - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B)
225+ - 0x0001
226+ - :ref:`ets300706`,
227+
228+ :ref:`itu653`
229+ - PAL/SECAM line 7-22, 320-335 (second field 7-22)
230+ - Last 42 of the 45 byte Teletext packet, that is without clock
231+ run-in and framing code, lsb first transmitted.
232+ * - ``V4L2_SLICED_VPS``
233+ - 0x0400
234+ - :ref:`ets300231`
235+ - PAL line 16
236+ - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb
237+ first transmitted.
238+ * - ``V4L2_SLICED_CAPTION_525``
239+ - 0x1000
240+ - :ref:`cea608`
241+ - NTSC line 21, 284 (second field 21)
242+ - Two bytes in transmission order, including parity bit, lsb first
243+ transmitted.
244+ * - ``V4L2_SLICED_WSS_625``
245+ - 0x4000
246+ - :ref:`itu1119`,
247+
248+ :ref:`en300294`
249+ - PAL/SECAM line 23
250+ -
251+
252+ ::
253+
254+ Byte 0 1
255+ msb lsb msb lsb
256+ Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9
257+ * - ``V4L2_SLICED_VBI_525``
258+ - 0x1000
259+ - :cspan:`2` Set of services applicable to 525 line systems.
260+ * - ``V4L2_SLICED_VBI_625``
261+ - 0x4401
262+ - :cspan:`2` Set of services applicable to 625 line systems.
263+
264+.. raw:: latex
265+
266+ \end{adjustbox}\newline\newline
343267
344268
345269 Drivers may return an ``EINVAL`` error code when applications attempt to
@@ -359,80 +283,57 @@ Reading and writing sliced VBI data · 13 unmodified lines
359283
360284 A single :ref:`read() <func-read>` or :ref:`write() <func-write>`
361285 call must pass all data belonging to one video frame. That is an array
362−of :ref:`struct v4l2_sliced_vbi_data <v4l2-sliced-vbi-data>` structures with one or
286+of struct :c:type:`v4l2_sliced_vbi_data` structures with one or
363287 more elements and a total size not exceeding ``io_size`` bytes. Likewise
364288 in streaming I/O mode one buffer of ``io_size`` bytes must contain data
365289 of one video frame. The ``id`` of unused
366−:ref:`struct v4l2_sliced_vbi_data <v4l2-sliced-vbi-data>` elements must be zero.
290+struct :c:type:`v4l2_sliced_vbi_data` elements must be zero.
367291
368292
369−.. _v4l2-sliced-vbi-data:
293+.. c:type:: v4l2_sliced_vbi_data
370294
371295 struct v4l2_sliced_vbi_data
372296 ---------------------------
373297
298+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
299+
374300 .. flat-table::
375301 :header-rows: 0
376302 :stub-columns: 0
377303 :widths: 3 1 4
378304
379−
380− - .. row 1
381−
382− - __u32
383−
384− - ``id``
385−
386− - A flag from :ref:`vbi-services` identifying the type of data in
387− this packet. Only a single bit must be set. When the ``id`` of a
388− captured packet is zero, the packet is empty and the contents of
389− other fields are undefined. Applications shall ignore empty
390− packets. When the ``id`` of a packet for output is zero the
391− contents of the ``data`` field are undefined and the driver must
392− no longer insert data on the requested ``field`` and ``line``.
393−
394− - .. row 2
395−
396− - __u32
397−
398− - ``field``
399−
400− - The video field number this data has been captured from, or shall
401− be inserted at. ``0`` for the first field, ``1`` for the second
402− field.
403−
404− - .. row 3
405−
406− - __u32
407−
408− - ``line``
409−
410− - The field (as opposed to frame) line number this data has been
411− captured from, or shall be inserted at. See :ref:`vbi-525` and
412− :ref:`vbi-625` for valid values. Sliced VBI capture devices can
413− set the line number of all packets to ``0`` if the hardware cannot
414− reliably identify scan lines. The field number must always be
415− valid.
416−
417− - .. row 4
418−
419− - __u32
420−
421− - ``reserved``
422−
423− - This field is reserved for future extensions. Applications and
424− drivers must set it to zero.
425−
426− - .. row 5
427−
428− - __u8
429−
430− - ``data``\ [48]
431−
432− - The packet payload. See :ref:`vbi-services` for the contents and
433− number of bytes passed for each data type. The contents of padding
434− bytes at the end of this array are undefined, drivers and
435− applications shall ignore them.
305+ * - __u32
306+ - ``id``
307+ - A flag from :ref:`vbi-services` identifying the type of data in
308+ this packet. Only a single bit must be set. When the ``id`` of a
309+ captured packet is zero, the packet is empty and the contents of
310+ other fields are undefined. Applications shall ignore empty
311+ packets. When the ``id`` of a packet for output is zero the
312+ contents of the ``data`` field are undefined and the driver must
313+ no longer insert data on the requested ``field`` and ``line``.
314+ * - __u32
315+ - ``field``
316+ - The video field number this data has been captured from, or shall
317+ be inserted at. ``0`` for the first field, ``1`` for the second
318+ field.
319+ * - __u32
320+ - ``line``
321+ - The field (as opposed to frame) line number this data has been
322+ captured from, or shall be inserted at. See :ref:`vbi-525` and
323+ :ref:`vbi-625` for valid values. Sliced VBI capture devices can
324+ set the line number of all packets to ``0`` if the hardware cannot
325+ reliably identify scan lines. The field number must always be
326+ valid.
327+ * - __u32
328+ - ``reserved``
329+ - This field is reserved for future extensions. Applications and
330+ drivers must set it to zero.
331+ * - __u8
332+ - ``data``\ [48]
333+ - The packet payload. See :ref:`vbi-services` for the contents and
334+ number of bytes passed for each data type. The contents of padding
335+ bytes at the end of this array are undefined, drivers and
336+ applications shall ignore them.
436337
437338
438339 Packets are always passed in ascending line number order, without
@@ -542,7 +443,7 @@ refer to the MPEG-2 specifications for details on those packet headers.) · 103 unmodified lines
542443
543444 The payload of the MPEG-2 *Private Stream 1 PES* packets that contain
544445 sliced VBI data is specified by struct
545−:ref:`v4l2_mpeg_vbi_fmt_ivtv <v4l2-mpeg-vbi-fmt-ivtv>`. The
446+:c:type:`v4l2_mpeg_vbi_fmt_ivtv`. The
546447 payload is variable length, depending on the actual number of lines of
547448 sliced VBI data present in a video frame. The payload may be padded at
548449 the end with unspecified fill bytes to align the end of the payload to a
@@ -551,58 +452,41 @@ with 18 lines/field with 43 bytes of data/line and a 4 byte magic · 2 unmodified lines
551452 number).
552453
553454
554−.. _v4l2-mpeg-vbi-fmt-ivtv:
455+.. c:type:: v4l2_mpeg_vbi_fmt_ivtv
555456
556457 struct v4l2_mpeg_vbi_fmt_ivtv
557458 -----------------------------
558459
460+.. tabularcolumns:: |p{1.0cm}|p{3.5cm}|p{1.0cm}|p{11.5cm}|
461+
559462 .. flat-table::
560463 :header-rows: 0
561464 :stub-columns: 0
562465 :widths: 1 1 1 2
563466
564−
565− - .. row 1
566−
567− - __u8
568−
569− - ``magic``\ [4]
570−
571− -
572− - A "magic" constant from :ref:`v4l2-mpeg-vbi-fmt-ivtv-magic` that
573− indicates this is a valid sliced VBI data payload and also
574− indicates which member of the anonymous union, ``itv0`` or
575− ``ITV0``, to use for the payload data.
576−
577− - .. row 2
578−
579− - union
580−
581− - (anonymous)
582−
583− - .. row 3
584−
585− -
586− - struct :ref:`v4l2_mpeg_vbi_itv0 <v4l2-mpeg-vbi-itv0>`
587−
588− - ``itv0``
589−
590− - The primary form of the sliced VBI data payload that contains
591− anywhere from 1 to 35 lines of sliced VBI data. Line masks are
592− provided in this form of the payload indicating which VBI lines
593− are provided.
594−
595− - .. row 4
596−
597− -
598− - struct :ref:`v4l2_mpeg_vbi_ITV0 <v4l2-mpeg-vbi-itv0-1>`
599−
600− - ``ITV0``
601−
602− - An alternate form of the sliced VBI data payload used when 36
603− lines of sliced VBI data are present. No line masks are provided
604− in this form of the payload; all valid line mask bits are
605− implcitly set.
467+ * - __u8
468+ - ``magic``\ [4]
469+ -
470+ - A "magic" constant from :ref:`v4l2-mpeg-vbi-fmt-ivtv-magic` that
471+ indicates this is a valid sliced VBI data payload and also
472+ indicates which member of the anonymous union, ``itv0`` or
473+ ``ITV0``, to use for the payload data.
474+ * - union
475+ - (anonymous)
476+ * -
477+ - struct :c:type:`v4l2_mpeg_vbi_itv0`
478+ - ``itv0``
479+ - The primary form of the sliced VBI data payload that contains
480+ anywhere from 1 to 35 lines of sliced VBI data. Line masks are
481+ provided in this form of the payload indicating which VBI lines
482+ are provided.
483+ * -
484+ - struct :ref:`v4l2_mpeg_vbi_ITV0 <v4l2-mpeg-vbi-itv0-1>`
485+ - ``ITV0``
486+ - An alternate form of the sliced VBI data payload used when 36
487+ lines of sliced VBI data are present. No line masks are provided
488+ in this form of the payload; all valid line mask bits are
489+ implcitly set.
606490
607491
608492
@@ -611,96 +495,77 @@ struct v4l2_mpeg_vbi_fmt_ivtv · 2 unmodified lines
611495 Magic Constants for struct v4l2_mpeg_vbi_fmt_ivtv magic field
612496 -------------------------------------------------------------
613497
498+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
499+
614500 .. flat-table::
615501 :header-rows: 1
616502 :stub-columns: 0
617503 :widths: 3 1 4
618504
505+ * - Defined Symbol
506+ - Value
507+ - Description
508+ * - ``V4L2_MPEG_VBI_IVTV_MAGIC0``
509+ - "itv0"
510+ - Indicates the ``itv0`` member of the union in struct
511+ :c:type:`v4l2_mpeg_vbi_fmt_ivtv` is
512+ valid.
513+ * - ``V4L2_MPEG_VBI_IVTV_MAGIC1``
514+ - "ITV0"
515+ - Indicates the ``ITV0`` member of the union in struct
516+ :c:type:`v4l2_mpeg_vbi_fmt_ivtv` is
517+ valid and that 36 lines of sliced VBI data are present.
619518
620− - .. row 1
621−
622− - Defined Symbol
623−
624− - Value
625519
626− - Description
627520
628− - .. row 2
521+.. c:type:: v4l2_mpeg_vbi_itv0
629522
630− - ``V4L2_MPEG_VBI_IVTV_MAGIC0``
523+.. c:type:: v4l2_mpeg_vbi_ITV0
631524
632− - "itv0"
525+structs v4l2_mpeg_vbi_itv0 and v4l2_mpeg_vbi_ITV0
526+-------------------------------------------------
633527
634− - Indicates the ``itv0`` member of the union in struct
635− :ref:`v4l2_mpeg_vbi_fmt_ivtv <v4l2-mpeg-vbi-fmt-ivtv>` is
636− valid.
637−
638− - .. row 3
639−
640− - ``V4L2_MPEG_VBI_IVTV_MAGIC1``
641−
642− - "ITV0"
643−
644− - Indicates the ``ITV0`` member of the union in struct
645− :ref:`v4l2_mpeg_vbi_fmt_ivtv <v4l2-mpeg-vbi-fmt-ivtv>` is
646− valid and that 36 lines of sliced VBI data are present.
647−
648−
649−
650−.. _v4l2-mpeg-vbi-itv0:
651−
652−struct v4l2_mpeg_vbi_itv0
653−-------------------------
528+.. tabularcolumns:: |p{4.4cm}|p{2.4cm}|p{10.7cm}|
654529
655530 .. flat-table::
656531 :header-rows: 0
657532 :stub-columns: 0
658533 :widths: 1 1 2
659534
660−
661− - .. row 1
662−
663− - __le32
664−
665− - ``linemask``\ [2]
666−
667− - Bitmasks indicating the VBI service lines present. These
668− ``linemask`` values are stored in little endian byte order in the
669− MPEG stream. Some reference ``linemask`` bit positions with their
670− corresponding VBI line number and video field are given below.
671− b\ :sub:`0` indicates the least significant bit of a ``linemask``
672− value:
673−
674−
675−
676− ::
677−
678− linemask[0] b0: line 6 first field
679− linemask[0] b17: line 23 first field
680− linemask[0] b18: line 6 second field
681− linemask[0] b31: line 19 second field
682− linemask[1] b0: line 20 second field
683− linemask[1] b3: line 23 second field
684− linemask[1] b4-b31: unused and set to 0
685−
686− - .. row 2
687−
688− - struct
689− :ref:`v4l2_mpeg_vbi_itv0_line <v4l2-mpeg-vbi-itv0-line>`
690−
691− - ``line``\ [35]
692−
693− - This is a variable length array that holds from 1 to 35 lines of
694− sliced VBI data. The sliced VBI data lines present correspond to
695− the bits set in the ``linemask`` array, starting from b\ :sub:`0`
696− of ``linemask``\ [0] up through b\ :sub:`31` of ``linemask``\ [0],
697− and from b\ :sub:`0` of ``linemask``\ [1] up through b\ :sub:`3` of
698− ``linemask``\ [1]. ``line``\ [0] corresponds to the first bit
699− found set in the ``linemask`` array, ``line``\ [1] corresponds to
700− the second bit found set in the ``linemask`` array, etc. If no
701− ``linemask`` array bits are set, then ``line``\ [0] may contain
702− one line of unspecified data that should be ignored by
703− applications.
535+ * - __le32
536+ - ``linemask``\ [2]
537+ - Bitmasks indicating the VBI service lines present. These
538+ ``linemask`` values are stored in little endian byte order in the
539+ MPEG stream. Some reference ``linemask`` bit positions with their
540+ corresponding VBI line number and video field are given below.
541+ b\ :sub:`0` indicates the least significant bit of a ``linemask``
542+ value:
543+
544+
545+
546+ ::
547+
548+ linemask[0] b0: line 6 first field
549+ linemask[0] b17: line 23 first field
550+ linemask[0] b18: line 6 second field
551+ linemask[0] b31: line 19 second field
552+ linemask[1] b0: line 20 second field
553+ linemask[1] b3: line 23 second field
554+ linemask[1] b4-b31: unused and set to 0
555+ * - struct
556+ :c:type:`v4l2_mpeg_vbi_itv0_line`
557+ - ``line``\ [35]
558+ - This is a variable length array that holds from 1 to 35 lines of
559+ sliced VBI data. The sliced VBI data lines present correspond to
560+ the bits set in the ``linemask`` array, starting from b\ :sub:`0`
561+ of ``linemask``\ [0] up through b\ :sub:`31` of ``linemask``\ [0],
562+ and from b\ :sub:`0` of ``linemask``\ [1] up through b\ :sub:`3` of
563+ ``linemask``\ [1]. ``line``\ [0] corresponds to the first bit
564+ found set in the ``linemask`` array, ``line``\ [1] corresponds to
565+ the second bit found set in the ``linemask`` array, etc. If no
566+ ``linemask`` array bits are set, then ``line``\ [0] may contain
567+ one line of unspecified data that should be ignored by
568+ applications.
704569
705570
706571
@@ -709,54 +574,43 @@ struct v4l2_mpeg_vbi_itv0 · 2 unmodified lines
709574 struct v4l2_mpeg_vbi_ITV0
710575 -------------------------
711576
577+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
578+
712579 .. flat-table::
713580 :header-rows: 0
714581 :stub-columns: 0
715582 :widths: 1 1 2
716583
584+ * - struct
585+ :c:type:`v4l2_mpeg_vbi_itv0_line`
586+ - ``line``\ [36]
587+ - A fixed length array of 36 lines of sliced VBI data. ``line``\ [0]
588+ through ``line``\ [17] correspond to lines 6 through 23 of the
589+ first field. ``line``\ [18] through ``line``\ [35] corresponds to
590+ lines 6 through 23 of the second field.
717591
718− - .. row 1
719−
720− - struct
721− :ref:`v4l2_mpeg_vbi_itv0_line <v4l2-mpeg-vbi-itv0-line>`
722592
723− - ``line``\ [36]
724593
725− - A fixed length array of 36 lines of sliced VBI data. ``line``\ [0]
726− through ``line``\ [17] correspond to lines 6 through 23 of the
727− first field. ``line``\ [18] through ``line``\ [35] corresponds to
728− lines 6 through 23 of the second field.
729−
730−
731−
732−.. _v4l2-mpeg-vbi-itv0-line:
594+.. c:type:: v4l2_mpeg_vbi_itv0_line
733595
734596 struct v4l2_mpeg_vbi_itv0_line
735597 ------------------------------
736598
599+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
600+
737601 .. flat-table::
738602 :header-rows: 0
739603 :stub-columns: 0
740604 :widths: 1 1 2
741605
742−
743− - .. row 1
744−
745− - __u8
746−
747− - ``id``
748−
749− - A line identifier value from
750− :ref:`ITV0-Line-Identifier-Constants` that indicates the type of
751− sliced VBI data stored on this line.
752−
753− - .. row 2
754−
755− - __u8
756−
757− - ``data``\ [42]
758−
759− - The sliced VBI data for the line.
606+ * - __u8
607+ - ``id``
608+ - A line identifier value from
609+ :ref:`ITV0-Line-Identifier-Constants` that indicates the type of
610+ sliced VBI data stored on this line.
611+ * - __u8
612+ - ``data``\ [42]
613+ - The sliced VBI data for the line.
760614
761615
762616
@@ -765,58 +619,38 @@ struct v4l2_mpeg_vbi_itv0_line · 2 unmodified lines
765619 Line Identifiers for struct v4l2_mpeg_vbi_itv0_line id field
766620 ------------------------------------------------------------
767621
622+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
623+
768624 .. flat-table::
769625 :header-rows: 1
770626 :stub-columns: 0
771627 :widths: 3 1 4
772628
773−
774− - .. row 1
775−
776− - Defined Symbol
777−
778− - Value
779−
780− - Description
781−
782− - .. row 2
783−
784− - ``V4L2_MPEG_VBI_IVTV_TELETEXT_B``
785−
786− - 1
787−
788− - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
789− description of the line payload.
790−
791− - .. row 3
792−
793− - ``V4L2_MPEG_VBI_IVTV_CAPTION_525``
794−
795− - 4
796−
797− - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
798− description of the line payload.
799−
800− - .. row 4
801−
802− - ``V4L2_MPEG_VBI_IVTV_WSS_625``
803−
804− - 5
805−
806− - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
807− description of the line payload.
808−
809− - .. row 5
810−
811− - ``V4L2_MPEG_VBI_IVTV_VPS``
812−
813− - 7
814−
815− - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
816− description of the line payload.
629+ * - Defined Symbol
630+ - Value
631+ - Description
632+ * - ``V4L2_MPEG_VBI_IVTV_TELETEXT_B``
633+ - 1
634+ - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
635+ description of the line payload.
636+ * - ``V4L2_MPEG_VBI_IVTV_CAPTION_525``
637+ - 4
638+ - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
639+ description of the line payload.
640+ * - ``V4L2_MPEG_VBI_IVTV_WSS_625``
641+ - 5
642+ - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
643+ description of the line payload.
644+ * - ``V4L2_MPEG_VBI_IVTV_VPS``
645+ - 7
646+ - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
647+ description of the line payload.
817648
818649
819650
820651 .. [#f1]
821652 According to :ref:`ETS 300 706 <ets300706>` lines 6-22 of the first
822653 field and lines 5-22 of the second field may carry Teletext data.
654+
655+.. [#f2]
656+ See also :ref:`vbi-525` and :ref:`vbi-625`.
Documentation/media/uapi/v4l/dev-subdev.rst+49−84
@@ -202,93 +202,58 @@ for the pipeline described in :ref:`pipeline-scaling` (table columns · 201 unmodified lines
202202 list entity names and pad numbers).
203203
204204
205+.. raw:: latex
206+
207+ \begin{adjustbox}{width=\columnwidth}
208+
209+.. tabularcolumns:: |p{4.5cm}|p{4.5cm}|p{4.5cm}|p{4.5cm}|p{4.5cm}|p{4.5cm}|p{4.5cm}|
210+
205211 .. _sample-pipeline-config:
206212
207213 .. flat-table:: Sample Pipeline Configuration
208214 :header-rows: 1
209215 :stub-columns: 0
210−
211−
212− - .. row 1
213−
214− -
215− - Sensor/0 format
216−
217− - Frontend/0 format
218−
219− - Frontend/1 format
220−
221− - Scaler/0 format
222−
223− - Scaler/0 compose selection rectangle
224−
225− - Scaler/1 format
226−
227− - .. row 2
228−
229− - Initial state
230−
231− - 2048x1536/SGRBG8_1X8
232−
233− - (default)
234−
235− - (default)
236−
237− - (default)
238−
239− - (default)
240−
241− - (default)
242−
243− - .. row 3
244−
245− - Configure frontend sink format
246−
247− - 2048x1536/SGRBG8_1X8
248−
249− - *2048x1536/SGRBG8_1X8*
250−
251− - *2046x1534/SGRBG8_1X8*
252−
253− - (default)
254−
255− - (default)
256−
257− - (default)
258−
259− - .. row 4
260−
261− - Configure scaler sink format
262−
263− - 2048x1536/SGRBG8_1X8
264−
265− - 2048x1536/SGRBG8_1X8
266−
267− - 2046x1534/SGRBG8_1X8
268−
269− - *2046x1534/SGRBG8_1X8*
270−
271− - *0,0/2046x1534*
272−
273− - *2046x1534/SGRBG8_1X8*
274−
275− - .. row 5
276−
277− - Configure scaler sink compose selection
278−
279− - 2048x1536/SGRBG8_1X8
280−
281− - 2048x1536/SGRBG8_1X8
282−
283− - 2046x1534/SGRBG8_1X8
284−
285− - 2046x1534/SGRBG8_1X8
286−
287− - *0,0/1280x960*
288−
289− - *1280x960/SGRBG8_1X8*
290−
291−
216+ :widths: 5 5 5 5 5 5 5
217+
218+ * -
219+ - Sensor/0 format
220+ - Frontend/0 format
221+ - Frontend/1 format
222+ - Scaler/0 format
223+ - Scaler/0 compose selection rectangle
224+ - Scaler/1 format
225+ * - Initial state
226+ - 2048x1536/SGRBG8_1X8
227+ - (default)
228+ - (default)
229+ - (default)
230+ - (default)
231+ - (default)
232+ * - Configure frontend sink format
233+ - 2048x1536/SGRBG8_1X8
234+ - *2048x1536/SGRBG8_1X8*
235+ - *2046x1534/SGRBG8_1X8*
236+ - (default)
237+ - (default)
238+ - (default)
239+ * - Configure scaler sink format
240+ - 2048x1536/SGRBG8_1X8
241+ - 2048x1536/SGRBG8_1X8
242+ - 2046x1534/SGRBG8_1X8
243+ - *2046x1534/SGRBG8_1X8*
244+ - *0,0/2046x1534*
245+ - *2046x1534/SGRBG8_1X8*
246+ * - Configure scaler sink compose selection
247+ - 2048x1536/SGRBG8_1X8
248+ - 2048x1536/SGRBG8_1X8
249+ - 2046x1534/SGRBG8_1X8
250+ - 2046x1534/SGRBG8_1X8
251+ - *0,0/1280x960*
252+ - *1280x960/SGRBG8_1X8*
253+
254+.. raw:: latex
255+
256+ \end{adjustbox}\newline\newline
292257
293258 1. Initial state. The sensor source pad format is set to its native 3MP
294259 size and V4L2_MBUS_FMT_SGRBG8_1X8 media bus code. Formats on the
@@ -332,7 +297,7 @@ It can also be used as part of digital zoom implementations to select · 37 unmodified lines
332297 the area of the image that will be scaled up.
333298
334299 Crop settings are defined by a crop rectangle and represented in a
335−struct :ref:`v4l2_rect <v4l2-rect>` by the coordinates of the top
300+struct :c:type:`v4l2_rect` by the coordinates of the top
336301 left corner and the rectangle size. Both the coordinates and sizes are
337302 expressed in pixels.
338303
@@ -348,7 +313,7 @@ sub-device for processing. · 9 unmodified lines
348313 The scaling operation changes the size of the image by scaling it to new
349314 dimensions. The scaling ratio isn't specified explicitly, but is implied
350315 from the original and scaled image sizes. Both sizes are represented by
351−struct :ref:`v4l2_rect <v4l2-rect>`.
316+struct :c:type:`v4l2_rect`.
352317
353318 Scaling support is optional. When supported by a subdev, the crop
354319 rectangle on the subdev's sink pad is scaled to the size configured
Documentation/media/uapi/v4l/dev-touch.rst+56−0
@@ -0,0 +1,56 @@
1+.. -*- coding: utf-8; mode: rst -*-
2+
3+.. _touch:
4+
5+*************
6+Touch Devices
7+*************
8+
9+Touch devices are accessed through character device special files named
10+``/dev/v4l-touch0`` to ``/dev/v4l-touch255`` with major number 81 and
11+dynamically allocated minor numbers 0 to 255.
12+
13+Overview
14+========
15+
16+Sensors may be Optical, or Projected Capacitive touch (PCT).
17+
18+Processing is required to analyse the raw data and produce input events. In
19+some systems, this may be performed on the ASIC and the raw data is purely a
20+side-channel for diagnostics or tuning. In other systems, the ASIC is a simple
21+analogue front end device which delivers touch data at high rate, and any touch
22+processing must be done on the host.
23+
24+For capacitive touch sensing, the touchscreen is composed of an array of
25+horizontal and vertical conductors (alternatively called rows/columns, X/Y
26+lines, or tx/rx). Mutual Capacitance measured is at the nodes where the
27+conductors cross. Alternatively, Self Capacitance measures the signal from each
28+column and row independently.
29+
30+A touch input may be determined by comparing the raw capacitance measurement to
31+a no-touch reference (or "baseline") measurement:
32+
33+Delta = Raw - Reference
34+
35+The reference measurement takes account of variations in the capacitance across
36+the touch sensor matrix, for example manufacturing irregularities,
37+environmental or edge effects.
38+
39+Querying Capabilities
40+=====================
41+
42+Devices supporting the touch interface set the ``V4L2_CAP_VIDEO_CAPTURE`` flag
43+and the ``V4L2_CAP_TOUCH`` flag in the ``capabilities`` field of
44+:c:type:`v4l2_capability` returned by the
45+:ref:`VIDIOC_QUERYCAP` ioctl.
46+
47+At least one of the read/write or streaming I/O methods must be
48+supported.
49+
50+The formats supported by touch devices are documented in
51+:ref:`Touch Formats <tch-formats>`.
52+
53+Data Format Negotiation
54+=======================
55+
56+A touch device may support any I/O method.
Documentation/media/uapi/v4l/devices.rst+1−0
@@ -22,5 +22,6 @@ Interfaces · 21 unmodified lines
2222 dev-radio
2323 dev-rds
2424 dev-sdr
25+ dev-touch
2526 dev-event
2627 dev-subdev
Documentation/media/uapi/v4l/diff-v4l.rst+246−514
@@ -39,39 +39,19 @@ using driver module options. The major device number remains 81. · 38 unmodified lines
3939 :header-rows: 1
4040 :stub-columns: 0
4141
42−
43− - .. row 1
44−
45− - Device Type
46−
47− - File Name
48−
49− - Minor Numbers
50−
51− - .. row 2
52−
53− - Video capture and overlay
54−
55− - ``/dev/video`` and ``/dev/bttv0``\ [#f1]_, ``/dev/video0`` to
56− ``/dev/video63``
57−
58− - 0-63
59−
60− - .. row 3
61−
62− - Radio receiver
63−
64− - ``/dev/radio``\ [#f2]_, ``/dev/radio0`` to ``/dev/radio63``
65−
66− - 64-127
67−
68− - .. row 4
69−
70− - Raw VBI capture
71−
72− - ``/dev/vbi``, ``/dev/vbi0`` to ``/dev/vbi31``
73−
74− - 224-255
42+ * - Device Type
43+ - File Name
44+ - Minor Numbers
45+ * - Video capture and overlay
46+ - ``/dev/video`` and ``/dev/bttv0``\ [#f1]_, ``/dev/video0`` to
47+ ``/dev/video63``
48+ - 0-63
49+ * - Radio receiver
50+ - ``/dev/radio``\ [#f2]_, ``/dev/radio0`` to ``/dev/radio63``
51+ - 64-127
52+ * - Raw VBI capture
53+ - ``/dev/vbi``, ``/dev/vbi0`` to ``/dev/vbi31``
54+ - 224-255
7555
7656
7757 V4L prohibits (or used to prohibit) multiple opens of a device file.
@@ -87,162 +67,89 @@ Querying Capabilities · 9 unmodified lines
8767 The V4L ``VIDIOCGCAP`` ioctl is equivalent to V4L2's
8868 :ref:`VIDIOC_QUERYCAP`.
8969
90−The ``name`` field in struct :c:type:`struct video_capability` became
91−``card`` in struct :ref:`v4l2_capability <v4l2-capability>`, ``type``
70+The ``name`` field in struct ``video_capability`` became
71+``card`` in struct :c:type:`v4l2_capability`, ``type``
9272 was replaced by ``capabilities``. Note V4L2 does not distinguish between
9373 device types like this, better think of basic video input, video output
9474 and radio devices supporting a set of related functions like video
9575 capturing, video overlay and VBI capturing. See :ref:`open` for an
9676 introduction.
9777
78+.. tabularcolumns:: |p{5.5cm}|p{6.5cm}|p{5.5cm}
9879
80+.. cssclass:: longtable
9981
10082 .. flat-table::
10183 :header-rows: 1
10284 :stub-columns: 0
10385
104−
105− - .. row 1
106−
107− - struct :c:type:`struct video_capability` ``type``
108−
109− - struct :ref:`v4l2_capability <v4l2-capability>`
110− ``capabilities`` flags
111−
112− - Purpose
113−
114− - .. row 2
115−
116− - ``VID_TYPE_CAPTURE``
117−
118− - ``V4L2_CAP_VIDEO_CAPTURE``
119−
120− - The :ref:`video capture <capture>` interface is supported.
121−
122− - .. row 3
123−
124− - ``VID_TYPE_TUNER``
125−
126− - ``V4L2_CAP_TUNER``
127−
128− - The device has a :ref:`tuner or modulator <tuner>`.
129−
130− - .. row 4
131−
132− - ``VID_TYPE_TELETEXT``
133−
134− - ``V4L2_CAP_VBI_CAPTURE``
135−
136− - The :ref:`raw VBI capture <raw-vbi>` interface is supported.
137−
138− - .. row 5
139−
140− - ``VID_TYPE_OVERLAY``
141−
142− - ``V4L2_CAP_VIDEO_OVERLAY``
143−
144− - The :ref:`video overlay <overlay>` interface is supported.
145−
146− - .. row 6
147−
148− - ``VID_TYPE_CHROMAKEY``
149−
150− - ``V4L2_FBUF_CAP_CHROMAKEY`` in field ``capability`` of struct
151− :ref:`v4l2_framebuffer <v4l2-framebuffer>`
152−
153− - Whether chromakey overlay is supported. For more information on
154− overlay see :ref:`overlay`.
155−
156− - .. row 7
157−
158− - ``VID_TYPE_CLIPPING``
159−
160− - ``V4L2_FBUF_CAP_LIST_CLIPPING`` and
161− ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` in field ``capability`` of
162− struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`
163−
164− - Whether clipping the overlaid image is supported, see
165− :ref:`overlay`.
166−
167− - .. row 8
168−
169− - ``VID_TYPE_FRAMERAM``
170−
171− - ``V4L2_FBUF_CAP_EXTERNOVERLAY`` *not set* in field ``capability``
172− of struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`
173−
174− - Whether overlay overwrites frame buffer memory, see
175− :ref:`overlay`.
176−
177− - .. row 9
178−
179− - ``VID_TYPE_SCALES``
180−
181− - ``-``
182−
183− - This flag indicates if the hardware can scale images. The V4L2 API
184− implies the scale factor by setting the cropping dimensions and
185− image size with the :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` and
186− :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, respectively. The
187− driver returns the closest sizes possible. For more information on
188− cropping and scaling see :ref:`crop`.
189−
190− - .. row 10
191−
192− - ``VID_TYPE_MONOCHROME``
193−
194− - ``-``
195−
196− - Applications can enumerate the supported image formats with the
197− :ref:`VIDIOC_ENUM_FMT` ioctl to determine if
198− the device supports grey scale capturing only. For more
199− information on image formats see :ref:`pixfmt`.
200−
201− - .. row 11
202−
203− - ``VID_TYPE_SUBCAPTURE``
204−
205− - ``-``
206−
207− - Applications can call the :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>`
208− ioctl to determine if the device supports capturing a subsection
209− of the full picture ("cropping" in V4L2). If not, the ioctl
210− returns the ``EINVAL`` error code. For more information on cropping
211− and scaling see :ref:`crop`.
212−
213− - .. row 12
214−
215− - ``VID_TYPE_MPEG_DECODER``
216−
217− - ``-``
218−
219− - Applications can enumerate the supported image formats with the
220− :ref:`VIDIOC_ENUM_FMT` ioctl to determine if
221− the device supports MPEG streams.
222−
223− - .. row 13
224−
225− - ``VID_TYPE_MPEG_ENCODER``
226−
227− - ``-``
228−
229− - See above.
230−
231− - .. row 14
232−
233− - ``VID_TYPE_MJPEG_DECODER``
234−
235− - ``-``
236−
237− - See above.
238−
239− - .. row 15
240−
241− - ``VID_TYPE_MJPEG_ENCODER``
242−
243− - ``-``
244−
245− - See above.
86+ * - ``struct video_capability`` ``type``
87+ - struct :c:type:`v4l2_capability`
88+ ``capabilities`` flags
89+ - Purpose
90+ * - ``VID_TYPE_CAPTURE``
91+ - ``V4L2_CAP_VIDEO_CAPTURE``
92+ - The :ref:`video capture <capture>` interface is supported.
93+ * - ``VID_TYPE_TUNER``
94+ - ``V4L2_CAP_TUNER``
95+ - The device has a :ref:`tuner or modulator <tuner>`.
96+ * - ``VID_TYPE_TELETEXT``
97+ - ``V4L2_CAP_VBI_CAPTURE``
98+ - The :ref:`raw VBI capture <raw-vbi>` interface is supported.
99+ * - ``VID_TYPE_OVERLAY``
100+ - ``V4L2_CAP_VIDEO_OVERLAY``
101+ - The :ref:`video overlay <overlay>` interface is supported.
102+ * - ``VID_TYPE_CHROMAKEY``
103+ - ``V4L2_FBUF_CAP_CHROMAKEY`` in field ``capability`` of struct
104+ :c:type:`v4l2_framebuffer`
105+ - Whether chromakey overlay is supported. For more information on
106+ overlay see :ref:`overlay`.
107+ * - ``VID_TYPE_CLIPPING``
108+ - ``V4L2_FBUF_CAP_LIST_CLIPPING`` and
109+ ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` in field ``capability`` of
110+ struct :c:type:`v4l2_framebuffer`
111+ - Whether clipping the overlaid image is supported, see
112+ :ref:`overlay`.
113+ * - ``VID_TYPE_FRAMERAM``
114+ - ``V4L2_FBUF_CAP_EXTERNOVERLAY`` *not set* in field ``capability``
115+ of struct :c:type:`v4l2_framebuffer`
116+ - Whether overlay overwrites frame buffer memory, see
117+ :ref:`overlay`.
118+ * - ``VID_TYPE_SCALES``
119+ - ``-``
120+ - This flag indicates if the hardware can scale images. The V4L2 API
121+ implies the scale factor by setting the cropping dimensions and
122+ image size with the :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` and
123+ :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, respectively. The
124+ driver returns the closest sizes possible. For more information on
125+ cropping and scaling see :ref:`crop`.
126+ * - ``VID_TYPE_MONOCHROME``
127+ - ``-``
128+ - Applications can enumerate the supported image formats with the
129+ :ref:`VIDIOC_ENUM_FMT` ioctl to determine if
130+ the device supports grey scale capturing only. For more
131+ information on image formats see :ref:`pixfmt`.
132+ * - ``VID_TYPE_SUBCAPTURE``
133+ - ``-``
134+ - Applications can call the :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>`
135+ ioctl to determine if the device supports capturing a subsection
136+ of the full picture ("cropping" in V4L2). If not, the ioctl
137+ returns the ``EINVAL`` error code. For more information on cropping
138+ and scaling see :ref:`crop`.
139+ * - ``VID_TYPE_MPEG_DECODER``
140+ - ``-``
141+ - Applications can enumerate the supported image formats with the
142+ :ref:`VIDIOC_ENUM_FMT` ioctl to determine if
143+ the device supports MPEG streams.
144+ * - ``VID_TYPE_MPEG_ENCODER``
145+ - ``-``
146+ - See above.
147+ * - ``VID_TYPE_MJPEG_DECODER``
148+ - ``-``
149+ - See above.
150+ * - ``VID_TYPE_MJPEG_ENCODER``
151+ - ``-``
152+ - See above.
246153
247154
248155 The ``audios`` field was replaced by ``capabilities`` flag
@@ -262,12 +169,12 @@ Video Sources · 13 unmodified lines
262169 =============
263170
264171 V4L provides the ``VIDIOCGCHAN`` and ``VIDIOCSCHAN`` ioctl using struct
265−:c:type:`struct video_channel` to enumerate the video inputs of a V4L
172+``video_channel`` to enumerate the video inputs of a V4L
266173 device. The equivalent V4L2 ioctls are
267174 :ref:`VIDIOC_ENUMINPUT`,
268175 :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and
269176 :ref:`VIDIOC_S_INPUT <VIDIOC_G_INPUT>` using struct
270−:ref:`v4l2_input <v4l2-input>` as discussed in :ref:`video`.
177+:c:type:`v4l2_input` as discussed in :ref:`video`.
271178
272179 The ``channel`` field counting inputs was renamed to ``index``, the
273180 video input types were renamed as follows:
@@ -278,24 +185,12 @@ video input types were renamed as follows: · 4 unmodified lines
278185 :header-rows: 1
279186 :stub-columns: 0
280187
281−
282− - .. row 1
283−
284− - struct :c:type:`struct video_channel` ``type``
285−
286− - struct :ref:`v4l2_input <v4l2-input>` ``type``
287−
288− - .. row 2
289−
290− - ``VIDEO_TYPE_TV``
291−
292− - ``V4L2_INPUT_TYPE_TUNER``
293−
294− - .. row 3
295−
296− - ``VIDEO_TYPE_CAMERA``
297−
298− - ``V4L2_INPUT_TYPE_CAMERA``
188+ * - struct ``video_channel`` ``type``
189+ - struct :c:type:`v4l2_input` ``type``
190+ * - ``VIDEO_TYPE_TV``
191+ - ``V4L2_INPUT_TYPE_TUNER``
192+ * - ``VIDEO_TYPE_CAMERA``
193+ - ``V4L2_INPUT_TYPE_CAMERA``
299194
300195
301196 Unlike the ``tuners`` field expressing the number of tuners of this
@@ -303,7 +198,7 @@ input, V4L2 assumes each video input is connected to at most one tuner. · 1 unmodified line
303198 However a tuner can have more than one input, i. e. RF connectors, and a
304199 device can have multiple tuners. The index number of the tuner
305200 associated with the input, if any, is stored in field ``tuner`` of
306−struct :ref:`v4l2_input <v4l2-input>`. Enumeration of tuners is
201+struct :c:type:`v4l2_input`. Enumeration of tuners is
307202 discussed in :ref:`tuner`.
308203
309204 The redundant ``VIDEO_VC_TUNER`` flag was dropped. Video inputs
@@ -326,11 +221,11 @@ Tuning · 16 unmodified lines
326221 ======
327222
328223 The V4L ``VIDIOCGTUNER`` and ``VIDIOCSTUNER`` ioctl and struct
329−:c:type:`struct video_tuner` can be used to enumerate the tuners of a
224+``video_tuner`` can be used to enumerate the tuners of a
330225 V4L TV or radio device. The equivalent V4L2 ioctls are
331226 :ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` and
332227 :ref:`VIDIOC_S_TUNER <VIDIOC_G_TUNER>` using struct
333−:ref:`v4l2_tuner <v4l2-tuner>`. Tuners are covered in :ref:`tuner`.
228+:c:type:`v4l2_tuner`. Tuners are covered in :ref:`tuner`.
334229
335230 The ``tuner`` field counting tuners was renamed to ``index``. The fields
336231 ``name``, ``rangelow`` and ``rangehigh`` remained unchanged.
@@ -338,7 +233,7 @@ The ``tuner`` field counting tuners was renamed to ``index``. The fields · 1 unmodified line
338233 The ``VIDEO_TUNER_PAL``, ``VIDEO_TUNER_NTSC`` and ``VIDEO_TUNER_SECAM``
339234 flags indicating the supported video standards were dropped. This
340235 information is now contained in the associated struct
341−:ref:`v4l2_input <v4l2-input>`. No replacement exists for the
236+:c:type:`v4l2_input`. No replacement exists for the
342237 ``VIDEO_TUNER_NORM`` flag indicating whether the video standard can be
343238 switched. The ``mode`` field to select a different video standard was
344239 replaced by a whole new set of ioctls and structures described in
@@ -351,18 +246,18 @@ Japan with numbers 3-6 (sic). · 6 unmodified lines
351246 The ``VIDEO_TUNER_STEREO_ON`` flag indicating stereo reception became
352247 ``V4L2_TUNER_SUB_STEREO`` in field ``rxsubchans``. This field also
353248 permits the detection of monaural and bilingual audio, see the
354−definition of struct :ref:`v4l2_tuner <v4l2-tuner>` for details.
249+definition of struct :c:type:`v4l2_tuner` for details.
355250 Presently no replacement exists for the ``VIDEO_TUNER_RDS_ON`` and
356251 ``VIDEO_TUNER_MBS_ON`` flags.
357252
358253 The ``VIDEO_TUNER_LOW`` flag was renamed to ``V4L2_TUNER_CAP_LOW`` in
359−the struct :ref:`v4l2_tuner <v4l2-tuner>` ``capability`` field.
254+the struct :c:type:`v4l2_tuner` ``capability`` field.
360255
361256 The ``VIDIOCGFREQ`` and ``VIDIOCSFREQ`` ioctl to change the tuner
362257 frequency where renamed to
363258 :ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUENCY>` and
364259 :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>`. They take a pointer
365−to a struct :ref:`v4l2_frequency <v4l2-frequency>` instead of an
260+to a struct :c:type:`v4l2_frequency` instead of an
366261 unsigned long integer.
367262
368263
@@ -372,7 +267,7 @@ Image Properties · 3 unmodified lines
372267 ================
373268
374269 V4L2 has no equivalent of the ``VIDIOCGPICT`` and ``VIDIOCSPICT`` ioctl
375−and struct :c:type:`struct video_picture`. The following fields where
270+and struct ``video_picture``. The following fields where
376271 replaced by V4L2 controls accessible with the
377272 :ref:`VIDIOC_QUERYCTRL`,
378273 :ref:`VIDIOC_G_CTRL <VIDIOC_G_CTRL>` and
@@ -384,42 +279,18 @@ replaced by V4L2 controls accessible with the · 5 unmodified lines
384279 :header-rows: 1
385280 :stub-columns: 0
386281
387−
388− - .. row 1
389−
390− - struct :c:type:`struct video_picture`
391−
392− - V4L2 Control ID
393−
394− - .. row 2
395−
396− - ``brightness``
397−
398− - ``V4L2_CID_BRIGHTNESS``
399−
400− - .. row 3
401−
402− - ``hue``
403−
404− - ``V4L2_CID_HUE``
405−
406− - .. row 4
407−
408− - ``colour``
409−
410− - ``V4L2_CID_SATURATION``
411−
412− - .. row 5
413−
414− - ``contrast``
415−
416− - ``V4L2_CID_CONTRAST``
417−
418− - .. row 6
419−
420− - ``whiteness``
421−
422− - ``V4L2_CID_WHITENESS``
282+ * - struct ``video_picture``
283+ - V4L2 Control ID
284+ * - ``brightness``
285+ - ``V4L2_CID_BRIGHTNESS``
286+ * - ``hue``
287+ - ``V4L2_CID_HUE``
288+ * - ``colour``
289+ - ``V4L2_CID_SATURATION``
290+ * - ``contrast``
291+ - ``V4L2_CID_CONTRAST``
292+ * - ``whiteness``
293+ - ``V4L2_CID_WHITENESS``
423294
424295
425296 The V4L picture controls are assumed to range from 0 to 65535 with no
@@ -432,7 +303,7 @@ The ``depth`` (average number of bits per pixel) of a video image is · 6 unmodified lines
432303 implied by the selected image format. V4L2 does not explicitly provide
433304 such information assuming applications recognizing the format are aware
434305 of the image depth and others need not know. The ``palette`` field moved
435−into the struct :ref:`v4l2_pix_format <v4l2-pix-format>`:
306+into the struct :c:type:`v4l2_pix_format`:
436307
437308
438309
@@ -440,108 +311,40 @@ into the struct :ref:`v4l2_pix_format <v4l2-pix-format>`: · 1 unmodified line
440311 :header-rows: 1
441312 :stub-columns: 0
442313
443−
444− - .. row 1
445−
446− - struct :c:type:`struct video_picture` ``palette``
447−
448− - struct :ref:`v4l2_pix_format <v4l2-pix-format>` ``pixfmt``
449−
450− - .. row 2
451−
452− - ``VIDEO_PALETTE_GREY``
453−
454− - :ref:`V4L2_PIX_FMT_GREY <V4L2-PIX-FMT-GREY>`
455−
456− - .. row 3
457−
458− - ``VIDEO_PALETTE_HI240``
459−
460− - :ref:`V4L2_PIX_FMT_HI240 <pixfmt-reserved>` [#f3]_
461−
462− - .. row 4
463−
464− - ``VIDEO_PALETTE_RGB565``
465−
466− - :ref:`V4L2_PIX_FMT_RGB565 <pixfmt-rgb>`
467−
468− - .. row 5
469−
470− - ``VIDEO_PALETTE_RGB555``
471−
472− - :ref:`V4L2_PIX_FMT_RGB555 <pixfmt-rgb>`
473−
474− - .. row 6
475−
476− - ``VIDEO_PALETTE_RGB24``
477−
478− - :ref:`V4L2_PIX_FMT_BGR24 <pixfmt-rgb>`
479−
480− - .. row 7
481−
482− - ``VIDEO_PALETTE_RGB32``
483−
484− - :ref:`V4L2_PIX_FMT_BGR32 <pixfmt-rgb>` [#f4]_
485−
486− - .. row 8
487−
488− - ``VIDEO_PALETTE_YUV422``
489−
490− - :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>`
491−
492− - .. row 9
493−
494− - ``VIDEO_PALETTE_YUYV``\ [#f5]_
495−
496− - :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>`
497−
498− - .. row 10
499−
500− - ``VIDEO_PALETTE_UYVY``
501−
502− - :ref:`V4L2_PIX_FMT_UYVY <V4L2-PIX-FMT-UYVY>`
503−
504− - .. row 11
505−
506− - ``VIDEO_PALETTE_YUV420``
507−
508− - None
509−
510− - .. row 12
511−
512− - ``VIDEO_PALETTE_YUV411``
513−
514− - :ref:`V4L2_PIX_FMT_Y41P <V4L2-PIX-FMT-Y41P>` [#f6]_
515−
516− - .. row 13
517−
518− - ``VIDEO_PALETTE_RAW``
519−
520− - None [#f7]_
521−
522− - .. row 14
523−
524− - ``VIDEO_PALETTE_YUV422P``
525−
526− - :ref:`V4L2_PIX_FMT_YUV422P <V4L2-PIX-FMT-YUV422P>`
527−
528− - .. row 15
529−
530− - ``VIDEO_PALETTE_YUV411P``
531−
532− - :ref:`V4L2_PIX_FMT_YUV411P <V4L2-PIX-FMT-YUV411P>` [#f8]_
533−
534− - .. row 16
535−
536− - ``VIDEO_PALETTE_YUV420P``
537−
538− - :ref:`V4L2_PIX_FMT_YVU420 <V4L2-PIX-FMT-YVU420>`
539−
540− - .. row 17
541−
542− - ``VIDEO_PALETTE_YUV410P``
543−
544− - :ref:`V4L2_PIX_FMT_YVU410 <V4L2-PIX-FMT-YVU410>`
314+ * - struct ``video_picture`` ``palette``
315+ - struct :c:type:`v4l2_pix_format` ``pixfmt``
316+ * - ``VIDEO_PALETTE_GREY``
317+ - :ref:`V4L2_PIX_FMT_GREY <V4L2-PIX-FMT-GREY>`
318+ * - ``VIDEO_PALETTE_HI240``
319+ - :ref:`V4L2_PIX_FMT_HI240 <pixfmt-reserved>` [#f3]_
320+ * - ``VIDEO_PALETTE_RGB565``
321+ - :ref:`V4L2_PIX_FMT_RGB565 <pixfmt-rgb>`
322+ * - ``VIDEO_PALETTE_RGB555``
323+ - :ref:`V4L2_PIX_FMT_RGB555 <pixfmt-rgb>`
324+ * - ``VIDEO_PALETTE_RGB24``
325+ - :ref:`V4L2_PIX_FMT_BGR24 <pixfmt-rgb>`
326+ * - ``VIDEO_PALETTE_RGB32``
327+ - :ref:`V4L2_PIX_FMT_BGR32 <pixfmt-rgb>` [#f4]_
328+ * - ``VIDEO_PALETTE_YUV422``
329+ - :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>`
330+ * - ``VIDEO_PALETTE_YUYV``\ [#f5]_
331+ - :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>`
332+ * - ``VIDEO_PALETTE_UYVY``
333+ - :ref:`V4L2_PIX_FMT_UYVY <V4L2-PIX-FMT-UYVY>`
334+ * - ``VIDEO_PALETTE_YUV420``
335+ - None
336+ * - ``VIDEO_PALETTE_YUV411``
337+ - :ref:`V4L2_PIX_FMT_Y41P <V4L2-PIX-FMT-Y41P>` [#f6]_
338+ * - ``VIDEO_PALETTE_RAW``
339+ - None [#f7]_
340+ * - ``VIDEO_PALETTE_YUV422P``
341+ - :ref:`V4L2_PIX_FMT_YUV422P <V4L2-PIX-FMT-YUV422P>`
342+ * - ``VIDEO_PALETTE_YUV411P``
343+ - :ref:`V4L2_PIX_FMT_YUV411P <V4L2-PIX-FMT-YUV411P>` [#f8]_
344+ * - ``VIDEO_PALETTE_YUV420P``
345+ - :ref:`V4L2_PIX_FMT_YVU420 <V4L2-PIX-FMT-YVU420>`
346+ * - ``VIDEO_PALETTE_YUV410P``
347+ - :ref:`V4L2_PIX_FMT_YVU410 <V4L2-PIX-FMT-YVU410>`
545348
546349
547350 V4L2 image formats are defined in :ref:`pixfmt`. The image format can
@@ -552,11 +355,11 @@ Audio · 4 unmodified lines
552355 =====
553356
554357 The ``VIDIOCGAUDIO`` and ``VIDIOCSAUDIO`` ioctl and struct
555−:c:type:`struct video_audio` are used to enumerate the audio inputs
358+``video_audio`` are used to enumerate the audio inputs
556359 of a V4L device. The equivalent V4L2 ioctls are
557360 :ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` and
558361 :ref:`VIDIOC_S_AUDIO <VIDIOC_G_AUDIO>` using struct
559−:ref:`v4l2_audio <v4l2-audio>` as discussed in :ref:`audio`.
362+:c:type:`v4l2_audio` as discussed in :ref:`audio`.
560363
561364 The ``audio`` "channel number" field counting audio inputs was renamed
562365 to ``index``.
@@ -569,10 +372,10 @@ standard is BTSC ``VIDEO_SOUND_LANG2`` refers to SAP and · 6 unmodified lines
569372 specification, there is no way to query the selected mode. On
570373 ``VIDIOCGAUDIO`` the driver returns the *actually received* audio
571374 programmes in this field. In the V4L2 API this information is stored in
572−the struct :ref:`v4l2_tuner <v4l2-tuner>` ``rxsubchans`` and
375+the struct :c:type:`v4l2_tuner` ``rxsubchans`` and
573376 ``audmode`` fields, respectively. See :ref:`tuner` for more
574377 information on tuners. Related to audio modes struct
575−:ref:`v4l2_audio <v4l2-audio>` also reports if this is a mono or
378+:c:type:`v4l2_audio` also reports if this is a mono or
576379 stereo input, regardless if the source is a tuner.
577380
578381 The following fields where replaced by V4L2 controls accessible with the
@@ -586,36 +389,16 @@ The following fields where replaced by V4L2 controls accessible with the · 7 unmodified lines
586389 :header-rows: 1
587390 :stub-columns: 0
588391
589−
590− - .. row 1
591−
592− - struct :c:type:`struct video_audio`
593−
594− - V4L2 Control ID
595−
596− - .. row 2
597−
598− - ``volume``
599−
600− - ``V4L2_CID_AUDIO_VOLUME``
601−
602− - .. row 3
603−
604− - ``bass``
605−
606− - ``V4L2_CID_AUDIO_BASS``
607−
608− - .. row 4
609−
610− - ``treble``
611−
612− - ``V4L2_CID_AUDIO_TREBLE``
613−
614− - .. row 5
615−
616− - ``balance``
617−
618− - ``V4L2_CID_AUDIO_BALANCE``
392+ * - struct ``video_audio``
393+ - V4L2 Control ID
394+ * - ``volume``
395+ - ``V4L2_CID_AUDIO_VOLUME``
396+ * - ``bass``
397+ - ``V4L2_CID_AUDIO_BASS``
398+ * - ``treble``
399+ - ``V4L2_CID_AUDIO_TREBLE``
400+ * - ``balance``
401+ - ``V4L2_CID_AUDIO_BALANCE``
619402
620403
621404 To determine which of these controls are supported by a driver V4L
@@ -627,7 +410,7 @@ and ``VIDEO_AUDIO_MUTE`` flags where replaced by the boolean · 5 unmodified lines
627410 ``V4L2_CID_AUDIO_MUTE`` control.
628411
629412 All V4L2 controls have a ``step`` attribute replacing the struct
630−:c:type:`struct video_audio` ``step`` field. The V4L audio controls
413+``video_audio`` ``step`` field. The V4L audio controls
631414 are assumed to range from 0 to 65535 with no particular reset value. The
632415 V4L2 API permits arbitrary limits and defaults which can be queried with
633416 the :ref:`VIDIOC_QUERYCTRL` ioctl. For general
@@ -640,11 +423,11 @@ Frame Buffer Overlay · 6 unmodified lines
640423 The V4L2 ioctls equivalent to ``VIDIOCGFBUF`` and ``VIDIOCSFBUF`` are
641424 :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` and
642425 :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>`. The ``base`` field of struct
643−:c:type:`struct video_buffer` remained unchanged, except V4L2 defines
426+``video_buffer`` remained unchanged, except V4L2 defines
644427 a flag to indicate non-destructive overlays instead of a ``NULL``
645428 pointer. All other fields moved into the struct
646−:ref:`v4l2_pix_format <v4l2-pix-format>` ``fmt`` substructure of
647−struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`. The ``depth``
429+:c:type:`v4l2_pix_format` ``fmt`` substructure of
430+struct :c:type:`v4l2_framebuffer`. The ``depth``
648431 field was replaced by ``pixelformat``. See :ref:`pixfmt-rgb` for a
649432 list of RGB formats and their respective color depths.
650433
@@ -652,28 +435,28 @@ Instead of the special ioctls ``VIDIOCGWIN`` and ``VIDIOCSWIN`` V4L2 · 1 unmodified line
652435 uses the general-purpose data format negotiation ioctls
653436 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and
654437 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`. They take a pointer to a struct
655−:ref:`v4l2_format <v4l2-format>` as argument. Here the ``win`` member
438+:c:type:`v4l2_format` as argument. Here the ``win`` member
656439 of the ``fmt`` union is used, a struct
657−:ref:`v4l2_window <v4l2-window>`.
440+:c:type:`v4l2_window`.
658441
659442 The ``x``, ``y``, ``width`` and ``height`` fields of struct
660−:c:type:`struct video_window` moved into struct
661−:ref:`v4l2_rect <v4l2-rect>` substructure ``w`` of struct
662−:c:type:`struct v4l2_window`. The ``chromakey``, ``clips``, and
443+``video_window`` moved into struct
444+:c:type:`v4l2_rect` substructure ``w`` of struct
445+:c:type:`v4l2_window`. The ``chromakey``, ``clips``, and
663446 ``clipcount`` fields remained unchanged. Struct
664−:c:type:`struct video_clip` was renamed to struct
665−:ref:`v4l2_clip <v4l2-clip>`, also containing a struct
666−:c:type:`struct v4l2_rect`, but the semantics are still the same.
447+``video_clip`` was renamed to struct
448+:c:type:`v4l2_clip`, also containing a struct
449+:c:type:`v4l2_rect`, but the semantics are still the same.
667450
668451 The ``VIDEO_WINDOW_INTERLACE`` flag was dropped. Instead applications
669452 must set the ``field`` field to ``V4L2_FIELD_ANY`` or
670453 ``V4L2_FIELD_INTERLACED``. The ``VIDEO_WINDOW_CHROMAKEY`` flag moved
671−into struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`, under the new
454+into struct :c:type:`v4l2_framebuffer`, under the new
672455 name ``V4L2_FBUF_FLAG_CHROMAKEY``.
673456
674457 In V4L, storing a bitmap pointer in ``clips`` and setting ``clipcount``
675458 to ``VIDEO_CLIP_BITMAP`` (-1) requests bitmap clipping, using a fixed
676−size bitmap of 1024 × 625 bits. Struct :c:type:`struct v4l2_window`
459+size bitmap of 1024 × 625 bits. Struct :c:type:`v4l2_window`
677460 has a separate ``bitmap`` pointer field for this purpose and the bitmap
678461 size is determined by ``w.width`` and ``w.height``.
679462
@@ -686,24 +469,24 @@ Cropping · 6 unmodified lines
686469
687470 To capture only a subsection of the full picture V4L defines the
688471 ``VIDIOCGCAPTURE`` and ``VIDIOCSCAPTURE`` ioctls using struct
689−:c:type:`struct video_capture`. The equivalent V4L2 ioctls are
472+``video_capture``. The equivalent V4L2 ioctls are
690473 :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and
691474 :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` using struct
692−:ref:`v4l2_crop <v4l2-crop>`, and the related
475+:c:type:`v4l2_crop`, and the related
693476 :ref:`VIDIOC_CROPCAP` ioctl. This is a rather
694477 complex matter, see :ref:`crop` for details.
695478
696479 The ``x``, ``y``, ``width`` and ``height`` fields moved into struct
697−:ref:`v4l2_rect <v4l2-rect>` substructure ``c`` of struct
698−:c:type:`struct v4l2_crop`. The ``decimation`` field was dropped. In
480+:c:type:`v4l2_rect` substructure ``c`` of struct
481+:c:type:`v4l2_crop`. The ``decimation`` field was dropped. In
699482 the V4L2 API the scaling factor is implied by the size of the cropping
700483 rectangle and the size of the captured or overlaid image.
701484
702485 The ``VIDEO_CAPTURE_ODD`` and ``VIDEO_CAPTURE_EVEN`` flags to capture
703486 only the odd or even field, respectively, were replaced by
704487 ``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM`` in the field named
705−``field`` of struct :ref:`v4l2_pix_format <v4l2-pix-format>` and
706−struct :ref:`v4l2_window <v4l2-window>`. These structures are used to
488+``field`` of struct :c:type:`v4l2_pix_format` and
489+struct :c:type:`v4l2_window`. These structures are used to
707490 select a capture or overlay format with the
708491 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.
709492
@@ -728,8 +511,8 @@ To select an image format and size, V4L provides the ``VIDIOCSPICT`` and · 18 unmodified lines
728511 ``VIDIOCSWIN`` ioctls. V4L2 uses the general-purpose data format
729512 negotiation ioctls :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and
730513 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`. They take a pointer to a struct
731−:ref:`v4l2_format <v4l2-format>` as argument, here the struct
732−:ref:`v4l2_pix_format <v4l2-pix-format>` named ``pix`` of its
514+:c:type:`v4l2_format` as argument, here the struct
515+:c:type:`v4l2_pix_format` named ``pix`` of its
733516 ``fmt`` union is used.
734517
735518 For more information about the V4L2 read interface see :ref:`rw`.
@@ -750,68 +533,49 @@ differences. · 14 unmodified lines
750533 :header-rows: 1
751534 :stub-columns: 0
752535
753−
754− - .. row 1
755−
756− - V4L
757−
758− - V4L2
759−
760− - .. row 2
761−
762− -
763− - The image format must be selected before buffers are allocated,
764− with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. When no
765− format is selected the driver may use the last, possibly by
766− another application requested format.
767−
768− - .. row 3
769−
770− - Applications cannot change the number of buffers. The it is built
771− into the driver, unless it has a module option to change the
772− number when the driver module is loaded.
773−
774− - The :ref:`VIDIOC_REQBUFS` ioctl allocates the
775− desired number of buffers, this is a required step in the
776− initialization sequence.
777−
778− - .. row 4
779−
780− - Drivers map all buffers as one contiguous range of memory. The
781− ``VIDIOCGMBUF`` ioctl is available to query the number of buffers,
782− the offset of each buffer from the start of the virtual file, and
783− the overall amount of memory used, which can be used as arguments
784− for the :ref:`mmap() <func-mmap>` function.
785−
786− - Buffers are individually mapped. The offset and size of each
787− buffer can be determined with the
788− :ref:`VIDIOC_QUERYBUF` ioctl.
789−
790− - .. row 5
791−
792− - The ``VIDIOCMCAPTURE`` ioctl prepares a buffer for capturing. It
793− also determines the image format for this buffer. The ioctl
794− returns immediately, eventually with an ``EAGAIN`` error code if no
795− video signal had been detected. When the driver supports more than
796− one buffer applications can call the ioctl multiple times and thus
797− have multiple outstanding capture requests.
798−
799− The ``VIDIOCSYNC`` ioctl suspends execution until a particular
800− buffer has been filled.
801−
802− - Drivers maintain an incoming and outgoing queue.
803− :ref:`VIDIOC_QBUF` enqueues any empty buffer into
804− the incoming queue. Filled buffers are dequeued from the outgoing
805− queue with the :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. To wait
806− until filled buffers become available this function,
807− :ref:`select() <func-select>` or :ref:`poll() <func-poll>` can
808− be used. The :ref:`VIDIOC_STREAMON` ioctl
809− must be called once after enqueuing one or more buffers to start
810− capturing. Its counterpart
811− :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` stops capturing and
812− dequeues all buffers from both queues. Applications can query the
813− signal status, if known, with the
814− :ref:`VIDIOC_ENUMINPUT` ioctl.
536+ * - V4L
537+ - V4L2
538+ * -
539+ - The image format must be selected before buffers are allocated,
540+ with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. When no
541+ format is selected the driver may use the last, possibly by
542+ another application requested format.
543+ * - Applications cannot change the number of buffers. The it is built
544+ into the driver, unless it has a module option to change the
545+ number when the driver module is loaded.
546+ - The :ref:`VIDIOC_REQBUFS` ioctl allocates the
547+ desired number of buffers, this is a required step in the
548+ initialization sequence.
549+ * - Drivers map all buffers as one contiguous range of memory. The
550+ ``VIDIOCGMBUF`` ioctl is available to query the number of buffers,
551+ the offset of each buffer from the start of the virtual file, and
552+ the overall amount of memory used, which can be used as arguments
553+ for the :ref:`mmap() <func-mmap>` function.
554+ - Buffers are individually mapped. The offset and size of each
555+ buffer can be determined with the
556+ :ref:`VIDIOC_QUERYBUF` ioctl.
557+ * - The ``VIDIOCMCAPTURE`` ioctl prepares a buffer for capturing. It
558+ also determines the image format for this buffer. The ioctl
559+ returns immediately, eventually with an ``EAGAIN`` error code if no
560+ video signal had been detected. When the driver supports more than
561+ one buffer applications can call the ioctl multiple times and thus
562+ have multiple outstanding capture requests.
563+
564+ The ``VIDIOCSYNC`` ioctl suspends execution until a particular
565+ buffer has been filled.
566+ - Drivers maintain an incoming and outgoing queue.
567+ :ref:`VIDIOC_QBUF` enqueues any empty buffer into
568+ the incoming queue. Filled buffers are dequeued from the outgoing
569+ queue with the :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. To wait
570+ until filled buffers become available this function,
571+ :ref:`select() <func-select>` or :ref:`poll() <func-poll>` can
572+ be used. The :ref:`VIDIOC_STREAMON` ioctl
573+ must be called once after enqueuing one or more buffers to start
574+ capturing. Its counterpart
575+ :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` stops capturing and
576+ dequeues all buffers from both queues. Applications can query the
577+ signal status, if known, with the
578+ :ref:`VIDIOC_ENUMINPUT` ioctl.
815579
816580
817581 For a more in-depth discussion of memory mapping and examples, see
@@ -833,68 +597,36 @@ with the following parameters: · 15 unmodified lines
833597 :header-rows: 1
834598 :stub-columns: 0
835599
836−
837− - .. row 1
838−
839− - struct :ref:`v4l2_vbi_format <v4l2-vbi-format>`
840−
841− - V4L, BTTV driver
842−
843− - .. row 2
844−
845− - sampling_rate
846−
847− - 28636363 Hz NTSC (or any other 525-line standard); 35468950 Hz PAL
848− and SECAM (625-line standards)
849−
850− - .. row 3
851−
852− - offset
853−
854− - ?
855−
856− - .. row 4
857−
858− - samples_per_line
859−
860− - 2048
861−
862− - .. row 5
863−
864− - sample_format
865−
866− - V4L2_PIX_FMT_GREY. The last four bytes (a machine endianness
867− integer) contain a frame counter.
868−
869− - .. row 6
870−
871− - start[]
872−
873− - 10, 273 NTSC; 22, 335 PAL and SECAM
874−
875− - .. row 7
876−
877− - count[]
878−
879− - 16, 16 [#f9]_
880−
881− - .. row 8
882−
883− - flags
884−
885− - 0
600+ * - struct :c:type:`v4l2_vbi_format`
601+ - V4L, BTTV driver
602+ * - sampling_rate
603+ - 28636363 Hz NTSC (or any other 525-line standard); 35468950 Hz PAL
604+ and SECAM (625-line standards)
605+ * - offset
606+ - ?
607+ * - samples_per_line
608+ - 2048
609+ * - sample_format
610+ - V4L2_PIX_FMT_GREY. The last four bytes (a machine endianness
611+ integer) contain a frame counter.
612+ * - start[]
613+ - 10, 273 NTSC; 22, 335 PAL and SECAM
614+ * - count[]
615+ - 16, 16 [#f9]_
616+ * - flags
617+ - 0
886618
887619
888620 Undocumented in the V4L specification, in Linux 2.3 the
889621 ``VIDIOCGVBIFMT`` and ``VIDIOCSVBIFMT`` ioctls using struct
890−:c:type:`struct vbi_format` were added to determine the VBI image
622+``vbi_format`` were added to determine the VBI image
891623 parameters. These ioctls are only partially compatible with the V4L2 VBI
892624 interface specified in :ref:`raw-vbi`.
893625
894626 An ``offset`` field does not exist, ``sample_format`` is supposed to be
895627 ``VIDEO_PALETTE_RAW``, equivalent to ``V4L2_PIX_FMT_GREY``. The
896628 remaining fields are probably equivalent to struct
897−:ref:`v4l2_vbi_format <v4l2-vbi-format>`.
629+:c:type:`v4l2_vbi_format`.
898630
899631 Apparently only the Zoran (ZR 36120) driver implements these ioctls. The
900632 semantics differ from those specified for V4L2 in two ways. The
Documentation/media/uapi/v4l/dmabuf.rst+4−4
@@ -19,7 +19,7 @@ exporting V4L2 buffers as DMABUF file descriptors. · 18 unmodified lines
1919
2020 Input and output devices support the streaming I/O method when the
2121 ``V4L2_CAP_STREAMING`` flag in the ``capabilities`` field of struct
22−:ref:`v4l2_capability <v4l2-capability>` returned by the
22+:c:type:`v4l2_capability` returned by the
2323 :ref:`VIDIOC_QUERYCAP <VIDIOC_QUERYCAP>` ioctl is set. Whether
2424 importing DMA buffers through DMABUF file descriptors is supported is
2525 determined by calling the :ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>`
@@ -31,8 +31,8 @@ DRM). Buffers (planes) are allocated by a driver on behalf of an · 5 unmodified lines
3131 application. Next, these buffers are exported to the application as file
3232 descriptors using an API which is specific for an allocator driver. Only
3333 such file descriptor are exchanged. The descriptors and meta-information
34−are passed in struct :ref:`v4l2_buffer <v4l2-buffer>` (or in struct
35−:ref:`v4l2_plane <v4l2-plane>` in the multi-planar API case). The
34+are passed in struct :c:type:`v4l2_buffer` (or in struct
35+:c:type:`v4l2_plane` in the multi-planar API case). The
3636 driver must be switched into DMABUF I/O mode by calling the
3737 :ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>` with the desired buffer type.
3838
@@ -151,7 +151,7 @@ To start and stop capturing or displaying applications call the · 112 unmodified lines
151151 both queues and unlocks all buffers as a side effect. Since there is no
152152 notion of doing anything "now" on a multitasking system, if an
153153 application needs to synchronize with another event it should examine
154− the struct :ref:`v4l2_buffer <v4l2-buffer>` ``timestamp`` of captured or
154+ the struct :c:type:`v4l2_buffer` ``timestamp`` of captured or
155155 outputted buffers.
156156
157157 Drivers implementing DMABUF importing I/O must support the
Documentation/media/uapi/v4l/extended-controls.rst+1110−2221
@@ -49,7 +49,7 @@ control). This is needed since it is often required to atomically change · 48 unmodified lines
4949 several controls at once.
5050
5151 Each of the new ioctls expects a pointer to a struct
52−:ref:`v4l2_ext_controls <v4l2-ext-controls>`. This structure
52+:c:type:`v4l2_ext_controls`. This structure
5353 contains a pointer to the control array, a count of the number of
5454 controls in that array and a control class. Control classes are used to
5555 group similar controls into a single class. For example, control class
@@ -65,12 +65,12 @@ It is also possible to use an empty control array (``count`` == 0) to check · 9 unmodified lines
6565 whether the specified control class is supported.
6666
6767 The control array is a struct
68−:ref:`v4l2_ext_control <v4l2-ext-control>` array. The
69−:ref:`struct v4l2_ext_control <v4l2-ext-control>` structure is very similar to
70−struct :ref:`v4l2_control <v4l2-control>`, except for the fact that
68+:c:type:`v4l2_ext_control` array. The
69+struct :c:type:`v4l2_ext_control` is very similar to
70+struct :c:type:`v4l2_control`, except for the fact that
7171 it also allows for 64-bit values and pointers to be passed.
7272
73−Since the struct :ref:`v4l2_ext_control <v4l2-ext-control>` supports
73+Since the struct :c:type:`v4l2_ext_control` supports
7474 pointers it is now also possible to have controls with compound types
7575 such as N-dimensional arrays and/or structures. You need to specify the
7676 ``V4L2_CTRL_FLAG_NEXT_COMPOUND`` when enumerating controls to actually
@@ -184,7 +184,9 @@ Codec Control Reference · 107 unmodified lines
184184 Below all controls within the Codec control class are described. First
185185 the generic controls, then controls specific for certain hardware.
186186
187−.. note:: These controls are applicable to all codecs and not just MPEG. The
187+.. note::
188+
189+ These controls are applicable to all codecs and not just MPEG. The
188190 defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG as the controls
189191 were originally made for MPEG codecs and later extended to cover all
190192 encoding formats.
@@ -207,7 +209,10 @@ Codec Control IDs · 16 unmodified lines
207209
208210 .. _v4l2-mpeg-stream-type:
209211
210−``V4L2_CID_MPEG_STREAM_TYPE (enum v4l2_mpeg_stream_type)``
212+``V4L2_CID_MPEG_STREAM_TYPE``
213+ (enum)
214+
215+enum v4l2_mpeg_stream_type -
211216 The MPEG-1, -2 or -4 output stream type. One cannot assume anything
212217 here. Each hardware MPEG encoder tends to support different subsets
213218 of the available MPEG stream types. This control is specific to
@@ -219,42 +224,18 @@ Codec Control IDs · 5 unmodified lines
219224 :header-rows: 0
220225 :stub-columns: 0
221226
222−
223− - .. row 1
224−
225− - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS``
226−
227− - MPEG-2 program stream
228−
229− - .. row 2
230−
231− - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS``
232−
233− - MPEG-2 transport stream
234−
235− - .. row 3
236−
237− - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS``
238−
239− - MPEG-1 system stream
240−
241− - .. row 4
242−
243− - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD``
244−
245− - MPEG-2 DVD-compatible stream
246−
247− - .. row 5
248−
249− - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD``
250−
251− - MPEG-1 VCD-compatible stream
252−
253− - .. row 6
254−
255− - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD``
256−
257− - MPEG-2 SVCD-compatible stream
227+ * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS``
228+ - MPEG-2 program stream
229+ * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS``
230+ - MPEG-2 transport stream
231+ * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS``
232+ - MPEG-1 system stream
233+ * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD``
234+ - MPEG-2 DVD-compatible stream
235+ * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD``
236+ - MPEG-1 VCD-compatible stream
237+ * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD``
238+ - MPEG-2 SVCD-compatible stream
258239
259240
260241
@@ -280,7 +261,10 @@ Codec Control IDs · 19 unmodified lines
280261
281262 .. _v4l2-mpeg-stream-vbi-fmt:
282263
283−``V4L2_CID_MPEG_STREAM_VBI_FMT (enum v4l2_mpeg_stream_vbi_fmt)``
264+``V4L2_CID_MPEG_STREAM_VBI_FMT``
265+ (enum)
266+
267+enum v4l2_mpeg_stream_vbi_fmt -
284268 Some cards can embed VBI data (e. g. Closed Caption, Teletext) into
285269 the MPEG stream. This control selects whether VBI data should be
286270 embedded, and if so, what embedding method should be used. The list
@@ -289,30 +273,27 @@ Codec Control IDs · 2 unmodified lines
289273
290274
291275
276+.. tabularcolumns:: |p{6 cm}|p{11.5cm}|
277+
292278 .. flat-table::
293279 :header-rows: 0
294280 :stub-columns: 0
295281
296−
297− - .. row 1
298−
299− - ``V4L2_MPEG_STREAM_VBI_FMT_NONE``
300−
301− - No VBI in the MPEG stream
302−
303− - .. row 2
304−
305− - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV``
306−
307− - VBI in private packets, IVTV format (documented in the kernel
308− sources in the file
309− ``Documentation/video4linux/cx2341x/README.vbi``)
282+ * - ``V4L2_MPEG_STREAM_VBI_FMT_NONE``
283+ - No VBI in the MPEG stream
284+ * - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV``
285+ - VBI in private packets, IVTV format (documented in the kernel
286+ sources in the file
287+ ``Documentation/video4linux/cx2341x/README.vbi``)
310288
311289
312290
313291 .. _v4l2-mpeg-audio-sampling-freq:
314292
315−``V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (enum v4l2_mpeg_audio_sampling_freq)``
293+``V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ``
294+ (enum)
295+
296+enum v4l2_mpeg_audio_sampling_freq -
316297 MPEG Audio sampling frequency. Possible values are:
317298
318299
@@ -321,30 +302,21 @@ Codec Control IDs · 2 unmodified lines
321302 :header-rows: 0
322303 :stub-columns: 0
323304
324−
325− - .. row 1
326−
327− - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100``
328−
329− - 44.1 kHz
330−
331− - .. row 2
332−
333− - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000``
334−
335− - 48 kHz
336−
337− - .. row 3
338−
339− - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000``
340−
341− - 32 kHz
305+ * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100``
306+ - 44.1 kHz
307+ * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000``
308+ - 48 kHz
309+ * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000``
310+ - 32 kHz
342311
343312
344313
345314 .. _v4l2-mpeg-audio-encoding:
346315
347−``V4L2_CID_MPEG_AUDIO_ENCODING (enum v4l2_mpeg_audio_encoding)``
316+``V4L2_CID_MPEG_AUDIO_ENCODING``
317+ (enum)
318+
319+enum v4l2_mpeg_audio_encoding -
348320 MPEG Audio encoding. This control is specific to multiplexed MPEG
349321 streams. Possible values are:
350322
@@ -354,42 +326,25 @@ Codec Control IDs · 3 unmodified lines
354326 :header-rows: 0
355327 :stub-columns: 0
356328
357−
358− - .. row 1
359−
360− - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1``
361−
362− - MPEG-1/2 Layer I encoding
363−
364− - .. row 2
365−
366− - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2``
367−
368− - MPEG-1/2 Layer II encoding
369−
370− - .. row 3
371−
372− - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3``
373−
374− - MPEG-1/2 Layer III encoding
375−
376− - .. row 4
377−
378− - ``V4L2_MPEG_AUDIO_ENCODING_AAC``
379−
380− - MPEG-2/4 AAC (Advanced Audio Coding)
381−
382− - .. row 5
383−
384− - ``V4L2_MPEG_AUDIO_ENCODING_AC3``
385−
386− - AC-3 aka ATSC A/52 encoding
329+ * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1``
330+ - MPEG-1/2 Layer I encoding
331+ * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2``
332+ - MPEG-1/2 Layer II encoding
333+ * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3``
334+ - MPEG-1/2 Layer III encoding
335+ * - ``V4L2_MPEG_AUDIO_ENCODING_AAC``
336+ - MPEG-2/4 AAC (Advanced Audio Coding)
337+ * - ``V4L2_MPEG_AUDIO_ENCODING_AC3``
338+ - AC-3 aka ATSC A/52 encoding
387339
388340
389341
390342 .. _v4l2-mpeg-audio-l1-bitrate:
391343
392−``V4L2_CID_MPEG_AUDIO_L1_BITRATE (enum v4l2_mpeg_audio_l1_bitrate)``
344+``V4L2_CID_MPEG_AUDIO_L1_BITRATE``
345+ (enum)
346+
347+enum v4l2_mpeg_audio_l1_bitrate -
393348 MPEG-1/2 Layer I bitrate. Possible values are:
394349
395350
@@ -398,97 +353,89 @@ Codec Control IDs · 2 unmodified lines
398353 :header-rows: 0
399354 :stub-columns: 0
400355
356+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_32K``
357+ - 32 kbit/s
358+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_64K``
359+ - 64 kbit/s
360+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_96K``
361+ - 96 kbit/s
362+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K``
363+ - 128 kbit/s
364+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K``
365+ - 160 kbit/s
366+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K``
367+ - 192 kbit/s
368+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K``
369+ - 224 kbit/s
370+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K``
371+ - 256 kbit/s
372+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K``
373+ - 288 kbit/s
374+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K``
375+ - 320 kbit/s
376+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K``
377+ - 352 kbit/s
378+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K``
379+ - 384 kbit/s
380+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K``
381+ - 416 kbit/s
382+ * - ``V4L2_MPEG_AUDIO_L1_BITRATE_448K``
383+ - 448 kbit/s
401384
402− - .. row 1
403−
404− - ``V4L2_MPEG_AUDIO_L1_BITRATE_32K``
405−
406− - 32 kbit/s
407−
408− - .. row 2
409−
410− - ``V4L2_MPEG_AUDIO_L1_BITRATE_64K``
411−
412− - 64 kbit/s
413−
414− - .. row 3
415−
416− - ``V4L2_MPEG_AUDIO_L1_BITRATE_96K``
417−
418− - 96 kbit/s
419385
420− - .. row 4
421386
422− - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K``
423−
424− - 128 kbit/s
425−
426− - .. row 5
427−
428− - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K``
429−
430− - 160 kbit/s
431−
432− - .. row 6
433−
434− - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K``
435−
436− - 192 kbit/s
437−
438− - .. row 7
439−
440− - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K``
441−
442− - 224 kbit/s
443−
444− - .. row 8
445−
446− - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K``
447−
448− - 256 kbit/s
449−
450− - .. row 9
451−
452− - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K``
453−
454− - 288 kbit/s
455−
456− - .. row 10
457−
458− - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K``
459−
460− - 320 kbit/s
461−
462− - .. row 11
463−
464− - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K``
465−
466− - 352 kbit/s
467−
468− - .. row 12
469−
470− - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K``
387+.. _v4l2-mpeg-audio-l2-bitrate:
471388
472− - 384 kbit/s
389+``V4L2_CID_MPEG_AUDIO_L2_BITRATE``
390+ (enum)
473391
474− - .. row 13
392+enum v4l2_mpeg_audio_l2_bitrate -
393+ MPEG-1/2 Layer II bitrate. Possible values are:
475394
476− - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K``
477395
478− - 416 kbit/s
479396
480− - .. row 14
397+.. flat-table::
398+ :header-rows: 0
399+ :stub-columns: 0
481400
482− - ``V4L2_MPEG_AUDIO_L1_BITRATE_448K``
401+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K``
402+ - 32 kbit/s
403+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K``
404+ - 48 kbit/s
405+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K``
406+ - 56 kbit/s
407+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K``
408+ - 64 kbit/s
409+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_80K``
410+ - 80 kbit/s
411+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K``
412+ - 96 kbit/s
413+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K``
414+ - 112 kbit/s
415+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_128K``
416+ - 128 kbit/s
417+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K``
418+ - 160 kbit/s
419+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K``
420+ - 192 kbit/s
421+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_224K``
422+ - 224 kbit/s
423+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K``
424+ - 256 kbit/s
425+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K``
426+ - 320 kbit/s
427+ * - ``V4L2_MPEG_AUDIO_L2_BITRATE_384K``
428+ - 384 kbit/s
483429
484− - 448 kbit/s
485430
486431
432+.. _v4l2-mpeg-audio-l3-bitrate:
487433
488−.. _v4l2-mpeg-audio-l2-bitrate:
434+``V4L2_CID_MPEG_AUDIO_L3_BITRATE``
435+ (enum)
489436
490−``V4L2_CID_MPEG_AUDIO_L2_BITRATE (enum v4l2_mpeg_audio_l2_bitrate)``
491− MPEG-1/2 Layer II bitrate. Possible values are:
437+enum v4l2_mpeg_audio_l3_bitrate -
438+ MPEG-1/2 Layer III bitrate. Possible values are:
492439
493440
494441
@@ -496,97 +443,177 @@ Codec Control IDs · 1 unmodified line
496443 :header-rows: 0
497444 :stub-columns: 0
498445
446+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K``
447+ - 32 kbit/s
448+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K``
449+ - 40 kbit/s
450+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K``
451+ - 48 kbit/s
452+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K``
453+ - 56 kbit/s
454+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K``
455+ - 64 kbit/s
456+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_80K``
457+ - 80 kbit/s
458+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K``
459+ - 96 kbit/s
460+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K``
461+ - 112 kbit/s
462+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K``
463+ - 128 kbit/s
464+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_160K``
465+ - 160 kbit/s
466+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K``
467+ - 192 kbit/s
468+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K``
469+ - 224 kbit/s
470+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_256K``
471+ - 256 kbit/s
472+ * - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K``
473+ - 320 kbit/s
499474
500− - .. row 1
501−
502− - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K``
503−
504− - 32 kbit/s
505−
506− - .. row 2
507475
508− - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K``
509476
510− - 48 kbit/s
511−
512− - .. row 3
477+``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)``
478+ AAC bitrate in bits per second.
513479
514− - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K``
480+.. _v4l2-mpeg-audio-ac3-bitrate:
515481
516− - 56 kbit/s
482+``V4L2_CID_MPEG_AUDIO_AC3_BITRATE``
483+ (enum)
517484
518− - .. row 4
485+enum v4l2_mpeg_audio_ac3_bitrate -
486+ AC-3 bitrate. Possible values are:
519487
520− - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K``
521488
522− - 64 kbit/s
523489
524− - .. row 5
490+.. flat-table::
491+ :header-rows: 0
492+ :stub-columns: 0
525493
526− - ``V4L2_MPEG_AUDIO_L2_BITRATE_80K``
494+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K``
495+ - 32 kbit/s
496+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K``
497+ - 40 kbit/s
498+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K``
499+ - 48 kbit/s
500+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K``
501+ - 56 kbit/s
502+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_64K``
503+ - 64 kbit/s
504+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_80K``
505+ - 80 kbit/s
506+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K``
507+ - 96 kbit/s
508+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K``
509+ - 112 kbit/s
510+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K``
511+ - 128 kbit/s
512+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_160K``
513+ - 160 kbit/s
514+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K``
515+ - 192 kbit/s
516+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K``
517+ - 224 kbit/s
518+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K``
519+ - 256 kbit/s
520+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K``
521+ - 320 kbit/s
522+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K``
523+ - 384 kbit/s
524+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_448K``
525+ - 448 kbit/s
526+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K``
527+ - 512 kbit/s
528+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K``
529+ - 576 kbit/s
530+ * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_640K``
531+ - 640 kbit/s
527532
528− - 80 kbit/s
529533
530− - .. row 6
531534
532− - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K``
535+.. _v4l2-mpeg-audio-mode:
533536
534− - 96 kbit/s
537+``V4L2_CID_MPEG_AUDIO_MODE``
538+ (enum)
535539
536− - .. row 7
540+enum v4l2_mpeg_audio_mode -
541+ MPEG Audio mode. Possible values are:
537542
538− - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K``
539543
540− - 112 kbit/s
541544
542− - .. row 8
545+.. flat-table::
546+ :header-rows: 0
547+ :stub-columns: 0
543548
544− - ``V4L2_MPEG_AUDIO_L2_BITRATE_128K``
549+ * - ``V4L2_MPEG_AUDIO_MODE_STEREO``
550+ - Stereo
551+ * - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO``
552+ - Joint Stereo
553+ * - ``V4L2_MPEG_AUDIO_MODE_DUAL``
554+ - Bilingual
555+ * - ``V4L2_MPEG_AUDIO_MODE_MONO``
556+ - Mono
545557
546− - 128 kbit/s
547558
548− - .. row 9
549559
550− - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K``
560+.. _v4l2-mpeg-audio-mode-extension:
551561
552− - 160 kbit/s
562+``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION``
563+ (enum)
553564
554− - .. row 10
565+enum v4l2_mpeg_audio_mode_extension -
566+ Joint Stereo audio mode extension. In Layer I and II they indicate
567+ which subbands are in intensity stereo. All other subbands are coded
568+ in stereo. Layer III is not (yet) supported. Possible values are:
555569
556− - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K``
557570
558− - 192 kbit/s
559571
560− - .. row 11
572+.. flat-table::
573+ :header-rows: 0
574+ :stub-columns: 0
561575
562− - ``V4L2_MPEG_AUDIO_L2_BITRATE_224K``
576+ * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4``
577+ - Subbands 4-31 in intensity stereo
578+ * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8``
579+ - Subbands 8-31 in intensity stereo
580+ * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12``
581+ - Subbands 12-31 in intensity stereo
582+ * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16``
583+ - Subbands 16-31 in intensity stereo
563584
564− - 224 kbit/s
565585
566− - .. row 12
567586
568− - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K``
587+.. _v4l2-mpeg-audio-emphasis:
569588
570− - 256 kbit/s
589+``V4L2_CID_MPEG_AUDIO_EMPHASIS``
590+ (enum)
571591
572− - .. row 13
592+enum v4l2_mpeg_audio_emphasis -
593+ Audio Emphasis. Possible values are:
573594
574− - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K``
575595
576− - 320 kbit/s
577596
578− - .. row 14
597+.. flat-table::
598+ :header-rows: 0
599+ :stub-columns: 0
579600
580− - ``V4L2_MPEG_AUDIO_L2_BITRATE_384K``
601+ * - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE``
602+ - None
603+ * - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS``
604+ - 50/15 microsecond emphasis
605+ * - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17``
606+ - CCITT J.17
581607
582− - 384 kbit/s
583608
584609
610+.. _v4l2-mpeg-audio-crc:
585611
586−.. _v4l2-mpeg-audio-l3-bitrate:
612+``V4L2_CID_MPEG_AUDIO_CRC``
613+ (enum)
587614
588−``V4L2_CID_MPEG_AUDIO_L3_BITRATE (enum v4l2_mpeg_audio_l3_bitrate)``
589− MPEG-1/2 Layer III bitrate. Possible values are:
615+enum v4l2_mpeg_audio_crc -
616+ CRC method. Possible values are:
590617
591618
592619
@@ -594,100 +621,123 @@ Codec Control IDs · 1 unmodified line
594621 :header-rows: 0
595622 :stub-columns: 0
596623
624+ * - ``V4L2_MPEG_AUDIO_CRC_NONE``
625+ - None
626+ * - ``V4L2_MPEG_AUDIO_CRC_CRC16``
627+ - 16 bit parity check
597628
598− - .. row 1
599−
600− - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K``
601−
602− - 32 kbit/s
603−
604− - .. row 2
605629
606− - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K``
607630
608− - 40 kbit/s
609−
610− - .. row 3
611−
612− - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K``
613−
614− - 48 kbit/s
631+``V4L2_CID_MPEG_AUDIO_MUTE (boolean)``
632+ Mutes the audio when capturing. This is not done by muting audio
633+ hardware, which can still produce a slight hiss, but in the encoder
634+ itself, guaranteeing a fixed and reproducible audio bitstream. 0 =
635+ unmuted, 1 = muted.
615636
616− - .. row 4
637+.. _v4l2-mpeg-audio-dec-playback:
617638
618− - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K``
639+``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK``
640+ (enum)
619641
620− - 56 kbit/s
642+enum v4l2_mpeg_audio_dec_playback -
643+ Determines how monolingual audio should be played back. Possible
644+ values are:
621645
622− - .. row 5
623646
624− - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K``
625647
626− - 64 kbit/s
648+.. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
627649
628− - .. row 6
650+.. flat-table::
651+ :header-rows: 0
652+ :stub-columns: 0
629653
630− - ``V4L2_MPEG_AUDIO_L3_BITRATE_80K``
654+ * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO``
655+ - Automatically determines the best playback mode.
656+ * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO``
657+ - Stereo playback.
658+ * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT``
659+ - Left channel playback.
660+ * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT``
661+ - Right channel playback.
662+ * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO``
663+ - Mono playback.
664+ * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO``
665+ - Stereo playback with swapped left and right channels.
631666
632− - 80 kbit/s
633667
634− - .. row 7
635668
636− - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K``
669+.. _v4l2-mpeg-audio-dec-multilingual-playback:
637670
638− - 96 kbit/s
671+``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK``
672+ (enum)
639673
640− - .. row 8
674+enum v4l2_mpeg_audio_dec_playback -
675+ Determines how multilingual audio should be played back.
641676
642− - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K``
677+.. _v4l2-mpeg-video-encoding:
643678
644− - 112 kbit/s
679+``V4L2_CID_MPEG_VIDEO_ENCODING``
680+ (enum)
645681
646− - .. row 9
682+enum v4l2_mpeg_video_encoding -
683+ MPEG Video encoding method. This control is specific to multiplexed
684+ MPEG streams. Possible values are:
647685
648− - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K``
649686
650− - 128 kbit/s
651687
652− - .. row 10
688+.. flat-table::
689+ :header-rows: 0
690+ :stub-columns: 0
653691
654− - ``V4L2_MPEG_AUDIO_L3_BITRATE_160K``
692+ * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1``
693+ - MPEG-1 Video encoding
694+ * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2``
695+ - MPEG-2 Video encoding
696+ * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC``
697+ - MPEG-4 AVC (H.264) Video encoding
655698
656− - 160 kbit/s
657699
658− - .. row 11
659700
660− - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K``
701+.. _v4l2-mpeg-video-aspect:
661702
662− - 192 kbit/s
703+``V4L2_CID_MPEG_VIDEO_ASPECT``
704+ (enum)
663705
664− - .. row 12
706+enum v4l2_mpeg_video_aspect -
707+ Video aspect. Possible values are:
665708
666− - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K``
667709
668− - 224 kbit/s
669710
670− - .. row 13
711+.. flat-table::
712+ :header-rows: 0
713+ :stub-columns: 0
671714
672− - ``V4L2_MPEG_AUDIO_L3_BITRATE_256K``
715+ * - ``V4L2_MPEG_VIDEO_ASPECT_1x1``
716+ * - ``V4L2_MPEG_VIDEO_ASPECT_4x3``
717+ * - ``V4L2_MPEG_VIDEO_ASPECT_16x9``
718+ * - ``V4L2_MPEG_VIDEO_ASPECT_221x100``
673719
674− - 256 kbit/s
675720
676− - .. row 14
677721
678− - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K``
722+``V4L2_CID_MPEG_VIDEO_B_FRAMES (integer)``
723+ Number of B-Frames (default 2)
679724
680− - 320 kbit/s
725+``V4L2_CID_MPEG_VIDEO_GOP_SIZE (integer)``
726+ GOP size (default 12)
681727
728+``V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (boolean)``
729+ GOP closure (default 1)
682730
731+``V4L2_CID_MPEG_VIDEO_PULLDOWN (boolean)``
732+ Enable 3:2 pulldown (default 0)
683733
684−``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)``
685− AAC bitrate in bits per second.
734+.. _v4l2-mpeg-video-bitrate-mode:
686735
687−.. _v4l2-mpeg-audio-ac3-bitrate:
736+``V4L2_CID_MPEG_VIDEO_BITRATE_MODE``
737+ (enum)
688738
689−``V4L2_CID_MPEG_AUDIO_AC3_BITRATE (enum v4l2_mpeg_audio_ac3_bitrate)``
690− AC-3 bitrate. Possible values are:
739+enum v4l2_mpeg_video_bitrate_mode -
740+ Video bitrate mode. Possible values are:
691741
692742
693743
@@ -695,127 +745,230 @@ Codec Control IDs · 1 unmodified line
695745 :header-rows: 0
696746 :stub-columns: 0
697747
748+ * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR``
749+ - Variable bitrate
750+ * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR``
751+ - Constant bitrate
698752
699− - .. row 1
700−
701− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K``
702−
703− - 32 kbit/s
704−
705− - .. row 2
706753
707− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K``
708754
709− - 40 kbit/s
710−
711− - .. row 3
712−
713− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K``
714−
715− - 48 kbit/s
716−
717− - .. row 4
718−
719− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K``
720−
721− - 56 kbit/s
722−
723− - .. row 5
755+``V4L2_CID_MPEG_VIDEO_BITRATE (integer)``
756+ Video bitrate in bits per second.
724757
725− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_64K``
758+``V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (integer)``
759+ Peak video bitrate in bits per second. Must be larger or equal to
760+ the average video bitrate. It is ignored if the video bitrate mode
761+ is set to constant bitrate.
726762
727− - 64 kbit/s
763+``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)``
764+ For every captured frame, skip this many subsequent frames (default
765+ 0).
728766
729− - .. row 6
767+``V4L2_CID_MPEG_VIDEO_MUTE (boolean)``
768+ "Mutes" the video to a fixed color when capturing. This is useful
769+ for testing, to produce a fixed video bitstream. 0 = unmuted, 1 =
770+ muted.
730771
731− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_80K``
772+``V4L2_CID_MPEG_VIDEO_MUTE_YUV (integer)``
773+ Sets the "mute" color of the video. The supplied 32-bit integer is
774+ interpreted as follows (bit 0 = least significant bit):
732775
733− - 80 kbit/s
734776
735− - .. row 7
736777
737− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K``
778+.. flat-table::
779+ :header-rows: 0
780+ :stub-columns: 0
738781
739− - 96 kbit/s
782+ * - Bit 0:7
783+ - V chrominance information
784+ * - Bit 8:15
785+ - U chrominance information
786+ * - Bit 16:23
787+ - Y luminance information
788+ * - Bit 24:31
789+ - Must be zero.
740790
741− - .. row 8
742791
743− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K``
744792
745− - 112 kbit/s
793+.. _v4l2-mpeg-video-dec-pts:
746794
747− - .. row 9
795+``V4L2_CID_MPEG_VIDEO_DEC_PTS (integer64)``
796+ This read-only control returns the 33-bit video Presentation Time
797+ Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of the
798+ currently displayed frame. This is the same PTS as is used in
799+ :ref:`VIDIOC_DECODER_CMD`.
748800
749− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K``
801+.. _v4l2-mpeg-video-dec-frame:
750802
751− - 128 kbit/s
803+``V4L2_CID_MPEG_VIDEO_DEC_FRAME (integer64)``
804+ This read-only control returns the frame counter of the frame that
805+ is currently displayed (decoded). This value is reset to 0 whenever
806+ the decoder is started.
752807
753− - .. row 10
808+``V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (boolean)``
809+ If enabled the decoder expects to receive a single slice per buffer,
810+ otherwise the decoder expects a single frame in per buffer.
811+ Applicable to the decoder, all codecs.
754812
755− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_160K``
813+``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (boolean)``
814+ Enable writing sample aspect ratio in the Video Usability
815+ Information. Applicable to the H264 encoder.
756816
757− - 160 kbit/s
817+.. _v4l2-mpeg-video-h264-vui-sar-idc:
758818
759− - .. row 11
819+``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC``
820+ (enum)
760821
761− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K``
822+enum v4l2_mpeg_video_h264_vui_sar_idc -
823+ VUI sample aspect ratio indicator for H.264 encoding. The value is
824+ defined in the table E-1 in the standard. Applicable to the H264
825+ encoder.
762826
763− - 192 kbit/s
764827
765− - .. row 12
766828
767− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K``
829+.. flat-table::
830+ :header-rows: 0
831+ :stub-columns: 0
768832
769− - 224 kbit/s
833+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED``
834+ - Unspecified
835+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1``
836+ - 1x1
837+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11``
838+ - 12x11
839+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11``
840+ - 10x11
841+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11``
842+ - 16x11
843+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33``
844+ - 40x33
845+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11``
846+ - 24x11
847+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11``
848+ - 20x11
849+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11``
850+ - 32x11
851+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33``
852+ - 80x33
853+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11``
854+ - 18x11
855+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11``
856+ - 15x11
857+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33``
858+ - 64x33
859+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99``
860+ - 160x99
861+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3``
862+ - 4x3
863+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2``
864+ - 3x2
865+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1``
866+ - 2x1
867+ * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED``
868+ - Extended SAR
770869
771− - .. row 13
772870
773− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K``
774871
775− - 256 kbit/s
872+``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (integer)``
873+ Extended sample aspect ratio width for H.264 VUI encoding.
874+ Applicable to the H264 encoder.
776875
777− - .. row 14
876+``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (integer)``
877+ Extended sample aspect ratio height for H.264 VUI encoding.
878+ Applicable to the H264 encoder.
778879
779− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K``
880+.. _v4l2-mpeg-video-h264-level:
780881
781− - 320 kbit/s
882+``V4L2_CID_MPEG_VIDEO_H264_LEVEL``
883+ (enum)
782884
783− - .. row 15
885+enum v4l2_mpeg_video_h264_level -
886+ The level information for the H264 video elementary stream.
887+ Applicable to the H264 encoder. Possible values are:
784888
785− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K``
786889
787− - 384 kbit/s
788890
789− - .. row 16
891+.. flat-table::
892+ :header-rows: 0
893+ :stub-columns: 0
790894
791− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_448K``
895+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0``
896+ - Level 1.0
897+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B``
898+ - Level 1B
899+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1``
900+ - Level 1.1
901+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2``
902+ - Level 1.2
903+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3``
904+ - Level 1.3
905+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0``
906+ - Level 2.0
907+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1``
908+ - Level 2.1
909+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2``
910+ - Level 2.2
911+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0``
912+ - Level 3.0
913+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1``
914+ - Level 3.1
915+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2``
916+ - Level 3.2
917+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0``
918+ - Level 4.0
919+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1``
920+ - Level 4.1
921+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2``
922+ - Level 4.2
923+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0``
924+ - Level 5.0
925+ * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1``
926+ - Level 5.1
792927
793− - 448 kbit/s
794928
795− - .. row 17
796929
797− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K``
930+.. _v4l2-mpeg-video-mpeg4-level:
798931
799− - 512 kbit/s
932+``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL``
933+ (enum)
800934
801− - .. row 18
935+enum v4l2_mpeg_video_mpeg4_level -
936+ The level information for the MPEG4 elementary stream. Applicable to
937+ the MPEG4 encoder. Possible values are:
802938
803− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K``
804939
805− - 576 kbit/s
806940
807− - .. row 19
941+.. flat-table::
942+ :header-rows: 0
943+ :stub-columns: 0
808944
809− - ``V4L2_MPEG_AUDIO_AC3_BITRATE_640K``
945+ * - ``V4L2_MPEG_VIDEO_LEVEL_0``
946+ - Level 0
947+ * - ``V4L2_MPEG_VIDEO_LEVEL_0B``
948+ - Level 0b
949+ * - ``V4L2_MPEG_VIDEO_LEVEL_1``
950+ - Level 1
951+ * - ``V4L2_MPEG_VIDEO_LEVEL_2``
952+ - Level 2
953+ * - ``V4L2_MPEG_VIDEO_LEVEL_3``
954+ - Level 3
955+ * - ``V4L2_MPEG_VIDEO_LEVEL_3B``
956+ - Level 3b
957+ * - ``V4L2_MPEG_VIDEO_LEVEL_4``
958+ - Level 4
959+ * - ``V4L2_MPEG_VIDEO_LEVEL_5``
960+ - Level 5
810961
811− - 640 kbit/s
812962
813963
964+.. _v4l2-mpeg-video-h264-profile:
814965
815−.. _v4l2-mpeg-audio-mode:
966+``V4L2_CID_MPEG_VIDEO_H264_PROFILE``
967+ (enum)
816968
817−``V4L2_CID_MPEG_AUDIO_MODE (enum v4l2_mpeg_audio_mode)``
818− MPEG Audio mode. Possible values are:
969+enum v4l2_mpeg_video_h264_profile -
970+ The profile information for H264. Applicable to the H264 encoder.
971+ Possible values are:
819972
820973
821974
@@ -823,837 +976,68 @@ Codec Control IDs · 1 unmodified line
823976 :header-rows: 0
824977 :stub-columns: 0
825978
979+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE``
980+ - Baseline profile
981+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE``
982+ - Constrained Baseline profile
983+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN``
984+ - Main profile
985+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED``
986+ - Extended profile
987+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH``
988+ - High profile
989+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10``
990+ - High 10 profile
991+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422``
992+ - High 422 profile
993+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE``
994+ - High 444 Predictive profile
995+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA``
996+ - High 10 Intra profile
997+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA``
998+ - High 422 Intra profile
999+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA``
1000+ - High 444 Intra profile
1001+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA``
1002+ - CAVLC 444 Intra profile
1003+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE``
1004+ - Scalable Baseline profile
1005+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH``
1006+ - Scalable High profile
1007+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA``
1008+ - Scalable High Intra profile
1009+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH``
1010+ - Stereo High profile
1011+ * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH``
1012+ - Multiview High profile
8261013
827− - .. row 1
828−
829− - ``V4L2_MPEG_AUDIO_MODE_STEREO``
830−
831− - Stereo
8321014
833− - .. row 2
8341015
835− - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO``
836−
837− - Joint Stereo
838−
839− - .. row 3
840−
841− - ``V4L2_MPEG_AUDIO_MODE_DUAL``
1016+.. _v4l2-mpeg-video-mpeg4-profile:
8421017
843− - Bilingual
1018+``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE``
1019+ (enum)
8441020
845− - .. row 4
846−
847− - ``V4L2_MPEG_AUDIO_MODE_MONO``
848−
849− - Mono
850−
851−
852−
853−.. _v4l2-mpeg-audio-mode-extension:
854−
855−``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (enum v4l2_mpeg_audio_mode_extension)``
856− Joint Stereo audio mode extension. In Layer I and II they indicate
857− which subbands are in intensity stereo. All other subbands are coded
858− in stereo. Layer III is not (yet) supported. Possible values are:
859−
860−
861−
862−.. flat-table::
863− :header-rows: 0
864− :stub-columns: 0
865−
866−
867− - .. row 1
868−
869− - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4``
870−
871− - Subbands 4-31 in intensity stereo
872−
873− - .. row 2
874−
875− - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8``
876−
877− - Subbands 8-31 in intensity stereo
878−
879− - .. row 3
880−
881− - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12``
882−
883− - Subbands 12-31 in intensity stereo
884−
885− - .. row 4
886−
887− - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16``
888−
889− - Subbands 16-31 in intensity stereo
890−
891−
892−
893−.. _v4l2-mpeg-audio-emphasis:
894−
895−``V4L2_CID_MPEG_AUDIO_EMPHASIS (enum v4l2_mpeg_audio_emphasis)``
896− Audio Emphasis. Possible values are:
897−
898−
899−
900−.. flat-table::
901− :header-rows: 0
902− :stub-columns: 0
903−
904−
905− - .. row 1
906−
907− - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE``
908−
909− - None
910−
911− - .. row 2
912−
913− - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS``
914−
915− - 50/15 microsecond emphasis
916−
917− - .. row 3
918−
919− - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17``
920−
921− - CCITT J.17
922−
923−
924−
925−.. _v4l2-mpeg-audio-crc:
926−
927−``V4L2_CID_MPEG_AUDIO_CRC (enum v4l2_mpeg_audio_crc)``
928− CRC method. Possible values are:
929−
930−
931−
932−.. flat-table::
933− :header-rows: 0
934− :stub-columns: 0
935−
936−
937− - .. row 1
938−
939− - ``V4L2_MPEG_AUDIO_CRC_NONE``
940−
941− - None
942−
943− - .. row 2
944−
945− - ``V4L2_MPEG_AUDIO_CRC_CRC16``
946−
947− - 16 bit parity check
948−
949−
950−
951−``V4L2_CID_MPEG_AUDIO_MUTE (boolean)``
952− Mutes the audio when capturing. This is not done by muting audio
953− hardware, which can still produce a slight hiss, but in the encoder
954− itself, guaranteeing a fixed and reproducible audio bitstream. 0 =
955− unmuted, 1 = muted.
956−
957−.. _v4l2-mpeg-audio-dec-playback:
958−
959−``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (enum v4l2_mpeg_audio_dec_playback)``
960− Determines how monolingual audio should be played back. Possible
961− values are:
962−
963−
964−
965−.. flat-table::
966− :header-rows: 0
967− :stub-columns: 0
968−
969−
970− - .. row 1
971−
972− - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO``
973−
974− - Automatically determines the best playback mode.
975−
976− - .. row 2
977−
978− - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO``
979−
980− - Stereo playback.
981−
982− - .. row 3
983−
984− - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT``
985−
986− - Left channel playback.
987−
988− - .. row 4
989−
990− - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT``
991−
992− - Right channel playback.
993−
994− - .. row 5
995−
996− - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO``
997−
998− - Mono playback.
999−
1000− - .. row 6
1001−
1002− - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO``
1003−
1004− - Stereo playback with swapped left and right channels.
1005−
1006−
1007−
1008−.. _v4l2-mpeg-audio-dec-multilingual-playback:
1009−
1010−``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (enum v4l2_mpeg_audio_dec_playback)``
1011− Determines how multilingual audio should be played back.
1012−
1013−.. _v4l2-mpeg-video-encoding:
1014−
1015−``V4L2_CID_MPEG_VIDEO_ENCODING (enum v4l2_mpeg_video_encoding)``
1016− MPEG Video encoding method. This control is specific to multiplexed
1017− MPEG streams. Possible values are:
1018−
1019−
1020−
1021−.. flat-table::
1022− :header-rows: 0
1023− :stub-columns: 0
1024−
1025−
1026− - .. row 1
1027−
1028− - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1``
1029−
1030− - MPEG-1 Video encoding
1031−
1032− - .. row 2
1033−
1034− - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2``
1035−
1036− - MPEG-2 Video encoding
1037−
1038− - .. row 3
1039−
1040− - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC``
1041−
1042− - MPEG-4 AVC (H.264) Video encoding
1043−
1044−
1045−
1046−.. _v4l2-mpeg-video-aspect:
1047−
1048−``V4L2_CID_MPEG_VIDEO_ASPECT (enum v4l2_mpeg_video_aspect)``
1049− Video aspect. Possible values are:
1050−
1051−
1052−
1053−.. flat-table::
1054− :header-rows: 0
1055− :stub-columns: 0
1056−
1057−
1058− - .. row 1
1059−
1060− - ``V4L2_MPEG_VIDEO_ASPECT_1x1``
1061−
1062− - .. row 2
1063−
1064− - ``V4L2_MPEG_VIDEO_ASPECT_4x3``
1065−
1066− - .. row 3
1067−
1068− - ``V4L2_MPEG_VIDEO_ASPECT_16x9``
1069−
1070− - .. row 4
1071−
1072− - ``V4L2_MPEG_VIDEO_ASPECT_221x100``
1073−
1074−
1075−
1076−``V4L2_CID_MPEG_VIDEO_B_FRAMES (integer)``
1077− Number of B-Frames (default 2)
1078−
1079−``V4L2_CID_MPEG_VIDEO_GOP_SIZE (integer)``
1080− GOP size (default 12)
1081−
1082−``V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (boolean)``
1083− GOP closure (default 1)
1084−
1085−``V4L2_CID_MPEG_VIDEO_PULLDOWN (boolean)``
1086− Enable 3:2 pulldown (default 0)
1087−
1088−.. _v4l2-mpeg-video-bitrate-mode:
1089−
1090−``V4L2_CID_MPEG_VIDEO_BITRATE_MODE (enum v4l2_mpeg_video_bitrate_mode)``
1091− Video bitrate mode. Possible values are:
1092−
1093−
1094−
1095−.. flat-table::
1096− :header-rows: 0
1097− :stub-columns: 0
1098−
1099−
1100− - .. row 1
1101−
1102− - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR``
1103−
1104− - Variable bitrate
1105−
1106− - .. row 2
1107−
1108− - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR``
1109−
1110− - Constant bitrate
1111−
1112−
1113−
1114−``V4L2_CID_MPEG_VIDEO_BITRATE (integer)``
1115− Video bitrate in bits per second.
1116−
1117−``V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (integer)``
1118− Peak video bitrate in bits per second. Must be larger or equal to
1119− the average video bitrate. It is ignored if the video bitrate mode
1120− is set to constant bitrate.
1121−
1122−``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)``
1123− For every captured frame, skip this many subsequent frames (default
1124− 0).
1125−
1126−``V4L2_CID_MPEG_VIDEO_MUTE (boolean)``
1127− "Mutes" the video to a fixed color when capturing. This is useful
1128− for testing, to produce a fixed video bitstream. 0 = unmuted, 1 =
1129− muted.
1130−
1131−``V4L2_CID_MPEG_VIDEO_MUTE_YUV (integer)``
1132− Sets the "mute" color of the video. The supplied 32-bit integer is
1133− interpreted as follows (bit 0 = least significant bit):
1134−
1135−
1136−
1137−.. flat-table::
1138− :header-rows: 0
1139− :stub-columns: 0
1140−
1141−
1142− - .. row 1
1143−
1144− - Bit 0:7
1145−
1146− - V chrominance information
1147−
1148− - .. row 2
1149−
1150− - Bit 8:15
1151−
1152− - U chrominance information
1153−
1154− - .. row 3
1155−
1156− - Bit 16:23
1157−
1158− - Y luminance information
1159−
1160− - .. row 4
1161−
1162− - Bit 24:31
1163−
1164− - Must be zero.
1165−
1166−
1167−
1168−.. _v4l2-mpeg-video-dec-pts:
1169−
1170−``V4L2_CID_MPEG_VIDEO_DEC_PTS (integer64)``
1171− This read-only control returns the 33-bit video Presentation Time
1172− Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of the
1173− currently displayed frame. This is the same PTS as is used in
1174− :ref:`VIDIOC_DECODER_CMD`.
1175−
1176−.. _v4l2-mpeg-video-dec-frame:
1177−
1178−``V4L2_CID_MPEG_VIDEO_DEC_FRAME (integer64)``
1179− This read-only control returns the frame counter of the frame that
1180− is currently displayed (decoded). This value is reset to 0 whenever
1181− the decoder is started.
1182−
1183−``V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (boolean)``
1184− If enabled the decoder expects to receive a single slice per buffer,
1185− otherwise the decoder expects a single frame in per buffer.
1186− Applicable to the decoder, all codecs.
1187−
1188−``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (boolean)``
1189− Enable writing sample aspect ratio in the Video Usability
1190− Information. Applicable to the H264 encoder.
1191−
1192−.. _v4l2-mpeg-video-h264-vui-sar-idc:
1193−
1194−``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (enum v4l2_mpeg_video_h264_vui_sar_idc)``
1195− VUI sample aspect ratio indicator for H.264 encoding. The value is
1196− defined in the table E-1 in the standard. Applicable to the H264
1197− encoder.
1198−
1199−
1200−
1201−.. flat-table::
1202− :header-rows: 0
1203− :stub-columns: 0
1204−
1205−
1206− - .. row 1
1207−
1208− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED``
1209−
1210− - Unspecified
1211−
1212− - .. row 2
1213−
1214− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1``
1215−
1216− - 1x1
1217−
1218− - .. row 3
1219−
1220− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11``
1221−
1222− - 12x11
1223−
1224− - .. row 4
1225−
1226− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11``
1227−
1228− - 10x11
1229−
1230− - .. row 5
1231−
1232− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11``
1233−
1234− - 16x11
1235−
1236− - .. row 6
1237−
1238− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33``
1239−
1240− - 40x33
1241−
1242− - .. row 7
1243−
1244− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11``
1245−
1246− - 24x11
1247−
1248− - .. row 8
1249−
1250− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11``
1251−
1252− - 20x11
1253−
1254− - .. row 9
1255−
1256− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11``
1257−
1258− - 32x11
1259−
1260− - .. row 10
1261−
1262− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33``
1263−
1264− - 80x33
1265−
1266− - .. row 11
1267−
1268− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11``
1269−
1270− - 18x11
1271−
1272− - .. row 12
1273−
1274− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11``
1275−
1276− - 15x11
1277−
1278− - .. row 13
1279−
1280− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33``
1281−
1282− - 64x33
1283−
1284− - .. row 14
1285−
1286− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99``
1287−
1288− - 160x99
1289−
1290− - .. row 15
1291−
1292− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3``
1293−
1294− - 4x3
1295−
1296− - .. row 16
1297−
1298− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2``
1299−
1300− - 3x2
1301−
1302− - .. row 17
1303−
1304− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1``
1305−
1306− - 2x1
1307−
1308− - .. row 18
1309−
1310− - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED``
1311−
1312− - Extended SAR
1313−
1314−
1315−
1316−``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (integer)``
1317− Extended sample aspect ratio width for H.264 VUI encoding.
1318− Applicable to the H264 encoder.
1319−
1320−``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (integer)``
1321− Extended sample aspect ratio height for H.264 VUI encoding.
1322− Applicable to the H264 encoder.
1323−
1324−.. _v4l2-mpeg-video-h264-level:
1325−
1326−``V4L2_CID_MPEG_VIDEO_H264_LEVEL (enum v4l2_mpeg_video_h264_level)``
1327− The level information for the H264 video elementary stream.
1328− Applicable to the H264 encoder. Possible values are:
1329−
1330−
1331−
1332−.. flat-table::
1333− :header-rows: 0
1334− :stub-columns: 0
1335−
1336−
1337− - .. row 1
1338−
1339− - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0``
1340−
1341− - Level 1.0
1342−
1343− - .. row 2
1344−
1345− - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B``
1346−
1347− - Level 1B
1348−
1349− - .. row 3
1350−
1351− - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1``
1352−
1353− - Level 1.1
1354−
1355− - .. row 4
1356−
1357− - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2``
1358−
1359− - Level 1.2
1360−
1361− - .. row 5
1362−
1363− - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3``
1364−
1365− - Level 1.3
1366−
1367− - .. row 6
1368−
1369− - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0``
1370−
1371− - Level 2.0
1372−
1373− - .. row 7
1374−
1375− - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1``
1376−
1377− - Level 2.1
1378−
1379− - .. row 8
1380−
1381− - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2``
1382−
1383− - Level 2.2
1384−
1385− - .. row 9
1386−
1387− - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0``
1388−
1389− - Level 3.0
1390−
1391− - .. row 10
1392−
1393− - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1``
1394−
1395− - Level 3.1
1396−
1397− - .. row 11
1398−
1399− - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2``
1400−
1401− - Level 3.2
1402−
1403− - .. row 12
1404−
1405− - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0``
1406−
1407− - Level 4.0
1408−
1409− - .. row 13
1410−
1411− - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1``
1412−
1413− - Level 4.1
1414−
1415− - .. row 14
1416−
1417− - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2``
1418−
1419− - Level 4.2
1420−
1421− - .. row 15
1422−
1423− - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0``
1424−
1425− - Level 5.0
1426−
1427− - .. row 16
1428−
1429− - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1``
1430−
1431− - Level 5.1
1432−
1433−
1434−
1435−.. _v4l2-mpeg-video-mpeg4-level:
1436−
1437−``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (enum v4l2_mpeg_video_mpeg4_level)``
1438− The level information for the MPEG4 elementary stream. Applicable to
1439− the MPEG4 encoder. Possible values are:
1440−
1441−
1442−
1443−.. flat-table::
1444− :header-rows: 0
1445− :stub-columns: 0
1446−
1447−
1448− - .. row 1
1449−
1450− - ``V4L2_MPEG_VIDEO_LEVEL_0``
1451−
1452− - Level 0
1453−
1454− - .. row 2
1455−
1456− - ``V4L2_MPEG_VIDEO_LEVEL_0B``
1457−
1458− - Level 0b
1459−
1460− - .. row 3
1461−
1462− - ``V4L2_MPEG_VIDEO_LEVEL_1``
1463−
1464− - Level 1
1465−
1466− - .. row 4
1467−
1468− - ``V4L2_MPEG_VIDEO_LEVEL_2``
1469−
1470− - Level 2
1471−
1472− - .. row 5
1473−
1474− - ``V4L2_MPEG_VIDEO_LEVEL_3``
1475−
1476− - Level 3
1477−
1478− - .. row 6
1479−
1480− - ``V4L2_MPEG_VIDEO_LEVEL_3B``
1481−
1482− - Level 3b
1483−
1484− - .. row 7
1485−
1486− - ``V4L2_MPEG_VIDEO_LEVEL_4``
1487−
1488− - Level 4
1489−
1490− - .. row 8
1491−
1492− - ``V4L2_MPEG_VIDEO_LEVEL_5``
1493−
1494− - Level 5
1495−
1496−
1497−
1498−.. _v4l2-mpeg-video-h264-profile:
1499−
1500−``V4L2_CID_MPEG_VIDEO_H264_PROFILE (enum v4l2_mpeg_video_h264_profile)``
1501− The profile information for H264. Applicable to the H264 encoder.
1502− Possible values are:
1503−
1504−
1505−
1506−.. flat-table::
1507− :header-rows: 0
1508− :stub-columns: 0
1509−
1510−
1511− - .. row 1
1512−
1513− - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE``
1514−
1515− - Baseline profile
1516−
1517− - .. row 2
1518−
1519− - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE``
1520−
1521− - Constrained Baseline profile
1522−
1523− - .. row 3
1524−
1525− - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN``
1526−
1527− - Main profile
1528−
1529− - .. row 4
1530−
1531− - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED``
1532−
1533− - Extended profile
1534−
1535− - .. row 5
1536−
1537− - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH``
1538−
1539− - High profile
1540−
1541− - .. row 6
1542−
1543− - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10``
1544−
1545− - High 10 profile
1546−
1547− - .. row 7
1548−
1549− - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422``
1550−
1551− - High 422 profile
1552−
1553− - .. row 8
1554−
1555− - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE``
1556−
1557− - High 444 Predictive profile
1558−
1559− - .. row 9
1560−
1561− - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA``
1562−
1563− - High 10 Intra profile
1564−
1565− - .. row 10
1566−
1567− - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA``
1568−
1569− - High 422 Intra profile
1570−
1571− - .. row 11
1572−
1573− - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA``
1574−
1575− - High 444 Intra profile
1576−
1577− - .. row 12
1578−
1579− - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA``
1580−
1581− - CAVLC 444 Intra profile
1582−
1583− - .. row 13
1584−
1585− - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE``
1586−
1587− - Scalable Baseline profile
1588−
1589− - .. row 14
1590−
1591− - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH``
1592−
1593− - Scalable High profile
1594−
1595− - .. row 15
1596−
1597− - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA``
1598−
1599− - Scalable High Intra profile
1600−
1601− - .. row 16
1602−
1603− - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH``
1604−
1605− - Stereo High profile
1606−
1607− - .. row 17
1608−
1609− - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH``
1610−
1611− - Multiview High profile
1612−
1613−
1614−
1615−.. _v4l2-mpeg-video-mpeg4-profile:
1616−
1617−``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (enum v4l2_mpeg_video_mpeg4_profile)``
1021+enum v4l2_mpeg_video_mpeg4_profile -
16181022 The profile information for MPEG4. Applicable to the MPEG4 encoder.
16191023 Possible values are:
16201024
16211025
16221026
1623−.. flat-table::
1624− :header-rows: 0
1625− :stub-columns: 0
1626−
1627−
1628− - .. row 1
1629−
1630− - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE``
1631−
1632− - Simple profile
1633−
1634− - .. row 2
1635−
1636− - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_SIMPLE``
1637−
1638− - Advanced Simple profile
1639−
1640− - .. row 3
1641−
1642− - ``V4L2_MPEG_VIDEO_PROFILE_CORE``
1643−
1644− - Core profile
1645−
1646− - .. row 4
1647−
1648− - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE_SCALABLE``
1649−
1650− - Simple Scalable profile
1651−
1652− - .. row 5
1653−
1654− - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_CODING_EFFICIENCY``
1027+.. flat-table::
1028+ :header-rows: 0
1029+ :stub-columns: 0
16551030
1656− -
1031+ * - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE``
1032+ - Simple profile
1033+ * - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_SIMPLE``
1034+ - Advanced Simple profile
1035+ * - ``V4L2_MPEG_VIDEO_PROFILE_CORE``
1036+ - Core profile
1037+ * - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE_SCALABLE``
1038+ - Simple Scalable profile
1039+ * - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_CODING_EFFICIENCY``
1040+ -
16571041
16581042
16591043
@@ -1663,34 +1047,27 @@ Codec Control IDs · 3 unmodified lines
16631047
16641048 .. _v4l2-mpeg-video-multi-slice-mode:
16651049
1666−``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE (enum v4l2_mpeg_video_multi_slice_mode)``
1050+``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE``
1051+ (enum)
1052+
1053+enum v4l2_mpeg_video_multi_slice_mode -
16671054 Determines how the encoder should handle division of frame into
16681055 slices. Applicable to the encoder. Possible values are:
16691056
16701057
16711058
1059+.. tabularcolumns:: |p{8.7cm}|p{8.8cm}|
1060+
16721061 .. flat-table::
16731062 :header-rows: 0
16741063 :stub-columns: 0
16751064
1676−
1677− - .. row 1
1678−
1679− - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE``
1680−
1681− - Single slice per frame.
1682−
1683− - .. row 2
1684−
1685− - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``
1686−
1687− - Multiple slices with set maximum number of macroblocks per slice.
1688−
1689− - .. row 3
1690−
1691− - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``
1692−
1693− - Multiple slice with set maximum size in bytes per slice.
1065+ * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE``
1066+ - Single slice per frame.
1067+ * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``
1068+ - Multiple slices with set maximum number of macroblocks per slice.
1069+ * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``
1070+ - Multiple slice with set maximum size in bytes per slice.
16941071
16951072
16961073
@@ -1708,33 +1085,26 @@ Codec Control IDs · 11 unmodified lines
17081085
17091086 .. _v4l2-mpeg-video-h264-loop-filter-mode:
17101087
1711−``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE (enum v4l2_mpeg_video_h264_loop_filter_mode)``
1088+``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE``
1089+ (enum)
1090+
1091+enum v4l2_mpeg_video_h264_loop_filter_mode -
17121092 Loop filter mode for H264 encoder. Possible values are:
17131093
17141094
17151095
1096+.. tabularcolumns:: |p{14.0cm}|p{3.5cm}|
1097+
17161098 .. flat-table::
17171099 :header-rows: 0
17181100 :stub-columns: 0
17191101
1720−
1721− - .. row 1
1722−
1723− - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED``
1724−
1725− - Loop filter is enabled.
1726−
1727− - .. row 2
1728−
1729− - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED``
1730−
1731− - Loop filter is disabled.
1732−
1733− - .. row 3
1734−
1735− - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY``
1736−
1737− - Loop filter is disabled at the slice boundary.
1102+ * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED``
1103+ - Loop filter is enabled.
1104+ * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED``
1105+ - Loop filter is disabled.
1106+ * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY``
1107+ - Loop filter is disabled at the slice boundary.
17381108
17391109
17401110
@@ -1748,7 +1118,10 @@ Codec Control IDs · 7 unmodified lines
17481118
17491119 .. _v4l2-mpeg-video-h264-entropy-mode:
17501120
1751−``V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE (enum v4l2_mpeg_video_h264_entropy_mode)``
1121+``V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE``
1122+ (enum)
1123+
1124+enum v4l2_mpeg_video_h264_entropy_mode -
17521125 Entropy coding mode for H264 - CABAC/CAVALC. Applicable to the H264
17531126 encoder. Possible values are:
17541127
@@ -1758,18 +1131,10 @@ Codec Control IDs · 3 unmodified lines
17581131 :header-rows: 0
17591132 :stub-columns: 0
17601133
1761−
1762− - .. row 1
1763−
1764− - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC``
1765−
1766− - Use CAVLC entropy coding.
1767−
1768− - .. row 2
1769−
1770− - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC``
1771−
1772− - Use CABAC entropy coding.
1134+ * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC``
1135+ - Use CAVLC entropy coding.
1136+ * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC``
1137+ - Use CABAC entropy coding.
17731138
17741139
17751140
@@ -1909,30 +1274,27 @@ Codec Control IDs · 133 unmodified lines
19091274
19101275 .. _v4l2-mpeg-video-header-mode:
19111276
1912−``V4L2_CID_MPEG_VIDEO_HEADER_MODE (enum v4l2_mpeg_video_header_mode)``
1277+``V4L2_CID_MPEG_VIDEO_HEADER_MODE``
1278+ (enum)
1279+
1280+enum v4l2_mpeg_video_header_mode -
19131281 Determines whether the header is returned as the first buffer or is
19141282 it returned together with the first frame. Applicable to encoders.
19151283 Possible values are:
19161284
19171285
19181286
1287+.. tabularcolumns:: |p{10.3cm}|p{7.2cm}|
1288+
19191289 .. flat-table::
19201290 :header-rows: 0
19211291 :stub-columns: 0
19221292
1923−
1924− - .. row 1
1925−
1926− - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE``
1927−
1928− - The stream header is returned separately in the first buffer.
1929−
1930− - .. row 2
1931−
1932− - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME``
1933−
1934− - The stream header is returned together with the first encoded
1935− frame.
1293+ * - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE``
1294+ - The stream header is returned separately in the first buffer.
1295+ * - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME``
1296+ - The stream header is returned together with the first encoded
1297+ frame.
19361298
19371299
19381300
@@ -1965,52 +1327,31 @@ Codec Control IDs · 26 unmodified lines
19651327
19661328 .. _v4l2-mpeg-video-h264-sei-fp-arrangement-type:
19671329
1968−``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE (enum v4l2_mpeg_video_h264_sei_fp_arrangement_type)``
1330+``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE``
1331+ (enum)
1332+
1333+enum v4l2_mpeg_video_h264_sei_fp_arrangement_type -
19691334 Frame packing arrangement type for H264 SEI. Applicable to the H264
19701335 encoder. Possible values are:
19711336
1972−
1337+.. tabularcolumns:: |p{12cm}|p{5.5cm}|
19731338
19741339 .. flat-table::
19751340 :header-rows: 0
19761341 :stub-columns: 0
19771342
1978−
1979− - .. row 1
1980−
1981− - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD``
1982−
1983− - Pixels are alternatively from L and R.
1984−
1985− - .. row 2
1986−
1987− - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN``
1988−
1989− - L and R are interlaced by column.
1990−
1991− - .. row 3
1992−
1993− - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW``
1994−
1995− - L and R are interlaced by row.
1996−
1997− - .. row 4
1998−
1999− - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE``
2000−
2001− - L is on the left, R on the right.
2002−
2003− - .. row 5
2004−
2005− - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM``
2006−
2007− - L is on top, R on bottom.
2008−
2009− - .. row 6
2010−
2011− - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL``
2012−
2013− - One view per frame.
1343+ * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD``
1344+ - Pixels are alternatively from L and R.
1345+ * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN``
1346+ - L and R are interlaced by column.
1347+ * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW``
1348+ - L and R are interlaced by row.
1349+ * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE``
1350+ - L is on the left, R on the right.
1351+ * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM``
1352+ - L is on top, R on bottom.
1353+ * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL``
1354+ - One view per frame.
20141355
20151356
20161357
@@ -2021,61 +1362,36 @@ Codec Control IDs · 4 unmodified lines
20211362
20221363 .. _v4l2-mpeg-video-h264-fmo-map-type:
20231364
2024−``V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE (enum v4l2_mpeg_video_h264_fmo_map_type)``
1365+``V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE``
1366+ (enum)
1367+
1368+enum v4l2_mpeg_video_h264_fmo_map_type -
20251369 When using FMO, the map type divides the image in different scan
20261370 patterns of macroblocks. Applicable to the H264 encoder. Possible
20271371 values are:
20281372
2029−
1373+.. tabularcolumns:: |p{12.5cm}|p{5.0cm}|
20301374
20311375 .. flat-table::
20321376 :header-rows: 0
20331377 :stub-columns: 0
20341378
2035−
2036− - .. row 1
2037−
2038− - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES``
2039−
2040− - Slices are interleaved one after other with macroblocks in run
2041− length order.
2042−
2043− - .. row 2
2044−
2045− - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES``
2046−
2047− - Scatters the macroblocks based on a mathematical function known to
2048− both encoder and decoder.
2049−
2050− - .. row 3
2051−
2052− - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER``
2053−
2054− - Macroblocks arranged in rectangular areas or regions of interest.
2055−
2056− - .. row 4
2057−
2058− - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT``
2059−
2060− - Slice groups grow in a cyclic way from centre to outwards.
2061−
2062− - .. row 5
2063−
2064− - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN``
2065−
2066− - Slice groups grow in raster scan pattern from left to right.
2067−
2068− - .. row 6
2069−
2070− - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN``
2071−
2072− - Slice groups grow in wipe scan pattern from top to bottom.
2073−
2074− - .. row 7
2075−
2076− - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT``
2077−
2078− - User defined map type.
1379+ * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES``
1380+ - Slices are interleaved one after other with macroblocks in run
1381+ length order.
1382+ * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES``
1383+ - Scatters the macroblocks based on a mathematical function known to
1384+ both encoder and decoder.
1385+ * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER``
1386+ - Macroblocks arranged in rectangular areas or regions of interest.
1387+ * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT``
1388+ - Slice groups grow in a cyclic way from centre to outwards.
1389+ * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN``
1390+ - Slice groups grow in raster scan pattern from left to right.
1391+ * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN``
1392+ - Slice groups grow in wipe scan pattern from top to bottom.
1393+ * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT``
1394+ - User defined map type.
20791395
20801396
20811397
@@ -2084,7 +1400,10 @@ Codec Control IDs · 2 unmodified lines
20841400
20851401 .. _v4l2-mpeg-video-h264-fmo-change-direction:
20861402
2087−``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION (enum v4l2_mpeg_video_h264_fmo_change_dir)``
1403+``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION``
1404+ (enum)
1405+
1406+enum v4l2_mpeg_video_h264_fmo_change_dir -
20881407 Specifies a direction of the slice group change for raster and wipe
20891408 maps. Applicable to the H264 encoder. Possible values are:
20901409
@@ -2094,18 +1413,10 @@ Codec Control IDs · 3 unmodified lines
20941413 :header-rows: 0
20951414 :stub-columns: 0
20961415
2097−
2098− - .. row 1
2099−
2100− - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT``
2101−
2102− - Raster scan or wipe right.
2103−
2104− - .. row 2
2105−
2106− - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT``
2107−
2108− - Reverse raster scan or wipe left.
1416+ * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT``
1417+ - Raster scan or wipe right.
1418+ * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT``
1419+ - Reverse raster scan or wipe left.
21091420
21101421
21111422
@@ -2132,18 +1443,10 @@ Codec Control IDs · 20 unmodified lines
21321443 :header-rows: 0
21331444 :stub-columns: 0
21341445
2135−
2136− - .. row 1
2137−
2138− - Bit 0:15
2139−
2140− - Slice ID
2141−
2142− - .. row 2
2143−
2144− - Bit 16:32
2145−
2146− - Slice position or order
1446+ * - Bit 0:15
1447+ - Slice ID
1448+ * - Bit 16:32
1449+ - Slice position or order
21471450
21481451
21491452
@@ -2152,7 +1455,10 @@ Codec Control IDs · 2 unmodified lines
21521455
21531456 .. _v4l2-mpeg-video-h264-hierarchical-coding-type:
21541457
2155−``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE (enum v4l2_mpeg_video_h264_hierarchical_coding_type)``
1458+``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE``
1459+ (enum)
1460+
1461+enum v4l2_mpeg_video_h264_hierarchical_coding_type -
21561462 Specifies the hierarchical coding type. Applicable to the H264
21571463 encoder. Possible values are:
21581464
@@ -2162,18 +1468,10 @@ Codec Control IDs · 3 unmodified lines
21621468 :header-rows: 0
21631469 :stub-columns: 0
21641470
2165−
2166− - .. row 1
2167−
2168− - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B``
2169−
2170− - Hierarchical B coding.
2171−
2172− - .. row 2
2173−
2174− - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P``
2175−
2176− - Hierarchical P coding.
1471+ * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B``
1472+ - Hierarchical B coding.
1473+ * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P``
1474+ - Hierarchical P coding.
21771475
21781476
21791477
@@ -2192,18 +1490,10 @@ Codec Control IDs · 12 unmodified lines
21921490 :header-rows: 0
21931491 :stub-columns: 0
21941492
2195−
2196− - .. row 1
2197−
2198− - Bit 0:15
2199−
2200− - QP value
2201−
2202− - .. row 2
2203−
2204− - Bit 16:32
2205−
2206− - Layer number
1493+ * - Bit 0:15
1494+ - QP value
1495+ * - Bit 16:32
1496+ - Layer number
22071497
22081498
22091499
@@ -2255,30 +1545,14 @@ MFC 5.1 Control IDs · 45 unmodified lines
22551545 :header-rows: 0
22561546 :stub-columns: 0
22571547
2258−
2259− - .. row 1
2260−
2261− - Bit 0:7
2262−
2263− - V chrominance information
2264−
2265− - .. row 2
2266−
2267− - Bit 8:15
2268−
2269− - U chrominance information
2270−
2271− - .. row 3
2272−
2273− - Bit 16:23
2274−
2275− - Y luminance information
2276−
2277− - .. row 4
2278−
2279− - Bit 24:31
2280−
2281− - Must be zero.
1548+ * - Bit 0:7
1549+ - V chrominance information
1550+ * - Bit 8:15
1551+ - U chrominance information
1552+ * - Bit 16:23
1553+ - Y luminance information
1554+ * - Bit 24:31
1555+ - Must be zero.
22821556
22831557
22841558
@@ -2321,38 +1595,30 @@ MFC 5.1 Control IDs · 36 unmodified lines
23211595
23221596 .. _v4l2-mpeg-mfc51-video-frame-skip-mode:
23231597
2324−``V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE (enum v4l2_mpeg_mfc51_video_frame_skip_mode)``
1598+``V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE``
1599+ (enum)
1600+
1601+enum v4l2_mpeg_mfc51_video_frame_skip_mode -
23251602 Indicates in what conditions the encoder should skip frames. If
23261603 encoding a frame would cause the encoded stream to be larger then a
23271604 chosen data limit then the frame will be skipped. Possible values
23281605 are:
23291606
23301607
1608+.. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
23311609
23321610 .. flat-table::
23331611 :header-rows: 0
23341612 :stub-columns: 0
23351613
2336−
2337− - .. row 1
2338−
2339− - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED``
2340−
2341− - Frame skip mode is disabled.
2342−
2343− - .. row 2
2344−
2345− - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT``
2346−
2347− - Frame skip mode enabled and buffer limit is set by the chosen
2348− level and is defined by the standard.
2349−
2350− - .. row 3
2351−
2352− - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT``
2353−
2354− - Frame skip mode enabled and buffer limit is set by the VBV
2355− (MPEG1/2/4) or CPB (H264) buffer size control.
1614+ * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED``
1615+ - Frame skip mode is disabled.
1616+ * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT``
1617+ - Frame skip mode enabled and buffer limit is set by the chosen
1618+ level and is defined by the standard.
1619+ * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT``
1620+ - Frame skip mode enabled and buffer limit is set by the VBV
1621+ (MPEG1/2/4) or CPB (H264) buffer size control.
23561622
23571623
23581624
@@ -2370,7 +1636,10 @@ MFC 5.1 Control IDs · 11 unmodified lines
23701636
23711637 .. _v4l2-mpeg-mfc51-video-force-frame-type:
23721638
2373−``V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE (enum v4l2_mpeg_mfc51_video_force_frame_type)``
1639+``V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE``
1640+ (enum)
1641+
1642+enum v4l2_mpeg_mfc51_video_force_frame_type -
23741643 Force a frame type for the next queued buffer. Applicable to
23751644 encoders. Possible values are:
23761645
@@ -2380,24 +1649,12 @@ MFC 5.1 Control IDs · 3 unmodified lines
23801649 :header-rows: 0
23811650 :stub-columns: 0
23821651
2383−
2384− - .. row 1
2385−
2386− - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED``
2387−
2388− - Forcing a specific frame type disabled.
2389−
2390− - .. row 2
2391−
2392− - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME``
2393−
2394− - Force an I-frame.
2395−
2396− - .. row 3
2397−
2398− - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED``
2399−
2400− - Force a non-coded frame.
1652+ * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED``
1653+ - Forcing a specific frame type disabled.
1654+ * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME``
1655+ - Force an I-frame.
1656+ * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED``
1657+ - Force a non-coded frame.
24011658
24021659
24031660
@@ -2416,7 +1673,10 @@ CX2341x Control IDs · 12 unmodified lines
24161673
24171674 .. _v4l2-mpeg-cx2341x-video-spatial-filter-mode:
24181675
2419−``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (enum v4l2_mpeg_cx2341x_video_spatial_filter_mode)``
1676+``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE``
1677+ (enum)
1678+
1679+enum v4l2_mpeg_cx2341x_video_spatial_filter_mode -
24201680 Sets the Spatial Filter mode (default ``MANUAL``). Possible values
24211681 are:
24221682
@@ -2426,18 +1686,10 @@ CX2341x Control IDs · 3 unmodified lines
24261686 :header-rows: 0
24271687 :stub-columns: 0
24281688
2429−
2430− - .. row 1
2431−
2432− - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL``
2433−
2434− - Choose the filter manually
2435−
2436− - .. row 2
2437−
2438− - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO``
2439−
2440− - Choose the filter automatically
1689+ * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL``
1690+ - Choose the filter manually
1691+ * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO``
1692+ - Choose the filter automatically
24411693
24421694
24431695
@@ -2447,52 +1699,40 @@ CX2341x Control IDs · 3 unmodified lines
24471699
24481700 .. _luma-spatial-filter-type:
24491701
2450−``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type)``
1702+``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE``
1703+ (enum)
1704+
1705+enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type -
24511706 Select the algorithm to use for the Luma Spatial Filter (default
24521707 ``1D_HOR``). Possible values:
24531708
24541709
24551710
1711+.. tabularcolumns:: |p{14.5cm}|p{3.0cm}|
1712+
24561713 .. flat-table::
24571714 :header-rows: 0
24581715 :stub-columns: 0
24591716
2460−
2461− - .. row 1
2462−
2463− - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF``
2464−
2465− - No filter
2466−
2467− - .. row 2
2468−
2469− - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR``
2470−
2471− - One-dimensional horizontal
2472−
2473− - .. row 3
2474−
2475− - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT``
2476−
2477− - One-dimensional vertical
2478−
2479− - .. row 4
2480−
2481− - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE``
2482−
2483− - Two-dimensional separable
2484−
2485− - .. row 5
2486−
2487− - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE``
2488−
2489− - Two-dimensional symmetrical non-separable
1717+ * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF``
1718+ - No filter
1719+ * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR``
1720+ - One-dimensional horizontal
1721+ * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT``
1722+ - One-dimensional vertical
1723+ * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE``
1724+ - Two-dimensional separable
1725+ * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE``
1726+ - Two-dimensional symmetrical non-separable
24901727
24911728
24921729
24931730 .. _chroma-spatial-filter-type:
24941731
2495−``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type)``
1732+``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE``
1733+ (enum)
1734+
1735+enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type -
24961736 Select the algorithm for the Chroma Spatial Filter (default
24971737 ``1D_HOR``). Possible values are:
24981738
@@ -2502,24 +1742,19 @@ CX2341x Control IDs · 3 unmodified lines
25021742 :header-rows: 0
25031743 :stub-columns: 0
25041744
2505−
2506− - .. row 1
2507−
2508− - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF``
2509−
2510− - No filter
2511−
2512− - .. row 2
2513−
2514− - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR``
2515−
2516− - One-dimensional horizontal
1745+ * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF``
1746+ - No filter
1747+ * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR``
1748+ - One-dimensional horizontal
25171749
25181750
25191751
25201752 .. _v4l2-mpeg-cx2341x-video-temporal-filter-mode:
25211753
2522−``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (enum v4l2_mpeg_cx2341x_video_temporal_filter_mode)``
1754+``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE``
1755+ (enum)
1756+
1757+enum v4l2_mpeg_cx2341x_video_temporal_filter_mode -
25231758 Sets the Temporal Filter mode (default ``MANUAL``). Possible values
25241759 are:
25251760
@@ -2529,18 +1764,10 @@ CX2341x Control IDs · 3 unmodified lines
25291764 :header-rows: 0
25301765 :stub-columns: 0
25311766
2532−
2533− - .. row 1
2534−
2535− - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL``
2536−
2537− - Choose the filter manually
2538−
2539− - .. row 2
2540−
2541− - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO``
2542−
2543− - Choose the filter automatically
1767+ * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL``
1768+ - Choose the filter manually
1769+ * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO``
1770+ - Choose the filter automatically
25441771
25451772
25461773
@@ -2550,7 +1777,10 @@ CX2341x Control IDs · 3 unmodified lines
25501777
25511778 .. _v4l2-mpeg-cx2341x-video-median-filter-type:
25521779
2553−``V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (enum v4l2_mpeg_cx2341x_video_median_filter_type)``
1780+``V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE``
1781+ (enum)
1782+
1783+enum v4l2_mpeg_cx2341x_video_median_filter_type -
25541784 Median Filter Type (default ``OFF``). Possible values are:
25551785
25561786
@@ -2559,36 +1789,16 @@ CX2341x Control IDs · 2 unmodified lines
25591789 :header-rows: 0
25601790 :stub-columns: 0
25611791
2562−
2563− - .. row 1
2564−
2565− - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF``
2566−
2567− - No filter
2568−
2569− - .. row 2
2570−
2571− - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR``
2572−
2573− - Horizontal filter
2574−
2575− - .. row 3
2576−
2577− - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT``
2578−
2579− - Vertical filter
2580−
2581− - .. row 4
2582−
2583− - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT``
2584−
2585− - Horizontal and vertical filter
2586−
2587− - .. row 5
2588−
2589− - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG``
2590−
2591− - Diagonal filter
1792+ * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF``
1793+ - No filter
1794+ * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR``
1795+ - Horizontal filter
1796+ * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT``
1797+ - Vertical filter
1798+ * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT``
1799+ - Horizontal and vertical filter
1800+ * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG``
1801+ - Diagonal filter
25921802
25931803
25941804
@@ -2631,7 +1841,10 @@ VPX Control IDs · 36 unmodified lines
26311841
26321842 .. _v4l2-vpx-num-partitions:
26331843
2634−``V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (enum v4l2_vp8_num_partitions)``
1844+``V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS``
1845+ (enum)
1846+
1847+enum v4l2_vp8_num_partitions -
26351848 The number of token partitions to use in VP8 encoder. Possible
26361849 values are:
26371850
@@ -2641,30 +1854,14 @@ VPX Control IDs · 3 unmodified lines
26411854 :header-rows: 0
26421855 :stub-columns: 0
26431856
2644−
2645− - .. row 1
2646−
2647− - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION``
2648−
2649− - 1 coefficient partition
2650−
2651− - .. row 2
2652−
2653− - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS``
2654−
2655− - 2 coefficient partitions
2656−
2657− - .. row 3
2658−
2659− - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS``
2660−
2661− - 4 coefficient partitions
2662−
2663− - .. row 4
2664−
2665− - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS``
2666−
2667− - 8 coefficient partitions
1857+ * - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION``
1858+ - 1 coefficient partition
1859+ * - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS``
1860+ - 2 coefficient partitions
1861+ * - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS``
1862+ - 4 coefficient partitions
1863+ * - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS``
1864+ - 8 coefficient partitions
26681865
26691866
26701867
@@ -2673,37 +1870,28 @@ VPX Control IDs · 2 unmodified lines
26731870
26741871 .. _v4l2-vpx-num-ref-frames:
26751872
2676−``V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES (enum v4l2_vp8_num_ref_frames)``
1873+``V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES``
1874+ (enum)
1875+
1876+enum v4l2_vp8_num_ref_frames -
26771877 The number of reference pictures for encoding P frames. Possible
26781878 values are:
26791879
2680−
1880+.. tabularcolumns:: |p{7.9cm}|p{9.6cm}|
26811881
26821882 .. flat-table::
26831883 :header-rows: 0
26841884 :stub-columns: 0
26851885
2686−
2687− - .. row 1
2688−
2689− - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME``
2690−
2691− - Last encoded frame will be searched
2692−
2693− - .. row 2
2694−
2695− - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME``
2696−
2697− - Two frames will be searched among the last encoded frame, the
2698− golden frame and the alternate reference (altref) frame. The
2699− encoder implementation will decide which two are chosen.
2700−
2701− - .. row 3
2702−
2703− - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME``
2704−
2705− - The last encoded frame, the golden frame and the altref frame will
2706− be searched.
1886+ * - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME``
1887+ - Last encoded frame will be searched
1888+ * - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME``
1889+ - Two frames will be searched among the last encoded frame, the
1890+ golden frame and the alternate reference (altref) frame. The
1891+ encoder implementation will decide which two are chosen.
1892+ * - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME``
1893+ - The last encoded frame, the golden frame and the altref frame will
1894+ be searched.
27071895
27081896
27091897
@@ -2726,31 +1914,33 @@ VPX Control IDs · 16 unmodified lines
27261914
27271915 .. _v4l2-vpx-golden-frame-sel:
27281916
2729−``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL (enum v4l2_vp8_golden_frame_sel)``
1917+``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL``
1918+ (enum)
1919+
1920+enum v4l2_vp8_golden_frame_sel -
27301921 Selects the golden frame for encoding. Possible values are:
27311922
1923+.. raw:: latex
27321924
1925+ \begin{adjustbox}{width=\columnwidth}
1926+
1927+.. tabularcolumns:: |p{11.0cm}|p{10.0cm}|
27331928
27341929 .. flat-table::
27351930 :header-rows: 0
27361931 :stub-columns: 0
27371932
1933+ * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV``
1934+ - Use the (n-2)th frame as a golden frame, current frame index being
1935+ 'n'.
1936+ * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD``
1937+ - Use the previous specific frame indicated by
1938+ ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD`` as a
1939+ golden frame.
27381940
2739− - .. row 1
2740−
2741− - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV``
2742−
2743− - Use the (n-2)th frame as a golden frame, current frame index being
2744− 'n'.
2745−
2746− - .. row 2
2747−
2748− - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD``
2749−
2750− - Use the previous specific frame indicated by
2751− V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD as a
2752− golden frame.
1941+.. raw:: latex
27531942
1943+ \end{adjustbox}
27541944
27551945
27561946 ``V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (integer)``
@@ -2791,7 +1981,10 @@ Camera Control IDs · 34 unmodified lines
27911981
27921982 .. _v4l2-exposure-auto-type:
27931983
2794−``V4L2_CID_EXPOSURE_AUTO (enum v4l2_exposure_auto_type)``
1984+``V4L2_CID_EXPOSURE_AUTO``
1985+ (enum)
1986+
1987+enum v4l2_exposure_auto_type -
27951988 Enables automatic adjustments of the exposure time and/or iris
27961989 aperture. The effect of manual changes of the exposure time or iris
27971990 aperture while these features are enabled is undefined, drivers
@@ -2803,30 +1996,14 @@ Camera Control IDs · 5 unmodified lines
28031996 :header-rows: 0
28041997 :stub-columns: 0
28051998
2806−
2807− - .. row 1
2808−
2809− - ``V4L2_EXPOSURE_AUTO``
2810−
2811− - Automatic exposure time, automatic iris aperture.
2812−
2813− - .. row 2
2814−
2815− - ``V4L2_EXPOSURE_MANUAL``
2816−
2817− - Manual exposure time, manual iris.
2818−
2819− - .. row 3
2820−
2821− - ``V4L2_EXPOSURE_SHUTTER_PRIORITY``
2822−
2823− - Manual exposure time, auto iris.
2824−
2825− - .. row 4
2826−
2827− - ``V4L2_EXPOSURE_APERTURE_PRIORITY``
2828−
2829− - Auto exposure time, manual iris.
1999+ * - ``V4L2_EXPOSURE_AUTO``
2000+ - Automatic exposure time, automatic iris aperture.
2001+ * - ``V4L2_EXPOSURE_MANUAL``
2002+ - Manual exposure time, manual iris.
2003+ * - ``V4L2_EXPOSURE_SHUTTER_PRIORITY``
2004+ - Manual exposure time, auto iris.
2005+ * - ``V4L2_EXPOSURE_APERTURE_PRIORITY``
2006+ - Auto exposure time, manual iris.
28302007
28312008
28322009
@@ -2856,45 +2033,32 @@ Camera Control IDs · 23 unmodified lines
28562033
28572034 .. _v4l2-exposure-metering:
28582035
2859−``V4L2_CID_EXPOSURE_METERING (enum v4l2_exposure_metering)``
2860− Determines how the camera measures the amount of light available for
2861− the frame exposure. Possible values are:
2862−
2863−
2864−
2865−.. flat-table::
2866− :header-rows: 0
2867− :stub-columns: 0
2868−
2869−
2870− - .. row 1
2871−
2872− - ``V4L2_EXPOSURE_METERING_AVERAGE``
2873−
2874− - Use the light information coming from the entire frame and average
2875− giving no weighting to any particular portion of the metered area.
2876−
2877− - .. row 2
2878−
2879− - ``V4L2_EXPOSURE_METERING_CENTER_WEIGHTED``
2880−
2881− - Average the light information coming from the entire frame giving
2882− priority to the center of the metered area.
2883−
2884− - .. row 3
2885−
2886− - ``V4L2_EXPOSURE_METERING_SPOT``
2036+``V4L2_CID_EXPOSURE_METERING``
2037+ (enum)
28872038
2888− - Measure only very small area at the center of the frame.
2039+enum v4l2_exposure_metering -
2040+ Determines how the camera measures the amount of light available for
2041+ the frame exposure. Possible values are:
28892042
2890− - .. row 4
2043+.. tabularcolumns:: |p{8.5cm}|p{9.0cm}|
28912044
2892− - ``V4L2_EXPOSURE_METERING_MATRIX``
2045+.. flat-table::
2046+ :header-rows: 0
2047+ :stub-columns: 0
28932048
2894− - A multi-zone metering. The light intensity is measured in several
2895− points of the frame and the results are combined. The algorithm of
2896− the zones selection and their significance in calculating the
2897− final value is device dependent.
2049+ * - ``V4L2_EXPOSURE_METERING_AVERAGE``
2050+ - Use the light information coming from the entire frame and average
2051+ giving no weighting to any particular portion of the metered area.
2052+ * - ``V4L2_EXPOSURE_METERING_CENTER_WEIGHTED``
2053+ - Average the light information coming from the entire frame giving
2054+ priority to the center of the metered area.
2055+ * - ``V4L2_EXPOSURE_METERING_SPOT``
2056+ - Measure only very small area at the center of the frame.
2057+ * - ``V4L2_EXPOSURE_METERING_MATRIX``
2058+ - A multi-zone metering. The light intensity is measured in several
2059+ points of the frame and the results are combined. The algorithm of
2060+ the zones selection and their significance in calculating the
2061+ final value is device dependent.
28982062
28992063
29002064
@@ -2968,77 +2132,48 @@ Camera Control IDs · 67 unmodified lines
29682132 control may stop updates of the ``V4L2_CID_AUTO_FOCUS_STATUS``
29692133 control value.
29702134
2971−
2135+.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
29722136
29732137 .. flat-table::
29742138 :header-rows: 0
29752139 :stub-columns: 0
29762140
2977−
2978− - .. row 1
2979−
2980− - ``V4L2_AUTO_FOCUS_STATUS_IDLE``
2981−
2982− - Automatic focus is not active.
2983−
2984− - .. row 2
2985−
2986− - ``V4L2_AUTO_FOCUS_STATUS_BUSY``
2987−
2988− - Automatic focusing is in progress.
2989−
2990− - .. row 3
2991−
2992− - ``V4L2_AUTO_FOCUS_STATUS_REACHED``
2993−
2994− - Focus has been reached.
2995−
2996− - .. row 4
2997−
2998− - ``V4L2_AUTO_FOCUS_STATUS_FAILED``
2999−
3000− - Automatic focus has failed, the driver will not transition from
3001− this state until another action is performed by an application.
2141+ * - ``V4L2_AUTO_FOCUS_STATUS_IDLE``
2142+ - Automatic focus is not active.
2143+ * - ``V4L2_AUTO_FOCUS_STATUS_BUSY``
2144+ - Automatic focusing is in progress.
2145+ * - ``V4L2_AUTO_FOCUS_STATUS_REACHED``
2146+ - Focus has been reached.
2147+ * - ``V4L2_AUTO_FOCUS_STATUS_FAILED``
2148+ - Automatic focus has failed, the driver will not transition from
2149+ this state until another action is performed by an application.
30022150
30032151
30042152
30052153 .. _v4l2-auto-focus-range:
30062154
3007−``V4L2_CID_AUTO_FOCUS_RANGE (enum v4l2_auto_focus_range)``
3008− Determines auto focus distance range for which lens may be adjusted.
2155+``V4L2_CID_AUTO_FOCUS_RANGE``
2156+ (enum)
30092157
2158+enum v4l2_auto_focus_range -
2159+ Determines auto focus distance range for which lens may be adjusted.
30102160
2161+.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
30112162
30122163 .. flat-table::
30132164 :header-rows: 0
30142165 :stub-columns: 0
30152166
3016−
3017− - .. row 1
3018−
3019− - ``V4L2_AUTO_FOCUS_RANGE_AUTO``
3020−
3021− - The camera automatically selects the focus range.
3022−
3023− - .. row 2
3024−
3025− - ``V4L2_AUTO_FOCUS_RANGE_NORMAL``
3026−
3027− - Normal distance range, limited for best automatic focus
3028− performance.
3029−
3030− - .. row 3
3031−
3032− - ``V4L2_AUTO_FOCUS_RANGE_MACRO``
3033−
3034− - Macro (close-up) auto focus. The camera will use its minimum
3035− possible distance for auto focus.
3036−
3037− - .. row 4
3038−
3039− - ``V4L2_AUTO_FOCUS_RANGE_INFINITY``
3040−
3041− - The lens is set to focus on an object at infinite distance.
2167+ * - ``V4L2_AUTO_FOCUS_RANGE_AUTO``
2168+ - The camera automatically selects the focus range.
2169+ * - ``V4L2_AUTO_FOCUS_RANGE_NORMAL``
2170+ - Normal distance range, limited for best automatic focus
2171+ performance.
2172+ * - ``V4L2_AUTO_FOCUS_RANGE_MACRO``
2173+ - Macro (close-up) auto focus. The camera will use its minimum
2174+ possible distance for auto focus.
2175+ * - ``V4L2_AUTO_FOCUS_RANGE_INFINITY``
2176+ - The lens is set to focus on an object at infinite distance.
30422177
30432178
30442179
@@ -3088,90 +2223,53 @@ Camera Control IDs · 43 unmodified lines
30882223
30892224 .. _v4l2-auto-n-preset-white-balance:
30902225
3091−``V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE (enum v4l2_auto_n_preset_white_balance)``
2226+``V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE``
2227+ (enum)
2228+
2229+enum v4l2_auto_n_preset_white_balance -
30922230 Sets white balance to automatic, manual or a preset. The presets
30932231 determine color temperature of the light as a hint to the camera for
30942232 white balance adjustments resulting in most accurate color
30952233 representation. The following white balance presets are listed in
30962234 order of increasing color temperature.
30972235
3098−
2236+.. tabularcolumns:: |p{7.0 cm}|p{10.5cm}|
30992237
31002238 .. flat-table::
31012239 :header-rows: 0
31022240 :stub-columns: 0
31032241
3104−
3105− - .. row 1
3106−
3107− - ``V4L2_WHITE_BALANCE_MANUAL``
3108−
3109− - Manual white balance.
3110−
3111− - .. row 2
3112−
3113− - ``V4L2_WHITE_BALANCE_AUTO``
3114−
3115− - Automatic white balance adjustments.
3116−
3117− - .. row 3
3118−
3119− - ``V4L2_WHITE_BALANCE_INCANDESCENT``
3120−
3121− - White balance setting for incandescent (tungsten) lighting. It
3122− generally cools down the colors and corresponds approximately to
3123− 2500...3500 K color temperature range.
3124−
3125− - .. row 4
3126−
3127− - ``V4L2_WHITE_BALANCE_FLUORESCENT``
3128−
3129− - White balance preset for fluorescent lighting. It corresponds
3130− approximately to 4000...5000 K color temperature.
3131−
3132− - .. row 5
3133−
3134− - ``V4L2_WHITE_BALANCE_FLUORESCENT_H``
3135−
3136− - With this setting the camera will compensate for fluorescent H
3137− lighting.
3138−
3139− - .. row 6
3140−
3141− - ``V4L2_WHITE_BALANCE_HORIZON``
3142−
3143− - White balance setting for horizon daylight. It corresponds
3144− approximately to 5000 K color temperature.
3145−
3146− - .. row 7
3147−
3148− - ``V4L2_WHITE_BALANCE_DAYLIGHT``
3149−
3150− - White balance preset for daylight (with clear sky). It corresponds
3151− approximately to 5000...6500 K color temperature.
3152−
3153− - .. row 8
3154−
3155− - ``V4L2_WHITE_BALANCE_FLASH``
3156−
3157− - With this setting the camera will compensate for the flash light.
3158− It slightly warms up the colors and corresponds roughly to
3159− 5000...5500 K color temperature.
3160−
3161− - .. row 9
3162−
3163− - ``V4L2_WHITE_BALANCE_CLOUDY``
3164−
3165− - White balance preset for moderately overcast sky. This option
3166− corresponds approximately to 6500...8000 K color temperature
3167− range.
3168−
3169− - .. row 10
3170−
3171− - ``V4L2_WHITE_BALANCE_SHADE``
3172−
3173− - White balance preset for shade or heavily overcast sky. It
3174− corresponds approximately to 9000...10000 K color temperature.
2242+ * - ``V4L2_WHITE_BALANCE_MANUAL``
2243+ - Manual white balance.
2244+ * - ``V4L2_WHITE_BALANCE_AUTO``
2245+ - Automatic white balance adjustments.
2246+ * - ``V4L2_WHITE_BALANCE_INCANDESCENT``
2247+ - White balance setting for incandescent (tungsten) lighting. It
2248+ generally cools down the colors and corresponds approximately to
2249+ 2500...3500 K color temperature range.
2250+ * - ``V4L2_WHITE_BALANCE_FLUORESCENT``
2251+ - White balance preset for fluorescent lighting. It corresponds
2252+ approximately to 4000...5000 K color temperature.
2253+ * - ``V4L2_WHITE_BALANCE_FLUORESCENT_H``
2254+ - With this setting the camera will compensate for fluorescent H
2255+ lighting.
2256+ * - ``V4L2_WHITE_BALANCE_HORIZON``
2257+ - White balance setting for horizon daylight. It corresponds
2258+ approximately to 5000 K color temperature.
2259+ * - ``V4L2_WHITE_BALANCE_DAYLIGHT``
2260+ - White balance preset for daylight (with clear sky). It corresponds
2261+ approximately to 5000...6500 K color temperature.
2262+ * - ``V4L2_WHITE_BALANCE_FLASH``
2263+ - With this setting the camera will compensate for the flash light.
2264+ It slightly warms up the colors and corresponds roughly to
2265+ 5000...5500 K color temperature.
2266+ * - ``V4L2_WHITE_BALANCE_CLOUDY``
2267+ - White balance preset for moderately overcast sky. This option
2268+ corresponds approximately to 6500...8000 K color temperature
2269+ range.
2270+ * - ``V4L2_WHITE_BALANCE_SHADE``
2271+ - White balance preset for shade or heavily overcast sky. It
2272+ corresponds approximately to 9000...10000 K color temperature.
31752273
31762274
31772275
@@ -3205,7 +2303,10 @@ Camera Control IDs · 27 unmodified lines
32052303
32062304 .. _v4l2-iso-sensitivity-auto-type:
32072305
3208−``V4L2_CID_ISO_SENSITIVITY_AUTO (enum v4l2_iso_sensitivity_type)``
2306+``V4L2_CID_ISO_SENSITIVITY_AUTO``
2307+ (enum)
2308+
2309+enum v4l2_iso_sensitivity_type -
32092310 Enables or disables automatic ISO sensitivity adjustments.
32102311
32112312
@@ -3214,24 +2315,19 @@ Camera Control IDs · 2 unmodified lines
32142315 :header-rows: 0
32152316 :stub-columns: 0
32162317
3217−
3218− - .. row 1
3219−
3220− - ``V4L2_CID_ISO_SENSITIVITY_MANUAL``
3221−
3222− - Manual ISO sensitivity.
3223−
3224− - .. row 2
3225−
3226− - ``V4L2_CID_ISO_SENSITIVITY_AUTO``
3227−
3228− - Automatic ISO sensitivity adjustments.
2318+ * - ``V4L2_CID_ISO_SENSITIVITY_MANUAL``
2319+ - Manual ISO sensitivity.
2320+ * - ``V4L2_CID_ISO_SENSITIVITY_AUTO``
2321+ - Automatic ISO sensitivity adjustments.
32292322
32302323
32312324
32322325 .. _v4l2-scene-mode:
32332326
3234−``V4L2_CID_SCENE_MODE (enum v4l2_scene_mode)``
2327+``V4L2_CID_SCENE_MODE``
2328+ (enum)
2329+
2330+enum v4l2_scene_mode -
32352331 This control allows to select scene programs as the camera automatic
32362332 modes optimized for common shooting scenes. Within these modes the
32372333 camera determines best exposure, aperture, focusing, light metering,
@@ -3243,133 +2339,77 @@ Camera Control IDs · 5 unmodified lines
32432339 to ``V4L2_SCENE_MODE_NONE`` to make sure the other possibly related
32442340 controls are accessible. The following scene programs are defined:
32452341
3246−
2342+.. tabularcolumns:: |p{6.0cm}|p{11.5cm}|
32472343
32482344 .. flat-table::
32492345 :header-rows: 0
32502346 :stub-columns: 0
32512347
3252−
3253− - .. row 1
3254−
3255− - ``V4L2_SCENE_MODE_NONE``
3256−
3257− - The scene mode feature is disabled.
3258−
3259− - .. row 2
3260−
3261− - ``V4L2_SCENE_MODE_BACKLIGHT``
3262−
3263− - Backlight. Compensates for dark shadows when light is coming from
3264− behind a subject, also by automatically turning on the flash.
3265−
3266− - .. row 3
3267−
3268− - ``V4L2_SCENE_MODE_BEACH_SNOW``
3269−
3270− - Beach and snow. This mode compensates for all-white or bright
3271− scenes, which tend to look gray and low contrast, when camera's
3272− automatic exposure is based on an average scene brightness. To
3273− compensate, this mode automatically slightly overexposes the
3274− frames. The white balance may also be adjusted to compensate for
3275− the fact that reflected snow looks bluish rather than white.
3276−
3277− - .. row 4
3278−
3279− - ``V4L2_SCENE_MODE_CANDLELIGHT``
3280−
3281− - Candle light. The camera generally raises the ISO sensitivity and
3282− lowers the shutter speed. This mode compensates for relatively
3283− close subject in the scene. The flash is disabled in order to
3284− preserve the ambiance of the light.
3285−
3286− - .. row 5
3287−
3288− - ``V4L2_SCENE_MODE_DAWN_DUSK``
3289−
3290− - Dawn and dusk. Preserves the colors seen in low natural light
3291− before dusk and after down. The camera may turn off the flash, and
3292− automatically focus at infinity. It will usually boost saturation
3293− and lower the shutter speed.
3294−
3295− - .. row 6
3296−
3297− - ``V4L2_SCENE_MODE_FALL_COLORS``
3298−
3299− - Fall colors. Increases saturation and adjusts white balance for
3300− color enhancement. Pictures of autumn leaves get saturated reds
3301− and yellows.
3302−
3303− - .. row 7
3304−
3305− - ``V4L2_SCENE_MODE_FIREWORKS``
3306−
3307− - Fireworks. Long exposure times are used to capture the expanding
3308− burst of light from a firework. The camera may invoke image
3309− stabilization.
3310−
3311− - .. row 8
3312−
3313− - ``V4L2_SCENE_MODE_LANDSCAPE``
3314−
3315− - Landscape. The camera may choose a small aperture to provide deep
3316− depth of field and long exposure duration to help capture detail
3317− in dim light conditions. The focus is fixed at infinity. Suitable
3318− for distant and wide scenery.
3319−
3320− - .. row 9
3321−
3322− - ``V4L2_SCENE_MODE_NIGHT``
3323−
3324− - Night, also known as Night Landscape. Designed for low light
3325− conditions, it preserves detail in the dark areas without blowing
3326− out bright objects. The camera generally sets itself to a
3327− medium-to-high ISO sensitivity, with a relatively long exposure
3328− time, and turns flash off. As such, there will be increased image
3329− noise and the possibility of blurred image.
3330−
3331− - .. row 10
3332−
3333− - ``V4L2_SCENE_MODE_PARTY_INDOOR``
3334−
3335− - Party and indoor. Designed to capture indoor scenes that are lit
3336− by indoor background lighting as well as the flash. The camera
3337− usually increases ISO sensitivity, and adjusts exposure for the
3338− low light conditions.
3339−
3340− - .. row 11
3341−
3342− - ``V4L2_SCENE_MODE_PORTRAIT``
3343−
3344− - Portrait. The camera adjusts the aperture so that the depth of
3345− field is reduced, which helps to isolate the subject against a
3346− smooth background. Most cameras recognize the presence of faces in
3347− the scene and focus on them. The color hue is adjusted to enhance
3348− skin tones. The intensity of the flash is often reduced.
3349−
3350− - .. row 12
3351−
3352− - ``V4L2_SCENE_MODE_SPORTS``
3353−
3354− - Sports. Significantly increases ISO and uses a fast shutter speed
3355− to freeze motion of rapidly-moving subjects. Increased image noise
3356− may be seen in this mode.
3357−
3358− - .. row 13
3359−
3360− - ``V4L2_SCENE_MODE_SUNSET``
3361−
3362− - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps
3363− up the saturation.
3364−
3365− - .. row 14
3366−
3367− - ``V4L2_SCENE_MODE_TEXT``
3368−
3369− - Text. It applies extra contrast and sharpness, it is typically a
3370− black-and-white mode optimized for readability. Automatic focus
3371− may be switched to close-up mode and this setting may also involve
3372− some lens-distortion correction.
2348+ * - ``V4L2_SCENE_MODE_NONE``
2349+ - The scene mode feature is disabled.
2350+ * - ``V4L2_SCENE_MODE_BACKLIGHT``
2351+ - Backlight. Compensates for dark shadows when light is coming from
2352+ behind a subject, also by automatically turning on the flash.
2353+ * - ``V4L2_SCENE_MODE_BEACH_SNOW``
2354+ - Beach and snow. This mode compensates for all-white or bright
2355+ scenes, which tend to look gray and low contrast, when camera's
2356+ automatic exposure is based on an average scene brightness. To
2357+ compensate, this mode automatically slightly overexposes the
2358+ frames. The white balance may also be adjusted to compensate for
2359+ the fact that reflected snow looks bluish rather than white.
2360+ * - ``V4L2_SCENE_MODE_CANDLELIGHT``
2361+ - Candle light. The camera generally raises the ISO sensitivity and
2362+ lowers the shutter speed. This mode compensates for relatively
2363+ close subject in the scene. The flash is disabled in order to
2364+ preserve the ambiance of the light.
2365+ * - ``V4L2_SCENE_MODE_DAWN_DUSK``
2366+ - Dawn and dusk. Preserves the colors seen in low natural light
2367+ before dusk and after down. The camera may turn off the flash, and
2368+ automatically focus at infinity. It will usually boost saturation
2369+ and lower the shutter speed.
2370+ * - ``V4L2_SCENE_MODE_FALL_COLORS``
2371+ - Fall colors. Increases saturation and adjusts white balance for
2372+ color enhancement. Pictures of autumn leaves get saturated reds
2373+ and yellows.
2374+ * - ``V4L2_SCENE_MODE_FIREWORKS``
2375+ - Fireworks. Long exposure times are used to capture the expanding
2376+ burst of light from a firework. The camera may invoke image
2377+ stabilization.
2378+ * - ``V4L2_SCENE_MODE_LANDSCAPE``
2379+ - Landscape. The camera may choose a small aperture to provide deep
2380+ depth of field and long exposure duration to help capture detail
2381+ in dim light conditions. The focus is fixed at infinity. Suitable
2382+ for distant and wide scenery.
2383+ * - ``V4L2_SCENE_MODE_NIGHT``
2384+ - Night, also known as Night Landscape. Designed for low light
2385+ conditions, it preserves detail in the dark areas without blowing
2386+ out bright objects. The camera generally sets itself to a
2387+ medium-to-high ISO sensitivity, with a relatively long exposure
2388+ time, and turns flash off. As such, there will be increased image
2389+ noise and the possibility of blurred image.
2390+ * - ``V4L2_SCENE_MODE_PARTY_INDOOR``
2391+ - Party and indoor. Designed to capture indoor scenes that are lit
2392+ by indoor background lighting as well as the flash. The camera
2393+ usually increases ISO sensitivity, and adjusts exposure for the
2394+ low light conditions.
2395+ * - ``V4L2_SCENE_MODE_PORTRAIT``
2396+ - Portrait. The camera adjusts the aperture so that the depth of
2397+ field is reduced, which helps to isolate the subject against a
2398+ smooth background. Most cameras recognize the presence of faces in
2399+ the scene and focus on them. The color hue is adjusted to enhance
2400+ skin tones. The intensity of the flash is often reduced.
2401+ * - ``V4L2_SCENE_MODE_SPORTS``
2402+ - Sports. Significantly increases ISO and uses a fast shutter speed
2403+ to freeze motion of rapidly-moving subjects. Increased image noise
2404+ may be seen in this mode.
2405+ * - ``V4L2_SCENE_MODE_SUNSET``
2406+ - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps
2407+ up the saturation.
2408+ * - ``V4L2_SCENE_MODE_TEXT``
2409+ - Text. It applies extra contrast and sharpness, it is typically a
2410+ black-and-white mode optimized for readability. Automatic focus
2411+ may be switched to close-up mode and this setting may also involve
2412+ some lens-distortion correction.
33732413
33742414
33752415
@@ -3393,24 +2433,12 @@ Camera Control IDs · 17 unmodified lines
33932433 :header-rows: 0
33942434 :stub-columns: 0
33952435
3396−
3397− - .. row 1
3398−
3399− - ``V4L2_LOCK_EXPOSURE``
3400−
3401− - Automatic exposure adjustments lock.
3402−
3403− - .. row 2
3404−
3405− - ``V4L2_LOCK_WHITE_BALANCE``
3406−
3407− - Automatic white balance adjustments lock.
3408−
3409− - .. row 3
3410−
3411− - ``V4L2_LOCK_FOCUS``
3412−
3413− - Automatic focus lock.
2436+ * - ``V4L2_LOCK_EXPOSURE``
2437+ - Automatic exposure adjustments lock.
2438+ * - ``V4L2_LOCK_WHITE_BALANCE``
2439+ - Automatic white balance adjustments lock.
2440+ * - ``V4L2_LOCK_FOCUS``
2441+ - Automatic focus lock.
34142442
34152443
34162444
@@ -3570,7 +2598,10 @@ FM_TX Control IDs · 153 unmodified lines
35702598 Configures pilot tone frequency value. Unit is in Hz. The range and
35712599 step are driver-specific.
35722600
3573−``V4L2_CID_TUNE_PREEMPHASIS (enum v4l2_preemphasis)``
2601+``V4L2_CID_TUNE_PREEMPHASIS``
2602+ (enum)
2603+
2604+enum v4l2_preemphasis -
35742605 Configures the pre-emphasis value for broadcasting. A pre-emphasis
35752606 filter is applied to the broadcast to accentuate the high audio
35762607 frequencies. Depending on the region, a time constant of either 50
@@ -3583,24 +2614,12 @@ FM_TX Control IDs · 6 unmodified lines
35832614 :header-rows: 0
35842615 :stub-columns: 0
35852616
3586−
3587− - .. row 1
3588−
3589− - ``V4L2_PREEMPHASIS_DISABLED``
3590−
3591− - No pre-emphasis is applied.
3592−
3593− - .. row 2
3594−
3595− - ``V4L2_PREEMPHASIS_50_uS``
3596−
3597− - A pre-emphasis of 50 uS is used.
3598−
3599− - .. row 3
3600−
3601− - ``V4L2_PREEMPHASIS_75_uS``
3602−
3603− - A pre-emphasis of 75 uS is used.
2617+ * - ``V4L2_PREEMPHASIS_DISABLED``
2618+ - No pre-emphasis is applied.
2619+ * - ``V4L2_PREEMPHASIS_50_uS``
2620+ - A pre-emphasis of 50 uS is used.
2621+ * - ``V4L2_PREEMPHASIS_75_uS``
2622+ - A pre-emphasis of 75 uS is used.
36042623
36052624
36062625
@@ -3684,51 +2703,31 @@ Flash Control IDs · 77 unmodified lines
36842703 :header-rows: 0
36852704 :stub-columns: 0
36862705
3687−
3688− - .. row 1
3689−
3690− - ``V4L2_FLASH_LED_MODE_NONE``
3691−
3692− - Off.
3693−
3694− - .. row 2
3695−
3696− - ``V4L2_FLASH_LED_MODE_FLASH``
3697−
3698− - Flash mode.
3699−
3700− - .. row 3
3701−
3702− - ``V4L2_FLASH_LED_MODE_TORCH``
3703−
3704− - Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY.
2706+ * - ``V4L2_FLASH_LED_MODE_NONE``
2707+ - Off.
2708+ * - ``V4L2_FLASH_LED_MODE_FLASH``
2709+ - Flash mode.
2710+ * - ``V4L2_FLASH_LED_MODE_TORCH``
2711+ - Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY.
37052712
37062713
37072714
37082715 ``V4L2_CID_FLASH_STROBE_SOURCE (menu)``
37092716 Defines the source of the flash LED strobe.
37102717
3711−
2718+.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
37122719
37132720 .. flat-table::
37142721 :header-rows: 0
37152722 :stub-columns: 0
37162723
3717−
3718− - .. row 1
3719−
3720− - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE``
3721−
3722− - The flash strobe is triggered by using the
3723− V4L2_CID_FLASH_STROBE control.
3724−
3725− - .. row 2
3726−
3727− - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL``
3728−
3729− - The flash strobe is triggered by an external source. Typically
3730− this is a sensor, which makes it possible to synchronises the
3731− flash strobe start to exposure start.
2724+ * - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE``
2725+ - The flash strobe is triggered by using the
2726+ V4L2_CID_FLASH_STROBE control.
2727+ * - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL``
2728+ - The flash strobe is triggered by an external source. Typically
2729+ this is a sensor, which makes it possible to synchronises the
2730+ flash strobe start to exposure start.
37322731
37332732
37342733
@@ -3775,75 +2774,39 @@ Flash Control IDs · 40 unmodified lines
37752774 an effect is chip dependent. Reading the faults resets the control
37762775 and returns the chip to a usable state if possible.
37772776
3778−
2777+.. tabularcolumns:: |p{8.0cm}|p{9.5cm}|
37792778
37802779 .. flat-table::
37812780 :header-rows: 0
37822781 :stub-columns: 0
37832782
3784−
3785− - .. row 1
3786−
3787− - ``V4L2_FLASH_FAULT_OVER_VOLTAGE``
3788−
3789− - Flash controller voltage to the flash LED has exceeded the limit
3790− specific to the flash controller.
3791−
3792− - .. row 2
3793−
3794− - ``V4L2_FLASH_FAULT_TIMEOUT``
3795−
3796− - The flash strobe was still on when the timeout set by the user ---
3797− V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash
3798− controllers may set this in all such conditions.
3799−
3800− - .. row 3
3801−
3802− - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE``
3803−
3804− - The flash controller has overheated.
3805−
3806− - .. row 4
3807−
3808− - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT``
3809−
3810− - The short circuit protection of the flash controller has been
3811− triggered.
3812−
3813− - .. row 5
3814−
3815− - ``V4L2_FLASH_FAULT_OVER_CURRENT``
3816−
3817− - Current in the LED power supply has exceeded the limit specific to
3818− the flash controller.
3819−
3820− - .. row 6
3821−
3822− - ``V4L2_FLASH_FAULT_INDICATOR``
3823−
3824− - The flash controller has detected a short or open circuit
3825− condition on the indicator LED.
3826−
3827− - .. row 7
3828−
3829− - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE``
3830−
3831− - Flash controller voltage to the flash LED has been below the
3832− minimum limit specific to the flash controller.
3833−
3834− - .. row 8
3835−
3836− - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE``
3837−
3838− - The input voltage of the flash controller is below the limit under
3839− which strobing the flash at full current will not be possible.The
3840− condition persists until this flag is no longer set.
3841−
3842− - .. row 9
3843−
3844− - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE``
3845−
3846− - The temperature of the LED has exceeded its allowed upper limit.
2783+ * - ``V4L2_FLASH_FAULT_OVER_VOLTAGE``
2784+ - Flash controller voltage to the flash LED has exceeded the limit
2785+ specific to the flash controller.
2786+ * - ``V4L2_FLASH_FAULT_TIMEOUT``
2787+ - The flash strobe was still on when the timeout set by the user ---
2788+ V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash
2789+ controllers may set this in all such conditions.
2790+ * - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE``
2791+ - The flash controller has overheated.
2792+ * - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT``
2793+ - The short circuit protection of the flash controller has been
2794+ triggered.
2795+ * - ``V4L2_FLASH_FAULT_OVER_CURRENT``
2796+ - Current in the LED power supply has exceeded the limit specific to
2797+ the flash controller.
2798+ * - ``V4L2_FLASH_FAULT_INDICATOR``
2799+ - The flash controller has detected a short or open circuit
2800+ condition on the indicator LED.
2801+ * - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE``
2802+ - Flash controller voltage to the flash LED has been below the
2803+ minimum limit specific to the flash controller.
2804+ * - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE``
2805+ - The input voltage of the flash controller is below the limit under
2806+ which strobing the flash at full current will not be possible.The
2807+ condition persists until this flag is no longer set.
2808+ * - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE``
2809+ - The temperature of the LED has exceeded its allowed upper limit.
38472810
38482811
38492812
@@ -3886,48 +2849,24 @@ JPEG Control IDs · 36 unmodified lines
38862849 how Cb and Cr components are downsampled after coverting an input
38872850 image from RGB to Y'CbCr color space.
38882851
3889−
2852+.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
38902853
38912854 .. flat-table::
38922855 :header-rows: 0
38932856 :stub-columns: 0
38942857
3895−
3896− - .. row 1
3897−
3898− - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444``
3899−
3900− - No chroma subsampling, each pixel has Y, Cr and Cb values.
3901−
3902− - .. row 2
3903−
3904− - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422``
3905−
3906− - Horizontally subsample Cr, Cb components by a factor of 2.
3907−
3908− - .. row 3
3909−
3910− - ``V4L2_JPEG_CHROMA_SUBSAMPLING_420``
3911−
3912− - Subsample Cr, Cb components horizontally and vertically by 2.
3913−
3914− - .. row 4
3915−
3916− - ``V4L2_JPEG_CHROMA_SUBSAMPLING_411``
3917−
3918− - Horizontally subsample Cr, Cb components by a factor of 4.
3919−
3920− - .. row 5
3921−
3922− - ``V4L2_JPEG_CHROMA_SUBSAMPLING_410``
3923−
3924− - Subsample Cr, Cb components horizontally by 4 and vertically by 2.
3925−
3926− - .. row 6
3927−
3928− - ``V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY``
3929−
3930− - Use only luminance component.
2858+ * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444``
2859+ - No chroma subsampling, each pixel has Y, Cr and Cb values.
2860+ * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422``
2861+ - Horizontally subsample Cr, Cb components by a factor of 2.
2862+ * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_420``
2863+ - Subsample Cr, Cb components horizontally and vertically by 2.
2864+ * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_411``
2865+ - Horizontally subsample Cr, Cb components by a factor of 4.
2866+ * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_410``
2867+ - Subsample Cr, Cb components horizontally by 4 and vertically by 2.
2868+ * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY``
2869+ - Use only luminance component.
39312870
39322871
39332872
@@ -3969,36 +2908,16 @@ JPEG Control IDs · 35 unmodified lines
39692908 :header-rows: 0
39702909 :stub-columns: 0
39712910
3972−
3973− - .. row 1
3974−
3975− - ``V4L2_JPEG_ACTIVE_MARKER_APP0``
3976−
3977− - Application data segment APP\ :sub:`0`.
3978−
3979− - .. row 2
3980−
3981− - ``V4L2_JPEG_ACTIVE_MARKER_APP1``
3982−
3983− - Application data segment APP\ :sub:`1`.
3984−
3985− - .. row 3
3986−
3987− - ``V4L2_JPEG_ACTIVE_MARKER_COM``
3988−
3989− - Comment segment.
3990−
3991− - .. row 4
3992−
3993− - ``V4L2_JPEG_ACTIVE_MARKER_DQT``
3994−
3995− - Quantization tables segment.
3996−
3997− - .. row 5
3998−
3999− - ``V4L2_JPEG_ACTIVE_MARKER_DHT``
4000−
4001− - Huffman tables segment.
2911+ * - ``V4L2_JPEG_ACTIVE_MARKER_APP0``
2912+ - Application data segment APP\ :sub:`0`.
2913+ * - ``V4L2_JPEG_ACTIVE_MARKER_APP1``
2914+ - Application data segment APP\ :sub:`1`.
2915+ * - ``V4L2_JPEG_ACTIVE_MARKER_COM``
2916+ - Comment segment.
2917+ * - ``V4L2_JPEG_ACTIVE_MARKER_DQT``
2918+ - Quantization tables segment.
2919+ * - ``V4L2_JPEG_ACTIVE_MARKER_DHT``
2920+ - Huffman tables segment.
40022921
40032922
40042923
@@ -4162,13 +3081,19 @@ Digital Video Control IDs · 157 unmodified lines
41623081 EDIDs, then the bit for that pad will be 0. This read-only control
41633082 is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors.
41643083
4165−``V4L2_CID_DV_TX_MODE (enum v4l2_dv_tx_mode)``
3084+``V4L2_CID_DV_TX_MODE``
3085+ (enum)
3086+
3087+enum v4l2_dv_tx_mode -
41663088 HDMI transmitters can transmit in DVI-D mode (just video) or in HDMI
41673089 mode (video + audio + auxiliary data). This control selects which
41683090 mode to use: V4L2_DV_TX_MODE_DVI_D or V4L2_DV_TX_MODE_HDMI.
41693091 This control is applicable to HDMI connectors.
41703092
4171−``V4L2_CID_DV_TX_RGB_RANGE (enum v4l2_dv_rgb_range)``
3093+``V4L2_CID_DV_TX_RGB_RANGE``
3094+ (enum)
3095+
3096+enum v4l2_dv_rgb_range -
41723097 Select the quantization range for RGB output. V4L2_DV_RANGE_AUTO
41733098 follows the RGB quantization range specified in the standard for the
41743099 video interface (ie. :ref:`cea861` for HDMI).
@@ -4180,7 +3105,10 @@ Digital Video Control IDs · 5 unmodified lines
41803105 the number of bits per component. This control is applicable to VGA,
41813106 DVI-A/D, HDMI and DisplayPort connectors.
41823107
4183−``V4L2_CID_DV_TX_IT_CONTENT_TYPE (enum v4l2_dv_it_content_type)``
3108+``V4L2_CID_DV_TX_IT_CONTENT_TYPE``
3109+ (enum)
3110+
3111+enum v4l2_dv_it_content_type -
41843112 Configures the IT Content Type of the transmitted video. This
41853113 information is sent over HDMI and DisplayPort connectors as part of
41863114 the AVI InfoFrame. The term 'IT Content' is used for content that
@@ -4188,46 +3116,26 @@ Digital Video Control IDs · 1 unmodified line
41883116 or an analog source. The enum v4l2_dv_it_content_type defines
41893117 the possible content types:
41903118
4191−
3119+.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
41923120
41933121 .. flat-table::
41943122 :header-rows: 0
41953123 :stub-columns: 0
41963124
4197−
4198− - .. row 1
4199−
4200− - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS``
4201−
4202− - Graphics content. Pixel data should be passed unfiltered and
4203− without analog reconstruction.
4204−
4205− - .. row 2
4206−
4207− - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO``
4208−
4209− - Photo content. The content is derived from digital still pictures.
4210− The content should be passed through with minimal scaling and
4211− picture enhancements.
4212−
4213− - .. row 3
4214−
4215− - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA``
4216−
4217− - Cinema content.
4218−
4219− - .. row 4
4220−
4221− - ``V4L2_DV_IT_CONTENT_TYPE_GAME``
4222−
4223− - Game content. Audio and video latency should be minimized.
4224−
4225− - .. row 5
4226−
4227− - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC``
4228−
4229− - No IT Content information is available and the ITC bit in the AVI
4230− InfoFrame is set to 0.
3125+ * - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS``
3126+ - Graphics content. Pixel data should be passed unfiltered and
3127+ without analog reconstruction.
3128+ * - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO``
3129+ - Photo content. The content is derived from digital still pictures.
3130+ The content should be passed through with minimal scaling and
3131+ picture enhancements.
3132+ * - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA``
3133+ - Cinema content.
3134+ * - ``V4L2_DV_IT_CONTENT_TYPE_GAME``
3135+ - Game content. Audio and video latency should be minimized.
3136+ * - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC``
3137+ - No IT Content information is available and the ITC bit in the AVI
3138+ InfoFrame is set to 0.
42313139
42323140
42333141
@@ -4241,7 +3149,10 @@ Digital Video Control IDs · 7 unmodified lines
42413149 will be 0. This read-only control is applicable to DVI-D, HDMI and
42423150 DisplayPort connectors.
42433151
4244−``V4L2_CID_DV_RX_RGB_RANGE (enum v4l2_dv_rgb_range)``
3152+``V4L2_CID_DV_RX_RGB_RANGE``
3153+ (enum)
3154+
3155+enum v4l2_dv_rgb_range -
42453156 Select the quantization range for RGB input. V4L2_DV_RANGE_AUTO
42463157 follows the RGB quantization range specified in the standard for the
42473158 video interface (ie. :ref:`cea861` for HDMI).
@@ -4253,7 +3164,10 @@ Digital Video Control IDs · 5 unmodified lines
42533164 the number of bits per component. This control is applicable to VGA,
42543165 DVI-A/D, HDMI and DisplayPort connectors.
42553166
4256−``V4L2_CID_DV_RX_IT_CONTENT_TYPE (enum v4l2_dv_it_content_type)``
3167+``V4L2_CID_DV_RX_IT_CONTENT_TYPE``
3168+ (enum)
3169+
3170+enum v4l2_dv_it_content_type -
42573171 Reads the IT Content Type of the received video. This information is
42583172 sent over HDMI and DisplayPort connectors as part of the AVI
42593173 InfoFrame. The term 'IT Content' is used for content that originates
@@ -4325,7 +3239,10 @@ FM_RX Control IDs · 65 unmodified lines
43253239 broadcasts speech. If the transmitter doesn't make this distinction,
43263240 then it will be set.
43273241
4328−``V4L2_CID_TUNE_DEEMPHASIS (enum v4l2_deemphasis)``
3242+``V4L2_CID_TUNE_DEEMPHASIS``
3243+ (enum)
3244+
3245+enum v4l2_deemphasis -
43293246 Configures the de-emphasis value for reception. A de-emphasis filter
43303247 is applied to the broadcast to accentuate the high audio
43313248 frequencies. Depending on the region, a time constant of either 50
@@ -4338,24 +3255,12 @@ FM_RX Control IDs · 6 unmodified lines
43383255 :header-rows: 0
43393256 :stub-columns: 0
43403257
4341−
4342− - .. row 1
4343−
4344− - ``V4L2_DEEMPHASIS_DISABLED``
4345−
4346− - No de-emphasis is applied.
4347−
4348− - .. row 2
4349−
4350− - ``V4L2_DEEMPHASIS_50_uS``
4351−
4352− - A de-emphasis of 50 uS is used.
4353−
4354− - .. row 3
4355−
4356− - ``V4L2_DEEMPHASIS_75_uS``
4357−
4358− - A de-emphasis of 75 uS is used.
3258+ * - ``V4L2_DEEMPHASIS_DISABLED``
3259+ - No de-emphasis is applied.
3260+ * - ``V4L2_DEEMPHASIS_50_uS``
3261+ - A de-emphasis of 50 uS is used.
3262+ * - ``V4L2_DEEMPHASIS_75_uS``
3263+ - A de-emphasis of 75 uS is used.
43593264
43603265
43613266
@@ -4382,43 +3287,27 @@ Detect Control IDs · 20 unmodified lines
43823287 ``V4L2_CID_DETECT_MD_MODE (menu)``
43833288 Sets the motion detection mode.
43843289
4385−
3290+.. tabularcolumns:: |p{7.5cm}|p{10.0cm}|
43863291
43873292 .. flat-table::
43883293 :header-rows: 0
43893294 :stub-columns: 0
43903295
4391−
4392− - .. row 1
4393−
4394− - ``V4L2_DETECT_MD_MODE_DISABLED``
4395−
4396− - Disable motion detection.
4397−
4398− - .. row 2
4399−
4400− - ``V4L2_DETECT_MD_MODE_GLOBAL``
4401−
4402− - Use a single motion detection threshold.
4403−
4404− - .. row 3
4405−
4406− - ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID``
4407−
4408− - The image is divided into a grid, each cell with its own motion
4409− detection threshold. These thresholds are set through the
4410− ``V4L2_CID_DETECT_MD_THRESHOLD_GRID`` matrix control.
4411−
4412− - .. row 4
4413−
4414− - ``V4L2_DETECT_MD_MODE_REGION_GRID``
4415−
4416− - The image is divided into a grid, each cell with its own region
4417− value that specifies which per-region motion detection thresholds
4418− should be used. Each region has its own thresholds. How these
4419− per-region thresholds are set up is driver-specific. The region
4420− values for the grid are set through the
4421− ``V4L2_CID_DETECT_MD_REGION_GRID`` matrix control.
3296+ * - ``V4L2_DETECT_MD_MODE_DISABLED``
3297+ - Disable motion detection.
3298+ * - ``V4L2_DETECT_MD_MODE_GLOBAL``
3299+ - Use a single motion detection threshold.
3300+ * - ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID``
3301+ - The image is divided into a grid, each cell with its own motion
3302+ detection threshold. These thresholds are set through the
3303+ ``V4L2_CID_DETECT_MD_THRESHOLD_GRID`` matrix control.
3304+ * - ``V4L2_DETECT_MD_MODE_REGION_GRID``
3305+ - The image is divided into a grid, each cell with its own region
3306+ value that specifies which per-region motion detection thresholds
3307+ should be used. Each region has its own thresholds. How these
3308+ per-region thresholds are set up is driver-specific. The region
3309+ values for the grid are set through the
3310+ ``V4L2_CID_DETECT_MD_REGION_GRID`` matrix control.
44223311
44233312
44243313
Documentation/media/uapi/v4l/field-order.rst+74−122
@@ -47,140 +47,92 @@ clearer. · 46 unmodified lines
4747 All video capture and output devices must report the current field
4848 order. Some drivers may permit the selection of a different order, to
4949 this end applications initialize the ``field`` field of struct
50−:ref:`v4l2_pix_format <v4l2-pix-format>` before calling the
50+:c:type:`v4l2_pix_format` before calling the
5151 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. If this is not desired it
5252 should have the value ``V4L2_FIELD_ANY`` (0).
5353
5454
55−.. _v4l2-field:
56−
5755 enum v4l2_field
5856 ===============
5957
58+.. c:type:: v4l2_field
59+
60+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
61+
6062 .. flat-table::
6163 :header-rows: 0
6264 :stub-columns: 0
6365 :widths: 3 1 4
6466
65−
66− - .. row 1
67−
68− - ``V4L2_FIELD_ANY``
69−
70− - 0
71−
72− - Applications request this field order when any one of the
73− ``V4L2_FIELD_NONE``, ``V4L2_FIELD_TOP``, ``V4L2_FIELD_BOTTOM``, or
74− ``V4L2_FIELD_INTERLACED`` formats is acceptable. Drivers choose
75− depending on hardware capabilities or e. g. the requested image
76− size, and return the actual field order. Drivers must never return
77− ``V4L2_FIELD_ANY``. If multiple field orders are possible the
78− driver must choose one of the possible field orders during
79− :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or
80− :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`. struct
81− :ref:`v4l2_buffer <v4l2-buffer>` ``field`` can never be
82− ``V4L2_FIELD_ANY``.
83−
84− - .. row 2
85−
86− - ``V4L2_FIELD_NONE``
87−
88− - 1
89−
90− - Images are in progressive format, not interlaced. The driver may
91− also indicate this order when it cannot distinguish between
92− ``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM``.
93−
94− - .. row 3
95−
96− - ``V4L2_FIELD_TOP``
97−
98− - 2
99−
100− - Images consist of the top (aka odd) field only.
101−
102− - .. row 4
103−
104− - ``V4L2_FIELD_BOTTOM``
105−
106− - 3
107−
108− - Images consist of the bottom (aka even) field only. Applications
109− may wish to prevent a device from capturing interlaced images
110− because they will have "comb" or "feathering" artefacts around
111− moving objects.
112−
113− - .. row 5
114−
115− - ``V4L2_FIELD_INTERLACED``
116−
117− - 4
118−
119− - Images contain both fields, interleaved line by line. The temporal
120− order of the fields (whether the top or bottom field is first
121− transmitted) depends on the current video standard. M/NTSC
122− transmits the bottom field first, all other standards the top
123− field first.
124−
125− - .. row 6
126−
127− - ``V4L2_FIELD_SEQ_TB``
128−
129− - 5
130−
131− - Images contain both fields, the top field lines are stored first
132− in memory, immediately followed by the bottom field lines. Fields
133− are always stored in temporal order, the older one first in
134− memory. Image sizes refer to the frame, not fields.
135−
136− - .. row 7
137−
138− - ``V4L2_FIELD_SEQ_BT``
139−
140− - 6
141−
142− - Images contain both fields, the bottom field lines are stored
143− first in memory, immediately followed by the top field lines.
144− Fields are always stored in temporal order, the older one first in
145− memory. Image sizes refer to the frame, not fields.
146−
147− - .. row 8
148−
149− - ``V4L2_FIELD_ALTERNATE``
150−
151− - 7
152−
153− - The two fields of a frame are passed in separate buffers, in
154− temporal order, i. e. the older one first. To indicate the field
155− parity (whether the current field is a top or bottom field) the
156− driver or application, depending on data direction, must set
157− struct :ref:`v4l2_buffer <v4l2-buffer>` ``field`` to
158− ``V4L2_FIELD_TOP`` or ``V4L2_FIELD_BOTTOM``. Any two successive
159− fields pair to build a frame. If fields are successive, without
160− any dropped fields between them (fields can drop individually),
161− can be determined from the struct
162− :ref:`v4l2_buffer <v4l2-buffer>` ``sequence`` field. This
163− format cannot be selected when using the read/write I/O method
164− since there is no way to communicate if a field was a top or
165− bottom field.
166−
167− - .. row 9
168−
169− - ``V4L2_FIELD_INTERLACED_TB``
170−
171− - 8
172−
173− - Images contain both fields, interleaved line by line, top field
174− first. The top field is transmitted first.
175−
176− - .. row 10
177−
178− - ``V4L2_FIELD_INTERLACED_BT``
179−
180− - 9
181−
182− - Images contain both fields, interleaved line by line, top field
183− first. The bottom field is transmitted first.
67+ * - ``V4L2_FIELD_ANY``
68+ - 0
69+ - Applications request this field order when any one of the
70+ ``V4L2_FIELD_NONE``, ``V4L2_FIELD_TOP``, ``V4L2_FIELD_BOTTOM``, or
71+ ``V4L2_FIELD_INTERLACED`` formats is acceptable. Drivers choose
72+ depending on hardware capabilities or e. g. the requested image
73+ size, and return the actual field order. Drivers must never return
74+ ``V4L2_FIELD_ANY``. If multiple field orders are possible the
75+ driver must choose one of the possible field orders during
76+ :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or
77+ :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`. struct
78+ :c:type:`v4l2_buffer` ``field`` can never be
79+ ``V4L2_FIELD_ANY``.
80+ * - ``V4L2_FIELD_NONE``
81+ - 1
82+ - Images are in progressive format, not interlaced. The driver may
83+ also indicate this order when it cannot distinguish between
84+ ``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM``.
85+ * - ``V4L2_FIELD_TOP``
86+ - 2
87+ - Images consist of the top (aka odd) field only.
88+ * - ``V4L2_FIELD_BOTTOM``
89+ - 3
90+ - Images consist of the bottom (aka even) field only. Applications
91+ may wish to prevent a device from capturing interlaced images
92+ because they will have "comb" or "feathering" artefacts around
93+ moving objects.
94+ * - ``V4L2_FIELD_INTERLACED``
95+ - 4
96+ - Images contain both fields, interleaved line by line. The temporal
97+ order of the fields (whether the top or bottom field is first
98+ transmitted) depends on the current video standard. M/NTSC
99+ transmits the bottom field first, all other standards the top
100+ field first.
101+ * - ``V4L2_FIELD_SEQ_TB``
102+ - 5
103+ - Images contain both fields, the top field lines are stored first
104+ in memory, immediately followed by the bottom field lines. Fields
105+ are always stored in temporal order, the older one first in
106+ memory. Image sizes refer to the frame, not fields.
107+ * - ``V4L2_FIELD_SEQ_BT``
108+ - 6
109+ - Images contain both fields, the bottom field lines are stored
110+ first in memory, immediately followed by the top field lines.
111+ Fields are always stored in temporal order, the older one first in
112+ memory. Image sizes refer to the frame, not fields.
113+ * - ``V4L2_FIELD_ALTERNATE``
114+ - 7
115+ - The two fields of a frame are passed in separate buffers, in
116+ temporal order, i. e. the older one first. To indicate the field
117+ parity (whether the current field is a top or bottom field) the
118+ driver or application, depending on data direction, must set
119+ struct :c:type:`v4l2_buffer` ``field`` to
120+ ``V4L2_FIELD_TOP`` or ``V4L2_FIELD_BOTTOM``. Any two successive
121+ fields pair to build a frame. If fields are successive, without
122+ any dropped fields between them (fields can drop individually),
123+ can be determined from the struct
124+ :c:type:`v4l2_buffer` ``sequence`` field. This
125+ format cannot be selected when using the read/write I/O method
126+ since there is no way to communicate if a field was a top or
127+ bottom field.
128+ * - ``V4L2_FIELD_INTERLACED_TB``
129+ - 8
130+ - Images contain both fields, interleaved line by line, top field
131+ first. The top field is transmitted first.
132+ * - ``V4L2_FIELD_INTERLACED_BT``
133+ - 9
134+ - Images contain both fields, interleaved line by line, top field
135+ first. The bottom field is transmitted first.
184136
185137
186138
Documentation/media/uapi/v4l/format.rst+1−1
@@ -22,7 +22,7 @@ to satisfy the request. Of course applications can also just query the · 21 unmodified lines
2222 current selection.
2323
2424 A single mechanism exists to negotiate all data formats using the
25−aggregate struct :ref:`v4l2_format <v4l2-format>` and the
25+aggregate struct :c:type:`v4l2_format` and the
2626 :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and
2727 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctls. Additionally the
2828 :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctl can be used to examine
Documentation/media/uapi/v4l/func-close.rst+2−2
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
2020 #include <unistd.h>
2121
2222
23−.. cpp:function:: int close( int fd )
24−
23+.. c:function:: int close( int fd )
24+ :name: v4l2-close
2525
2626 Arguments
2727 =========
Documentation/media/uapi/v4l/func-ioctl.rst+2−2
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
2020 #include <sys/ioctl.h>
2121
2222
23−.. cpp:function:: int ioctl( int fd, int request, void *argp )
24−
23+.. c:function:: int ioctl( int fd, int request, void *argp )
24+ :name: v4l2-ioctl
2525
2626 Arguments
2727 =========
Documentation/media/uapi/v4l/func-mmap.rst+9−7
@@ -21,8 +21,8 @@ Synopsis · 20 unmodified lines
2121 #include <sys/mman.h>
2222
2323
24−.. cpp:function:: void *mmap( void *start, size_t length, int prot, int flags, int fd, off_t offset )
25−
24+.. c:function:: void *mmap( void *start, size_t length, int prot, int flags, int fd, off_t offset )
25+ :name: v4l2-mmap
2626
2727 Arguments
2828 =========
@@ -37,9 +37,9 @@ Arguments · 8 unmodified lines
3737 ``length``
3838 Length of the memory area to map. This must be the same value as
3939 returned by the driver in the struct
40− :ref:`v4l2_buffer <v4l2-buffer>` ``length`` field for the
40+ :c:type:`v4l2_buffer` ``length`` field for the
4141 single-planar API, and the same value as returned by the driver in
42− the struct :ref:`v4l2_plane <v4l2-plane>` ``length`` field for
42+ the struct :c:type:`v4l2_plane` ``length`` field for
4343 the multi-planar API.
4444
4545 ``prot``
@@ -78,7 +78,9 @@ Arguments · 32 unmodified lines
7878 ``MAP_SHARED`` allows applications to share the mapped memory with
7979 other (e. g. child-) processes.
8080
81− .. note:: The Linux ``videobuf`` module which is used by some
81+ .. note::
82+
83+ The Linux ``videobuf`` module which is used by some
8284 drivers supports only ``MAP_SHARED``. ``MAP_PRIVATE`` requests
8385 copy-on-write semantics. V4L2 applications should not set the
8486 ``MAP_PRIVATE``, ``MAP_DENYWRITE``, ``MAP_EXECUTABLE`` or ``MAP_ANON``
@@ -90,9 +92,9 @@ Arguments · 5 unmodified lines
9092 ``offset``
9193 Offset of the buffer in device memory. This must be the same value
9294 as returned by the driver in the struct
93− :ref:`v4l2_buffer <v4l2-buffer>` ``m`` union ``offset`` field for
95+ :c:type:`v4l2_buffer` ``m`` union ``offset`` field for
9496 the single-planar API, and the same value as returned by the driver
95− in the struct :ref:`v4l2_plane <v4l2-plane>` ``m`` union
97+ in the struct :c:type:`v4l2_plane` ``m`` union
9698 ``mem_offset`` field for the multi-planar API.
9799
98100
Documentation/media/uapi/v4l/func-munmap.rst+4−4
@@ -21,8 +21,8 @@ Synopsis · 20 unmodified lines
2121 #include <sys/mman.h>
2222
2323
24−.. cpp:function:: int munmap( void *start, size_t length )
25−
24+.. c:function:: int munmap( void *start, size_t length )
25+ :name: v4l2-munmap
2626
2727 Arguments
2828 =========
@@ -34,9 +34,9 @@ Arguments · 5 unmodified lines
3434 ``length``
3535 Length of the mapped buffer. This must be the same value as given to
3636 :ref:`mmap() <func-mmap>` and returned by the driver in the struct
37− :ref:`v4l2_buffer <v4l2-buffer>` ``length`` field for the
37+ :c:type:`v4l2_buffer` ``length`` field for the
3838 single-planar API and in the struct
39− :ref:`v4l2_plane <v4l2-plane>` ``length`` field for the
39+ :c:type:`v4l2_plane` ``length`` field for the
4040 multi-planar API.
4141
4242
Documentation/media/uapi/v4l/func-open.rst+2−2
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
2020 #include <fcntl.h>
2121
2222
23−.. cpp:function:: int open( const char *device_name, int flags )
24−
23+.. c:function:: int open( const char *device_name, int flags )
24+ :name: v4l2-open
2525
2626 Arguments
2727 =========
Documentation/media/uapi/v4l/func-poll.rst+2−2
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
2020 #include <sys/poll.h>
2121
2222
23−.. cpp:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout )
24−
23+.. c:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout )
24+ :name: v4l2-poll
2525
2626 Arguments
2727 =========
Documentation/media/uapi/v4l/func-read.rst+5−3
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
2020 #include <unistd.h>
2121
2222
23−.. cpp:function:: ssize_t read( int fd, void *buf, size_t count )
24−
23+.. c:function:: ssize_t read( int fd, void *buf, size_t count )
24+ :name: v4l2-read
2525
2626 Arguments
2727 =========
@@ -30,8 +30,10 @@ Arguments · 2 unmodified lines
3030 File descriptor returned by :ref:`open() <func-open>`.
3131
3232 ``buf``
33−``count``
33+ Buffer to be filled
3434
35+``count``
36+ Max number of bytes to read
3537
3638 Description
3739 ===========
Documentation/media/uapi/v4l/func-select.rst+16−2
@@ -22,12 +22,26 @@ Synopsis · 21 unmodified lines
2222 #include <unistd.h>
2323
2424
25−.. cpp:function:: int select( int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout )
26−
25+.. c:function:: int select( int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout )
26+ :name: v4l2-select
2727
2828 Arguments
2929 =========
3030
31+``nfds``
32+ The highest-numbered file descriptor in any of the three sets, plus 1.
33+
34+``readfds``
35+ File descriptions to be watched if a read() call won't block.
36+
37+``writefds``
38+ File descriptions to be watched if a write() won't block.
39+
40+``exceptfds``
41+ File descriptions to be watched for V4L2 events.
42+
43+``timeout``
44+ Maximum time to wait.
3145
3246
3347 Description
Documentation/media/uapi/v4l/func-write.rst+5−3
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
2020 #include <unistd.h>
2121
2222
23−.. cpp:function:: ssize_t write( int fd, void *buf, size_t count )
24−
23+.. c:function:: ssize_t write( int fd, void *buf, size_t count )
24+ :name: v4l2-write
2525
2626 Arguments
2727 =========
@@ -30,8 +30,10 @@ Arguments · 2 unmodified lines
3030 File descriptor returned by :ref:`open() <func-open>`.
3131
3232 ``buf``
33−``count``
33+ Buffer with data to be written
3434
35+``count``
36+ Number of bytes at the buffer
3537
3638 Description
3739 ===========
Documentation/media/uapi/v4l/hist-v4l2.rst+148−261
@@ -30,14 +30,14 @@ aliases ``O_NONCAP`` and ``O_NOIO`` were defined. Applications can set · 29 unmodified lines
3030 this flag if they intend to access controls only, as opposed to capture
3131 applications which need exclusive access. The ``VIDEO_STD_XXX``
3232 identifiers are now ordinals instead of flags, and the
33−:c:func:`video_std_construct()` helper function takes id and
33+``video_std_construct()`` helper function takes id and
3434 transmission arguments.
3535
3636 1998-09-28: Revamped video standard. Made video controls individually
3737 enumerable.
3838
3939 1998-10-02: The ``id`` field was removed from struct
40−:c:type:`struct video_standard` and the color subcarrier fields were
40+struct ``video_standard`` and the color subcarrier fields were
4141 renamed. The :ref:`VIDIOC_QUERYSTD` ioctl was
4242 renamed to :ref:`VIDIOC_ENUMSTD`,
4343 :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` to
@@ -45,7 +45,7 @@ renamed to :ref:`VIDIOC_ENUMSTD`, · 1 unmodified line
4545 Codec API was released.
4646
4747 1998-11-08: Many minor changes. Most symbols have been renamed. Some
48−material changes to struct :ref:`v4l2_capability <v4l2-capability>`.
48+material changes to struct :c:type:`v4l2_capability`.
4949
5050 1998-11-12: The read/write directon of some ioctls was misdefined.
5151
@@ -117,7 +117,7 @@ to simplify the API, while making it more extensible and following · 65 unmodified lines
117117 common Linux driver API conventions.
118118
119119 1. Some typos in ``V4L2_FMT_FLAG`` symbols were fixed. struct
120− :ref:`v4l2_clip <v4l2-clip>` was changed for compatibility with
120+ :c:type:`v4l2_clip` was changed for compatibility with
121121 v4l. (1999-08-30)
122122
123123 2. ``V4L2_TUNER_SUB_LANG1`` was added. (1999-09-05)
@@ -151,15 +151,15 @@ common Linux driver API conventions. · 27 unmodified lines
151151 This change obsoletes the following ioctls: ``VIDIOC_S_INFMT``,
152152 ``VIDIOC_G_INFMT``, ``VIDIOC_S_OUTFMT``, ``VIDIOC_G_OUTFMT``,
153153 ``VIDIOC_S_VBIFMT`` and ``VIDIOC_G_VBIFMT``. The image format
154− structure :c:type:`struct v4l2_format` was renamed to struct
155− :ref:`v4l2_pix_format <v4l2-pix-format>`, while struct
156− :ref:`v4l2_format <v4l2-format>` is now the envelopping structure
154+ structure struct :c:type:`v4l2_format` was renamed to struct
155+ :c:type:`v4l2_pix_format`, while struct
156+ :c:type:`v4l2_format` is now the envelopping structure
157157 for all format negotiations.
158158
159159 5. Similar to the changes above, the ``VIDIOC_G_PARM`` and
160160 ``VIDIOC_S_PARM`` ioctls were merged with ``VIDIOC_G_OUTPARM`` and
161161 ``VIDIOC_S_OUTPARM``. A ``type`` field in the new struct
162− :ref:`v4l2_streamparm <v4l2-streamparm>` selects the respective
162+ :c:type:`v4l2_streamparm` selects the respective
163163 union member.
164164
165165 This change obsoletes the ``VIDIOC_G_OUTPARM`` and
@@ -178,7 +178,7 @@ common Linux driver API conventions. · 12 unmodified lines
178178 categories might have a greater separation, or may even appear in
179179 separate windows.
180180
181−7. The struct :ref:`v4l2_buffer <v4l2-buffer>` ``timestamp`` was
181+7. The struct :c:type:`v4l2_buffer` ``timestamp`` was
182182 changed to a 64 bit integer, containing the sampling or output time
183183 of the frame in nanoseconds. Additionally timestamps will be in
184184 absolute system time, not starting from zero at the beginning of a
@@ -202,7 +202,7 @@ common Linux driver API conventions. · 17 unmodified lines
202202 return a 64-bit integer.
203203
204204 8. A ``sequence`` field was added to struct
205− :ref:`v4l2_buffer <v4l2-buffer>`. The ``sequence`` field counts
205+ :c:type:`v4l2_buffer`. The ``sequence`` field counts
206206 captured frames, it is ignored by output devices. When a capture
207207 driver drops a frame, the sequence number of that frame is skipped.
208208
@@ -210,7 +210,7 @@ common Linux driver API conventions. · 1 unmodified line
210210 V4L2 Version 0.20 incremental changes
211211 =====================================
212212
213−1999-12-23: In struct :ref:`v4l2_vbi_format <v4l2-vbi-format>` the
213+1999-12-23: In struct :c:type:`v4l2_vbi_format` the
214214 ``reserved1`` field became ``offset``. Previously drivers were required
215215 to clear the ``reserved1`` field.
216216
@@ -254,9 +254,9 @@ multiple tuners into account.) · 37 unmodified lines
254254 2000-09-18: ``V4L2_BUF_TYPE_VBI`` was added. This may *break
255255 compatibility* as the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and
256256 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctls may fail now if the struct
257−:c:type:`struct v4l2_fmt` ``type`` field does not contain
257+struct ``v4l2_fmt`` ``type`` field does not contain
258258 ``V4L2_BUF_TYPE_VBI``. In the documentation of the struct
259−:ref:`v4l2_vbi_format <v4l2-vbi-format>` ``offset`` field the
259+:c:type:`v4l2_vbi_format` ``offset`` field the
260260 ambiguous phrase "rising edge" was changed to "leading edge".
261261
262262
@@ -321,7 +321,7 @@ This unnamed version was finally merged into Linux 2.5.46. · 58 unmodified lines
321321 until the application attempts to initiate a data exchange, see
322322 :ref:`open`.
323323
324−3. The struct :ref:`v4l2_capability <v4l2-capability>` changed
324+3. The struct :c:type:`v4l2_capability` changed
325325 dramatically. Note that also the size of the structure changed,
326326 which is encoded in the ioctl request code, thus older V4L2 devices
327327 will respond with an ``EINVAL`` error code to the new
@@ -354,7 +354,7 @@ This unnamed version was finally merged into Linux 2.5.46. · 26 unmodified lines
354354 ``V4L2_FLAG_MONOCHROME`` flag was removed, this information is
355355 available as described in :ref:`format`.
356356
357−4. In struct :ref:`v4l2_input <v4l2-input>` the ``assoc_audio``
357+4. In struct :c:type:`v4l2_input` the ``assoc_audio``
358358 field and the ``capability`` field and its only flag
359359 ``V4L2_INPUT_CAP_AUDIO`` was replaced by the new ``audioset`` field.
360360 Instead of linking one video input to one audio input this field
@@ -363,11 +363,11 @@ This unnamed version was finally merged into Linux 2.5.46. · 2 unmodified lines
363363 New fields are ``tuner`` (reversing the former link from tuners to
364364 video inputs), ``std`` and ``status``.
365365
366− Accordingly struct :ref:`v4l2_output <v4l2-output>` lost its
366+ Accordingly struct :c:type:`v4l2_output` lost its
367367 ``capability`` and ``assoc_audio`` fields. ``audioset``,
368368 ``modulator`` and ``std`` where added instead.
369369
370−5. The struct :ref:`v4l2_audio <v4l2-audio>` field ``audio`` was
370+5. The struct :c:type:`v4l2_audio` field ``audio`` was
371371 renamed to ``index``, for consistency with other structures. A new
372372 capability flag ``V4L2_AUDCAP_STEREO`` was added to indicated if the
373373 audio input in question supports stereo sound.
@@ -376,20 +376,20 @@ This unnamed version was finally merged into Linux 2.5.46. · 2 unmodified lines
376376 (However the same applies to AVL which is still there.)
377377
378378 Again for consistency the struct
379− :ref:`v4l2_audioout <v4l2-audioout>` field ``audio`` was renamed
379+ :c:type:`v4l2_audioout` field ``audio`` was renamed
380380 to ``index``.
381381
382−6. The struct :ref:`v4l2_tuner <v4l2-tuner>` ``input`` field was
382+6. The struct :c:type:`v4l2_tuner` ``input`` field was
383383 replaced by an ``index`` field, permitting devices with multiple
384384 tuners. The link between video inputs and tuners is now reversed,
385385 inputs point to their tuner. The ``std`` substructure became a
386386 simple set (more about this below) and moved into struct
387− :ref:`v4l2_input <v4l2-input>`. A ``type`` field was added.
387+ :c:type:`v4l2_input`. A ``type`` field was added.
388388
389− Accordingly in struct :ref:`v4l2_modulator <v4l2-modulator>` the
389+ Accordingly in struct :c:type:`v4l2_modulator` the
390390 ``output`` was replaced by an ``index`` field.
391391
392− In struct :ref:`v4l2_frequency <v4l2-frequency>` the ``port``
392+ In struct :c:type:`v4l2_frequency` the ``port``
393393 field was replaced by a ``tuner`` field containing the respective
394394 tuner or modulator index number. A tuner ``type`` field was added
395395 and the ``reserved`` field became larger for future extensions
@@ -405,7 +405,7 @@ This unnamed version was finally merged into Linux 2.5.46. · 9 unmodified lines
405405 :ref:`VIDIOC_S_STD <VIDIOC_G_STD>` now take a pointer to this
406406 type as argument. :ref:`VIDIOC_QUERYSTD` was
407407 added to autodetect the received standard, if the hardware has this
408− capability. In struct :ref:`v4l2_standard <v4l2-standard>` an
408+ capability. In struct :c:type:`v4l2_standard` an
409409 ``index`` field was added for
410410 :ref:`VIDIOC_ENUMSTD`. A
411411 :ref:`v4l2_std_id <v4l2-std-id>` field named ``id`` was added as
@@ -415,12 +415,12 @@ This unnamed version was finally merged into Linux 2.5.46. · 3 unmodified lines
415415 originally needed to distguish between variations of standards, were
416416 removed.
417417
418− Struct :c:type:`struct v4l2_enumstd` ceased to be.
418+ Struct ``v4l2_enumstd`` ceased to be.
419419 :ref:`VIDIOC_ENUMSTD` now takes a pointer to a
420− struct :ref:`v4l2_standard <v4l2-standard>` directly. The
420+ struct :c:type:`v4l2_standard` directly. The
421421 information which standards are supported by a particular video
422− input or output moved into struct :ref:`v4l2_input <v4l2-input>`
423− and struct :ref:`v4l2_output <v4l2-output>` fields named ``std``,
422+ input or output moved into struct :c:type:`v4l2_input`
423+ and struct :c:type:`v4l2_output` fields named ``std``,
424424 respectively.
425425
426426 8. The struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` fields
@@ -432,13 +432,13 @@ This unnamed version was finally merged into Linux 2.5.46. · 5 unmodified lines
432432 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`, but without the overhead of
433433 programming the hardware and regardless of I/O in progress.
434434
435− In struct :ref:`v4l2_format <v4l2-format>` the ``fmt`` union was
436− extended to contain struct :ref:`v4l2_window <v4l2-window>`. All
435+ In struct :c:type:`v4l2_format` the ``fmt`` union was
436+ extended to contain struct :c:type:`v4l2_window`. All
437437 image format negotiations are now possible with ``VIDIOC_G_FMT``,
438438 ``VIDIOC_S_FMT`` and ``VIDIOC_TRY_FMT``; ioctl. The ``VIDIOC_G_WIN``
439439 and ``VIDIOC_S_WIN`` ioctls to prepare for a video overlay were
440440 removed. The ``type`` field changed to type enum
441− :ref:`v4l2_buf_type <v4l2-buf-type>` and the buffer type names
441+ :c:type:`v4l2_buf_type` and the buffer type names
442442 changed as follows.
443443
444444
@@ -447,101 +447,45 @@ This unnamed version was finally merged into Linux 2.5.46. · 2 unmodified lines
447447 :header-rows: 1
448448 :stub-columns: 0
449449
450−
451− - .. row 1
452−
453− - Old defines
454−
455− - enum :ref:`v4l2_buf_type <v4l2-buf-type>`
456−
457− - .. row 2
458−
459− - ``V4L2_BUF_TYPE_CAPTURE``
460−
461− - ``V4L2_BUF_TYPE_VIDEO_CAPTURE``
462−
463− - .. row 3
464−
465− - ``V4L2_BUF_TYPE_CODECIN``
466−
467− - Omitted for now
468−
469− - .. row 4
470−
471− - ``V4L2_BUF_TYPE_CODECOUT``
472−
473− - Omitted for now
474−
475− - .. row 5
476−
477− - ``V4L2_BUF_TYPE_EFFECTSIN``
478−
479− - Omitted for now
480−
481− - .. row 6
482−
483− - ``V4L2_BUF_TYPE_EFFECTSIN2``
484−
485− - Omitted for now
486−
487− - .. row 7
488−
489− - ``V4L2_BUF_TYPE_EFFECTSOUT``
490−
491− - Omitted for now
492−
493− - .. row 8
494−
495− - ``V4L2_BUF_TYPE_VIDEOOUT``
496−
497− - ``V4L2_BUF_TYPE_VIDEO_OUTPUT``
498−
499− - .. row 9
500−
501− - ``-``
502−
503− - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``
504−
505− - .. row 10
506−
507− - ``-``
508−
509− - ``V4L2_BUF_TYPE_VBI_CAPTURE``
510−
511− - .. row 11
512−
513− - ``-``
514−
515− - ``V4L2_BUF_TYPE_VBI_OUTPUT``
516−
517− - .. row 12
518−
519− - ``-``
520−
521− - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE``
522−
523− - .. row 13
524−
525− - ``-``
526−
527− - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``
528−
529− - .. row 14
530−
531− - ``V4L2_BUF_TYPE_PRIVATE_BASE``
532−
533− - ``V4L2_BUF_TYPE_PRIVATE`` (but this is deprecated)
534−
535−
536−10. In struct :ref:`v4l2_fmtdesc <v4l2-fmtdesc>` a enum
537− :ref:`v4l2_buf_type <v4l2-buf-type>` field named ``type`` was
538− added as in struct :ref:`v4l2_format <v4l2-format>`. The
450+ * - Old defines
451+ - enum :c:type:`v4l2_buf_type`
452+ * - ``V4L2_BUF_TYPE_CAPTURE``
453+ - ``V4L2_BUF_TYPE_VIDEO_CAPTURE``
454+ * - ``V4L2_BUF_TYPE_CODECIN``
455+ - Omitted for now
456+ * - ``V4L2_BUF_TYPE_CODECOUT``
457+ - Omitted for now
458+ * - ``V4L2_BUF_TYPE_EFFECTSIN``
459+ - Omitted for now
460+ * - ``V4L2_BUF_TYPE_EFFECTSIN2``
461+ - Omitted for now
462+ * - ``V4L2_BUF_TYPE_EFFECTSOUT``
463+ - Omitted for now
464+ * - ``V4L2_BUF_TYPE_VIDEOOUT``
465+ - ``V4L2_BUF_TYPE_VIDEO_OUTPUT``
466+ * - ``-``
467+ - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``
468+ * - ``-``
469+ - ``V4L2_BUF_TYPE_VBI_CAPTURE``
470+ * - ``-``
471+ - ``V4L2_BUF_TYPE_VBI_OUTPUT``
472+ * - ``-``
473+ - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE``
474+ * - ``-``
475+ - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``
476+ * - ``V4L2_BUF_TYPE_PRIVATE_BASE``
477+ - ``V4L2_BUF_TYPE_PRIVATE`` (but this is deprecated)
478+
479+
480+10. In struct :c:type:`v4l2_fmtdesc` a enum
481+ :c:type:`v4l2_buf_type` field named ``type`` was
482+ added as in struct :c:type:`v4l2_format`. The
539483 ``VIDIOC_ENUM_FBUFFMT`` ioctl is no longer needed and was removed.
540484 These calls can be replaced by
541485 :ref:`VIDIOC_ENUM_FMT` with type
542486 ``V4L2_BUF_TYPE_VIDEO_OVERLAY``.
543487
544−11. In struct :ref:`v4l2_pix_format <v4l2-pix-format>` the ``depth``
488+11. In struct :c:type:`v4l2_pix_format` the ``depth``
545489 field was removed, assuming applications which recognize the format
546490 by its four-character-code already know the color depth, and others
547491 do not care about it. The same rationale lead to the removal of the
@@ -555,7 +499,7 @@ This unnamed version was finally merged into Linux 2.5.46. · 7 unmodified lines
555499 itself was removed.
556500
557501 The interlace flags were replaced by a enum
558− :ref:`v4l2_field <v4l2-field>` value in a newly added ``field``
502+ :c:type:`v4l2_field` value in a newly added ``field``
559503 field.
560504
561505
@@ -564,82 +508,50 @@ This unnamed version was finally merged into Linux 2.5.46. · 2 unmodified lines
564508 :header-rows: 1
565509 :stub-columns: 0
566510
567−
568− - .. row 1
569−
570− - Old flag
571−
572− - enum :ref:`v4l2_field <v4l2-field>`
573−
574− - .. row 2
575−
576− - ``V4L2_FMT_FLAG_NOT_INTERLACED``
577−
578− - ?
579−
580− - .. row 3
581−
582− - ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED``
583−
584− - ``V4L2_FIELD_INTERLACED``
585−
586− - .. row 4
587−
588− - ``V4L2_FMT_FLAG_TOPFIELD`` = ``V4L2_FMT_FLAG_ODDFIELD``
589−
590− - ``V4L2_FIELD_TOP``
591−
592− - .. row 5
593−
594− - ``V4L2_FMT_FLAG_BOTFIELD`` = ``V4L2_FMT_FLAG_EVENFIELD``
595−
596− - ``V4L2_FIELD_BOTTOM``
597−
598− - .. row 6
599−
600− - ``-``
601−
602− - ``V4L2_FIELD_SEQ_TB``
603−
604− - .. row 7
605−
606− - ``-``
607−
608− - ``V4L2_FIELD_SEQ_BT``
609−
610− - .. row 8
611−
612− - ``-``
613−
614− - ``V4L2_FIELD_ALTERNATE``
511+ * - Old flag
512+ - enum :c:type:`v4l2_field`
513+ * - ``V4L2_FMT_FLAG_NOT_INTERLACED``
514+ - ?
515+ * - ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED``
516+ - ``V4L2_FIELD_INTERLACED``
517+ * - ``V4L2_FMT_FLAG_TOPFIELD`` = ``V4L2_FMT_FLAG_ODDFIELD``
518+ - ``V4L2_FIELD_TOP``
519+ * - ``V4L2_FMT_FLAG_BOTFIELD`` = ``V4L2_FMT_FLAG_EVENFIELD``
520+ - ``V4L2_FIELD_BOTTOM``
521+ * - ``-``
522+ - ``V4L2_FIELD_SEQ_TB``
523+ * - ``-``
524+ - ``V4L2_FIELD_SEQ_BT``
525+ * - ``-``
526+ - ``V4L2_FIELD_ALTERNATE``
615527
616528
617529 The color space flags were replaced by a enum
618− :ref:`v4l2_colorspace <v4l2-colorspace>` value in a newly added
530+ :c:type:`v4l2_colorspace` value in a newly added
619531 ``colorspace`` field, where one of ``V4L2_COLORSPACE_SMPTE170M``,
620532 ``V4L2_COLORSPACE_BT878``, ``V4L2_COLORSPACE_470_SYSTEM_M`` or
621533 ``V4L2_COLORSPACE_470_SYSTEM_BG`` replaces ``V4L2_FMT_CS_601YUV``.
622534
623−12. In struct :ref:`v4l2_requestbuffers <v4l2-requestbuffers>` the
535+12. In struct :c:type:`v4l2_requestbuffers` the
624536 ``type`` field was properly defined as enum
625− :ref:`v4l2_buf_type <v4l2-buf-type>`. Buffer types changed as
537+ :c:type:`v4l2_buf_type`. Buffer types changed as
626538 mentioned above. A new ``memory`` field of type enum
627− :ref:`v4l2_memory <v4l2-memory>` was added to distinguish between
539+ :c:type:`v4l2_memory` was added to distinguish between
628540 I/O methods using buffers allocated by the driver or the
629541 application. See :ref:`io` for details.
630542
631−13. In struct :ref:`v4l2_buffer <v4l2-buffer>` the ``type`` field was
632− properly defined as enum :ref:`v4l2_buf_type <v4l2-buf-type>`.
543+13. In struct :c:type:`v4l2_buffer` the ``type`` field was
544+ properly defined as enum :c:type:`v4l2_buf_type`.
633545 Buffer types changed as mentioned above. A ``field`` field of type
634− enum :ref:`v4l2_field <v4l2-field>` was added to indicate if a
546+ enum :c:type:`v4l2_field` was added to indicate if a
635547 buffer contains a top or bottom field. The old field flags were
636548 removed. Since no unadjusted system time clock was added to the
637549 kernel as planned, the ``timestamp`` field changed back from type
638550 stamp_t, an unsigned 64 bit integer expressing the sample time in
639− nanoseconds, to struct :c:type:`struct timeval`. With the addition
551+ nanoseconds, to struct :c:type:`timeval`. With the addition
640552 of a second memory mapping method the ``offset`` field moved into
641553 union ``m``, and a new ``memory`` field of type enum
642− :ref:`v4l2_memory <v4l2-memory>` was added to distinguish between
554+ :c:type:`v4l2_memory` was added to distinguish between
643555 I/O methods. See :ref:`io` for details.
644556
645557 The ``V4L2_BUF_REQ_CONTIG`` flag was used by the V4L compatibility
@@ -648,7 +560,7 @@ This unnamed version was finally merged into Linux 2.5.46. · 2 unmodified lines
648560 indeed allocated in device memory rather than DMA-able system
649561 memory. It was barely useful and so was removed.
650562
651−14. In struct :ref:`v4l2_framebuffer <v4l2-framebuffer>` the
563+14. In struct :c:type:`v4l2_framebuffer` the
652564 ``base[3]`` array anticipating double- and triple-buffering in
653565 off-screen video memory, however without defining a synchronization
654566 mechanism, was replaced by a single pointer. The
@@ -659,42 +571,42 @@ This unnamed version was finally merged into Linux 2.5.46. · 4 unmodified lines
659571 ``V4L2_FBUF_CAP_LIST_CLIPPING`` and
660572 ``V4L2_FBUF_CAP_BITMAP_CLIPPING``.
661573
662−15. In struct :ref:`v4l2_clip <v4l2-clip>` the ``x``, ``y``,
574+15. In struct :c:type:`v4l2_clip` the ``x``, ``y``,
663575 ``width`` and ``height`` field moved into a ``c`` substructure of
664− type struct :ref:`v4l2_rect <v4l2-rect>`. The ``x`` and ``y``
576+ type struct :c:type:`v4l2_rect`. The ``x`` and ``y``
665577 fields were renamed to ``left`` and ``top``, i. e. offsets to a
666578 context dependent origin.
667579
668−16. In struct :ref:`v4l2_window <v4l2-window>` the ``x``, ``y``,
580+16. In struct :c:type:`v4l2_window` the ``x``, ``y``,
669581 ``width`` and ``height`` field moved into a ``w`` substructure as
670− above. A ``field`` field of type %v4l2-field; was added to
582+ above. A ``field`` field of type :c:type:`v4l2_field` was added to
671583 distinguish between field and frame (interlaced) overlay.
672584
673585 17. The digital zoom interface, including struct
674− :c:type:`struct v4l2_zoomcap`, struct
675− :c:type:`struct v4l2_zoom`, ``V4L2_ZOOM_NONCAP`` and
586+ struct ``v4l2_zoomcap``, struct
587+ struct ``v4l2_zoom``, ``V4L2_ZOOM_NONCAP`` and
676588 ``V4L2_ZOOM_WHILESTREAMING`` was replaced by a new cropping and
677589 scaling interface. The previously unused struct
678− :c:type:`struct v4l2_cropcap` and :c:type:`struct v4l2_crop`
590+ struct :c:type:`v4l2_cropcap` and struct :c:type:`v4l2_crop`
679591 where redefined for this purpose. See :ref:`crop` for details.
680592
681−18. In struct :ref:`v4l2_vbi_format <v4l2-vbi-format>` the
593+18. In struct :c:type:`v4l2_vbi_format` the
682594 ``SAMPLE_FORMAT`` field now contains a four-character-code as used
683595 to identify video image formats and ``V4L2_PIX_FMT_GREY`` replaces
684596 the ``V4L2_VBI_SF_UBYTE`` define. The ``reserved`` field was
685597 extended.
686598
687−19. In struct :ref:`v4l2_captureparm <v4l2-captureparm>` the type of
599+19. In struct :c:type:`v4l2_captureparm` the type of
688600 the ``timeperframe`` field changed from unsigned long to struct
689− :ref:`v4l2_fract <v4l2-fract>`. This allows the accurate
601+ :c:type:`v4l2_fract`. This allows the accurate
690602 expression of multiples of the NTSC-M frame rate 30000 / 1001. A new
691603 field ``readbuffers`` was added to control the driver behaviour in
692604 read I/O mode.
693605
694606 Similar changes were made to struct
695− :ref:`v4l2_outputparm <v4l2-outputparm>`.
607+ :c:type:`v4l2_outputparm`.
696608
697−20. The struct :c:type:`struct v4l2_performance` and
609+20. The struct ``v4l2_performance`` and
698610 ``VIDIOC_G_PERF`` ioctl were dropped. Except when using the
699611 :ref:`read/write I/O method <rw>`, which is limited anyway, this
700612 information is already available to applications.
@@ -768,46 +680,21 @@ V4L2 2003-11-05 · 67 unmodified lines
768680 :header-rows: 1
769681 :stub-columns: 0
770682
771−
772− - .. row 1
773−
774− - Symbol
775−
776− - In this document prior to revision 0.5
777−
778− - Corrected
779−
780− - .. row 2
781−
782− - ``V4L2_PIX_FMT_RGB24``
783−
784− - B, G, R
785−
786− - R, G, B
787−
788− - .. row 3
789−
790− - ``V4L2_PIX_FMT_BGR24``
791−
792− - R, G, B
793−
794− - B, G, R
795−
796− - .. row 4
797−
798− - ``V4L2_PIX_FMT_RGB32``
799−
800− - B, G, R, X
801−
802− - R, G, B, X
803−
804− - .. row 5
805−
806− - ``V4L2_PIX_FMT_BGR32``
807−
808− - R, G, B, X
809−
810− - B, G, R, X
683+ * - Symbol
684+ - In this document prior to revision 0.5
685+ - Corrected
686+ * - ``V4L2_PIX_FMT_RGB24``
687+ - B, G, R
688+ - R, G, B
689+ * - ``V4L2_PIX_FMT_BGR24``
690+ - R, G, B
691+ - B, G, R
692+ * - ``V4L2_PIX_FMT_RGB32``
693+ - B, G, R, X
694+ - R, G, B, X
695+ * - ``V4L2_PIX_FMT_BGR32``
696+ - R, G, B, X
697+ - B, G, R, X
811698
812699
813700 The ``V4L2_PIX_FMT_BGR24`` example was always correct.
@@ -834,7 +721,7 @@ V4L2 in Linux 2.6.8 · 20 unmodified lines
834721 ===================
835722
836723 1. A new field ``input`` (former ``reserved[0]``) was added to the
837− struct :ref:`v4l2_buffer <v4l2-buffer>` structure. Purpose of this
724+ struct :c:type:`v4l2_buffer` structure. Purpose of this
838725 field is to alternate between video inputs (e. g. cameras) in step
839726 with the video capturing process. This function must be enabled with
840727 the new ``V4L2_BUF_FLAG_INPUT`` flag. The ``flags`` field is no
@@ -854,7 +741,7 @@ V4L2 spec erratum 2004-08-01 · 13 unmodified lines
854741
855742 4. The documentation of the :ref:`VIDIOC_QBUF` and
856743 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctls did not mention the
857− struct :ref:`v4l2_buffer <v4l2-buffer>` ``memory`` field. It was
744+ struct :c:type:`v4l2_buffer` ``memory`` field. It was
858745 also missing from examples. Also on the ``VIDIOC_DQBUF`` page the ``EIO``
859746 error code was not documented.
860747
@@ -882,7 +769,7 @@ V4L2 in Linux 2.6.15 · 21 unmodified lines
882769 3. The ``VIDIOC_G_COMP`` and ``VIDIOC_S_COMP`` ioctl were renamed to
883770 ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` respectively. Their
884771 argument was replaced by a struct
885− :c:type:`struct v4l2_mpeg_compression` pointer. (The
772+ ``v4l2_mpeg_compression`` pointer. (The
886773 ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` ioctls where removed
887774 in Linux 2.6.25.)
888775
@@ -901,7 +788,7 @@ V4L2 spec erratum 2006-01-10 · 12 unmodified lines
901788 ============================
902789
903790 1. The ``V4L2_IN_ST_COLOR_KILL`` flag in struct
904− :ref:`v4l2_input <v4l2-input>` not only indicates if the color
791+ :c:type:`v4l2_input` not only indicates if the color
905792 killer is enabled, but also if it is active. (The color killer
906793 disables color decoding when it detects no color in the video signal
907794 to improve the image quality.)
@@ -914,18 +801,18 @@ V4L2 spec erratum 2006-01-10 · 6 unmodified lines
914801 V4L2 spec erratum 2006-02-03
915802 ============================
916803
917−1. In struct :ref:`v4l2_captureparm <v4l2-captureparm>` and struct
918− :ref:`v4l2_outputparm <v4l2-outputparm>` the ``timeperframe``
804+1. In struct :c:type:`v4l2_captureparm` and struct
805+ :c:type:`v4l2_outputparm` the ``timeperframe``
919806 field gives the time in seconds, not microseconds.
920807
921808
922809 V4L2 spec erratum 2006-02-04
923810 ============================
924811
925−1. The ``clips`` field in struct :ref:`v4l2_window <v4l2-window>`
926− must point to an array of struct :ref:`v4l2_clip <v4l2-clip>`, not
812+1. The ``clips`` field in struct :c:type:`v4l2_window`
813+ must point to an array of struct :c:type:`v4l2_clip`, not
927814 a linked list, because drivers ignore the struct
928− :c:type:`struct v4l2_clip`. ``next`` pointer.
815+ struct :c:type:`v4l2_clip`. ``next`` pointer.
929816
930817
931818 V4L2 in Linux 2.6.17
@@ -951,18 +838,18 @@ V4L2 spec erratum 2006-09-23 (Draft 0.15) · 19 unmodified lines
951838 not mentioned along with other buffer types.
952839
953840 2. In :ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` it was clarified that the struct
954− :ref:`v4l2_audio <v4l2-audio>` ``mode`` field is a flags field.
841+ :c:type:`v4l2_audio` ``mode`` field is a flags field.
955842
956843 3. :ref:`VIDIOC_QUERYCAP` did not mention the sliced VBI and radio
957844 capability flags.
958845
959846 4. In :ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUENCY>` it was clarified that applications
960847 must initialize the tuner ``type`` field of struct
961− :ref:`v4l2_frequency <v4l2-frequency>` before calling
848+ :c:type:`v4l2_frequency` before calling
962849 :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>`.
963850
964851 5. The ``reserved`` array in struct
965− :ref:`v4l2_requestbuffers <v4l2-requestbuffers>` has 2 elements,
852+ :c:type:`v4l2_requestbuffers` has 2 elements,
966853 not 32.
967854
968855 6. In :ref:`output` and :ref:`raw-vbi` the device file names
@@ -982,7 +869,7 @@ V4L2 in Linux 2.6.18 · 13 unmodified lines
982869 flag to skip unsupported controls with
983870 :ref:`VIDIOC_QUERYCTRL`, new control types
984871 ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_TYPE_CTRL_CLASS``
985− (:ref:`v4l2-ctrl-type`), and new control flags
872+ (:c:type:`v4l2_ctrl_type`), and new control flags
986873 ``V4L2_CTRL_FLAG_READ_ONLY``, ``V4L2_CTRL_FLAG_UPDATE``,
987874 ``V4L2_CTRL_FLAG_INACTIVE`` and ``V4L2_CTRL_FLAG_SLIDER``
988875 (:ref:`control-flags`). See :ref:`extended-controls` for details.
@@ -991,7 +878,7 @@ V4L2 in Linux 2.6.18 · 2 unmodified lines
991878 V4L2 in Linux 2.6.19
992879 ====================
993880
994−1. In struct :ref:`v4l2_sliced_vbi_cap <v4l2-sliced-vbi-cap>` a
881+1. In struct :c:type:`v4l2_sliced_vbi_cap` a
995882 buffer type field was added replacing a reserved field. Note on
996883 architectures where the size of enum types differs from int types the
997884 size of the structure changed. The
@@ -1029,7 +916,7 @@ V4L2 in Linux 2.6.22 · 31 unmodified lines
1029916 ====================
1030917
1031918 1. Two new field orders ``V4L2_FIELD_INTERLACED_TB`` and
1032− ``V4L2_FIELD_INTERLACED_BT`` were added. See :ref:`v4l2-field` for
919+ ``V4L2_FIELD_INTERLACED_BT`` were added. See :c:type:`v4l2_field` for
1033920 details.
1034921
1035922 2. Three new clipping/blending methods with a global or straight or
@@ -1038,15 +925,15 @@ V4L2 in Linux 2.6.22 · 2 unmodified lines
1038925 and :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` ioctls for details.
1039926
1040927 A new ``global_alpha`` field was added to
1041− :ref:`v4l2_window <v4l2-window>`, extending the structure. This
928+ :c:type:`v4l2_window`, extending the structure. This
1042929 may *break compatibility* with applications using a struct
1043− :c:type:`struct v4l2_window` directly. However the
930+ struct :c:type:`v4l2_window` directly. However the
1044931 :ref:`VIDIOC_G/S/TRY_FMT <VIDIOC_G_FMT>` ioctls, which take a
1045− pointer to a :ref:`v4l2_format <v4l2-format>` parent structure
932+ pointer to a :c:type:`v4l2_format` parent structure
1046933 with padding bytes at the end, are not affected.
1047934
1048935 3. The format of the ``chromakey`` field in struct
1049− :ref:`v4l2_window <v4l2-window>` changed from "host order RGB32"
936+ :c:type:`v4l2_window` changed from "host order RGB32"
1050937 to a pixel value in the same format as the framebuffer. This may
1051938 *break compatibility* with existing applications. Drivers supporting
1052939 the "host order RGB32" format are not known.
@@ -1127,8 +1014,8 @@ V4L2 in Linux 2.6.29 · 74 unmodified lines
11271014 1. The ``VIDIOC_G_CHIP_IDENT`` ioctl was renamed to
11281015 ``VIDIOC_G_CHIP_IDENT_OLD`` and ``VIDIOC_DBG_G_CHIP_IDENT`` was
11291016 introduced in its place. The old struct
1130− :c:type:`struct v4l2_chip_ident` was renamed to
1131− :c:type:`struct v4l2_chip_ident_old`.
1017+ struct ``v4l2_chip_ident`` was renamed to
1018+ struct ``v4l2_chip_ident_old``.
11321019
11331020 2. The pixel formats ``V4L2_PIX_FMT_VYUY``, ``V4L2_PIX_FMT_NV16`` and
11341021 ``V4L2_PIX_FMT_NV61`` were added.
@@ -1279,7 +1166,7 @@ V4L2 in Linux 3.5 · 144 unmodified lines
12791166 V4L2 in Linux 3.6
12801167 =================
12811168
1282−1. Replaced ``input`` in :c:type:`struct v4l2_buffer` by
1169+1. Replaced ``input`` in struct :c:type:`v4l2_buffer` by
12831170 ``reserved2`` and removed ``V4L2_BUF_FLAG_INPUT``.
12841171
12851172 2. Added V4L2_CAP_VIDEO_M2M and V4L2_CAP_VIDEO_M2M_MPLANE
@@ -1293,7 +1180,7 @@ V4L2 in Linux 3.9 · 7 unmodified lines
12931180 =================
12941181
12951182 1. Added timestamp types to ``flags`` field in
1296− :c:type:`struct v4l2_buffer`. See :ref:`buffer-flags`.
1183+ struct :c:type:`v4l2_buffer`. See :ref:`buffer-flags`.
12971184
12981185 2. Added ``V4L2_EVENT_CTRL_CH_RANGE`` control event changes flag. See
12991186 :ref:`ctrl-changes-flags`.
@@ -1320,7 +1207,7 @@ V4L2 in Linux 3.11 · 20 unmodified lines
13201207 V4L2 in Linux 3.14
13211208 ==================
13221209
1323−1. In struct :c:type:`struct v4l2_rect`, the type of ``width`` and
1210+1. In struct :c:type:`v4l2_rect`, the type of ``width`` and
13241211 ``height`` fields changed from _s32 to _u32.
13251212
13261213
@@ -1339,7 +1226,7 @@ V4L2 in Linux 3.16 · 12 unmodified lines
13391226 V4L2 in Linux 3.17
13401227 ==================
13411228
1342−1. Extended struct :ref:`v4l2_pix_format <v4l2-pix-format>`. Added
1229+1. Extended struct :c:type:`v4l2_pix_format`. Added
13431230 format flags.
13441231
13451232 2. Added compound control types and
@@ -1357,11 +1244,11 @@ V4L2 in Linux 3.19 · 11 unmodified lines
13571244 ==================
13581245
13591246 1. Rewrote Colorspace chapter, added new enum
1360− :ref:`v4l2_ycbcr_encoding <v4l2-ycbcr-encoding>` and enum
1361− :ref:`v4l2_quantization <v4l2-quantization>` fields to struct
1362− :ref:`v4l2_pix_format <v4l2-pix-format>`, struct
1363− :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` and
1364− struct :ref:`v4l2_mbus_framefmt <v4l2-mbus-framefmt>`.
1247+ :c:type:`v4l2_ycbcr_encoding` and enum
1248+ :c:type:`v4l2_quantization` fields to struct
1249+ :c:type:`v4l2_pix_format`, struct
1250+ :c:type:`v4l2_pix_format_mplane` and
1251+ struct :c:type:`v4l2_mbus_framefmt`.
13651252
13661253
13671254 V4L2 in Linux 4.4
Documentation/media/uapi/v4l/libv4l-introduction.rst+46−31
@@ -113,56 +113,71 @@ Libv4l device control functions · 112 unmodified lines
113113
114114 The common file operation methods are provided by libv4l.
115115
116−Those functions operate just like glibc
117−open/close/dup/ioctl/read/mmap/munmap:
116+Those functions operate just like the gcc function ``dup()`` and
117+V4L2 functions
118+:c:func:`open() <v4l2-open>`, :c:func:`close() <v4l2-close>`,
119+:c:func:`ioctl() <v4l2-ioctl>`, :c:func:`read() <v4l2-read>`,
120+:c:func:`mmap() <v4l2-mmap>` and :c:func:`munmap() <v4l2-munmap>`:
118121
119−- :c:type:`int v4l2_open(const char *file, int oflag, ...)` - operates like the
120− standard :ref:`open() <func-open>` function.
122+.. c:function:: int v4l2_open(const char *file, int oflag, ...)
121123
122−- :c:type:`int v4l2_close(int fd)` - operates like the standard
123− :ref:`close() <func-close>` function.
124+ operates like the :c:func:`open() <v4l2-open>` function.
124125
125−- :c:type:`int v4l2_dup(int fd)` - operates like the standard dup() function,
126− duplicating a file handler.
126+.. c:function:: int v4l2_close(int fd)
127127
128−- :c:type:`int v4l2_ioctl (int fd, unsigned long int request, ...)` - operates
129− like the standard :ref:`ioctl() <func-ioctl>` function.
128+ operates like the :c:func:`close() <v4l2-close>` function.
130129
131−- :c:type:`int v4l2_read (int fd, void* buffer, size_t n)` - operates like the
132− standard :ref:`read() <func-read>` function.
130+.. c:function:: int v4l2_dup(int fd)
133131
134−- :c:type:`void v4l2_mmap(void *start, size_t length, int prot, int flags, int
135− fd, int64_t offset);` - operates like the standard
136− :ref:`mmap() <func-mmap>` function.
132+ operates like the libc ``dup()`` function, duplicating a file handler.
137133
138−- :c:type:`int v4l2_munmap(void *_start, size_t length);` - operates like the
139− standard :ref:`munmap() <func-munmap>` function.
134+.. c:function:: int v4l2_ioctl (int fd, unsigned long int request, ...)
135+
136+ operates like the :c:func:`ioctl() <v4l2-ioctl>` function.
137+
138+.. c:function:: int v4l2_read (int fd, void* buffer, size_t n)
139+
140+ operates like the :c:func:`read() <v4l2-read>` function.
141+
142+.. c:function:: void v4l2_mmap(void *start, size_t length, int prot, int flags, int fd, int64_t offset);
143+
144+ operates like the :c:func:`munmap() <v4l2-munmap>` function.
145+
146+.. c:function:: int v4l2_munmap(void *_start, size_t length);
147+
148+ operates like the :c:func:`munmap() <v4l2-munmap>` function.
140149
141150 Those functions provide additional control:
142151
143−- :c:type:`int v4l2_fd_open(int fd, int v4l2_flags)` - opens an already opened
144− fd for further use through v4l2lib and possibly modify libv4l2's
145− default behavior through the v4l2_flags argument. Currently,
146− v4l2_flags can be ``V4L2_DISABLE_CONVERSION``, to disable format
147− conversion.
152+.. c:function:: int v4l2_fd_open(int fd, int v4l2_flags)
153+
154+ opens an already opened fd for further use through v4l2lib and possibly
155+ modify libv4l2's default behavior through the ``v4l2_flags`` argument.
156+ Currently, ``v4l2_flags`` can be ``V4L2_DISABLE_CONVERSION``, to disable
157+ format conversion.
148158
149−- :c:type:`int v4l2_set_control(int fd, int cid, int value)` - This function
150− takes a value of 0 - 65535, and then scales that range to the actual
151− range of the given v4l control id, and then if the cid exists and is
159+.. c:function:: int v4l2_set_control(int fd, int cid, int value)
160+
161+ This function takes a value of 0 - 65535, and then scales that range to the
162+ actual range of the given v4l control id, and then if the cid exists and is
152163 not locked sets the cid to the scaled value.
153164
154−- :c:type:`int v4l2_get_control(int fd, int cid)` - This function returns a
155− value of 0 - 65535, scaled to from the actual range of the given v4l
156− control id. when the cid does not exist, could not be accessed for
157− some reason, or some error occurred 0 is returned.
165+.. c:function:: int v4l2_get_control(int fd, int cid)
166+
167+ This function returns a value of 0 - 65535, scaled to from the actual range
168+ of the given v4l control id. when the cid does not exist, could not be
169+ accessed for some reason, or some error occurred 0 is returned.
158170
159171
160172 v4l1compat.so wrapper library
161173 =============================
162174
163−This library intercepts calls to open/close/ioctl/mmap/mmunmap
175+This library intercepts calls to
176+:c:func:`open() <v4l2-open>`, :c:func:`close() <v4l2-close>`,
177+:c:func:`ioctl() <v4l2-ioctl>`, :c:func:`mmap() <v4l2-mmap>` and
178+:c:func:`munmap() <v4l2-munmap>`
164179 operations and redirects them to the libv4l counterparts, by using
165−LD_PRELOAD=/usr/lib/v4l1compat.so. It also emulates V4L1 calls via V4L2
180+``LD_PRELOAD=/usr/lib/v4l1compat.so``. It also emulates V4L1 calls via V4L2
166181 API.
167182
168183 It allows usage of binary legacy applications that still don't use
Documentation/media/uapi/v4l/mmap.rst+6−6
@@ -8,7 +8,7 @@ Streaming I/O (Memory Mapping) · 7 unmodified lines
88
99 Input and output devices support this I/O method when the
1010 ``V4L2_CAP_STREAMING`` flag in the ``capabilities`` field of struct
11−:ref:`v4l2_capability <v4l2-capability>` returned by the
11+:c:type:`v4l2_capability` returned by the
1212 :ref:`VIDIOC_QUERYCAP` ioctl is set. There are two
1313 streaming methods, to determine if the memory mapping flavor is
1414 supported applications must call the :ref:`VIDIOC_REQBUFS` ioctl
@@ -39,10 +39,10 @@ address space with the :ref:`mmap() <func-mmap>` function. The · 24 unmodified lines
3939 location of the buffers in device memory can be determined with the
4040 :ref:`VIDIOC_QUERYBUF` ioctl. In the single-planar
4141 API case, the ``m.offset`` and ``length`` returned in a struct
42−:ref:`v4l2_buffer <v4l2-buffer>` are passed as sixth and second
42+:c:type:`v4l2_buffer` are passed as sixth and second
4343 parameter to the :ref:`mmap() <func-mmap>` function. When using the
44−multi-planar API, struct :ref:`v4l2_buffer <v4l2-buffer>` contains an
45−array of struct :ref:`v4l2_plane <v4l2-plane>` structures, each
44+multi-planar API, struct :c:type:`v4l2_buffer` contains an
45+array of struct :c:type:`v4l2_plane` structures, each
4646 containing its own ``m.offset`` and ``length``. When using the
4747 multi-planar API, every plane of every buffer has to be mapped
4848 separately, so the number of calls to :ref:`mmap() <func-mmap>` should
@@ -218,7 +218,7 @@ to function, apart of this no limit exists on the number of buffers · 169 unmodified lines
218218 applications can enqueue in advance, or dequeue and process. They can
219219 also enqueue in a different order than buffers have been dequeued, and
220220 the driver can *fill* enqueued *empty* buffers in any order. [#f2]_ The
221−index number of a buffer (struct :ref:`v4l2_buffer <v4l2-buffer>`
221+index number of a buffer (struct :c:type:`v4l2_buffer`
222222 ``index``) plays no role here, it only identifies the buffer.
223223
224224 Initially all mapped buffers are in dequeued state, inaccessible by the
@@ -251,7 +251,7 @@ To start and stop capturing or output applications call the · 26 unmodified lines
251251 removes all buffers from both queues as a side effect. Since there is
252252 no notion of doing anything "now" on a multitasking system, if an
253253 application needs to synchronize with another event it should examine
254− the struct ::ref:`v4l2_buffer <v4l2-buffer>` ``timestamp`` of captured
254+ the struct ::c:type:`v4l2_buffer` ``timestamp`` of captured
255255 or outputted buffers.
256256
257257 Drivers implementing memory mapping I/O must support the
Documentation/media/uapi/v4l/pixfmt-002.rst+120−183
@@ -4,193 +4,130 @@ · 3 unmodified lines
44 Single-planar format structure
55 ******************************
66
7+.. tabularcolumns:: |p{4.0cm}|p{2.5cm}|p{11.0cm}|
78
8−.. _v4l2-pix-format:
9+.. c:type:: v4l2_pix_format
10+
11+.. cssclass:: longtable
912
1013 .. flat-table:: struct v4l2_pix_format
1114 :header-rows: 0
1215 :stub-columns: 0
1316 :widths: 1 1 2
1417
15−
16− - .. row 1
17−
18− - __u32
19−
20− - ``width``
21−
22− - Image width in pixels.
23−
24− - .. row 2
25−
26− - __u32
27−
28− - ``height``
29−
30− - Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``,
31− ``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height
32− refers to the number of lines in the field, otherwise it refers to
33− the number of lines in the frame (which is twice the field height
34− for interlaced formats).
35−
36− - .. row 3
37−
38− - :cspan:`2` Applications set these fields to request an image
39− size, drivers return the closest possible values. In case of
40− planar formats the ``width`` and ``height`` applies to the largest
41− plane. To avoid ambiguities drivers must return values rounded up
42− to a multiple of the scale factor of any smaller planes. For
43− example when the image format is YUV 4:2:0, ``width`` and
44− ``height`` must be multiples of two.
45−
46− - .. row 4
47−
48− - __u32
49−
50− - ``pixelformat``
51−
52− - The pixel format or type of compression, set by the application.
53− This is a little endian
54− :ref:`four character code <v4l2-fourcc>`. V4L2 defines standard
55− RGB formats in :ref:`rgb-formats`, YUV formats in
56− :ref:`yuv-formats`, and reserved codes in
57− :ref:`reserved-formats`
58−
59− - .. row 5
60−
61− - enum :ref:`v4l2_field <v4l2-field>`
62−
63− - ``field``
64−
65− - Video images are typically interlaced. Applications can request to
66− capture or output only the top or bottom field, or both fields
67− interlaced or sequentially stored in one buffer or alternating in
68− separate buffers. Drivers return the actual field order selected.
69− For more details on fields see :ref:`field-order`.
70−
71− - .. row 6
72−
73− - __u32
74−
75− - ``bytesperline``
76−
77− - Distance in bytes between the leftmost pixels in two adjacent
78− lines.
79−
80− - .. row 7
81−
82− - :cspan:`2`
83−
84− Both applications and drivers can set this field to request
85− padding bytes at the end of each line. Drivers however may ignore
86− the value requested by the application, returning ``width`` times
87− bytes per pixel or a larger value required by the hardware. That
88− implies applications can just set this field to zero to get a
89− reasonable default.
90−
91− Video hardware may access padding bytes, therefore they must
92− reside in accessible memory. Consider cases where padding bytes
93− after the last line of an image cross a system page boundary.
94− Input devices may write padding bytes, the value is undefined.
95− Output devices ignore the contents of padding bytes.
96−
97− When the image format is planar the ``bytesperline`` value applies
98− to the first plane and is divided by the same factor as the
99− ``width`` field for the other planes. For example the Cb and Cr
100− planes of a YUV 4:2:0 image have half as many padding bytes
101− following each line as the Y plane. To avoid ambiguities drivers
102− must return a ``bytesperline`` value rounded up to a multiple of
103− the scale factor.
104−
105− For compressed formats the ``bytesperline`` value makes no sense.
106− Applications and drivers must set this to 0 in that case.
107−
108− - .. row 8
109−
110− - __u32
111−
112− - ``sizeimage``
113−
114− - Size in bytes of the buffer to hold a complete image, set by the
115− driver. Usually this is ``bytesperline`` times ``height``. When
116− the image consists of variable length compressed data this is the
117− maximum number of bytes required to hold an image.
118−
119− - .. row 9
120−
121− - enum :ref:`v4l2_colorspace <v4l2-colorspace>`
122−
123− - ``colorspace``
124−
125− - This information supplements the ``pixelformat`` and must be set
126− by the driver for capture streams and by the application for
127− output streams, see :ref:`colorspaces`.
128−
129− - .. row 10
130−
131− - __u32
132−
133− - ``priv``
134−
135− - This field indicates whether the remaining fields of the
136− :ref:`struct v4l2_pix_format <v4l2-pix-format>` structure, also called the
137− extended fields, are valid. When set to
138− ``V4L2_PIX_FMT_PRIV_MAGIC``, it indicates that the extended fields
139− have been correctly initialized. When set to any other value it
140− indicates that the extended fields contain undefined values.
141−
142− Applications that wish to use the pixel format extended fields
143− must first ensure that the feature is supported by querying the
144− device for the :ref:`V4L2_CAP_EXT_PIX_FORMAT <querycap>`
145− capability. If the capability isn't set the pixel format extended
146− fields are not supported and using the extended fields will lead
147− to undefined results.
148−
149− To use the extended fields, applications must set the ``priv``
150− field to ``V4L2_PIX_FMT_PRIV_MAGIC``, initialize all the extended
151− fields and zero the unused bytes of the
152− :ref:`struct v4l2_format <v4l2-format>` ``raw_data`` field.
153−
154− When the ``priv`` field isn't set to ``V4L2_PIX_FMT_PRIV_MAGIC``
155− drivers must act as if all the extended fields were set to zero.
156− On return drivers must set the ``priv`` field to
157− ``V4L2_PIX_FMT_PRIV_MAGIC`` and all the extended fields to
158− applicable values.
159−
160− - .. row 11
161−
162− - __u32
163−
164− - ``flags``
165−
166− - Flags set by the application or driver, see :ref:`format-flags`.
167−
168− - .. row 12
169−
170− - enum :ref:`v4l2_ycbcr_encoding <v4l2-ycbcr-encoding>`
171−
172− - ``ycbcr_enc``
173−
174− - This information supplements the ``colorspace`` and must be set by
175− the driver for capture streams and by the application for output
176− streams, see :ref:`colorspaces`.
177−
178− - .. row 13
179−
180− - enum :ref:`v4l2_quantization <v4l2-quantization>`
181−
182− - ``quantization``
183−
184− - This information supplements the ``colorspace`` and must be set by
185− the driver for capture streams and by the application for output
186− streams, see :ref:`colorspaces`.
187−
188− - .. row 14
189−
190− - enum :ref:`v4l2_xfer_func <v4l2-xfer-func>`
191−
192− - ``xfer_func``
193−
194− - This information supplements the ``colorspace`` and must be set by
195− the driver for capture streams and by the application for output
196− streams, see :ref:`colorspaces`.
18+ * - __u32
19+ - ``width``
20+ - Image width in pixels.
21+ * - __u32
22+ - ``height``
23+ - Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``,
24+ ``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height
25+ refers to the number of lines in the field, otherwise it refers to
26+ the number of lines in the frame (which is twice the field height
27+ for interlaced formats).
28+ * - :cspan:`2` Applications set these fields to request an image
29+ size, drivers return the closest possible values. In case of
30+ planar formats the ``width`` and ``height`` applies to the largest
31+ plane. To avoid ambiguities drivers must return values rounded up
32+ to a multiple of the scale factor of any smaller planes. For
33+ example when the image format is YUV 4:2:0, ``width`` and
34+ ``height`` must be multiples of two.
35+ * - __u32
36+ - ``pixelformat``
37+ - The pixel format or type of compression, set by the application.
38+ This is a little endian
39+ :ref:`four character code <v4l2-fourcc>`. V4L2 defines standard
40+ RGB formats in :ref:`rgb-formats`, YUV formats in
41+ :ref:`yuv-formats`, and reserved codes in
42+ :ref:`reserved-formats`
43+ * - enum :c:type::`v4l2_field`
44+ - ``field``
45+ - Video images are typically interlaced. Applications can request to
46+ capture or output only the top or bottom field, or both fields
47+ interlaced or sequentially stored in one buffer or alternating in
48+ separate buffers. Drivers return the actual field order selected.
49+ For more details on fields see :ref:`field-order`.
50+ * - __u32
51+ - ``bytesperline``
52+ - Distance in bytes between the leftmost pixels in two adjacent
53+ lines.
54+ * - :cspan:`2`
55+
56+ Both applications and drivers can set this field to request
57+ padding bytes at the end of each line. Drivers however may ignore
58+ the value requested by the application, returning ``width`` times
59+ bytes per pixel or a larger value required by the hardware. That
60+ implies applications can just set this field to zero to get a
61+ reasonable default.
62+
63+ Video hardware may access padding bytes, therefore they must
64+ reside in accessible memory. Consider cases where padding bytes
65+ after the last line of an image cross a system page boundary.
66+ Input devices may write padding bytes, the value is undefined.
67+ Output devices ignore the contents of padding bytes.
68+
69+ When the image format is planar the ``bytesperline`` value applies
70+ to the first plane and is divided by the same factor as the
71+ ``width`` field for the other planes. For example the Cb and Cr
72+ planes of a YUV 4:2:0 image have half as many padding bytes
73+ following each line as the Y plane. To avoid ambiguities drivers
74+ must return a ``bytesperline`` value rounded up to a multiple of
75+ the scale factor.
76+
77+ For compressed formats the ``bytesperline`` value makes no sense.
78+ Applications and drivers must set this to 0 in that case.
79+ * - __u32
80+ - ``sizeimage``
81+ - Size in bytes of the buffer to hold a complete image, set by the
82+ driver. Usually this is ``bytesperline`` times ``height``. When
83+ the image consists of variable length compressed data this is the
84+ maximum number of bytes required to hold an image.
85+ * - enum :c:type:`v4l2_colorspace`
86+ - ``colorspace``
87+ - This information supplements the ``pixelformat`` and must be set
88+ by the driver for capture streams and by the application for
89+ output streams, see :ref:`colorspaces`.
90+ * - __u32
91+ - ``priv``
92+ - This field indicates whether the remaining fields of the
93+ struct :c:type:`v4l2_pix_format`, also called the
94+ extended fields, are valid. When set to
95+ ``V4L2_PIX_FMT_PRIV_MAGIC``, it indicates that the extended fields
96+ have been correctly initialized. When set to any other value it
97+ indicates that the extended fields contain undefined values.
98+
99+ Applications that wish to use the pixel format extended fields
100+ must first ensure that the feature is supported by querying the
101+ device for the :ref:`V4L2_CAP_EXT_PIX_FORMAT <querycap>`
102+ capability. If the capability isn't set the pixel format extended
103+ fields are not supported and using the extended fields will lead
104+ to undefined results.
105+
106+ To use the extended fields, applications must set the ``priv``
107+ field to ``V4L2_PIX_FMT_PRIV_MAGIC``, initialize all the extended
108+ fields and zero the unused bytes of the
109+ struct :c:type:`v4l2_format` ``raw_data`` field.
110+
111+ When the ``priv`` field isn't set to ``V4L2_PIX_FMT_PRIV_MAGIC``
112+ drivers must act as if all the extended fields were set to zero.
113+ On return drivers must set the ``priv`` field to
114+ ``V4L2_PIX_FMT_PRIV_MAGIC`` and all the extended fields to
115+ applicable values.
116+ * - __u32
117+ - ``flags``
118+ - Flags set by the application or driver, see :ref:`format-flags`.
119+ * - enum :c:type:`v4l2_ycbcr_encoding`
120+ - ``ycbcr_enc``
121+ - This information supplements the ``colorspace`` and must be set by
122+ the driver for capture streams and by the application for output
123+ streams, see :ref:`colorspaces`.
124+ * - enum :c:type:`v4l2_quantization`
125+ - ``quantization``
126+ - This information supplements the ``colorspace`` and must be set by
127+ the driver for capture streams and by the application for output
128+ streams, see :ref:`colorspaces`.
129+ * - enum :c:type:`v4l2_xfer_func`
130+ - ``xfer_func``
131+ - This information supplements the ``colorspace`` and must be set by
132+ the driver for capture streams and by the application for output
133+ streams, see :ref:`colorspaces`.
Documentation/media/uapi/v4l/pixfmt-003.rst+68−140
@@ -4,163 +4,91 @@ · 3 unmodified lines
44 Multi-planar format structures
55 ******************************
66
7−The :ref:`struct v4l2_plane_pix_format <v4l2-plane-pix-format>` structures define size
7+The struct :c:type:`v4l2_plane_pix_format` structures define size
88 and layout for each of the planes in a multi-planar format. The
9−:ref:`struct v4l2_pix_format_mplane <v4l2-pix-format-mplane>` structure contains
9+struct :c:type:`v4l2_pix_format_mplane` structure contains
1010 information common to all planes (such as image width and height) and an
11−array of :ref:`struct v4l2_plane_pix_format <v4l2-plane-pix-format>` structures,
11+array of struct :c:type:`v4l2_plane_pix_format` structures,
1212 describing all planes of that format.
1313
1414
15−.. _v4l2-plane-pix-format:
15+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
16+
17+.. c:type:: v4l2_plane_pix_format
1618
1719 .. flat-table:: struct v4l2_plane_pix_format
1820 :header-rows: 0
1921 :stub-columns: 0
2022 :widths: 1 1 2
2123
24+ * - __u32
25+ - ``sizeimage``
26+ - Maximum size in bytes required for image data in this plane.
27+ * - __u32
28+ - ``bytesperline``
29+ - Distance in bytes between the leftmost pixels in two adjacent
30+ lines. See struct :c:type:`v4l2_pix_format`.
31+ * - __u16
32+ - ``reserved[6]``
33+ - Reserved for future extensions. Should be zeroed by drivers and
34+ applications.
2235
23− - .. row 1
24−
25− - __u32
26−
27− - ``sizeimage``
28−
29− - Maximum size in bytes required for image data in this plane.
30−
31− - .. row 2
32−
33− - __u32
34−
35− - ``bytesperline``
36−
37− - Distance in bytes between the leftmost pixels in two adjacent
38− lines. See struct :ref:`v4l2_pix_format <v4l2-pix-format>`.
3936
40− - .. row 3
37+.. tabularcolumns:: |p{4.4cm}|p{5.6cm}|p{7.5cm}|
4138
42− - __u16
43−
44− - ``reserved[6]``
45−
46− - Reserved for future extensions. Should be zeroed by drivers and
47− applications.
48−
49−
50−
51−.. _v4l2-pix-format-mplane:
39+.. c:type:: v4l2_pix_format_mplane
5240
5341 .. flat-table:: struct v4l2_pix_format_mplane
5442 :header-rows: 0
5543 :stub-columns: 0
5644 :widths: 1 1 2
5745
58−
59− - .. row 1
60−
61− - __u32
62−
63− - ``width``
64−
65− - Image width in pixels. See struct
66− :ref:`v4l2_pix_format <v4l2-pix-format>`.
67−
68− - .. row 2
69−
70− - __u32
71−
72− - ``height``
73−
74− - Image height in pixels. See struct
75− :ref:`v4l2_pix_format <v4l2-pix-format>`.
76−
77− - .. row 3
78−
79− - __u32
80−
81− - ``pixelformat``
82−
83− - The pixel format. Both single- and multi-planar four character
84− codes can be used.
85−
86− - .. row 4
87−
88− - enum :ref:`v4l2_field <v4l2-field>`
89−
90− - ``field``
91−
92− - See struct :ref:`v4l2_pix_format <v4l2-pix-format>`.
93−
94− - .. row 5
95−
96− - enum :ref:`v4l2_colorspace <v4l2-colorspace>`
97−
98− - ``colorspace``
99−
100− - See struct :ref:`v4l2_pix_format <v4l2-pix-format>`.
101−
102− - .. row 6
103−
104− - struct :ref:`v4l2_plane_pix_format <v4l2-plane-pix-format>`
105−
106− - ``plane_fmt[VIDEO_MAX_PLANES]``
107−
108− - An array of structures describing format of each plane this pixel
109− format consists of. The number of valid entries in this array has
110− to be put in the ``num_planes`` field.
111−
112− - .. row 7
113−
114− - __u8
115−
116− - ``num_planes``
117−
118− - Number of planes (i.e. separate memory buffers) for this format
119− and the number of valid entries in the ``plane_fmt`` array.
120−
121− - .. row 8
122−
123− - __u8
124−
125− - ``flags``
126−
127− - Flags set by the application or driver, see :ref:`format-flags`.
128−
129− - .. row 9
130−
131− - enum :ref:`v4l2_ycbcr_encoding <v4l2-ycbcr-encoding>`
132−
133− - ``ycbcr_enc``
134−
135− - This information supplements the ``colorspace`` and must be set by
136− the driver for capture streams and by the application for output
137− streams, see :ref:`colorspaces`.
138−
139− - .. row 10
140−
141− - enum :ref:`v4l2_quantization <v4l2-quantization>`
142−
143− - ``quantization``
144−
145− - This information supplements the ``colorspace`` and must be set by
146− the driver for capture streams and by the application for output
147− streams, see :ref:`colorspaces`.
148−
149− - .. row 11
150−
151− - enum :ref:`v4l2_xfer_func <v4l2-xfer-func>`
152−
153− - ``xfer_func``
154−
155− - This information supplements the ``colorspace`` and must be set by
156− the driver for capture streams and by the application for output
157− streams, see :ref:`colorspaces`.
158−
159− - .. row 12
160−
161− - __u8
162−
163− - ``reserved[7]``
164−
165− - Reserved for future extensions. Should be zeroed by drivers and
166− applications.
46+ * - __u32
47+ - ``width``
48+ - Image width in pixels. See struct
49+ :c:type:`v4l2_pix_format`.
50+ * - __u32
51+ - ``height``
52+ - Image height in pixels. See struct
53+ :c:type:`v4l2_pix_format`.
54+ * - __u32
55+ - ``pixelformat``
56+ - The pixel format. Both single- and multi-planar four character
57+ codes can be used.
58+ * - enum :c:type:`v4l2_field`
59+ - ``field``
60+ - See struct :c:type:`v4l2_pix_format`.
61+ * - enum :c:type:`v4l2_colorspace`
62+ - ``colorspace``
63+ - See struct :c:type:`v4l2_pix_format`.
64+ * - struct :c:type:`v4l2_plane_pix_format`
65+ - ``plane_fmt[VIDEO_MAX_PLANES]``
66+ - An array of structures describing format of each plane this pixel
67+ format consists of. The number of valid entries in this array has
68+ to be put in the ``num_planes`` field.
69+ * - __u8
70+ - ``num_planes``
71+ - Number of planes (i.e. separate memory buffers) for this format
72+ and the number of valid entries in the ``plane_fmt`` array.
73+ * - __u8
74+ - ``flags``
75+ - Flags set by the application or driver, see :ref:`format-flags`.
76+ * - enum :c:type:`v4l2_ycbcr_encoding`
77+ - ``ycbcr_enc``
78+ - This information supplements the ``colorspace`` and must be set by
79+ the driver for capture streams and by the application for output
80+ streams, see :ref:`colorspaces`.
81+ * - enum :c:type:`v4l2_quantization`
82+ - ``quantization``
83+ - This information supplements the ``colorspace`` and must be set by
84+ the driver for capture streams and by the application for output
85+ streams, see :ref:`colorspaces`.
86+ * - enum :c:type:`v4l2_xfer_func`
87+ - ``xfer_func``
88+ - This information supplements the ``colorspace`` and must be set by
89+ the driver for capture streams and by the application for output
90+ streams, see :ref:`colorspaces`.
91+ * - __u8
92+ - ``reserved[7]``
93+ - Reserved for future extensions. Should be zeroed by drivers and
94+ applications.
Documentation/media/uapi/v4l/pixfmt-006.rst+102−241
@@ -5,284 +5,145 @@ Defining Colorspaces in V4L2 · 4 unmodified lines
55 ****************************
66
77 In V4L2 colorspaces are defined by four values. The first is the
8−colorspace identifier (enum :ref:`v4l2_colorspace <v4l2-colorspace>`)
8+colorspace identifier (enum :c:type:`v4l2_colorspace`)
99 which defines the chromaticities, the default transfer function, the
1010 default Y'CbCr encoding and the default quantization method. The second
1111 is the transfer function identifier (enum
12−:ref:`v4l2_xfer_func <v4l2-xfer-func>`) to specify non-standard
12+:c:type:`v4l2_xfer_func`) to specify non-standard
1313 transfer functions. The third is the Y'CbCr encoding identifier (enum
14−:ref:`v4l2_ycbcr_encoding <v4l2-ycbcr-encoding>`) to specify
14+:c:type:`v4l2_ycbcr_encoding`) to specify
1515 non-standard Y'CbCr encodings and the fourth is the quantization
16−identifier (enum :ref:`v4l2_quantization <v4l2-quantization>`) to
16+identifier (enum :c:type:`v4l2_quantization`) to
1717 specify non-standard quantization methods. Most of the time only the
18−colorspace field of struct :ref:`v4l2_pix_format <v4l2-pix-format>`
19−or struct :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>`
18+colorspace field of struct :c:type:`v4l2_pix_format`
19+or struct :c:type:`v4l2_pix_format_mplane`
2020 needs to be filled in.
2121
22−.. note:: The default R'G'B' quantization is full range for all
22+.. note::
23+
24+ The default R'G'B' quantization is full range for all
2325 colorspaces except for BT.2020 which uses limited range R'G'B'
2426 quantization.
2527
28+.. tabularcolumns:: |p{6.0cm}|p{11.5cm}|
2629
27−.. _v4l2-colorspace:
30+.. c:type:: v4l2_colorspace
2831
2932 .. flat-table:: V4L2 Colorspaces
3033 :header-rows: 1
3134 :stub-columns: 0
3235
33−
34− - .. row 1
35−
36− - Identifier
37−
38− - Details
39−
40− - .. row 2
41−
42− - ``V4L2_COLORSPACE_DEFAULT``
43−
44− - The default colorspace. This can be used by applications to let
45− the driver fill in the colorspace.
46−
47− - .. row 3
48−
49− - ``V4L2_COLORSPACE_SMPTE170M``
50−
51− - See :ref:`col-smpte-170m`.
52−
53− - .. row 4
54−
55− - ``V4L2_COLORSPACE_REC709``
56−
57− - See :ref:`col-rec709`.
58−
59− - .. row 5
60−
61− - ``V4L2_COLORSPACE_SRGB``
62−
63− - See :ref:`col-srgb`.
64−
65− - .. row 6
66−
67− - ``V4L2_COLORSPACE_ADOBERGB``
68−
69− - See :ref:`col-adobergb`.
70−
71− - .. row 7
72−
73− - ``V4L2_COLORSPACE_BT2020``
74−
75− - See :ref:`col-bt2020`.
76−
77− - .. row 8
78−
79− - ``V4L2_COLORSPACE_DCI_P3``
80−
81− - See :ref:`col-dcip3`.
82−
83− - .. row 9
84−
85− - ``V4L2_COLORSPACE_SMPTE240M``
86−
87− - See :ref:`col-smpte-240m`.
88−
89− - .. row 10
90−
91− - ``V4L2_COLORSPACE_470_SYSTEM_M``
92−
93− - See :ref:`col-sysm`.
94−
95− - .. row 11
96−
97− - ``V4L2_COLORSPACE_470_SYSTEM_BG``
98−
99− - See :ref:`col-sysbg`.
100−
101− - .. row 12
102−
103− - ``V4L2_COLORSPACE_JPEG``
104−
105− - See :ref:`col-jpeg`.
106−
107− - .. row 13
108−
109− - ``V4L2_COLORSPACE_RAW``
110−
111− - The raw colorspace. This is used for raw image capture where the
112− image is minimally processed and is using the internal colorspace
113− of the device. The software that processes an image using this
114− 'colorspace' will have to know the internals of the capture
115− device.
116−
117−
118−
119−.. _v4l2-xfer-func:
36+ * - Identifier
37+ - Details
38+ * - ``V4L2_COLORSPACE_DEFAULT``
39+ - The default colorspace. This can be used by applications to let
40+ the driver fill in the colorspace.
41+ * - ``V4L2_COLORSPACE_SMPTE170M``
42+ - See :ref:`col-smpte-170m`.
43+ * - ``V4L2_COLORSPACE_REC709``
44+ - See :ref:`col-rec709`.
45+ * - ``V4L2_COLORSPACE_SRGB``
46+ - See :ref:`col-srgb`.
47+ * - ``V4L2_COLORSPACE_ADOBERGB``
48+ - See :ref:`col-adobergb`.
49+ * - ``V4L2_COLORSPACE_BT2020``
50+ - See :ref:`col-bt2020`.
51+ * - ``V4L2_COLORSPACE_DCI_P3``
52+ - See :ref:`col-dcip3`.
53+ * - ``V4L2_COLORSPACE_SMPTE240M``
54+ - See :ref:`col-smpte-240m`.
55+ * - ``V4L2_COLORSPACE_470_SYSTEM_M``
56+ - See :ref:`col-sysm`.
57+ * - ``V4L2_COLORSPACE_470_SYSTEM_BG``
58+ - See :ref:`col-sysbg`.
59+ * - ``V4L2_COLORSPACE_JPEG``
60+ - See :ref:`col-jpeg`.
61+ * - ``V4L2_COLORSPACE_RAW``
62+ - The raw colorspace. This is used for raw image capture where the
63+ image is minimally processed and is using the internal colorspace
64+ of the device. The software that processes an image using this
65+ 'colorspace' will have to know the internals of the capture
66+ device.
67+
68+
69+
70+.. c:type:: v4l2_xfer_func
12071
12172 .. flat-table:: V4L2 Transfer Function
12273 :header-rows: 1
12374 :stub-columns: 0
12475
76+ * - Identifier
77+ - Details
78+ * - ``V4L2_XFER_FUNC_DEFAULT``
79+ - Use the default transfer function as defined by the colorspace.
80+ * - ``V4L2_XFER_FUNC_709``
81+ - Use the Rec. 709 transfer function.
82+ * - ``V4L2_XFER_FUNC_SRGB``
83+ - Use the sRGB transfer function.
84+ * - ``V4L2_XFER_FUNC_ADOBERGB``
85+ - Use the AdobeRGB transfer function.
86+ * - ``V4L2_XFER_FUNC_SMPTE240M``
87+ - Use the SMPTE 240M transfer function.
88+ * - ``V4L2_XFER_FUNC_NONE``
89+ - Do not use a transfer function (i.e. use linear RGB values).
90+ * - ``V4L2_XFER_FUNC_DCI_P3``
91+ - Use the DCI-P3 transfer function.
92+ * - ``V4L2_XFER_FUNC_SMPTE2084``
93+ - Use the SMPTE 2084 transfer function.
12594
126− - .. row 1
127−
128− - Identifier
129−
130− - Details
131−
132− - .. row 2
133−
134− - ``V4L2_XFER_FUNC_DEFAULT``
135−
136− - Use the default transfer function as defined by the colorspace.
137−
138− - .. row 3
139−
140− - ``V4L2_XFER_FUNC_709``
141−
142− - Use the Rec. 709 transfer function.
143−
144− - .. row 4
145−
146− - ``V4L2_XFER_FUNC_SRGB``
147−
148− - Use the sRGB transfer function.
149−
150− - .. row 5
15195
152− - ``V4L2_XFER_FUNC_ADOBERGB``
15396
154− - Use the AdobeRGB transfer function.
97+.. c:type:: v4l2_ycbcr_encoding
15598
156− - .. row 6
157−
158− - ``V4L2_XFER_FUNC_SMPTE240M``
159−
160− - Use the SMPTE 240M transfer function.
161−
162− - .. row 7
163−
164− - ``V4L2_XFER_FUNC_NONE``
165−
166− - Do not use a transfer function (i.e. use linear RGB values).
167−
168− - .. row 8
169−
170− - ``V4L2_XFER_FUNC_DCI_P3``
171−
172− - Use the DCI-P3 transfer function.
173−
174− - .. row 9
175−
176− - ``V4L2_XFER_FUNC_SMPTE2084``
177−
178− - Use the SMPTE 2084 transfer function.
179−
180−
181−
182−.. _v4l2-ycbcr-encoding:
99+.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
183100
184101 .. flat-table:: V4L2 Y'CbCr Encodings
185102 :header-rows: 1
186103 :stub-columns: 0
187104
105+ * - Identifier
106+ - Details
107+ * - ``V4L2_YCBCR_ENC_DEFAULT``
108+ - Use the default Y'CbCr encoding as defined by the colorspace.
109+ * - ``V4L2_YCBCR_ENC_601``
110+ - Use the BT.601 Y'CbCr encoding.
111+ * - ``V4L2_YCBCR_ENC_709``
112+ - Use the Rec. 709 Y'CbCr encoding.
113+ * - ``V4L2_YCBCR_ENC_XV601``
114+ - Use the extended gamut xvYCC BT.601 encoding.
115+ * - ``V4L2_YCBCR_ENC_XV709``
116+ - Use the extended gamut xvYCC Rec. 709 encoding.
117+ * - ``V4L2_YCBCR_ENC_BT2020``
118+ - Use the default non-constant luminance BT.2020 Y'CbCr encoding.
119+ * - ``V4L2_YCBCR_ENC_BT2020_CONST_LUM``
120+ - Use the constant luminance BT.2020 Yc'CbcCrc encoding.
121+ * - ``V4L2_YCBCR_ENC_SMPTE_240M``
122+ - Use the SMPTE 240M Y'CbCr encoding.
188123
189− - .. row 1
190−
191− - Identifier
192−
193− - Details
194−
195− - .. row 2
196−
197− - ``V4L2_YCBCR_ENC_DEFAULT``
198−
199− - Use the default Y'CbCr encoding as defined by the colorspace.
200−
201− - .. row 3
202−
203− - ``V4L2_YCBCR_ENC_601``
204−
205− - Use the BT.601 Y'CbCr encoding.
206−
207− - .. row 4
208−
209− - ``V4L2_YCBCR_ENC_709``
210−
211− - Use the Rec. 709 Y'CbCr encoding.
212−
213− - .. row 5
214−
215− - ``V4L2_YCBCR_ENC_XV601``
216−
217− - Use the extended gamut xvYCC BT.601 encoding.
218124
219− - .. row 6
220125
221− - ``V4L2_YCBCR_ENC_XV709``
126+.. c:type:: v4l2_quantization
222127
223− - Use the extended gamut xvYCC Rec. 709 encoding.
224−
225− - .. row 7
226−
227− - ``V4L2_YCBCR_ENC_SYCC``
228−
229− - Use the extended gamut sYCC encoding.
230−
231− - .. row 8
232−
233− - ``V4L2_YCBCR_ENC_BT2020``
234−
235− - Use the default non-constant luminance BT.2020 Y'CbCr encoding.
236−
237− - .. row 9
238−
239− - ``V4L2_YCBCR_ENC_BT2020_CONST_LUM``
240−
241− - Use the constant luminance BT.2020 Yc'CbcCrc encoding.
242−
243− - .. row 10
244−
245− - ``V4L2_YCBCR_ENC_SMPTE_240M``
246−
247− - Use the SMPTE 240M Y'CbCr encoding.
248−
249−
250−
251−.. _v4l2-quantization:
128+.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
252129
253130 .. flat-table:: V4L2 Quantization Methods
254131 :header-rows: 1
255132 :stub-columns: 0
256133
257−
258− - .. row 1
259−
260− - Identifier
261−
262− - Details
263−
264− - .. row 2
265−
266− - ``V4L2_QUANTIZATION_DEFAULT``
267−
268− - Use the default quantization encoding as defined by the
269− colorspace. This is always full range for R'G'B' (except for the
270− BT.2020 colorspace) and usually limited range for Y'CbCr.
271−
272− - .. row 3
273−
274− - ``V4L2_QUANTIZATION_FULL_RANGE``
275−
276− - Use the full range quantization encoding. I.e. the range [0…1] is
277− mapped to [0…255] (with possible clipping to [1…254] to avoid the
278− 0x00 and 0xff values). Cb and Cr are mapped from [-0.5…0.5] to
279− [0…255] (with possible clipping to [1…254] to avoid the 0x00 and
280− 0xff values).
281−
282− - .. row 4
283−
284− - ``V4L2_QUANTIZATION_LIM_RANGE``
285−
286− - Use the limited range quantization encoding. I.e. the range [0…1]
287− is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to
288− [16…240].
134+ * - Identifier
135+ - Details
136+ * - ``V4L2_QUANTIZATION_DEFAULT``
137+ - Use the default quantization encoding as defined by the
138+ colorspace. This is always full range for R'G'B' (except for the
139+ BT.2020 colorspace) and usually limited range for Y'CbCr.
140+ * - ``V4L2_QUANTIZATION_FULL_RANGE``
141+ - Use the full range quantization encoding. I.e. the range [0…1] is
142+ mapped to [0…255] (with possible clipping to [1…254] to avoid the
143+ 0x00 and 0xff values). Cb and Cr are mapped from [-0.5…0.5] to
144+ [0…255] (with possible clipping to [1…254] to avoid the 0x00 and
145+ 0xff values).
146+ * - ``V4L2_QUANTIZATION_LIM_RANGE``
147+ - Use the limited range quantization encoding. I.e. the range [0…1]
148+ is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to
149+ [16…240].
Documentation/media/uapi/v4l/pixfmt-007.rst+301−453
@@ -19,51 +19,28 @@ are: · 18 unmodified lines
1919
2020
2121
22+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
23+
2224 .. flat-table:: SMPTE 170M Chromaticities
2325 :header-rows: 1
2426 :stub-columns: 0
2527 :widths: 1 1 2
2628
27−
28− - .. row 1
29−
30− - Color
31−
32− - x
33−
34− - y
35−
36− - .. row 2
37−
38− - Red
39−
40− - 0.630
41−
42− - 0.340
43−
44− - .. row 3
45−
46− - Green
47−
48− - 0.310
49−
50− - 0.595
51−
52− - .. row 4
53−
54− - Blue
55−
56− - 0.155
57−
58− - 0.070
59−
60− - .. row 5
61−
62− - White Reference (D65)
63−
64− - 0.3127
65−
66− - 0.3290
29+ * - Color
30+ - x
31+ - y
32+ * - Red
33+ - 0.630
34+ - 0.340
35+ * - Green
36+ - 0.310
37+ - 0.595
38+ * - Blue
39+ - 0.155
40+ - 0.070
41+ * - White Reference (D65)
42+ - 0.3127
43+ - 0.3290
6744
6845
6946 The red, green and blue chromaticities are also often referred to as the
@@ -72,28 +49,34 @@ SMPTE C set, so this colorspace is sometimes called SMPTE C as well. · 2 unmodified lines
7249 The transfer function defined for SMPTE 170M is the same as the one
7350 defined in Rec. 709.
7451
75− L' = -1.099(-L) :sup:`0.45` + 0.099 for L ≤ -0.018
52+.. math::
53+
54+ L' = -1.099(-L)^{0.45} + 0.099 \text{, for } L \le-0.018
7655
77− L' = 4.5L for -0.018 < L < 0.018
56+ L' = 4.5L \text{, for } -0.018 < L < 0.018
7857
79− L' = 1.099L :sup:`0.45` - 0.099 for L ≥ 0.018
58+ L' = 1.099L^{0.45} - 0.099 \text{, for } L \ge 0.018
8059
8160 Inverse Transfer function:
8261
83− L = -((L' - 0.099) / -1.099) :sup:`1/0.45` for L' ≤ -0.081
62+.. math::
8463
85− L = L' / 4.5 for -0.081 < L' < 0.081
64+ L = -\left( \frac{L' - 0.099}{-1.099} \right) ^{\frac{1}{0.45}} \text{, for } L' \le -0.081
8665
87− L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081
66+ L = \frac{L'}{4.5} \text{, for } -0.081 < L' < 0.081
67+
68+ L = \left(\frac{L' + 0.099}{1.099}\right)^{\frac{1}{0.45} } \text{, for } L' \ge 0.081
8869
8970 The luminance (Y') and color difference (Cb and Cr) are obtained with
9071 the following ``V4L2_YCBCR_ENC_601`` encoding:
9172
92− Y' = 0.299R' + 0.587G' + 0.114B'
73+.. math::
9374
94− Cb = -0.169R' - 0.331G' + 0.5B'
75+ Y' = 0.2990R' + 0.5870G' + 0.1140B'
9576
96− Cr = 0.5R' - 0.419G' - 0.081B'
77+ Cb = -0.1687R' - 0.3313G' + 0.5B'
78+
79+ Cr = 0.5R' - 0.4187G' - 0.0813B'
9780
9881 Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
9982 [-0.5…0.5]. This conversion to Y'CbCr is identical to the one defined in
@@ -117,51 +100,28 @@ and the white reference are: · 17 unmodified lines
117100
118101
119102
103+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
104+
120105 .. flat-table:: Rec. 709 Chromaticities
121106 :header-rows: 1
122107 :stub-columns: 0
123108 :widths: 1 1 2
124109
125−
126− - .. row 1
127−
128− - Color
129−
130− - x
131−
132− - y
133−
134− - .. row 2
135−
136− - Red
137−
138− - 0.640
139−
140− - 0.330
141−
142− - .. row 3
143−
144− - Green
145−
146− - 0.300
147−
148− - 0.600
149−
150− - .. row 4
151−
152− - Blue
153−
154− - 0.150
155−
156− - 0.060
157−
158− - .. row 5
159−
160− - White Reference (D65)
161−
162− - 0.3127
163−
164− - 0.3290
110+ * - Color
111+ - x
112+ - y
113+ * - Red
114+ - 0.640
115+ - 0.330
116+ * - Green
117+ - 0.300
118+ - 0.600
119+ * - Blue
120+ - 0.150
121+ - 0.060
122+ * - White Reference (D65)
123+ - 0.3127
124+ - 0.3290
165125
166126
167127 The full name of this standard is Rec. ITU-R BT.709-5.
@@ -169,23 +129,29 @@ The full name of this standard is Rec. ITU-R BT.709-5. · 1 unmodified line
169129 Transfer function. Normally L is in the range [0…1], but for the
170130 extended gamut xvYCC encoding values outside that range are allowed.
171131
172− L' = -1.099(-L) :sup:`0.45` + 0.099 for L ≤ -0.018
132+.. math::
133+
134+ L' = -1.099(-L)^{0.45} + 0.099 \text{, for } L \le -0.018
173135
174− L' = 4.5L for -0.018 < L < 0.018
136+ L' = 4.5L \text{, for } -0.018 < L < 0.018
175137
176− L' = 1.099L :sup:`0.45` - 0.099 for L ≥ 0.018
138+ L' = 1.099L^{0.45} - 0.099 \text{, for } L \ge 0.018
177139
178140 Inverse Transfer function:
179141
180− L = -((L' - 0.099) / -1.099) :sup:`1/0.45` for L' ≤ -0.081
142+.. math::
181143
182− L = L' / 4.5 for -0.081 < L' < 0.081
144+ L = -\left( \frac{L' - 0.099}{-1.099} \right)^\frac{1}{0.45} \text{, for } L' \le -0.081
183145
184− L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081
146+ L = \frac{L'}{4.5}\text{, for } -0.081 < L' < 0.081
147+
148+ L = \left(\frac{L' + 0.099}{1.099}\right)^{\frac{1}{0.45} } \text{, for } L' \ge 0.081
185149
186150 The luminance (Y') and color difference (Cb and Cr) are obtained with
187151 the following ``V4L2_YCBCR_ENC_709`` encoding:
188152
153+.. math::
154+
189155 Y' = 0.2126R' + 0.7152G' + 0.0722B'
190156
191157 Cb = -0.1146R' - 0.3854G' + 0.5B'
@@ -210,22 +176,26 @@ similar to the Rec. 709 encoding, but it allows for R', G' and B' values · 18 unmodified lines
210176 that are outside the range [0…1]. The resulting Y', Cb and Cr values are
211177 scaled and offset:
212178
213− Y' = (219 / 256) * (0.2126R' + 0.7152G' + 0.0722B') + (16 / 256)
179+.. math::
214180
215− Cb = (224 / 256) * (-0.1146R' - 0.3854G' + 0.5B')
181+ Y' = \frac{219}{256} * (0.2126R' + 0.7152G' + 0.0722B') + \frac{16}{256}
216182
217− Cr = (224 / 256) * (0.5R' - 0.4542G' - 0.0458B')
183+ Cb = \frac{224}{256} * (-0.1146R' - 0.3854G' + 0.5B')
184+
185+ Cr = \frac{224}{256} * (0.5R' - 0.4542G' - 0.0458B')
218186
219187 The xvYCC 601 encoding (``V4L2_YCBCR_ENC_XV601``, :ref:`xvycc`) is
220188 similar to the BT.601 encoding, but it allows for R', G' and B' values
221189 that are outside the range [0…1]. The resulting Y', Cb and Cr values are
222190 scaled and offset:
223191
224− Y' = (219 / 256) * (0.299R' + 0.587G' + 0.114B') + (16 / 256)
192+.. math::
193+
194+ Y' = \frac{219}{256} * (0.2990R' + 0.5870G' + 0.1140B') + \frac{16}{256}
225195
226− Cb = (224 / 256) * (-0.169R' - 0.331G' + 0.5B')
196+ Cb = \frac{224}{256} * (-0.1687R' - 0.3313G' + 0.5B')
227197
228− Cr = (224 / 256) * (0.5R' - 0.419G' - 0.081B')
198+ Cr = \frac{224}{256} * (0.5R' - 0.4187G' - 0.0813B')
229199
230200 Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
231201 [-0.5…0.5]. The non-standard xvYCC 709 or xvYCC 601 encodings can be
@@ -241,56 +211,33 @@ Colorspace sRGB (V4L2_COLORSPACE_SRGB) · 9 unmodified lines
241211 The :ref:`srgb` standard defines the colorspace used by most webcams
242212 and computer graphics. The default transfer function is
243213 ``V4L2_XFER_FUNC_SRGB``. The default Y'CbCr encoding is
244−``V4L2_YCBCR_ENC_SYCC``. The default Y'CbCr quantization is full range.
214+``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is full range.
245215 The chromaticities of the primary colors and the white reference are:
246216
247217
248218
219+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
220+
249221 .. flat-table:: sRGB Chromaticities
250222 :header-rows: 1
251223 :stub-columns: 0
252224 :widths: 1 1 2
253225
254−
255− - .. row 1
256−
257− - Color
258−
259− - x
260−
261− - y
262−
263− - .. row 2
264−
265− - Red
266−
267− - 0.640
268−
269− - 0.330
270−
271− - .. row 3
272−
273− - Green
274−
275− - 0.300
276−
277− - 0.600
278−
279− - .. row 4
280−
281− - Blue
282−
283− - 0.150
284−
285− - 0.060
286−
287− - .. row 5
288−
289− - White Reference (D65)
290−
291− - 0.3127
292−
293− - 0.3290
226+ * - Color
227+ - x
228+ - y
229+ * - Red
230+ - 0.640
231+ - 0.330
232+ * - Green
233+ - 0.300
234+ - 0.600
235+ * - Blue
236+ - 0.150
237+ - 0.060
238+ * - White Reference (D65)
239+ - 0.3127
240+ - 0.3290
294241
295242
296243 These chromaticities are identical to the Rec. 709 colorspace.
@@ -298,23 +245,28 @@ These chromaticities are identical to the Rec. 709 colorspace. · 1 unmodified line
298245 Transfer function. Note that negative values for L are only used by the
299246 Y'CbCr conversion.
300247
301− L' = -1.055(-L) :sup:`1/2.4` + 0.055 for L < -0.0031308
248+.. math::
302249
303− L' = 12.92L for -0.0031308 ≤ L ≤ 0.0031308
250+ L' = -1.055(-L)^{\frac{1}{2.4} } + 0.055\text{, for }L < -0.0031308
304251
305− L' = 1.055L :sup:`1/2.4` - 0.055 for 0.0031308 < L ≤ 1
252+ L' = 12.92L\text{, for }-0.0031308 \le L \le 0.0031308
253+
254+ L' = 1.055L ^{\frac{1}{2.4} } - 0.055\text{, for }0.0031308 < L \le 1
306255
307256 Inverse Transfer function:
308257
309− L = -((-L' + 0.055) / 1.055) :sup:`2.4` for L' < -0.04045
258+.. math::
259+
260+ L = -((-L' + 0.055) / 1.055) ^{2.4}\text{, for }L' < -0.04045
310261
311− L = L' / 12.92 for -0.04045 ≤ L' ≤ 0.04045
262+ L = L' / 12.92\text{, for }-0.04045 \le L' \le 0.04045
312263
313− L = ((L' + 0.055) / 1.055) :sup:`2.4` for L' > 0.04045
264+ L = ((L' + 0.055) / 1.055) ^{2.4}\text{, for }L' > 0.04045
314265
315266 The luminance (Y') and color difference (Cb and Cr) are obtained with
316−the following ``V4L2_YCBCR_ENC_SYCC`` encoding as defined by
317−:ref:`sycc`:
267+the following ``V4L2_YCBCR_ENC_601`` encoding as defined by :ref:`sycc`:
268+
269+.. math::
318270
319271 Y' = 0.2990R' + 0.5870G' + 0.1140B'
320272
@@ -323,11 +275,8 @@ the following ``V4L2_YCBCR_ENC_SYCC`` encoding as defined by · 2 unmodified lines
323275 Cr = 0.5R' - 0.4187G' - 0.0813B'
324276
325277 Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
326−[-0.5…0.5]. The ``V4L2_YCBCR_ENC_SYCC`` quantization is always full
327−range. Although this Y'CbCr encoding looks very similar to the
328−``V4L2_YCBCR_ENC_XV601`` encoding, it is not. The
329−``V4L2_YCBCR_ENC_XV601`` scales and offsets the Y'CbCr values before
330−quantization, but this encoding does not do that.
278+[-0.5…0.5]. This transform is identical to one defined in SMPTE
279+170M/BT.601. The Y'CbCr quantization is full range.
331280
332281
333282 .. _col-adobergb:
@@ -339,80 +288,63 @@ The :ref:`adobergb` standard defines the colorspace used by computer · 5 unmodified lines
339288 graphics that use the AdobeRGB colorspace. This is also known as the
340289 :ref:`oprgb` standard. The default transfer function is
341290 ``V4L2_XFER_FUNC_ADOBERGB``. The default Y'CbCr encoding is
342−``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited
291+``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is full
343292 range. The chromaticities of the primary colors and the white reference
344293 are:
345294
346295
347296
297+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
298+
348299 .. flat-table:: Adobe RGB Chromaticities
349300 :header-rows: 1
350301 :stub-columns: 0
351302 :widths: 1 1 2
352303
353−
354− - .. row 1
355−
356− - Color
357−
358− - x
359−
360− - y
361−
362− - .. row 2
363−
364− - Red
365−
366− - 0.6400
367−
368− - 0.3300
369−
370− - .. row 3
371−
372− - Green
373−
374− - 0.2100
375−
376− - 0.7100
377−
378− - .. row 4
379−
380− - Blue
381−
382− - 0.1500
383−
384− - 0.0600
385−
386− - .. row 5
387−
388− - White Reference (D65)
389−
390− - 0.3127
391−
392− - 0.3290
304+ * - Color
305+ - x
306+ - y
307+ * - Red
308+ - 0.6400
309+ - 0.3300
310+ * - Green
311+ - 0.2100
312+ - 0.7100
313+ * - Blue
314+ - 0.1500
315+ - 0.0600
316+ * - White Reference (D65)
317+ - 0.3127
318+ - 0.3290
393319
394320
395321
396322 Transfer function:
397323
398− L' = L :sup:`1/2.19921875`
324+.. math::
325+
326+ L' = L ^{\frac{1}{2.19921875}}
399327
400328 Inverse Transfer function:
401329
402− L = L' :sup:`2.19921875`
330+.. math::
331+
332+ L = L'^{(2.19921875)}
403333
404334 The luminance (Y') and color difference (Cb and Cr) are obtained with
405335 the following ``V4L2_YCBCR_ENC_601`` encoding:
406336
407− Y' = 0.299R' + 0.587G' + 0.114B'
337+.. math::
408338
409− Cb = -0.169R' - 0.331G' + 0.5B'
339+ Y' = 0.2990R' + 0.5870G' + 0.1140B'
410340
411− Cr = 0.5R' - 0.419G' - 0.081B'
341+ Cb = -0.1687R' - 0.3313G' + 0.5B'
342+
343+ Cr = 0.5R' - 0.4187G' - 0.0813B'
412344
413345 Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
414346 [-0.5…0.5]. This transform is identical to one defined in SMPTE
415−170M/BT.601. The Y'CbCr quantization is limited range.
347+170M/BT.601. The Y'CbCr quantization is full range.
416348
417349
418350 .. _col-bt2020:
@@ -429,69 +361,52 @@ of the primary colors and the white reference are: · 10 unmodified lines
429361
430362
431363
364+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
365+
432366 .. flat-table:: BT.2020 Chromaticities
433367 :header-rows: 1
434368 :stub-columns: 0
435369 :widths: 1 1 2
436370
437−
438− - .. row 1
439−
440− - Color
441−
442− - x
443−
444− - y
445−
446− - .. row 2
447−
448− - Red
449−
450− - 0.708
451−
452− - 0.292
453−
454− - .. row 3
455−
456− - Green
457−
458− - 0.170
459−
460− - 0.797
461−
462− - .. row 4
463−
464− - Blue
465−
466− - 0.131
467−
468− - 0.046
469−
470− - .. row 5
471−
472− - White Reference (D65)
473−
474− - 0.3127
475−
476− - 0.3290
371+ * - Color
372+ - x
373+ - y
374+ * - Red
375+ - 0.708
376+ - 0.292
377+ * - Green
378+ - 0.170
379+ - 0.797
380+ * - Blue
381+ - 0.131
382+ - 0.046
383+ * - White Reference (D65)
384+ - 0.3127
385+ - 0.3290
477386
478387
479388
480389 Transfer function (same as Rec. 709):
481390
482− L' = 4.5L for 0 ≤ L < 0.018
391+.. math::
483392
484− L' = 1.099L :sup:`0.45` - 0.099 for 0.018 ≤ L ≤ 1
393+ L' = 4.5L\text{, for }0 \le L < 0.018
394+
395+ L' = 1.099L ^{0.45} - 0.099\text{, for } 0.018 \le L \le 1
485396
486397 Inverse Transfer function:
487398
488− L = L' / 4.5 for L' < 0.081
399+.. math::
400+
401+ L = L' / 4.5\text{, for } L' < 0.081
489402
490− L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081
403+ L = \left( \frac{L' + 0.099}{1.099}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081
491404
492405 The luminance (Y') and color difference (Cb and Cr) are obtained with
493406 the following ``V4L2_YCBCR_ENC_BT2020`` encoding:
494407
408+.. math::
409+
495410 Y' = 0.2627R' + 0.6780G' + 0.0593B'
496411
497412 Cb = -0.1396R' - 0.3604G' + 0.5B'
@@ -506,23 +421,20 @@ There is also an alternate constant luminance R'G'B' to Yc'CbcCrc · 8 unmodified lines
506421
507422 Luma:
508423
509− Yc' = (0.2627R + 0.6780G + 0.0593B)'
510−
511−B' - Yc' ≤ 0:
512−
513− Cbc = (B' - Yc') / 1.9404
514−
515−B' - Yc' > 0:
516−
517− Cbc = (B' - Yc') / 1.5816
518−
519−R' - Yc' ≤ 0:
520−
521− Crc = (R' - Y') / 1.7184
522−
523−R' - Yc' > 0:
524−
525− Crc = (R' - Y') / 0.9936
424+.. math::
425+ :nowrap:
426+
427+ \begin{align*}
428+ Yc' = (0.2627R + 0.6780G + 0.0593B)'& \\
429+ B' - Yc' \le 0:& \\
430+ &Cbc = (B' - Yc') / 1.9404 \\
431+ B' - Yc' > 0: & \\
432+ &Cbc = (B' - Yc') / 1.5816 \\
433+ R' - Yc' \le 0:& \\
434+ &Crc = (R' - Y') / 1.7184 \\
435+ R' - Yc' > 0:& \\
436+ &Crc = (R' - Y') / 0.9936
437+ \end{align*}
526438
527439 Yc' is clamped to the range [0…1] and Cbc and Crc are clamped to the
528440 range [-0.5…0.5]. The Yc'CbcCrc quantization is limited range.
@@ -536,71 +448,54 @@ Colorspace DCI-P3 (V4L2_COLORSPACE_DCI_P3) · 7 unmodified lines
536448 The :ref:`smpte431` standard defines the colorspace used by cinema
537449 projectors that use the DCI-P3 colorspace. The default transfer function
538450 is ``V4L2_XFER_FUNC_DCI_P3``. The default Y'CbCr encoding is
539−``V4L2_YCBCR_ENC_709``.
451+``V4L2_YCBCR_ENC_709``. The default Y'CbCr quantization is limited range.
452+
453+.. note::
540454
541−.. note:: Note that this colorspace does not specify a
455+ Note that this colorspace standard does not specify a
542456 Y'CbCr encoding since it is not meant to be encoded to Y'CbCr. So this
543− default Y'CbCr encoding was picked because it is the HDTV encoding. The
544− default Y'CbCr quantization is limited range. The chromaticities of the
545− primary colors and the white reference are:
457+ default Y'CbCr encoding was picked because it is the HDTV encoding.
458+
459+The chromaticities of the primary colors and the white reference are:
546460
547461
548462
463+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
464+
549465 .. flat-table:: DCI-P3 Chromaticities
550466 :header-rows: 1
551467 :stub-columns: 0
552468 :widths: 1 1 2
553469
554−
555− - .. row 1
556−
557− - Color
558−
559− - x
560−
561− - y
562−
563− - .. row 2
564−
565− - Red
566−
567− - 0.6800
568−
569− - 0.3200
570−
571− - .. row 3
572−
573− - Green
574−
575− - 0.2650
576−
577− - 0.6900
578−
579− - .. row 4
580−
581− - Blue
582−
583− - 0.1500
584−
585− - 0.0600
586−
587− - .. row 5
588−
589− - White Reference
590−
591− - 0.3140
592−
593− - 0.3510
470+ * - Color
471+ - x
472+ - y
473+ * - Red
474+ - 0.6800
475+ - 0.3200
476+ * - Green
477+ - 0.2650
478+ - 0.6900
479+ * - Blue
480+ - 0.1500
481+ - 0.0600
482+ * - White Reference
483+ - 0.3140
484+ - 0.3510
594485
595486
596487
597488 Transfer function:
598489
599− L' = L :sup:`1/2.6`
490+.. math::
491+
492+ L' = L^{\frac{1}{2.6}}
600493
601494 Inverse Transfer function:
602495
603− L = L' :sup:`2.6`
496+.. math::
497+
498+ L = L'^{(2.6)}
604499
605500 Y'CbCr encoding is not specified. V4L2 defaults to Rec. 709.
606501
@@ -619,77 +514,60 @@ and the white reference are: · 12 unmodified lines
619514
620515
621516
517+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
518+
622519 .. flat-table:: SMPTE 240M Chromaticities
623520 :header-rows: 1
624521 :stub-columns: 0
625522 :widths: 1 1 2
626523
627−
628− - .. row 1
629−
630− - Color
631−
632− - x
633−
634− - y
635−
636− - .. row 2
637−
638− - Red
639−
640− - 0.630
641−
642− - 0.340
643−
644− - .. row 3
645−
646− - Green
647−
648− - 0.310
649−
650− - 0.595
651−
652− - .. row 4
653−
654− - Blue
655−
656− - 0.155
657−
658− - 0.070
659−
660− - .. row 5
661−
662− - White Reference (D65)
663−
664− - 0.3127
665−
666− - 0.3290
524+ * - Color
525+ - x
526+ - y
527+ * - Red
528+ - 0.630
529+ - 0.340
530+ * - Green
531+ - 0.310
532+ - 0.595
533+ * - Blue
534+ - 0.155
535+ - 0.070
536+ * - White Reference (D65)
537+ - 0.3127
538+ - 0.3290
667539
668540
669541 These chromaticities are identical to the SMPTE 170M colorspace.
670542
671543 Transfer function:
672544
673− L' = 4L for 0 ≤ L < 0.0228
545+.. math::
674546
675− L' = 1.1115L :sup:`0.45` - 0.1115 for 0.0228 ≤ L ≤ 1
547+ L' = 4L\text{, for } 0 \le L < 0.0228
548+
549+ L' = 1.1115L ^{0.45} - 0.1115\text{, for } 0.0228 \le L \le 1
676550
677551 Inverse Transfer function:
678552
679− L = L' / 4 for 0 ≤ L' < 0.0913
553+.. math::
554+
555+ L = \frac{L'}{4}\text{, for } 0 \le L' < 0.0913
680556
681− L = ((L' + 0.1115) / 1.1115) :sup:`1/0.45` for L' ≥ 0.0913
557+ L = \left( \frac{L' + 0.1115}{1.1115}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.0913
682558
683559 The luminance (Y') and color difference (Cb and Cr) are obtained with
684560 the following ``V4L2_YCBCR_ENC_SMPTE240M`` encoding:
685561
562+.. math::
563+
686564 Y' = 0.2122R' + 0.7013G' + 0.0865B'
687565
688566 Cb = -0.1161R' - 0.3839G' + 0.5B'
689567
690568 Cr = 0.5R' - 0.4451G' - 0.0549B'
691569
692−Yc' is clamped to the range [0…1] and Cbc and Crc are clamped to the
570+Y' is clamped to the range [0…1] and Cb and Cr are clamped to the
693571 range [-0.5…0.5]. The Y'CbCr quantization is limited range.
694572
695573
@@ -707,54 +585,33 @@ reference are: · 11 unmodified lines
707585
708586
709587
588+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
589+
710590 .. flat-table:: NTSC 1953 Chromaticities
711591 :header-rows: 1
712592 :stub-columns: 0
713593 :widths: 1 1 2
714594
715−
716− - .. row 1
717−
718− - Color
719−
720− - x
721−
722− - y
723−
724− - .. row 2
725−
726− - Red
727−
728− - 0.67
729−
730− - 0.33
731−
732− - .. row 3
733−
734− - Green
735−
736− - 0.21
737−
738− - 0.71
739−
740− - .. row 4
741−
742− - Blue
743−
744− - 0.14
745−
746− - 0.08
747−
748− - .. row 5
749−
750− - White Reference (C)
751−
752− - 0.310
753−
754− - 0.316
755−
756−
757−.. note:: This colorspace uses Illuminant C instead of D65 as the white
595+ * - Color
596+ - x
597+ - y
598+ * - Red
599+ - 0.67
600+ - 0.33
601+ * - Green
602+ - 0.21
603+ - 0.71
604+ * - Blue
605+ - 0.14
606+ - 0.08
607+ * - White Reference (C)
608+ - 0.310
609+ - 0.316
610+
611+
612+.. note::
613+
614+ This colorspace uses Illuminant C instead of D65 as the white
758615 reference. To correctly convert an image in this colorspace to another
759616 that uses D65 you need to apply a chromatic adaptation algorithm such as
760617 the Bradford method.
@@ -762,24 +619,30 @@ reference are: · 1 unmodified line
762619 The transfer function was never properly defined for NTSC 1953. The Rec.
763620 709 transfer function is recommended in the literature:
764621
765− L' = 4.5L for 0 ≤ L < 0.018
622+.. math::
623+
624+ L' = 4.5L\text{, for } 0 \le L < 0.018
766625
767− L' = 1.099L :sup:`0.45` - 0.099 for 0.018 ≤ L ≤ 1
626+ L' = 1.099L ^{0.45} - 0.099\text{, for } 0.018 \le L \le 1
768627
769628 Inverse Transfer function:
770629
771− L = L' / 4.5 for L' < 0.081
630+.. math::
772631
773− L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081
632+ L = \frac{L'}{4.5} \text{, for } L' < 0.081
633+
634+ L = \left( \frac{L' + 0.099}{1.099}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081
774635
775636 The luminance (Y') and color difference (Cb and Cr) are obtained with
776637 the following ``V4L2_YCBCR_ENC_601`` encoding:
777638
778− Y' = 0.299R' + 0.587G' + 0.114B'
639+.. math::
779640
780− Cb = -0.169R' - 0.331G' + 0.5B'
641+ Y' = 0.2990R' + 0.5870G' + 0.1140B'
781642
782− Cr = 0.5R' - 0.419G' - 0.081B'
643+ Cb = -0.1687R' - 0.3313G' + 0.5B'
644+
645+ Cr = 0.5R' - 0.4187G' - 0.0813B'
783646
784647 Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
785648 [-0.5…0.5]. The Y'CbCr quantization is limited range. This transform is
@@ -801,75 +664,58 @@ are: · 15 unmodified lines
801664
802665
803666
667+.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
668+
804669 .. flat-table:: EBU Tech. 3213 Chromaticities
805670 :header-rows: 1
806671 :stub-columns: 0
807672 :widths: 1 1 2
808673
809−
810− - .. row 1
811−
812− - Color
813−
814− - x
815−
816− - y
817−
818− - .. row 2
819−
820− - Red
821−
822− - 0.64
823−
824− - 0.33
825−
826− - .. row 3
827−
828− - Green
829−
830− - 0.29
831−
832− - 0.60
833−
834− - .. row 4
835−
836− - Blue
837−
838− - 0.15
839−
840− - 0.06
841−
842− - .. row 5
843−
844− - White Reference (D65)
845−
846− - 0.3127
847−
848− - 0.3290
674+ * - Color
675+ - x
676+ - y
677+ * - Red
678+ - 0.64
679+ - 0.33
680+ * - Green
681+ - 0.29
682+ - 0.60
683+ * - Blue
684+ - 0.15
685+ - 0.06
686+ * - White Reference (D65)
687+ - 0.3127
688+ - 0.3290
849689
850690
851691
852692 The transfer function was never properly defined for this colorspace.
853693 The Rec. 709 transfer function is recommended in the literature:
854694
855− L' = 4.5L for 0 ≤ L < 0.018
695+.. math::
856696
857− L' = 1.099L :sup:`0.45` - 0.099 for 0.018 ≤ L ≤ 1
697+ L' = 4.5L\text{, for } 0 \le L < 0.018
698+
699+ L' = 1.099L ^{0.45} - 0.099\text{, for } 0.018 \le L \le 1
858700
859701 Inverse Transfer function:
860702
861− L = L' / 4.5 for L' < 0.081
703+.. math::
704+
705+ L = \frac{L'}{4.5} \text{, for } L' < 0.081
862706
863− L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081
707+ L = \left(\frac{L' + 0.099}{1.099} \right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081
864708
865709 The luminance (Y') and color difference (Cb and Cr) are obtained with
866710 the following ``V4L2_YCBCR_ENC_601`` encoding:
867711
868− Y' = 0.299R' + 0.587G' + 0.114B'
712+.. math::
869713
870− Cb = -0.169R' - 0.331G' + 0.5B'
714+ Y' = 0.2990R' + 0.5870G' + 0.1140B'
871715
872− Cr = 0.5R' - 0.419G' - 0.081B'
716+ Cb = -0.1687R' - 0.3313G' + 0.5B'
717+
718+ Cr = 0.5R' - 0.4187G' - 0.0813B'
873719
874720 Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
875721 [-0.5…0.5]. The Y'CbCr quantization is limited range. This transform is
@@ -888,7 +734,9 @@ reference are identical to sRGB. The transfer function use is · 12 unmodified lines
888734 with full range quantization where Y' is scaled to [0…255] and Cb/Cr are
889735 scaled to [-128…128] and then clipped to [-128…127].
890736
891−.. note:: The JPEG standard does not actually store colorspace
737+.. note::
738+
739+ The JPEG standard does not actually store colorspace
892740 information. So if something other than sRGB is used, then the driver
893741 will have to set that information explicitly. Effectively
894742 ``V4L2_COLORSPACE_JPEG`` can be considered to be an abbreviation for
Documentation/media/uapi/v4l/pixfmt-013.rst+73−115
@@ -7,123 +7,81 @@ Compressed Formats · 6 unmodified lines
77
88 .. _compressed-formats:
99
10+.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
11+
1012 .. flat-table:: Compressed Image Formats
1113 :header-rows: 1
1214 :stub-columns: 0
1315 :widths: 3 1 4
1416
15−
16− - .. row 1
17−
18− - Identifier
19−
20− - Code
21−
22− - Details
23−
24− - .. _V4L2-PIX-FMT-JPEG:
25−
26− - ``V4L2_PIX_FMT_JPEG``
27−
28− - 'JPEG'
29−
30− - TBD. See also :ref:`VIDIOC_G_JPEGCOMP <VIDIOC_G_JPEGCOMP>`,
31− :ref:`VIDIOC_S_JPEGCOMP <VIDIOC_G_JPEGCOMP>`.
32−
33− - .. _V4L2-PIX-FMT-MPEG:
34−
35− - ``V4L2_PIX_FMT_MPEG``
36−
37− - 'MPEG'
38−
39− - MPEG multiplexed stream. The actual format is determined by
40− extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see
41− :ref:`mpeg-control-id`.
42−
43− - .. _V4L2-PIX-FMT-H264:
44−
45− - ``V4L2_PIX_FMT_H264``
46−
47− - 'H264'
48−
49− - H264 video elementary stream with start codes.
50−
51− - .. _V4L2-PIX-FMT-H264-NO-SC:
52−
53− - ``V4L2_PIX_FMT_H264_NO_SC``
54−
55− - 'AVC1'
56−
57− - H264 video elementary stream without start codes.
58−
59− - .. _V4L2-PIX-FMT-H264-MVC:
60−
61− - ``V4L2_PIX_FMT_H264_MVC``
62−
63− - 'M264'
64−
65− - H264 MVC video elementary stream.
66−
67− - .. _V4L2-PIX-FMT-H263:
68−
69− - ``V4L2_PIX_FMT_H263``
70−
71− - 'H263'
72−
73− - H263 video elementary stream.
74−
75− - .. _V4L2-PIX-FMT-MPEG1:
76−
77− - ``V4L2_PIX_FMT_MPEG1``
78−
79− - 'MPG1'
80−
81− - MPEG1 video elementary stream.
82−
83− - .. _V4L2-PIX-FMT-MPEG2:
84−
85− - ``V4L2_PIX_FMT_MPEG2``
86−
87− - 'MPG2'
88−
89− - MPEG2 video elementary stream.
90−
91− - .. _V4L2-PIX-FMT-MPEG4:
92−
93− - ``V4L2_PIX_FMT_MPEG4``
94−
95− - 'MPG4'
96−
97− - MPEG4 video elementary stream.
98−
99− - .. _V4L2-PIX-FMT-XVID:
100−
101− - ``V4L2_PIX_FMT_XVID``
102−
103− - 'XVID'
104−
105− - Xvid video elementary stream.
106−
107− - .. _V4L2-PIX-FMT-VC1-ANNEX-G:
108−
109− - ``V4L2_PIX_FMT_VC1_ANNEX_G``
110−
111− - 'VC1G'
112−
113− - VC1, SMPTE 421M Annex G compliant stream.
114−
115− - .. _V4L2-PIX-FMT-VC1-ANNEX-L:
116−
117− - ``V4L2_PIX_FMT_VC1_ANNEX_L``
118−
119− - 'VC1L'
120−
121− - VC1, SMPTE 421M Annex L compliant stream.
122−
123− - .. _V4L2-PIX-FMT-VP8:
124−
125− - ``V4L2_PIX_FMT_VP8``
126−
127− - 'VP80'
128−
129− - VP8 video elementary stream.
17+ * - Identifier
18+ - Code
19+ - Details
20+ * .. _V4L2-PIX-FMT-JPEG:
21+
22+ - ``V4L2_PIX_FMT_JPEG``
23+ - 'JPEG'
24+ - TBD. See also :ref:`VIDIOC_G_JPEGCOMP <VIDIOC_G_JPEGCOMP>`,
25+ :ref:`VIDIOC_S_JPEGCOMP <VIDIOC_G_JPEGCOMP>`.
26+ * .. _V4L2-PIX-FMT-MPEG:
27+
28+ - ``V4L2_PIX_FMT_MPEG``
29+ - 'MPEG'
30+ - MPEG multiplexed stream. The actual format is determined by
31+ extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see
32+ :ref:`mpeg-control-id`.
33+ * .. _V4L2-PIX-FMT-H264:
34+
35+ - ``V4L2_PIX_FMT_H264``
36+ - 'H264'
37+ - H264 video elementary stream with start codes.
38+ * .. _V4L2-PIX-FMT-H264-NO-SC:
39+
40+ - ``V4L2_PIX_FMT_H264_NO_SC``
41+ - 'AVC1'
42+ - H264 video elementary stream without start codes.
43+ * .. _V4L2-PIX-FMT-H264-MVC:
44+
45+ - ``V4L2_PIX_FMT_H264_MVC``
46+ - 'M264'
47+ - H264 MVC video elementary stream.
48+ * .. _V4L2-PIX-FMT-H263:
49+
50+ - ``V4L2_PIX_FMT_H263``
51+ - 'H263'
52+ - H263 video elementary stream.
53+ * .. _V4L2-PIX-FMT-MPEG1:
54+
55+ - ``V4L2_PIX_FMT_MPEG1``
56+ - 'MPG1'
57+ - MPEG1 video elementary stream.
58+ * .. _V4L2-PIX-FMT-MPEG2:
59+
60+ - ``V4L2_PIX_FMT_MPEG2``
61+ - 'MPG2'
62+ - MPEG2 video elementary stream.
63+ * .. _V4L2-PIX-FMT-MPEG4:
64+
65+ - ``V4L2_PIX_FMT_MPEG4``
66+ - 'MPG4'
67+ - MPEG4 video elementary stream.
68+ * .. _V4L2-PIX-FMT-XVID:
69+
70+ - ``V4L2_PIX_FMT_XVID``
71+ - 'XVID'
72+ - Xvid video elementary stream.
73+ * .. _V4L2-PIX-FMT-VC1-ANNEX-G:
74+
75+ - ``V4L2_PIX_FMT_VC1_ANNEX_G``
76+ - 'VC1G'
77+ - VC1, SMPTE 421M Annex G compliant stream.
78+ * .. _V4L2-PIX-FMT-VC1-ANNEX-L:
79+
80+ - ``V4L2_PIX_FMT_VC1_ANNEX_L``
81+ - 'VC1L'
82+ - VC1, SMPTE 421M Annex L compliant stream.
83+ * .. _V4L2-PIX-FMT-VP8:
84+
85+ - ``V4L2_PIX_FMT_VP8``
86+ - 'VP80'
87+ - VP8 video elementary stream.
Documentation/media/uapi/v4l/pixfmt-grey.rst+20−53
@@ -6,8 +6,6 @@ · 5 unmodified lines
66 V4L2_PIX_FMT_GREY ('GREY')
77 **************************
88
9−*man V4L2_PIX_FMT_GREY(2)*
10−
119 Grey-scale image
1210
1311
@@ -20,58 +18,27 @@ which simply contains no Cb or Cr data. · 6 unmodified lines
2018 **Byte Order.**
2119 Each cell is one byte.
2220
23−
24−
2521 .. flat-table::
2622 :header-rows: 0
2723 :stub-columns: 0
28− :widths: 2 1 1 1 1
29−
30−
31− - .. row 1
32−
33− - start + 0:
34−
35− - Y'\ :sub:`00`
36−
37− - Y'\ :sub:`01`
38−
39− - Y'\ :sub:`02`
40−
41− - Y'\ :sub:`03`
42−
43− - .. row 2
44−
45− - start + 4:
46−
47− - Y'\ :sub:`10`
48−
49− - Y'\ :sub:`11`
50−
51− - Y'\ :sub:`12`
52−
53− - Y'\ :sub:`13`
54−
55− - .. row 3
56−
57− - start + 8:
58−
59− - Y'\ :sub:`20`
60−
61− - Y'\ :sub:`21`
62−
63− - Y'\ :sub:`22`
64−
65− - Y'\ :sub:`23`
66−
67− - .. row 4
68−
69− - start + 12:
70−
71− - Y'\ :sub:`30`
72−
73− - Y'\ :sub:`31`
74−
75− - Y'\ :sub:`32`
7624
77− - Y'\ :sub:`33`
25+ * - start + 0:
26+ - Y'\ :sub:`00`
27+ - Y'\ :sub:`01`
28+ - Y'\ :sub:`02`
29+ - Y'\ :sub:`03`
30+ * - start + 4:
31+ - Y'\ :sub:`10`
32+ - Y'\ :sub:`11`
33+ - Y'\ :sub:`12`
34+ - Y'\ :sub:`13`
35+ * - start + 8:
36+ - Y'\ :sub:`20`
37+ - Y'\ :sub:`21`
38+ - Y'\ :sub:`22`
39+ - Y'\ :sub:`23`
40+ * - start + 12:
41+ - Y'\ :sub:`30`
42+ - Y'\ :sub:`31`
43+ - Y'\ :sub:`32`
44+ - Y'\ :sub:`33`
Documentation/media/uapi/v4l/pixfmt-indexed.rst+28−54
@@ -17,57 +17,31 @@ the palette, this must be done with ioctls of the Linux framebuffer API. · 16 unmodified lines
1717 :header-rows: 2
1818 :stub-columns: 0
1919
20−
21− - .. row 1
22−
23− - Identifier
24−
25− - Code
26−
27− -
28− - :cspan:`7` Byte 0
29−
30− - .. row 2
31−
32− -
33− -
34− - Bit
35−
36− - 7
37−
38− - 6
39−
40− - 5
41−
42− - 4
43−
44− - 3
45−
46− - 2
47−
48− - 1
49−
50− - 0
51−
52− - .. _V4L2-PIX-FMT-PAL8:
53−
54− - ``V4L2_PIX_FMT_PAL8``
55−
56− - 'PAL8'
57−
58− -
59− - i\ :sub:`7`
60−
61− - i\ :sub:`6`
62−
63− - i\ :sub:`5`
64−
65− - i\ :sub:`4`
66−
67− - i\ :sub:`3`
68−
69− - i\ :sub:`2`
70−
71− - i\ :sub:`1`
72−
73− - i\ :sub:`0`
20+ * - Identifier
21+ - Code
22+ -
23+ - :cspan:`7` Byte 0
24+ * -
25+ -
26+ - Bit
27+ - 7
28+ - 6
29+ - 5
30+ - 4
31+ - 3
32+ - 2
33+ - 1
34+ - 0
35+ * .. _V4L2-PIX-FMT-PAL8:
36+
37+ - ``V4L2_PIX_FMT_PAL8``
38+ - 'PAL8'
39+ -
40+ - i\ :sub:`7`
41+ - i\ :sub:`6`
42+ - i\ :sub:`5`
43+ - i\ :sub:`4`
44+ - i\ :sub:`3`
45+ - i\ :sub:`2`
46+ - i\ :sub:`1`
47+ - i\ :sub:`0`
Documentation/media/uapi/v4l/pixfmt-m420.rst+80−173
@@ -6,8 +6,6 @@ · 5 unmodified lines
66 V4L2_PIX_FMT_M420 ('M420')
77 **************************
88
9−*man V4L2_PIX_FMT_M420(2)*
10−
119 Format with ½ horizontal and vertical chroma resolution, also known as
1210 YUV 4:2:0. Hybrid plane line-interleaved layout.
1311
@@ -32,84 +30,40 @@ the CbCr lines. · 18 unmodified lines
3230 Each cell is one byte.
3331
3432
35−
3633 .. flat-table::
3734 :header-rows: 0
3835 :stub-columns: 0
39− :widths: 2 1 1 1 1
40−
41−
42− - .. row 1
43−
44− - start + 0:
45−
46− - Y'\ :sub:`00`
47−
48− - Y'\ :sub:`01`
49−
50− - Y'\ :sub:`02`
51−
52− - Y'\ :sub:`03`
53−

243 more lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-nv12.rst+80−172

This diff is large: its 274 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-nv12m.rst+82−176

This diff is large: its 277 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-nv12mt.rst+2−4

This diff is large: its 27 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt.gif+0−0

Binary file not shown.

Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt.png+0−0

Binary file not shown.

Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt_example.gif+0−0

Binary file not shown.

Documentation/media/uapi/v4l/pixfmt-nv12mt_files/nv12mt_example.png+0−0

Binary file not shown.

Documentation/media/uapi/v4l/pixfmt-nv16.rst+104−221

This diff is large: its 347 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-nv16m.rst+105−225

This diff is large: its 352 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-nv24.rst+56−132

This diff is large: its 203 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst+786−1404

This diff is large: its 2227 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst+173−296

This diff is large: its 485 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-reserved.rst+221−326

This diff is large: its 565 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-rgb.rst+0−3

This diff is large: its 10 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-sbggr16.rst+36−88

This diff is large: its 142 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-sbggr8.rst+0−81

This diff is large: its 82 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-sdr-cs08.rst+4−17

This diff is large: its 36 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-sdr-cs14le.rst+6−20

This diff is large: its 41 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-sdr-cu08.rst+4−17

This diff is large: its 36 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-sdr-cu16le.rst+6−19

This diff is large: its 40 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-sdr-ru12le.rst+4−10

This diff is large: its 29 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-sgbrg8.rst+0−81

This diff is large: its 82 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-sgrbg8.rst+0−81

This diff is large: its 82 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-srggb10.rst+45−89

This diff is large: its 154 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-srggb10alaw8.rst+0−2

This diff is large: its 9 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-srggb10p.rst+42−67

This diff is large: its 132 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-srggb12.rst+40−84

This diff is large: its 144 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-srggb8.rst+33−60

This diff is large: its 115 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-tch-td08.rst+52−0

This diff is large: its 53 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-tch-td16.rst+67−0

This diff is large: its 68 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-tch-tu08.rst+50−0

This diff is large: its 51 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-tch-tu16.rst+66−0

This diff is large: its 67 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-uv8.rst+21−50

This diff is large: its 86 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-uyvy.rst+72−159

This diff is large: its 253 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-vyuy.rst+72−159

This diff is large: its 253 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-y10.rst+37−82

This diff is large: its 134 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-y10b.rst+5−17

This diff is large: its 37 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-y12.rst+37−82

This diff is large: its 134 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-y12i.rst+3−11

This diff is large: its 26 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-y16-be.rst+40−83

This diff is large: its 145 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-y16.rst+40−83

This diff is large: its 145 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-y41p.rst+108−231

This diff is large: its 361 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-y8i.rst+37−82

This diff is large: its 134 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-yuv410.rst+75−156

This diff is large: its 253 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-yuv411p.rst+67−166

This diff is large: its 255 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-yuv420.rst+90−186

This diff is large: its 298 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-yuv420m.rst+92−194

This diff is large: its 308 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-yuv422m.rst+82−199

This diff is large: its 303 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-yuv422p.rst+80−191

This diff is large: its 293 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-yuv444m.rst+88−213

This diff is large: its 323 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-yuyv.rst+77−164

This diff is large: its 263 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-yvyu.rst+72−159

This diff is large: its 253 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt-z16.rst+37−82

This diff is large: its 134 lines aren’t shown here.

Documentation/media/uapi/v4l/pixfmt.rst+3−2

This diff is large: its 17 lines aren’t shown here.

Documentation/media/uapi/v4l/planar-apis.rst+5−5

This diff is large: its 30 lines aren’t shown here.

Documentation/media/uapi/v4l/rw.rst+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/media/uapi/v4l/selection-api-005.rst+5−5

This diff is large: its 25 lines aren’t shown here.

Documentation/media/uapi/v4l/standard.rst+7−5

This diff is large: its 33 lines aren’t shown here.

Documentation/media/uapi/v4l/streaming-par.rst+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/media/uapi/v4l/subdev-formats.rst+6341−11507

This diff is large: its 17975 lines aren’t shown here.

Documentation/media/uapi/v4l/tch-formats.rst+18−0

This diff is large: its 19 lines aren’t shown here.

Documentation/media/uapi/v4l/tuner.rst+10−8

This diff is large: its 58 lines aren’t shown here.

Documentation/media/uapi/v4l/userp.rst+7−5

This diff is large: its 36 lines aren’t shown here.

Documentation/media/uapi/v4l/v4l2-selection-flags.rst+29−56

This diff is large: its 96 lines aren’t shown here.

Documentation/media/uapi/v4l/v4l2-selection-targets.rst+56−117

This diff is large: its 181 lines aren’t shown here.

Documentation/media/uapi/v4l/v4l2.rst+6−6

This diff is large: its 23 lines aren’t shown here.

Documentation/media/uapi/v4l/video.rst+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-create-bufs.rst+31−56

This diff is large: its 127 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-cropcap.rst+55−90

This diff is large: its 187 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-dbg-g-chip-info.rst+45−90

This diff is large: its 190 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-dbg-g-register.rst+44−90

This diff is large: its 187 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-decoder-cmd.rst+132−193

This diff is large: its 364 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-dqevent.rst+269−453

This diff is large: its 820 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-dv-timings-cap.rst+89−178

This diff is large: its 321 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-encoder-cmd.rst+60−94

This diff is large: its 205 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-enum-dv-timings.rst+29−44

This diff is large: its 124 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-enum-fmt.rst+64−101

This diff is large: its 212 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-enum-frameintervals.rst+68−138

This diff is large: its 262 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-enum-framesizes.rst+80−163

This diff is large: its 306 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-enum-freq-bands.rst+76−126

This diff is large: its 242 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-enumaudio.rst+4−6

This diff is large: its 37 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-enumaudioout.rst+7−7

This diff is large: its 43 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-enuminput.rst+152−286

This diff is large: its 500 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-enumoutput.rst+81−147

This diff is large: its 284 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-enumstd.rst+118−207

This diff is large: its 395 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-expbuf.rst+38−68

This diff is large: its 144 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-audio.rst+45−80

This diff is large: its 182 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-audioout.rst+32−54

This diff is large: its 129 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-crop.rst+22−28

This diff is large: its 94 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-ctrl.rst+18−25

This diff is large: its 91 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst+173−318

This diff is large: its 549 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-edid.rst+42−56

This diff is large: its 132 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-enc-index.rst+63−125

This diff is large: its 238 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst+235−354

This diff is large: its 674 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-fbuf.rst+239−385

This diff is large: its 679 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-fmt.rst+57−96

This diff is large: its 205 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-frequency.rst+36−55

This diff is large: its 132 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-input.rst+6−5

This diff is large: its 32 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-jpegcomp.rst+52−110

This diff is large: its 197 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-modulator.rst+112−175

This diff is large: its 334 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-output.rst+6−5

This diff is large: its 32 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-parm.rst+163−250

This diff is large: its 479 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-priority.rst+31−55

This diff is large: its 114 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-selection.rst+43−58

This diff is large: its 180 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-sliced-vbi-cap.rst+129−211

This diff is large: its 381 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-std.rst+6−7

This diff is large: its 36 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-g-tuner.rst+346−598

This diff is large: its 1021 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-log-status.rst+4−1

This diff is large: its 17 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-overlay.rst+2−4

This diff is large: its 20 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-prepare-buf.rst+3−5

This diff is large: its 29 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-qbuf.rst+18−15

This diff is large: its 99 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-query-dv-timings.rst+9−6

This diff is large: its 38 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-querybuf.rst+9−11

This diff is large: its 57 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-querycap.rst+208−373

This diff is large: its 623 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-queryctrl.rst+385−635

This diff is large: its 1086 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-querystd.rst+5−5

This diff is large: its 31 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-reqbufs.rst+23−43

This diff is large: its 100 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-s-hw-freq-seek.rst+53−93

This diff is large: its 184 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-streamon.rst+9−6

This diff is large: its 43 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-interval.rst+33−74

This diff is large: its 149 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-size.rst+37−82

This diff is large: its 159 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-subdev-enum-mbus-code.rst+25−50

This diff is large: its 115 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-subdev-g-crop.rst+24−43

This diff is large: its 116 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst+33−58

This diff is large: its 149 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-subdev-g-frame-interval.rst+21−34

This diff is large: its 102 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-subdev-g-selection.rst+29−56

This diff is large: its 119 lines aren’t shown here.

Documentation/media/uapi/v4l/vidioc-subscribe-event.rst+52−75

This diff is large: its 166 lines aren’t shown here.

Documentation/media/v4l-drivers/bttv.rst+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/media/v4l-drivers/cpia2.rst+3−0

This diff is large: its 10 lines aren’t shown here.

Documentation/media/v4l-drivers/cx23885-cardlist.rst+1−0

This diff is large: its 5 lines aren’t shown here.

Documentation/media/v4l-drivers/fourcc.rst+1−1

This diff is large: its 6 lines aren’t shown here.

Documentation/media/v4l-drivers/si476x.rst+62−54

This diff is large: its 178 lines aren’t shown here.

Documentation/media/v4l-drivers/zr364xx.rst+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/media/video.h.rst.exceptions+10−10

This diff is large: its 24 lines aren’t shown here.

Documentation/media/videodev2.h.rst.exceptions+108−102

This diff is large: its 310 lines aren’t shown here.

Documentation/sphinx/parse-headers.pl+69−58

This diff is large: its 259 lines aren’t shown here.

MAINTAINERS+64−25

This diff is large: its 236 lines aren’t shown here.

arch/arm/boot/dts/stih407-family.dtsi+12−0

This diff is large: its 19 lines aren’t shown here.

drivers/gpu/drm/exynos/Kconfig+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/input/rmi4/Kconfig+11−0

This diff is large: its 15 lines aren’t shown here.

drivers/input/rmi4/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/input/rmi4/rmi_bus.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/input/rmi4/rmi_driver.h+1−0

This diff is large: its 6 lines aren’t shown here.

drivers/input/rmi4/rmi_f54.c+757−0

This diff is large: its 758 lines aren’t shown here.

drivers/input/touchscreen/Kconfig+9−0

This diff is large: its 16 lines aren’t shown here.

drivers/input/touchscreen/atmel_mxt_ts.c+521−0

This diff is large: its 643 lines aren’t shown here.

drivers/input/touchscreen/sur40.c+108−34

This diff is large: its 276 lines aren’t shown here.

drivers/media/Kconfig+4−3

This diff is large: its 26 lines aren’t shown here.

drivers/media/Makefile+1−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/common/v4l2-tpg/v4l2-tpg-core.c+6−8

This diff is large: its 37 lines aren’t shown here.

drivers/media/dvb-core/demux.h+21−23

This diff is large: its 88 lines aren’t shown here.

drivers/media/dvb-core/dvb_frontend.c+6−22

This diff is large: its 42 lines aren’t shown here.

drivers/media/dvb-core/dvb_math.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-core/dvb_ringbuffer.h+149−77

This diff is large: its 312 lines aren’t shown here.

drivers/media/dvb-frontends/Kconfig+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/media/dvb-frontends/ascot2e.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/cxd2820r.h+26−0

This diff is large: its 33 lines aren’t shown here.

drivers/media/dvb-frontends/cxd2820r_c.c+151−151

This diff is large: its 444 lines aren’t shown here.

drivers/media/dvb-frontends/cxd2820r_core.c+297−300

This diff is large: its 847 lines aren’t shown here.

drivers/media/dvb-frontends/cxd2820r_priv.h+16−26

This diff is large: its 90 lines aren’t shown here.

drivers/media/dvb-frontends/cxd2820r_t.c+144−156

This diff is large: its 450 lines aren’t shown here.

drivers/media/dvb-frontends/cxd2820r_t2.c+135−143

This diff is large: its 424 lines aren’t shown here.

drivers/media/dvb-frontends/cxd2841er.c+93−15

This diff is large: its 264 lines aren’t shown here.

drivers/media/dvb-frontends/drxk_hard.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/dvb-pll.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/helene.c+8−4

This diff is large: its 42 lines aren’t shown here.

drivers/media/dvb-frontends/horus3a.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/ix2505v.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/lgdt3306a.c+5−13

This diff is large: its 38 lines aren’t shown here.

drivers/media/dvb-frontends/mb86a20s.c+53−51

This diff is large: its 163 lines aren’t shown here.

drivers/media/dvb-frontends/si2165.c+122−106

This diff is large: its 461 lines aren’t shown here.

drivers/media/dvb-frontends/si2165.h+9−18

This diff is large: its 39 lines aren’t shown here.

drivers/media/dvb-frontends/si2165_priv.h+17−0

This diff is large: its 22 lines aren’t shown here.

drivers/media/dvb-frontends/stb6000.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/stb6100.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/stv6110.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/stv6110x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/tda18271c2dd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/tda665x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/tda8261.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/tda826x.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/ts2020.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/tua6100.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/zl10036.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/dvb-frontends/zl10039.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/i2c/Kconfig+16−2

This diff is large: its 46 lines aren’t shown here.

drivers/media/i2c/Makefile+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/media/i2c/ad5820.c+372−0

This diff is large: its 373 lines aren’t shown here.

drivers/media/i2c/ad9389b.c+4−19

This diff is large: its 80 lines aren’t shown here.

drivers/media/i2c/adv7180.c+88−34

This diff is large: its 282 lines aren’t shown here.

drivers/media/i2c/adv7183.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/i2c/adv7393.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/i2c/adv7511.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/i2c/ak881x.c+17−11

This diff is large: its 53 lines aren’t shown here.

drivers/media/i2c/cs3308.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/i2c/ir-kbd-i2c.c+60−30

This diff is large: its 135 lines aren’t shown here.

drivers/media/i2c/mt9m111.crenamed from drivers/media/i2c/soc_camera/mt9m111.c+49−67

This diff is large: its 223 lines aren’t shown here.

drivers/media/i2c/ov9650.c+6−1

This diff is large: its 28 lines aren’t shown here.

drivers/media/i2c/s5c73m3/s5c73m3-core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/i2c/s5k4ecgx.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/i2c/s5k6a3.c+1−1

This diff is large: its 16 lines aren’t shown here.

drivers/media/i2c/smiapp/smiapp-core.c+80−100

This diff is large: its 435 lines aren’t shown here.

drivers/media/i2c/smiapp/smiapp-quirk.c+7−9

This diff is large: its 63 lines aren’t shown here.

drivers/media/i2c/smiapp/smiapp-regs.c+11−11

This diff is large: its 41 lines aren’t shown here.

drivers/media/i2c/smiapp/smiapp.h+3−2

This diff is large: its 21 lines aren’t shown here.

drivers/media/i2c/soc_camera/Kconfig+5−2

This diff is large: its 17 lines aren’t shown here.

drivers/media/i2c/soc_camera/Makefile+0−1

This diff is large: its 7 lines aren’t shown here.

drivers/media/i2c/soc_camera/imx074.c+18−24

This diff is large: its 66 lines aren’t shown here.

drivers/media/i2c/soc_camera/mt9m001.c+38−32

This diff is large: its 118 lines aren’t shown here.

drivers/media/i2c/soc_camera/mt9t031.c+30−24

This diff is large: its 97 lines aren’t shown here.

drivers/media/i2c/soc_camera/mt9t112.c+34−26

This diff is large: its 90 lines aren’t shown here.

drivers/media/i2c/soc_camera/mt9v022.c+37−31

This diff is large: its 121 lines aren’t shown here.

drivers/media/i2c/soc_camera/ov2640.c+18−23

This diff is large: its 62 lines aren’t shown here.

drivers/media/i2c/soc_camera/ov5642.c+28−25

This diff is large: its 90 lines aren’t shown here.

drivers/media/i2c/soc_camera/ov6650.c+37−37

This diff is large: its 128 lines aren’t shown here.

drivers/media/i2c/soc_camera/ov772x.c+21−23

This diff is large: its 65 lines aren’t shown here.

drivers/media/i2c/soc_camera/ov9640.c+18−23

This diff is large: its 62 lines aren’t shown here.

drivers/media/i2c/soc_camera/ov9740.c+18−23

This diff is large: its 64 lines aren’t shown here.

drivers/media/i2c/soc_camera/rj54n1cb0c.c+29−23

This diff is large: its 91 lines aren’t shown here.

drivers/media/i2c/soc_camera/tw9910.c+15−32

This diff is large: its 76 lines aren’t shown here.

drivers/media/i2c/ths8200.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/i2c/tlv320aic23b.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/i2c/tvp514x.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/media/i2c/tvp5150.c+45−44

This diff is large: its 157 lines aren’t shown here.

drivers/media/i2c/tvp7002.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/i2c/vs6624.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/media-device.c+111−113

This diff is large: its 330 lines aren’t shown here.

drivers/media/media-entity.c+8−5

This diff is large: its 33 lines aren’t shown here.

drivers/media/pci/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/pci/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

drivers/media/pci/bt8xx/bttv-driver.c+39−20

This diff is large: its 122 lines aren’t shown here.

drivers/media/pci/bt8xx/bttvp.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cobalt/cobalt-alsa-pcm.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/pci/cobalt/cobalt-driver.c+24−23

This diff is large: its 63 lines aren’t shown here.

drivers/media/pci/cobalt/cobalt-v4l2.c+5−2

This diff is large: its 22 lines aren’t shown here.

drivers/media/pci/cx18/cx18-alsa-pcm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx18/cx18-i2c.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/media/pci/cx23885/cx23885-417.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx23885/cx23885-alsa.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx23885/cx23885-cards.c+29−0

This diff is large: its 78 lines aren’t shown here.

drivers/media/pci/cx23885/cx23885-dvb.c+125−10

This diff is large: its 191 lines aren’t shown here.

drivers/media/pci/cx23885/cx23885-i2c.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx23885/cx23885-input.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx23885/cx23885-video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx23885/cx23885.h+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/media/pci/cx25821/cx25821-alsa.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx25821/cx25821-audio-upstream.c+2−12

This diff is large: its 35 lines aren’t shown here.

drivers/media/pci/cx25821/cx25821-i2c.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx25821/cx25821-video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx25821/cx25821.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/pci/cx88/cx88-alsa.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx88/cx88-blackbird.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx88/cx88-dvb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/cx88/cx88-input.c+5−3

This diff is large: its 29 lines aren’t shown here.

drivers/media/pci/cx88/cx88-video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/ddbridge/ddbridge-core.c+9−9

This diff is large: its 63 lines aren’t shown here.

drivers/media/pci/ivtv/ivtv-alsa-pcm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/ivtv/ivtv-i2c.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/media/pci/netup_unidvb/netup_unidvb_core.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/netup_unidvb/netup_unidvb_i2c.c+1−4

This diff is large: its 13 lines aren’t shown here.

drivers/media/pci/ngene/ngene-cards.c+7−7

This diff is large: its 63 lines aren’t shown here.

drivers/media/pci/pt3/pt3.c+1−3

This diff is large: its 12 lines aren’t shown here.

drivers/media/pci/saa7134/saa7134-alsa.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/saa7134/saa7134-empress.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/saa7134/saa7134-i2c.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/saa7134/saa7134-input.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/pci/saa7134/saa7134-video.c+28−13

This diff is large: its 95 lines aren’t shown here.

drivers/media/pci/saa7164/saa7164-i2c.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/smipcie/smipcie-main.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/media/pci/solo6x10/solo6x10-g723.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/tw5864/Kconfig+12−0

This diff is large: its 13 lines aren’t shown here.

drivers/media/pci/tw5864/Makefile+3−0

This diff is large: its 4 lines aren’t shown here.

drivers/media/pci/tw5864/tw5864-core.c+359−0

This diff is large: its 360 lines aren’t shown here.

drivers/media/pci/tw5864/tw5864-h264.c+259−0

This diff is large: its 260 lines aren’t shown here.

drivers/media/pci/tw5864/tw5864-reg.h+2133−0

This diff is large: its 2134 lines aren’t shown here.

drivers/media/pci/tw5864/tw5864-util.c+37−0

This diff is large: its 38 lines aren’t shown here.

drivers/media/pci/tw5864/tw5864-video.c+1510−0

This diff is large: its 1511 lines aren’t shown here.

drivers/media/pci/tw5864/tw5864.h+205−0

This diff is large: its 206 lines aren’t shown here.

drivers/media/pci/tw68/tw68-video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/tw686x/tw686x-audio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/pci/tw686x/tw686x-video.c+121−61

This diff is large: its 291 lines aren’t shown here.

drivers/media/pci/zoran/zoran_driver.c+49−64

This diff is large: its 154 lines aren’t shown here.

drivers/media/platform/Kconfig+26−2

This diff is large: its 59 lines aren’t shown here.

drivers/media/platform/Makefile+4−1

This diff is large: its 31 lines aren’t shown here.

drivers/media/platform/atmel/Kconfig+9−0

This diff is large: its 10 lines aren’t shown here.

drivers/media/platform/atmel/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

drivers/media/platform/atmel/atmel-isc-regs.h+165−0

This diff is large: its 166 lines aren’t shown here.

drivers/media/platform/atmel/atmel-isc.c+1520−0

This diff is large: its 1521 lines aren’t shown here.

drivers/media/platform/davinci/vpbe_display.c+37−28

This diff is large: its 126 lines aren’t shown here.

drivers/media/platform/davinci/vpfe_capture.c+34−18

This diff is large: its 97 lines aren’t shown here.

drivers/media/platform/exynos-gsc/gsc-m2m.c+5−4

This diff is large: its 23 lines aren’t shown here.

drivers/media/platform/exynos4-is/fimc-capture.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/media/platform/exynos4-is/fimc-is-i2c.c+17−10

This diff is large: its 44 lines aren’t shown here.

drivers/media/platform/exynos4-is/fimc-is.c+22−7

This diff is large: its 87 lines aren’t shown here.

drivers/media/platform/exynos4-is/fimc-is.h+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/media/platform/exynos4-is/fimc-isp.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/platform/exynos4-is/fimc-lite.c+5−12

This diff is large: its 62 lines aren’t shown here.

drivers/media/platform/exynos4-is/fimc-m2m.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/exynos4-is/media-dev.c+5−1

This diff is large: its 20 lines aren’t shown here.

drivers/media/platform/exynos4-is/mipi-csis.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/platform/m2m-deinterlace.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c+70−1

This diff is large: its 106 lines aren’t shown here.

drivers/media/platform/mtk-vcodec/venc/venc_h264_if.c+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/media/platform/mtk-vcodec/venc/venc_vp8_if.c+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/media/platform/mtk-vcodec/venc_drv_if.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/media/platform/mx2_emmaprp.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/omap/omap_vout.c+27−26

This diff is large: its 91 lines aren’t shown here.

drivers/media/platform/omap3isp/isp.c+5−1

This diff is large: its 20 lines aren’t shown here.

drivers/media/platform/omap3isp/ispvideo.c+57−31

This diff is large: its 137 lines aren’t shown here.

drivers/media/platform/pxa_camera.crenamed from drivers/media/platform/soc_camera/pxa_camera.c+1308−641

This diff is large: its 2567 lines aren’t shown here.

drivers/media/platform/rcar-fcp.c+5−4

This diff is large: its 27 lines aren’t shown here.

drivers/media/platform/rcar-vin/Kconfig+1−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/platform/rcar-vin/rcar-core.c+122−141

This diff is large: its 376 lines aren’t shown here.

drivers/media/platform/rcar-vin/rcar-dma.c+40−19

This diff is large: its 164 lines aren’t shown here.

drivers/media/platform/rcar-vin/rcar-v4l2.c+187−112

This diff is large: its 505 lines aren’t shown here.

drivers/media/platform/rcar-vin/rcar-vin.h+16−11

This diff is large: its 90 lines aren’t shown here.

drivers/media/platform/rcar_jpu.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/s5p-g2d/g2d.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/s5p-jpeg/jpeg-core.c+17−26

This diff is large: its 115 lines aren’t shown here.

drivers/media/platform/s5p-mfc/s5p_mfc.c+53−33

This diff is large: its 157 lines aren’t shown here.

drivers/media/platform/s5p-mfc/s5p_mfc_common.h+2−0

This diff is large: its 10 lines aren’t shown here.

drivers/media/platform/s5p-mfc/s5p_mfc_dec.c+6−5

This diff is large: its 18 lines aren’t shown here.

drivers/media/platform/s5p-tv/Kconfig+0−88

This diff is large: its 89 lines aren’t shown here.

drivers/media/platform/s5p-tv/Makefile+0−19

This diff is large: its 20 lines aren’t shown here.

drivers/media/platform/s5p-tv/hdmi_drv.c+0−1059

This diff is large: its 1060 lines aren’t shown here.

drivers/media/platform/s5p-tv/hdmiphy_drv.c+0−324

This diff is large: its 325 lines aren’t shown here.

drivers/media/platform/s5p-tv/mixer.h+0−364

This diff is large: its 365 lines aren’t shown here.

drivers/media/platform/s5p-tv/mixer_drv.c+0−527

This diff is large: its 528 lines aren’t shown here.

drivers/media/platform/s5p-tv/mixer_grp_layer.c+0−270

This diff is large: its 271 lines aren’t shown here.

drivers/media/platform/s5p-tv/mixer_reg.c+0−551

This diff is large: its 552 lines aren’t shown here.

drivers/media/platform/s5p-tv/mixer_video.c+0−1130

This diff is large: its 1131 lines aren’t shown here.

drivers/media/platform/s5p-tv/mixer_vp_layer.c+0−242

This diff is large: its 243 lines aren’t shown here.

drivers/media/platform/s5p-tv/regs-hdmi.h+0−146

This diff is large: its 147 lines aren’t shown here.

drivers/media/platform/s5p-tv/regs-mixer.h+0−122

This diff is large: its 123 lines aren’t shown here.

drivers/media/platform/s5p-tv/regs-sdo.h+0−63

This diff is large: its 64 lines aren’t shown here.

drivers/media/platform/s5p-tv/regs-vp.h+0−88

This diff is large: its 89 lines aren’t shown here.

drivers/media/platform/s5p-tv/sdo_drv.c+0−497

This diff is large: its 498 lines aren’t shown here.

drivers/media/platform/s5p-tv/sii9234_drv.c+0−407

This diff is large: its 408 lines aren’t shown here.

drivers/media/platform/sh_vou.c+10−7

This diff is large: its 41 lines aren’t shown here.

drivers/media/platform/soc_camera/Kconfig+0−25

This diff is large: its 32 lines aren’t shown here.

drivers/media/platform/soc_camera/Makefile+0−3

This diff is large: its 8 lines aren’t shown here.

drivers/media/platform/soc_camera/atmel-isi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/soc_camera/rcar_vin.c+0−1970

This diff is large: its 1971 lines aren’t shown here.

drivers/media/platform/soc_camera/sh_mobile_ceu_camera.c+29−240

This diff is large: its 463 lines aren’t shown here.

drivers/media/platform/soc_camera/sh_mobile_csi2.c+0−400

This diff is large: its 401 lines aren’t shown here.

drivers/media/platform/soc_camera/soc_camera.c+37−93

This diff is large: its 186 lines aren’t shown here.

drivers/media/platform/soc_camera/soc_camera_platform.c+18−27

This diff is large: its 68 lines aren’t shown here.

drivers/media/platform/soc_camera/soc_scale_crop.c+55−42

This diff is large: its 206 lines aren’t shown here.

drivers/media/platform/soc_camera/soc_scale_crop.h+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/media/platform/sti/bdisp/bdisp-v4l2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/sti/hva/Makefile+2−0

This diff is large: its 3 lines aren’t shown here.

drivers/media/platform/sti/hva/hva-h264.c+1050−0

This diff is large: its 1051 lines aren’t shown here.

drivers/media/platform/sti/hva/hva-hw.c+538−0

This diff is large: its 539 lines aren’t shown here.

drivers/media/platform/sti/hva/hva-hw.h+42−0

This diff is large: its 43 lines aren’t shown here.

drivers/media/platform/sti/hva/hva-mem.c+59−0

This diff is large: its 60 lines aren’t shown here.

drivers/media/platform/sti/hva/hva-mem.h+34−0

This diff is large: its 35 lines aren’t shown here.

drivers/media/platform/sti/hva/hva-v4l2.c+1415−0

This diff is large: its 1416 lines aren’t shown here.

drivers/media/platform/sti/hva/hva.h+315−0

This diff is large: its 316 lines aren’t shown here.

drivers/media/platform/ti-vpe/cal.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/ti-vpe/vpe.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/vim2m.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/vivid/vivid-core.c+33−30

This diff is large: its 88 lines aren’t shown here.

drivers/media/platform/vivid/vivid-ctrls.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/media/platform/vivid/vivid-vid-cap.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1.h+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_bru.c+27−9

This diff is large: its 96 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_clu.c+39−23

This diff is large: its 109 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_dl.c+107−19

This diff is large: its 193 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_dl.h+1−0

This diff is large: its 7 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_drm.c+12−14

This diff is large: its 55 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_drv.c+38−7

This diff is large: its 145 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_entity.c+19−3

This diff is large: its 74 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_entity.h+19−6

This diff is large: its 59 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_hsit.c+14−6

This diff is large: its 53 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_lif.c+14−6

This diff is large: its 57 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_lut.c+28−14

This diff is large: its 80 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_pipe.c+11−2

This diff is large: its 44 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_pipe.h+10−1

This diff is large: its 31 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_regs.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_rpf.c+71−38

This diff is large: its 149 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_rwpf.c+54−29

This diff is large: its 161 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_rwpf.h+0−13

This diff is large: its 26 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_sru.c+42−8

This diff is large: its 110 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_uds.c+59−12

This diff is large: its 143 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_video.c+174−18

This diff is large: its 274 lines aren’t shown here.

drivers/media/platform/vsp1/vsp1_wpf.c+82−50

This diff is large: its 187 lines aren’t shown here.

drivers/media/platform/xilinx/xilinx-dma.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/radio/si470x/radio-si470x-i2c.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/radio/si4713/radio-usb-si4713.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/rc/igorplugusb.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/media/rc/img-ir/img-ir-nec.c+4−2

This diff is large: its 32 lines aren’t shown here.

drivers/media/rc/ir-nec-decoder.c+6−2

This diff is large: its 44 lines aren’t shown here.

drivers/media/rc/ir-rc6-decoder.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/rc/nuvoton-cir.c+14−26

This diff is large: its 74 lines aren’t shown here.

drivers/media/rc/rc-ir-raw.c+7−2

This diff is large: its 40 lines aren’t shown here.

drivers/media/rc/rc-main.c+7−6

This diff is large: its 34 lines aren’t shown here.

drivers/media/rc/redrat3.c+54−13

This diff is large: its 129 lines aren’t shown here.

drivers/media/rc/streamzap.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/spi/Kconfig+14−0

This diff is large: its 15 lines aren’t shown here.

drivers/media/spi/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

drivers/media/spi/gs1662.c+478−0

This diff is large: its 479 lines aren’t shown here.

drivers/media/tuners/mt2063.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/tuners/mt20xx.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/tuners/mxl5007t.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/tuners/tda18271-fe.c+6−5

This diff is large: its 39 lines aren’t shown here.

drivers/media/tuners/tda18271-priv.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/media/tuners/tda827x.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/tuners/tea5761.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/tuners/tea5767.c+7−4

This diff is large: its 48 lines aren’t shown here.

drivers/media/tuners/tuner-simple.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/airspy/airspy.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/au0828/au0828-input.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/media/usb/au0828/au0828-video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/cx231xx/cx231xx-audio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/cx231xx/cx231xx-avcore.c+4−1

This diff is large: its 12 lines aren’t shown here.

drivers/media/usb/cx231xx/cx231xx-cards.c+3−3

This diff is large: its 24 lines aren’t shown here.

drivers/media/usb/cx231xx/cx231xx-core.c+54−13

This diff is large: its 164 lines aren’t shown here.

drivers/media/usb/cx231xx/cx231xx-dvb.c+56−26

This diff is large: its 139 lines aren’t shown here.

drivers/media/usb/cx231xx/cx231xx-i2c.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/usb/dvb-usb-v2/af9015.c+6−2

This diff is large: its 42 lines aren’t shown here.

drivers/media/usb/dvb-usb-v2/af9035.c+7−2

This diff is large: its 42 lines aren’t shown here.

drivers/media/usb/dvb-usb-v2/az6007.c+9−4

This diff is large: its 44 lines aren’t shown here.

drivers/media/usb/dvb-usb-v2/dvb_usb_core.c+0−2

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/dvb-usb-v2/lmedm04.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/dvb-usb-v2/rtl28xxu.c+7−2

This diff is large: its 38 lines aren’t shown here.

drivers/media/usb/dvb-usb/Kconfig+16−5

This diff is large: its 66 lines aren’t shown here.

drivers/media/usb/dvb-usb/Makefile+7−4

This diff is large: its 28 lines aren’t shown here.

drivers/media/usb/dvb-usb/dib0700_core.c+3−1

This diff is large: its 28 lines aren’t shown here.

drivers/media/usb/dvb-usb/dibusb-common.c+0−158

This diff is large: its 165 lines aren’t shown here.

drivers/media/usb/dvb-usb/dibusb-mc-common.c+168−0

This diff is large: its 169 lines aren’t shown here.

drivers/media/usb/dvb-usb/dtt200u.c+4−1

This diff is large: its 23 lines aren’t shown here.

drivers/media/usb/em28xx/em28xx-audio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/em28xx/em28xx-i2c.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/em28xx/em28xx-video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/go7007/go7007-i2c.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/go7007/go7007-usb.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/go7007/go7007-v4l2.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/go7007/snd-go7007.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/gspca/finepix.c+2−6

This diff is large: its 30 lines aren’t shown here.

drivers/media/usb/gspca/jl2005bcd.c+2−6

This diff is large: its 29 lines aren’t shown here.

drivers/media/usb/gspca/sonixj.c+4−9

This diff is large: its 41 lines aren’t shown here.

drivers/media/usb/gspca/vicam.c+2−6

This diff is large: its 29 lines aren’t shown here.

drivers/media/usb/hackrf/hackrf.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/usb/hdpvr/hdpvr-i2c.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/media/usb/msi2500/msi2500.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/pvrusb2/pvrusb2-hdw-internal.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/media/usb/pvrusb2/pvrusb2-hdw.c+7−16

This diff is large: its 79 lines aren’t shown here.

drivers/media/usb/pvrusb2/pvrusb2-i2c-core.c+2−1

This diff is large: its 10 lines aren’t shown here.

drivers/media/usb/pvrusb2/pvrusb2-v4l2.c+51−30

This diff is large: its 125 lines aren’t shown here.

drivers/media/usb/pwc/pwc-if.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/s2255/s2255drv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/stk1160/stk1160-i2c.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/stk1160/stk1160-v4l.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/tm6000/tm6000-alsa.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/ttusb-dec/ttusb_dec.c+18−12

This diff is large: its 52 lines aren’t shown here.

drivers/media/usb/usbtv/usbtv-audio.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/usbtv/usbtv-video.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/usb/uvc/uvc_queue.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/v4l2-core/v4l2-async.c+0−7

This diff is large: its 14 lines aren’t shown here.

drivers/media/v4l2-core/v4l2-common.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/media/v4l2-core/v4l2-ctrls.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/media/v4l2-core/v4l2-dev.c+11−3

This diff is large: its 56 lines aren’t shown here.

drivers/media/v4l2-core/v4l2-device.c+1−4

This diff is large: its 14 lines aren’t shown here.

drivers/media/v4l2-core/v4l2-dv-timings.c+7−4

This diff is large: its 28 lines aren’t shown here.

drivers/media/v4l2-core/v4l2-ioctl.c+35−9

This diff is large: its 157 lines aren’t shown here.

drivers/media/v4l2-core/v4l2-mem2mem.c+1−127

This diff is large: its 281 lines aren’t shown here.

drivers/media/v4l2-core/videobuf2-core.c+16−262

This diff is large: its 456 lines aren’t shown here.

drivers/media/v4l2-core/videobuf2-dma-contig.c+9−0

This diff is large: its 30 lines aren’t shown here.

drivers/media/v4l2-core/videobuf2-dma-sg.c+13−6

This diff is large: its 58 lines aren’t shown here.

drivers/media/v4l2-core/videobuf2-v4l2.c+0−142

This diff is large: its 218 lines aren’t shown here.

drivers/media/v4l2-core/videobuf2-vmalloc.c+8−5

This diff is large: its 50 lines aren’t shown here.

drivers/staging/media/Kconfig+2−2

This diff is large: its 14 lines aren’t shown here.

drivers/staging/media/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

drivers/staging/media/cec/Kconfig+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/staging/media/cec/cec-adap.c+0−4

This diff is large: its 18 lines aren’t shown here.

drivers/staging/media/cec/cec-core.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/staging/media/lirc/lirc_parallel.c+6−4

This diff is large: its 42 lines aren’t shown here.

drivers/staging/media/omap4iss/iss.c+6−2

This diff is large: its 29 lines aren’t shown here.

drivers/staging/media/omap4iss/iss_video.c+99−0

This diff is large: its 113 lines aren’t shown here.

drivers/staging/media/pulse8-cec/pulse8-cec.c+325−77

This diff is large: its 537 lines aren’t shown here.

drivers/staging/media/s5p-cec/s5p_cec.c+3−16

This diff is large: its 34 lines aren’t shown here.

drivers/staging/media/st-cec/Kconfig+8−0

This diff is large: its 9 lines aren’t shown here.

drivers/staging/media/st-cec/Makefile+1−0

This diff is large: its 2 lines aren’t shown here.

drivers/staging/media/st-cec/stih-cec.c+380−0

This diff is large: its 381 lines aren’t shown here.

drivers/staging/media/tw686x-kh/Kconfig+0−17

This diff is large: its 18 lines aren’t shown here.

drivers/staging/media/tw686x-kh/Makefile+0−3

This diff is large: its 4 lines aren’t shown here.

drivers/staging/media/tw686x-kh/TODO+0−6

This diff is large: its 7 lines aren’t shown here.

drivers/staging/media/tw686x-kh/tw686x-kh-core.c+0−140

This diff is large: its 141 lines aren’t shown here.

drivers/staging/media/tw686x-kh/tw686x-kh-regs.h+0−103

This diff is large: its 104 lines aren’t shown here.

drivers/staging/media/tw686x-kh/tw686x-kh-video.c+0−813

This diff is large: its 814 lines aren’t shown here.

drivers/staging/media/tw686x-kh/tw686x-kh.h+0−117

This diff is large: its 118 lines aren’t shown here.

include/linux/platform_data/media/camera-pxa.h+2−0

This diff is large: its 9 lines aren’t shown here.

include/media/drv-intf/sh_mobile_ceu.h+0−1

This diff is large: its 8 lines aren’t shown here.

include/media/drv-intf/sh_mobile_csi2.h+0−48

This diff is large: its 49 lines aren’t shown here.

include/media/i2c/smiapp.h+1−6

This diff is large: its 28 lines aren’t shown here.

include/media/media-device.h+85−46

This diff is large: its 236 lines aren’t shown here.

include/media/media-devnode.h+3−2

This diff is large: its 12 lines aren’t shown here.

include/media/media-entity.h+160−88

This diff is large: its 562 lines aren’t shown here.

include/media/rc-core.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/media/rc-map.h+80−25

This diff is large: its 146 lines aren’t shown here.

include/media/rcar-fcp.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/media/soc_camera.h+2−5

This diff is large: its 19 lines aren’t shown here.

include/media/v4l2-ctrls.h+50−12

This diff is large: its 127 lines aren’t shown here.

include/media/v4l2-dev.h+10−8

This diff is large: its 69 lines aren’t shown here.

include/media/v4l2-device.h+34−34

This diff is large: its 202 lines aren’t shown here.

include/media/v4l2-dv-timings.h+2−2

This diff is large: its 11 lines aren’t shown here.

include/media/v4l2-event.h+2−1

This diff is large: its 10 lines aren’t shown here.

include/media/v4l2-flash-led-class.h+11−4

This diff is large: its 34 lines aren’t shown here.

include/media/v4l2-ioctl.h+304−206

This diff is large: its 617 lines aren’t shown here.

include/media/v4l2-mc.h+2−2

This diff is large: its 18 lines aren’t shown here.

include/media/v4l2-mem2mem.h+246−18

This diff is large: its 436 lines aren’t shown here.

include/media/v4l2-subdev.h+12−20

This diff is large: its 105 lines aren’t shown here.

include/media/videobuf2-core.h+345−35

This diff is large: its 572 lines aren’t shown here.

include/media/videobuf2-v4l2.h+179−3

This diff is large: its 224 lines aren’t shown here.

include/media/vsp1.h+1−1

This diff is large: its 9 lines aren’t shown here.

include/uapi/linux/dvb/video.h+2−1

This diff is large: its 10 lines aren’t shown here.

include/uapi/linux/media-bus-format.h+9−1

This diff is large: its 24 lines aren’t shown here.

include/uapi/linux/media.h+1−0

This diff is large: its 8 lines aren’t shown here.

include/uapi/linux/v4l2-dv-timings.h+12−0

This diff is large: its 17 lines aren’t shown here.

include/uapi/linux/videodev2.h+30−8

This diff is large: its 112 lines aren’t shown here.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t