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
342 'The kernel development community', 'manual'),342 'The kernel development community', 'manual'),
343 ('gpu/index', 'gpu.tex', 'Linux GPU Driver Developer\'s Guide',343 ('gpu/index', 'gpu.tex', 'Linux GPU Driver Developer\'s Guide',
344 'The kernel development community', 'manual'),344 'The kernel development community', 'manual'),
345 ('media/index', 'media.tex', 'Linux Media Subsystem Documentation',
346 'The kernel development community', 'manual'),
345]347]
346 348
347# The name of an image file (relative to this directory) to place at the top of349# 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 @@
1Atmel Image Sensor Controller (ISC)
2----------------------------------------------
3
4Required 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
24ISC 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
26defined in Documentation/devicetree/bindings/media/video-interfaces.txt.
27
28Example:
29isc: 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
50i2c1: 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
16- clocks : list of clock specifiers, corresponding to entries in16- clocks : list of clock specifiers, corresponding to entries in
17 clock-names property;17 clock-names property;
18- clock-names : must contain "ppmuispx", "ppmuispx", "lite0", "lite1"18- clock-names : must contain "ppmuispx", "ppmuispx", "lite0", "lite1"
19 "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "uart",19 "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "gicisp",
20 "ispdiv0", "ispdiv1", "mcuispdiv0", "mcuispdiv1", "aclk200",20 "pwm_isp", "mcuctl_isp", "uart", "ispdiv0", "ispdiv1",
21 "div_aclk200", "aclk400mcuisp", "div_aclk400mcuisp" entries,21 "mcuispdiv0", "mcuispdiv1", "aclk200", "div_aclk200",
22 "aclk400mcuisp", "div_aclk400mcuisp" entries,
22 matching entries in the clocks property.23 matching entries in the clocks property.
23pmu subnode24pmu subnode
24-----------25-----------
Documentation/devicetree/bindings/media/i2c/ad5820.txt+19−0
@@ -0,0 +1,19 @@
1* Analog Devices AD5820 autofocus coil
2
3Required 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
11Example:
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
15 "adi,adv7282"15 "adi,adv7282"
16 "adi,adv7282-m"16 "adi,adv7282-m"
17 17
18Optional Properties :
19- powerdown-gpios: reference to the GPIO connected to the powerdown pin,
20 if any.
21
22
18Example:23Example:
19 24
20 i2c0@1c22000 {25 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
7 7
8There are three types of FCP: FCP for Codec (FCPC), FCP for VSP (FCPV) and FCP8There are three types of FCP: FCP for Codec (FCPC), FCP for VSP (FCPV) and FCP
9for FDP (FCPF). Their configuration and behaviour depend on the module they9for FDP (FCPF). Their configuration and behaviour depend on the module they
10are paired with. These DT bindings currently support the FCPV only.10are paired with. These DT bindings currently support the FCPV and FCPF.
11 11
12 - compatible: Must be one or more of the following12 - compatible: Must be one or more of the following
13 13
14 - "renesas,r8a7795-fcpv" for R8A7795 (R-Car H3) compatible 'FCP for VSP'14 - "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'
15 - "renesas,fcpv" for generic compatible 'FCP for VSP'16 - "renesas,fcpv" for generic compatible 'FCP for VSP'
17 - "renesas,fcpf" for generic compatible 'FCP for FDP'
16 18
17 When compatible with the generic version, nodes must list the19 When compatible with the generic version, nodes must list the
18 SoC-specific version corresponding to the platform first, followed by the20 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
21 - reg: the register base and size for the device registers23 - reg: the register base and size for the device registers
22 - clocks: Reference to the functional clock24 - clocks: Reference to the functional clock
23 25
26Optional properties:
27 - power-domains : power-domain property defined with a power domain specifier
28 to respective power domain.
29
24 30
25Device node example31Device node example
26-------------------32-------------------
@@ -29,4 +35,5 @@ Device node example · 2 unmodified lines
29 compatible = "renesas,r8a7795-fcpv", "renesas,fcpv";35 compatible = "renesas,r8a7795-fcpv", "renesas,fcpv";
30 reg = <0 0xfea2f000 0 0x200>;36 reg = <0 0xfea2f000 0 0x200>;
31 clocks = <&cpg CPG_MOD 602>;37 clocks = <&cpg CPG_MOD 602>;
38 power-domains = <&sysc R8A7795_PD_A3VP>;
32 };39 };
Documentation/devicetree/bindings/media/st,st-hva.txt+24−0
@@ -0,0 +1,24 @@
1st-hva: multi-format video encoder for STMicroelectronics SoC.
2
3Required 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
15Example:
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 @@
1STMicroelectronics STIH4xx HDMI CEC driver
2
3Required 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
13Example for STIH407:
14
15sti-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
2ignore define _DVBAUDIO_H_2ignore define _DVBAUDIO_H_
3 3
4# Typedef pointing to structs4# Typedef pointing to structs
5replace typedef audio_karaoke_t audio-karaoke5replace typedef audio_karaoke_t :c:type:`audio_karaoke`
6 6
7# Undocumented audio caps, as this is a deprecated API anyway7# Undocumented audio caps, as this is a deprecated API anyway
8ignore define AUDIO_CAP_DTS8ignore define AUDIO_CAP_DTS
@@ -16,5 +16,5 @@ ignore define AUDIO_CAP_SDDS · 7 unmodified lines
16ignore define AUDIO_CAP_AC316ignore define AUDIO_CAP_AC3
17 17
18# some typedefs should point to struct/enums18# some typedefs should point to struct/enums
19replace typedef audio_mixer_t audio-mixer19replace typedef audio_mixer_t :c:type:`audio_mixer`
20replace typedef audio_status_t audio-status20replace typedef audio_status_t :c:type:`audio_status`
Documentation/media/ca.h.rst.exceptions+16−16
@@ -2,23 +2,23 @@ · 1 unmodified line
2ignore define _DVBCA_H_2ignore define _DVBCA_H_
3 3
4# struct ca_slot_info defines4# struct ca_slot_info defines
5replace define CA_CI ca-slot-info5replace define CA_CI :c:type:`ca_slot_info`
6replace define CA_CI_LINK ca-slot-info6replace define CA_CI_LINK :c:type:`ca_slot_info`
7replace define CA_CI_PHYS ca-slot-info7replace define CA_CI_PHYS :c:type:`ca_slot_info`
8replace define CA_DESCR ca-slot-info8replace define CA_DESCR :c:type:`ca_slot_info`
9replace define CA_SC ca-slot-info9replace define CA_SC :c:type:`ca_slot_info`
10replace define CA_CI_MODULE_PRESENT ca-slot-info10replace define CA_CI_MODULE_PRESENT :c:type:`ca_slot_info`
11replace define CA_CI_MODULE_READY ca-slot-info11replace define CA_CI_MODULE_READY :c:type:`ca_slot_info`
12 12
13# struct ca_descr_info defines13# struct ca_descr_info defines
14replace define CA_ECD ca-descr-info14replace define CA_ECD :c:type:`ca_descr_info`
15replace define CA_NDS ca-descr-info15replace define CA_NDS :c:type:`ca_descr_info`
16replace define CA_DSS ca-descr-info16replace define CA_DSS :c:type:`ca_descr_info`
17 17
18# some typedefs should point to struct/enums18# some typedefs should point to struct/enums
19replace typedef ca_pid_t ca-pid19replace typedef ca_pid_t :c:type:`ca_pid`
20replace typedef ca_slot_info_t ca-slot-info20replace typedef ca_slot_info_t :c:type:`ca_slot_info`
21replace typedef ca_descr_info_t ca-descr-info21replace typedef ca_descr_info_t :c:type:`ca_descr_info`
22replace typedef ca_caps_t ca-caps22replace typedef ca_caps_t :c:type:`ca_caps`
23replace typedef ca_msg_t ca-msg23replace typedef ca_msg_t :c:type:`ca_msg`
24replace typedef ca_descr_t ca-descr24replace typedef ca_descr_t :c:type:`ca_descr`
Documentation/media/cec.h.rst.exceptions+0−6
@@ -1,12 +1,6 @@
1# Ignore header name1# Ignore header name
2ignore define _CEC_UAPI_H2ignore define _CEC_UAPI_H
3 3
4# Rename some symbols, to avoid namespace conflicts
5replace struct cec_event_state_change cec-event-state-change_s
6replace struct cec_event_lost_msgs cec-event-lost-msgs_s
7replace enum cec_mode_initiator cec-mode-initiator_e
8replace enum cec_mode_follower cec-mode-follower_e
9
10# define macros to ignore4# define macros to ignore
11 5
12ignore define CEC_MAX_MSG_SIZE6ignore define CEC_MAX_MSG_SIZE
Documentation/media/conf_nitpick.py+36−20
@@ -21,10 +21,14 @@ nitpick_ignore = [ · 20 unmodified lines
21 ("c:func", "clock_gettime"),21 ("c:func", "clock_gettime"),
22 ("c:func", "close"),22 ("c:func", "close"),
23 ("c:func", "container_of"),23 ("c:func", "container_of"),
24 ("c:func", "copy_from_user"),
25 ("c:func", "copy_to_user"),
24 ("c:func", "determine_valid_ioctls"),26 ("c:func", "determine_valid_ioctls"),
25 ("c:func", "ERR_PTR"),27 ("c:func", "ERR_PTR"),
28 ("c:func", "i2c_new_device"),
26 ("c:func", "ioctl"),29 ("c:func", "ioctl"),
27 ("c:func", "IS_ERR"),30 ("c:func", "IS_ERR"),
31 ("c:func", "KERNEL_VERSION"),
28 ("c:func", "mmap"),32 ("c:func", "mmap"),
29 ("c:func", "open"),33 ("c:func", "open"),
30 ("c:func", "pci_name"),34 ("c:func", "pci_name"),
@@ -36,58 +40,70 @@ nitpick_ignore = [ · 5 unmodified lines
36 ("c:func", "struct fd_set"),40 ("c:func", "struct fd_set"),
37 ("c:func", "struct pollfd"),41 ("c:func", "struct pollfd"),
38 ("c:func", "usb_make_path"),42 ("c:func", "usb_make_path"),
43 ("c:func", "wait_finish"),
44 ("c:func", "wait_prepare"),
39 ("c:func", "write"),45 ("c:func", "write"),
46
40 ("c:type", "atomic_t"),47 ("c:type", "atomic_t"),
41 ("c:type", "bool"),48 ("c:type", "bool"),
49 ("c:type", "boolean"),
42 ("c:type", "buf_queue"),50 ("c:type", "buf_queue"),
43 ("c:type", "device"),51 ("c:type", "device"),
44 ("c:type", "device_driver"),52 ("c:type", "device_driver"),
45 ("c:type", "device_node"),53 ("c:type", "device_node"),
46 ("c:type", "enum"),54 ("c:type", "enum"),
55 ("c:type", "fd"),
56 ("c:type", "fd_set"),
47 ("c:type", "file"),57 ("c:type", "file"),
48 ("c:type", "i2c_adapter"),58 ("c:type", "i2c_adapter"),
49 ("c:type", "i2c_board_info"),59 ("c:type", "i2c_board_info"),
50 ("c:type", "i2c_client"),60 ("c:type", "i2c_client"),
61 ("c:type", "int16_t"),
51 ("c:type", "ktime_t"),62 ("c:type", "ktime_t"),
52 ("c:type", "led_classdev_flash"),63 ("c:type", "led_classdev_flash"),
53 ("c:type", "list_head"),64 ("c:type", "list_head"),
54 ("c:type", "lock_class_key"),65 ("c:type", "lock_class_key"),
55 ("c:type", "module"),66 ("c:type", "module"),
56 ("c:type", "mutex"),67 ("c:type", "mutex"),
68 ("c:type", "NULL"),
69 ("c:type", "off_t"),
57 ("c:type", "pci_dev"),70 ("c:type", "pci_dev"),
58 ("c:type", "pdvbdev"),71 ("c:type", "pdvbdev"),
72 ("c:type", "poll_table"),
73 ("c:type", "platform_device"),
74 ("c:type", "pollfd"),
59 ("c:type", "poll_table_struct"),75 ("c:type", "poll_table_struct"),
60 ("c:type", "s32"),76 ("c:type", "s32"),
61 ("c:type", "s64"),77 ("c:type", "s64"),
62 ("c:type", "sd"),78 ("c:type", "sd"),
79 ("c:type", "size_t"),
63 ("c:type", "spi_board_info"),80 ("c:type", "spi_board_info"),
64 ("c:type", "spi_device"),81 ("c:type", "spi_device"),
65 ("c:type", "spi_master"),82 ("c:type", "spi_master"),
66 ("c:type", "struct fb_fix_screeninfo"),83 ("c:type", "ssize_t"),
67 ("c:type", "struct pollfd"),84 ("c:type", "fb_fix_screeninfo"),
68 ("c:type", "struct timeval"),85 ("c:type", "pollfd"),
69 ("c:type", "struct video_capability"),86 ("c:type", "timeval"),
87 ("c:type", "video_capability"),
88 ("c:type", "timeval"),
89 ("c:type", "__u16"),
70 ("c:type", "u16"),90 ("c:type", "u16"),
91 ("c:type", "__u32"),
71 ("c:type", "u32"),92 ("c:type", "u32"),
93 ("c:type", "__u64"),
72 ("c:type", "u64"),94 ("c:type", "u64"),
73 ("c:type", "u8"),95 ("c:type", "u8"),
96 ("c:type", "uint16_t"),
97 ("c:type", "uint32_t"),
74 ("c:type", "union"),98 ("c:type", "union"),
99 ("c:type", "__user"),
75 ("c:type", "usb_device"),100 ("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
76 107
77 ("cpp:type", "boolean"),108 ("c:type", "v4l2_m2m_dev"),
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"),
93]109]
Documentation/media/dmx.h.rst.exceptions+44−41
@@ -4,29 +4,29 @@ ignore define _UAPI_DVBDMX_H_ · 3 unmodified lines
4# Ignore limit constants4# Ignore limit constants
5ignore define DMX_FILTER_SIZE5ignore define DMX_FILTER_SIZE
6 6
7# dmx-pes-type-t enum symbols7# dmx_pes_type_t enum symbols
8replace enum dmx_ts_pes dmx-pes-type-t8replace enum dmx_ts_pes :c:type:`dmx_pes_type`
9replace symbol DMX_PES_AUDIO0 dmx-pes-type-t9replace symbol DMX_PES_AUDIO0 :c:type:`dmx_pes_type`
10replace symbol DMX_PES_VIDEO0 dmx-pes-type-t10replace symbol DMX_PES_VIDEO0 :c:type:`dmx_pes_type`
11replace symbol DMX_PES_TELETEXT0 dmx-pes-type-t11replace symbol DMX_PES_TELETEXT0 :c:type:`dmx_pes_type`
12replace symbol DMX_PES_SUBTITLE0 dmx-pes-type-t12replace symbol DMX_PES_SUBTITLE0 :c:type:`dmx_pes_type`
13replace symbol DMX_PES_PCR0 dmx-pes-type-t13replace symbol DMX_PES_PCR0 :c:type:`dmx_pes_type`
14replace symbol DMX_PES_AUDIO1 dmx-pes-type-t14replace symbol DMX_PES_AUDIO1 :c:type:`dmx_pes_type`
15replace symbol DMX_PES_VIDEO1 dmx-pes-type-t15replace symbol DMX_PES_VIDEO1 :c:type:`dmx_pes_type`
16replace symbol DMX_PES_TELETEXT1 dmx-pes-type-t16replace symbol DMX_PES_TELETEXT1 :c:type:`dmx_pes_type`
17replace symbol DMX_PES_SUBTITLE1 dmx-pes-type-t17replace symbol DMX_PES_SUBTITLE1 :c:type:`dmx_pes_type`
18replace symbol DMX_PES_PCR1 dmx-pes-type-t18replace symbol DMX_PES_PCR1 :c:type:`dmx_pes_type`
19replace symbol DMX_PES_AUDIO2 dmx-pes-type-t19replace symbol DMX_PES_AUDIO2 :c:type:`dmx_pes_type`
20replace symbol DMX_PES_VIDEO2 dmx-pes-type-t20replace symbol DMX_PES_VIDEO2 :c:type:`dmx_pes_type`
21replace symbol DMX_PES_TELETEXT2 dmx-pes-type-t21replace symbol DMX_PES_TELETEXT2 :c:type:`dmx_pes_type`
22replace symbol DMX_PES_SUBTITLE2 dmx-pes-type-t22replace symbol DMX_PES_SUBTITLE2 :c:type:`dmx_pes_type`
23replace symbol DMX_PES_PCR2 dmx-pes-type-t23replace symbol DMX_PES_PCR2 :c:type:`dmx_pes_type`
24replace symbol DMX_PES_AUDIO3 dmx-pes-type-t24replace symbol DMX_PES_AUDIO3 :c:type:`dmx_pes_type`
25replace symbol DMX_PES_VIDEO3 dmx-pes-type-t25replace symbol DMX_PES_VIDEO3 :c:type:`dmx_pes_type`
26replace symbol DMX_PES_TELETEXT3 dmx-pes-type-t26replace symbol DMX_PES_TELETEXT3 :c:type:`dmx_pes_type`
27replace symbol DMX_PES_SUBTITLE3 dmx-pes-type-t27replace symbol DMX_PES_SUBTITLE3 :c:type:`dmx_pes_type`
28replace symbol DMX_PES_PCR3 dmx-pes-type-t28replace symbol DMX_PES_PCR3 :c:type:`dmx_pes_type`
29replace symbol DMX_PES_OTHER dmx-pes-type-t29replace symbol DMX_PES_OTHER :c:type:`dmx_pes_type`
30 30
31# Ignore obsolete symbols31# Ignore obsolete symbols
32ignore define DMX_PES_AUDIO32ignore define DMX_PES_AUDIO
@@ -36,28 +36,31 @@ ignore define DMX_PES_SUBTITLE · 3 unmodified lines
36ignore define DMX_PES_PCR36ignore define DMX_PES_PCR
37 37
38# dmx_input_t symbols38# dmx_input_t symbols
39replace enum dmx_input dmx-input-t39replace enum dmx_input :c:type:`dmx_input`
40replace symbol DMX_IN_FRONTEND dmx-input-t40replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
41replace symbol DMX_IN_DVR dmx-input-t41replace symbol DMX_IN_DVR :c:type:`dmx_input`
42 42
43# dmx_source_t symbols43# dmx_source_t symbols
44replace enum dmx_source dmx-source-t44replace enum dmx_source :c:type:`dmx_source`
45replace symbol DMX_SOURCE_FRONT0 dmx-source-t45replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source`
46replace symbol DMX_SOURCE_FRONT1 dmx-source-t46replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source`
47replace symbol DMX_SOURCE_FRONT2 dmx-source-t47replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source`
48replace symbol DMX_SOURCE_FRONT3 dmx-source-t48replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source`
49replace symbol DMX_SOURCE_DVR0 dmx-source-t49replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source`
50replace symbol DMX_SOURCE_DVR1 dmx-source-t50replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source`
51replace symbol DMX_SOURCE_DVR2 dmx-source-t51replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source`
52replace symbol DMX_SOURCE_DVR3 dmx-source-t52replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source`
53 53
54 54
55# Flags for struct dmx_sct_filter_params55# Flags for struct dmx_sct_filter_params
56replace define DMX_CHECK_CRC dmx-sct-filter-params56replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
57replace define DMX_ONESHOT dmx-sct-filter-params57replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
58replace define DMX_IMMEDIATE_START dmx-sct-filter-params58replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
59replace define DMX_KERNEL_CLIENT dmx-sct-filter-params59replace define DMX_KERNEL_CLIENT :c:type:`dmx_sct_filter_params`
60 60
61# some typedefs should point to struct/enums61# some typedefs should point to struct/enums
62replace typedef dmx_caps_t dmx-caps62replace typedef dmx_caps_t :c:type:`dmx_caps`
63replace typedef dmx_filter_t dmx-filter63replace typedef dmx_filter_t :c:type:`dmx_filter`
64replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
65replace typedef dmx_input_t :c:type:`dmx_input`
66replace 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
26ignore define DTV_IOCTL_MAX_MSGS26ignore define DTV_IOCTL_MAX_MSGS
27 27
28# Stats enum is documented altogether28# Stats enum is documented altogether
29replace enum fecap_scale_params frontend-stat-properties29replace enum fecap_scale_params :ref:`frontend-stat-properties`
30replace symbol FE_SCALE_COUNTER frontend-stat-properties30replace symbol FE_SCALE_COUNTER frontend-stat-properties
31replace symbol FE_SCALE_DECIBEL frontend-stat-properties31replace symbol FE_SCALE_DECIBEL frontend-stat-properties
32replace symbol FE_SCALE_NOT_AVAILABLE frontend-stat-properties32replace symbol FE_SCALE_NOT_AVAILABLE frontend-stat-properties
33replace symbol FE_SCALE_RELATIVE frontend-stat-properties33replace symbol FE_SCALE_RELATIVE frontend-stat-properties
34 34
35# the same reference is used for both get and set ioctls35# the same reference is used for both get and set ioctls
36replace ioctl FE_SET_PROPERTY FE_GET_PROPERTY36replace ioctl FE_SET_PROPERTY :c:type:`FE_GET_PROPERTY`
37 37
38# Ignore struct used only internally at Kernel38# Ignore struct used only internally at Kernel
39ignore struct dtv_cmds_h39ignore struct dtv_cmds_h
40 40
41# Typedefs that use the enum reference41# Typedefs that use the enum reference
42replace typedef fe_sec_voltage_t fe-sec-voltage42replace typedef fe_sec_voltage_t :c:type:`fe_sec_voltage`
43 43
44# Replaces for flag constants44# Replaces for flag constants
45replace define FE_TUNE_MODE_ONESHOT fe_set_frontend_tune_mode45replace define FE_TUNE_MODE_ONESHOT :c:func:`FE_SET_FRONTEND_TUNE_MODE`
46replace define LNA_AUTO dtv-lna46replace define LNA_AUTO dtv-lna
47replace define NO_STREAM_ID_FILTER dtv-stream-id47replace define NO_STREAM_ID_FILTER dtv-stream-id
Documentation/media/index.rst+5−0
@@ -1,6 +1,11 @@
1Linux Media Subsystem Documentation1Linux Media Subsystem Documentation
2===================================2===================================
3 3
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
4Contents:9Contents:
5 10
6.. toctree::11.. toctree::
Documentation/media/intro.rst+1−1
@@ -30,7 +30,7 @@ divided into five parts. · 29 unmodified lines
30 called as DVB API, in fact it covers several different video standards30 called as DVB API, in fact it covers several different video standards
31 including DVB-T/T2, DVB-S/S2, DVB-C, ATSC, ISDB-T, ISDB-S, DTMB, etc. The31 including DVB-T/T2, DVB-S/S2, DVB-C, ATSC, ISDB-T, ISDB-S, DTMB, etc. The
32 complete list of supported standards can be found at32 complete list of supported standards can be found at
33 :ref:`fe-delivery-system-t`.33 :c:type:`fe_delivery_system`.
34 34
353. The :ref:`third part <remote_controllers>` covers the Remote Controller API.353. The :ref:`third part <remote_controllers>` covers the Remote Controller API.
36 36
Documentation/media/kapi/cec-core.rstrenamed from Documentation/cec.txt+94−53
@@ -36,39 +36,50 @@ CEC Adapter · 35 unmodified lines
36The struct cec_adapter represents the CEC adapter hardware. It is created by36The struct cec_adapter represents the CEC adapter hardware. It is created by
37calling cec_allocate_adapter() and deleted by calling cec_delete_adapter():37calling cec_allocate_adapter() and deleted by calling cec_delete_adapter():
38 38
39struct 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,
40 void *priv, const char *name, u32 caps, u8 available_las,41 void *priv, const char *name, u32 caps, u8 available_las,
41 struct device *parent);42 struct device *parent);
42void cec_delete_adapter(struct cec_adapter *adap);43
44.. c:function::
45 void cec_delete_adapter(struct cec_adapter *adap);
43 46
44To create an adapter you need to pass the following information:47To create an adapter you need to pass the following information:
45 48
46ops: adapter operations which are called by the CEC framework and that you49ops:
47have to implement.50 adapter operations which are called by the CEC framework and that you
51 have to implement.
48 52
49priv: will be stored in adap->priv and can be used by the adapter ops.53priv:
54 will be stored in adap->priv and can be used by the adapter ops.
50 55
51name: the name of the CEC adapter. Note: this name will be copied.56name:
57 the name of the CEC adapter. Note: this name will be copied.
52 58
53caps: capabilities of the CEC adapter. These capabilities determine the59caps:
60 capabilities of the CEC adapter. These capabilities determine the
54 capabilities of the hardware and which parts are to be handled61 capabilities of the hardware and which parts are to be handled
55 by userspace and which parts are handled by kernelspace. The62 by userspace and which parts are handled by kernelspace. The
56 capabilities are returned by CEC_ADAP_G_CAPS.63 capabilities are returned by CEC_ADAP_G_CAPS.
57 64
58available_las: the number of simultaneous logical addresses that this65available_las:
66 the number of simultaneous logical addresses that this
59 adapter can handle. Must be 1 <= available_las <= CEC_MAX_LOG_ADDRS.67 adapter can handle. Must be 1 <= available_las <= CEC_MAX_LOG_ADDRS.
60 68
61parent: the parent device.69parent:
70 the parent device.
62 71
63 72
64To register the /dev/cecX device node and the remote control device (if73To register the /dev/cecX device node and the remote control device (if
65CEC_CAP_RC is set) you call:74CEC_CAP_RC is set) you call:
66 75
67int cec_register_adapter(struct cec_adapter *adap);76.. c:function::
77 int cec_register_adapter(struct cec_adapter \*adap);
68 78
69To unregister the devices call:79To unregister the devices call:
70 80
71void cec_unregister_adapter(struct cec_adapter *adap);81.. c:function::
82 void cec_unregister_adapter(struct cec_adapter \*adap);
72 83
73Note: if cec_register_adapter() fails, then call cec_delete_adapter() to84Note: if cec_register_adapter() fails, then call cec_delete_adapter() to
74clean up. But if cec_register_adapter() succeeded, then only call85clean up. But if cec_register_adapter() succeeded, then only call
@@ -83,18 +94,23 @@ Implementing the Low-Level CEC Adapter · 8 unmodified lines
83The following low-level adapter operations have to be implemented in94The following low-level adapter operations have to be implemented in
84your driver:95your driver:
85 96
86struct cec_adap_ops {97.. c:type:: struct cec_adap_ops
87 /* Low-level callbacks */98
88 int (*adap_enable)(struct cec_adapter *adap, bool enable);99.. code-block:: none
89 int (*adap_monitor_all_enable)(struct cec_adapter *adap, bool enable);100
90 int (*adap_log_addr)(struct cec_adapter *adap, u8 logical_addr);101 struct cec_adap_ops
91 int (*adap_transmit)(struct cec_adapter *adap, u8 attempts,102 {
92 u32 signal_free_time, struct cec_msg *msg);103 /* Low-level callbacks */
93 void (*adap_log_status)(struct cec_adapter *adap);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);
94 110
95 /* High-level callbacks */111 /* High-level callbacks */
96 ...112 ...
97};113 };
98 114
99The three low-level ops deal with various aspects of controlling the CEC adapter115The three low-level ops deal with various aspects of controlling the CEC adapter
100hardware:116hardware:
@@ -102,6 +118,7 @@ hardware: · 1 unmodified line
102 118
103To enable/disable the hardware:119To enable/disable the hardware:
104 120
121.. c:function::
105 int (*adap_enable)(struct cec_adapter *adap, bool enable);122 int (*adap_enable)(struct cec_adapter *adap, bool enable);
106 123
107This callback enables or disables the CEC hardware. Enabling the CEC hardware124This 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
115 132
116To enable/disable the 'monitor all' mode:133To enable/disable the 'monitor all' mode:
117 134
135.. c:function::
118 int (*adap_monitor_all_enable)(struct cec_adapter *adap, bool enable);136 int (*adap_monitor_all_enable)(struct cec_adapter *adap, bool enable);
119 137
120If enabled, then the adapter should be put in a mode to also monitor messages138If 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
127 145
128To program a new logical address:146To program a new logical address:
129 147
148.. c:function::
130 int (*adap_log_addr)(struct cec_adapter *adap, u8 logical_addr);149 int (*adap_log_addr)(struct cec_adapter *adap, u8 logical_addr);
131 150
132If logical_addr == CEC_LOG_ADDR_INVALID then all programmed logical addresses151If 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
140 159
141To transmit a new message:160To transmit a new message:
142 161
162.. c:function::
143 int (*adap_transmit)(struct cec_adapter *adap, u8 attempts,163 int (*adap_transmit)(struct cec_adapter *adap, u8 attempts,
144 u32 signal_free_time, struct cec_msg *msg);164 u32 signal_free_time, struct cec_msg *msg);
145 165
@@ -158,6 +178,7 @@ microseconds (one data bit period is 2.4 ms). · 12 unmodified lines
158 178
159To log the current CEC hardware status:179To log the current CEC hardware status:
160 180
181.. c:function::
161 void (*adap_status)(struct cec_adapter *adap, struct seq_file *file);182 void (*adap_status)(struct cec_adapter *adap, struct seq_file *file);
162 183
163This optional callback can be used to show the status of the CEC hardware.184This 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
169 190
170When a transmit finished (successfully or otherwise):191When a transmit finished (successfully or otherwise):
171 192
172void 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,
173 u8 nack_cnt, u8 low_drive_cnt, u8 error_cnt);195 u8 nack_cnt, u8 low_drive_cnt, u8 error_cnt);
174 196
175The status can be one of:197The status can be one of:
176 198
177CEC_TX_STATUS_OK: the transmit was successful.199CEC_TX_STATUS_OK:
178CEC_TX_STATUS_ARB_LOST: arbitration was lost: another CEC initiator200 the transmit was successful.
179took control of the CEC line and you lost the arbitration.201
180CEC_TX_STATUS_NACK: the message was nacked (for a directed message) or202CEC_TX_STATUS_ARB_LOST:
181acked (for a broadcast message). A retransmission is needed.203 arbitration was lost: another CEC initiator
182CEC_TX_STATUS_LOW_DRIVE: low drive was detected on the CEC bus. This204 took control of the CEC line and you lost the arbitration.
183indicates that a follower detected an error on the bus and requested a205
184retransmission.206CEC_TX_STATUS_NACK:
185CEC_TX_STATUS_ERROR: some unspecified error occurred: this can be one of207 the message was nacked (for a directed message) or
186the previous two if the hardware cannot differentiate or something else208 acked (for a broadcast message). A retransmission is needed.
187entirely.209
188CEC_TX_STATUS_MAX_RETRIES: could not transmit the message after210CEC_TX_STATUS_LOW_DRIVE:
189trying multiple times. Should only be set by the driver if it has hardware211 low drive was detected on the CEC bus. This indicates that
190support for retrying messages. If set, then the framework assumes that it212 a follower detected an error on the bus and requested a
191doesn't have to make another attempt to transmit the message since the213 retransmission.
192hardware did that already.214
193 215CEC_TX_STATUS_ERROR:
194The *_cnt arguments are the number of error conditions that were seen.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
220CEC_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
227The \*_cnt arguments are the number of error conditions that were seen.
195This may be 0 if no information is available. Drivers that do not support228This may be 0 if no information is available. Drivers that do not support
196hardware retry can just set the counter corresponding to the transmit error229hardware retry can just set the counter corresponding to the transmit error
197to 1, if the hardware does support retry then either set these counters to230to 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
200 233
201When a CEC message was received:234When a CEC message was received:
202 235
203void 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);
204 238
205Speaks for itself.239Speaks for itself.
206 240
@@ -210,17 +244,20 @@ Implementing the High-Level CEC Adapter · 3 unmodified lines
210The low-level operations drive the hardware, the high-level operations are244The low-level operations drive the hardware, the high-level operations are
211CEC protocol driven. The following high-level callbacks are available:245CEC protocol driven. The following high-level callbacks are available:
212 246
213struct cec_adap_ops {247.. code-block:: none
214 /* Low-level callbacks */
215 ...
216 248
217 /* High-level CEC message callback */249 struct cec_adap_ops {
218 int (*received)(struct cec_adapter *adap, struct cec_msg *msg);250 /\* Low-level callbacks \*/
219};251 ...
252
253 /\* High-level CEC message callback \*/
254 int (\*received)(struct cec_adapter \*adap, struct cec_msg \*msg);
255 };
220 256
221The received() callback allows the driver to optionally handle a newly257The received() callback allows the driver to optionally handle a newly
222received CEC message258received CEC message
223 259
260.. c:function::
224 int (*received)(struct cec_adapter *adap, struct cec_msg *msg);261 int (*received)(struct cec_adapter *adap, struct cec_msg *msg);
225 262
226If the driver wants to process a CEC message, then it can implement this263If the driver wants to process a CEC message, then it can implement this
@@ -234,13 +271,16 @@ CEC framework functions · 7 unmodified lines
234 271
235CEC Adapter drivers can call the following CEC framework functions:272CEC Adapter drivers can call the following CEC framework functions:
236 273
237int cec_transmit_msg(struct cec_adapter *adap, struct cec_msg *msg,274.. c:function::
238 bool block);275 int cec_transmit_msg(struct cec_adapter *adap, struct cec_msg *msg,
276 bool block);
239 277
240Transmit a CEC message. If block is true, then wait until the message has been278Transmit a CEC message. If block is true, then wait until the message has been
241transmitted, otherwise just queue it and return.279transmitted, otherwise just queue it and return.
242 280
243void 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);
244 284
245Change the physical address. This function will set adap->phys_addr and285Change the physical address. This function will set adap->phys_addr and
246send an event if it has changed. If cec_s_log_addrs() has been called and286send 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
254to another valid physical address, then this function will first set the294to another valid physical address, then this function will first set the
255address to CEC_PHYS_ADDR_INVALID before enabling the new physical address.295address to CEC_PHYS_ADDR_INVALID before enabling the new physical address.
256 296
257int cec_s_log_addrs(struct cec_adapter *adap,297.. c:function::
258 struct cec_log_addrs *log_addrs, bool block);298 int cec_s_log_addrs(struct cec_adapter *adap,
299 struct cec_log_addrs *log_addrs, bool block);
259 300
260Claim the CEC logical addresses. Should never be called if CEC_CAP_LOG_ADDRS301Claim the CEC logical addresses. Should never be called if CEC_CAP_LOG_ADDRS
261is set. If block is true, then wait until the logical addresses have been302is 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
6 6
7.. kernel-doc:: drivers/media/dvb-core/dvb_math.h7.. kernel-doc:: drivers/media/dvb-core/dvb_math.h
8 8
9.. kernel-doc:: drivers/media/dvb-core/dvb_ringbuffer.h
10
11.. kernel-doc:: drivers/media/dvb-core/dvbdev.h9.. kernel-doc:: drivers/media/dvb-core/dvbdev.h
12 10
13 11
@@ -18,6 +16,42 @@ Digital TV Common functions · 4 unmodified lines
18.. kernel-doc:: drivers/media/dvb-core/dvbdev.h16.. kernel-doc:: drivers/media/dvb-core/dvbdev.h
19 :export: drivers/media/dvb-core/dvbdev.c17 :export: drivers/media/dvb-core/dvbdev.c
20 18
19Digital TV Ring buffer
20----------------------
21
22Those routines implement ring buffers used to handle digital TV data and
23copy 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
21 55
22 56
23Digital TV Frontend kABI57Digital TV Frontend kABI
@@ -121,7 +155,7 @@ triggered by a hardware interrupt, it is recommended to use the Linux · 97 unmodified lines
121bottom half mechanism or start a tasklet instead of making the callback155bottom half mechanism or start a tasklet instead of making the callback
122function call directly from a hardware interrupt.156function call directly from a hardware interrupt.
123 157
124This mechanism is implemented by :c:func:`dmx_ts_cb()` and :cpp:func:`dmx_section_cb()`158This mechanism is implemented by :c:func:`dmx_ts_cb()` and :c:func:`dmx_section_cb()`
125callbacks.159callbacks.
126 160
127.. kernel-doc:: drivers/media/dvb-core/demux.h161.. 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
34Media device34Media device
35^^^^^^^^^^^^35^^^^^^^^^^^^
36 36
37A media device is represented by a :c:type:`struct media_device <media_device>`37A media device is represented by a struct :c:type:`media_device`
38instance, defined in ``include/media/media-device.h``.38instance, defined in ``include/media/media-device.h``.
39Allocation of the structure is handled by the media device driver, usually by39Allocation of the structure is handled by the media device driver, usually by
40embedding the :c:type:`media_device` instance in a larger driver-specific40embedding 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
47Entities47Entities
48^^^^^^^^48^^^^^^^^
49 49
50Entities are represented by a :c:type:`struct media_entity <media_entity>`50Entities are represented by a struct :c:type:`media_entity`
51instance, defined in ``include/media/media-entity.h``. The structure is usually51instance, defined in ``include/media/media-entity.h``. The structure is usually
52embedded into a higher-level structure, such as52embedded into a higher-level structure, such as
53:c:type:`v4l2_subdev` or :c:type:`video_device`53:c:type:`v4l2_subdev` or :c:type:`video_device`
@@ -65,10 +65,10 @@ Interfaces · 11 unmodified lines
65^^^^^^^^^^65^^^^^^^^^^
66 66
67Interfaces are represented by a67Interfaces are represented by a
68:c:type:`struct media_interface <media_interface>` instance, defined in68struct :c:type:`media_interface` instance, defined in
69``include/media/media-entity.h``. Currently, only one type of interface is69``include/media/media-entity.h``. Currently, only one type of interface is
70defined: a device node. Such interfaces are represented by a70defined: a device node. Such interfaces are represented by a
71:c:type:`struct media_intf_devnode <media_intf_devnode>`.71struct :c:type:`media_intf_devnode`.
72 72
73Drivers initialize and create device node interfaces by calling73Drivers initialize and create device node interfaces by calling
74:c:func:`media_devnode_create()`74:c:func:`media_devnode_create()`
@@ -77,7 +77,7 @@ and remove them by calling: · 2 unmodified lines
77 77
78Pads78Pads
79^^^^79^^^^
80Pads are represented by a :c:type:`struct media_pad <media_pad>` instance,80Pads are represented by a struct :c:type:`media_pad` instance,
81defined in ``include/media/media-entity.h``. Each entity stores its pads in81defined in ``include/media/media-entity.h``. Each entity stores its pads in
82a pads array managed by the entity driver. Drivers usually embed the array in82a pads array managed by the entity driver. Drivers usually embed the array in
83a driver-specific structure.83a driver-specific structure.
@@ -85,8 +85,9 @@ a driver-specific structure. · 1 unmodified line
85Pads are identified by their entity and their 0-based index in the pads85Pads are identified by their entity and their 0-based index in the pads
86array.86array.
87 87
88Both information are stored in the :c:type:`struct media_pad`, making the88Both information are stored in the struct :c:type:`media_pad`,
89:c:type:`media_pad` pointer the canonical way to store and pass link references.89making the struct :c:type:`media_pad` pointer the canonical way
90to store and pass link references.
90 91
91Pads have flags that describe the pad capabilities and state.92Pads have flags that describe the pad capabilities and state.
92 93
@@ -101,7 +102,7 @@ Pads have flags that describe the pad capabilities and state. · 8 unmodified lines
101Links102Links
102^^^^^103^^^^^
103 104
104Links are represented by a :c:type:`struct media_link <media_link>` instance,105Links are represented by a struct :c:type:`media_link` instance,
105defined in ``include/media/media-entity.h``. There are two types of links:106defined in ``include/media/media-entity.h``. There are two types of links:
106 107
107**1. pad to pad links**:108**1. pad to pad links**:
@@ -184,7 +185,7 @@ Use count and power handling · 76 unmodified lines
184 185
185Due to the wide differences between drivers regarding power management186Due to the wide differences between drivers regarding power management
186needs, the media controller does not implement power management. However,187needs, the media controller does not implement power management. However,
187the :c:type:`struct media_entity <media_entity>` includes a ``use_count``188the struct :c:type:`media_entity` includes a ``use_count``
188field that media drivers189field that media drivers
189can use to track the number of users of every entity for power management190can use to track the number of users of every entity for power management
190needs.191needs.
@@ -210,11 +211,11 @@ prevent link states from being modified during streaming by calling · 19 unmodified lines
210The function will mark all entities connected to the given entity through211The function will mark all entities connected to the given entity through
211enabled links, either directly or indirectly, as streaming.212enabled links, either directly or indirectly, as streaming.
212 213
213The :c:type:`struct media_pipeline <media_pipeline>` instance pointed to by214The struct :c:type:`media_pipeline` instance pointed to by
214the pipe argument will be stored in every entity in the pipeline.215the pipe argument will be stored in every entity in the pipeline.
215Drivers should embed the :c:type:`struct media_pipeline <media_pipeline>`216Drivers should embed the struct :c:type:`media_pipeline`
216in higher-level pipeline structures and can then access the217in higher-level pipeline structures and can then access the
217pipeline through the :c:type:`struct media_entity <media_entity>`218pipeline through the struct :c:type:`media_entity`
218pipe field.219pipe field.
219 220
220Calls to :c:func:`media_entity_pipeline_start()` can be nested.221Calls 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
56 :c:type:`video_device`->vfl_dir fields are used to disable ops that do not56 :c:type:`video_device`->vfl_dir fields are used to disable ops that do not
57 match the type/dir combination. E.g. VBI ops are disabled for non-VBI nodes,57 match the type/dir combination. E.g. VBI ops are disabled for non-VBI nodes,
58 and output ops are disabled for a capture device. This makes it possible to58 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 and59 provide just one :c:type:`v4l2_ioctl_ops` struct for both vbi and
60 video nodes.60 video nodes.
61 61
62- :c:type:`video_device`->lock: leave to ``NULL`` if you want to do all the62- :c:type:`video_device`->lock: leave to ``NULL`` if you want to do all the
@@ -166,14 +166,14 @@ something. · 103 unmodified lines
166In the case of :ref:`videobuf2 <vb2_framework>` you will need to implement the166In the case of :ref:`videobuf2 <vb2_framework>` you will need to implement the
167``wait_prepare()`` and ``wait_finish()`` callbacks to unlock/lock if applicable.167``wait_prepare()`` and ``wait_finish()`` callbacks to unlock/lock if applicable.
168If you use the ``queue->lock`` pointer, then you can use the helper functions168If 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`.
170 170
171The implementation of a hotplug disconnect should also take the lock from171The implementation of a hotplug disconnect should also take the lock from
172:c:type:`video_device` before calling v4l2_device_disconnect. If you are also172:c:type:`video_device` before calling v4l2_device_disconnect. If you are also
173using :c:type:`video_device`->queue->lock, then you have to first lock173using :c:type:`video_device`->queue->lock, then you have to first lock
174:c:type:`video_device`->queue->lock followed by :c:type:`video_device`->lock.174:c:type:`video_device`->queue->lock followed by :c:type:`video_device`->lock.
175That way you can be sure no ioctl is running when you call175That way you can be sure no ioctl is running when you call
176:c:type:`v4l2_device_disconnect`.176:c:func:`v4l2_device_disconnect`.
177 177
178Video device registration178Video device registration
179-------------------------179-------------------------
@@ -200,6 +200,7 @@ types exist: · 20 unmodified lines
200- ``VFL_TYPE_VBI``: ``/dev/vbiX`` for vertical blank data (i.e. closed captions, teletext)200- ``VFL_TYPE_VBI``: ``/dev/vbiX`` for vertical blank data (i.e. closed captions, teletext)
201- ``VFL_TYPE_RADIO``: ``/dev/radioX`` for radio tuners201- ``VFL_TYPE_RADIO``: ``/dev/radioX`` for radio tuners
202- ``VFL_TYPE_SDR``: ``/dev/swradioX`` for Software Defined Radio tuners202- ``VFL_TYPE_SDR``: ``/dev/swradioX`` for Software Defined Radio tuners
203- ``VFL_TYPE_TOUCH``: ``/dev/v4l-touchX`` for touch sensors
203 204
204The last argument gives you a certain amount of control over the device205The last argument gives you a certain amount of control over the device
205device node number used (i.e. the X in ``videoX``). Normally you will pass -1206device node number used (i.e. the X in ``videoX``). Normally you will pass -1
@@ -262,6 +263,7 @@ file operations. · 56 unmodified lines
262 263
263It is a bitmask and the following bits can be set:264It is a bitmask and the following bits can be set:
264 265
266.. tabularcolumns:: |p{5ex}|L|
265 267
266===== ================================================================268===== ================================================================
267Mask Description269Mask Description
@@ -334,7 +336,7 @@ And this function: · 66 unmodified lines
334 336
335returns the video_device belonging to the file struct.337returns the video_device belonging to the file struct.
336 338
337The :c:func:`video_devdata` function combines :cpp:func:`video_get_drvdata`339The :c:func:`video_devdata` function combines :c:func:`video_get_drvdata`
338with :c:func:`video_devdata`:340with :c:func:`video_devdata`:
339 341
340 :c:func:`video_drvdata <video_drvdata>`342 :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
40In order to queue events to video device, drivers should call:40In order to queue events to video device, drivers should call:
41 41
42 :c:func:`v4l2_event_queue <v4l2_event_queue>`42 :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>`)
44 44
45The driver's only responsibility is to fill in the type and the data fields.45The driver's only responsibility is to fill in the type and the data fields.
46The other fields will be filled in by V4L2.46The other fields will be filled in by V4L2.
@@ -51,7 +51,7 @@ Event subscription · 4 unmodified lines
51Subscribing to an event is via:51Subscribing to an event is via:
52 52
53 :c:func:`v4l2_event_subscribe <v4l2_event_subscribe>`53 :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>` ,
55 elems, :c:type:`ops <v4l2_subscribed_event_ops>`)55 elems, :c:type:`ops <v4l2_subscribed_event_ops>`)
56 56
57 57
@@ -86,7 +86,7 @@ Unsubscribing an event · 28 unmodified lines
86Unsubscribing to an event is via:86Unsubscribing to an event is via:
87 87
88 :c:func:`v4l2_event_unsubscribe <v4l2_event_unsubscribe>`88 :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>`)
90 90
91This function is used to implement :c:type:`video_device`->91This function is used to implement :c:type:`video_device`->
92:c:type:`ioctl_ops <v4l2_ioctl_ops>`-> ``vidioc_unsubscribe_event``.92: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
21In many cases the struct :c:type:`v4l2_fh` will be embedded in a larger21In many cases the struct :c:type:`v4l2_fh` will be embedded in a larger
22structure. In that case you should call:22structure. In that case you should call:
23 23
24#) :c:func:`v4l2_fh_init` and :cpp:func:`v4l2_fh_add` in ``open()``24#) :c:func:`v4l2_fh_init` and :c:func:`v4l2_fh_add` in ``open()``
25#) :c:func:`v4l2_fh_del` and :cpp:func:`v4l2_fh_exit` in ``release()``25#) :c:func:`v4l2_fh_del` and :c:func:`v4l2_fh_exit` in ``release()``
26 26
27Drivers can extract their own file handle structure by using the container_of27Drivers can extract their own file handle structure by using the container_of
28macro.28macro.
Documentation/media/kapi/v4l2-subdev.rst+6−17
@@ -27,7 +27,7 @@ methods. · 26 unmodified lines
27Bridges might also need to store per-subdev private data, such as a pointer to27Bridges might also need to store per-subdev private data, such as a pointer to
28bridge-specific per-subdev private data. The :c:type:`v4l2_subdev` structure28bridge-specific per-subdev private data. The :c:type:`v4l2_subdev` structure
29provides host private data for that purpose that can be accessed with29provides 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`.
31 31
32From the bridge driver perspective, you load the sub-device module and somehow32From the bridge driver perspective, you load the sub-device module and somehow
33obtain the :c:type:`v4l2_subdev` pointer. For i2c devices this is easy: you call33obtain 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
412To see which chip variants are supported you can look in the i2c driver code412To see which chip variants are supported you can look in the i2c driver code
413for the i2c_device_id table. This lists all the possibilities.413for the i2c_device_id table. This lists all the possibilities.
414 414
415There are two more helper functions:415There are one more helper function:
416
417:c:func:`v4l2_i2c_new_subdev_cfg`: this function adds new irq and
418platform_data arguments and has both 'addr' and 'probed_addrs' arguments:
419if addr is not 0 then that will be used (non-probing variant), otherwise the
420probed_addrs are probed.
421
422For 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));
428 416
429:c:func:`v4l2_i2c_new_subdev_board` uses an :c:type:`i2c_board_info` struct417:c:func:`v4l2_i2c_new_subdev_board` uses an :c:type:`i2c_board_info` struct
430which is passed to the i2c driver and replaces the irq, platform_data and addr418which is passed to the i2c driver and replaces the irq, platform_data and addr
@@ -433,9 +421,10 @@ arguments. · 2 unmodified lines
433If the subdev supports the s_config core ops, then that op is called with421If the subdev supports the s_config core ops, then that op is called with
434the irq and platform_data arguments after the subdev was setup.422the irq and platform_data arguments after the subdev was setup.
435 423
436The older :c:func:`v4l2_i2c_new_subdev` and424The :c:func:`v4l2_i2c_new_subdev` function will call
437:c:func:`v4l2_i2c_new_probed_subdev` functions will call ``s_config`` as425:c:func:`v4l2_i2c_new_subdev_board`, internally filling a
438well, but with irq set to 0 and platform_data set to ``NULL``.426:c:type:`i2c_board_info` structure using the ``client_type`` and the
427``addr`` to fill it.
439 428
440V4L2 sub-device functions and data structures429V4L2 sub-device functions and data structures
441---------------------------------------------430---------------------------------------------
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
32 kapi/dtv-core32 kapi/dtv-core
33 kapi/rc-core33 kapi/rc-core
34 kapi/mc-core34 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
7ignore struct __dvb_net_if_old7ignore struct __dvb_net_if_old
8 8
9# Macros used at struct dvb_net_if9# Macros used at struct dvb_net_if
10replace define DVB_NET_FEEDTYPE_MPE dvb-net-if10replace define DVB_NET_FEEDTYPE_MPE :c:type:`dvb_net_if`
11replace define DVB_NET_FEEDTYPE_ULE dvb-net-if11replace 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
20 #include <unistd.h>20 #include <unistd.h>
21 21
22 22
23.. cpp:function:: int close( int fd )23.. c:function:: int close( int fd )
24 :name: cec-close
24 25
25Arguments26Arguments
26=========27=========
27 28
28``fd``29``fd``
29 File descriptor returned by :ref:`open() <func-open>`.30 File descriptor returned by :c:func:`open() <cec-open>`.
30 31
31 32
32Description33Description
33===========34===========
34 35
35.. note:: This documents the proposed CEC API. This API is not yet finalized36.. note::
37
38 This documents the proposed CEC API. This API is not yet finalized
36 and is currently only available as a staging kernel module.39 and is currently only available as a staging kernel module.
37 40
38Closes the cec device. Resources associated with the file descriptor are41Closes 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
19 #include <sys/ioctl.h>19 #include <sys/ioctl.h>
20 20
21 21
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
23 24
24Arguments25Arguments
25=========26=========
26 27
27``fd``28``fd``
28 File descriptor returned by :ref:`open() <func-open>`.29 File descriptor returned by :c:func:`open() <cec-open>`.
29 30
30``request``31``request``
31 CEC ioctl request code as defined in the cec.h header file, for32 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`.
33 34
34``argp``35``argp``
35 Pointer to a request-specific structure.36 Pointer to a request-specific structure.
@@ -38,7 +39,9 @@ Arguments · 2 unmodified lines
38Description39Description
39===========40===========
40 41
41.. note:: This documents the proposed CEC API. This API is not yet finalized42.. note::
43
44 This documents the proposed CEC API. This API is not yet finalized
42 and is currently only available as a staging kernel module.45 and is currently only available as a staging kernel module.
43 46
44The :c:func:`ioctl()` function manipulates cec device parameters. The47The :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
19 #include <fcntl.h>19 #include <fcntl.h>
20 20
21 21
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
23 24
24 25
25Arguments26Arguments
@@ -45,7 +46,9 @@ Arguments · 19 unmodified lines
45Description46Description
46===========47===========
47 48
48.. note:: This documents the proposed CEC API. This API is not yet finalized49.. note::
50
51 This documents the proposed CEC API. This API is not yet finalized
49 and is currently only available as a staging kernel module.52 and is currently only available as a staging kernel module.
50 53
51To open a cec device applications call :c:func:`open()` with the54To 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
20 #include <sys/poll.h>20 #include <sys/poll.h>
21 21
22 22
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
24 25
25Arguments26Arguments
26=========27=========
27 28
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
28 38
29Description39Description
30===========40===========
31 41
32.. note:: This documents the proposed CEC API. This API is not yet finalized42.. note::
43
44 This documents the proposed CEC API. This API is not yet finalized
33 and is currently only available as a staging kernel module.45 and is currently only available as a staging kernel module.
34 46
35With the :c:func:`poll()` function applications can wait for CEC47With the :c:func:`poll()` function applications can wait for CEC
@@ -37,7 +49,7 @@ events. · 1 unmodified line
37 49
38On success :c:func:`poll()` returns the number of file descriptors50On success :c:func:`poll()` returns the number of file descriptors
39that have been selected (that is, file descriptors for which the51that have been selected (that is, file descriptors for which the
40``revents`` field of the respective :c:type:`struct pollfd` structure52``revents`` field of the respective struct :c:type:`pollfd`
41is non-zero). CEC devices set the ``POLLIN`` and ``POLLRDNORM`` flags in53is non-zero). CEC devices set the ``POLLIN`` and ``POLLRDNORM`` flags in
42the ``revents`` field if there are messages in the receive queue. If the54the ``revents`` field if there are messages in the receive queue. If the
43transmit queue has room for new messages, the ``POLLOUT`` and55transmit 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
3Introduction3Introduction
4============4============
5 5
6.. note:: This documents the proposed CEC API. This API is not yet finalized6.. note::
7
8 This documents the proposed CEC API. This API is not yet finalized
7 and is currently only available as a staging kernel module.9 and is currently only available as a staging kernel module.
8 10
9HDMI connectors provide a single pin for use by the Consumer Electronics11HDMI 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
14Synopsis14Synopsis
15========15========
16 16
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
18 19
19Arguments20Arguments
20=========21=========
@@ -22,25 +23,25 @@ Arguments · 1 unmodified line
22``fd``23``fd``
23 File descriptor returned by :ref:`open() <cec-func-open>`.24 File descriptor returned by :ref:`open() <cec-func-open>`.
24 25
25``request``
26 CEC_ADAP_G_CAPS
27
28``argp``26``argp``
29 27
30 28
31Description29Description
32===========30===========
33 31
34.. note:: This documents the proposed CEC API. This API is not yet finalized32.. note::
33
34 This documents the proposed CEC API. This API is not yet finalized
35 and is currently only available as a staging kernel module.35 and is currently only available as a staging kernel module.
36 36
37All cec devices must support :ref:`ioctl CEC_ADAP_G_CAPS <CEC_ADAP_G_CAPS>`. To query37All cec devices must support :ref:`ioctl CEC_ADAP_G_CAPS <CEC_ADAP_G_CAPS>`. To query
38device information, applications call the ioctl with a pointer to a38device information, applications call the ioctl with a pointer to a
39struct :ref:`cec_caps <cec-caps>`. The driver fills the structure and39struct :c:type:`cec_caps`. The driver fills the structure and
40returns the information to the application. The ioctl never fails.40returns the information to the application. The ioctl never fails.
41 41
42.. tabularcolumns:: |p{1.2cm}|p{2.5cm}|p{13.8cm}|
42 43
43.. _cec-caps:44.. c:type:: cec_caps
44 45
45.. flat-table:: struct cec_caps46.. flat-table:: struct cec_caps
46 :header-rows: 047 :header-rows: 0
@@ -84,6 +85,7 @@ returns the information to the application. The ioctl never fails. · 37 unmodified lines
84 macro.85 macro.
85 86
86 87
88.. tabularcolumns:: |p{4.4cm}|p{2.5cm}|p{10.6cm}|
87 89
88.. _cec-capabilities:90.. _cec-capabilities:
89 91
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
17Synopsis17Synopsis
18========18========
19 19
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
21 22
23.. c:function:: int ioctl( int fd, CEC_ADAP_S_LOG_ADDRS, struct cec_log_addrs *argp )
24 :name: CEC_ADAP_S_LOG_ADDRS
22 25
23Arguments26Arguments
24=========27=========
25 28
26``fd``29``fd``
27 File descriptor returned by :ref:`open() <cec-func-open>`.30 File descriptor returned by :c:func:`open() <cec-open>`.
28
29``request``
30 CEC_ADAP_G_LOG_ADDRS, CEC_ADAP_S_LOG_ADDRS
31 31
32``argp``32``argp``
33 33 Pointer to struct :c:type:`cec_log_addrs`.
34 34
35Description35Description
36===========36===========
37 37
38.. note:: This documents the proposed CEC API. This API is not yet finalized38.. note::
39
40 This documents the proposed CEC API. This API is not yet finalized
39 and is currently only available as a staging kernel module.41 and is currently only available as a staging kernel module.
40 42
41To query the current CEC logical addresses, applications call43To query the current CEC logical addresses, applications call
42:ref:`ioctl CEC_ADAP_G_LOG_ADDRS <CEC_ADAP_G_LOG_ADDRS>` with a pointer to a44: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.45struct :c:type:`cec_log_addrs` where the driver stores the logical addresses.
44 46
45To set new logical addresses, applications fill in47To 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>`48struct :c:type:`cec_log_addrs` and call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
47with a pointer to this struct. The :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`49with a pointer to this struct. The :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`
48is only available if ``CEC_CAP_LOG_ADDRS`` is set (the ``ENOTTY`` error code is50is only available if ``CEC_CAP_LOG_ADDRS`` is set (the ``ENOTTY`` error code is
49returned otherwise). The :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`51returned 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
64Attempting to call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` when66Attempting to call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` when
65logical address types are already defined will return with error ``EBUSY``.67logical address types are already defined will return with error ``EBUSY``.
66 68
69.. c:type:: cec_log_addrs
67 70
68.. _cec-log-addrs:71.. tabularcolumns:: |p{1.0cm}|p{7.5cm}|p{8.0cm}|
72
73.. cssclass:: longtable
69 74
70.. flat-table:: struct cec_log_addrs75.. flat-table:: struct cec_log_addrs
71 :header-rows: 076 :header-rows: 0
@@ -220,6 +225,8 @@ logical address types are already defined will return with error ``EBUSY``. · 148 unmodified lines
220 fallback to the Unregistered logical address. Note that if the Unregistered225 fallback to the Unregistered logical address. Note that if the Unregistered
221 logical address was explicitly requested, then this flag has no effect.226 logical address was explicitly requested, then this flag has no effect.
222 227
228.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
229
223.. _cec-versions:230.. _cec-versions:
224 231
225.. flat-table:: CEC Versions232.. flat-table:: CEC Versions
@@ -253,6 +260,7 @@ logical address types are already defined will return with error ``EBUSY``. · 27 unmodified lines
253 - CEC version according to the HDMI 2.0 standard.260 - CEC version according to the HDMI 2.0 standard.
254 261
255 262
263.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
256 264
257.. _cec-prim-dev-types:265.. _cec-prim-dev-types:
258 266
@@ -319,6 +327,7 @@ logical address types are already defined will return with error ``EBUSY``. · 60 unmodified lines
319 - Use for a video processor device.327 - Use for a video processor device.
320 328
321 329
330.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
322 331
323.. _cec-log-addr-types:332.. _cec-log-addr-types:
324 333
@@ -388,6 +397,8 @@ logical address types are already defined will return with error ``EBUSY``. · 63 unmodified lines
388 397
389 398
390 399
400.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
401
391.. _cec-all-dev-types-flags:402.. _cec-all-dev-types-flags:
392 403
393.. flat-table:: CEC All Device Types Flags404.. 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
17Synopsis17Synopsis
18========18========
19 19
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
21 25
22Arguments26Arguments
23=========27=========
24 28
25``fd``29``fd``
26 File descriptor returned by :ref:`open() <cec-func-open>`.30 File descriptor returned by :c:func:`open() <cec-open>`.
27
28``request``
29 CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR
30 31
31``argp``32``argp``
32 33 Pointer to the CEC address.
33 34
34Description35Description
35===========36===========
36 37
37.. note:: This documents the proposed CEC API. This API is not yet finalized38.. note::
39
40 This documents the proposed CEC API. This API is not yet finalized
38 and is currently only available as a staging kernel module.41 and is currently only available as a staging kernel module.
39 42
40To query the current physical address applications call43To 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
15Synopsis15Synopsis
16========16========
17 17
18.. c:function:: int ioctl( int fd, int request, struct cec_event *argp )18.. c:function:: int ioctl( int fd, CEC_DQEVENT, struct cec_event *argp )
19 :name: CEC_DQEVENT19 :name: CEC_DQEVENT
20 20
21Arguments21Arguments
22=========22=========
@@ -24,16 +24,15 @@ Arguments · 1 unmodified line
24``fd``24``fd``
25 File descriptor returned by :ref:`open() <cec-func-open>`.25 File descriptor returned by :ref:`open() <cec-func-open>`.
26 26
27``request``
28 CEC_DQEVENT
29
30``argp``27``argp``
31 28
32 29
33Description30Description
34===========31===========
35 32
36.. note:: This documents the proposed CEC API. This API is not yet finalized33.. note::
34
35 This documents the proposed CEC API. This API is not yet finalized
37 and is currently only available as a staging kernel module.36 and is currently only available as a staging kernel module.
38 37
39CEC devices can send asynchronous events. These can be retrieved by38CEC 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
50the same state). In that case the intermediate state changes were lost but49the same state). In that case the intermediate state changes were lost but
51it is guaranteed that the state did change in between the two events.50it is guaranteed that the state did change in between the two events.
52 51
52.. tabularcolumns:: |p{1.2cm}|p{2.9cm}|p{13.4cm}|
53 53
54.. _cec-event-state-change_s:54.. c:type:: cec_event_state_change
55 55
56.. flat-table:: struct cec_event_state_change56.. flat-table:: struct cec_event_state_change
57 :header-rows: 057 :header-rows: 0
@@ -80,8 +80,9 @@ it is guaranteed that the state did change in between the two events. · 22 unmodified lines
80 has the unregistered logical address. In that case all other bits are 0.80 has the unregistered logical address. In that case all other bits are 0.
81 81
82 82
83.. c:type:: cec_event_lost_msgs
83 84
84.. _cec-event-lost-msgs_s:85.. tabularcolumns:: |p{1.0cm}|p{2.0cm}|p{14.5cm}|
85 86
86.. flat-table:: struct cec_event_lost_msgs87.. flat-table:: struct cec_event_lost_msgs
87 :header-rows: 088 :header-rows: 0
@@ -106,8 +107,9 @@ it is guaranteed that the state did change in between the two events. · 18 unmodified lines
106 this is more than enough.107 this is more than enough.
107 108
108 109
110.. tabularcolumns:: |p{1.0cm}|p{4.2cm}|p{2.5cm}|p{8.8cm}|
109 111
110.. _cec-event:112.. c:type:: cec_event
111 113
112.. flat-table:: struct cec_event114.. flat-table:: struct cec_event
113 :header-rows: 0115 :header-rows: 0
@@ -121,11 +123,10 @@ it is guaranteed that the state did change in between the two events. · 7 unmodified lines
121 123
122 - ``ts``124 - ``ts``
123 125
124 - Timestamp of the event in ns.126 - :cspan:`1` 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)`.
127 127
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`.
129 130
130 - .. row 2131 - .. row 2
131 132
@@ -133,9 +134,7 @@ it is guaranteed that the state did change in between the two events. · 1 unmodified line
133 134
134 - ``event``135 - ``event``
135 136
136 - The CEC event type, see :ref:`cec-events`.137 - :cspan:`1` The CEC event type, see :ref:`cec-events`.
137
138 -
139 138
140 - .. row 3139 - .. row 3
141 140
@@ -143,9 +142,7 @@ it is guaranteed that the state did change in between the two events. · 1 unmodified line
143 142
144 - ``flags``143 - ``flags``
145 144
146 - Event flags, see :ref:`cec-event-flags`.145 - :cspan:`1` Event flags, see :ref:`cec-event-flags`.
147
148 -
149 146
150 - .. row 4147 - .. row 4
151 148
@@ -177,6 +174,7 @@ it is guaranteed that the state did change in between the two events. · 25 unmodified lines
177 event.174 event.
178 175
179 176
177.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
180 178
181.. _cec-events:179.. _cec-events:
182 180
@@ -206,6 +204,7 @@ it is guaranteed that the state did change in between the two events. · 23 unmodified lines
206 application didn't dequeue CEC messages fast enough.204 application didn't dequeue CEC messages fast enough.
207 205
208 206
207.. tabularcolumns:: |p{6.0cm}|p{0.6cm}|p{10.9cm}|
209 208
210.. _cec-event-flags:209.. _cec-event-flags:
211 210
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
13Synopsis13Synopsis
14========14========
15 15
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
17 21
18Arguments22Arguments
19=========23=========
20 24
21``fd``25``fd``
22 File descriptor returned by :ref:`open() <cec-func-open>`.26 File descriptor returned by :c:func:`open() <cec-open>`.
23
24``request``
25 CEC_G_MODE, CEC_S_MODE
26 27
27``argp``28``argp``
28 29 Pointer to CEC mode.
29 30
30Description31Description
31===========32===========
32 33
33.. note:: This documents the proposed CEC API. This API is not yet finalized34.. note::
35
36 This documents the proposed CEC API. This API is not yet finalized
34 and is currently only available as a staging kernel module.37 and is currently only available as a staging kernel module.
35 38
36By default any filehandle can use :ref:`CEC_TRANSMIT`, but in order to prevent39By 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
71 74
72Available initiator modes are:75Available initiator modes are:
73 76
77.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
74 78
75.. _cec-mode-initiator_e:79.. _cec-mode-initiator_e:
76 80
@@ -114,6 +118,7 @@ Available initiator modes are: · 37 unmodified lines
114 118
115Available follower modes are:119Available follower modes are:
116 120
121.. tabularcolumns:: |p{6.6cm}|p{0.9cm}|p{10.0cm}|
117 122
118.. _cec-mode-follower_e:123.. _cec-mode-follower_e:
119 124
@@ -206,6 +211,7 @@ Available follower modes are: · 86 unmodified lines
206 211
207Core message processing details:212Core message processing details:
208 213
214.. tabularcolumns:: |p{6.6cm}|p{10.9cm}|
209 215
210.. _cec-core-processing:216.. _cec-core-processing:
211 217
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
16Synopsis16Synopsis
17========17========
18 18
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
20 24
21Arguments25Arguments
22=========26=========
23 27
24``fd``28``fd``
25 File descriptor returned by :ref:`open() <cec-func-open>`.29 File descriptor returned by :c:func:`open() <cec-open>`.
26
27``request``
28 CEC_RECEIVE, CEC_TRANSMIT
29 30
30``argp``31``argp``
31 32 Pointer to struct cec_msg.
32 33
33Description34Description
34===========35===========
35 36
36.. note:: This documents the proposed CEC API. This API is not yet finalized37.. note::
38
39 This documents the proposed CEC API. This API is not yet finalized
37 and is currently only available as a staging kernel module.40 and is currently only available as a staging kernel module.
38 41
39To receive a CEC message the application has to fill in the42To 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>`.
41If the file descriptor is in non-blocking mode and there are no received45If the file descriptor is in non-blocking mode and there are no received
42messages pending, then it will return -1 and set errno to the ``EAGAIN``46messages pending, then it will return -1 and set errno to the ``EAGAIN``
43error code. If the file descriptor is in blocking mode and ``timeout``47error code. If the file descriptor is in blocking mode and ``timeout``
@@ -51,9 +55,9 @@ A received message can be: · 7 unmodified lines
512. the result of an earlier non-blocking transmit (the ``sequence`` field will552. the result of an earlier non-blocking transmit (the ``sequence`` field will
52 be non-zero).56 be non-zero).
53 57
54To send a CEC message the application has to fill in the58To send a CEC message the application has to fill in the struct
55:c:type:`struct cec_msg` and pass it to59:c:type:` cec_msg` and pass it to :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`.
56:ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`. The :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` is only available if60The :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` is only available if
57``CEC_CAP_TRANSMIT`` is set. If there is no more room in the transmit61``CEC_CAP_TRANSMIT`` is set. If there is no more room in the transmit
58queue, then it will return -1 and set errno to the ``EBUSY`` error code.62queue, then it will return -1 and set errno to the ``EBUSY`` error code.
59The transmit queue has enough room for 18 messages (about 1 second worth63The 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
71result.75result.
72 76
73 77
74.. _cec-msg:78.. tabularcolumns:: |p{1.0cm}|p{3.5cm}|p{13.0cm}|
79
80.. c:type:: cec_msg
81
82.. cssclass:: longtable
75 83
76.. flat-table:: struct cec_msg84.. flat-table:: struct cec_msg
77 :header-rows: 085 :header-rows: 0
@@ -87,7 +95,7 @@ result. · 9 unmodified lines
87 95
88 - Timestamp in ns of when the last byte of the message was transmitted.96 - Timestamp in ns of when the last byte of the message was transmitted.
89 The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access97 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`.
91 99
92 - .. row 2100 - .. row 2
93 101
@@ -97,7 +105,7 @@ result. · 3 unmodified lines
97 105
98 - Timestamp in ns of when the last byte of the message was received.106 - Timestamp in ns of when the last byte of the message was received.
99 The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access107 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`.
101 109
102 - .. row 3110 - .. row 3
103 111
@@ -247,6 +255,7 @@ result. · 143 unmodified lines
247 valid if the :ref:`CEC_TX_STATUS_ERROR <CEC-TX-STATUS-ERROR>` status bit is set.255 valid if the :ref:`CEC_TX_STATUS_ERROR <CEC-TX-STATUS-ERROR>` status bit is set.
248 256
249 257
258.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
250 259
251.. _cec-tx-status:260.. _cec-tx-status:
252 261
@@ -315,6 +324,7 @@ result. · 62 unmodified lines
315 be set to explain which failures were seen.324 be set to explain which failures were seen.
316 325
317 326
327.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}|
318 328
319.. _cec-rx-status:329.. _cec-rx-status:
320 330
Documentation/media/uapi/dvb/audio-bilingual-channel-select.rst+5−10
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_BILINGUAL_CHANNEL_SELECT12AUDIO_BILINGUAL_CHANNEL_SELECT
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -25,20 +27,13 @@ Arguments · 3 unmodified lines
25 :header-rows: 027 :header-rows: 0
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30 -
29 - .. row 1
30 31
31 - int fd32 - int fd
32 33
33 - File descriptor returned by a previous call to open().34 - File descriptor returned by a previous call to open().
34 35
35 - .. row 236 -
36
37 - int request
38
39 - Equals AUDIO_BILINGUAL_CHANNEL_SELECT for this command.
40
41 - .. row 3
42 37
43 - audio_channel_select_t ch38 - audio_channel_select_t ch
44 39
Documentation/media/uapi/dvb/audio-channel-select.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_CHANNEL_SELECT12AUDIO_CHANNEL_SELECT
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30
29 - .. row 131 -
30 32
31 - int fd33 - int fd
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 237 -
36
37 - int request
38
39 - Equals AUDIO_CHANNEL_SELECT for this command.
40
41 - .. row 3
42 38
43 - audio_channel_select_t ch39 - audio_channel_select_t ch
44 40
Documentation/media/uapi/dvb/audio-clear-buffer.rst+3−9
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_CLEAR_BUFFER12AUDIO_CLEAR_BUFFER
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(int fd, int request = AUDIO_CLEAR_BUFFER)19.. c:function:: int ioctl(int fd, AUDIO_CLEAR_BUFFER)
19 20 :name: AUDIO_CLEAR_BUFFER
20 21
21Arguments22Arguments
22---------23---------
@@ -32,13 +33,6 @@ Arguments · 9 unmodified lines
32 33
33 - File descriptor returned by a previous call to open().34 - File descriptor returned by a previous call to open().
34 35
35 - .. row 2
36
37 - int request
38
39 - Equals AUDIO_CLEAR_BUFFER for this command.
40
41
42Description36Description
43-----------37-----------
44 38
Documentation/media/uapi/dvb/audio-continue.rst+3−8
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_CONTINUE12AUDIO_CONTINUE
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(int fd, int request = AUDIO_CONTINUE)19.. c:function:: int ioctl(int fd, AUDIO_CONTINUE)
20 :name: AUDIO_CONTINUE
19 21
20 22
21Arguments23Arguments
@@ -32,13 +34,6 @@ Arguments · 10 unmodified lines
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 2
36
37 - int request
38
39 - Equals AUDIO_CONTINUE for this command.
40
41
42Description37Description
43-----------38-----------
44 39
Documentation/media/uapi/dvb/audio-fclose.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12DVB audio close()12DVB audio close()
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int close(int fd)19.. c:function:: int close(int fd)
20 :name: dvb-audio-close
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/audio-fopen.rst+5−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12DVB audio open()12DVB audio open()
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -80,6 +82,8 @@ AUDIO_GET_STATUS. All other call will return with an error code. · 58 unmodified lines
80Return Value82Return Value
81------------83------------
82 84
85.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
86
83.. flat-table::87.. flat-table::
84 :header-rows: 088 :header-rows: 0
85 :stub-columns: 089 :stub-columns: 0
Documentation/media/uapi/dvb/audio-fwrite.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12DVB audio write()12DVB audio write()
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/audio-get-capabilities.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_GET_CAPABILITIES12AUDIO_GET_CAPABILITIES
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30
29 - .. row 131 -
30 32
31 - int fd33 - int fd
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 237 -
36
37 - int request
38
39 - Equals AUDIO_GET_CAPABILITIES for this command.
40
41 - .. row 3
42 38
43 - unsigned int \*cap39 - unsigned int \*cap
44 40
Documentation/media/uapi/dvb/audio-get-pts.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_GET_PTS12AUDIO_GET_PTS
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30
29 - .. row 131 -
30 32
31 - int fd33 - int fd
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 237 -
36
37 - int request
38
39 - Equals AUDIO_GET_PTS for this command.
40
41 - .. row 3
42 38
43 - __u64 \*pts39 - __u64 \*pts
44 40
Documentation/media/uapi/dvb/audio-get-status.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_GET_STATUS12AUDIO_GET_STATUS
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30
29 - .. row 131 -
30 32
31 - int fd33 - int fd
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 237 -
36
37 - int request
38
39 - Equals AUDIO_GET_STATUS for this command.
40
41 - .. row 3
42 38
43 - struct audio_status \*status39 - struct audio_status \*status
44 40
Documentation/media/uapi/dvb/audio-pause.rst+3−8
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_PAUSE12AUDIO_PAUSE
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(int fd, int request = AUDIO_PAUSE)19.. c:function:: int ioctl(int fd, AUDIO_PAUSE)
19 20 :name: AUDIO_PAUSE
20 21
21Arguments22Arguments
22---------23---------
@@ -32,12 +33,6 @@ Arguments · 9 unmodified lines
32 33
33 - File descriptor returned by a previous call to open().34 - File descriptor returned by a previous call to open().
34 35
35 - .. row 2
36
37 - int request
38
39 - Equals AUDIO_PAUSE for this command.
40
41 36
42Description37Description
43-----------38-----------
Documentation/media/uapi/dvb/audio-play.rst+3−8
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_PLAY12AUDIO_PLAY
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(int fd, int request = AUDIO_PLAY)19.. c:function:: int ioctl(int fd, AUDIO_PLAY)
20 :name: AUDIO_PLAY
19 21
20 22
21Arguments23Arguments
@@ -32,13 +34,6 @@ Arguments · 10 unmodified lines
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 2
36
37 - int request
38
39 - Equals AUDIO_PLAY for this command.
40
41
42Description37Description
43-----------38-----------
44 39
Documentation/media/uapi/dvb/audio-select-source.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_SELECT_SOURCE12AUDIO_SELECT_SOURCE
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30
29 - .. row 131 -
30 32
31 - int fd33 - int fd
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 237 -
36
37 - int request
38
39 - Equals AUDIO_SELECT_SOURCE for this command.
40
41 - .. row 3
42 38
43 - audio_stream_source_t source39 - audio_stream_source_t source
44 40
Documentation/media/uapi/dvb/audio-set-attributes.rst+6−10
@@ -11,12 +11,14 @@ Name · 10 unmodified lines
11 11
12AUDIO_SET_ATTRIBUTES12AUDIO_SET_ATTRIBUTES
13 13
14.. attention:: This ioctl is deprecated
15
14 16
15Synopsis17Synopsis
16--------18--------
17 19
18.. cpp:function:: int ioctl(fd, int request = AUDIO_SET_ATTRIBUTES, audio_attributes_t attr )20.. c:function:: int ioctl(fd, AUDIO_SET_ATTRIBUTES, struct audio_attributes *attr )
19 21 :name: AUDIO_SET_ATTRIBUTES
20 22
21Arguments23Arguments
22---------24---------
@@ -26,19 +28,13 @@ Arguments · 3 unmodified lines
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30
29 - .. row 131 -
30 32
31 - int fd33 - int fd
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 237 -
36
37 - int request
38
39 - Equals AUDIO_SET_ATTRIBUTES for this command.
40
41 - .. row 3
42 38
43 - audio_attributes_t attr39 - audio_attributes_t attr
44 40
Documentation/media/uapi/dvb/audio-set-av-sync.rst+7−17
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_SET_AV_SYNC12AUDIO_SET_AV_SYNC
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -26,33 +28,21 @@ Arguments · 4 unmodified lines
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30
29 - .. row 131 -
30 32
31 - int fd33 - int fd
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 237 -
36
37 - int request
38
39 - Equals AUDIO_AV_SYNC for this command.
40
41 - .. row 3
42 38
43 - boolean state39 - boolean state
44 40
45 - Tells the DVB subsystem if A/V synchronization shall be ON or OFF.41 - Tells the DVB subsystem if A/V synchronization shall be ON or OFF.
46 42
47 - .. row 443 TRUE: AV-sync ON
48
49 -
50 - TRUE AV-sync ON
51
52 - .. row 5
53 44
54 -45 FALSE: AV-sync OFF
55 - FALSE AV-sync OFF
56 46
57 47
58Description48Description
Documentation/media/uapi/dvb/audio-set-bypass-mode.rst+7−18
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_SET_BYPASS_MODE12AUDIO_SET_BYPASS_MODE
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_BYPASS_MODE, boolean mode)19.. c:function:: int ioctl(int fd, AUDIO_SET_BYPASS_MODE, boolean mode)
19 20 :name: AUDIO_SET_BYPASS_MODE
20 21
21Arguments22Arguments
22---------23---------
@@ -26,34 +27,22 @@ Arguments · 3 unmodified lines
26 :stub-columns: 027 :stub-columns: 0
27 28
28 29
29 - .. row 130 -
30 31
31 - int fd32 - int fd
32 33
33 - File descriptor returned by a previous call to open().34 - File descriptor returned by a previous call to open().
34 35
35 - .. row 236 -
36
37 - int request
38
39 - Equals AUDIO_SET_BYPASS_MODE for this command.
40
41 - .. row 3
42 37
43 - boolean mode38 - boolean mode
44 39
45 - Enables or disables the decoding of the current Audio stream in40 - Enables or disables the decoding of the current Audio stream in
46 the DVB subsystem.41 the DVB subsystem.
47 42
48 - .. row 443 TRUE: Bypass is disabled
49
50 -
51 - TRUE Bypass is disabled
52
53 - .. row 5
54 44
55 -45 FALSE: Bypass is enabled
56 - FALSE Bypass is enabled
57 46
58 47
59Description48Description
Documentation/media/uapi/dvb/audio-set-ext-id.rst+5−10
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_SET_EXT_ID12AUDIO_SET_EXT_ID
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(fd, int request = AUDIO_SET_EXT_ID, int id)19.. c:function:: int ioctl(fd, AUDIO_SET_EXT_ID, int id)
19 20 :name: AUDIO_SET_EXT_ID
20 21
21Arguments22Arguments
22---------23---------
@@ -26,19 +27,13 @@ Arguments · 3 unmodified lines
26 :stub-columns: 027 :stub-columns: 0
27 28
28 29
29 - .. row 130 -
30 31
31 - int fd32 - int fd
32 33
33 - File descriptor returned by a previous call to open().34 - File descriptor returned by a previous call to open().
34 35
35 - .. row 236 -
36
37 - int request
38
39 - Equals AUDIO_SET_EXT_ID for this command.
40
41 - .. row 3
42 37
43 - int id38 - int id
44 39
Documentation/media/uapi/dvb/audio-set-id.rst+5−10
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_SET_ID12AUDIO_SET_ID
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_ID, int id)19.. c:function:: int ioctl(int fd, AUDIO_SET_ID, int id)
19 20 :name: AUDIO_SET_ID
20 21
21Arguments22Arguments
22---------23---------
@@ -26,19 +27,13 @@ Arguments · 3 unmodified lines
26 :stub-columns: 027 :stub-columns: 0
27 28
28 29
29 - .. row 130 -
30 31
31 - int fd32 - int fd
32 33
33 - File descriptor returned by a previous call to open().34 - File descriptor returned by a previous call to open().
34 35
35 - .. row 236 -
36
37 - int request
38
39 - Equals AUDIO_SET_ID for this command.
40
41 - .. row 3
42 37
43 - int id38 - int id
44 39
Documentation/media/uapi/dvb/audio-set-karaoke.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_SET_KARAOKE12AUDIO_SET_KARAOKE
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30
29 - .. row 131 -
30 32
31 - int fd33 - int fd
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 237 -
36
37 - int request
38
39 - Equals AUDIO_SET_KARAOKE for this command.
40
41 - .. row 3
42 38
43 - audio_karaoke_t \*karaoke39 - audio_karaoke_t \*karaoke
44 40
Documentation/media/uapi/dvb/audio-set-mixer.rst+5−10
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_SET_MIXER12AUDIO_SET_MIXER
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_MIXER, audio_mixer_t *mix)19.. c:function:: int ioctl(int fd, AUDIO_SET_MIXER, struct audio_mixer *mix)
19 20 :name: AUDIO_SET_MIXER
20 21
21Arguments22Arguments
22---------23---------
@@ -26,19 +27,13 @@ Arguments · 3 unmodified lines
26 :stub-columns: 027 :stub-columns: 0
27 28
28 29
29 - .. row 130 -
30 31
31 - int fd32 - int fd
32 33
33 - File descriptor returned by a previous call to open().34 - File descriptor returned by a previous call to open().
34 35
35 - .. row 236 -
36
37 - int request
38
39 - Equals AUDIO_SET_ID for this command.
40
41 - .. row 3
42 37
43 - audio_mixer_t \*mix38 - audio_mixer_t \*mix
44 39
Documentation/media/uapi/dvb/audio-set-mute.rst+7−17
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_SET_MUTE12AUDIO_SET_MUTE
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -26,33 +28,21 @@ Arguments · 4 unmodified lines
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30
29 - .. row 131 -
30 32
31 - int fd33 - int fd
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 237 -
36
37 - int request
38
39 - Equals AUDIO_SET_MUTE for this command.
40
41 - .. row 3
42 38
43 - boolean state39 - boolean state
44 40
45 - Indicates if audio device shall mute or not.41 - Indicates if audio device shall mute or not.
46 42
47 - .. row 443 TRUE: Audio Mute
48
49 -
50 - TRUE Audio Mute
51
52 - .. row 5
53 44
54 -45 FALSE: Audio Un-mute
55 - FALSE Audio Un-mute
56 46
57 47
58Description48Description
Documentation/media/uapi/dvb/audio-set-streamtype.rst+5−9
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_SET_STREAMTYPE12AUDIO_SET_STREAMTYPE
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -26,19 +28,13 @@ Arguments · 4 unmodified lines
26 :stub-columns: 028 :stub-columns: 0
27 29
28 30
29 - .. row 131 -
30 32
31 - int fd33 - int fd
32 34
33 - File descriptor returned by a previous call to open().35 - File descriptor returned by a previous call to open().
34 36
35 - .. row 237 -
36
37 - int request
38
39 - Equals AUDIO_SET_STREAMTYPE for this command.
40
41 - .. row 3
42 38
43 - int type39 - int type
44 40
Documentation/media/uapi/dvb/audio-stop.rst+3−8
@@ -11,12 +11,13 @@ Name · 10 unmodified lines
11 11
12AUDIO_STOP12AUDIO_STOP
13 13
14.. attention:: This ioctl is deprecated
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(int fd, int request = AUDIO_STOP)19.. c:function:: int ioctl(int fd, AUDIO_STOP)
19 20 :name: AUDIO_STOP
20 21
21Arguments22Arguments
22---------23---------
@@ -32,12 +33,6 @@ Arguments · 9 unmodified lines
32 33
33 - File descriptor returned by a previous call to open().34 - File descriptor returned by a previous call to open().
34 35
35 - .. row 2
36
37 - int request
38
39 - Equals AUDIO_STOP for this command.
40
41 36
42Description37Description
43-----------38-----------
Documentation/media/uapi/dvb/audio_data_types.rst+7−30
@@ -9,11 +9,7 @@ Audio Data Types · 8 unmodified lines
9This section describes the structures, data types and defines used when9This section describes the structures, data types and defines used when
10talking to the audio device.10talking to the audio device.
11 11
12 12.. c:type:: audio_stream_source
13.. _audio-stream-source-t:
14
15audio_stream_source_t
16=====================
17 13
18The audio stream source is set through the AUDIO_SELECT_SOURCE call14The audio stream source is set through the AUDIO_SELECT_SOURCE call
19and can take the following values, depending on whether we are replaying15and 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
33through the ``write()`` system call.29through the ``write()`` system call.
34 30
35 31
36.. _audio-play-state-t:32.. c:type:: audio_play_state
37
38audio_play_state_t
39==================
40 33
41The following values can be returned by the AUDIO_GET_STATUS call34The following values can be returned by the AUDIO_GET_STATUS call
42representing the state of audio playback.35representing the state of audio playback.
@@ -51,10 +44,7 @@ representing the state of audio playback. · 8 unmodified lines
51 } audio_play_state_t;44 } audio_play_state_t;
52 45
53 46
54.. _audio-channel-select-t:47.. c:type:: audio_channel_select
55
56audio_channel_select_t
57======================
58 48
59The audio channel selected via AUDIO_CHANNEL_SELECT is determined by49The audio channel selected via AUDIO_CHANNEL_SELECT is determined by
60the following values.50the following values.
@@ -71,10 +61,7 @@ the following values. · 10 unmodified lines
71 } audio_channel_select_t;61 } audio_channel_select_t;
72 62
73 63
74.. _audio-status:64.. c:type:: audio_status
75
76struct audio_status
77===================
78 65
79The AUDIO_GET_STATUS call returns the following structure informing66The AUDIO_GET_STATUS call returns the following structure informing
80about various states of the playback operation.67about various states of the playback operation.
@@ -93,10 +80,7 @@ about various states of the playback operation. · 12 unmodified lines
93 } audio_status_t;80 } audio_status_t;
94 81
95 82
96.. _audio-mixer:83.. c:type:: audio_mixer
97
98struct audio_mixer
99==================
100 84
101The following structure is used by the AUDIO_SET_MIXER call to set the85The following structure is used by the AUDIO_SET_MIXER call to set the
102audio volume.86audio volume.
@@ -131,11 +115,7 @@ following bits set according to the hardwares capabilities. · 28 unmodified lines
131 #define AUDIO_CAP_SDDS 128115 #define AUDIO_CAP_SDDS 128
132 #define AUDIO_CAP_AC3 256116 #define AUDIO_CAP_AC3 256
133 117
134 118.. c:type:: audio_karaoke
135.. _audio-karaoke:
136
137struct audio_karaoke
138====================
139 119
140The ioctl AUDIO_SET_KARAOKE uses the following format:120The ioctl AUDIO_SET_KARAOKE uses the following format:
141 121
@@ -155,10 +135,7 @@ into the left channel and Vocal2 into the right channel at 100% each. Ff · 13 unmodified lines
155Melody is non-zero, the melody channel gets mixed into left and right.135Melody is non-zero, the melody channel gets mixed into left and right.
156 136
157 137
158.. _audio-attributes-t:138.. c:type:: audio_attributes
159
160audio attributes
161================
162 139
163The following attributes can be set by a call to AUDIO_SET_ATTRIBUTES:140The following attributes can be set by a call to AUDIO_SET_ATTRIBUTES:
164 141
Documentation/media/uapi/dvb/ca-fclose.rst+5−13
@@ -15,28 +15,20 @@ DVB CA close() · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int close(int fd)18.. c:function:: int close(int fd)
19 :name: dvb-ca-close
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
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 27
36Description28Description
37-----------29-----------
38 30
39This system call closes a previously opened audio device.31This system call closes a previously opened CA device.
40 32
41 33
42Return Value34Return Value
Documentation/media/uapi/dvb/ca-fopen.rst+20−31
@@ -15,48 +15,35 @@ DVB CA open() · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
25``name``
26 Name of specific DVB CA device.
27
28``flags``
29 A bit-wise OR of the following flags:
30
24.. flat-table::31.. flat-table::
25 :header-rows: 032 :header-rows: 0
26 :stub-columns: 033 :stub-columns: 0
27 34
35 -
36 - O_RDONLY
37 - read-only access
28 38
29 - .. row 139 -
30 40 - O_RDWR
31 - const char \*deviceName41 - read/write access
32
33 - Name of specific video device.
34 42
35 - .. row 243 -
36 44 - O_NONBLOCK
37 - int flags45 - open in non-blocking mode
38 46 (blocking mode is the default)
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)
60 47
61 48
62Description49Description
@@ -79,6 +66,8 @@ the device in this mode will fail, and an error code will be returned. · 16 unmodified lines
79Return Value66Return Value
80------------67------------
81 68
69.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
70
82.. flat-table::71.. flat-table::
83 :header-rows: 072 :header-rows: 0
84 :stub-columns: 073 :stub-columns: 0
Documentation/media/uapi/dvb/ca-get-cap.rst+31−20
@@ -15,40 +15,51 @@ CA_GET_CAP · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
26 :stub-columns: 0
27
28
29 - .. row 1
30
31 - int fd
32 27
33 - File descriptor returned by a previous call to open().28``caps``
29 Pointer to struct :c:type:`ca_caps`.
34 30
35 - .. row 231.. c:type:: struct ca_caps
36 32
37 - int request33.. flat-table:: struct ca_caps
38 34 :header-rows: 1
39 - Equals CA_GET_CAP for this command.35 :stub-columns: 0
40
41 - .. row 3
42
43 - ca_caps_t *
44 36
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
46 57
47 58
48Description59Description
49-----------60-----------
50 61
51This ioctl is undocumented. Documentation is welcome.62.. note:: This ioctl is undocumented. Documentation is welcome.
52 63
53 64
54Return Value65Return Value
Documentation/media/uapi/dvb/ca-get-descr-info.rst+24−20
@@ -15,40 +15,44 @@ CA_GET_DESCR_INFO · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int ioctl(fd, int request = CA_GET_DESCR_INFO, ca_descr_info_t *)18.. c:function:: int ioctl(fd, CA_GET_DESCR_INFO, struct ca_descr_info *desc)
19 19 :name: CA_GET_DESCR_INFO
20 20
21Arguments21Arguments
22---------22---------
23 23
24.. flat-table::24``fd``
25 :header-rows: 025 File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
26 :stub-columns: 0
27
28
29 - .. row 1
30 26
31 - int fd27``desc``
28 Pointer to struct :c:type:`ca_descr_info`.
32 29
33 - File descriptor returned by a previous call to open().30.. c:type:: struct ca_descr_info
34 31
35 - .. row 232.. flat-table:: struct ca_descr_info
36 33 :header-rows: 1
37 - int request34 :stub-columns: 0
38
39 - Equals CA_GET_DESCR_INFO for this command.
40
41 - .. row 3
42 35
43 - ca_descr_info_t \*36 -
37 - type
38 - name
39 - description
44 40
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``.
46 50
47 51
48Description52Description
49-----------53-----------
50 54
51This ioctl is undocumented. Documentation is welcome.55.. note:: This ioctl is undocumented. Documentation is welcome.
52 56
53 57
54Return Value58Return Value
Documentation/media/uapi/dvb/ca-get-msg.rst+31−16
@@ -15,40 +15,55 @@ CA_GET_MSG · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
26 :stub-columns: 0
27
28 27
29 - .. row 128``msg``
29 Pointer to struct :c:type:`ca_msg`.
30 30
31 - int fd
32 31
33 - File descriptor returned by a previous call to open().32.. c:type:: struct ca_msg
34 33
35 - .. row 234.. flat-table:: struct ca_msg
36 35 :header-rows: 1
37 - int request36 :stub-columns: 0
38 37
39 - Equals CA_GET_MSG for this command.38 -
39 - type
40 - name
41 - description
42 -
43 - unsigned int
44 - index
45 -
40 46
41 - .. row 347 -
48 - unsigned int
49 - type
50 -
42 51
43 - ca_msg_t \*52 -
53 - unsigned int
54 - length
55 -
44 56
45 - Undocumented.57 -
58 - unsigned char
59 - msg[256]
60 -
46 61
47 62
48Description63Description
49-----------64-----------
50 65
51This ioctl is undocumented. Documentation is welcome.66.. note:: This ioctl is undocumented. Documentation is welcome.
52 67
53 68
54Return Value69Return Value
Documentation/media/uapi/dvb/ca-get-slot-info.rst+79−13
@@ -15,40 +15,106 @@ CA_GET_SLOT_INFO · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 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
26 :stub-columns: 035 :stub-columns: 0
27 36
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
28 71
29 - .. row 172 -
73 - type
74 - name
75 - description
30 76
31 - int fd77 -
78 - CA_CI_MODULE_PRESENT
79 - 1
80 - module (or card) inserted
32 81
33 - File descriptor returned by a previous call to open().82 -
83 - CA_CI_MODULE_READY
84 - 2
85 -
34 86
35 - .. row 287.. c:type:: ca_slot_info
36 88
37 - int request89.. flat-table:: struct ca_slot_info
90 :header-rows: 1
91 :stub-columns: 0
38 92
39 - Equals CA_GET_SLOT_INFO for this command.93 -
94 - type
95 - name
96 - description
40 97
41 - .. row 398 -
99 - int
100 - num
101 - slot number
42 102
43 - ca_slot_info_t \*103 -
104 - int
105 - type
106 - CA interface this slot supports, as defined at :ref:`ca_slot_info_type`.
44 107
45 - Undocumented.108 -
109 - unsigned int
110 - flags
111 - flags as defined at :ref:`ca_slot_info_flag`.
46 112
47 113
48Description114Description
49-----------115-----------
50 116
51This ioctl is undocumented. Documentation is welcome.117.. note:: This ioctl is undocumented. Documentation is welcome.
52 118
53 119
54Return Value120Return Value
Documentation/media/uapi/dvb/ca-reset.rst+5−19
@@ -15,34 +15,20 @@ CA_RESET · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int ioctl(fd, int request = CA_RESET)18.. c:function:: int ioctl(fd, CA_RESET)
19 :name: CA_RESET
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by a previous call to :c:func:`open() <cec-open>`.
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
41 27
42Description28Description
43-----------29-----------
44 30
45This ioctl is undocumented. Documentation is welcome.31.. note:: This ioctl is undocumented. Documentation is welcome.
46 32
47 33
48Return Value34Return Value
Documentation/media/uapi/dvb/ca-send-msg.rst+7−23
@@ -15,40 +15,24 @@ CA_SEND_MSG · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by a previous call to :c:func:`open() <cec-open>`.
26 :stub-columns: 0
27 27
28 28``msg``
29 - .. row 129 Pointer to struct :c:type:`ca_msg`.
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.
46 30
47 31
48Description32Description
49-----------33-----------
50 34
51This ioctl is undocumented. Documentation is welcome.35.. note:: This ioctl is undocumented. Documentation is welcome.
52 36
53 37
54Return Value38Return Value
Documentation/media/uapi/dvb/ca-set-descr.rst+7−23
@@ -15,40 +15,24 @@ CA_SET_DESCR · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by a previous call to :c:func:`open() <cec-open>`.
26 :stub-columns: 0
27 27
28 28``msg``
29 - .. row 129 Pointer to struct :c:type:`ca_descr`.
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.
46 30
47 31
48Description32Description
49-----------33-----------
50 34
51This ioctl is undocumented. Documentation is welcome.35.. note:: This ioctl is undocumented. Documentation is welcome.
52 36
53 37
54Return Value38Return Value
Documentation/media/uapi/dvb/ca-set-pid.rst+19−18
@@ -15,40 +15,41 @@ CA_SET_PID · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
26 :stub-columns: 0
27
28
29 - .. row 1
30 27
31 - int fd28``pid``
29 Pointer to struct :c:type:`ca_pid`.
32 30
33 - File descriptor returned by a previous call to open().31.. c:type:: ca_pid
34 32
35 - .. row 233.. flat-table:: struct ca_pid
36 34 :header-rows: 1
37 - int request35 :stub-columns: 0
38
39 - Equals CA_SET_PID for this command.
40 36
41 - .. row 337 -
38 - unsigned int
39 - pid
40 - Program ID
42 41
43 - ca_pid_t \*42 -
43 - int
44 - index
45 - PID index. Use -1 to disable.
44 46
45 - Undocumented.
46 47
47 48
48Description49Description
49-----------50-----------
50 51
51This ioctl is undocumented. Documentation is welcome.52.. note:: This ioctl is undocumented. Documentation is welcome.
52 53
53 54
54Return Value55Return Value
Documentation/media/uapi/dvb/ca_data_types.rst+6−6
@@ -7,7 +7,7 @@ CA Data Types · 6 unmodified lines
7*************7*************
8 8
9 9
10.. _ca-slot-info:10.. c:type:: ca_slot_info
11 11
12ca_slot_info_t12ca_slot_info_t
13==============13==============
@@ -31,7 +31,7 @@ ca_slot_info_t · 17 unmodified lines
31 } ca_slot_info_t;31 } ca_slot_info_t;
32 32
33 33
34.. _ca-descr-info:34.. c:type:: ca_descr_info
35 35
36ca_descr_info_t36ca_descr_info_t
37===============37===============
@@ -48,7 +48,7 @@ ca_descr_info_t · 10 unmodified lines
48 } ca_descr_info_t;48 } ca_descr_info_t;
49 49
50 50
51.. _ca-caps:51.. c:type:: ca_caps
52 52
53ca_caps_t53ca_caps_t
54=========54=========
@@ -64,7 +64,7 @@ ca_caps_t · 9 unmodified lines
64 } ca_cap_t;64 } ca_cap_t;
65 65
66 66
67.. _ca-msg:67.. c:type:: ca_msg
68 68
69ca_msg_t69ca_msg_t
70========70========
@@ -81,7 +81,7 @@ ca_msg_t · 10 unmodified lines
81 } ca_msg_t;81 } ca_msg_t;
82 82
83 83
84.. _ca-descr:84.. c:type:: ca_descr
85 85
86ca_descr_t86ca_descr_t
87==========87==========
@@ -96,7 +96,7 @@ ca_descr_t · 8 unmodified lines
96 } ca_descr_t;96 } ca_descr_t;
97 97
98 98
99.. _ca-pid:99.. c:type:: ca_pid
100 100
101ca-pid101ca-pid
102======102======
Documentation/media/uapi/dvb/dmx-add-pid.rst+6−22
@@ -15,34 +15,18 @@ DMX_ADD_PID · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
26 :stub-columns: 0
27 27
28 28``pid``
29 - .. row 129 PID number to be filtered.
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.
46 30
47 31
48Description32Description
Documentation/media/uapi/dvb/dmx-fclose.rst+4−12
@@ -15,23 +15,15 @@ DVB demux close() · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int close(int fd)18.. c:function:: int close(int fd)
19 :name: dvb-dmx-close
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
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 27
36Description28Description
37-----------29-----------
Documentation/media/uapi/dvb/dmx-fopen.rst+18−27
@@ -15,43 +15,34 @@ DVB demux open() · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int open(const char *deviceName, int flags)18.. c:function:: int open(const char *deviceName, int flags)
19 19 :name: dvb-dmx-open
20 20
21Arguments21Arguments
22---------22---------
23 23
24``name``
25 Name of specific DVB demux device.
26
27``flags``
28 A bit-wise OR of the following flags:
29
24.. flat-table::30.. flat-table::
25 :header-rows: 031 :header-rows: 0
26 :stub-columns: 032 :stub-columns: 0
27 33
34 -
35 - O_RDONLY
36 - read-only access
28 37
29 - .. row 138 -
30 39 - O_RDWR
31 - const char \*deviceName40 - read/write access
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
52 41
53 -42 -
54 - (blocking mode is the default)43 - O_NONBLOCK
44 - open in non-blocking mode
45 (blocking mode is the default)
55 46
56 47
57Description48Description
Documentation/media/uapi/dvb/dmx-fread.rst+10−24
@@ -15,35 +15,20 @@ DVB demux read() · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: size_t read(int fd, void *buf, size_t count)18.. c:function:: size_t read(int fd, void *buf, size_t count)
19 19 :name: dvb-dmx-read
20 20
21Arguments21Arguments
22---------22---------
23 23
24.. flat-table::24``fd``
25 :header-rows: 025 File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
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 26
35 - .. row 227 ``buf``
36 28 Buffer to be filled
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.
46 29
30``count``
31 Max number of bytes to read
47 32
48Description33Description
49-----------34-----------
@@ -53,10 +38,11 @@ data. The filtered data is transferred from the driver’s internal · 3 unmodified lines
53circular buffer to buf. The maximum amount of data to be transferred is38circular buffer to buf. The maximum amount of data to be transferred is
54implied by count.39implied by count.
55 40
56
57Return Value41Return Value
58------------42------------
59 43
44.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
45
60.. flat-table::46.. flat-table::
61 :header-rows: 047 :header-rows: 0
62 :stub-columns: 048 :stub-columns: 0
Documentation/media/uapi/dvb/dmx-fwrite.rst+10−24
@@ -15,35 +15,20 @@ DVB demux write() · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: ssize_t write(int fd, const void *buf, size_t count)18.. c:function:: ssize_t write(int fd, const void *buf, size_t count)
19 19 :name: dvb-dmx-write
20 20
21Arguments21Arguments
22---------22---------
23 23
24.. flat-table::24``fd``
25 :header-rows: 025 File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
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 26
35 - .. row 227``buf``
36 28 Buffer with data to be written
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.
46 29
30``count``
31 Number of bytes at the buffer
47 32
48Description33Description
49-----------34-----------
@@ -59,11 +44,12 @@ The amount of data to be transferred is implied by count. · 9 unmodified lines
59Return Value44Return Value
60------------45------------
61 46
47.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
48
62.. flat-table::49.. flat-table::
63 :header-rows: 050 :header-rows: 0
64 :stub-columns: 051 :stub-columns: 0
65 52
66
67 - .. row 153 - .. row 1
68 54
69 - ``EWOULDBLOCK``55 - ``EWOULDBLOCK``
Documentation/media/uapi/dvb/dmx-get-caps.rst+7−25
@@ -15,41 +15,23 @@ DMX_GET_CAPS · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int ioctl(fd, int request = DMX_GET_CAPS, dmx_caps_t *)18.. c:function:: int ioctl(fd, DMX_GET_CAPS, struct dmx_caps *caps)
19 19 :name: DMX_GET_CAPS
20 20
21Arguments21Arguments
22---------22---------
23 23
24.. flat-table::24``fd``
25 :header-rows: 025 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
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 26
37 - int request27``caps``
38 28 Pointer to struct :c:type:`dmx_caps`
39 - Equals DMX_GET_CAPS for this command.
40
41 - .. row 3
42
43 - dmx_caps_t *
44
45 - Undocumented.
46 29
47 30
48Description31Description
49-----------32-----------
50 33
51This ioctl is undocumented. Documentation is welcome.34.. note:: This ioctl is undocumented. Documentation is welcome.
52
53 35
54Return Value36Return Value
55------------37------------
Documentation/media/uapi/dvb/dmx-get-event.rst+6−22
@@ -15,34 +15,18 @@ DMX_GET_EVENT · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
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
44 27
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.
46 30
47 31
48Description32Description
Documentation/media/uapi/dvb/dmx-get-pes-pids.rst+7−24
@@ -15,40 +15,23 @@ DMX_GET_PES_PIDS · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int ioctl(fd, int request = DMX_GET_PES_PIDS, __u16[5])18.. c:function:: int ioctl(fd, DMX_GET_PES_PIDS, __u16 pids[5])
19 19 :name: DMX_GET_PES_PIDS
20 20
21Arguments21Arguments
22---------22---------
23 23
24.. flat-table::24``fd``
25 :header-rows: 025 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
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]
44 26
45 - Undocumented.27``pids``
28 Undocumented.
46 29
47 30
48Description31Description
49-----------32-----------
50 33
51This ioctl is undocumented. Documentation is welcome.34.. note:: This ioctl is undocumented. Documentation is welcome.
52 35
53 36
54Return Value37Return Value
Documentation/media/uapi/dvb/dmx-get-stc.rst+6−25
@@ -15,34 +15,17 @@ DMX_GET_STC · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int ioctl( int fd, int request = DMX_GET_STC, struct dmx_stc *stc)18.. c:function:: int ioctl( int fd, DMX_GET_STC, struct dmx_stc *stc)
19 19 :name: DMX_GET_STC
20 20
21Arguments21Arguments
22---------22---------
23 23
24.. flat-table::24``fd``
25 :header-rows: 025 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
26 :stub-columns: 0
27
28
29 - .. row 1
30
31 - int fd
32 26
33 - File descriptor returned by a previous call to open().27``stc``
34 28 Pointer to the location where the stc is to be stored.
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.
46 29
47 30
48Description31Description
@@ -63,8 +46,6 @@ On success 0 is returned, on error -1 and the ``errno`` variable is set · 14 unmodified lines
63appropriately. The generic error codes are described at the46appropriately. The generic error codes are described at the
64:ref:`Generic Error Codes <gen-errors>` chapter.47:ref:`Generic Error Codes <gen-errors>` chapter.
65 48
66
67
68.. flat-table::49.. flat-table::
69 :header-rows: 050 :header-rows: 0
70 :stub-columns: 051 :stub-columns: 0
Documentation/media/uapi/dvb/dmx-remove-pid.rst+6−22
@@ -15,34 +15,18 @@ DMX_REMOVE_PID · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
26 :stub-columns: 0
27 27
28 28``pid``
29 - .. row 129 PID of the PES filter to be removed.
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.
46 30
47 31
48Description32Description
Documentation/media/uapi/dvb/dmx-set-buffer-size.rst+6−23
@@ -15,35 +15,18 @@ DMX_SET_BUFFER_SIZE · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
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.
46 27
28``size``
29 Unsigned long size
47 30
48Description31Description
49-----------32-----------
Documentation/media/uapi/dvb/dmx-set-filter.rst+6−22
@@ -15,34 +15,18 @@ DMX_SET_FILTER · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int ioctl( int fd, int request = DMX_SET_FILTER, struct dmx_sct_filter_params *params)18.. c:function:: int ioctl( int fd, DMX_SET_FILTER, struct dmx_sct_filter_params *params)
19 19 :name: DMX_SET_FILTER
20 20
21Arguments21Arguments
22---------22---------
23 23
24.. flat-table::24``fd``
25 :header-rows: 025 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
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
42 26
43 - struct dmx_sct_filter_params \*params27``params``
44 28
45 - Pointer to structure containing filter parameters.29 Pointer to structure containing filter parameters.
46 30
47 31
48Description32Description
Documentation/media/uapi/dvb/dmx-set-pes-filter.rst+7−22
@@ -15,34 +15,19 @@ DMX_SET_PES_FILTER · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::
25 :header-rows: 0
26 :stub-columns: 0
27
28
29 - .. row 1
30
31 - int fd
32 25
33 - File descriptor returned by a previous call to open().26``fd``
27 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
34 28
35 - .. row 229``params``
36 30 Pointer to structure containing filter parameters.
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.
46 31
47 32
48Description33Description
@@ -61,7 +46,7 @@ On success 0 is returned, on error -1 and the ``errno`` variable is set · 12 unmodified lines
61appropriately. The generic error codes are described at the46appropriately. The generic error codes are described at the
62:ref:`Generic Error Codes <gen-errors>` chapter.47:ref:`Generic Error Codes <gen-errors>` chapter.
63 48
64 49.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
65 50
66.. flat-table::51.. flat-table::
67 :header-rows: 052 :header-rows: 0
Documentation/media/uapi/dvb/dmx-set-source.rst+7−22
@@ -15,40 +15,25 @@ DMX_SET_SOURCE · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
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
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::
25 :header-rows: 0
26 :stub-columns: 0
27 25
26``fd``
27 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
28 28
29 - .. row 129``src``
30 30 Undocumented.
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.
46 31
47 32
48Description33Description
49-----------34-----------
50 35
51This ioctl is undocumented. Documentation is welcome.36.. note:: This ioctl is undocumented. Documentation is welcome.
52 37
53 38
54Return Value39Return Value
Documentation/media/uapi/dvb/dmx-start.rst+5−19
@@ -15,29 +15,15 @@ DMX_START · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int ioctl( int fd, int request = DMX_START)18.. c:function:: int ioctl( int fd, DMX_START)
19 :name: DMX_START
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
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
41 27
42Description28Description
43-----------29-----------
@@ -53,7 +39,7 @@ On success 0 is returned, on error -1 and the ``errno`` variable is set · 9 unmodified lines
53appropriately. The generic error codes are described at the39appropriately. The generic error codes are described at the
54:ref:`Generic Error Codes <gen-errors>` chapter.40:ref:`Generic Error Codes <gen-errors>` chapter.
55 41
56 42.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
57 43
58.. flat-table::44.. flat-table::
59 :header-rows: 045 :header-rows: 0
Documentation/media/uapi/dvb/dmx-stop.rst+4−18
@@ -15,29 +15,15 @@ DMX_STOP · 14 unmodified lines
15Synopsis15Synopsis
16--------16--------
17 17
18.. cpp:function:: int ioctl( int fd, int request = DMX_STOP)18.. c:function:: int ioctl( int fd, DMX_STOP)
19 :name: DMX_STOP
19 20
20 21
21Arguments22Arguments
22---------23---------
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
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
41 27
42Description28Description
43-----------29-----------
Documentation/media/uapi/dvb/dmx_types.rst+15−25
@@ -6,14 +6,12 @@ · 5 unmodified lines
6Demux Data Types6Demux Data Types
7****************7****************
8 8
9
10.. _dmx-output-t:
11
12Output for the demux9Output for the demux
13====================10====================
14 11
12.. c:type:: dmx_output
15 13
16.. _dmx-output:14.. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
17 15
18.. flat-table:: enum dmx_output16.. flat-table:: enum dmx_output
19 :header-rows: 117 :header-rows: 1
@@ -65,12 +63,10 @@ Output for the demux · 45 unmodified lines
65 from the DMX device.63 from the DMX device.
66 64
67 65
68
69.. _dmx-input-t:
70
71dmx_input_t66dmx_input_t
72===========67===========
73 68
69.. c:type:: dmx_input
74 70
75.. code-block:: c71.. code-block:: c
76 72
@@ -81,11 +77,11 @@ dmx_input_t · 4 unmodified lines
81 } dmx_input_t;77 } dmx_input_t;
82 78
83 79
84.. _dmx-pes-type-t:
85
86dmx_pes_type_t80dmx_pes_type_t
87==============81==============
88 82
83.. c:type:: dmx_pes_type
84
89 85
90.. code-block:: c86.. code-block:: c
91 87
@@ -119,11 +115,10 @@ dmx_pes_type_t · 27 unmodified lines
119 } dmx_pes_type_t;115 } dmx_pes_type_t;
120 116
121 117
122.. _dmx-filter:
123
124struct dmx_filter118struct dmx_filter
125=================119=================
126 120
121.. c:type:: dmx_filter
127 122
128.. code-block:: c123.. code-block:: c
129 124
@@ -135,7 +130,7 @@ struct dmx_filter · 5 unmodified lines
135 } dmx_filter_t;130 } dmx_filter_t;
136 131
137 132
138.. _dmx-sct-filter-params:133.. c:type:: dmx_sct_filter_params
139 134
140struct dmx_sct_filter_params135struct dmx_sct_filter_params
141============================136============================
@@ -156,11 +151,10 @@ struct dmx_sct_filter_params · 14 unmodified lines
156 };151 };
157 152
158 153
159.. _dmx-pes-filter-params:
160
161struct dmx_pes_filter_params154struct dmx_pes_filter_params
162============================155============================
163 156
157.. c:type:: dmx_pes_filter_params
164 158
165.. code-block:: c159.. code-block:: c
166 160
@@ -174,11 +168,10 @@ struct dmx_pes_filter_params · 7 unmodified lines
174 };168 };
175 169
176 170
177.. _dmx-event:
178
179struct dmx_event171struct dmx_event
180================172================
181 173
174.. c:type:: dmx_event
182 175
183.. code-block:: c176.. code-block:: c
184 177
@@ -193,11 +186,10 @@ struct dmx_event · 8 unmodified lines
193 };186 };
194 187
195 188
196.. _dmx-stc:
197
198struct dmx_stc189struct dmx_stc
199==============190==============
200 191
192.. c:type:: dmx_stc
201 193
202.. code-block:: c194.. code-block:: c
203 195
@@ -208,11 +200,10 @@ struct dmx_stc · 4 unmodified lines
208 };200 };
209 201
210 202
211.. _dmx-caps:
212
213struct dmx_caps203struct dmx_caps
214===============204===============
215 205
206.. c:type:: dmx_caps
216 207
217.. code-block:: c208.. code-block:: c
218 209
@@ -222,15 +213,14 @@ struct dmx_caps · 3 unmodified lines
222 } dmx_caps_t;213 } dmx_caps_t;
223 214
224 215
225.. _dmx-source-t:216enum dmx_source
226 217===============
227enum dmx_source_t
228=================
229 218
219.. c:type:: dmx_source
230 220
231.. code-block:: c221.. code-block:: c
232 222
233 typedef enum {223 typedef enum dmx_source {
234 DMX_SOURCE_FRONT0 = 0,224 DMX_SOURCE_FRONT0 = 0,
235 DMX_SOURCE_FRONT1,225 DMX_SOURCE_FRONT1,
236 DMX_SOURCE_FRONT2,226 DMX_SOURCE_FRONT2,
Documentation/media/uapi/dvb/dtv-fe-stats.rst+1−1
@@ -1,6 +1,6 @@
1.. -*- coding: utf-8; mode: rst -*-1.. -*- coding: utf-8; mode: rst -*-
2 2
3.. _dtv-fe-stats:3.. c:type:: dtv_fe_stats
4 4
5*******************5*******************
6struct dtv_fe_stats6struct dtv_fe_stats
Documentation/media/uapi/dvb/dtv-properties.rst+1−1
@@ -1,6 +1,6 @@
1.. -*- coding: utf-8; mode: rst -*-1.. -*- coding: utf-8; mode: rst -*-
2 2
3.. _dtv-properties:3.. c:type:: dtv_properties
4 4
5*********************5*********************
6struct dtv_properties6struct dtv_properties
Documentation/media/uapi/dvb/dtv-property.rst+1−1
@@ -1,6 +1,6 @@
1.. -*- coding: utf-8; mode: rst -*-1.. -*- coding: utf-8; mode: rst -*-
2 2
3.. _dtv-property:3.. c:type:: dtv_property
4 4
5*******************5*******************
6struct dtv_property6struct dtv_property
Documentation/media/uapi/dvb/dtv-stats.rst+1−1
@@ -1,6 +1,6 @@
1.. -*- coding: utf-8; mode: rst -*-1.. -*- coding: utf-8; mode: rst -*-
2 2
3.. _dtv-stats:3.. c:type:: dtv_stats
4 4
5****************5****************
6struct dtv_stats6struct 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
17Signal statistics are provided via17Signal statistics are provided via
18:ref:`FE_GET_PROPERTY`.18:ref:`FE_GET_PROPERTY`.
19 19
20.. note:: Most statistics require the demodulator to be fully locked20.. note::
21
22 Most statistics require the demodulator to be fully locked
21 (e. g. with FE_HAS_LOCK bit set). See23 (e. g. with FE_HAS_LOCK bit set). See
22 :ref:`Frontend statistics indicators <frontend-stat-properties>` for24 :ref:`Frontend statistics indicators <frontend-stat-properties>` for
23 more details.25 more details.
Documentation/media/uapi/dvb/dvb-frontend-event.rst+1−1
@@ -1,6 +1,6 @@
1.. -*- coding: utf-8; mode: rst -*-1.. -*- coding: utf-8; mode: rst -*-
2 2
3.. _dvb-frontend-event:3.. c:type:: dvb_frontend_event
4 4
5***************5***************
6frontend events6frontend events
Documentation/media/uapi/dvb/dvb-frontend-parameters.rst+5−5
@@ -1,6 +1,6 @@
1.. -*- coding: utf-8; mode: rst -*-1.. -*- coding: utf-8; mode: rst -*-
2 2
3.. _dvb-frontend-parameters:3.. c:type:: dvb_frontend_parameters
4 4
5*******************5*******************
6frontend parameters6frontend parameters
@@ -49,7 +49,7 @@ frontends the ``frequency`` specifies the absolute frequency and is · 42 unmodified lines
49given in Hz.49given in Hz.
50 50
51 51
52.. _dvb-qpsk-parameters:52.. c:type:: dvb_qpsk_parameters
53 53
54QPSK parameters54QPSK parameters
55===============55===============
@@ -66,7 +66,7 @@ structure: · 10 unmodified lines
66 };66 };
67 67
68 68
69.. _dvb-qam-parameters:69.. c:type:: dvb_qam_parameters
70 70
71QAM parameters71QAM parameters
72==============72==============
@@ -83,7 +83,7 @@ for cable QAM frontend you use the ``dvb_qam_parameters`` structure: · 10 unmodified lines
83 };83 };
84 84
85 85
86.. _dvb-vsb-parameters:86.. c:type:: dvb_vsb_parameters
87 87
88VSB parameters88VSB parameters
89==============89==============
@@ -98,7 +98,7 @@ ATSC frontends are supported by the ``dvb_vsb_parameters`` structure: · 8 unmodified lines
98 };98 };
99 99
100 100
101.. _dvb-ofdm-parameters:101.. c:type:: dvb_ofdm_parameters
102 102
103OFDM parameters103OFDM parameters
104===============104===============
Documentation/media/uapi/dvb/dvbapi.rst+3−1
@@ -8,7 +8,9 @@ · 7 unmodified lines
8Part II - Digital TV API8Part II - Digital TV API
9########################9########################
10 10
11.. note:: This API is also known as **DVB API**, although it is generic11.. note::
12
13 This API is also known as **DVB API**, although it is generic
12 enough to support all digital TV standards.14 enough to support all digital TV standards.
13 15
14**Version 5.10**16**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
20breaking userspace. So, the decision was to deprecate the legacy20breaking userspace. So, the decision was to deprecate the legacy
21union/struct based approach, in favor of a properties set approach.21union/struct based approach, in favor of a properties set approach.
22 22
23.. note:: On Linux DVB API version 3, setting a frontend were done via23.. note::
24 :ref:`struct dvb_frontend_parameters <dvb-frontend-parameters>`.24
25 On Linux DVB API version 3, setting a frontend were done via
26 struct :c:type:`dvb_frontend_parameters`.
25 This got replaced on version 5 (also called "S2API", as this API were27 This got replaced on version 5 (also called "S2API", as this API were
26 added originally_enabled to provide support for DVB-S2), because the28 added originally_enabled to provide support for DVB-S2), because the
27 old API has a very limited support to new standards and new hardware.29 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
9In this section we would like to present some examples for using the DVB9In this section we would like to present some examples for using the DVB
10API.10API.
11 11
12..note:: This section is out of date, and the code below won't even12.. note::
13
14 This section is out of date, and the code below won't even
13 compile. Please refer to the15 compile. Please refer to the
14 `libdvbv5 <https://linuxtv.org/docs/libdvbv5/index.html>`__ for16 `libdvbv5 <https://linuxtv.org/docs/libdvbv5/index.html>`__ for
15 updated/recommended examples.17 updated/recommended examples.
Documentation/media/uapi/dvb/fe-bandwidth-t.rst+1−4
@@ -1,13 +1,10 @@
1.. -*- coding: utf-8; mode: rst -*-1.. -*- coding: utf-8; mode: rst -*-
2 2
3.. _fe-bandwidth-t:
4
5******************3******************
6Frontend bandwidth4Frontend bandwidth
7******************5******************
8 6
9 7.. c:type:: fe_bandwidth
10.. _fe-bandwidth:
11 8
12.. flat-table:: enum fe_bandwidth9.. flat-table:: enum fe_bandwidth
13 :header-rows: 110 :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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,12 +25,9 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_DISEQC_RECV_SLAVE_REPLY
29
30``argp``28``argp``
31 pointer to struct29 pointer to struct
32 :ref:`dvb_diseqc_slave_reply <dvb-diseqc-slave-reply>`30 :c:type:`dvb_diseqc_slave_reply`
33 31
34 32
35Description33Description
@@ -37,10 +35,9 @@ Description · 1 unmodified line
37 35
38Receives reply from a DiSEqC 2.0 command.36Receives reply from a DiSEqC 2.0 command.
39 37
40.. _dvb-diseqc-slave-reply:38.. c:type:: dvb_diseqc_slave_reply
41 39
42struct dvb_diseqc_slave_reply40.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
43-----------------------------
44 41
45.. flat-table:: struct dvb_diseqc_slave_reply42.. flat-table:: struct dvb_diseqc_slave_reply
46 :header-rows: 043 :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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,10 +25,6 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_DISEQC_RESET_OVERLOAD
29
30
31Description28Description
32===========29===========
33 30
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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,11 +25,8 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_DISEQC_SEND_BURST
29
30``tone``28``tone``
31 pointer to enum :ref:`fe_sec_mini_cmd <fe-sec-mini-cmd>`29 pointer to enum :c:type:`fe_sec_mini_cmd`
32 30
33 31
34Description32Description
@@ -41,12 +39,7 @@ read/write permissions. · 6 unmodified lines
41It provides support for what's specified at39It provides support for what's specified at
42`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>`__40`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>`__
43 41
44.. _fe-sec-mini-cmd-t:42.. c:type:: fe_sec_mini_cmd
45
46enum fe_sec_mini_cmd
47====================
48
49.. _fe-sec-mini-cmd:
50 43
51.. flat-table:: enum fe_sec_mini_cmd44.. flat-table:: enum fe_sec_mini_cmd
52 :header-rows: 145 :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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,12 +25,9 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_DISEQC_SEND_MASTER_CMD
29
30``argp``28``argp``
31 pointer to struct29 pointer to struct
32 :ref:`dvb_diseqc_master_cmd <dvb-diseqc-master-cmd>`30 :c:type:`dvb_diseqc_master_cmd`
33 31
34 32
35Description33Description
@@ -37,10 +35,10 @@ Description · 1 unmodified line
37 35
38Sends a DiSEqC command to the antenna subsystem.36Sends a DiSEqC command to the antenna subsystem.
39 37
40.. _dvb-diseqc-master-cmd:
41 38
42struct dvb_diseqc_master_cmd39.. c:type:: dvb_diseqc_master_cmd
43============================40
41.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
44 42
45.. flat-table:: struct dvb_diseqc_master_cmd43.. flat-table:: struct dvb_diseqc_master_cmd
46 :header-rows: 044 :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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
22=========23=========
23 24
24.. flat-table::25``fd``
25 :header-rows: 026 File descriptor returned by :c:func:`open() <dvb-fe-open>`.
26 :stub-columns: 0
27 27
28 28``cmd``
29 - .. row 129 Sends the specified raw cmd to the dish via DISEqC.
30
31 - unsigned long cmd
32
33 - sends the specified raw cmd to the dish via DISEqC.
34 30
35 31
36Description32Description
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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_ENABLE_HIGH_LNB_VOLTAGE
29
30``high``28``high``
31 Valid flags:29 Valid flags:
32 30
Documentation/media/uapi/dvb/fe-get-event.rst+8−27
@@ -11,43 +11,24 @@ Name · 10 unmodified lines
11 11
12FE_GET_EVENT12FE_GET_EVENT
13 13
14.. attention:: This ioctl is deprecated.
15
14 16
15Synopsis17Synopsis
16========18========
17 19
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
19 22
20 23
21Arguments24Arguments
22=========25=========
23 26
24.. flat-table::27``fd``
25 :header-rows: 028 File descriptor returned by :c:func:`open() <dvb-fe-open>`.
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
48 29
49 -30``ev``
50 - if any, is to be stored.31 Points to the location where the event, if any, is to be stored.
51 32
52 33
53Description34Description
Documentation/media/uapi/dvb/fe-get-frontend.rst+8−22
@@ -11,39 +11,25 @@ Name · 10 unmodified lines
11 11
12FE_GET_FRONTEND12FE_GET_FRONTEND
13 13
14.. attention:: This ioctl is deprecated.
15
14 16
15Synopsis17Synopsis
16========18========
17 19
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
19 22
20 23
21Arguments24Arguments
22=========25=========
23 26
24.. flat-table::27``fd``
25 :header-rows: 028 File descriptor returned by :c:func:`open() <dvb-fe-open>`.
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 29
44 - struct dvb_frontend_parameters \*p
45 30
46 - Points to parameters for tuning operation.31``p``
32 Points to parameters for tuning operation.
47 33
48 34
49Description35Description
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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,12 +25,9 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_GET_INFO
29
30``argp``28``argp``
31 pointer to struct struct29 pointer to struct struct
32 :ref:`dvb_frontend_info <dvb-frontend-info>`30 :c:type:`dvb_frontend_info`
33 31
34 32
35Description33Description
@@ -42,10 +40,9 @@ takes a pointer to dvb_frontend_info which is filled by the driver. · 6 unmodified lines
42When the driver is not compatible with this specification the ioctl40When the driver is not compatible with this specification the ioctl
43returns an error.41returns an error.
44 42
45.. _dvb-frontend-info:43.. c:type:: dvb_frontend_info
46 44
47struct dvb_frontend_info45.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
48========================
49 46
50.. flat-table:: struct dvb_frontend_info47.. flat-table:: struct dvb_frontend_info
51 :header-rows: 048 :header-rows: 0
@@ -137,18 +134,18 @@ struct dvb_frontend_info · 85 unmodified lines
137 134
138 - .. row 11135 - .. row 11
139 136
140 - enum :ref:`fe_caps <fe-caps>`137 - enum :c:type:`fe_caps`
141 138
142 - caps139 - caps
143 140
144 - Capabilities supported by the frontend141 - Capabilities supported by the frontend
145 142
146 143
147.. note:: The frequencies are specified in Hz for Terrestrial and Cable144.. note::
148 systems. They're specified in kHz for Satellite systems
149 145
146 The frequencies are specified in Hz for Terrestrial and Cable
147 systems. They're specified in kHz for Satellite systems
150 148
151.. _fe-caps-t:
152 149
153frontend capabilities150frontend capabilities
154=====================151=====================
@@ -156,8 +153,9 @@ frontend capabilities · 1 unmodified line
156Capabilities describe what a frontend can do. Some capabilities are153Capabilities describe what a frontend can do. Some capabilities are
157supported only on some specific frontend types.154supported only on some specific frontend types.
158 155
156.. c:type:: fe_caps
159 157
160.. _fe-caps:158.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
161 159
162.. flat-table:: enum fe_caps160.. flat-table:: enum fe_caps
163 :header-rows: 1161 :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
15Synopsis15Synopsis
16========16========
17 17
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
19 23
20 24
21Arguments25Arguments
@@ -24,11 +28,8 @@ Arguments · 2 unmodified lines
24``fd``28``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.29 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 30
27``request``
28 FE_SET_PROPERTY, FE_GET_PROPERTY
29
30``argp``31``argp``
31 pointer to struct :ref:`dtv_properties <dtv-properties>`32 pointer to struct :c:type:`dtv_properties`
32 33
33 34
34Description35Description
Documentation/media/uapi/dvb/fe-read-ber.rst+8−22
@@ -11,37 +11,23 @@ Name · 10 unmodified lines
11 11
12FE_READ_BER12FE_READ_BER
13 13
14.. attention:: This ioctl is deprecated.
15
14Synopsis16Synopsis
15========17========
16 18
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
18 21
19 22
20Arguments23Arguments
21=========24=========
22 25
23.. flat-table::26``fd``
24 :header-rows: 027 File descriptor returned by :c:func:`open() <dvb-fe-open>`.
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
43 28
44 - The bit error rate is stored into \*ber.29``ber``
30 The bit error rate is stored into \*ber.
45 31
46 32
47Description33Description
Documentation/media/uapi/dvb/fe-read-signal-strength.rst+7−24
@@ -11,40 +11,23 @@ Name · 10 unmodified lines
11 11
12FE_READ_SIGNAL_STRENGTH12FE_READ_SIGNAL_STRENGTH
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16========17========
17 18
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
19 21
20 22
21Arguments23Arguments
22=========24=========
23 25
24.. flat-table::26``fd``
25 :header-rows: 027 File descriptor returned by :c:func:`open() <dvb-fe-open>`.
26 :stub-columns: 0
27 28
28 29``strength``
29 - .. row 130 The signal strength value is stored into \*strength.
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.
48 31
49 32
50Description33Description
Documentation/media/uapi/dvb/fe-read-snr.rst+7−22
@@ -11,38 +11,23 @@ Name · 10 unmodified lines
11 11
12FE_READ_SNR12FE_READ_SNR
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16========17========
17 18
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
19 21
20 22
21Arguments23Arguments
22=========24=========
23 25
24.. flat-table::26``fd``
25 :header-rows: 027 File descriptor returned by :c:func:`open() <dvb-fe-open>`.
26 :stub-columns: 0
27 28
28 29``snr``
29 - .. row 130 The signal-to-noise ratio is stored into \*snr.
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.
46 31
47 32
48Description33Description
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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,12 +25,9 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_READ_STATUS
29
30``status``28``status``
31 pointer to a bitmask integer filled with the values defined by enum29 pointer to a bitmask integer filled with the values defined by enum
32 :ref:`fe_status <fe-status>`.30 :c:type:`fe_status`.
33 31
34 32
35Description33Description
@@ -40,20 +38,23 @@ used to check about the locking status of the frontend after being · 4 unmodified lines
40tuned. The ioctl takes a pointer to an integer where the status will be38tuned. The ioctl takes a pointer to an integer where the status will be
41written.39written.
42 40
43.. note:: The size of status is actually sizeof(enum fe_status), with41.. note::
42
43 The size of status is actually sizeof(enum fe_status), with
44 varies according with the architecture. This needs to be fixed in the44 varies according with the architecture. This needs to be fixed in the
45 future.45 future.
46 46
47 47
48.. _fe-status-t:
49
50int fe_status48int fe_status
51=============49=============
52 50
53The fe_status parameter is used to indicate the current state and/or51The fe_status parameter is used to indicate the current state and/or
54state changes of the frontend hardware. It is produced using the enum52state changes of the frontend hardware. It is produced using the enum
55:ref:`fe_status <fe-status>` values on a bitmask53:c:type:`fe_status` values on a bitmask
54
55.. c:type:: fe_status
56 56
57.. tabularcolumns:: |p{3.5cm}|p{14.0cm}|
57 58
58.. _fe-status:59.. _fe-status:
59 60
Documentation/media/uapi/dvb/fe-read-uncorrected-blocks.rst+7−24
@@ -11,40 +11,23 @@ Name · 10 unmodified lines
11 11
12FE_READ_UNCORRECTED_BLOCKS12FE_READ_UNCORRECTED_BLOCKS
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16========17========
17 18
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
19 21
20 22
21Arguments23Arguments
22=========24=========
23 25
24.. flat-table::26``fd``
25 :header-rows: 027 File descriptor returned by :c:func:`open() <dvb-fe-open>`.
26 :stub-columns: 0
27 28
28 29``ublocks``
29 - .. row 130 The total number of uncorrected blocks seen by the driver so far.
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.
48 31
49 32
50Description33Description
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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_SET_FRONTEND_TUNE_MODE
29
30``flags``28``flags``
31 Valid flags:29 Valid flags:
32 30
Documentation/media/uapi/dvb/fe-set-frontend.rst+8−23
@@ -6,6 +6,8 @@ · 5 unmodified lines
6FE_SET_FRONTEND6FE_SET_FRONTEND
7***************7***************
8 8
9.. attention:: This ioctl is deprecated.
10
9Name11Name
10====12====
11 13
@@ -15,35 +17,18 @@ FE_SET_FRONTEND · 3 unmodified lines
15Synopsis17Synopsis
16========18========
17 19
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
19 22
20 23
21Arguments24Arguments
22=========25=========
23 26
24.. flat-table::27``fd``
25 :header-rows: 028 File descriptor returned by :c:func:`open() <dvb-fe-open>`.
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
45 29
46 - Points to parameters for tuning operation.30``p``
31 Points to parameters for tuning operation.
47 32
48 33
49Description34Description
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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,11 +25,8 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_SET_TONE
29
30``tone``28``tone``
31 pointer to enum :ref:`fe_sec_tone_mode <fe-sec-tone-mode>`29 pointer to enum :c:type:`fe_sec_tone_mode`
32 30
33 31
34Description32Description
@@ -47,12 +45,7 @@ this is done using the DiSEqC ioctls. · 12 unmodified lines
47 capability of selecting the band. So, it is recommended that applications45 capability of selecting the band. So, it is recommended that applications
48 would change to SEC_TONE_OFF when the device is not used.46 would change to SEC_TONE_OFF when the device is not used.
49 47
50.. _fe-sec-tone-mode-t:48.. c:type:: fe_sec_tone_mode
51
52enum fe_sec_tone_mode
53=====================
54
55.. _fe-sec-tone-mode:
56 49
57.. flat-table:: enum fe_sec_tone_mode50.. flat-table:: enum fe_sec_tone_mode
58 :header-rows: 151 :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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,14 +25,11 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_SET_VOLTAGE
29
30``voltage``28``voltage``
31 pointer to enum :ref:`fe_sec_voltage <fe-sec-voltage>`29 pointer to enum :c:type:`fe_sec_voltage`
32 30
33 Valid values are described at enum31 Valid values are described at enum
34 :ref:`fe_sec_voltage <fe-sec-voltage>`.32 :c:type:`fe_sec_voltage`.
35 33
36 34
37Description35Description
Documentation/media/uapi/dvb/fe-type-t.rst+5−5
@@ -1,7 +1,5 @@
1.. -*- coding: utf-8; mode: rst -*-1.. -*- coding: utf-8; mode: rst -*-
2 2
3.. _fe-type-t:
4
5*************3*************
6Frontend type4Frontend type
7*************5*************
@@ -11,7 +9,9 @@ modulation used in transmission. The fontend types are given by · 3 unmodified lines
11fe_type_t type, defined as:9fe_type_t type, defined as:
12 10
13 11
14.. _fe-type:12.. c:type:: fe_type
13
14.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
15 15
16.. flat-table:: Frontend types16.. flat-table:: Frontend types
17 :header-rows: 117 :header-rows: 1
@@ -76,7 +76,7 @@ at the above, as they're supported via the new · 58 unmodified lines
76ioctl's, using the :ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>`76ioctl's, using the :ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>`
77parameter.77parameter.
78 78
79In the old days, struct :ref:`dvb_frontend_info <dvb-frontend-info>`79In the old days, struct :c:type:`dvb_frontend_info`
80used to contain ``fe_type_t`` field to indicate the delivery systems,80used to contain ``fe_type_t`` field to indicate the delivery systems,
81filled with either FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC. While this81filled with either FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC. While this
82is still filled to keep backward compatibility, the usage of this field82is 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
85:ref:`DTV_ENUM_DELSYS <DTV-ENUM-DELSYS>` instead.85:ref:`DTV_ENUM_DELSYS <DTV-ENUM-DELSYS>` instead.
86 86
87On devices that support multiple delivery systems, struct87On devices that support multiple delivery systems, struct
88:ref:`dvb_frontend_info <dvb-frontend-info>`::``fe_type_t`` is88:c:type:`dvb_frontend_info`::``fe_type_t`` is
89filled with the currently standard, as selected by the last call to89filled with the currently standard, as selected by the last call to
90:ref:`FE_SET_PROPERTY <FE_GET_PROPERTY>` using the90:ref:`FE_SET_PROPERTY <FE_GET_PROPERTY>` using the
91:ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>` property.91: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
68 68
69Specifies the frontend modulation type for delivery systems that69Specifies the frontend modulation type for delivery systems that
70supports more than one modulation type. The modulation can be one of the70supports more than one modulation type. The modulation can be one of the
71types defined by enum :ref:`fe_modulation <fe-modulation>`.71types defined by enum :c:type:`fe_modulation`.
72 72
73 73
74.. _fe-modulation-t:74.. c:type:: fe_modulation
75 75
76Modulation property76Modulation property
77-------------------77-------------------
@@ -82,8 +82,6 @@ enum contains the values used by the Kernel. Please note that not all · 4 unmodified lines
82modulations are supported by a given standard.82modulations are supported by a given standard.
83 83
84 84
85.. _fe-modulation:
86
87.. flat-table:: enum fe_modulation85.. flat-table:: enum fe_modulation
88 :header-rows: 186 :header-rows: 1
89 :stub-columns: 087 :stub-columns: 0
@@ -251,8 +249,7 @@ DTV_INVERSION · 161 unmodified lines
251 249
252Specifies if the frontend should do spectral inversion or not.250Specifies if the frontend should do spectral inversion or not.
253 251
254 252.. c:type:: fe_spectral_inversion
255.. _fe-spectral-inversion-t:
256 253
257enum fe_modulation: Frontend spectral inversion254enum fe_modulation: Frontend spectral inversion
258-----------------------------------------------255-----------------------------------------------
@@ -264,8 +261,6 @@ support, the DVB core will try to lock at the carrier first with · 5 unmodified lines
264inversion off. If it fails, it will try to enable inversion.261inversion off. If it fails, it will try to enable inversion.
265 262
266 263
267.. _fe-spectral-inversion:
268
269.. flat-table:: enum fe_modulation264.. flat-table:: enum fe_modulation
270 :header-rows: 1265 :header-rows: 1
271 :stub-columns: 0266 :stub-columns: 0
@@ -327,15 +322,11 @@ DTV_INNER_FEC · 55 unmodified lines
327 322
328Used cable/satellite transmissions. The acceptable values are:323Used cable/satellite transmissions. The acceptable values are:
329 324
330 325.. c:type:: fe_code_rate
331.. _fe-code-rate-t:
332 326
333enum fe_code_rate: type of the Forward Error Correction.327enum fe_code_rate: type of the Forward Error Correction.
334--------------------------------------------------------328--------------------------------------------------------
335 329
336
337.. _fe-code-rate:
338
339.. flat-table:: enum fe_code_rate330.. flat-table:: enum fe_code_rate
340 :header-rows: 1331 :header-rows: 1
341 :stub-columns: 0332 :stub-columns: 0
@@ -464,7 +455,7 @@ voltage has to be switched consistently to the DiSEqC commands as · 122 unmodified lines
464described in the DiSEqC spec.455described in the DiSEqC spec.
465 456
466 457
467.. _fe-sec-voltage:458.. c:type:: fe_sec_voltage
468 459
469.. flat-table:: enum fe_sec_voltage460.. flat-table:: enum fe_sec_voltage
470 :header-rows: 1461 :header-rows: 1
@@ -519,14 +510,12 @@ DTV_PILOT · 48 unmodified lines
519Sets DVB-S2 pilot510Sets DVB-S2 pilot
520 511
521 512
522.. _fe-pilot-t:513.. c:type:: fe_pilot
523 514
524fe_pilot type515fe_pilot type
525-------------516-------------
526 517
527 518
528.. _fe-pilot:
529
530.. flat-table:: enum fe_pilot519.. flat-table:: enum fe_pilot
531 :header-rows: 1520 :header-rows: 1
532 :stub-columns: 0521 :stub-columns: 0
@@ -572,14 +561,12 @@ DTV_ROLLOFF · 39 unmodified lines
572Sets DVB-S2 rolloff561Sets DVB-S2 rolloff
573 562
574 563
575.. _fe-rolloff-t:564.. c:type:: fe_rolloff
576 565
577fe_rolloff type566fe_rolloff type
578---------------567---------------
579 568
580 569
581.. _fe-rolloff:
582
583.. flat-table:: enum fe_rolloff570.. flat-table:: enum fe_rolloff
584 :header-rows: 1571 :header-rows: 1
585 :stub-columns: 0572 :stub-columns: 0
@@ -657,7 +644,7 @@ DTV_DELIVERY_SYSTEM · 71 unmodified lines
657Specifies the type of Delivery system644Specifies the type of Delivery system
658 645
659 646
660.. _fe-delivery-system-t:647.. c:type:: fe_delivery_system
661 648
662fe_delivery_system type649fe_delivery_system type
663-----------------------650-----------------------
@@ -665,8 +652,6 @@ fe_delivery_system type · 1 unmodified line
665Possible values:652Possible values:
666 653
667 654
668.. _fe-delivery-system:
669
670.. flat-table:: enum fe_delivery_system655.. flat-table:: enum fe_delivery_system
671 :header-rows: 1656 :header-rows: 1
672 :stub-columns: 0657 :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
1005Note: Truth table for ``DTV_ISDBT_SOUND_BROADCASTING`` and990Note: Truth table for ``DTV_ISDBT_SOUND_BROADCASTING`` and
1006``DTV_ISDBT_PARTIAL_RECEPTION`` and ``LAYER[A-C]_SEGMENT_COUNT``991``DTV_ISDBT_PARTIAL_RECEPTION`` and ``LAYER[A-C]_SEGMENT_COUNT``
1007 992
1008
1009.. _isdbt-layer_seg-cnt-table:993.. _isdbt-layer_seg-cnt-table:
1010 994
1011.. flat-table::995.. flat-table:: Truth table for ISDB-T Sound Broadcasting
1012 :header-rows: 0996 :header-rows: 0
1013 :stub-columns: 0997 :stub-columns: 0
1014 998
@@ -1099,9 +1083,9 @@ The values here are referring to what can be found in the · 84 unmodified lines
1099TMCC-structure, as shown in the table below.1083TMCC-structure, as shown in the table below.
1100 1084
1101 1085
1102.. _isdbt-layer-interleaving-table:1086.. c:type:: isdbt_layer_interleaving_table
1103 1087
1104.. flat-table::1088.. flat-table:: ISDB-T time interleaving modes
1105 :header-rows: 01089 :header-rows: 0
1106 :stub-columns: 01090 :stub-columns: 0
1107 1091
@@ -1234,8 +1218,9 @@ Reed Solomon (RS) frame mode. · 126 unmodified lines
1234 1218
1235Possible values are:1219Possible values are:
1236 1220
1221.. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
1237 1222
1238.. _atscmh-rs-frame-mode:1223.. c:type:: atscmh_rs_frame_mode
1239 1224
1240.. flat-table:: enum atscmh_rs_frame_mode1225.. flat-table:: enum atscmh_rs_frame_mode
1241 :header-rows: 11226 :header-rows: 1
@@ -1279,7 +1264,7 @@ Reed Solomon(RS) frame ensemble. · 37 unmodified lines
1279Possible values are:1264Possible values are:
1280 1265
1281 1266
1282.. _atscmh-rs-frame-ensemble:1267.. c:type:: atscmh_rs_frame_ensemble
1283 1268
1284.. flat-table:: enum atscmh_rs_frame_ensemble1269.. flat-table:: enum atscmh_rs_frame_ensemble
1285 :header-rows: 11270 :header-rows: 1
@@ -1328,7 +1313,7 @@ Reed Solomon (RS) code mode (primary). · 42 unmodified lines
1328Possible values are:1313Possible values are:
1329 1314
1330 1315
1331.. _atscmh-rs-code-mode:1316.. c:type:: atscmh_rs_code_mode
1332 1317
1333.. flat-table:: enum atscmh_rs_code_mode1318.. flat-table:: enum atscmh_rs_code_mode
1334 :header-rows: 11319 :header-rows: 1
@@ -1383,7 +1368,7 @@ DTV_ATSCMH_RS_CODE_MODE_SEC · 48 unmodified lines
1383Reed Solomon (RS) code mode (secondary).1368Reed Solomon (RS) code mode (secondary).
1384 1369
1385Possible values are the same as documented on enum1370Possible 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`:
1387 1372
1388 1373
1389.. _DTV-ATSCMH-SCCC-BLOCK-MODE:1374.. _DTV-ATSCMH-SCCC-BLOCK-MODE:
@@ -1395,8 +1380,9 @@ Series Concatenated Convolutional Code Block Mode. · 5 unmodified lines
1395 1380
1396Possible values are:1381Possible values are:
1397 1382
1383.. tabularcolumns:: |p{4.5cm}|p{13.0cm}|
1398 1384
1399.. _atscmh-sccc-block-mode:1385.. c:type:: atscmh_sccc_block_mode
1400 1386
1401.. flat-table:: enum atscmh_scc_block_mode1387.. flat-table:: enum atscmh_scc_block_mode
1402 :header-rows: 11388 :header-rows: 1
@@ -1447,7 +1433,7 @@ Series Concatenated Convolutional Code Rate. · 44 unmodified lines
1447Possible values are:1433Possible values are:
1448 1434
1449 1435
1450.. _atscmh-sccc-code-mode:1436.. c:type:: atscmh_sccc_code_mode
1451 1437
1452.. flat-table:: enum atscmh_sccc_code_mode1438.. flat-table:: enum atscmh_sccc_code_mode
1453 :header-rows: 11439 :header-rows: 1
@@ -1494,7 +1480,7 @@ DTV_ATSCMH_SCCC_CODE_MODE_B · 40 unmodified lines
1494Series Concatenated Convolutional Code Rate.1480Series Concatenated Convolutional Code Rate.
1495 1481
1496Possible values are the same as documented on enum1482Possible 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`.
1498 1484
1499 1485
1500.. _DTV-ATSCMH-SCCC-CODE-MODE-C:1486.. _DTV-ATSCMH-SCCC-CODE-MODE-C:
@@ -1505,7 +1491,7 @@ DTV_ATSCMH_SCCC_CODE_MODE_C · 4 unmodified lines
1505Series Concatenated Convolutional Code Rate.1491Series Concatenated Convolutional Code Rate.
1506 1492
1507Possible values are the same as documented on enum1493Possible 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`.
1509 1495
1510 1496
1511.. _DTV-ATSCMH-SCCC-CODE-MODE-D:1497.. _DTV-ATSCMH-SCCC-CODE-MODE-D:
@@ -1516,7 +1502,7 @@ DTV_ATSCMH_SCCC_CODE_MODE_D · 4 unmodified lines
1516Series Concatenated Convolutional Code Rate.1502Series Concatenated Convolutional Code Rate.
1517 1503
1518Possible values are the same as documented on enum1504Possible 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`.
1520 1506
1521 1507
1522.. _DTV-API-VERSION:1508.. _DTV-API-VERSION:
@@ -1533,7 +1519,7 @@ DTV_CODE_RATE_HP · 10 unmodified lines
1533================1519================
1534 1520
1535Used on terrestrial transmissions. The acceptable values are the ones1521Used on terrestrial transmissions. The acceptable values are the ones
1536described at :ref:`fe_transmit_mode_t <fe-transmit-mode-t>`.1522described at :c:type:`fe_transmit_mode`.
1537 1523
1538 1524
1539.. _DTV-CODE-RATE-LP:1525.. _DTV-CODE-RATE-LP:
@@ -1542,7 +1528,7 @@ DTV_CODE_RATE_LP · 2 unmodified lines
1542================1528================
1543 1529
1544Used on terrestrial transmissions. The acceptable values are the ones1530Used on terrestrial transmissions. The acceptable values are the ones
1545described at :ref:`fe_transmit_mode_t <fe-transmit-mode-t>`.1531described at :c:type:`fe_transmit_mode`.
1546 1532
1547 1533
1548.. _DTV-GUARD-INTERVAL:1534.. _DTV-GUARD-INTERVAL:
@@ -1553,14 +1539,12 @@ DTV_GUARD_INTERVAL · 4 unmodified lines
1553Possible values are:1539Possible values are:
1554 1540
1555 1541
1556.. _fe-guard-interval-t:1542.. c:type:: fe_guard_interval
1557 1543
1558Modulation guard interval1544Modulation guard interval
1559-------------------------1545-------------------------
1560 1546
1561 1547
1562.. _fe-guard-interval:
1563
1564.. flat-table:: enum fe_guard_interval1548.. flat-table:: enum fe_guard_interval
1565 :header-rows: 11549 :header-rows: 1
1566 :stub-columns: 01550 :stub-columns: 0
@@ -1682,13 +1666,12 @@ Specifies the number of carriers used by the standard. This is used only · 115 unmodified lines
1682on OFTM-based standards, e. g. DVB-T/T2, ISDB-T, DTMB1666on OFTM-based standards, e. g. DVB-T/T2, ISDB-T, DTMB
1683 1667
1684 1668
1685.. _fe-transmit-mode-t:1669.. c:type:: fe_transmit_mode
1686 1670
1687enum fe_transmit_mode: Number of carriers per channel1671enum fe_transmit_mode: Number of carriers per channel
1688-----------------------------------------------------1672-----------------------------------------------------
1689 1673
1690 1674.. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
1691.. _fe-transmit-mode:
1692 1675
1693.. flat-table:: enum fe_transmit_mode1676.. flat-table:: enum fe_transmit_mode
1694 :header-rows: 11677 :header-rows: 1
@@ -1799,14 +1782,12 @@ DTV_HIERARCHY · 104 unmodified lines
1799Frontend hierarchy1782Frontend hierarchy
1800 1783
1801 1784
1802.. _fe-hierarchy-t:1785.. c:type:: fe_hierarchy
1803 1786
1804Frontend hierarchy1787Frontend hierarchy
1805------------------1788------------------
1806 1789
1807 1790
1808.. _fe-hierarchy:
1809
1810.. flat-table:: enum fe_hierarchy1791.. flat-table:: enum fe_hierarchy
1811 :header-rows: 11792 :header-rows: 1
1812 :stub-columns: 01793 :stub-columns: 0
@@ -1912,7 +1893,7 @@ DTV_INTERLEAVING · 99 unmodified lines
1912Time interleaving to be used. Currently, used only on DTMB.1893Time interleaving to be used. Currently, used only on DTMB.
1913 1894
1914 1895
1915.. _fe-interleaving:1896.. c:type:: fe_interleaving
1916 1897
1917.. flat-table:: enum fe_interleaving1898.. flat-table:: enum fe_interleaving
1918 :header-rows: 11899 :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
20plus one metric per each carrier group (called "layer" on ISDB).20plus one metric per each carrier group (called "layer" on ISDB).
21 21
22So, in order to be consistent with other delivery systems, the first22So, in order to be consistent with other delivery systems, the first
23value at :ref:`dtv_property.stat.dtv_stats <dtv-stats>` array refers23value at :c:type:`dtv_property.stat.dtv_stats <dtv_stats>` array refers
24to the global metric. The other elements of the array represent each24to the global metric. The other elements of the array represent each
25layer, starting from layer A(index 1), layer B (index 2) and so on.25layer, starting from layer A(index 1), layer B (index 2) and so on.
26 26
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
29Data types and ioctl definitions can be accessed by including29Data types and ioctl definitions can be accessed by including
30``linux/dvb/frontend.h`` in your application.30``linux/dvb/frontend.h`` in your application.
31 31
32.. note:: Transmission via the internet (DVB-IP) is not yet handled by this32.. note::
33
34 Transmission via the internet (DVB-IP) is not yet handled by this
33 API but a future extension is possible.35 API but a future extension is possible.
34 36
35On Satellite systems, the API support for the Satellite Equipment37On 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
20 #include <unistd.h>20 #include <unistd.h>
21 21
22 22
23.. cpp:function:: int close( int fd )23.. c:function:: int close( int fd )
24 24 :name: dvb-fe-close
25 25
26Arguments26Arguments
27=========27=========
28 28
29``fd``29``fd``
30 File descriptor returned by :ref:`open() <func-open>`.30 File descriptor returned by :c:func:`open() <dvb-fe-open>`.
31 31
32 32
33Description33Description
Documentation/media/uapi/dvb/frontend_f_open.rst+2−2
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
20 #include <fcntl.h>20 #include <fcntl.h>
21 21
22 22
23.. cpp:function:: int open( const char *device_name, int flags )23.. c:function:: int open( const char *device_name, int flags )
24 24 :name: dvb-fe-open
25 25
26Arguments26Arguments
27=========27=========
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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,11 +25,8 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_SET_TONE
29
30``net_if``28``net_if``
31 pointer to struct :ref:`dvb_net_if <dvb-net-if>`29 pointer to struct :c:type:`dvb_net_if`
32 30
33 31
34Description32Description
@@ -40,16 +38,10 @@ ULE) and the interface number for the new interface to be created. When · 5 unmodified lines
40the system call successfully returns, a new virtual network interface is38the system call successfully returns, a new virtual network interface is
41created.39created.
42 40
43The struct :ref:`dvb_net_if <dvb-net-if>`::ifnum field will be41The struct :c:type:`dvb_net_if`::ifnum field will be
44filled with the number of the created interface.42filled with the number of the created interface.
45 43
46 44.. c:type:: dvb_net_if
47.. _dvb-net-if-t:
48
49struct dvb_net_if description
50=============================
51
52.. _dvb-net-if:
53 45
54.. flat-table:: struct dvb_net_if46.. flat-table:: struct dvb_net_if
55 :header-rows: 147 :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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,19 +25,16 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_SET_TONE
29
30``net_if``28``net_if``
31 pointer to struct :ref:`dvb_net_if <dvb-net-if>`29 pointer to struct :c:type:`dvb_net_if`
32 30
33 31
34Description32Description
35===========33===========
36 34
37The NET_GET_IF ioctl uses the interface number given by the struct35The 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 of36:c:type:`dvb_net_if`::ifnum field and fills the content of
39struct :ref:`dvb_net_if <dvb-net-if>` with the packet ID and37struct :c:type:`dvb_net_if` with the packet ID and
40encapsulation type used on such interface. If the interface was not38encapsulation type used on such interface. If the interface was not
41created yet with :ref:`NET_ADD_IF <net>`, it will return -1 and fill39created yet with :ref:`NET_ADD_IF <net>`, it will return -1 and fill
42the ``errno`` with ``EINVAL`` error code.40the ``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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <frontend_f_open>`.26 File descriptor returned by :ref:`open() <frontend_f_open>`.
26 27
27``request``
28 FE_SET_TONE
29
30``net_if``28``net_if``
31 number of the interface to be removed29 number of the interface to be removed
32 30
Documentation/media/uapi/dvb/video-clear-buffer.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_CLEAR_BUFFER12VIDEO_CLEAR_BUFFER
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-command.rst+33−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_COMMAND12VIDEO_COMMAND
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -57,6 +59,36 @@ subset of the ``v4l2_decoder_cmd`` struct, so refer to the · 35 unmodified lines
57:ref:`VIDIOC_DECODER_CMD` documentation for59:ref:`VIDIOC_DECODER_CMD` documentation for
58more information.60more information.
59 61
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
60 92
61Return Value93Return Value
62------------94------------
Documentation/media/uapi/dvb/video-continue.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_CONTINUE12VIDEO_CONTINUE
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(fd, int request = VIDEO_CONTINUE)19.. c:function:: int ioctl(fd, VIDEO_CONTINUE)
20 :name: VIDEO_CONTINUE
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-fast-forward.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_FAST_FORWARD12VIDEO_FAST_FORWARD
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-fclose.rst+2−1
@@ -11,11 +11,12 @@ Name · 10 unmodified lines
11 11
12dvb video close()12dvb video close()
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int close(int fd)19.. c:function:: int close(int fd)
19 20
20 21
21Arguments22Arguments
Documentation/media/uapi/dvb/video-fopen.rst+4−1
@@ -11,11 +11,12 @@ Name · 10 unmodified lines
11 11
12dvb video open()12dvb video open()
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int open(const char *deviceName, int flags)19.. c:function:: int open(const char *deviceName, int flags)
19 20
20 21
21Arguments22Arguments
@@ -82,6 +83,8 @@ return an error code. · 60 unmodified lines
82Return Value83Return Value
83------------84------------
84 85
86.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
87
85.. flat-table::88.. flat-table::
86 :header-rows: 089 :header-rows: 0
87 :stub-columns: 090 :stub-columns: 0
Documentation/media/uapi/dvb/video-freeze.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_FREEZE12VIDEO_FREEZE
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(fd, int request = VIDEO_FREEZE)19.. c:function:: int ioctl(fd, VIDEO_FREEZE)
20 :name: VIDEO_FREEZE
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-fwrite.rst+2−1
@@ -11,11 +11,12 @@ Name · 10 unmodified lines
11 11
12dvb video write()12dvb video write()
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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)
19 20
20 21
21Arguments22Arguments
Documentation/media/uapi/dvb/video-get-capabilities.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_GET_CAPABILITIES12VIDEO_GET_CAPABILITIES
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-get-event.rst+20−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_GET_EVENT12VIDEO_GET_EVENT
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -62,6 +64,23 @@ included in the exceptfds argument, and for poll(), POLLPRI should be · 40 unmodified lines
62specified as the wake-up condition. Read-only permissions are sufficient64specified as the wake-up condition. Read-only permissions are sufficient
63for this ioctl call.65for this ioctl call.
64 66
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 };
65 84
66Return Value85Return Value
67------------86------------
Documentation/media/uapi/dvb/video-get-frame-count.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_GET_FRAME_COUNT12VIDEO_GET_FRAME_COUNT
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-get-frame-rate.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_GET_FRAME_RATE12VIDEO_GET_FRAME_RATE
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-get-navi.rst+11−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_GET_NAVI12VIDEO_GET_NAVI
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -52,6 +54,14 @@ This ioctl returns navigational information from the DVD stream. This is · 30 unmodified lines
52especially needed if an encoded stream has to be decoded by the54especially needed if an encoded stream has to be decoded by the
53hardware.55hardware.
54 56
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;
55 65
56Return Value66Return Value
57------------67------------
Documentation/media/uapi/dvb/video-get-pts.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_GET_PTS12VIDEO_GET_PTS
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-get-size.rst+13−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_GET_SIZE12VIDEO_GET_SIZE
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -50,6 +52,16 @@ Description · 28 unmodified lines
50 52
51This ioctl returns the size and aspect ratio.53This ioctl returns the size and aspect ratio.
52 54
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
53 65
54Return Value66Return Value
55------------67------------
Documentation/media/uapi/dvb/video-get-status.rst+14−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_GET_STATUS12VIDEO_GET_STATUS
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -51,6 +53,17 @@ Description · 29 unmodified lines
51This ioctl call asks the Video Device to return the current status of53This ioctl call asks the Video Device to return the current status of
52the device.54the device.
53 55
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 };
54 67
55Return Value68Return Value
56------------69------------
Documentation/media/uapi/dvb/video-play.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_PLAY12VIDEO_PLAY
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
18.. cpp:function:: int ioctl(fd, int request = VIDEO_PLAY)19.. c:function:: int ioctl(fd, VIDEO_PLAY)
20 :name: VIDEO_PLAY
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-select-source.rst+13−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SELECT_SOURCE12VIDEO_SELECT_SOURCE
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -56,6 +58,16 @@ This ioctl call informs the video device which source shall be used for · 34 unmodified lines
56the input data. The possible sources are demux or memory. If memory is58the input data. The possible sources are demux or memory. If memory is
57selected, the data is fed to the video device through the write command.59selected, the data is fed to the video device through the write command.
58 60
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;
59 71
60Return Value72Return Value
61------------73------------
Documentation/media/uapi/dvb/video-set-attributes.rst+19−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SET_ATTRIBUTES12VIDEO_SET_ATTRIBUTES
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -53,6 +55,22 @@ information about the stream. Some hardware may not need this · 31 unmodified lines
53information, but the call also tells the hardware to prepare for DVD55information, but the call also tells the hardware to prepare for DVD
54playback.56playback.
55 57
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
56 74
57Return Value75Return Value
58------------76------------
Documentation/media/uapi/dvb/video-set-blank.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SET_BLANK12VIDEO_SET_BLANK
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-set-display-format.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SET_DISPLAY_FORMAT12VIDEO_SET_DISPLAY_FORMAT
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-set-format.rst+12−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SET_FORMAT12VIDEO_SET_FORMAT
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -52,6 +54,15 @@ This ioctl sets the screen format (aspect ratio) of the connected output · 30 unmodified lines
52device (TV) so that the output of the decoder can be adjusted54device (TV) so that the output of the decoder can be adjusted
53accordingly.55accordingly.
54 56
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;
55 66
56Return Value67Return Value
57------------68------------
Documentation/media/uapi/dvb/video-set-highlight.rst+27−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SET_HIGHLIGHT12VIDEO_SET_HIGHLIGHT
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -51,6 +53,30 @@ Description · 29 unmodified lines
51This ioctl sets the SPU highlight information for the menu access of a53This ioctl sets the SPU highlight information for the menu access of a
52DVD.54DVD.
53 55
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
54 80
55Return Value81Return Value
56------------82------------
Documentation/media/uapi/dvb/video-set-id.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SET_ID12VIDEO_SET_ID
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-set-spu-palette.rst+11−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SET_SPU_PALETTE12VIDEO_SET_SPU_PALETTE
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -50,6 +52,14 @@ Description · 28 unmodified lines
50 52
51This ioctl sets the SPU color palette.53This ioctl sets the SPU color palette.
52 54
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;
53 63
54Return Value64Return Value
55------------65------------
Documentation/media/uapi/dvb/video-set-spu.rst+12−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SET_SPU12VIDEO_SET_SPU
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
@@ -52,6 +54,15 @@ Description · 30 unmodified lines
52This ioctl activates or deactivates SPU decoding in a DVD input stream.54This ioctl activates or deactivates SPU decoding in a DVD input stream.
53It can only be used, if the driver is able to handle a DVD stream.55It can only be used, if the driver is able to handle a DVD stream.
54 56
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
55 66
56Return Value67Return Value
57------------68------------
Documentation/media/uapi/dvb/video-set-streamtype.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SET_STREAMTYPE12VIDEO_SET_STREAMTYPE
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-set-system.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SET_SYSTEM12VIDEO_SET_SYSTEM
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-slowmotion.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_SLOWMOTION12VIDEO_SLOWMOTION
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-stillpicture.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_STILLPICTURE12VIDEO_STILLPICTURE
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-stop.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_STOP12VIDEO_STOP
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video-try-command.rst+3−1
@@ -11,11 +11,13 @@ Name · 10 unmodified lines
11 11
12VIDEO_TRY_COMMAND12VIDEO_TRY_COMMAND
13 13
14.. attention:: This ioctl is deprecated.
14 15
15Synopsis16Synopsis
16--------17--------
17 18
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
19 21
20 22
21Arguments23Arguments
Documentation/media/uapi/dvb/video_types.rst+8−8
@@ -95,7 +95,7 @@ representing the state of video playback. · 94 unmodified lines
95 } video_play_state_t;95 } video_play_state_t;
96 96
97 97
98.. _video-command:98.. c:type:: video_command
99 99
100struct video_command100struct video_command
101====================101====================
@@ -146,7 +146,7 @@ video_size_t · 44 unmodified lines
146 } video_size_t;146 } video_size_t;
147 147
148 148
149.. _video-event:149.. c:type:: video_event
150 150
151struct video_event151struct video_event
152==================152==================
@@ -172,7 +172,7 @@ VIDEO_GET_EVENT call. · 19 unmodified lines
172 };172 };
173 173
174 174
175.. _video-status:175.. c:type:: video_status
176 176
177struct video_status177struct video_status
178===================178===================
@@ -203,7 +203,7 @@ case the source video format is not the same as the format of the output · 24 unmodified lines
203device.203device.
204 204
205 205
206.. _video-still-picture:206.. c:type:: video_still_picture
207 207
208struct video_still_picture208struct video_still_picture
209==========================209==========================
@@ -271,7 +271,7 @@ output. The following system types can be set: · 61 unmodified lines
271 } video_system_t;271 } video_system_t;
272 272
273 273
274.. _video-highlight:274.. c:type:: video_highlight
275 275
276struct video_highlight276struct video_highlight
277======================277======================
@@ -302,7 +302,7 @@ information. The call expects the following format for that information: · 24 unmodified lines
302 } video_highlight_t;302 } video_highlight_t;
303 303
304 304
305.. _video-spu:305.. c:type:: video_spu
306 306
307struct video_spu307struct video_spu
308================308================
@@ -320,7 +320,7 @@ to the following format: · 11 unmodified lines
320 } video_spu_t;320 } video_spu_t;
321 321
322 322
323.. _video-spu-palette:323.. c:type:: video_spu_palette
324 324
325struct video_spu_palette325struct video_spu_palette
326========================326========================
@@ -338,7 +338,7 @@ VIDEO_SPU_PALETTE: · 11 unmodified lines
338 } video_spu_palette_t;338 } video_spu_palette_t;
339 339
340 340
341.. _video-navi-pack:341.. c:type:: video_navi_pack
342 342
343struct video_navi_pack343struct video_navi_pack
344======================344======================
Documentation/media/uapi/gen-errors.rst+2−0
@@ -9,6 +9,8 @@ Generic Error Codes · 8 unmodified lines
9 9
10.. _gen-errors:10.. _gen-errors:
11 11
12.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
13
12.. flat-table:: Generic error codes14.. flat-table:: Generic error codes
13 :header-rows: 015 :header-rows: 0
14 :stub-columns: 016 :stub-columns: 0
Documentation/media/uapi/mediactl/media-func-close.rst+3−3
@@ -20,14 +20,14 @@ Synopsis · 19 unmodified lines
20 #include <unistd.h>20 #include <unistd.h>
21 21
22 22
23.. cpp:function:: int close( int fd )23.. c:function:: int close( int fd )
24 24 :name: mc-close
25 25
26Arguments26Arguments
27=========27=========
28 28
29``fd``29``fd``
30 File descriptor returned by :ref:`open() <func-open>`.30 File descriptor returned by :c:func:`open() <mc-open>`.
31 31
32 32
33Description33Description
Documentation/media/uapi/mediactl/media-func-ioctl.rst+3−3
@@ -20,14 +20,14 @@ Synopsis · 19 unmodified lines
20 #include <sys/ioctl.h>20 #include <sys/ioctl.h>
21 21
22 22
23.. cpp:function:: int ioctl( int fd, int request, void *argp )23.. c:function:: int ioctl( int fd, int request, void *argp )
24 24 :name: mc-ioctl
25 25
26Arguments26Arguments
27=========27=========
28 28
29``fd``29``fd``
30 File descriptor returned by :ref:`open() <func-open>`.30 File descriptor returned by :c:func:`open() <mc-open>`.
31 31
32``request``32``request``
33 Media ioctl request code as defined in the media.h header file, for33 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
20 #include <fcntl.h>20 #include <fcntl.h>
21 21
22 22
23.. cpp:function:: int open( const char *device_name, int flags )23.. c:function:: int open( const char *device_name, int flags )
24 24 :name: mc-open
25 25
26Arguments26Arguments
27=========27=========
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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <media-func-open>`.26 File descriptor returned by :ref:`open() <media-func-open>`.
26 27
27``request``
28 MEDIA_IOC_DEVICE_INFO
29
30``argp``28``argp``
31 29
32 30
@@ -35,12 +33,14 @@ Description · 2 unmodified lines
35 33
36All media devices must support the ``MEDIA_IOC_DEVICE_INFO`` ioctl. To34All media devices must support the ``MEDIA_IOC_DEVICE_INFO`` ioctl. To
37query device information, applications call the ioctl with a pointer to35query device information, applications call the ioctl with a pointer to
38a struct :ref:`media_device_info <media-device-info>`. The driver36a struct :c:type:`media_device_info`. The driver
39fills the structure and returns the information to the application. The37fills the structure and returns the information to the application. The
40ioctl never fails.38ioctl never fails.
41 39
42 40
43.. _media-device-info:41.. c:type:: media_device_info
42
43.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
44 44
45.. flat-table:: struct media_device_info45.. flat-table:: struct media_device_info
46 :header-rows: 046 :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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <media-func-open>`.26 File descriptor returned by :ref:`open() <media-func-open>`.
26 27
27``request``
28 MEDIA_IOC_ENUM_ENTITIES
29
30``argp``28``argp``
31 29
32 30
@@ -34,7 +32,7 @@ Description · 1 unmodified line
34===========32===========
35 33
36To query the attributes of an entity, applications set the id field of a34To query the attributes of an entity, applications set the id field of a
37struct :ref:`media_entity_desc <media-entity-desc>` structure and35struct :c:type:`media_entity_desc` structure and
38call the MEDIA_IOC_ENUM_ENTITIES ioctl with a pointer to this36call the MEDIA_IOC_ENUM_ENTITIES ioctl with a pointer to this
39structure. The driver fills the rest of the structure or returns an37structure. The driver fills the rest of the structure or returns an
40EINVAL error code when the id is invalid.38EINVAL error code when the id is invalid.
@@ -51,7 +49,9 @@ enumerate entities by calling MEDIA_IOC_ENUM_ENTITIES with increasing · 10 unmodified lines
51id's until they get an error.49id's until they get an error.
52 50
53 51
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}|
55 55
56.. flat-table:: struct media_entity_desc56.. flat-table:: struct media_entity_desc
57 :header-rows: 057 :header-rows: 0
@@ -195,5 +195,5 @@ appropriately. The generic error codes are described at the · 137 unmodified lines
195:ref:`Generic Error Codes <gen-errors>` chapter.195:ref:`Generic Error Codes <gen-errors>` chapter.
196 196
197EINVAL197EINVAL
198 The struct :ref:`media_entity_desc <media-entity-desc>` ``id``198 The struct :c:type:`media_entity_desc` ``id``
199 references a non-existing entity.199 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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <media-func-open>`.26 File descriptor returned by :ref:`open() <media-func-open>`.
26 27
27``request``
28 MEDIA_IOC_ENUM_LINKS
29
30``argp``28``argp``
31 29
32 30
@@ -34,10 +32,10 @@ Description · 1 unmodified line
34===========32===========
35 33
36To enumerate pads and/or links for a given entity, applications set the34To enumerate pads and/or links for a given entity, applications set the
37entity field of a struct :ref:`media_links_enum <media-links-enum>`35entity field of a struct :c:type:`media_links_enum`
38structure and initialize the struct36structure and initialize the struct
39:ref:`media_pad_desc <media-pad-desc>` and struct37:c:type:`media_pad_desc` and struct
40:ref:`media_link_desc <media-link-desc>` structure arrays pointed by38:c:type:`media_link_desc` structure arrays pointed by
41the ``pads`` and ``links`` fields. They then call the39the ``pads`` and ``links`` fields. They then call the
42MEDIA_IOC_ENUM_LINKS ioctl with a pointer to this structure.40MEDIA_IOC_ENUM_LINKS ioctl with a pointer to this structure.
43 41
@@ -55,7 +53,9 @@ Only forward links that originate at one of the entity's source pads are · 11 unmodified lines
55returned during the enumeration process.53returned during the enumeration process.
56 54
57 55
58.. _media-links-enum:56.. c:type:: media_links_enum
57
58.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
59 59
60.. flat-table:: struct media_links_enum60.. flat-table:: struct media_links_enum
61 :header-rows: 061 :header-rows: 0
@@ -73,7 +73,7 @@ returned during the enumeration process. · 11 unmodified lines
73 73
74 - .. row 274 - .. row 2
75 75
76 - struct :ref:`media_pad_desc <media-pad-desc>`76 - struct :c:type:`media_pad_desc`
77 77
78 - \*\ ``pads``78 - \*\ ``pads``
79 79
@@ -82,7 +82,7 @@ returned during the enumeration process. · 2 unmodified lines
82 82
83 - .. row 383 - .. row 3
84 84
85 - struct :ref:`media_link_desc <media-link-desc>`85 - struct :c:type:`media_link_desc`
86 86
87 - \*\ ``links``87 - \*\ ``links``
88 88
@@ -91,7 +91,9 @@ returned during the enumeration process. · 2 unmodified lines
91 91
92 92
93 93
94.. _media-pad-desc:94.. c:type:: media_pad_desc
95
96.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
95 97
96.. flat-table:: struct media_pad_desc98.. flat-table:: struct media_pad_desc
97 :header-rows: 099 :header-rows: 0
@@ -125,7 +127,9 @@ returned during the enumeration process. · 27 unmodified lines
125 127
126 128
127 129
128.. _media-link-desc:130.. c:type:: media_link_desc
131
132.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
129 133
130.. flat-table:: struct media_link_desc134.. flat-table:: struct media_link_desc
131 :header-rows: 0135 :header-rows: 0
@@ -135,7 +139,7 @@ returned during the enumeration process. · 3 unmodified lines
135 139
136 - .. row 1140 - .. row 1
137 141
138 - struct :ref:`media_pad_desc <media-pad-desc>`142 - struct :c:type:`media_pad_desc`
139 143
140 - ``source``144 - ``source``
141 145
@@ -143,7 +147,7 @@ returned during the enumeration process. · 1 unmodified line
143 147
144 - .. row 2148 - .. row 2
145 149
146 - struct :ref:`media_pad_desc <media-pad-desc>`150 - struct :c:type:`media_pad_desc`
147 151
148 - ``sink``152 - ``sink``
149 153
@@ -166,5 +170,5 @@ appropriately. The generic error codes are described at the · 16 unmodified lines
166:ref:`Generic Error Codes <gen-errors>` chapter.170:ref:`Generic Error Codes <gen-errors>` chapter.
167 171
168EINVAL172EINVAL
169 The struct :ref:`media_links_enum <media-links-enum>` ``id``173 The struct :c:type:`media_links_enum` ``id``
170 references a non-existing entity.174 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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <media-func-open>`.26 File descriptor returned by :ref:`open() <media-func-open>`.
26 27
27``request``
28 MEDIA_IOC_G_TOPOLOGY
29
30``argp``28``argp``
31 29
32 30
@@ -35,7 +33,7 @@ Description · 2 unmodified lines
35 33
36The typical usage of this ioctl is to call it twice. On the first call,34The typical usage of this ioctl is to call it twice. On the first call,
37the structure defined at struct35the structure defined at struct
38:ref:`media_v2_topology <media-v2-topology>` should be zeroed. At36:c:type:`media_v2_topology` should be zeroed. At
39return, if no errors happen, this ioctl will return the37return, if no errors happen, this ioctl will return the
40``topology_version`` and the total number of entities, interfaces, pads38``topology_version`` and the total number of entities, interfaces, pads
41and links.39and links.
@@ -48,8 +46,9 @@ other values untouched. · 6 unmodified lines
48If the ``topology_version`` remains the same, the ioctl should fill the46If the ``topology_version`` remains the same, the ioctl should fill the
49desired arrays with the media graph elements.47desired arrays with the media graph elements.
50 48
49.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
51 50
52.. _media-v2-topology:51.. c:type:: media_v2_topology
53 52
54.. flat-table:: struct media_v2_topology53.. flat-table:: struct media_v2_topology
55 :header-rows: 054 :header-rows: 0
@@ -142,8 +141,9 @@ desired arrays with the media graph elements. · 86 unmodified lines
142 won't store the links. It will just update ``num_links``141 won't store the links. It will just update ``num_links``
143 142
144 143
144.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
145 145
146.. _media-v2-entity:146.. c:type:: media_v2_entity
147 147
148.. flat-table:: struct media_v2_entity148.. flat-table:: struct media_v2_entity
149 :header-rows: 0149 :header-rows: 0
@@ -185,8 +185,9 @@ desired arrays with the media graph elements. · 35 unmodified lines
185 this array to zero.185 this array to zero.
186 186
187 187
188.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
188 189
189.. _media-v2-interface:190.. c:type:: media_v2_interface
190 191
191.. flat-table:: struct media_v2_interface192.. flat-table:: struct media_v2_interface
192 :header-rows: 0193 :header-rows: 0
@@ -233,11 +234,12 @@ desired arrays with the media graph elements. · 40 unmodified lines
233 - ``devnode``234 - ``devnode``
234 235
235 - Used only for device node interfaces. See236 - Used only for device node interfaces. See
236 :ref:`media-v2-intf-devnode` for details..237 :c:type:`media_v2_intf_devnode` for details..
237 238
238 239
240.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
239 241
240.. _media-v2-intf-devnode:242.. c:type:: media_v2_intf_devnode
241 243
242.. flat-table:: struct media_v2_interface244.. flat-table:: struct media_v2_interface
243 :header-rows: 0245 :header-rows: 0
@@ -262,8 +264,9 @@ desired arrays with the media graph elements. · 18 unmodified lines
262 - Device node minor number.264 - Device node minor number.
263 265
264 266
267.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
265 268
266.. _media-v2-pad:269.. c:type:: media_v2_pad
267 270
268.. flat-table:: struct media_v2_pad271.. flat-table:: struct media_v2_pad
269 :header-rows: 0272 :header-rows: 0
@@ -305,8 +308,9 @@ desired arrays with the media graph elements. · 35 unmodified lines
305 this array to zero.308 this array to zero.
306 309
307 310
311.. tabularcolumns:: |p{1.6cm}|p{3.2cm}|p{12.7cm}|
308 312
309.. _media-v2-link:313.. c:type:: media_v2_link
310 314
311.. flat-table:: struct media_v2_pad315.. flat-table:: struct media_v2_pad
312 :header-rows: 0316 :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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20 21
21Arguments22Arguments
@@ -24,9 +25,6 @@ Arguments · 2 unmodified lines
24``fd``25``fd``
25 File descriptor returned by :ref:`open() <media-func-open>`.26 File descriptor returned by :ref:`open() <media-func-open>`.
26 27
27``request``
28 MEDIA_IOC_SETUP_LINK
29
30``argp``28``argp``
31 29
32 30
@@ -34,7 +32,7 @@ Description · 1 unmodified line
34===========32===========
35 33
36To change link properties applications fill a struct34To change link properties applications fill a struct
37:ref:`media_link_desc <media-link-desc>` with link identification35:c:type:`media_link_desc` with link identification
38information (source and sink pad) and the new requested link flags. They36information (source and sink pad) and the new requested link flags. They
39then call the MEDIA_IOC_SETUP_LINK ioctl with a pointer to that37then call the MEDIA_IOC_SETUP_LINK ioctl with a pointer to that
40structure.38structure.
@@ -63,6 +61,6 @@ appropriately. The generic error codes are described at the · 22 unmodified lines
63:ref:`Generic Error Codes <gen-errors>` chapter.61:ref:`Generic Error Codes <gen-errors>` chapter.
64 62
65EINVAL63EINVAL
66 The struct :ref:`media_link_desc <media-link-desc>` references a64 The struct :c:type:`media_link_desc` references a
67 non-existing link, or the link is immutable and an attempt to modify65 non-existing link, or the link is immutable and an attempt to modify
68 its configuration was made.66 its configuration was made.
Documentation/media/uapi/mediactl/media-types.rst+30−10
@@ -5,9 +5,12 @@ · 4 unmodified lines
5Types and flags used to represent the media graph elements5Types and flags used to represent the media graph elements
6==========================================================6==========================================================
7 7
8.. tabularcolumns:: |p{8.0cm}|p{10.5cm}|
8 9
9.. _media-entity-type:10.. _media-entity-type:
10 11
12.. cssclass:: longtable
13
11.. flat-table:: Media entity types14.. flat-table:: Media entity types
12 :header-rows: 015 :header-rows: 0
13 :stub-columns: 016 :stub-columns: 0
@@ -15,10 +18,12 @@ Types and flags used to represent the media graph elements · 1 unmodified line
15 18
16 - .. row 119 - .. row 1
17 20
18 .. _MEDIA-ENT-F-UNKNOWN:21 .. _MEDIA-ENT-F-UNKNOWN:
19 .. _MEDIA-ENT-F-V4L2-SUBDEV-UNKNOWN:22 .. _MEDIA-ENT-F-V4L2-SUBDEV-UNKNOWN:
20 23
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``
22 27
23 - Unknown entity. That generally indicates that a driver didn't28 - Unknown entity. That generally indicates that a driver didn't
24 initialize properly the entity, with is a Kernel bug29 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
294 its source pad.299 its source pad.
295 300
296 301
302.. tabularcolumns:: |p{5.5cm}|p{12.0cm}|
303
297.. _media-entity-flag:304.. _media-entity-flag:
298 305
299.. flat-table:: Media entity flags306.. flat-table:: Media entity flags
@@ -319,6 +326,7 @@ Types and flags used to represent the media graph elements · 19 unmodified lines
319 - The entity represents a data conector326 - The entity represents a data conector
320 327
321 328
329.. tabularcolumns:: |p{6.5cm}|p{6.0cm}|p{5.0cm}|
322 330
323.. _media-intf-type:331.. _media-intf-type:
324 332
@@ -405,7 +413,7 @@ Types and flags used to represent the media graph elements · 80 unmodified lines
405 413
406 - Device node interface for radio (V4L)414 - Device node interface for radio (V4L)
407 415
408 - typically, /dev/vbi?416 - typically, /dev/radio?
409 417
410 - .. row 9418 - .. row 9
411 419
@@ -429,6 +437,16 @@ Types and flags used to represent the media graph elements · 17 unmodified lines
429 437
430 - .. row 11438 - .. row 11
431 439
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
432 .. _MEDIA-INTF-T-ALSA-PCM-CAPTURE:450 .. _MEDIA-INTF-T-ALSA-PCM-CAPTURE:
433 451
434 - ``MEDIA_INTF_T_ALSA_PCM_CAPTURE``452 - ``MEDIA_INTF_T_ALSA_PCM_CAPTURE``
@@ -437,7 +455,7 @@ Types and flags used to represent the media graph elements · 2 unmodified lines
437 455
438 - typically, /dev/snd/pcmC?D?c456 - typically, /dev/snd/pcmC?D?c
439 457
440 - .. row 12458 - .. row 13
441 459
442 .. _MEDIA-INTF-T-ALSA-PCM-PLAYBACK:460 .. _MEDIA-INTF-T-ALSA-PCM-PLAYBACK:
443 461
@@ -447,7 +465,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
447 465
448 - typically, /dev/snd/pcmC?D?p466 - typically, /dev/snd/pcmC?D?p
449 467
450 - .. row 13468 - .. row 14
451 469
452 .. _MEDIA-INTF-T-ALSA-CONTROL:470 .. _MEDIA-INTF-T-ALSA-CONTROL:
453 471
@@ -457,7 +475,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
457 475
458 - typically, /dev/snd/controlC?476 - typically, /dev/snd/controlC?
459 477
460 - .. row 14478 - .. row 15
461 479
462 .. _MEDIA-INTF-T-ALSA-COMPRESS:480 .. _MEDIA-INTF-T-ALSA-COMPRESS:
463 481
@@ -467,7 +485,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
467 485
468 - typically, /dev/snd/compr?486 - typically, /dev/snd/compr?
469 487
470 - .. row 15488 - .. row 16
471 489
472 .. _MEDIA-INTF-T-ALSA-RAWMIDI:490 .. _MEDIA-INTF-T-ALSA-RAWMIDI:
473 491
@@ -477,7 +495,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
477 495
478 - typically, /dev/snd/midi?496 - typically, /dev/snd/midi?
479 497
480 - .. row 16498 - .. row 17
481 499
482 .. _MEDIA-INTF-T-ALSA-HWDEP:500 .. _MEDIA-INTF-T-ALSA-HWDEP:
483 501
@@ -487,7 +505,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
487 505
488 - typically, /dev/snd/hwC?D?506 - typically, /dev/snd/hwC?D?
489 507
490 - .. row 17508 - .. row 18
491 509
492 .. _MEDIA-INTF-T-ALSA-SEQUENCER:510 .. _MEDIA-INTF-T-ALSA-SEQUENCER:
493 511
@@ -497,7 +515,7 @@ Types and flags used to represent the media graph elements · 3 unmodified lines
497 515
498 - typically, /dev/snd/seq516 - typically, /dev/snd/seq
499 517
500 - .. row 18518 - .. row 19
501 519
502 .. _MEDIA-INTF-T-ALSA-TIMER:520 .. _MEDIA-INTF-T-ALSA-TIMER:
503 521
@@ -508,6 +526,7 @@ Types and flags used to represent the media graph elements · 4 unmodified lines
508 - typically, /dev/snd/timer526 - typically, /dev/snd/timer
509 527
510 528
529.. tabularcolumns:: |p{5.5cm}|p{12.0cm}|
511 530
512.. _media-pad-flag:531.. _media-pad-flag:
513 532
@@ -551,6 +570,7 @@ Types and flags used to represent the media graph elements · 37 unmodified lines
551One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE``570One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE``
552must be set for every pad.571must be set for every pad.
553 572
573.. tabularcolumns:: |p{5.5cm}|p{12.0cm}|
554 574
555.. _media-link-flag:575.. _media-link-flag:
556 576
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
14Synopsis14Synopsis
15========15========
16 16
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
18 19
19Arguments20Arguments
20=========21=========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
22``fd``23``fd``
23 File descriptor returned by open().24 File descriptor returned by open().
24 25
25``request``
26 LIRC_GET_FEATURES
27
28``features``26``features``
29 Bitmask with the LIRC features.27 Bitmask with the LIRC features.
30 28
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
14Synopsis14Synopsis
15========15========
16 16
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
18 19
19Arguments20Arguments
20=========21=========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
22``fd``23``fd``
23 File descriptor returned by open().24 File descriptor returned by open().
24 25
25``request``
26 LIRC_GET_LENGTH
27
28``length``26``length``
29 length, in bits27 length, in bits
30 28
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
10Name10Name
11====11====
12 12
13LIRC_GET_REC_MODE/LIRC_GET_REC_MODE - Get/set supported receive modes.13LIRC_GET_REC_MODE/LIRC_SET_REC_MODE - Get/set supported receive modes.
14 14
15Synopsis15Synopsis
16========16========
17 17
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
19 23
20Arguments24Arguments
21=========25=========
@@ -23,9 +27,6 @@ Arguments · 1 unmodified line
23``fd``27``fd``
24 File descriptor returned by open().28 File descriptor returned by open().
25 29
26``request``
27 LIRC_GET_REC_MODE or LIRC_GET_REC_MODE
28
29``rx_modes``30``rx_modes``
30 Bitmask with the supported transmit modes.31 Bitmask with the supported transmit modes.
31 32
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
14Synopsis14Synopsis
15========15========
16 16
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
18 19
19Arguments20Arguments
20=========21=========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
22``fd``23``fd``
23 File descriptor returned by open().24 File descriptor returned by open().
24 25
25``request``
26 LIRC_GET_REC_RESOLUTION
27
28``microseconds``26``microseconds``
29 Resolution, in microseconds.27 Resolution, in microseconds.
30 28
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
15Synopsis15Synopsis
16========16========
17 17
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
19 23
20Arguments24Arguments
21=========25=========
@@ -23,9 +27,6 @@ Arguments · 1 unmodified line
23``fd``27``fd``
24 File descriptor returned by open().28 File descriptor returned by open().
25 29
26``request``
27 LIRC_GET_SEND_MODE
28
29``tx_modes``30``tx_modes``
30 Bitmask with the supported transmit modes.31 Bitmask with the supported transmit modes.
31 32
Documentation/media/uapi/rc/lirc-get-timeout.rst+5−4
@@ -16,7 +16,11 @@ range for IR receive. · 15 unmodified lines
16Synopsis16Synopsis
17========17========
18 18
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
20 24
21Arguments25Arguments
22=========26=========
@@ -24,9 +28,6 @@ Arguments · 1 unmodified line
24``fd``28``fd``
25 File descriptor returned by open().29 File descriptor returned by open().
26 30
27``request``
28 LIRC_GET_MIN_TIMEOUT or LIRC_GET_MAX_TIMEOUT
29
30``timeout``31``timeout``
31 Timeout, in microseconds.32 Timeout, in microseconds.
32 33
Documentation/media/uapi/rc/lirc-read.rst+5−2
@@ -20,7 +20,8 @@ Synopsis · 19 unmodified lines
20 #include <unistd.h>20 #include <unistd.h>
21 21
22 22
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
24 25
25 26
26Arguments27Arguments
@@ -30,8 +31,10 @@ Arguments · 3 unmodified lines
30 File descriptor returned by ``open()``.31 File descriptor returned by ``open()``.
31 32
32``buf``33``buf``
33``count``34 Buffer to be filled
34 35
36``count``
37 Max number of bytes to read
35 38
36Description39Description
37===========40===========
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
14Synopsis14Synopsis
15========15========
16 16
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
18 19
19Arguments20Arguments
20=========21=========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
22``fd``23``fd``
23 File descriptor returned by open().24 File descriptor returned by open().
24 25
25``request``
26 LIRC_SET_MEASURE_CARRIER_MODE
27
28``enable``26``enable``
29 enable = 1 means enable measure mode, enable = 0 means disable measure27 enable = 1 means enable measure mode, enable = 0 means disable measure
30 mode.28 mode.
Documentation/media/uapi/rc/lirc-set-rec-carrier-range.rst+2−4
@@ -15,7 +15,8 @@ IR receive. · 14 unmodified lines
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20Arguments21Arguments
21=========22=========
@@ -23,9 +24,6 @@ Arguments · 1 unmodified line
23``fd``24``fd``
24 File descriptor returned by open().25 File descriptor returned by open().
25 26
26``request``
27 LIRC_SET_REC_CARRIER_RANGE
28
29``frequency``27``frequency``
30 Frequency of the carrier that modulates PWM data, in Hz.28 Frequency of the carrier that modulates PWM data, in Hz.
31 29
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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20Arguments21Arguments
21=========22=========
@@ -23,9 +24,6 @@ Arguments · 1 unmodified line
23``fd``24``fd``
24 File descriptor returned by open().25 File descriptor returned by open().
25 26
26``request``
27 LIRC_SET_REC_CARRIER
28
29``frequency``27``frequency``
30 Frequency of the carrier that modulates PWM data, in Hz.28 Frequency of the carrier that modulates PWM data, in Hz.
31 29
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
14Synopsis14Synopsis
15========15========
16 16
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
18 19
19Arguments20Arguments
20=========21=========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
22``fd``23``fd``
23 File descriptor returned by open().24 File descriptor returned by open().
24 25
25``request``
26 LIRC_SET_REC_TIMEOUT_REPORTS
27
28``enable``26``enable``
29 enable = 1 means enable timeout report, enable = 0 means disable timeout27 enable = 1 means enable timeout report, enable = 0 means disable timeout
30 reports.28 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
14Synopsis14Synopsis
15========15========
16 16
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
18 19
19Arguments20Arguments
20=========21=========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
22``fd``23``fd``
23 File descriptor returned by open().24 File descriptor returned by open().
24 25
25``request``
26 LIRC_SET_REC_TIMEOUT
27
28``timeout``26``timeout``
29 Timeout, in microseconds.27 Timeout, in microseconds.
30 28
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
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20Arguments21Arguments
21=========22=========
@@ -23,9 +24,6 @@ Arguments · 1 unmodified line
23``fd``24``fd``
24 File descriptor returned by open().25 File descriptor returned by open().
25 26
26``request``
27 LIRC_SET_SEND_CARRIER
28
29``frequency``27``frequency``
30 Frequency of the carrier to be modulated, in Hz.28 Frequency of the carrier to be modulated, in Hz.
31 29
Documentation/media/uapi/rc/lirc-set-send-duty-cycle.rst+2−4
@@ -15,7 +15,8 @@ IR transmit. · 14 unmodified lines
15Synopsis15Synopsis
16========16========
17 17
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
19 20
20Arguments21Arguments
21=========22=========
@@ -23,9 +24,6 @@ Arguments · 1 unmodified line
23``fd``24``fd``
24 File descriptor returned by open().25 File descriptor returned by open().
25 26
26``request``
27 LIRC_SET_SEND_DUTY_CYCLE
28
29``duty_cycle``27``duty_cycle``
30 Duty cicle, describing the pulse width in percent (from 1 to 99) of28 Duty cicle, describing the pulse width in percent (from 1 to 99) of
31 the total cycle. Values 0 and 100 are reserved.29 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
14Synopsis14Synopsis
15========15========
16 16
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
18 19
19Arguments20Arguments
20=========21=========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
22``fd``23``fd``
23 File descriptor returned by open().24 File descriptor returned by open().
24 25
25``request``
26 LIRC_SET_TRANSMITTER_MASK
27
28``mask``26``mask``
29 Mask with channels to enable tx. Channel 0 is the least significant bit.27 Mask with channels to enable tx. Channel 0 is the least significant bit.
30 28
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
14Synopsis14Synopsis
15========15========
16 16
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
18 19
19Arguments20Arguments
20=========21=========
@@ -22,9 +23,6 @@ Arguments · 1 unmodified line
22``fd``23``fd``
23 File descriptor returned by open().24 File descriptor returned by open().
24 25
25``request``
26 LIRC_SET_WIDEBAND_RECEIVER
27
28``enable``26``enable``
29 enable = 1 means enable wideband receiver, enable = 0 means disable27 enable = 1 means enable wideband receiver, enable = 0 means disable
30 wideband receiver.28 wideband receiver.
@@ -42,7 +40,9 @@ that prevents them to be used with some remotes. Wide band receiver might · 11 unmodified lines
42also be more precise. On the other hand its disadvantage it usually40also be more precise. On the other hand its disadvantage it usually
43reduced range of reception.41reduced range of reception.
44 42
45.. note:: Wide band receiver might be implictly enabled if you enable43.. note::
44
45 Wide band receiver might be implictly enabled if you enable
46 carrier reports. In that case it will be disabled as soon as you disable46 carrier reports. In that case it will be disabled as soon as you disable
47 carrier reports. Trying to disable wide band receiver while carrier47 carrier reports. Trying to disable wide band receiver while carrier
48 reports are active will do nothing.48 reports are active will do nothing.
Documentation/media/uapi/rc/lirc-write.rst+5−3
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
20 #include <unistd.h>20 #include <unistd.h>
21 21
22 22
23.. cpp:function:: ssize_t write( int fd, void *buf, size_t count )23.. c:function:: ssize_t write( int fd, void *buf, size_t count )
24 24 :name: lirc-write
25 25
26Arguments26Arguments
27=========27=========
@@ -30,8 +30,10 @@ Arguments · 2 unmodified lines
30 File descriptor returned by ``open()``.30 File descriptor returned by ``open()``.
31 31
32``buf``32``buf``
33``count``33 Buffer with data to be written
34 34
35``count``
36 Number of bytes at the buffer
35 37
36Description38Description
37===========39===========
Documentation/media/uapi/rc/rc-tables.rst+2−0
@@ -25,6 +25,8 @@ the remote via /dev/input/event devices. · 24 unmodified lines
25 25
26.. _rc_standard_keymap:26.. _rc_standard_keymap:
27 27
28.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
29
28.. flat-table:: IR default keymapping30.. flat-table:: IR default keymapping
29 :header-rows: 031 :header-rows: 0
30 :stub-columns: 032 :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
21and two audio inputs exist, there may be up to four valid combinations.21and two audio inputs exist, there may be up to four valid combinations.
22The relation of video and audio connectors is defined in the22The relation of video and audio connectors is defined in the
23``audioset`` field of the respective struct23``audioset`` field of the respective struct
24:ref:`v4l2_input <v4l2-input>` or struct24:c:type:`v4l2_input` or struct
25:ref:`v4l2_output <v4l2-output>`, where each bit represents the index25:c:type:`v4l2_output`, where each bit represents the index
26number, starting at zero, of one audio input or output.26number, starting at zero, of one audio input or output.
27 27
28To learn about the number and attributes of the available inputs and28To learn about the number and attributes of the available inputs and
29outputs applications can enumerate them with the29outputs applications can enumerate them with the
30:ref:`VIDIOC_ENUMAUDIO` and30:ref:`VIDIOC_ENUMAUDIO` and
31:ref:`VIDIOC_ENUMAUDOUT <VIDIOC_ENUMAUDOUT>` ioctl, respectively.31:ref:`VIDIOC_ENUMAUDOUT <VIDIOC_ENUMAUDOUT>` ioctl, respectively.
32The struct :ref:`v4l2_audio <v4l2-audio>` returned by the32The struct :c:type:`v4l2_audio` returned by the
33:ref:`VIDIOC_ENUMAUDIO` ioctl also contains signal33:ref:`VIDIOC_ENUMAUDIO` ioctl also contains signal
34:status information applicable when the current audio input is queried.34:status information applicable when the current audio input is queried.
35 35
@@ -37,7 +37,9 @@ The :ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` and · 1 unmodified line
37:ref:`VIDIOC_G_AUDOUT <VIDIOC_G_AUDOUT>` ioctls report the current37:ref:`VIDIOC_G_AUDOUT <VIDIOC_G_AUDOUT>` ioctls report the current
38audio input and output, respectively.38audio input and output, respectively.
39 39
40.. note:: Note that, unlike :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and40.. note::
41
42 Note that, unlike :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and
41 :ref:`VIDIOC_G_OUTPUT <VIDIOC_G_OUTPUT>` these ioctls return a43 :ref:`VIDIOC_G_OUTPUT <VIDIOC_G_OUTPUT>` these ioctls return a
42 structure as :ref:`VIDIOC_ENUMAUDIO` and44 structure as :ref:`VIDIOC_ENUMAUDIO` and
43 :ref:`VIDIOC_ENUMAUDOUT <VIDIOC_ENUMAUDOUT>` do, not just an index.45 :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
51multiple selectable audio inputs, all audio output ioctls when the53multiple selectable audio inputs, all audio output ioctls when the
52device has multiple selectable audio outputs. When the device has any54device has multiple selectable audio outputs. When the device has any
53audio inputs or outputs the driver must set the ``V4L2_CAP_AUDIO`` flag55audio inputs or outputs the driver must set the ``V4L2_CAP_AUDIO`` flag
54in the struct :ref:`v4l2_capability <v4l2-capability>` returned by56in the struct :c:type:`v4l2_capability` returned by
55the :ref:`VIDIOC_QUERYCAP` ioctl.57the :ref:`VIDIOC_QUERYCAP` ioctl.
56 58
57 59
@@ -89,7 +91,7 @@ Example: Switching to the first audio input · 31 unmodified lines
89 }91 }
90 92
91.. [#f1]93.. [#f1]
92 Actually struct :ref:`v4l2_audio <v4l2-audio>` ought to have a94 Actually struct :c:type:`v4l2_audio` ought to have a
93 ``tuner`` field like struct :ref:`v4l2_input <v4l2-input>`, not95 ``tuner`` field like struct :c:type:`v4l2_input`, not
94 only making the API more consistent but also permitting radio devices96 only making the API more consistent but also permitting radio devices
95 with multiple tuners.97 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
11planes, while the buffer structure acts as a container for the planes.11planes, while the buffer structure acts as a container for the planes.
12Only pointers to buffers (planes) are exchanged, the data itself is not12Only pointers to buffers (planes) are exchanged, the data itself is not
13copied. These pointers, together with meta-information like timestamps13copied. These pointers, together with meta-information like timestamps
14or field parity, are stored in a struct :ref:`struct v4l2_buffer <v4l2-buffer>`,14or field parity, are stored in a struct :c:type:`v4l2_buffer`,
15argument to the :ref:`VIDIOC_QUERYBUF`,15argument to the :ref:`VIDIOC_QUERYBUF`,
16:ref:`VIDIOC_QBUF` and16:ref:`VIDIOC_QBUF` and
17:ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. In the multi-planar API,17:ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. In the multi-planar API,
18some plane-specific members of struct :ref:`struct v4l2_buffer <v4l2-buffer>`,18some plane-specific members of struct :c:type:`v4l2_buffer`,
19such as pointers and sizes for each plane, are stored in struct19such as pointers and sizes for each plane, are stored in struct
20:ref:`struct v4l2_plane <v4l2-plane>` instead. In that case, struct20struct :c:type:`v4l2_plane` instead. In that case, struct
21:ref:`struct v4l2_buffer <v4l2-buffer>` contains an array of plane structures.21struct :c:type:`v4l2_buffer` contains an array of plane structures.
22 22
23Dequeued video buffers come with timestamps. The driver decides at which23Dequeued video buffers come with timestamps. The driver decides at which
24part of the frame and with which clock the timestamp is taken. Please24part 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
34buffer.34buffer.
35 35
36 36
37.. _v4l2-buffer:37.. c:type:: v4l2_buffer
38 38
39struct v4l2_buffer39struct v4l2_buffer
40==================40==================
41 41
42.. tabularcolumns:: |p{2.8cm}|p{2.5cm}|p{1.3cm}|p{10.5cm}|
43
44.. cssclass:: longtable
45
42.. flat-table:: struct v4l2_buffer46.. flat-table:: struct v4l2_buffer
43 :header-rows: 047 :header-rows: 0
44 :stub-columns: 048 :stub-columns: 0
45 :widths: 1 1 1 249 :widths: 1 2 1 10
46 50
47 51 * - __u32
48 - .. row 152 - ``index``
49 53 -
50 - __u3254 - Number of the buffer, set by the application except when calling
51 55 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>`, then it is set by the
52 - ``index``56 driver. This field can range from zero to the number of buffers
53 57 allocated with the :ref:`VIDIOC_REQBUFS` ioctl
54 -58 (struct :c:type:`v4l2_requestbuffers`
55 - Number of the buffer, set by the application except when calling59 ``count``), plus any buffers allocated with
56 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>`, then it is set by the60 :ref:`VIDIOC_CREATE_BUFS` minus one.
57 driver. This field can range from zero to the number of buffers61 * - __u32
58 allocated with the :ref:`VIDIOC_REQBUFS` ioctl62 - ``type``
59 (struct :ref:`v4l2_requestbuffers <v4l2-requestbuffers>`63 -
60 ``count``), plus any buffers allocated with64 - Type of the buffer, same as struct
61 :ref:`VIDIOC_CREATE_BUFS` minus one.65 :c:type:`v4l2_format` ``type`` or struct
62 66 :c:type:`v4l2_requestbuffers` ``type``, set
63 - .. row 267 by the application. See :c:type:`v4l2_buf_type`
64 68 * - __u32
65 - __u3269 - ``bytesused``
66 70 -
67 - ``type``71 - The number of bytes occupied by the data in the buffer. It depends
68 72 on the negotiated data format and may change with each buffer for
69 -73 compressed variable size data like JPEG images. Drivers must set
70 - Type of the buffer, same as struct74 this field when ``type`` refers to a capture stream, applications
71 :ref:`v4l2_format <v4l2-format>` ``type`` or struct75 when it refers to an output stream. If the application sets this
72 :ref:`v4l2_requestbuffers <v4l2-requestbuffers>` ``type``, set76 to 0 for an output stream, then ``bytesused`` will be set to the
73 by the application. See :ref:`v4l2-buf-type`77 size of the buffer (see the ``length`` field of this struct) by
74 78 the driver. For multiplanar formats this field is ignored and the
75 - .. row 379 ``planes`` pointer is used instead.
76 80 * - __u32
77 - __u3281 - ``flags``
78 82 -
79 - ``bytesused``83 - Flags set by the application or driver, see :ref:`buffer-flags`.
80 84 * - __u32
81 -85 - ``field``
82 - The number of bytes occupied by the data in the buffer. It depends86 -
83 on the negotiated data format and may change with each buffer for87 - Indicates the field order of the image in the buffer, see
84 compressed variable size data like JPEG images. Drivers must set88 :c:type:`v4l2_field`. This field is not used when the buffer
85 this field when ``type`` refers to a capture stream, applications89 contains VBI data. Drivers must set it when ``type`` refers to a
86 when it refers to an output stream. If the application sets this90 capture stream, applications when it refers to an output stream.
87 to 0 for an output stream, then ``bytesused`` will be set to the91 * - struct timeval
88 size of the buffer (see the ``length`` field of this struct) by92 - ``timestamp``
89 the driver. For multiplanar formats this field is ignored and the93 -
90 ``planes`` pointer is used instead.94 - For capture streams this is time when the first data byte was
91 95 captured, as returned by the :c:func:`clock_gettime()` function
92 - .. row 496 for the relevant clock id; see ``V4L2_BUF_FLAG_TIMESTAMP_*`` in
93 97 :ref:`buffer-flags`. For output streams the driver stores the
94 - __u3298 time at which the last data byte was actually sent out in the
95 99 ``timestamp`` field. This permits applications to monitor the
96 - ``flags``100 drift between the video and system clock. For output streams that
97 101 use ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` the application has to fill
98 -102 in the timestamp which will be copied by the driver to the capture
99 - Flags set by the application or driver, see :ref:`buffer-flags`.103 stream.
100 104 * - struct :c:type:`v4l2_timecode`
101 - .. row 5105 - ``timecode``
102 106 -
103 - __u32107 - When ``type`` is ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` and the
104 108 ``V4L2_BUF_FLAG_TIMECODE`` flag is set in ``flags``, this
105 - ``field``109 structure contains a frame timecode. In
106 110 :c:type:`V4L2_FIELD_ALTERNATE <v4l2_field>` mode the top and
107 -111 bottom field contain the same timecode. Timecodes are intended to
108 - Indicates the field order of the image in the buffer, see112 help video editing and are typically recorded on video tapes, but
109 :ref:`v4l2-field`. This field is not used when the buffer113 also embedded in compressed formats like MPEG. This field is
110 contains VBI data. Drivers must set it when ``type`` refers to a114 independent of the ``timestamp`` and ``sequence`` fields.
111 capture stream, applications when it refers to an output stream.115 * - __u32
112 116 - ``sequence``
113 - .. row 6117 -
114 118 - Set by the driver, counting the frames (not fields!) in sequence.
115 - struct timeval119 This field is set for both input and output devices.
116 120 * - :cspan:`3`
117 - ``timestamp``121
118 122 In :c:type:`V4L2_FIELD_ALTERNATE <v4l2_field>` mode the top and
119 -123 bottom field have the same sequence number. The count starts at
120 - For capture streams this is time when the first data byte was124 zero and includes dropped or repeated frames. A dropped frame was
121 captured, as returned by the :c:func:`clock_gettime()` function125 received by an input device but could not be stored due to lack of
122 for the relevant clock id; see ``V4L2_BUF_FLAG_TIMESTAMP_*`` in126 free buffer space. A repeated frame was displayed again by an
123 :ref:`buffer-flags`. For output streams the driver stores the127 output device because the application did not pass new data in
124 time at which the last data byte was actually sent out in the128 time.
125 ``timestamp`` field. This permits applications to monitor the129
126 drift between the video and system clock. For output streams that130 .. note::
127 use ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` the application has to fill131
128 in the timestamp which will be copied by the driver to the capture132 This may count the frames received e.g. over USB, without
129 stream.133 taking into account the frames dropped by the remote hardware due
130 134 to limited compression throughput or bus bandwidth. These devices
131 - .. row 7135 identify by not enumerating any video standards, see
132 136 :ref:`standard`.
133 - struct :ref:`v4l2_timecode <v4l2-timecode>`137
134 138 * - __u32
135 - ``timecode``139 - ``memory``
136 140 -
137 -141 - This field must be set by applications and/or drivers in
138 - When ``type`` is ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` and the142 accordance with the selected I/O method. See :c:type:`v4l2_memory`
139 ``V4L2_BUF_FLAG_TIMECODE`` flag is set in ``flags``, this143 * - union
140 structure contains a frame timecode. In144 - ``m``
141 :ref:`V4L2_FIELD_ALTERNATE <v4l2-field>` mode the top and145 * -
142 bottom field contain the same timecode. Timecodes are intended to146 - __u32
143 help video editing and are typically recorded on video tapes, but147 - ``offset``
144 also embedded in compressed formats like MPEG. This field is148 - For the single-planar API and when ``memory`` is
145 independent of the ``timestamp`` and ``sequence`` fields.149 ``V4L2_MEMORY_MMAP`` this is the offset of the buffer from the
146 150 start of the device memory. The value is returned by the driver
147 - .. row 8151 and apart of serving as parameter to the
148 152 :ref:`mmap() <func-mmap>` function not useful for applications.
149 - __u32153 See :ref:`mmap` for details
150 154 * -
151 - ``sequence``155 - unsigned long
152 156 - ``userptr``
153 -157 - For the single-planar API and when ``memory`` is
154 - Set by the driver, counting the frames (not fields!) in sequence.158 ``V4L2_MEMORY_USERPTR`` this is a pointer to the buffer (casted to
155 This field is set for both input and output devices.159 unsigned long type) in virtual memory, set by the application. See
156 160 :ref:`userp` for details.
157 - .. row 9161 * -
158 162 - struct v4l2_plane
159 - :cspan:`3`163 - ``*planes``
160 164 - When using the multi-planar API, contains a userspace pointer to
161 In :ref:`V4L2_FIELD_ALTERNATE <v4l2-field>` mode the top and165 an array of struct :c:type:`v4l2_plane`. The size of
162 bottom field have the same sequence number. The count starts at166 the array should be put in the ``length`` field of this
163 zero and includes dropped or repeated frames. A dropped frame was167 struct :c:type:`v4l2_buffer` structure.
164 received by an input device but could not be stored due to lack of168 * -
165 free buffer space. A repeated frame was displayed again by an169 - int
166 output device because the application did not pass new data in170 - ``fd``
167 time.171 - For the single-plane API and when ``memory`` is
168 172 ``V4L2_MEMORY_DMABUF`` this is the file descriptor associated with
169 .. note:: This may count the frames received e.g. over USB, without173 a DMABUF buffer.
170 taking into account the frames dropped by the remote hardware due174 * - __u32
171 to limited compression throughput or bus bandwidth. These devices175 - ``length``
172 identify by not enumerating any video standards, see176 -
173 :ref:`standard`.177 - Size of the buffer (not the payload) in bytes for the
174 178 single-planar API. This is set by the driver based on the calls to
175 - .. row 10179 :ref:`VIDIOC_REQBUFS` and/or
176 180 :ref:`VIDIOC_CREATE_BUFS`. For the
177 - __u32181 multi-planar API the application sets this to the number of
178 182 elements in the ``planes`` array. The driver will fill in the
179 - ``memory``183 actual number of valid elements in that array.
180 184 * - __u32
181 -185 - ``reserved2``
182 - This field must be set by applications and/or drivers in186 -
183 accordance with the selected I/O method. See :ref:`v4l2-memory`187 - A place holder for future extensions. Drivers and applications
184 188 must set this to 0.
185 - .. row 11189 * - __u32
186 190 - ``reserved``
187 - union191 -
188 192 - A place holder for future extensions. Drivers and applications
189 - ``m``193 must set this to 0.
190 194
191 - .. row 12195
192 196
193 -197.. c:type:: v4l2_plane
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:
278 198
279struct v4l2_plane199struct v4l2_plane
280=================200=================
281 201
202.. tabularcolumns:: |p{3.5cm}|p{3.5cm}|p{3.5cm}|p{7.0cm}|
203
204.. cssclass:: longtable
205
282.. flat-table::206.. flat-table::
283 :header-rows: 0207 :header-rows: 0
284 :stub-columns: 0208 :stub-columns: 0
285 :widths: 1 1 1 2209 :widths: 1 1 1 2
286 210
287 211 * - __u32
288 - .. row 1212 - ``bytesused``
289 213 -
290 - __u32214 - The number of bytes occupied by data in the plane (its payload).
291 215 Drivers must set this field when ``type`` refers to a capture
292 - ``bytesused``216 stream, applications when it refers to an output stream. If the
293 217 application sets this to 0 for an output stream, then
294 -218 ``bytesused`` will be set to the size of the plane (see the
295 - The number of bytes occupied by data in the plane (its payload).219 ``length`` field of this struct) by the driver.
296 Drivers must set this field when ``type`` refers to a capture220
297 stream, applications when it refers to an output stream. If the221 .. note::
298 application sets this to 0 for an output stream, then222
299 ``bytesused`` will be set to the size of the plane (see the223 Note that the actual image data starts at ``data_offset``
300 ``length`` field of this struct) by the driver.224 which may not be 0.
301 225 * - __u32
302 .. note:: Note that the actual image data starts at ``data_offset``226 - ``length``
303 which may not be 0.227 -
304 228 - Size in bytes of the plane (not its payload). This is set by the
305 - .. row 2229 driver based on the calls to
306 230 :ref:`VIDIOC_REQBUFS` and/or
307 - __u32231 :ref:`VIDIOC_CREATE_BUFS`.
308 232 * - union
309 - ``length``233 - ``m``
310 234 -
311 -235 -
312 - Size in bytes of the plane (not its payload). This is set by the236 * -
313 driver based on the calls to237 - __u32
314 :ref:`VIDIOC_REQBUFS` and/or238 - ``mem_offset``
315 :ref:`VIDIOC_CREATE_BUFS`.239 - When the memory type in the containing struct
316 240 :c:type:`v4l2_buffer` is ``V4L2_MEMORY_MMAP``, this
317 - .. row 3241 is the value that should be passed to :ref:`mmap() <func-mmap>`,
318 242 similar to the ``offset`` field in struct
319 - union243 :c:type:`v4l2_buffer`.
320 244 * -
321 - ``m``245 - unsigned long
322 246 - ``userptr``
323 -247 - When the memory type in the containing struct
324 -248 :c:type:`v4l2_buffer` is ``V4L2_MEMORY_USERPTR``,
325 249 this is a userspace pointer to the memory allocated for this plane
326 - .. row 4250 by an application.
327 251 * -
328 -252 - int
329 - __u32253 - ``fd``
330 254 - When the memory type in the containing struct
331 - ``mem_offset``255 :c:type:`v4l2_buffer` is ``V4L2_MEMORY_DMABUF``,
332 256 this is a file descriptor associated with a DMABUF buffer, similar
333 - When the memory type in the containing struct257 to the ``fd`` field in struct :c:type:`v4l2_buffer`.
334 :ref:`v4l2_buffer <v4l2-buffer>` is ``V4L2_MEMORY_MMAP``, this258 * - __u32
335 is the value that should be passed to :ref:`mmap() <func-mmap>`,259 - ``data_offset``
336 similar to the ``offset`` field in struct260 -
337 :ref:`v4l2_buffer <v4l2-buffer>`.261 - Offset in bytes to video data in the plane. Drivers must set this
338 262 field when ``type`` refers to a capture stream, applications when
339 - .. row 5263 it refers to an output stream.
340 264
341 -265 .. note::
342 - unsigned long266
343 267 That data_offset is included in ``bytesused``. So the
344 - ``userptr``268 size of the image in the plane is ``bytesused``-``data_offset``
345 269 at offset ``data_offset`` from the start of the plane.
346 - When the memory type in the containing struct270 * - __u32
347 :ref:`v4l2_buffer <v4l2-buffer>` is ``V4L2_MEMORY_USERPTR``,271 - ``reserved[11]``
348 this is a userspace pointer to the memory allocated for this plane272 -
349 by an application.273 - Reserved for future use. Should be zeroed by drivers and
350 274 applications.
351 - .. row 6275
352 276
353 -277
354 - int278.. c:type:: v4l2_buf_type
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:
391 279
392enum v4l2_buf_type280enum v4l2_buf_type
393==================281==================
394 282
283.. cssclass:: longtable
284
285.. tabularcolumns:: |p{7.2cm}|p{0.6cm}|p{9.7cm}|
286
395.. flat-table::287.. flat-table::
396 :header-rows: 0288 :header-rows: 0
397 :stub-columns: 0289 :stub-columns: 0
398 :widths: 3 1 4290 :widths: 4 1 9
399 291
400 292 * - ``V4L2_BUF_TYPE_VIDEO_CAPTURE``
401 - .. row 1293 - 1
402 294 - Buffer of a single-planar video capture stream, see
403 - ``V4L2_BUF_TYPE_VIDEO_CAPTURE``295 :ref:`capture`.
404 296 * - ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``
405 - 1297 - 9
406 298 - Buffer of a multi-planar video capture stream, see
407 - Buffer of a single-planar video capture stream, see299 :ref:`capture`.
408 :ref:`capture`.300 * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT``
409 301 - 2
410 - .. row 2302 - Buffer of a single-planar video output stream, see
411 303 :ref:`output`.
412 - ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``304 * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``
413 305 - 10
414 - 9306 - Buffer of a multi-planar video output stream, see :ref:`output`.
415 307 * - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``
416 - Buffer of a multi-planar video capture stream, see308 - 3
417 :ref:`capture`.309 - Buffer for video overlay, see :ref:`overlay`.
418 310 * - ``V4L2_BUF_TYPE_VBI_CAPTURE``
419 - .. row 3311 - 4
420 312 - Buffer of a raw VBI capture stream, see :ref:`raw-vbi`.
421 - ``V4L2_BUF_TYPE_VIDEO_OUTPUT``313 * - ``V4L2_BUF_TYPE_VBI_OUTPUT``
422 314 - 5
423 - 2315 - Buffer of a raw VBI output stream, see :ref:`raw-vbi`.
424 316 * - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE``
425 - Buffer of a single-planar video output stream, see317 - 6
426 :ref:`output`.318 - Buffer of a sliced VBI capture stream, see :ref:`sliced`.
427 319 * - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``
428 - .. row 4320 - 7
429 321 - Buffer of a sliced VBI output stream, see :ref:`sliced`.
430 - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``322 * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY``
431 323 - 8
432 - 10324 - Buffer for video output overlay (OSD), see :ref:`osd`.
433 325 * - ``V4L2_BUF_TYPE_SDR_CAPTURE``
434 - Buffer of a multi-planar video output stream, see :ref:`output`.326 - 11
435 327 - Buffer for Software Defined Radio (SDR) capture stream, see
436 - .. row 5328 :ref:`sdr`.
437 329 * - ``V4L2_BUF_TYPE_SDR_OUTPUT``
438 - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``330 - 12
439 331 - Buffer for Software Defined Radio (SDR) output stream, see
440 - 3332 :ref:`sdr`.
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`.
501 333
502 334
503 335
@@ -506,371 +338,267 @@ enum v4l2_buf_type · 2 unmodified lines
506Buffer Flags338Buffer Flags
507============339============
508 340
341.. tabularcolumns:: |p{7.0cm}|p{2.2cm}|p{8.3cm}|
342
343.. cssclass:: longtable
344
509.. flat-table::345.. flat-table::
510 :header-rows: 0346 :header-rows: 0
511 :stub-columns: 0347 :stub-columns: 0
512 :widths: 3 1 4348 :widths: 3 1 4
513 349
514 350 * .. _`V4L2-BUF-FLAG-MAPPED`:
515 - .. _`V4L2-BUF-FLAG-MAPPED`:351
516 352 - ``V4L2_BUF_FLAG_MAPPED``
517 - ``V4L2_BUF_FLAG_MAPPED``353 - 0x00000001
518 354 - The buffer resides in device memory and has been mapped into the
519 - 0x00000001355 application's address space, see :ref:`mmap` for details.
520 356 Drivers set or clear this flag when the
521 - The buffer resides in device memory and has been mapped into the357 :ref:`VIDIOC_QUERYBUF`,
522 application's address space, see :ref:`mmap` for details.358 :ref:`VIDIOC_QBUF` or
523 Drivers set or clear this flag when the359 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Set by the
524 :ref:`VIDIOC_QUERYBUF`,360 driver.
525 :ref:`VIDIOC_QBUF` or361 * .. _`V4L2-BUF-FLAG-QUEUED`:
526 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Set by the362
527 driver.363 - ``V4L2_BUF_FLAG_QUEUED``
528 364 - 0x00000002
529 - .. _`V4L2-BUF-FLAG-QUEUED`:365 - Internally drivers maintain two buffer queues, an incoming and
530 366 outgoing queue. When this flag is set, the buffer is currently on
531 - ``V4L2_BUF_FLAG_QUEUED``367 the incoming queue. It automatically moves to the outgoing queue
532 368 after the buffer has been filled (capture devices) or displayed
533 - 0x00000002369 (output devices). Drivers set or clear this flag when the
534 370 ``VIDIOC_QUERYBUF`` ioctl is called. After (successful) calling
535 - Internally drivers maintain two buffer queues, an incoming and371 the ``VIDIOC_QBUF``\ ioctl it is always set and after
536 outgoing queue. When this flag is set, the buffer is currently on372 ``VIDIOC_DQBUF`` always cleared.
537 the incoming queue. It automatically moves to the outgoing queue373 * .. _`V4L2-BUF-FLAG-DONE`:
538 after the buffer has been filled (capture devices) or displayed374
539 (output devices). Drivers set or clear this flag when the375 - ``V4L2_BUF_FLAG_DONE``
540 ``VIDIOC_QUERYBUF`` ioctl is called. After (successful) calling376 - 0x00000004
541 the ``VIDIOC_QBUF``\ ioctl it is always set and after377 - When this flag is set, the buffer is currently on the outgoing
542 ``VIDIOC_DQBUF`` always cleared.378 queue, ready to be dequeued from the driver. Drivers set or clear
543 379 this flag when the ``VIDIOC_QUERYBUF`` ioctl is called. After
544 - .. _`V4L2-BUF-FLAG-DONE`:380 calling the ``VIDIOC_QBUF`` or ``VIDIOC_DQBUF`` it is always
545 381 cleared. Of course a buffer cannot be on both queues at the same
546 - ``V4L2_BUF_FLAG_DONE``382 time, the ``V4L2_BUF_FLAG_QUEUED`` and ``V4L2_BUF_FLAG_DONE`` flag
547 383 are mutually exclusive. They can be both cleared however, then the
548 - 0x00000004384 buffer is in "dequeued" state, in the application domain so to
549 385 say.
550 - When this flag is set, the buffer is currently on the outgoing386 * .. _`V4L2-BUF-FLAG-ERROR`:
551 queue, ready to be dequeued from the driver. Drivers set or clear387
552 this flag when the ``VIDIOC_QUERYBUF`` ioctl is called. After388 - ``V4L2_BUF_FLAG_ERROR``
553 calling the ``VIDIOC_QBUF`` or ``VIDIOC_DQBUF`` it is always389 - 0x00000040
554 cleared. Of course a buffer cannot be on both queues at the same390 - When this flag is set, the buffer has been dequeued successfully,
555 time, the ``V4L2_BUF_FLAG_QUEUED`` and ``V4L2_BUF_FLAG_DONE`` flag391 although the data might have been corrupted. This is recoverable,
556 are mutually exclusive. They can be both cleared however, then the392 streaming may continue as normal and the buffer may be reused
557 buffer is in "dequeued" state, in the application domain so to393 normally. Drivers set this flag when the ``VIDIOC_DQBUF`` ioctl is
558 say.394 called.
559 395 * .. _`V4L2-BUF-FLAG-KEYFRAME`:
560 - .. _`V4L2-BUF-FLAG-ERROR`:396
561 397 - ``V4L2_BUF_FLAG_KEYFRAME``
562 - ``V4L2_BUF_FLAG_ERROR``398 - 0x00000008
563 399 - Drivers set or clear this flag when calling the ``VIDIOC_DQBUF``
564 - 0x00000040400 ioctl. It may be set by video capture devices when the buffer
565 401 contains a compressed image which is a key frame (or field), i. e.
566 - When this flag is set, the buffer has been dequeued successfully,402 can be decompressed on its own. Also known as an I-frame.
567 although the data might have been corrupted. This is recoverable,403 Applications can set this bit when ``type`` refers to an output
568 streaming may continue as normal and the buffer may be reused404 stream.
569 normally. Drivers set this flag when the ``VIDIOC_DQBUF`` ioctl is405 * .. _`V4L2-BUF-FLAG-PFRAME`:
570 called.406
571 407 - ``V4L2_BUF_FLAG_PFRAME``
572 - .. _`V4L2-BUF-FLAG-KEYFRAME`:408 - 0x00000010
573 409 - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags predicted frames
574 - ``V4L2_BUF_FLAG_KEYFRAME``410 or fields which contain only differences to a previous key frame.
575 411 Applications can set this bit when ``type`` refers to an output
576 - 0x00000008412 stream.
577 413 * .. _`V4L2-BUF-FLAG-BFRAME`:
578 - Drivers set or clear this flag when calling the ``VIDIOC_DQBUF``414
579 ioctl. It may be set by video capture devices when the buffer415 - ``V4L2_BUF_FLAG_BFRAME``
580 contains a compressed image which is a key frame (or field), i. e.416 - 0x00000020
581 can be decompressed on its own. Also known as an I-frame.417 - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags a bi-directional
582 Applications can set this bit when ``type`` refers to an output418 predicted frame or field which contains only the differences
583 stream.419 between the current frame and both the preceding and following key
584 420 frames to specify its content. Applications can set this bit when
585 - .. _`V4L2-BUF-FLAG-PFRAME`:421 ``type`` refers to an output stream.
586 422 * .. _`V4L2-BUF-FLAG-TIMECODE`:
587 - ``V4L2_BUF_FLAG_PFRAME``423
588 424 - ``V4L2_BUF_FLAG_TIMECODE``
589 - 0x00000010425 - 0x00000100
590 426 - The ``timecode`` field is valid. Drivers set or clear this flag
591 - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags predicted frames427 when the ``VIDIOC_DQBUF`` ioctl is called. Applications can set
592 or fields which contain only differences to a previous key frame.428 this bit and the corresponding ``timecode`` structure when
593 Applications can set this bit when ``type`` refers to an output429 ``type`` refers to an output stream.
594 stream.430 * .. _`V4L2-BUF-FLAG-PREPARED`:
595 431
596 - .. _`V4L2-BUF-FLAG-BFRAME`:432 - ``V4L2_BUF_FLAG_PREPARED``
597 433 - 0x00000400
598 - ``V4L2_BUF_FLAG_BFRAME``434 - The buffer has been prepared for I/O and can be queued by the
599 435 application. Drivers set or clear this flag when the
600 - 0x00000020436 :ref:`VIDIOC_QUERYBUF`,
601 437 :ref:`VIDIOC_PREPARE_BUF <VIDIOC_QBUF>`,
602 - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags a bi-directional438 :ref:`VIDIOC_QBUF` or
603 predicted frame or field which contains only the differences439 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called.
604 between the current frame and both the preceding and following key440 * .. _`V4L2-BUF-FLAG-NO-CACHE-INVALIDATE`:
605 frames to specify its content. Applications can set this bit when441
606 ``type`` refers to an output stream.442 - ``V4L2_BUF_FLAG_NO_CACHE_INVALIDATE``
607 443 - 0x00000800
608 - .. _`V4L2-BUF-FLAG-TIMECODE`:444 - Caches do not have to be invalidated for this buffer. Typically
609 445 applications shall use this flag if the data captured in the
610 - ``V4L2_BUF_FLAG_TIMECODE``446 buffer is not going to be touched by the CPU, instead the buffer
611 447 will, probably, be passed on to a DMA-capable hardware unit for
612 - 0x00000100448 further processing or output.
613 449 * .. _`V4L2-BUF-FLAG-NO-CACHE-CLEAN`:
614 - The ``timecode`` field is valid. Drivers set or clear this flag450
615 when the ``VIDIOC_DQBUF`` ioctl is called. Applications can set451 - ``V4L2_BUF_FLAG_NO_CACHE_CLEAN``
616 this bit and the corresponding ``timecode`` structure when452 - 0x00001000
617 ``type`` refers to an output stream.453 - Caches do not have to be cleaned for this buffer. Typically
618 454 applications shall use this flag for output buffers if the data in
619 - .. _`V4L2-BUF-FLAG-PREPARED`:455 this buffer has not been created by the CPU but by some
620 456 DMA-capable unit, in which case caches have not been used.
621 - ``V4L2_BUF_FLAG_PREPARED``457 * .. _`V4L2-BUF-FLAG-LAST`:
622 458
623 - 0x00000400459 - ``V4L2_BUF_FLAG_LAST``
624 460 - 0x00100000
625 - The buffer has been prepared for I/O and can be queued by the461 - Last buffer produced by the hardware. mem2mem codec drivers set
626 application. Drivers set or clear this flag when the462 this flag on the capture queue for the last buffer when the
627 :ref:`VIDIOC_QUERYBUF`,463 :ref:`VIDIOC_QUERYBUF` or
628 :ref:`VIDIOC_PREPARE_BUF <VIDIOC_QBUF>`,464 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Due to
629 :ref:`VIDIOC_QBUF` or465 hardware limitations, the last buffer may be empty. In this case
630 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called.466 the driver will set the ``bytesused`` field to 0, regardless of
631 467 the format. Any Any subsequent call to the
632 - .. _`V4L2-BUF-FLAG-NO-CACHE-INVALIDATE`:468 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore,
633 469 but return an ``EPIPE`` error code.
634 - ``V4L2_BUF_FLAG_NO_CACHE_INVALIDATE``470 * .. _`V4L2-BUF-FLAG-TIMESTAMP-MASK`:
635 471
636 - 0x00000800472 - ``V4L2_BUF_FLAG_TIMESTAMP_MASK``
637 473 - 0x0000e000
638 - Caches do not have to be invalidated for this buffer. Typically474 - Mask for timestamp types below. To test the timestamp type, mask
639 applications shall use this flag if the data captured in the475 out bits not belonging to timestamp type by performing a logical
640 buffer is not going to be touched by the CPU, instead the buffer476 and operation with buffer flags and timestamp mask.
641 will, probably, be passed on to a DMA-capable hardware unit for477 * .. _`V4L2-BUF-FLAG-TIMESTAMP-UNKNOWN`:
642 further processing or output.478
643 479 - ``V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN``
644 - .. _`V4L2-BUF-FLAG-NO-CACHE-CLEAN`:480 - 0x00000000
645 481 - Unknown timestamp type. This type is used by drivers before Linux
646 - ``V4L2_BUF_FLAG_NO_CACHE_CLEAN``482 3.9 and may be either monotonic (see below) or realtime (wall
647 483 clock). Monotonic clock has been favoured in embedded systems
648 - 0x00001000484 whereas most of the drivers use the realtime clock. Either kinds
649 485 of timestamps are available in user space via
650 - Caches do not have to be cleaned for this buffer. Typically486 :c:func:`clock_gettime` using clock IDs ``CLOCK_MONOTONIC``
651 applications shall use this flag for output buffers if the data in487 and ``CLOCK_REALTIME``, respectively.
652 this buffer has not been created by the CPU but by some488 * .. _`V4L2-BUF-FLAG-TIMESTAMP-MONOTONIC`:
653 DMA-capable unit, in which case caches have not been used.489
654 490 - ``V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC``
655 - .. _`V4L2-BUF-FLAG-LAST`:491 - 0x00002000
656 492 - The buffer timestamp has been taken from the ``CLOCK_MONOTONIC``
657 - ``V4L2_BUF_FLAG_LAST``493 clock. To access the same clock outside V4L2, use
658 494 :c:func:`clock_gettime`.
659 - 0x00100000495 * .. _`V4L2-BUF-FLAG-TIMESTAMP-COPY`:
660 496
661 - Last buffer produced by the hardware. mem2mem codec drivers set497 - ``V4L2_BUF_FLAG_TIMESTAMP_COPY``
662 this flag on the capture queue for the last buffer when the498 - 0x00004000
663 :ref:`VIDIOC_QUERYBUF` or499 - The CAPTURE buffer timestamp has been taken from the corresponding
664 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Due to500 OUTPUT buffer. This flag applies only to mem2mem devices.
665 hardware limitations, the last buffer may be empty. In this case501 * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-MASK`:
666 the driver will set the ``bytesused`` field to 0, regardless of502
667 the format. Any Any subsequent call to the503 - ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK``
668 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore,504 - 0x00070000
669 but return an ``EPIPE`` error code.505 - Mask for timestamp sources below. The timestamp source defines the
670 506 point of time the timestamp is taken in relation to the frame.
671 - .. _`V4L2-BUF-FLAG-TIMESTAMP-MASK`:507 Logical 'and' operation between the ``flags`` field and
672 508 ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` produces the value of the
673 - ``V4L2_BUF_FLAG_TIMESTAMP_MASK``509 timestamp source. Applications must set the timestamp source when
674 510 ``type`` refers to an output stream and
675 - 0x0000e000511 ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` is set.
676 512 * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-EOF`:
677 - Mask for timestamp types below. To test the timestamp type, mask513
678 out bits not belonging to timestamp type by performing a logical514 - ``V4L2_BUF_FLAG_TSTAMP_SRC_EOF``
679 and operation with buffer flags and timestamp mask.515 - 0x00000000
680 516 - End Of Frame. The buffer timestamp has been taken when the last
681 - .. _`V4L2-BUF-FLAG-TIMESTAMP-UNKNOWN`:517 pixel of the frame has been received or the last pixel of the
682 518 frame has been transmitted. In practice, software generated
683 - ``V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN``519 timestamps will typically be read from the clock a small amount of
684 520 time after the last pixel has been received or transmitten,
685 - 0x00000000521 depending on the system and other activity in it.
686 522 * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-SOE`:
687 - Unknown timestamp type. This type is used by drivers before Linux523
688 3.9 and may be either monotonic (see below) or realtime (wall524 - ``V4L2_BUF_FLAG_TSTAMP_SRC_SOE``
689 clock). Monotonic clock has been favoured in embedded systems525 - 0x00010000
690 whereas most of the drivers use the realtime clock. Either kinds526 - Start Of Exposure. The buffer timestamp has been taken when the
691 of timestamps are available in user space via527 exposure of the frame has begun. This is only valid for the
692 :c:func:`clock_gettime(2)` using clock IDs ``CLOCK_MONOTONIC``528 ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` buffer type.
693 and ``CLOCK_REALTIME``, respectively.529
694 530
695 - .. _`V4L2-BUF-FLAG-TIMESTAMP-MONOTONIC`:531
696 532.. c:type:: v4l2_memory
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:
754 533
755enum v4l2_memory534enum v4l2_memory
756================535================
757 536
537.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
538
758.. flat-table::539.. flat-table::
759 :header-rows: 0540 :header-rows: 0
760 :stub-columns: 0541 :stub-columns: 0
761 :widths: 3 1 4542 :widths: 3 1 4
762 543
763 544 * - ``V4L2_MEMORY_MMAP``
764 - .. row 1545 - 1
765 546 - The buffer is used for :ref:`memory mapping <mmap>` I/O.
766 - ``V4L2_MEMORY_MMAP``547 * - ``V4L2_MEMORY_USERPTR``
767 548 - 2
768 - 1549 - The buffer is used for :ref:`user pointer <userp>` I/O.
769 550 * - ``V4L2_MEMORY_OVERLAY``
770 - The buffer is used for :ref:`memory mapping <mmap>` I/O.551 - 3
771 552 - [to do]
772 - .. row 2553 * - ``V4L2_MEMORY_DMABUF``
773 554 - 4
774 - ``V4L2_MEMORY_USERPTR``555 - The buffer is used for :ref:`DMA shared buffer <dmabuf>` I/O.
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.
795 556
796 557
797 558
798Timecodes559Timecodes
799=========560=========
800 561
801The :ref:`struct v4l2_timecode <v4l2-timecode>` structure is designed to hold a562The struct :c:type:`v4l2_timecode` structure is designed to hold a
802:ref:`smpte12m` or similar timecode. (struct563:ref:`smpte12m` or similar timecode. (struct
803:c:type:`struct timeval` timestamps are stored in struct564struct :c:type:`timeval` timestamps are stored in struct
804:ref:`v4l2_buffer <v4l2-buffer>` field ``timestamp``.)565:c:type:`v4l2_buffer` field ``timestamp``.)
805 566
806 567
807.. _v4l2-timecode:568.. c:type:: v4l2_timecode
808 569
809struct v4l2_timecode570struct v4l2_timecode
810--------------------571--------------------
811 572
573.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
574
812.. flat-table::575.. flat-table::
813 :header-rows: 0576 :header-rows: 0
814 :stub-columns: 0577 :stub-columns: 0
815 :widths: 1 1 2578 :widths: 1 1 2
816 579
817 580 * - __u32
818 - .. row 1581 - ``type``
819 582 - Frame rate the timecodes are based on, see :ref:`timecode-type`.
820 - __u32583 * - __u32
821 584 - ``flags``
822 - ``type``585 - Timecode flags, see :ref:`timecode-flags`.
823 586 * - __u8
824 - Frame rate the timecodes are based on, see :ref:`timecode-type`.587 - ``frames``
825 588 - Frame count, 0 ... 23/24/29/49/59, depending on the type of
826 - .. row 2589 timecode.
827 590 * - __u8
828 - __u32591 - ``seconds``
829 592 - Seconds count, 0 ... 59. This is a binary, not BCD number.
830 - ``flags``593 * - __u8
831 594 - ``minutes``
832 - Timecode flags, see :ref:`timecode-flags`.595 - Minutes count, 0 ... 59. This is a binary, not BCD number.
833 596 * - __u8
834 - .. row 3597 - ``hours``
835 598 - Hours count, 0 ... 29. This is a binary, not BCD number.
836 - __u8599 * - __u8
837 600 - ``userbits``\ [4]
838 - ``frames``601 - The "user group" bits from the timecode.
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.
874 602
875 603
876 604
@@ -879,51 +607,28 @@ struct v4l2_timecode · 2 unmodified lines
879Timecode Types607Timecode Types
880--------------608--------------
881 609
610.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
611
882.. flat-table::612.. flat-table::
883 :header-rows: 0613 :header-rows: 0
884 :stub-columns: 0614 :stub-columns: 0
885 :widths: 3 1 4615 :widths: 3 1 4
886 616
887 617 * - ``V4L2_TC_TYPE_24FPS``
888 - .. row 1618 - 1
889 619 - 24 frames per second, i. e. film.
890 - ``V4L2_TC_TYPE_24FPS``620 * - ``V4L2_TC_TYPE_25FPS``
891 621 - 2
892 - 1622 - 25 frames per second, i. e. PAL or SECAM video.
893 623 * - ``V4L2_TC_TYPE_30FPS``
894 - 24 frames per second, i. e. film.624 - 3
895 625 - 30 frames per second, i. e. NTSC video.
896 - .. row 2626 * - ``V4L2_TC_TYPE_50FPS``
897 627 - 4
898 - ``V4L2_TC_TYPE_25FPS``628 -
899 629 * - ``V4L2_TC_TYPE_60FPS``
900 - 2630 - 5
901 631 -
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 -
927 632
928 633
929 634
@@ -932,51 +637,28 @@ Timecode Types · 2 unmodified lines
932Timecode Flags637Timecode Flags
933--------------638--------------
934 639
640.. tabularcolumns:: |p{6.6cm}|p{1.4cm}|p{9.5cm}|
641
935.. flat-table::642.. flat-table::
936 :header-rows: 0643 :header-rows: 0
937 :stub-columns: 0644 :stub-columns: 0
938 :widths: 3 1 4645 :widths: 3 1 4
939 646
940 647 * - ``V4L2_TC_FLAG_DROPFRAME``
941 - .. row 1648 - 0x0001
942 649 - Indicates "drop frame" semantics for counting frames in 29.97 fps
943 - ``V4L2_TC_FLAG_DROPFRAME``650 material. When set, frame numbers 0 and 1 at the start of each
944 651 minute, except minutes 0, 10, 20, 30, 40, 50 are omitted from the
945 - 0x0001652 count.
946 653 * - ``V4L2_TC_FLAG_COLORFRAME``
947 - Indicates "drop frame" semantics for counting frames in 29.97 fps654 - 0x0002
948 material. When set, frame numbers 0 and 1 at the start of each655 - The "color frame" flag.
949 minute, except minutes 0, 10, 20, 30, 40, 50 are omitted from the656 * - ``V4L2_TC_USERBITS_field``
950 count.657 - 0x000C
951 658 - Field mask for the "binary group flags".
952 - .. row 2659 * - ``V4L2_TC_USERBITS_USERDEFINED``
953 660 - 0x0000
954 - ``V4L2_TC_FLAG_COLORFRAME``661 - Unspecified format.
955 662 * - ``V4L2_TC_USERBITS_8BITCHARS``
956 - 0x0002663 - 0x0008
957 664 - 8-bit ISO characters.
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.
Documentation/media/uapi/v4l/control.rst+39−100
@@ -191,109 +191,48 @@ Control IDs · 190 unmodified lines
191 191
192 192
193 193
194.. tabularcolumns:: |p{5.5cm}|p{12cm}|
195
194.. flat-table::196.. flat-table::
195 :header-rows: 0197 :header-rows: 0
196 :stub-columns: 0198 :stub-columns: 0
197 199 :widths: 11 24
198 200
199 - .. row 1201 * - ``V4L2_COLORFX_NONE``
200 202 - Color effect is disabled.
201 - ``V4L2_COLORFX_NONE``203 * - ``V4L2_COLORFX_ANTIQUE``
202 204 - An aging (old photo) effect.
203 - Color effect is disabled.205 * - ``V4L2_COLORFX_ART_FREEZE``
204 206 - Frost color effect.
205 - .. row 2207 * - ``V4L2_COLORFX_AQUA``
206 208 - Water color, cool tone.
207 - ``V4L2_COLORFX_ANTIQUE``209 * - ``V4L2_COLORFX_BW``
208 210 - Black and white.
209 - An aging (old photo) effect.211 * - ``V4L2_COLORFX_EMBOSS``
210 212 - Emboss, the highlights and shadows replace light/dark boundaries
211 - .. row 3213 and low contrast areas are set to a gray background.
212 214 * - ``V4L2_COLORFX_GRASS_GREEN``
213 - ``V4L2_COLORFX_ART_FREEZE``215 - Grass green.
214 216 * - ``V4L2_COLORFX_NEGATIVE``
215 - Frost color effect.217 - Negative.
216 218 * - ``V4L2_COLORFX_SEPIA``
217 - .. row 4219 - Sepia tone.
218 220 * - ``V4L2_COLORFX_SKETCH``
219 - ``V4L2_COLORFX_AQUA``221 - Sketch.
220 222 * - ``V4L2_COLORFX_SKIN_WHITEN``
221 - Water color, cool tone.223 - Skin whiten.
222 224 * - ``V4L2_COLORFX_SKY_BLUE``
223 - .. row 5225 - Sky blue.
224 226 * - ``V4L2_COLORFX_SOLARIZATION``
225 - ``V4L2_COLORFX_BW``227 - Solarization, the image is partially reversed in tone, only color
226 228 values above or below a certain threshold are inverted.
227 - Black and white.229 * - ``V4L2_COLORFX_SILHOUETTE``
228 230 - Silhouette (outline).
229 - .. row 6231 * - ``V4L2_COLORFX_VIVID``
230 232 - Vivid colors.
231 - ``V4L2_COLORFX_EMBOSS``233 * - ``V4L2_COLORFX_SET_CBCR``
232 234 - The Cb and Cr chroma components are replaced by fixed coefficients
233 - Emboss, the highlights and shadows replace light/dark boundaries235 determined by ``V4L2_CID_COLORFX_CBCR`` control.
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.
297 236
298 237
299 238
Documentation/media/uapi/v4l/crop.rst+16−10
@@ -15,7 +15,9 @@ offset into a video signal. · 14 unmodified lines
15Applications can use the following API to select an area in the video15Applications can use the following API to select an area in the video
16signal, query the default area and the hardware limits.16signal, query the default area and the hardware limits.
17 17
18.. note:: Despite their name, the :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>`,18.. note::
19
20 Despite their name, the :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>`,
19 :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and :ref:`VIDIOC_S_CROP21 :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and :ref:`VIDIOC_S_CROP
20 <VIDIOC_G_CROP>` ioctls apply to input as well as output devices.22 <VIDIOC_G_CROP>` ioctls apply to input as well as output devices.
21 23
@@ -38,7 +40,9 @@ support scaling or the :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and · 16 unmodified lines
38:ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` ioctls. Their size (and position40:ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` ioctls. Their size (and position
39where applicable) will be fixed in this case.41where applicable) will be fixed in this case.
40 42
41.. note:: All capture and output devices must support the43.. note::
44
45 All capture and output devices must support the
42 :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>` ioctl such that applications46 :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>` ioctl such that applications
43 can determine if scaling takes place.47 can determine if scaling takes place.
44 48
@@ -61,7 +65,7 @@ Cropping Structures · 16 unmodified lines
61 65
62For capture devices the coordinates of the top left corner, width and66For capture devices the coordinates of the top left corner, width and
63height of the area which can be sampled is given by the ``bounds``67height of the area which can be sampled is given by the ``bounds``
64substructure of the struct :ref:`v4l2_cropcap <v4l2-cropcap>` returned68substructure of the struct :c:type:`v4l2_cropcap` returned
65by the :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>` ioctl. To support a wide69by the :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>` ioctl. To support a wide
66range of hardware this specification does not define an origin or units.70range of hardware this specification does not define an origin or units.
67However by convention drivers should horizontally count unscaled samples71However by convention drivers should horizontally count unscaled samples
@@ -73,8 +77,8 @@ can capture both fields. · 5 unmodified lines
73 77
74The top left corner, width and height of the source rectangle, that is78The top left corner, width and height of the source rectangle, that is
75the area actually sampled, is given by struct79the area actually sampled, is given by struct
76:ref:`v4l2_crop <v4l2-crop>` using the same coordinate system as80:c:type:`v4l2_crop` using the same coordinate system as
77struct :ref:`v4l2_cropcap <v4l2-cropcap>`. Applications can use the81struct :c:type:`v4l2_cropcap`. Applications can use the
78:ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>`82:ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>`
79ioctls to get and set this rectangle. It must lie completely within the83ioctls to get and set this rectangle. It must lie completely within the
80capture boundaries and the driver may further adjust the requested size84capture boundaries and the driver may further adjust the requested size
@@ -82,7 +86,7 @@ and/or position according to hardware limitations. · 1 unmodified line
82 86
83Each capture device has a default source rectangle, given by the87Each capture device has a default source rectangle, given by the
84``defrect`` substructure of struct88``defrect`` substructure of struct
85:ref:`v4l2_cropcap <v4l2-cropcap>`. The center of this rectangle89:c:type:`v4l2_cropcap`. The center of this rectangle
86shall align with the center of the active picture area of the video90shall align with the center of the active picture area of the video
87signal, and cover what the driver writer considers the complete picture.91signal, and cover what the driver writer considers the complete picture.
88Drivers shall reset the source rectangle to the default when the driver92Drivers 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
100limitations. It may only scale up or down, support only discrete scaling104limitations. It may only scale up or down, support only discrete scaling
101factors, or have different scaling abilities in horizontal and vertical105factors, or have different scaling abilities in horizontal and vertical
102direction. Also it may not support scaling at all. At the same time the106direction. Also it may not support scaling at all. At the same time the
103struct :ref:`v4l2_crop <v4l2-crop>` rectangle may have to be aligned,107struct :c:type:`v4l2_crop` rectangle may have to be aligned,
104and both the source and target rectangles may have arbitrary upper and108and both the source and target rectangles may have arbitrary upper and
105lower size limits. In particular the maximum ``width`` and ``height`` in109lower size limits. In particular the maximum ``width`` and ``height`` in
106struct :ref:`v4l2_crop <v4l2-crop>` may be smaller than the struct110struct :c:type:`v4l2_crop` may be smaller than the struct
107:ref:`v4l2_cropcap <v4l2-cropcap>`. ``bounds`` area. Therefore, as111:c:type:`v4l2_cropcap`. ``bounds`` area. Therefore, as
108usual, drivers are expected to adjust the requested parameters and112usual, drivers are expected to adjust the requested parameters and
109return the actual values selected.113return the actual values selected.
110 114
@@ -144,7 +148,9 @@ reopening a device, such that piping data into or out of a device will · 33 unmodified lines
144work without special preparations. More advanced applications should148work without special preparations. More advanced applications should
145ensure the parameters are suitable before starting I/O.149ensure the parameters are suitable before starting I/O.
146 150
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;
148 change ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` for other types of device.154 change ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` for other types of device.
149 155
150Example: Resetting the cropping parameters156Example: Resetting the cropping parameters
Documentation/media/uapi/v4l/dev-capture.rst+8−8
@@ -26,7 +26,7 @@ Querying Capabilities · 25 unmodified lines
26Devices supporting the video capture interface set the26Devices supporting the video capture interface set the
27``V4L2_CAP_VIDEO_CAPTURE`` or ``V4L2_CAP_VIDEO_CAPTURE_MPLANE`` flag in27``V4L2_CAP_VIDEO_CAPTURE`` or ``V4L2_CAP_VIDEO_CAPTURE_MPLANE`` flag in
28the ``capabilities`` field of struct28the ``capabilities`` field of struct
29:ref:`v4l2_capability <v4l2-capability>` returned by the29:c:type:`v4l2_capability` returned by the
30:ref:`VIDIOC_QUERYCAP` ioctl. As secondary device30:ref:`VIDIOC_QUERYCAP` ioctl. As secondary device
31functions they may also support the :ref:`video overlay <overlay>`31functions they may also support the :ref:`video overlay <overlay>`
32(``V4L2_CAP_VIDEO_OVERLAY``) and the :ref:`raw VBI capture <raw-vbi>`32(``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
64defaults. An example is given in :ref:`crop`.64defaults. An example is given in :ref:`crop`.
65 65
66To query the current image format applications set the ``type`` field of66To query the current image format applications set the ``type`` field of
67a struct :ref:`v4l2_format <v4l2-format>` to67a struct :c:type:`v4l2_format` to
68``V4L2_BUF_TYPE_VIDEO_CAPTURE`` or68``V4L2_BUF_TYPE_VIDEO_CAPTURE`` or
69``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE`` and call the69``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE`` and call the
70:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer to this70:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer to this
71structure. Drivers fill the struct71structure. Drivers fill the struct
72:ref:`v4l2_pix_format <v4l2-pix-format>` ``pix`` or the struct72:c:type:`v4l2_pix_format` ``pix`` or the struct
73:ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` ``pix_mp``73:c:type:`v4l2_pix_format_mplane` ``pix_mp``
74member of the ``fmt`` union.74member of the ``fmt`` union.
75 75
76To request different parameters applications set the ``type`` field of a76To request different parameters applications set the ``type`` field of a
77struct :ref:`v4l2_format <v4l2-format>` as above and initialize all77struct :c:type:`v4l2_format` as above and initialize all
78fields of the struct :ref:`v4l2_pix_format <v4l2-pix-format>`78fields of the struct :c:type:`v4l2_pix_format`
79``vbi`` member of the ``fmt`` union, or better just modify the results79``vbi`` member of the ``fmt`` union, or better just modify the results
80of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`80of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`
81ioctl with a pointer to this structure. Drivers may adjust the81ioctl 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
86can be used to learn about hardware limitations without disabling I/O or86can be used to learn about hardware limitations without disabling I/O or
87possibly time consuming hardware preparations.87possibly time consuming hardware preparations.
88 88
89The contents of struct :ref:`v4l2_pix_format <v4l2-pix-format>` and89The contents of struct :c:type:`v4l2_pix_format` and
90struct :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` are90struct :c:type:`v4l2_pix_format_mplane` are
91discussed in :ref:`pixfmt`. See also the specification of the91discussed in :ref:`pixfmt`. See also the specification of the
92:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` and :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctls for92:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` and :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctls for
93details. Video capture devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`93details. 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
21Video compression codecs use the MPEG controls to setup their codec21Video compression codecs use the MPEG controls to setup their codec
22parameters22parameters
23 23
24.. note:: The MPEG controls actually support many more codecs than24.. note::
25
26 The MPEG controls actually support many more codecs than
25 just MPEG. See :ref:`mpeg-controls`.27 just MPEG. See :ref:`mpeg-controls`.
26 28
27Memory-to-memory devices can often be used as a shared resource: you can29Memory-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
16The OSD function is accessible through the same character special file16The OSD function is accessible through the same character special file
17as the :ref:`Video Output <capture>` function.17as the :ref:`Video Output <capture>` function.
18 18
19.. note:: The default function of such a ``/dev/video`` device is video19.. note::
20
21 The default function of such a ``/dev/video`` device is video
20 capturing or output. The OSD function is only available after calling22 capturing or output. The OSD function is only available after calling
21 the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.23 the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.
22 24
@@ -26,7 +28,7 @@ Querying Capabilities · 3 unmodified lines
26 28
27Devices supporting the *Video Output Overlay* interface set the29Devices supporting the *Video Output Overlay* interface set the
28``V4L2_CAP_VIDEO_OUTPUT_OVERLAY`` flag in the ``capabilities`` field of30``V4L2_CAP_VIDEO_OUTPUT_OVERLAY`` flag in the ``capabilities`` field of
29struct :ref:`v4l2_capability <v4l2-capability>` returned by the31struct :c:type:`v4l2_capability` returned by the
30:ref:`VIDIOC_QUERYCAP` ioctl.32:ref:`VIDIOC_QUERYCAP` ioctl.
31 33
32 34
@@ -39,11 +41,11 @@ accessible as a framebuffer device (``/dev/fbN``). Given a V4L2 device, · 6 unmodified lines
39applications can find the corresponding framebuffer device by calling41applications can find the corresponding framebuffer device by calling
40the :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` ioctl. It returns, amongst42the :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` ioctl. It returns, amongst
41other information, the physical address of the framebuffer in the43other 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`.
43The framebuffer device ioctl ``FBIOGET_FSCREENINFO`` returns the same45The framebuffer device ioctl ``FBIOGET_FSCREENINFO`` returns the same
44address in the ``smem_start`` field of struct46address in the ``smem_start`` field of struct
45:c:type:`struct fb_fix_screeninfo`. The ``FBIOGET_FSCREENINFO``47struct :c:type:`fb_fix_screeninfo`. The ``FBIOGET_FSCREENINFO``
46ioctl and struct :c:type:`struct fb_fix_screeninfo` are defined in48ioctl and struct :c:type:`fb_fix_screeninfo` are defined in
47the ``linux/fb.h`` header file.49the ``linux/fb.h`` header file.
48 50
49The width and height of the framebuffer depends on the current video51The 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
112(or none) of the clipping/blending methods defined for the114(or none) of the clipping/blending methods defined for the
113:ref:`Video Overlay <overlay>` interface.115:ref:`Video Overlay <overlay>` interface.
114 116
115A struct :ref:`v4l2_window <v4l2-window>` defines the size of the117A struct :c:type:`v4l2_window` defines the size of the
116source rectangle, its position in the framebuffer and the118source rectangle, its position in the framebuffer and the
117clipping/blending method to be used for the overlay. To get the current119clipping/blending method to be used for the overlay. To get the current
118parameters applications set the ``type`` field of a struct120parameters applications set the ``type`` field of a struct
119:ref:`v4l2_format <v4l2-format>` to121:c:type:`v4l2_format` to
120``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY`` and call the122``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY`` and call the
121:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl. The driver fills the123:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl. The driver fills the
122:ref:`struct v4l2_window <v4l2-window>` substructure named ``win``. It is not124struct :c:type:`v4l2_window` substructure named ``win``. It is not
123possible to retrieve a previously programmed clipping list or bitmap.125possible to retrieve a previously programmed clipping list or bitmap.
124 126
125To program the source rectangle applications set the ``type`` field of a127To program the source rectangle applications set the ``type`` field of a
126struct :ref:`v4l2_format <v4l2-format>` to128struct :c:type:`v4l2_format` to
127``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY``, initialize the ``win``129``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY``, initialize the ``win``
128substructure and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.130substructure and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.
129The driver adjusts the parameters against hardware limits and returns131The 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
132about driver capabilities without actually changing driver state. Unlike134about driver capabilities without actually changing driver state. Unlike
133:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` this also works after the overlay has been enabled.135:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` this also works after the overlay has been enabled.
134 136
135A struct :ref:`v4l2_crop <v4l2-crop>` defines the size and position137A struct :c:type:`v4l2_crop` defines the size and position
136of the target rectangle. The scaling factor of the overlay is implied by138of the target rectangle. The scaling factor of the overlay is implied by
137the width and height given in struct :ref:`v4l2_window <v4l2-window>`139the width and height given in struct :c:type:`v4l2_window`
138and struct :ref:`v4l2_crop <v4l2-crop>`. The cropping API applies to140and struct :c:type:`v4l2_crop`. The cropping API applies to
139*Video Output* and *Video Output Overlay* devices in the same way as to141*Video Output* and *Video Output Overlay* devices in the same way as to
140*Video Capture* and *Video Overlay* devices, merely reversing the142*Video Capture* and *Video Overlay* devices, merely reversing the
141direction of the data flow. For more information see :ref:`crop`.143direction 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
16``/dev/video`` is typically a symbolic link to the preferred video16``/dev/video`` is typically a symbolic link to the preferred video
17device.17device.
18 18
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.
20 20
21 21
22Querying Capabilities22Querying Capabilities
@@ -25,7 +25,7 @@ Querying Capabilities · 2 unmodified lines
25Devices supporting the video output interface set the25Devices supporting the video output interface set the
26``V4L2_CAP_VIDEO_OUTPUT`` or ``V4L2_CAP_VIDEO_OUTPUT_MPLANE`` flag in26``V4L2_CAP_VIDEO_OUTPUT`` or ``V4L2_CAP_VIDEO_OUTPUT_MPLANE`` flag in
27the ``capabilities`` field of struct27the ``capabilities`` field of struct
28:ref:`v4l2_capability <v4l2-capability>` returned by the28:c:type:`v4l2_capability` returned by the
29:ref:`VIDIOC_QUERYCAP` ioctl. As secondary device29:ref:`VIDIOC_QUERYCAP` ioctl. As secondary device
30functions they may also support the :ref:`raw VBI output <raw-vbi>`30functions they may also support the :ref:`raw VBI output <raw-vbi>`
31(``V4L2_CAP_VBI_OUTPUT``) interface. At least one of the read/write or31(``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
62defaults. An example is given in :ref:`crop`.62defaults. An example is given in :ref:`crop`.
63 63
64To query the current image format applications set the ``type`` field of64To query the current image format applications set the ``type`` field of
65a struct :ref:`v4l2_format <v4l2-format>` to65a struct :c:type:`v4l2_format` to
66``V4L2_BUF_TYPE_VIDEO_OUTPUT`` or ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``66``V4L2_BUF_TYPE_VIDEO_OUTPUT`` or ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``
67and call the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer67and call the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer
68to this structure. Drivers fill the struct68to this structure. Drivers fill the struct
69:ref:`v4l2_pix_format <v4l2-pix-format>` ``pix`` or the struct69:c:type:`v4l2_pix_format` ``pix`` or the struct
70:ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` ``pix_mp``70:c:type:`v4l2_pix_format_mplane` ``pix_mp``
71member of the ``fmt`` union.71member of the ``fmt`` union.
72 72
73To request different parameters applications set the ``type`` field of a73To request different parameters applications set the ``type`` field of a
74struct :ref:`v4l2_format <v4l2-format>` as above and initialize all74struct :c:type:`v4l2_format` as above and initialize all
75fields of the struct :ref:`v4l2_pix_format <v4l2-pix-format>`75fields of the struct :c:type:`v4l2_pix_format`
76``vbi`` member of the ``fmt`` union, or better just modify the results76``vbi`` member of the ``fmt`` union, or better just modify the results
77of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`77of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`
78ioctl with a pointer to this structure. Drivers may adjust the78ioctl 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
83can be used to learn about hardware limitations without disabling I/O or83can be used to learn about hardware limitations without disabling I/O or
84possibly time consuming hardware preparations.84possibly time consuming hardware preparations.
85 85
86The contents of struct :ref:`v4l2_pix_format <v4l2-pix-format>` and86The contents of struct :c:type:`v4l2_pix_format` and
87struct :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` are87struct :c:type:`v4l2_pix_format_mplane` are
88discussed in :ref:`pixfmt`. See also the specification of the88discussed in :ref:`pixfmt`. See also the specification of the
89:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` and :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctls for89:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` and :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctls for
90details. Video output devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`90details. 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
19Video overlay devices are accessed through the same character special19Video overlay devices are accessed through the same character special
20files as :ref:`video capture <capture>` devices.20files as :ref:`video capture <capture>` devices.
21 21
22.. note:: The default function of a ``/dev/video`` device is video22.. note::
23
24 The default function of a ``/dev/video`` device is video
23 capturing. The overlay function is only available after calling25 capturing. The overlay function is only available after calling
24 the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.26 the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.
25 27
@@ -41,7 +43,7 @@ Querying Capabilities · 15 unmodified lines
41 43
42Devices supporting the video overlay interface set the44Devices supporting the video overlay interface set the
43``V4L2_CAP_VIDEO_OVERLAY`` flag in the ``capabilities`` field of struct45``V4L2_CAP_VIDEO_OVERLAY`` flag in the ``capabilities`` field of struct
44:ref:`v4l2_capability <v4l2-capability>` returned by the46:c:type:`v4l2_capability` returned by the
45:ref:`VIDIOC_QUERYCAP` ioctl. The overlay I/O47:ref:`VIDIOC_QUERYCAP` ioctl. The overlay I/O
46method specified below must be supported. Tuners and audio inputs are48method specified below must be supported. Tuners and audio inputs are
47optional.49optional.
@@ -117,17 +119,17 @@ at minimum requires to reset the parameters to defaults. An example is · 69 unmodified lines
117given in :ref:`crop`.119given in :ref:`crop`.
118 120
119The overlay window is described by a struct121The 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,
121its position over the graphics surface and the clipping to be applied.123its position over the graphics surface and the clipping to be applied.
122To get the current parameters applications set the ``type`` field of a124To get the current parameters applications set the ``type`` field of a
123struct :ref:`v4l2_format <v4l2-format>` to125struct :c:type:`v4l2_format` to
124``V4L2_BUF_TYPE_VIDEO_OVERLAY`` and call the126``V4L2_BUF_TYPE_VIDEO_OVERLAY`` and call the
125:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl. The driver fills the127:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl. The driver fills the
126:ref:`struct v4l2_window <v4l2-window>` substructure named ``win``. It is not128struct :c:type:`v4l2_window` substructure named ``win``. It is not
127possible to retrieve a previously programmed clipping list or bitmap.129possible to retrieve a previously programmed clipping list or bitmap.
128 130
129To program the overlay window applications set the ``type`` field of a131To program the overlay window applications set the ``type`` field of a
130struct :ref:`v4l2_format <v4l2-format>` to132struct :c:type:`v4l2_format` to
131``V4L2_BUF_TYPE_VIDEO_OVERLAY``, initialize the ``win`` substructure and133``V4L2_BUF_TYPE_VIDEO_OVERLAY``, initialize the ``win`` substructure and
132call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. The driver134call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. The driver
133adjusts the parameters against hardware limits and returns the actual135adjusts 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
137:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` this also works after the overlay has been enabled.139:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` this also works after the overlay has been enabled.
138 140
139The scaling factor of the overlaid image is implied by the width and141The scaling factor of the overlaid image is implied by the width and
140height given in struct :ref:`v4l2_window <v4l2-window>` and the size142height given in struct :c:type:`v4l2_window` and the size
141of the cropping rectangle. For more information see :ref:`crop`.143of the cropping rectangle. For more information see :ref:`crop`.
142 144
143When simultaneous capturing and overlay is supported and the hardware145When 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
147code or return accordingly modified parameters.149code or return accordingly modified parameters.
148 150
149 151
150.. _v4l2-window:152.. c:type:: v4l2_window
151 153
152struct v4l2_window154struct v4l2_window
153------------------155------------------
@@ -173,7 +175,7 @@ struct v4l2_window · 19 unmodified lines
173 :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` applications set this field175 :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` applications set this field
174 to the desired pixel value for the chroma key. The format is the176 to the desired pixel value for the chroma key. The format is the
175 same as the pixel format of the framebuffer (struct177 same as the pixel format of the framebuffer (struct
176 :ref:`v4l2_framebuffer <v4l2-framebuffer>` ``fmt.pixelformat``178 :c:type:`v4l2_framebuffer` ``fmt.pixelformat``
177 field), with bytes in host order. E. g. for179 field), with bytes in host order. E. g. for
178 :ref:`V4L2_PIX_FMT_BGR24 <V4L2-PIX-FMT-BGR32>` the value should180 :ref:`V4L2_PIX_FMT_BGR24 <V4L2-PIX-FMT-BGR32>` the value should
179 be 0xRRGGBB on a little endian, 0xBBGGRR on a big endian host.181 be 0xRRGGBB on a little endian, 0xBBGGRR on a big endian host.
@@ -236,13 +238,15 @@ exceeded are undefined. [#f3]_ · 56 unmodified lines
236 :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>`,238 :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>`,
237 :ref:`framebuffer-flags`).239 :ref:`framebuffer-flags`).
238 240
239 .. note:: This field was added in Linux 2.6.23, extending the241.. note::
240 structure. However the :ref:`VIDIOC_[G|S|TRY]_FMT <VIDIOC_G_FMT>`242
241 ioctls, which take a pointer to a :ref:`v4l2_format <v4l2-format>`243 This field was added in Linux 2.6.23, extending the
242 parent structure with padding bytes at the end, are not affected.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.
243 247
244 248
245.. _v4l2-clip:249.. c:type:: v4l2_clip
246 250
247struct v4l2_clip [#f4]_251struct v4l2_clip [#f4]_
248-----------------------252-----------------------
@@ -258,7 +262,7 @@ struct v4l2_clip [#f4]_ · 9 unmodified lines
258 linked list of clipping rectangles.262 linked list of clipping rectangles.
259 263
260 264
261.. _v4l2-rect:265.. c:type:: v4l2_rect
262 266
263struct v4l2_rect267struct v4l2_rect
264----------------268----------------
Documentation/media/uapi/v4l/dev-radio.rst+1−1
@@ -20,7 +20,7 @@ Querying Capabilities · 19 unmodified lines
20Devices supporting the radio interface set the ``V4L2_CAP_RADIO`` and20Devices supporting the radio interface set the ``V4L2_CAP_RADIO`` and
21``V4L2_CAP_TUNER`` or ``V4L2_CAP_MODULATOR`` flag in the21``V4L2_CAP_TUNER`` or ``V4L2_CAP_MODULATOR`` flag in the
22``capabilities`` field of struct22``capabilities`` field of struct
23:ref:`v4l2_capability <v4l2-capability>` returned by the23:c:type:`v4l2_capability` returned by the
24:ref:`VIDIOC_QUERYCAP` ioctl. Other combinations of24:ref:`VIDIOC_QUERYCAP` ioctl. Other combinations of
25capability flags are reserved for future extensions.25capability flags are reserved for future extensions.
26 26
Documentation/media/uapi/v4l/dev-raw-vbi.rst+110−157
@@ -39,7 +39,7 @@ Querying Capabilities · 38 unmodified lines
39Devices supporting the raw VBI capturing or output API set the39Devices supporting the raw VBI capturing or output API set the
40``V4L2_CAP_VBI_CAPTURE`` or ``V4L2_CAP_VBI_OUTPUT`` flags, respectively,40``V4L2_CAP_VBI_CAPTURE`` or ``V4L2_CAP_VBI_OUTPUT`` flags, respectively,
41in the ``capabilities`` field of struct41in the ``capabilities`` field of struct
42:ref:`v4l2_capability <v4l2-capability>` returned by the42:c:type:`v4l2_capability` returned by the
43:ref:`VIDIOC_QUERYCAP` ioctl. At least one of the43:ref:`VIDIOC_QUERYCAP` ioctl. At least one of the
44read/write, streaming or asynchronous I/O methods must be supported. VBI44read/write, streaming or asynchronous I/O methods must be supported. VBI
45devices may or may not have a tuner or modulator.45devices 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
69parameters and then checking if the actual parameters are suitable.69parameters and then checking if the actual parameters are suitable.
70 70
71To query the current raw VBI capture parameters applications set the71To query the current raw VBI capture parameters applications set the
72``type`` field of a struct :ref:`v4l2_format <v4l2-format>` to72``type`` field of a struct :c:type:`v4l2_format` to
73``V4L2_BUF_TYPE_VBI_CAPTURE`` or ``V4L2_BUF_TYPE_VBI_OUTPUT``, and call73``V4L2_BUF_TYPE_VBI_CAPTURE`` or ``V4L2_BUF_TYPE_VBI_OUTPUT``, and call
74the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer to this74the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer to this
75structure. Drivers fill the struct75structure. Drivers fill the struct
76:ref:`v4l2_vbi_format <v4l2-vbi-format>` ``vbi`` member of the76:c:type:`v4l2_vbi_format` ``vbi`` member of the
77``fmt`` union.77``fmt`` union.
78 78
79To request different parameters applications set the ``type`` field of a79To request different parameters applications set the ``type`` field of a
80struct :ref:`v4l2_format <v4l2-format>` as above and initialize all80struct :c:type:`v4l2_format` as above and initialize all
81fields of the struct :ref:`v4l2_vbi_format <v4l2-vbi-format>`81fields of the struct :c:type:`v4l2_vbi_format`
82``vbi`` member of the ``fmt`` union, or better just modify the results82``vbi`` member of the ``fmt`` union, or better just modify the results
83of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`83of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`
84ioctl with a pointer to this structure. Drivers return an ``EINVAL`` error84ioctl 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
99and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does.99and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does.
100:ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` is optional.100:ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` is optional.
101 101
102.. tabularcolumns:: |p{2.4cm}|p{4.4cm}|p{10.7cm}|
102 103
103.. _v4l2-vbi-format:104.. c:type:: v4l2_vbi_format
105
106.. cssclass:: longtable
104 107
105.. flat-table:: struct v4l2_vbi_format108.. flat-table:: struct v4l2_vbi_format
106 :header-rows: 0109 :header-rows: 0
107 :stub-columns: 0110 :stub-columns: 0
108 :widths: 1 1 2111 :widths: 1 1 2
109 112
110 113 * - __u32
111 - .. row 1114 - ``sampling_rate``
112 115 - Samples per second, i. e. unit 1 Hz.
113 - __u32116 * - __u32
114 117 - ``offset``
115 - ``sampling_rate``118 - Horizontal offset of the VBI image, relative to the leading edge
116 119 of the line synchronization pulse and counted in samples: The
117 - Samples per second, i. e. unit 1 Hz.120 first sample in the VBI image will be located ``offset`` /
118 121 ``sampling_rate`` seconds following the leading edge. See also
119 - .. row 2122 :ref:`vbi-hsync`.
120 123 * - __u32
121 - __u32124 - ``samples_per_line``
122 125 -
123 - ``offset``126 * - __u32
124 127 - ``sample_format``
125 - Horizontal offset of the VBI image, relative to the leading edge128 - Defines the sample format as in :ref:`pixfmt`, a
126 of the line synchronization pulse and counted in samples: The129 four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``,
127 first sample in the VBI image will be located ``offset`` /130 i. e. each sample consists of 8 bits with lower values oriented
128 ``sampling_rate`` seconds following the leading edge. See also131 towards the black level. Do not assume any other correlation of
129 :ref:`vbi-hsync`.132 values with the signal level. For example, the MSB does not
130 133 necessarily indicate if the signal is 'high' or 'low' because 128
131 - .. row 3134 may not be the mean value of the signal. Drivers shall not convert
132 135 the sample format by software.
133 - __u32136 * - __u32
134 137 - ``start``\ [#f2]_
135 - ``samples_per_line``138 - This is the scanning system line number associated with the first
136 139 line of the VBI image, of the first and the second field
137 -140 respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid
138 141 values. The ``V4L2_VBI_ITU_525_F1_START``,
139 - .. row 4142 ``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and
140 143 ``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers
141 - __u32144 for each field for each 525 or 625 line format as a convenience.
142 145 Don't forget that ITU line numbering starts at 1, not 0. VBI input
143 - ``sample_format``146 drivers can return start values 0 if the hardware cannot reliable
144 147 identify scanning lines, VBI acquisition may not require this
145 - Defines the sample format as in :ref:`pixfmt`, a148 information.
146 four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``,149 * - __u32
147 i. e. each sample consists of 8 bits with lower values oriented150 - ``count``\ [#f2]_
148 towards the black level. Do not assume any other correlation of151 - The number of lines in the first and second field image,
149 values with the signal level. For example, the MSB does not152 respectively.
150 necessarily indicate if the signal is 'high' or 'low' because 128153 * - :cspan:`2`
151 may not be the mean value of the signal. Drivers shall not convert154
152 the sample format by software.155 Drivers should be as flexibility as possible. For example, it may
153 156 be possible to extend or move the VBI capture window down to the
154 - .. row 5157 picture area, implementing a 'full field mode' to capture data
155 158 service transmissions embedded in the picture.
156 - __u32159
157 160 An application can set the first or second ``count`` value to zero
158 - ``start``\ [#f2]_161 if no data is required from the respective field; ``count``\ [1]
159 162 if the scanning system is progressive, i. e. not interlaced. The
160 - This is the scanning system line number associated with the first163 corresponding start value shall be ignored by the application and
161 line of the VBI image, of the first and the second field164 driver. Anyway, drivers may not support single field capturing and
162 respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid165 return both count values non-zero.
163 values. The ``V4L2_VBI_ITU_525_F1_START``,166
164 ``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and167 Both ``count`` values set to zero, or line numbers are outside the
165 ``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers168 bounds depicted\ [#f4]_, or a field image covering lines of two
166 for each field for each 525 or 625 line format as a convenience.169 fields, are invalid and shall not be returned by the driver.
167 Don't forget that ITU line numbering starts at 1, not 0. VBI input170
168 drivers can return start values 0 if the hardware cannot reliable171 To initialize the ``start`` and ``count`` fields, applications
169 identify scanning lines, VBI acquisition may not require this172 must first determine the current video standard selection. The
170 information.173 :ref:`v4l2_std_id <v4l2-std-id>` or the ``framelines`` field
171 174 of struct :c:type:`v4l2_standard` can be evaluated
172 - .. row 6175 for this purpose.
173 176 * - __u32
174 - __u32177 - ``flags``
175 178 - See :ref:`vbifmt-flags` below. Currently only drivers set flags,
176 - ``count``\ [#f2]_179 applications must set this field to zero.
177 180 * - __u32
178 - The number of lines in the first and second field image,181 - ``reserved``\ [#f2]_
179 respectively.182 - This array is reserved for future extensions. Drivers and
180 183 applications must set it to zero.
181 - .. row 7184
182 185
183 - :cspan:`2`186.. tabularcolumns:: |p{4.0cm}|p{1.5cm}|p{12.0cm}|
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
227 187
228.. _vbifmt-flags:188.. _vbifmt-flags:
229 189
@@ -232,40 +192,30 @@ and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does · 2 unmodified lines
232 :stub-columns: 0192 :stub-columns: 0
233 :widths: 3 1 4193 :widths: 3 1 4
234 194
235 195 * - ``V4L2_VBI_UNSYNC``
236 - .. row 1196 - 0x0001
237 197 - This flag indicates hardware which does not properly distinguish
238 - ``V4L2_VBI_UNSYNC``198 between fields. Normally the VBI image stores the first field
239 199 (lower scanning line numbers) first in memory. This may be a top
240 - 0x0001200 or bottom field depending on the video standard. When this flag is
241 201 set the first or second field may be stored first, however the
242 - This flag indicates hardware which does not properly distinguish202 fields are still in correct temporal order with the older field
243 between fields. Normally the VBI image stores the first field203 first in memory. [#f3]_
244 (lower scanning line numbers) first in memory. This may be a top204 * - ``V4L2_VBI_INTERLACED``
245 or bottom field depending on the video standard. When this flag is205 - 0x0002
246 set the first or second field may be stored first, however the206 - By default the two field images will be passed sequentially; all
247 fields are still in correct temporal order with the older field207 lines of the first field followed by all lines of the second field
248 first in memory. [#f3]_208 (compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and
249 209 ``V4L2_FIELD_SEQ_BT``, whether the top or bottom field is first in
250 - .. row 2210 memory depends on the video standard). When this flag is set, the
251 211 two fields are interlaced (cf. ``V4L2_FIELD_INTERLACED``). The
252 - ``V4L2_VBI_INTERLACED``212 first line of the first field followed by the first line of the
253 213 second field, then the two second lines, and so on. Such a layout
254 - 0x0002214 may be necessary when the hardware has been programmed to capture
255 215 or output interlaced video images and is unable to separate the
256 - By default the two field images will be passed sequentially; all216 fields for VBI capturing at the same time. For simplicity setting
257 lines of the first field followed by all lines of the second field217 this flag implies that both ``count`` values are equal and
258 (compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and218 non-zero.
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.
269 219
270 220
271 221
@@ -348,3 +298,6 @@ another process. · 76 unmodified lines
348 Most VBI services transmit on both fields, but some have different298 Most VBI services transmit on both fields, but some have different
349 semantics depending on the field number. These cannot be reliable299 semantics depending on the field number. These cannot be reliable
350 decoded or encoded when ``V4L2_VBI_UNSYNC`` is set.300 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
14For more information see the core RDS standard :ref:`iec62106` and the14For more information see the core RDS standard :ref:`iec62106` and the
15RBDS standard :ref:`nrsc4`.15RBDS standard :ref:`nrsc4`.
16 16
17.. note:: Note that the RBDS standard as is used in the USA is almost17.. note::
18
19 Note that the RBDS standard as is used in the USA is almost
18 identical to the RDS standard. Any RDS decoder/encoder can also handle20 identical to the RDS standard. Any RDS decoder/encoder can also handle
19 RBDS. Only some of the fields have slightly different meanings. See the21 RBDS. Only some of the fields have slightly different meanings. See the
20 RBDS standard for more information.22 RBDS standard for more information.
@@ -32,10 +34,10 @@ Querying Capabilities · 11 unmodified lines
32 34
33Devices supporting the RDS capturing API set the35Devices supporting the RDS capturing API set the
34``V4L2_CAP_RDS_CAPTURE`` flag in the ``capabilities`` field of struct36``V4L2_CAP_RDS_CAPTURE`` flag in the ``capabilities`` field of struct
35:ref:`v4l2_capability <v4l2-capability>` returned by the37:c:type:`v4l2_capability` returned by the
36:ref:`VIDIOC_QUERYCAP` ioctl. Any tuner that38:ref:`VIDIOC_QUERYCAP` ioctl. Any tuner that
37supports RDS will set the ``V4L2_TUNER_CAP_RDS`` flag in the39supports RDS will set the ``V4L2_TUNER_CAP_RDS`` flag in the
38``capability`` field of struct :ref:`v4l2_tuner <v4l2-tuner>`. If the40``capability`` field of struct :c:type:`v4l2_tuner`. If the
39driver only passes RDS blocks without interpreting the data the41driver only passes RDS blocks without interpreting the data the
40``V4L2_TUNER_CAP_RDS_BLOCK_IO`` flag has to be set, see42``V4L2_TUNER_CAP_RDS_BLOCK_IO`` flag has to be set, see
41:ref:`Reading RDS data <reading-rds-data>`. For future use the flag43:ref:`Reading RDS data <reading-rds-data>`. For future use the flag
@@ -46,19 +48,19 @@ linux-media mailing list: · 4 unmodified lines
46`https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__.48`https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__.
47 49
48Whether an RDS signal is present can be detected by looking at the50Whether an RDS signal is present can be detected by looking at the
49``rxsubchans`` field of struct :ref:`v4l2_tuner <v4l2-tuner>`: the51``rxsubchans`` field of struct :c:type:`v4l2_tuner`: the
50``V4L2_TUNER_SUB_RDS`` will be set if RDS data was detected.52``V4L2_TUNER_SUB_RDS`` will be set if RDS data was detected.
51 53
52Devices supporting the RDS output API set the ``V4L2_CAP_RDS_OUTPUT``54Devices supporting the RDS output API set the ``V4L2_CAP_RDS_OUTPUT``
53flag in the ``capabilities`` field of struct55flag in the ``capabilities`` field of struct
54:ref:`v4l2_capability <v4l2-capability>` returned by the56:c:type:`v4l2_capability` returned by the
55:ref:`VIDIOC_QUERYCAP` ioctl. Any modulator that57:ref:`VIDIOC_QUERYCAP` ioctl. Any modulator that
56supports RDS will set the ``V4L2_TUNER_CAP_RDS`` flag in the58supports RDS will set the ``V4L2_TUNER_CAP_RDS`` flag in the
57``capability`` field of struct59``capability`` field of struct
58:ref:`v4l2_modulator <v4l2-modulator>`. In order to enable the RDS60:c:type:`v4l2_modulator`. In order to enable the RDS
59transmission one must set the ``V4L2_TUNER_SUB_RDS`` bit in the61transmission one must set the ``V4L2_TUNER_SUB_RDS`` bit in the
60``txsubchans`` field of struct62``txsubchans`` field of struct
61:ref:`v4l2_modulator <v4l2-modulator>`. If the driver only passes RDS63:c:type:`v4l2_modulator`. If the driver only passes RDS
62blocks without interpreting the data the ``V4L2_TUNER_CAP_RDS_BLOCK_IO``64blocks without interpreting the data the ``V4L2_TUNER_CAP_RDS_BLOCK_IO``
63flag has to be set. If the tuner is capable of handling RDS entities65flag has to be set. If the tuner is capable of handling RDS entities
64like program identification codes and radio text, the flag66like program identification codes and radio text, the flag
@@ -91,165 +93,92 @@ RDS datastructures · 26 unmodified lines
91==================93==================
92 94
93 95
94.. _v4l2-rds-data:96.. c:type:: v4l2_rds_data
97
98.. tabularcolumns:: |p{2.5cm}|p{2.5cm}|p{12.5cm}|
95 99
96.. flat-table:: struct v4l2_rds_data100.. flat-table:: struct v4l2_rds_data
97 :header-rows: 0101 :header-rows: 0
98 :stub-columns: 0102 :stub-columns: 0
99 :widths: 1 1 5103 :widths: 1 1 5
100 104
101 105 * - __u8
102 - .. row 1106 - ``lsb``
103 107 - Least Significant Byte of RDS Block
104 - __u8108 * - __u8
105 109 - ``msb``
106 - ``lsb``110 - Most Significant Byte of RDS Block
107 111 * - __u8
108 - Least Significant Byte of RDS Block112 - ``block``
109 113 - Block description
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
125 114
126 115
127 116
128.. _v4l2-rds-block:117.. _v4l2-rds-block:
129 118
119.. tabularcolumns:: |p{2.9cm}|p{14.6cm}|
120
130.. flat-table:: Block description121.. flat-table:: Block description
131 :header-rows: 0122 :header-rows: 0
132 :stub-columns: 0123 :stub-columns: 0
133 :widths: 1 5124 :widths: 1 5
134 125
135 126 * - Bits 0-2
136 - .. row 1127 - Block (aka offset) of the received data.
137 128 * - Bits 3-5
138 - Bits 0-2129 - Deprecated. Currently identical to bits 0-2. Do not use these
139 130 bits.
140 - Block (aka offset) of the received data.131 * - Bit 6
141 132 - Corrected bit. Indicates that an error was corrected for this data
142 - .. row 2133 block.
143 134 * - Bit 7
144 - Bits 3-5135 - Error bit. Indicates that an uncorrectable error occurred during
145 136 reception of this block.
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.
162 137
163 138
164 139
165.. _v4l2-rds-block-codes:140.. _v4l2-rds-block-codes:
166 141
142.. tabularcolumns:: |p{5.6cm}|p{2.0cm}|p{1.5cm}|p{7.0cm}|
143
167.. flat-table:: Block defines144.. flat-table:: Block defines
168 :header-rows: 0145 :header-rows: 0
169 :stub-columns: 0146 :stub-columns: 0
170 :widths: 1 1 1 5147 :widths: 1 1 1 5
171 148
172 149 * - V4L2_RDS_BLOCK_MSK
173 - .. row 1150 -
174 151 - 7
175 - V4L2_RDS_BLOCK_MSK152 - Mask for bits 0-2 to get the block ID.
176 153 * - V4L2_RDS_BLOCK_A
177 -154 -
178 - 7155 - 0
179 156 - Block A.
180 - Mask for bits 0-2 to get the block ID.157 * - V4L2_RDS_BLOCK_B
181 158 -
182 - .. row 2159 - 1
183 160 - Block B.
184 - V4L2_RDS_BLOCK_A161 * - V4L2_RDS_BLOCK_C
185 162 -
186 -163 - 2
187 - 0164 - Block C.
188 165 * - V4L2_RDS_BLOCK_D
189 - Block A.166 -
190 167 - 3
191 - .. row 3168 - Block D.
192 169 * - V4L2_RDS_BLOCK_C_ALT
193 - V4L2_RDS_BLOCK_B170 -
194 171 - 4
195 -172 - Block C'.
196 - 1173 * - V4L2_RDS_BLOCK_INVALID
197 174 - read-only
198 - Block B.175 - 7
199 176 - An invalid block.
200 - .. row 4177 * - V4L2_RDS_BLOCK_CORRECTED
201 178 - read-only
202 - V4L2_RDS_BLOCK_C179 - 0x40
203 180 - A bit error was detected but corrected.
204 -181 * - V4L2_RDS_BLOCK_ERROR
205 - 2182 - read-only
206 183 - 0x80
207 - Block C.184 - An uncorrectable error occurred.
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.
Documentation/media/uapi/v4l/dev-sdr.rst+22−35
@@ -21,7 +21,7 @@ Querying Capabilities · 20 unmodified lines
21Devices supporting the SDR receiver interface set the21Devices supporting the SDR receiver interface set the
22``V4L2_CAP_SDR_CAPTURE`` and ``V4L2_CAP_TUNER`` flag in the22``V4L2_CAP_SDR_CAPTURE`` and ``V4L2_CAP_TUNER`` flag in the
23``capabilities`` field of struct23``capabilities`` field of struct
24:ref:`v4l2_capability <v4l2-capability>` returned by the24:c:type:`v4l2_capability` returned by the
25:ref:`VIDIOC_QUERYCAP` ioctl. That flag means the25:ref:`VIDIOC_QUERYCAP` ioctl. That flag means the
26device has an Analog to Digital Converter (ADC), which is a mandatory26device has an Analog to Digital Converter (ADC), which is a mandatory
27element for the SDR receiver.27element for the SDR receiver.
@@ -29,7 +29,7 @@ element for the SDR receiver. · 1 unmodified line
29Devices supporting the SDR transmitter interface set the29Devices supporting the SDR transmitter interface set the
30``V4L2_CAP_SDR_OUTPUT`` and ``V4L2_CAP_MODULATOR`` flag in the30``V4L2_CAP_SDR_OUTPUT`` and ``V4L2_CAP_MODULATOR`` flag in the
31``capabilities`` field of struct31``capabilities`` field of struct
32:ref:`v4l2_capability <v4l2-capability>` returned by the32:c:type:`v4l2_capability` returned by the
33:ref:`VIDIOC_QUERYCAP` ioctl. That flag means the33:ref:`VIDIOC_QUERYCAP` ioctl. That flag means the
34device has an Digital to Analog Converter (DAC), which is a mandatory34device has an Digital to Analog Converter (DAC), which is a mandatory
35element for the SDR transmitter.35element for the SDR transmitter.
@@ -67,53 +67,40 @@ basic :ref:`format` ioctls, the · 31 unmodified lines
67well.67well.
68 68
69To use the :ref:`format` ioctls applications set the ``type``69To use the :ref:`format` ioctls applications set the ``type``
70field of a struct :ref:`v4l2_format <v4l2-format>` to70field of a struct :c:type:`v4l2_format` to
71``V4L2_BUF_TYPE_SDR_CAPTURE`` or ``V4L2_BUF_TYPE_SDR_OUTPUT`` and use71``V4L2_BUF_TYPE_SDR_CAPTURE`` or ``V4L2_BUF_TYPE_SDR_OUTPUT`` and use
72the struct :ref:`v4l2_sdr_format <v4l2-sdr-format>` ``sdr`` member72the struct :c:type:`v4l2_sdr_format` ``sdr`` member
73of the ``fmt`` union as needed per the desired operation. Currently73of the ``fmt`` union as needed per the desired operation. Currently
74there is two fields, ``pixelformat`` and ``buffersize``, of struct74there is two fields, ``pixelformat`` and ``buffersize``, of struct
75struct :ref:`v4l2_sdr_format <v4l2-sdr-format>` which are used.75struct :c:type:`v4l2_sdr_format` which are used.
76Content of the ``pixelformat`` is V4L2 FourCC code of the data format.76Content of the ``pixelformat`` is V4L2 FourCC code of the data format.
77The ``buffersize`` field is maximum buffer size in bytes required for77The ``buffersize`` field is maximum buffer size in bytes required for
78data transfer, set by the driver in order to inform application.78data transfer, set by the driver in order to inform application.
79 79
80 80
81.. _v4l2-sdr-format:81.. c:type:: v4l2_sdr_format
82
83.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
82 84
83.. flat-table:: struct v4l2_sdr_format85.. flat-table:: struct v4l2_sdr_format
84 :header-rows: 086 :header-rows: 0
85 :stub-columns: 087 :stub-columns: 0
86 :widths: 1 1 288 :widths: 1 1 2
87 89
88 90 * - __u32
89 - .. row 191 - ``pixelformat``
90 92 - The data format or type of compression, set by the application.
91 - __u3293 This is a little endian
92 94 :ref:`four character code <v4l2-fourcc>`. V4L2 defines SDR
93 - ``pixelformat``95 formats in :ref:`sdr-formats`.
94 96 * - __u32
95 - The data format or type of compression, set by the application.97 - ``buffersize``
96 This is a little endian98 - Maximum size in bytes required for data. Value is set by the
97 :ref:`four character code <v4l2-fourcc>`. V4L2 defines SDR99 driver.
98 formats in :ref:`sdr-formats`.100 * - __u8
99 101 - ``reserved[24]``
100 - .. row 2102 - This array is reserved for future extensions. Drivers and
101 103 applications must set it to zero.
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.
117 104
118 105
119An SDR device may support :ref:`read/write <rw>` and/or streaming106An 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
34Devices supporting the sliced VBI capturing or output API set the34Devices supporting the sliced VBI capturing or output API set the
35``V4L2_CAP_SLICED_VBI_CAPTURE`` or ``V4L2_CAP_SLICED_VBI_OUTPUT`` flag35``V4L2_CAP_SLICED_VBI_CAPTURE`` or ``V4L2_CAP_SLICED_VBI_OUTPUT`` flag
36respectively, in the ``capabilities`` field of struct36respectively, in the ``capabilities`` field of struct
37:ref:`v4l2_capability <v4l2-capability>` returned by the37:c:type:`v4l2_capability` returned by the
38:ref:`VIDIOC_QUERYCAP` ioctl. At least one of the38:ref:`VIDIOC_QUERYCAP` ioctl. At least one of the
39read/write, streaming or asynchronous :ref:`I/O methods <io>` must be39read/write, streaming or asynchronous :ref:`I/O methods <io>` must be
40supported. Sliced VBI devices may have a tuner or modulator.40supported. 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
67but not both at the same time.67but not both at the same time.
68 68
69To determine the currently selected services applications set the69To determine the currently selected services applications set the
70``type`` field of struct :ref:`v4l2_format <v4l2-format>` to70``type`` field of struct :c:type:`v4l2_format` to
71``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or71``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or
72``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``, and the72``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``, and the
73:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl fills the ``fmt.sliced``73:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl fills the ``fmt.sliced``
74member, a struct74member, a struct
75:ref:`v4l2_sliced_vbi_format <v4l2-sliced-vbi-format>`.75:c:type:`v4l2_sliced_vbi_format`.
76 76
77Applications can request different parameters by initializing or77Applications can request different parameters by initializing or
78modifying the ``fmt.sliced`` member and calling the78modifying the ``fmt.sliced`` member and calling the
79:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl with a pointer to the79:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl with a pointer to the
80:ref:`struct v4l2_format <v4l2-format>` structure.80struct :c:type:`v4l2_format` structure.
81 81
82The sliced VBI API is more complicated than the raw VBI API because the82The sliced VBI API is more complicated than the raw VBI API because the
83hardware must be told which VBI service to expect on each scan line. Not83hardware 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
100:ref:`select() <func-select>` call.100:ref:`select() <func-select>` call.
101 101
102 102
103.. _v4l2-sliced-vbi-format:103.. c:type:: v4l2_sliced_vbi_format
104 104
105struct v4l2_sliced_vbi_format105struct v4l2_sliced_vbi_format
106-----------------------------106-----------------------------
107 107
108.. tabularcolumns:: |p{1.0cm}|p{4.5cm}|p{4.0cm}|p{4.0cm}|p{4.0cm}|
109
110.. cssclass:: longtable
111
108.. flat-table::112.. flat-table::
109 :header-rows: 0113 :header-rows: 0
110 :stub-columns: 0114 :stub-columns: 0
111 :widths: 3 3 2 2 2115 :widths: 3 3 2 2 2
112 116
113 117 * - __u32
114 - .. row 1118 - ``service_set``
115 119 - :cspan:`2`
116 - __u32120
117 121 If ``service_set`` is non-zero when passed with
118 - ``service_set``122 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or
119 123 :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`, the ``service_lines``
120 - :cspan:`2`124 array will be filled by the driver according to the services
121 125 specified in this field. For example, if ``service_set`` is
122 If ``service_set`` is non-zero when passed with126 initialized with ``V4L2_SLICED_TELETEXT_B | V4L2_SLICED_WSS_625``,
123 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or127 a driver for the cx25840 video decoder sets lines 7-22 of both
124 :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`, the ``service_lines``128 fields [#f1]_ to ``V4L2_SLICED_TELETEXT_B`` and line 23 of the first
125 array will be filled by the driver according to the services129 field to ``V4L2_SLICED_WSS_625``. If ``service_set`` is set to
126 specified in this field. For example, if ``service_set`` is130 zero, then the values of ``service_lines`` will be used instead.
127 initialized with ``V4L2_SLICED_TELETEXT_B | V4L2_SLICED_WSS_625``,131
128 a driver for the cx25840 video decoder sets lines 7-22 of both132 On return the driver sets this field to the union of all elements
129 fields [#f1]_ to ``V4L2_SLICED_TELETEXT_B`` and line 23 of the first133 of the returned ``service_lines`` array. It may contain less
130 field to ``V4L2_SLICED_WSS_625``. If ``service_set`` is set to134 services than requested, perhaps just one, if the hardware cannot
131 zero, then the values of ``service_lines`` will be used instead.135 handle more services simultaneously. It may be empty (zero) if
132 136 none of the requested services are supported by the hardware.
133 On return the driver sets this field to the union of all elements137 * - __u16
134 of the returned ``service_lines`` array. It may contain less138 - ``service_lines``\ [2][24]
135 services than requested, perhaps just one, if the hardware cannot139 - :cspan:`2`
136 handle more services simultaneously. It may be empty (zero) if140
137 none of the requested services are supported by the hardware.141 Applications initialize this array with sets of data services the
138 142 driver shall look for or insert on the respective scan line.
139 - .. row 2143 Subject to hardware capabilities drivers return the requested set,
140 144 a subset, which may be just a single service, or an empty set.
141 - __u16145 When the hardware cannot handle multiple services on the same line
142 146 the driver shall choose one. No assumptions can be made on which
143 - ``service_lines``\ [2][24]147 service the driver chooses.
144 148
145 - :cspan:`2`149 Data services are defined in :ref:`vbi-services2`. Array indices
146 150 map to ITU-R line numbers\ [#f2]_ as follows:
147 Applications initialize this array with sets of data services the151 * -
148 driver shall look for or insert on the respective scan line.152 -
149 Subject to hardware capabilities drivers return the requested set,153 - Element
150 a subset, which may be just a single service, or an empty set.154 - 525 line systems
151 When the hardware cannot handle multiple services on the same line155 - 625 line systems
152 the driver shall choose one. No assumptions can be made on which156 * -
153 service the driver chooses.157 -
154 158 - ``service_lines``\ [0][1]
155 Data services are defined in :ref:`vbi-services2`. Array indices159 - 1
156 map to ITU-R line numbers (see also :ref:`vbi-525` and160 - 1
157 :ref:`vbi-625`) as follows:161 * -
158 162 -
159 - .. row 3163 - ``service_lines``\ [0][23]
160 164 - 23
161 -165 - 23
162 -166 * -
163 - Element167 -
164 168 - ``service_lines``\ [1][1]
165 - 525 line systems169 - 264
166 170 - 314
167 - 625 line systems171 * -
168 172 -
169 - .. row 4173 - ``service_lines``\ [1][23]
170 174 - 286
171 -175 - 336
172 -176 * -
173 - ``service_lines``\ [0][1]177 -
174 178 - :cspan:`2` Drivers must set ``service_lines`` [0][0] and
175 - 1179 ``service_lines``\ [1][0] to zero. The
176 180 ``V4L2_VBI_ITU_525_F1_START``, ``V4L2_VBI_ITU_525_F2_START``,
177 - 1181 ``V4L2_VBI_ITU_625_F1_START`` and ``V4L2_VBI_ITU_625_F2_START``
178 182 defines give the start line numbers for each field for each 525 or
179 - .. row 5183 625 line format as a convenience. Don't forget that ITU line
180 184 numbering starts at 1, not 0.
181 -185 * - __u32
182 -186 - ``io_size``
183 - ``service_lines``\ [0][23]187 - :cspan:`2` Maximum number of bytes passed by one
184 188 :ref:`read() <func-read>` or :ref:`write() <func-write>` call,
185 - 23189 and the buffer size in bytes for the
186 190 :ref:`VIDIOC_QBUF` and
187 - 23191 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. Drivers set this field
188 192 to the size of struct
189 - .. row 6193 :c:type:`v4l2_sliced_vbi_data` times the
190 194 number of non-zero elements in the returned ``service_lines``
191 -195 array (that is the number of lines potentially carrying data).
192 -196 * - __u32
193 - ``service_lines``\ [1][1]197 - ``reserved``\ [2]
194 198 - :cspan:`2` This array is reserved for future extensions.
195 - 264199
196 200 Applications and drivers must set it to zero.
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
246 201
247 202
248.. _vbi-services2:203.. _vbi-services2:
@@ -250,96 +205,65 @@ struct v4l2_sliced_vbi_format · 1 unmodified line
250Sliced VBI services205Sliced VBI services
251-------------------206-------------------
252 207
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
253.. flat-table::214.. flat-table::
254 :header-rows: 1215 :header-rows: 1
255 :stub-columns: 0216 :stub-columns: 0
256 :widths: 2 1 1 2 2217 :widths: 2 1 1 2 2
257 218
258 219 * - Symbol
259 - .. row 1220 - Value
260 221 - Reference
261 - Symbol222 - Lines, usually
262 223 - Payload
263 - Value224 * - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B)
264 225 - 0x0001
265 - Reference226 - :ref:`ets300706`,
266 227
267 - Lines, usually228 :ref:`itu653`
268 229 - PAL/SECAM line 7-22, 320-335 (second field 7-22)
269 - Payload230 - Last 42 of the 45 byte Teletext packet, that is without clock
270 231 run-in and framing code, lsb first transmitted.
271 - .. row 2232 * - ``V4L2_SLICED_VPS``
272 233 - 0x0400
273 - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B)234 - :ref:`ets300231`
274 235 - PAL line 16
275 - 0x0001236 - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb
276 237 first transmitted.
277 - :ref:`ets300706`, :ref:`itu653`238 * - ``V4L2_SLICED_CAPTION_525``
278 239 - 0x1000
279 - PAL/SECAM line 7-22, 320-335 (second field 7-22)240 - :ref:`cea608`
280 241 - NTSC line 21, 284 (second field 21)
281 - Last 42 of the 45 byte Teletext packet, that is without clock242 - Two bytes in transmission order, including parity bit, lsb first
282 run-in and framing code, lsb first transmitted.243 transmitted.
283 244 * - ``V4L2_SLICED_WSS_625``
284 - .. row 3245 - 0x4000
285 246 - :ref:`itu1119`,
286 - ``V4L2_SLICED_VPS``247
287 248 :ref:`en300294`
288 - 0x0400249 - PAL/SECAM line 23
289 250 -
290 - :ref:`ets300231`251
291 252 ::
292 - PAL line 16253
293 254 Byte 0 1
294 - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb255 msb lsb msb lsb
295 first transmitted.256 Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9
296 257 * - ``V4L2_SLICED_VBI_525``
297 - .. row 4258 - 0x1000
298 259 - :cspan:`2` Set of services applicable to 525 line systems.
299 - ``V4L2_SLICED_CAPTION_525``260 * - ``V4L2_SLICED_VBI_625``
300 261 - 0x4401
301 - 0x1000262 - :cspan:`2` Set of services applicable to 625 line systems.
302 263
303 - :ref:`cea608`264.. raw:: latex
304 265
305 - NTSC line 21, 284 (second field 21)266 \end{adjustbox}\newline\newline
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.
343 267
344 268
345Drivers may return an ``EINVAL`` error code when applications attempt to269Drivers may return an ``EINVAL`` error code when applications attempt to
@@ -359,80 +283,57 @@ Reading and writing sliced VBI data · 13 unmodified lines
359 283
360A single :ref:`read() <func-read>` or :ref:`write() <func-write>`284A single :ref:`read() <func-read>` or :ref:`write() <func-write>`
361call must pass all data belonging to one video frame. That is an array285call must pass all data belonging to one video frame. That is an array
362of :ref:`struct v4l2_sliced_vbi_data <v4l2-sliced-vbi-data>` structures with one or286of struct :c:type:`v4l2_sliced_vbi_data` structures with one or
363more elements and a total size not exceeding ``io_size`` bytes. Likewise287more elements and a total size not exceeding ``io_size`` bytes. Likewise
364in streaming I/O mode one buffer of ``io_size`` bytes must contain data288in streaming I/O mode one buffer of ``io_size`` bytes must contain data
365of one video frame. The ``id`` of unused289of one video frame. The ``id`` of unused
366:ref:`struct v4l2_sliced_vbi_data <v4l2-sliced-vbi-data>` elements must be zero.290struct :c:type:`v4l2_sliced_vbi_data` elements must be zero.
367 291
368 292
369.. _v4l2-sliced-vbi-data:293.. c:type:: v4l2_sliced_vbi_data
370 294
371struct v4l2_sliced_vbi_data295struct v4l2_sliced_vbi_data
372---------------------------296---------------------------
373 297
298.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
299
374.. flat-table::300.. flat-table::
375 :header-rows: 0301 :header-rows: 0
376 :stub-columns: 0302 :stub-columns: 0
377 :widths: 3 1 4303 :widths: 3 1 4
378 304
379 305 * - __u32
380 - .. row 1306 - ``id``
381 307 - A flag from :ref:`vbi-services` identifying the type of data in
382 - __u32308 this packet. Only a single bit must be set. When the ``id`` of a
383 309 captured packet is zero, the packet is empty and the contents of
384 - ``id``310 other fields are undefined. Applications shall ignore empty
385 311 packets. When the ``id`` of a packet for output is zero the
386 - A flag from :ref:`vbi-services` identifying the type of data in312 contents of the ``data`` field are undefined and the driver must
387 this packet. Only a single bit must be set. When the ``id`` of a313 no longer insert data on the requested ``field`` and ``line``.
388 captured packet is zero, the packet is empty and the contents of314 * - __u32
389 other fields are undefined. Applications shall ignore empty315 - ``field``
390 packets. When the ``id`` of a packet for output is zero the316 - The video field number this data has been captured from, or shall
391 contents of the ``data`` field are undefined and the driver must317 be inserted at. ``0`` for the first field, ``1`` for the second
392 no longer insert data on the requested ``field`` and ``line``.318 field.
393 319 * - __u32
394 - .. row 2320 - ``line``
395 321 - The field (as opposed to frame) line number this data has been
396 - __u32322 captured from, or shall be inserted at. See :ref:`vbi-525` and
397 323 :ref:`vbi-625` for valid values. Sliced VBI capture devices can
398 - ``field``324 set the line number of all packets to ``0`` if the hardware cannot
399 325 reliably identify scan lines. The field number must always be
400 - The video field number this data has been captured from, or shall326 valid.
401 be inserted at. ``0`` for the first field, ``1`` for the second327 * - __u32
402 field.328 - ``reserved``
403 329 - This field is reserved for future extensions. Applications and
404 - .. row 3330 drivers must set it to zero.
405 331 * - __u8
406 - __u32332 - ``data``\ [48]
407 333 - The packet payload. See :ref:`vbi-services` for the contents and
408 - ``line``334 number of bytes passed for each data type. The contents of padding
409 335 bytes at the end of this array are undefined, drivers and
410 - The field (as opposed to frame) line number this data has been336 applications shall ignore them.
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.
436 337
437 338
438Packets are always passed in ascending line number order, without339Packets 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
542 443
543The payload of the MPEG-2 *Private Stream 1 PES* packets that contain444The payload of the MPEG-2 *Private Stream 1 PES* packets that contain
544sliced VBI data is specified by struct445sliced VBI data is specified by struct
545:ref:`v4l2_mpeg_vbi_fmt_ivtv <v4l2-mpeg-vbi-fmt-ivtv>`. The446:c:type:`v4l2_mpeg_vbi_fmt_ivtv`. The
546payload is variable length, depending on the actual number of lines of447payload is variable length, depending on the actual number of lines of
547sliced VBI data present in a video frame. The payload may be padded at448sliced VBI data present in a video frame. The payload may be padded at
548the end with unspecified fill bytes to align the end of the payload to a449the 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
551number).452number).
552 453
553 454
554.. _v4l2-mpeg-vbi-fmt-ivtv:455.. c:type:: v4l2_mpeg_vbi_fmt_ivtv
555 456
556struct v4l2_mpeg_vbi_fmt_ivtv457struct v4l2_mpeg_vbi_fmt_ivtv
557-----------------------------458-----------------------------
558 459
460.. tabularcolumns:: |p{1.0cm}|p{3.5cm}|p{1.0cm}|p{11.5cm}|
461
559.. flat-table::462.. flat-table::
560 :header-rows: 0463 :header-rows: 0
561 :stub-columns: 0464 :stub-columns: 0
562 :widths: 1 1 1 2465 :widths: 1 1 1 2
563 466
564 467 * - __u8
565 - .. row 1468 - ``magic``\ [4]
566 469 -
567 - __u8470 - A "magic" constant from :ref:`v4l2-mpeg-vbi-fmt-ivtv-magic` that
568 471 indicates this is a valid sliced VBI data payload and also
569 - ``magic``\ [4]472 indicates which member of the anonymous union, ``itv0`` or
570 473 ``ITV0``, to use for the payload data.
571 -474 * - union
572 - A "magic" constant from :ref:`v4l2-mpeg-vbi-fmt-ivtv-magic` that475 - (anonymous)
573 indicates this is a valid sliced VBI data payload and also476 * -
574 indicates which member of the anonymous union, ``itv0`` or477 - struct :c:type:`v4l2_mpeg_vbi_itv0`
575 ``ITV0``, to use for the payload data.478 - ``itv0``
576 479 - The primary form of the sliced VBI data payload that contains
577 - .. row 2480 anywhere from 1 to 35 lines of sliced VBI data. Line masks are
578 481 provided in this form of the payload indicating which VBI lines
579 - union482 are provided.
580 483 * -
581 - (anonymous)484 - struct :ref:`v4l2_mpeg_vbi_ITV0 <v4l2-mpeg-vbi-itv0-1>`
582 485 - ``ITV0``
583 - .. row 3486 - An alternate form of the sliced VBI data payload used when 36
584 487 lines of sliced VBI data are present. No line masks are provided
585 -488 in this form of the payload; all valid line mask bits are
586 - struct :ref:`v4l2_mpeg_vbi_itv0 <v4l2-mpeg-vbi-itv0>`489 implcitly set.
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.
606 490
607 491
608 492
@@ -611,96 +495,77 @@ struct v4l2_mpeg_vbi_fmt_ivtv · 2 unmodified lines
611Magic Constants for struct v4l2_mpeg_vbi_fmt_ivtv magic field495Magic Constants for struct v4l2_mpeg_vbi_fmt_ivtv magic field
612-------------------------------------------------------------496-------------------------------------------------------------
613 497
498.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
499
614.. flat-table::500.. flat-table::
615 :header-rows: 1501 :header-rows: 1
616 :stub-columns: 0502 :stub-columns: 0
617 :widths: 3 1 4503 :widths: 3 1 4
618 504
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.
619 518
620 - .. row 1
621
622 - Defined Symbol
623
624 - Value
625 519
626 - Description
627 520
628 - .. row 2521.. c:type:: v4l2_mpeg_vbi_itv0
629 522
630 - ``V4L2_MPEG_VBI_IVTV_MAGIC0``523.. c:type:: v4l2_mpeg_vbi_ITV0
631 524
632 - "itv0"525structs v4l2_mpeg_vbi_itv0 and v4l2_mpeg_vbi_ITV0
526-------------------------------------------------
633 527
634 - Indicates the ``itv0`` member of the union in struct528.. tabularcolumns:: |p{4.4cm}|p{2.4cm}|p{10.7cm}|
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
652struct v4l2_mpeg_vbi_itv0
653-------------------------
654 529
655.. flat-table::530.. flat-table::
656 :header-rows: 0531 :header-rows: 0
657 :stub-columns: 0532 :stub-columns: 0
658 :widths: 1 1 2533 :widths: 1 1 2
659 534
660 535 * - __le32
661 - .. row 1536 - ``linemask``\ [2]
662 537 - Bitmasks indicating the VBI service lines present. These
663 - __le32538 ``linemask`` values are stored in little endian byte order in the
664 539 MPEG stream. Some reference ``linemask`` bit positions with their
665 - ``linemask``\ [2]540 corresponding VBI line number and video field are given below.
666 541 b\ :sub:`0` indicates the least significant bit of a ``linemask``
667 - Bitmasks indicating the VBI service lines present. These542 value:
668 ``linemask`` values are stored in little endian byte order in the543
669 MPEG stream. Some reference ``linemask`` bit positions with their544
670 corresponding VBI line number and video field are given below.545
671 b\ :sub:`0` indicates the least significant bit of a ``linemask``546 ::
672 value:547
673 548 linemask[0] b0: line 6 first field
674 549 linemask[0] b17: line 23 first field
675 550 linemask[0] b18: line 6 second field
676 ::551 linemask[0] b31: line 19 second field
677 552 linemask[1] b0: line 20 second field
678 linemask[0] b0: line 6 first field553 linemask[1] b3: line 23 second field
679 linemask[0] b17: line 23 first field554 linemask[1] b4-b31: unused and set to 0
680 linemask[0] b18: line 6 second field555 * - struct
681 linemask[0] b31: line 19 second field556 :c:type:`v4l2_mpeg_vbi_itv0_line`
682 linemask[1] b0: line 20 second field557 - ``line``\ [35]
683 linemask[1] b3: line 23 second field558 - This is a variable length array that holds from 1 to 35 lines of
684 linemask[1] b4-b31: unused and set to 0559 sliced VBI data. The sliced VBI data lines present correspond to
685 560 the bits set in the ``linemask`` array, starting from b\ :sub:`0`
686 - .. row 2561 of ``linemask``\ [0] up through b\ :sub:`31` of ``linemask``\ [0],
687 562 and from b\ :sub:`0` of ``linemask``\ [1] up through b\ :sub:`3` of
688 - struct563 ``linemask``\ [1]. ``line``\ [0] corresponds to the first bit
689 :ref:`v4l2_mpeg_vbi_itv0_line <v4l2-mpeg-vbi-itv0-line>`564 found set in the ``linemask`` array, ``line``\ [1] corresponds to
690 565 the second bit found set in the ``linemask`` array, etc. If no
691 - ``line``\ [35]566 ``linemask`` array bits are set, then ``line``\ [0] may contain
692 567 one line of unspecified data that should be ignored by
693 - This is a variable length array that holds from 1 to 35 lines of568 applications.
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.
704 569
705 570
706 571
@@ -709,54 +574,43 @@ struct v4l2_mpeg_vbi_itv0 · 2 unmodified lines
709struct v4l2_mpeg_vbi_ITV0574struct v4l2_mpeg_vbi_ITV0
710-------------------------575-------------------------
711 576
577.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
578
712.. flat-table::579.. flat-table::
713 :header-rows: 0580 :header-rows: 0
714 :stub-columns: 0581 :stub-columns: 0
715 :widths: 1 1 2582 :widths: 1 1 2
716 583
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.
717 591
718 - .. row 1
719
720 - struct
721 :ref:`v4l2_mpeg_vbi_itv0_line <v4l2-mpeg-vbi-itv0-line>`
722 592
723 - ``line``\ [36]
724 593
725 - A fixed length array of 36 lines of sliced VBI data. ``line``\ [0]594.. c:type:: v4l2_mpeg_vbi_itv0_line
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:
733 595
734struct v4l2_mpeg_vbi_itv0_line596struct v4l2_mpeg_vbi_itv0_line
735------------------------------597------------------------------
736 598
599.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
600
737.. flat-table::601.. flat-table::
738 :header-rows: 0602 :header-rows: 0
739 :stub-columns: 0603 :stub-columns: 0
740 :widths: 1 1 2604 :widths: 1 1 2
741 605
742 606 * - __u8
743 - .. row 1607 - ``id``
744 608 - A line identifier value from
745 - __u8609 :ref:`ITV0-Line-Identifier-Constants` that indicates the type of
746 610 sliced VBI data stored on this line.
747 - ``id``611 * - __u8
748 612 - ``data``\ [42]
749 - A line identifier value from613 - The sliced VBI data for the line.
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.
760 614
761 615
762 616
@@ -765,58 +619,38 @@ struct v4l2_mpeg_vbi_itv0_line · 2 unmodified lines
765Line Identifiers for struct v4l2_mpeg_vbi_itv0_line id field619Line Identifiers for struct v4l2_mpeg_vbi_itv0_line id field
766------------------------------------------------------------620------------------------------------------------------------
767 621
622.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
623
768.. flat-table::624.. flat-table::
769 :header-rows: 1625 :header-rows: 1
770 :stub-columns: 0626 :stub-columns: 0
771 :widths: 3 1 4627 :widths: 3 1 4
772 628
773 629 * - Defined Symbol
774 - .. row 1630 - Value
775 631 - Description
776 - Defined Symbol632 * - ``V4L2_MPEG_VBI_IVTV_TELETEXT_B``
777 633 - 1
778 - Value634 - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
779 635 description of the line payload.
780 - Description636 * - ``V4L2_MPEG_VBI_IVTV_CAPTION_525``
781 637 - 4
782 - .. row 2638 - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
783 639 description of the line payload.
784 - ``V4L2_MPEG_VBI_IVTV_TELETEXT_B``640 * - ``V4L2_MPEG_VBI_IVTV_WSS_625``
785 641 - 5
786 - 1642 - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
787 643 description of the line payload.
788 - Refer to :ref:`Sliced VBI services <vbi-services2>` for a644 * - ``V4L2_MPEG_VBI_IVTV_VPS``
789 description of the line payload.645 - 7
790 646 - Refer to :ref:`Sliced VBI services <vbi-services2>` for a
791 - .. row 3647 description of the line payload.
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.
817 648
818 649
819 650
820.. [#f1]651.. [#f1]
821 According to :ref:`ETS 300 706 <ets300706>` lines 6-22 of the first652 According to :ref:`ETS 300 706 <ets300706>` lines 6-22 of the first
822 field and lines 5-22 of the second field may carry Teletext data.653 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
202list entity names and pad numbers).202list entity names and pad numbers).
203 203
204 204
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
205.. _sample-pipeline-config:211.. _sample-pipeline-config:
206 212
207.. flat-table:: Sample Pipeline Configuration213.. flat-table:: Sample Pipeline Configuration
208 :header-rows: 1214 :header-rows: 1
209 :stub-columns: 0215 :stub-columns: 0
210 216 :widths: 5 5 5 5 5 5 5
211 217
212 - .. row 1218 * -
213 219 - Sensor/0 format
214 -220 - Frontend/0 format
215 - Sensor/0 format221 - Frontend/1 format
216 222 - Scaler/0 format
217 - Frontend/0 format223 - Scaler/0 compose selection rectangle
218 224 - Scaler/1 format
219 - Frontend/1 format225 * - Initial state
220 226 - 2048x1536/SGRBG8_1X8
221 - Scaler/0 format227 - (default)
222 228 - (default)
223 - Scaler/0 compose selection rectangle229 - (default)
224 230 - (default)
225 - Scaler/1 format231 - (default)
226 232 * - Configure frontend sink format
227 - .. row 2233 - 2048x1536/SGRBG8_1X8
228 234 - *2048x1536/SGRBG8_1X8*
229 - Initial state235 - *2046x1534/SGRBG8_1X8*
230 236 - (default)
231 - 2048x1536/SGRBG8_1X8237 - (default)
232 238 - (default)
233 - (default)239 * - Configure scaler sink format
234 240 - 2048x1536/SGRBG8_1X8
235 - (default)241 - 2048x1536/SGRBG8_1X8
236 242 - 2046x1534/SGRBG8_1X8
237 - (default)243 - *2046x1534/SGRBG8_1X8*
238 244 - *0,0/2046x1534*
239 - (default)245 - *2046x1534/SGRBG8_1X8*
240 246 * - Configure scaler sink compose selection
241 - (default)247 - 2048x1536/SGRBG8_1X8
242 248 - 2048x1536/SGRBG8_1X8
243 - .. row 3249 - 2046x1534/SGRBG8_1X8
244 250 - 2046x1534/SGRBG8_1X8
245 - Configure frontend sink format251 - *0,0/1280x960*
246 252 - *1280x960/SGRBG8_1X8*
247 - 2048x1536/SGRBG8_1X8253
248 254.. raw:: latex
249 - *2048x1536/SGRBG8_1X8*255
250 256 \end{adjustbox}\newline\newline
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
292 257
2931. Initial state. The sensor source pad format is set to its native 3MP2581. Initial state. The sensor source pad format is set to its native 3MP
294 size and V4L2_MBUS_FMT_SGRBG8_1X8 media bus code. Formats on the259 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
332the area of the image that will be scaled up.297the area of the image that will be scaled up.
333 298
334Crop settings are defined by a crop rectangle and represented in a299Crop settings are defined by a crop rectangle and represented in a
335struct :ref:`v4l2_rect <v4l2-rect>` by the coordinates of the top300struct :c:type:`v4l2_rect` by the coordinates of the top
336left corner and the rectangle size. Both the coordinates and sizes are301left corner and the rectangle size. Both the coordinates and sizes are
337expressed in pixels.302expressed in pixels.
338 303
@@ -348,7 +313,7 @@ sub-device for processing. · 9 unmodified lines
348The scaling operation changes the size of the image by scaling it to new313The scaling operation changes the size of the image by scaling it to new
349dimensions. The scaling ratio isn't specified explicitly, but is implied314dimensions. The scaling ratio isn't specified explicitly, but is implied
350from the original and scaled image sizes. Both sizes are represented by315from the original and scaled image sizes. Both sizes are represented by
351struct :ref:`v4l2_rect <v4l2-rect>`.316struct :c:type:`v4l2_rect`.
352 317
353Scaling support is optional. When supported by a subdev, the crop318Scaling support is optional. When supported by a subdev, the crop
354rectangle on the subdev's sink pad is scaled to the size configured319rectangle 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*************
6Touch Devices
7*************
8
9Touch devices are accessed through character device special files named
10``/dev/v4l-touch0`` to ``/dev/v4l-touch255`` with major number 81 and
11dynamically allocated minor numbers 0 to 255.
12
13Overview
14========
15
16Sensors may be Optical, or Projected Capacitive touch (PCT).
17
18Processing is required to analyse the raw data and produce input events. In
19some systems, this may be performed on the ASIC and the raw data is purely a
20side-channel for diagnostics or tuning. In other systems, the ASIC is a simple
21analogue front end device which delivers touch data at high rate, and any touch
22processing must be done on the host.
23
24For capacitive touch sensing, the touchscreen is composed of an array of
25horizontal and vertical conductors (alternatively called rows/columns, X/Y
26lines, or tx/rx). Mutual Capacitance measured is at the nodes where the
27conductors cross. Alternatively, Self Capacitance measures the signal from each
28column and row independently.
29
30A touch input may be determined by comparing the raw capacitance measurement to
31a no-touch reference (or "baseline") measurement:
32
33Delta = Raw - Reference
34
35The reference measurement takes account of variations in the capacitance across
36the touch sensor matrix, for example manufacturing irregularities,
37environmental or edge effects.
38
39Querying Capabilities
40=====================
41
42Devices supporting the touch interface set the ``V4L2_CAP_VIDEO_CAPTURE`` flag
43and the ``V4L2_CAP_TOUCH`` flag in the ``capabilities`` field of
44:c:type:`v4l2_capability` returned by the
45:ref:`VIDIOC_QUERYCAP` ioctl.
46
47At least one of the read/write or streaming I/O methods must be
48supported.
49
50The formats supported by touch devices are documented in
51:ref:`Touch Formats <tch-formats>`.
52
53Data Format Negotiation
54=======================
55
56A touch device may support any I/O method.
Documentation/media/uapi/v4l/devices.rst+1−0
@@ -22,5 +22,6 @@ Interfaces · 21 unmodified lines
22 dev-radio22 dev-radio
23 dev-rds23 dev-rds
24 dev-sdr24 dev-sdr
25 dev-touch
25 dev-event26 dev-event
26 dev-subdev27 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
39 :header-rows: 139 :header-rows: 1
40 :stub-columns: 040 :stub-columns: 0
41 41
42 42 * - Device Type
43 - .. row 143 - File Name
44 44 - Minor Numbers
45 - Device Type45 * - Video capture and overlay
46 46 - ``/dev/video`` and ``/dev/bttv0``\ [#f1]_, ``/dev/video0`` to
47 - File Name47 ``/dev/video63``
48 48 - 0-63
49 - Minor Numbers49 * - Radio receiver
50 50 - ``/dev/radio``\ [#f2]_, ``/dev/radio0`` to ``/dev/radio63``
51 - .. row 251 - 64-127
52 52 * - Raw VBI capture
53 - Video capture and overlay53 - ``/dev/vbi``, ``/dev/vbi0`` to ``/dev/vbi31``
54 54 - 224-255
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
75 55
76 56
77V4L prohibits (or used to prohibit) multiple opens of a device file.57V4L prohibits (or used to prohibit) multiple opens of a device file.
@@ -87,162 +67,89 @@ Querying Capabilities · 9 unmodified lines
87The V4L ``VIDIOCGCAP`` ioctl is equivalent to V4L2's67The V4L ``VIDIOCGCAP`` ioctl is equivalent to V4L2's
88:ref:`VIDIOC_QUERYCAP`.68:ref:`VIDIOC_QUERYCAP`.
89 69
90The ``name`` field in struct :c:type:`struct video_capability` became70The ``name`` field in struct ``video_capability`` became
91``card`` in struct :ref:`v4l2_capability <v4l2-capability>`, ``type``71``card`` in struct :c:type:`v4l2_capability`, ``type``
92was replaced by ``capabilities``. Note V4L2 does not distinguish between72was replaced by ``capabilities``. Note V4L2 does not distinguish between
93device types like this, better think of basic video input, video output73device types like this, better think of basic video input, video output
94and radio devices supporting a set of related functions like video74and radio devices supporting a set of related functions like video
95capturing, video overlay and VBI capturing. See :ref:`open` for an75capturing, video overlay and VBI capturing. See :ref:`open` for an
96introduction.76introduction.
97 77
78.. tabularcolumns:: |p{5.5cm}|p{6.5cm}|p{5.5cm}
98 79
80.. cssclass:: longtable
99 81
100.. flat-table::82.. flat-table::
101 :header-rows: 183 :header-rows: 1
102 :stub-columns: 084 :stub-columns: 0
103 85
104 86 * - ``struct video_capability`` ``type``
105 - .. row 187 - struct :c:type:`v4l2_capability`
106 88 ``capabilities`` flags
107 - struct :c:type:`struct video_capability` ``type``89 - Purpose
108 90 * - ``VID_TYPE_CAPTURE``
109 - struct :ref:`v4l2_capability <v4l2-capability>`91 - ``V4L2_CAP_VIDEO_CAPTURE``
110 ``capabilities`` flags92 - The :ref:`video capture <capture>` interface is supported.
111 93 * - ``VID_TYPE_TUNER``
112 - Purpose94 - ``V4L2_CAP_TUNER``
113 95 - The device has a :ref:`tuner or modulator <tuner>`.
114 - .. row 296 * - ``VID_TYPE_TELETEXT``
115 97 - ``V4L2_CAP_VBI_CAPTURE``
116 - ``VID_TYPE_CAPTURE``98 - The :ref:`raw VBI capture <raw-vbi>` interface is supported.
117 99 * - ``VID_TYPE_OVERLAY``
118 - ``V4L2_CAP_VIDEO_CAPTURE``100 - ``V4L2_CAP_VIDEO_OVERLAY``
119 101 - The :ref:`video overlay <overlay>` interface is supported.
120 - The :ref:`video capture <capture>` interface is supported.102 * - ``VID_TYPE_CHROMAKEY``
121 103 - ``V4L2_FBUF_CAP_CHROMAKEY`` in field ``capability`` of struct
122 - .. row 3104 :c:type:`v4l2_framebuffer`
123 105 - Whether chromakey overlay is supported. For more information on
124 - ``VID_TYPE_TUNER``106 overlay see :ref:`overlay`.
125 107 * - ``VID_TYPE_CLIPPING``
126 - ``V4L2_CAP_TUNER``108 - ``V4L2_FBUF_CAP_LIST_CLIPPING`` and
127 109 ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` in field ``capability`` of
128 - The device has a :ref:`tuner or modulator <tuner>`.110 struct :c:type:`v4l2_framebuffer`
129 111 - Whether clipping the overlaid image is supported, see
130 - .. row 4112 :ref:`overlay`.
131 113 * - ``VID_TYPE_FRAMERAM``
132 - ``VID_TYPE_TELETEXT``114 - ``V4L2_FBUF_CAP_EXTERNOVERLAY`` *not set* in field ``capability``
133 115 of struct :c:type:`v4l2_framebuffer`
134 - ``V4L2_CAP_VBI_CAPTURE``116 - Whether overlay overwrites frame buffer memory, see
135 117 :ref:`overlay`.
136 - The :ref:`raw VBI capture <raw-vbi>` interface is supported.118 * - ``VID_TYPE_SCALES``
137 119 - ``-``
138 - .. row 5120 - This flag indicates if the hardware can scale images. The V4L2 API
139 121 implies the scale factor by setting the cropping dimensions and
140 - ``VID_TYPE_OVERLAY``122 image size with the :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` and
141 123 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, respectively. The
142 - ``V4L2_CAP_VIDEO_OVERLAY``124 driver returns the closest sizes possible. For more information on
143 125 cropping and scaling see :ref:`crop`.
144 - The :ref:`video overlay <overlay>` interface is supported.126 * - ``VID_TYPE_MONOCHROME``
145 127 - ``-``
146 - .. row 6128 - Applications can enumerate the supported image formats with the
147 129 :ref:`VIDIOC_ENUM_FMT` ioctl to determine if
148 - ``VID_TYPE_CHROMAKEY``130 the device supports grey scale capturing only. For more
149 131 information on image formats see :ref:`pixfmt`.
150 - ``V4L2_FBUF_CAP_CHROMAKEY`` in field ``capability`` of struct132 * - ``VID_TYPE_SUBCAPTURE``
151 :ref:`v4l2_framebuffer <v4l2-framebuffer>`133 - ``-``
152 134 - Applications can call the :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>`
153 - Whether chromakey overlay is supported. For more information on135 ioctl to determine if the device supports capturing a subsection
154 overlay see :ref:`overlay`.136 of the full picture ("cropping" in V4L2). If not, the ioctl
155 137 returns the ``EINVAL`` error code. For more information on cropping
156 - .. row 7138 and scaling see :ref:`crop`.
157 139 * - ``VID_TYPE_MPEG_DECODER``
158 - ``VID_TYPE_CLIPPING``140 - ``-``
159 141 - Applications can enumerate the supported image formats with the
160 - ``V4L2_FBUF_CAP_LIST_CLIPPING`` and142 :ref:`VIDIOC_ENUM_FMT` ioctl to determine if
161 ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` in field ``capability`` of143 the device supports MPEG streams.
162 struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`144 * - ``VID_TYPE_MPEG_ENCODER``
163 145 - ``-``
164 - Whether clipping the overlaid image is supported, see146 - See above.
165 :ref:`overlay`.147 * - ``VID_TYPE_MJPEG_DECODER``
166 148 - ``-``
167 - .. row 8149 - See above.
168 150 * - ``VID_TYPE_MJPEG_ENCODER``
169 - ``VID_TYPE_FRAMERAM``151 - ``-``
170 152 - See above.
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.
246 153
247 154
248The ``audios`` field was replaced by ``capabilities`` flag155The ``audios`` field was replaced by ``capabilities`` flag
@@ -262,12 +169,12 @@ Video Sources · 13 unmodified lines
262=============169=============
263 170
264V4L provides the ``VIDIOCGCHAN`` and ``VIDIOCSCHAN`` ioctl using struct171V4L provides the ``VIDIOCGCHAN`` and ``VIDIOCSCHAN`` ioctl using struct
265:c:type:`struct video_channel` to enumerate the video inputs of a V4L172``video_channel`` to enumerate the video inputs of a V4L
266device. The equivalent V4L2 ioctls are173device. The equivalent V4L2 ioctls are
267:ref:`VIDIOC_ENUMINPUT`,174:ref:`VIDIOC_ENUMINPUT`,
268:ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and175:ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and
269:ref:`VIDIOC_S_INPUT <VIDIOC_G_INPUT>` using struct176: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`.
271 178
272The ``channel`` field counting inputs was renamed to ``index``, the179The ``channel`` field counting inputs was renamed to ``index``, the
273video input types were renamed as follows:180video input types were renamed as follows:
@@ -278,24 +185,12 @@ video input types were renamed as follows: · 4 unmodified lines
278 :header-rows: 1185 :header-rows: 1
279 :stub-columns: 0186 :stub-columns: 0
280 187
281 188 * - struct ``video_channel`` ``type``
282 - .. row 1189 - struct :c:type:`v4l2_input` ``type``
283 190 * - ``VIDEO_TYPE_TV``
284 - struct :c:type:`struct video_channel` ``type``191 - ``V4L2_INPUT_TYPE_TUNER``
285 192 * - ``VIDEO_TYPE_CAMERA``
286 - struct :ref:`v4l2_input <v4l2-input>` ``type``193 - ``V4L2_INPUT_TYPE_CAMERA``
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``
299 194
300 195
301Unlike the ``tuners`` field expressing the number of tuners of this196Unlike 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
303However a tuner can have more than one input, i. e. RF connectors, and a198However a tuner can have more than one input, i. e. RF connectors, and a
304device can have multiple tuners. The index number of the tuner199device can have multiple tuners. The index number of the tuner
305associated with the input, if any, is stored in field ``tuner`` of200associated with the input, if any, is stored in field ``tuner`` of
306struct :ref:`v4l2_input <v4l2-input>`. Enumeration of tuners is201struct :c:type:`v4l2_input`. Enumeration of tuners is
307discussed in :ref:`tuner`.202discussed in :ref:`tuner`.
308 203
309The redundant ``VIDEO_VC_TUNER`` flag was dropped. Video inputs204The redundant ``VIDEO_VC_TUNER`` flag was dropped. Video inputs
@@ -326,11 +221,11 @@ Tuning · 16 unmodified lines
326======221======
327 222
328The V4L ``VIDIOCGTUNER`` and ``VIDIOCSTUNER`` ioctl and struct223The V4L ``VIDIOCGTUNER`` and ``VIDIOCSTUNER`` ioctl and struct
329:c:type:`struct video_tuner` can be used to enumerate the tuners of a224``video_tuner`` can be used to enumerate the tuners of a
330V4L TV or radio device. The equivalent V4L2 ioctls are225V4L TV or radio device. The equivalent V4L2 ioctls are
331:ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` and226:ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` and
332:ref:`VIDIOC_S_TUNER <VIDIOC_G_TUNER>` using struct227: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`.
334 229
335The ``tuner`` field counting tuners was renamed to ``index``. The fields230The ``tuner`` field counting tuners was renamed to ``index``. The fields
336``name``, ``rangelow`` and ``rangehigh`` remained unchanged.231``name``, ``rangelow`` and ``rangehigh`` remained unchanged.
@@ -338,7 +233,7 @@ The ``tuner`` field counting tuners was renamed to ``index``. The fields · 1 unmodified line
338The ``VIDEO_TUNER_PAL``, ``VIDEO_TUNER_NTSC`` and ``VIDEO_TUNER_SECAM``233The ``VIDEO_TUNER_PAL``, ``VIDEO_TUNER_NTSC`` and ``VIDEO_TUNER_SECAM``
339flags indicating the supported video standards were dropped. This234flags indicating the supported video standards were dropped. This
340information is now contained in the associated struct235information is now contained in the associated struct
341:ref:`v4l2_input <v4l2-input>`. No replacement exists for the236:c:type:`v4l2_input`. No replacement exists for the
342``VIDEO_TUNER_NORM`` flag indicating whether the video standard can be237``VIDEO_TUNER_NORM`` flag indicating whether the video standard can be
343switched. The ``mode`` field to select a different video standard was238switched. The ``mode`` field to select a different video standard was
344replaced by a whole new set of ioctls and structures described in239replaced by a whole new set of ioctls and structures described in
@@ -351,18 +246,18 @@ Japan with numbers 3-6 (sic). · 6 unmodified lines
351The ``VIDEO_TUNER_STEREO_ON`` flag indicating stereo reception became246The ``VIDEO_TUNER_STEREO_ON`` flag indicating stereo reception became
352``V4L2_TUNER_SUB_STEREO`` in field ``rxsubchans``. This field also247``V4L2_TUNER_SUB_STEREO`` in field ``rxsubchans``. This field also
353permits the detection of monaural and bilingual audio, see the248permits the detection of monaural and bilingual audio, see the
354definition of struct :ref:`v4l2_tuner <v4l2-tuner>` for details.249definition of struct :c:type:`v4l2_tuner` for details.
355Presently no replacement exists for the ``VIDEO_TUNER_RDS_ON`` and250Presently no replacement exists for the ``VIDEO_TUNER_RDS_ON`` and
356``VIDEO_TUNER_MBS_ON`` flags.251``VIDEO_TUNER_MBS_ON`` flags.
357 252
358The ``VIDEO_TUNER_LOW`` flag was renamed to ``V4L2_TUNER_CAP_LOW`` in253The ``VIDEO_TUNER_LOW`` flag was renamed to ``V4L2_TUNER_CAP_LOW`` in
359the struct :ref:`v4l2_tuner <v4l2-tuner>` ``capability`` field.254the struct :c:type:`v4l2_tuner` ``capability`` field.
360 255
361The ``VIDIOCGFREQ`` and ``VIDIOCSFREQ`` ioctl to change the tuner256The ``VIDIOCGFREQ`` and ``VIDIOCSFREQ`` ioctl to change the tuner
362frequency where renamed to257frequency where renamed to
363:ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUENCY>` and258:ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUENCY>` and
364:ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>`. They take a pointer259:ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>`. They take a pointer
365to a struct :ref:`v4l2_frequency <v4l2-frequency>` instead of an260to a struct :c:type:`v4l2_frequency` instead of an
366unsigned long integer.261unsigned long integer.
367 262
368 263
@@ -372,7 +267,7 @@ Image Properties · 3 unmodified lines
372================267================
373 268
374V4L2 has no equivalent of the ``VIDIOCGPICT`` and ``VIDIOCSPICT`` ioctl269V4L2 has no equivalent of the ``VIDIOCGPICT`` and ``VIDIOCSPICT`` ioctl
375and struct :c:type:`struct video_picture`. The following fields where270and struct ``video_picture``. The following fields where
376replaced by V4L2 controls accessible with the271replaced by V4L2 controls accessible with the
377:ref:`VIDIOC_QUERYCTRL`,272:ref:`VIDIOC_QUERYCTRL`,
378:ref:`VIDIOC_G_CTRL <VIDIOC_G_CTRL>` and273:ref:`VIDIOC_G_CTRL <VIDIOC_G_CTRL>` and
@@ -384,42 +279,18 @@ replaced by V4L2 controls accessible with the · 5 unmodified lines
384 :header-rows: 1279 :header-rows: 1
385 :stub-columns: 0280 :stub-columns: 0
386 281
387 282 * - struct ``video_picture``
388 - .. row 1283 - V4L2 Control ID
389 284 * - ``brightness``
390 - struct :c:type:`struct video_picture`285 - ``V4L2_CID_BRIGHTNESS``
391 286 * - ``hue``
392 - V4L2 Control ID287 - ``V4L2_CID_HUE``
393 288 * - ``colour``
394 - .. row 2289 - ``V4L2_CID_SATURATION``
395 290 * - ``contrast``
396 - ``brightness``291 - ``V4L2_CID_CONTRAST``
397 292 * - ``whiteness``
398 - ``V4L2_CID_BRIGHTNESS``293 - ``V4L2_CID_WHITENESS``
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``
423 294
424 295
425The V4L picture controls are assumed to range from 0 to 65535 with no296The 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
432implied by the selected image format. V4L2 does not explicitly provide303implied by the selected image format. V4L2 does not explicitly provide
433such information assuming applications recognizing the format are aware304such information assuming applications recognizing the format are aware
434of the image depth and others need not know. The ``palette`` field moved305of the image depth and others need not know. The ``palette`` field moved
435into the struct :ref:`v4l2_pix_format <v4l2-pix-format>`:306into the struct :c:type:`v4l2_pix_format`:
436 307
437 308
438 309
@@ -440,108 +311,40 @@ into the struct :ref:`v4l2_pix_format <v4l2-pix-format>`: · 1 unmodified line
440 :header-rows: 1311 :header-rows: 1
441 :stub-columns: 0312 :stub-columns: 0
442 313
443 314 * - struct ``video_picture`` ``palette``
444 - .. row 1315 - struct :c:type:`v4l2_pix_format` ``pixfmt``
445 316 * - ``VIDEO_PALETTE_GREY``
446 - struct :c:type:`struct video_picture` ``palette``317 - :ref:`V4L2_PIX_FMT_GREY <V4L2-PIX-FMT-GREY>`
447 318 * - ``VIDEO_PALETTE_HI240``
448 - struct :ref:`v4l2_pix_format <v4l2-pix-format>` ``pixfmt``319 - :ref:`V4L2_PIX_FMT_HI240 <pixfmt-reserved>` [#f3]_
449 320 * - ``VIDEO_PALETTE_RGB565``
450 - .. row 2321 - :ref:`V4L2_PIX_FMT_RGB565 <pixfmt-rgb>`
451 322 * - ``VIDEO_PALETTE_RGB555``
452 - ``VIDEO_PALETTE_GREY``323 - :ref:`V4L2_PIX_FMT_RGB555 <pixfmt-rgb>`
453 324 * - ``VIDEO_PALETTE_RGB24``
454 - :ref:`V4L2_PIX_FMT_GREY <V4L2-PIX-FMT-GREY>`325 - :ref:`V4L2_PIX_FMT_BGR24 <pixfmt-rgb>`
455 326 * - ``VIDEO_PALETTE_RGB32``
456 - .. row 3327 - :ref:`V4L2_PIX_FMT_BGR32 <pixfmt-rgb>` [#f4]_
457 328 * - ``VIDEO_PALETTE_YUV422``
458 - ``VIDEO_PALETTE_HI240``329 - :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>`
459 330 * - ``VIDEO_PALETTE_YUYV``\ [#f5]_
460 - :ref:`V4L2_PIX_FMT_HI240 <pixfmt-reserved>` [#f3]_331 - :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>`
461 332 * - ``VIDEO_PALETTE_UYVY``
462 - .. row 4333 - :ref:`V4L2_PIX_FMT_UYVY <V4L2-PIX-FMT-UYVY>`
463 334 * - ``VIDEO_PALETTE_YUV420``
464 - ``VIDEO_PALETTE_RGB565``335 - None
465 336 * - ``VIDEO_PALETTE_YUV411``
466 - :ref:`V4L2_PIX_FMT_RGB565 <pixfmt-rgb>`337 - :ref:`V4L2_PIX_FMT_Y41P <V4L2-PIX-FMT-Y41P>` [#f6]_
467 338 * - ``VIDEO_PALETTE_RAW``
468 - .. row 5339 - None [#f7]_
469 340 * - ``VIDEO_PALETTE_YUV422P``
470 - ``VIDEO_PALETTE_RGB555``341 - :ref:`V4L2_PIX_FMT_YUV422P <V4L2-PIX-FMT-YUV422P>`
471 342 * - ``VIDEO_PALETTE_YUV411P``
472 - :ref:`V4L2_PIX_FMT_RGB555 <pixfmt-rgb>`343 - :ref:`V4L2_PIX_FMT_YUV411P <V4L2-PIX-FMT-YUV411P>` [#f8]_
473 344 * - ``VIDEO_PALETTE_YUV420P``
474 - .. row 6345 - :ref:`V4L2_PIX_FMT_YVU420 <V4L2-PIX-FMT-YVU420>`
475 346 * - ``VIDEO_PALETTE_YUV410P``
476 - ``VIDEO_PALETTE_RGB24``347 - :ref:`V4L2_PIX_FMT_YVU410 <V4L2-PIX-FMT-YVU410>`
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>`
545 348
546 349
547V4L2 image formats are defined in :ref:`pixfmt`. The image format can350V4L2 image formats are defined in :ref:`pixfmt`. The image format can
@@ -552,11 +355,11 @@ Audio · 4 unmodified lines
552=====355=====
553 356
554The ``VIDIOCGAUDIO`` and ``VIDIOCSAUDIO`` ioctl and struct357The ``VIDIOCGAUDIO`` and ``VIDIOCSAUDIO`` ioctl and struct
555:c:type:`struct video_audio` are used to enumerate the audio inputs358``video_audio`` are used to enumerate the audio inputs
556of a V4L device. The equivalent V4L2 ioctls are359of a V4L device. The equivalent V4L2 ioctls are
557:ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` and360:ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` and
558:ref:`VIDIOC_S_AUDIO <VIDIOC_G_AUDIO>` using struct361: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`.
560 363
561The ``audio`` "channel number" field counting audio inputs was renamed364The ``audio`` "channel number" field counting audio inputs was renamed
562to ``index``.365to ``index``.
@@ -569,10 +372,10 @@ standard is BTSC ``VIDEO_SOUND_LANG2`` refers to SAP and · 6 unmodified lines
569specification, there is no way to query the selected mode. On372specification, there is no way to query the selected mode. On
570``VIDIOCGAUDIO`` the driver returns the *actually received* audio373``VIDIOCGAUDIO`` the driver returns the *actually received* audio
571programmes in this field. In the V4L2 API this information is stored in374programmes in this field. In the V4L2 API this information is stored in
572the struct :ref:`v4l2_tuner <v4l2-tuner>` ``rxsubchans`` and375the struct :c:type:`v4l2_tuner` ``rxsubchans`` and
573``audmode`` fields, respectively. See :ref:`tuner` for more376``audmode`` fields, respectively. See :ref:`tuner` for more
574information on tuners. Related to audio modes struct377information on tuners. Related to audio modes struct
575:ref:`v4l2_audio <v4l2-audio>` also reports if this is a mono or378:c:type:`v4l2_audio` also reports if this is a mono or
576stereo input, regardless if the source is a tuner.379stereo input, regardless if the source is a tuner.
577 380
578The following fields where replaced by V4L2 controls accessible with the381The 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
586 :header-rows: 1389 :header-rows: 1
587 :stub-columns: 0390 :stub-columns: 0
588 391
589 392 * - struct ``video_audio``
590 - .. row 1393 - V4L2 Control ID
591 394 * - ``volume``
592 - struct :c:type:`struct video_audio`395 - ``V4L2_CID_AUDIO_VOLUME``
593 396 * - ``bass``
594 - V4L2 Control ID397 - ``V4L2_CID_AUDIO_BASS``
595 398 * - ``treble``
596 - .. row 2399 - ``V4L2_CID_AUDIO_TREBLE``
597 400 * - ``balance``
598 - ``volume``401 - ``V4L2_CID_AUDIO_BALANCE``
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``
619 402
620 403
621To determine which of these controls are supported by a driver V4L404To 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
627``V4L2_CID_AUDIO_MUTE`` control.410``V4L2_CID_AUDIO_MUTE`` control.
628 411
629All V4L2 controls have a ``step`` attribute replacing the struct412All V4L2 controls have a ``step`` attribute replacing the struct
630:c:type:`struct video_audio` ``step`` field. The V4L audio controls413``video_audio`` ``step`` field. The V4L audio controls
631are assumed to range from 0 to 65535 with no particular reset value. The414are assumed to range from 0 to 65535 with no particular reset value. The
632V4L2 API permits arbitrary limits and defaults which can be queried with415V4L2 API permits arbitrary limits and defaults which can be queried with
633the :ref:`VIDIOC_QUERYCTRL` ioctl. For general416the :ref:`VIDIOC_QUERYCTRL` ioctl. For general
@@ -640,11 +423,11 @@ Frame Buffer Overlay · 6 unmodified lines
640The V4L2 ioctls equivalent to ``VIDIOCGFBUF`` and ``VIDIOCSFBUF`` are423The V4L2 ioctls equivalent to ``VIDIOCGFBUF`` and ``VIDIOCSFBUF`` are
641:ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` and424:ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` and
642:ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>`. The ``base`` field of struct425:ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>`. The ``base`` field of struct
643:c:type:`struct video_buffer` remained unchanged, except V4L2 defines426``video_buffer`` remained unchanged, except V4L2 defines
644a flag to indicate non-destructive overlays instead of a ``NULL``427a flag to indicate non-destructive overlays instead of a ``NULL``
645pointer. All other fields moved into the struct428pointer. All other fields moved into the struct
646:ref:`v4l2_pix_format <v4l2-pix-format>` ``fmt`` substructure of429:c:type:`v4l2_pix_format` ``fmt`` substructure of
647struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`. The ``depth``430struct :c:type:`v4l2_framebuffer`. The ``depth``
648field was replaced by ``pixelformat``. See :ref:`pixfmt-rgb` for a431field was replaced by ``pixelformat``. See :ref:`pixfmt-rgb` for a
649list of RGB formats and their respective color depths.432list of RGB formats and their respective color depths.
650 433
@@ -652,28 +435,28 @@ Instead of the special ioctls ``VIDIOCGWIN`` and ``VIDIOCSWIN`` V4L2 · 1 unmodified line
652uses the general-purpose data format negotiation ioctls435uses the general-purpose data format negotiation ioctls
653:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and436:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and
654:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`. They take a pointer to a struct437: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`` member438:c:type:`v4l2_format` as argument. Here the ``win`` member
656of the ``fmt`` union is used, a struct439of the ``fmt`` union is used, a struct
657:ref:`v4l2_window <v4l2-window>`.440:c:type:`v4l2_window`.
658 441
659The ``x``, ``y``, ``width`` and ``height`` fields of struct442The ``x``, ``y``, ``width`` and ``height`` fields of struct
660:c:type:`struct video_window` moved into struct443``video_window`` moved into struct
661:ref:`v4l2_rect <v4l2-rect>` substructure ``w`` of struct444:c:type:`v4l2_rect` substructure ``w`` of struct
662:c:type:`struct v4l2_window`. The ``chromakey``, ``clips``, and445:c:type:`v4l2_window`. The ``chromakey``, ``clips``, and
663``clipcount`` fields remained unchanged. Struct446``clipcount`` fields remained unchanged. Struct
664:c:type:`struct video_clip` was renamed to struct447``video_clip`` was renamed to struct
665:ref:`v4l2_clip <v4l2-clip>`, also containing a struct448:c:type:`v4l2_clip`, also containing a struct
666:c:type:`struct v4l2_rect`, but the semantics are still the same.449:c:type:`v4l2_rect`, but the semantics are still the same.
667 450
668The ``VIDEO_WINDOW_INTERLACE`` flag was dropped. Instead applications451The ``VIDEO_WINDOW_INTERLACE`` flag was dropped. Instead applications
669must set the ``field`` field to ``V4L2_FIELD_ANY`` or452must set the ``field`` field to ``V4L2_FIELD_ANY`` or
670``V4L2_FIELD_INTERLACED``. The ``VIDEO_WINDOW_CHROMAKEY`` flag moved453``V4L2_FIELD_INTERLACED``. The ``VIDEO_WINDOW_CHROMAKEY`` flag moved
671into struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`, under the new454into struct :c:type:`v4l2_framebuffer`, under the new
672name ``V4L2_FBUF_FLAG_CHROMAKEY``.455name ``V4L2_FBUF_FLAG_CHROMAKEY``.
673 456
674In V4L, storing a bitmap pointer in ``clips`` and setting ``clipcount``457In V4L, storing a bitmap pointer in ``clips`` and setting ``clipcount``
675to ``VIDEO_CLIP_BITMAP`` (-1) requests bitmap clipping, using a fixed458to ``VIDEO_CLIP_BITMAP`` (-1) requests bitmap clipping, using a fixed
676size bitmap of 1024 × 625 bits. Struct :c:type:`struct v4l2_window`459size bitmap of 1024 × 625 bits. Struct :c:type:`v4l2_window`
677has a separate ``bitmap`` pointer field for this purpose and the bitmap460has a separate ``bitmap`` pointer field for this purpose and the bitmap
678size is determined by ``w.width`` and ``w.height``.461size is determined by ``w.width`` and ``w.height``.
679 462
@@ -686,24 +469,24 @@ Cropping · 6 unmodified lines
686 469
687To capture only a subsection of the full picture V4L defines the470To capture only a subsection of the full picture V4L defines the
688``VIDIOCGCAPTURE`` and ``VIDIOCSCAPTURE`` ioctls using struct471``VIDIOCGCAPTURE`` and ``VIDIOCSCAPTURE`` ioctls using struct
689:c:type:`struct video_capture`. The equivalent V4L2 ioctls are472``video_capture``. The equivalent V4L2 ioctls are
690:ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and473:ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and
691:ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` using struct474:ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` using struct
692:ref:`v4l2_crop <v4l2-crop>`, and the related475:c:type:`v4l2_crop`, and the related
693:ref:`VIDIOC_CROPCAP` ioctl. This is a rather476:ref:`VIDIOC_CROPCAP` ioctl. This is a rather
694complex matter, see :ref:`crop` for details.477complex matter, see :ref:`crop` for details.
695 478
696The ``x``, ``y``, ``width`` and ``height`` fields moved into struct479The ``x``, ``y``, ``width`` and ``height`` fields moved into struct
697:ref:`v4l2_rect <v4l2-rect>` substructure ``c`` of struct480:c:type:`v4l2_rect` substructure ``c`` of struct
698:c:type:`struct v4l2_crop`. The ``decimation`` field was dropped. In481:c:type:`v4l2_crop`. The ``decimation`` field was dropped. In
699the V4L2 API the scaling factor is implied by the size of the cropping482the V4L2 API the scaling factor is implied by the size of the cropping
700rectangle and the size of the captured or overlaid image.483rectangle and the size of the captured or overlaid image.
701 484
702The ``VIDEO_CAPTURE_ODD`` and ``VIDEO_CAPTURE_EVEN`` flags to capture485The ``VIDEO_CAPTURE_ODD`` and ``VIDEO_CAPTURE_EVEN`` flags to capture
703only the odd or even field, respectively, were replaced by486only the odd or even field, respectively, were replaced by
704``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM`` in the field named487``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM`` in the field named
705``field`` of struct :ref:`v4l2_pix_format <v4l2-pix-format>` and488``field`` of struct :c:type:`v4l2_pix_format` and
706struct :ref:`v4l2_window <v4l2-window>`. These structures are used to489struct :c:type:`v4l2_window`. These structures are used to
707select a capture or overlay format with the490select a capture or overlay format with the
708:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.491:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl.
709 492
@@ -728,8 +511,8 @@ To select an image format and size, V4L provides the ``VIDIOCSPICT`` and · 18 unmodified lines
728``VIDIOCSWIN`` ioctls. V4L2 uses the general-purpose data format511``VIDIOCSWIN`` ioctls. V4L2 uses the general-purpose data format
729negotiation ioctls :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and512negotiation ioctls :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and
730:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`. They take a pointer to a struct513:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`. They take a pointer to a struct
731:ref:`v4l2_format <v4l2-format>` as argument, here the struct514:c:type:`v4l2_format` as argument, here the struct
732:ref:`v4l2_pix_format <v4l2-pix-format>` named ``pix`` of its515:c:type:`v4l2_pix_format` named ``pix`` of its
733``fmt`` union is used.516``fmt`` union is used.
734 517
735For more information about the V4L2 read interface see :ref:`rw`.518For more information about the V4L2 read interface see :ref:`rw`.
@@ -750,68 +533,49 @@ differences. · 14 unmodified lines
750 :header-rows: 1533 :header-rows: 1
751 :stub-columns: 0534 :stub-columns: 0
752 535
753 536 * - V4L
754 - .. row 1537 - V4L2
755 538 * -
756 - V4L539 - The image format must be selected before buffers are allocated,
757 540 with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. When no
758 - V4L2541 format is selected the driver may use the last, possibly by
759 542 another application requested format.
760 - .. row 2543 * - Applications cannot change the number of buffers. The it is built
761 544 into the driver, unless it has a module option to change the
762 -545 number when the driver module is loaded.
763 - The image format must be selected before buffers are allocated,546 - The :ref:`VIDIOC_REQBUFS` ioctl allocates the
764 with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. When no547 desired number of buffers, this is a required step in the
765 format is selected the driver may use the last, possibly by548 initialization sequence.
766 another application requested format.549 * - Drivers map all buffers as one contiguous range of memory. The
767 550 ``VIDIOCGMBUF`` ioctl is available to query the number of buffers,
768 - .. row 3551 the offset of each buffer from the start of the virtual file, and
769 552 the overall amount of memory used, which can be used as arguments
770 - Applications cannot change the number of buffers. The it is built553 for the :ref:`mmap() <func-mmap>` function.
771 into the driver, unless it has a module option to change the554 - Buffers are individually mapped. The offset and size of each
772 number when the driver module is loaded.555 buffer can be determined with the
773 556 :ref:`VIDIOC_QUERYBUF` ioctl.
774 - The :ref:`VIDIOC_REQBUFS` ioctl allocates the557 * - The ``VIDIOCMCAPTURE`` ioctl prepares a buffer for capturing. It
775 desired number of buffers, this is a required step in the558 also determines the image format for this buffer. The ioctl
776 initialization sequence.559 returns immediately, eventually with an ``EAGAIN`` error code if no
777 560 video signal had been detected. When the driver supports more than
778 - .. row 4561 one buffer applications can call the ioctl multiple times and thus
779 562 have multiple outstanding capture requests.
780 - Drivers map all buffers as one contiguous range of memory. The563
781 ``VIDIOCGMBUF`` ioctl is available to query the number of buffers,564 The ``VIDIOCSYNC`` ioctl suspends execution until a particular
782 the offset of each buffer from the start of the virtual file, and565 buffer has been filled.
783 the overall amount of memory used, which can be used as arguments566 - Drivers maintain an incoming and outgoing queue.
784 for the :ref:`mmap() <func-mmap>` function.567 :ref:`VIDIOC_QBUF` enqueues any empty buffer into
785 568 the incoming queue. Filled buffers are dequeued from the outgoing
786 - Buffers are individually mapped. The offset and size of each569 queue with the :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. To wait
787 buffer can be determined with the570 until filled buffers become available this function,
788 :ref:`VIDIOC_QUERYBUF` ioctl.571 :ref:`select() <func-select>` or :ref:`poll() <func-poll>` can
789 572 be used. The :ref:`VIDIOC_STREAMON` ioctl
790 - .. row 5573 must be called once after enqueuing one or more buffers to start
791 574 capturing. Its counterpart
792 - The ``VIDIOCMCAPTURE`` ioctl prepares a buffer for capturing. It575 :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` stops capturing and
793 also determines the image format for this buffer. The ioctl576 dequeues all buffers from both queues. Applications can query the
794 returns immediately, eventually with an ``EAGAIN`` error code if no577 signal status, if known, with the
795 video signal had been detected. When the driver supports more than578 :ref:`VIDIOC_ENUMINPUT` ioctl.
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.
815 579
816 580
817For a more in-depth discussion of memory mapping and examples, see581For a more in-depth discussion of memory mapping and examples, see
@@ -833,68 +597,36 @@ with the following parameters: · 15 unmodified lines
833 :header-rows: 1597 :header-rows: 1
834 :stub-columns: 0598 :stub-columns: 0
835 599
836 600 * - struct :c:type:`v4l2_vbi_format`
837 - .. row 1601 - V4L, BTTV driver
838 602 * - sampling_rate
839 - struct :ref:`v4l2_vbi_format <v4l2-vbi-format>`603 - 28636363 Hz NTSC (or any other 525-line standard); 35468950 Hz PAL
840 604 and SECAM (625-line standards)
841 - V4L, BTTV driver605 * - offset
842 606 - ?
843 - .. row 2607 * - samples_per_line
844 608 - 2048
845 - sampling_rate609 * - sample_format
846 610 - V4L2_PIX_FMT_GREY. The last four bytes (a machine endianness
847 - 28636363 Hz NTSC (or any other 525-line standard); 35468950 Hz PAL611 integer) contain a frame counter.
848 and SECAM (625-line standards)612 * - start[]
849 613 - 10, 273 NTSC; 22, 335 PAL and SECAM
850 - .. row 3614 * - count[]
851 615 - 16, 16 [#f9]_
852 - offset616 * - flags
853 617 - 0
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
886 618
887 619
888Undocumented in the V4L specification, in Linux 2.3 the620Undocumented in the V4L specification, in Linux 2.3 the
889``VIDIOCGVBIFMT`` and ``VIDIOCSVBIFMT`` ioctls using struct621``VIDIOCGVBIFMT`` and ``VIDIOCSVBIFMT`` ioctls using struct
890:c:type:`struct vbi_format` were added to determine the VBI image622``vbi_format`` were added to determine the VBI image
891parameters. These ioctls are only partially compatible with the V4L2 VBI623parameters. These ioctls are only partially compatible with the V4L2 VBI
892interface specified in :ref:`raw-vbi`.624interface specified in :ref:`raw-vbi`.
893 625
894An ``offset`` field does not exist, ``sample_format`` is supposed to be626An ``offset`` field does not exist, ``sample_format`` is supposed to be
895``VIDEO_PALETTE_RAW``, equivalent to ``V4L2_PIX_FMT_GREY``. The627``VIDEO_PALETTE_RAW``, equivalent to ``V4L2_PIX_FMT_GREY``. The
896remaining fields are probably equivalent to struct628remaining fields are probably equivalent to struct
897:ref:`v4l2_vbi_format <v4l2-vbi-format>`.629:c:type:`v4l2_vbi_format`.
898 630
899Apparently only the Zoran (ZR 36120) driver implements these ioctls. The631Apparently only the Zoran (ZR 36120) driver implements these ioctls. The
900semantics differ from those specified for V4L2 in two ways. The632semantics 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
19 19
20Input and output devices support the streaming I/O method when the20Input and output devices support the streaming I/O method when the
21``V4L2_CAP_STREAMING`` flag in the ``capabilities`` field of struct21``V4L2_CAP_STREAMING`` flag in the ``capabilities`` field of struct
22:ref:`v4l2_capability <v4l2-capability>` returned by the22:c:type:`v4l2_capability` returned by the
23:ref:`VIDIOC_QUERYCAP <VIDIOC_QUERYCAP>` ioctl is set. Whether23:ref:`VIDIOC_QUERYCAP <VIDIOC_QUERYCAP>` ioctl is set. Whether
24importing DMA buffers through DMABUF file descriptors is supported is24importing DMA buffers through DMABUF file descriptors is supported is
25determined by calling the :ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>`25determined 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
31application. Next, these buffers are exported to the application as file31application. Next, these buffers are exported to the application as file
32descriptors using an API which is specific for an allocator driver. Only32descriptors using an API which is specific for an allocator driver. Only
33such file descriptor are exchanged. The descriptors and meta-information33such file descriptor are exchanged. The descriptors and meta-information
34are passed in struct :ref:`v4l2_buffer <v4l2-buffer>` (or in struct34are passed in struct :c:type:`v4l2_buffer` (or in struct
35:ref:`v4l2_plane <v4l2-plane>` in the multi-planar API case). The35:c:type:`v4l2_plane` in the multi-planar API case). The
36driver must be switched into DMABUF I/O mode by calling the36driver must be switched into DMABUF I/O mode by calling the
37:ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>` with the desired buffer type.37:ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>` with the desired buffer type.
38 38
@@ -151,7 +151,7 @@ To start and stop capturing or displaying applications call the · 112 unmodified lines
151 both queues and unlocks all buffers as a side effect. Since there is no151 both queues and unlocks all buffers as a side effect. Since there is no
152 notion of doing anything "now" on a multitasking system, if an152 notion of doing anything "now" on a multitasking system, if an
153 application needs to synchronize with another event it should examine153 application needs to synchronize with another event it should examine
154 the struct :ref:`v4l2_buffer <v4l2-buffer>` ``timestamp`` of captured or154 the struct :c:type:`v4l2_buffer` ``timestamp`` of captured or
155 outputted buffers.155 outputted buffers.
156 156
157Drivers implementing DMABUF importing I/O must support the157Drivers 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
49several controls at once.49several controls at once.
50 50
51Each of the new ioctls expects a pointer to a struct51Each of the new ioctls expects a pointer to a struct
52:ref:`v4l2_ext_controls <v4l2-ext-controls>`. This structure52:c:type:`v4l2_ext_controls`. This structure
53contains a pointer to the control array, a count of the number of53contains a pointer to the control array, a count of the number of
54controls in that array and a control class. Control classes are used to54controls in that array and a control class. Control classes are used to
55group similar controls into a single class. For example, control class55group 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
65whether the specified control class is supported.65whether the specified control class is supported.
66 66
67The control array is a struct67The control array is a struct
68:ref:`v4l2_ext_control <v4l2-ext-control>` array. The68:c:type:`v4l2_ext_control` array. The
69:ref:`struct v4l2_ext_control <v4l2-ext-control>` structure is very similar to69struct :c:type:`v4l2_ext_control` is very similar to
70struct :ref:`v4l2_control <v4l2-control>`, except for the fact that70struct :c:type:`v4l2_control`, except for the fact that
71it also allows for 64-bit values and pointers to be passed.71it also allows for 64-bit values and pointers to be passed.
72 72
73Since the struct :ref:`v4l2_ext_control <v4l2-ext-control>` supports73Since the struct :c:type:`v4l2_ext_control` supports
74pointers it is now also possible to have controls with compound types74pointers it is now also possible to have controls with compound types
75such as N-dimensional arrays and/or structures. You need to specify the75such as N-dimensional arrays and/or structures. You need to specify the
76``V4L2_CTRL_FLAG_NEXT_COMPOUND`` when enumerating controls to actually76``V4L2_CTRL_FLAG_NEXT_COMPOUND`` when enumerating controls to actually
@@ -184,7 +184,9 @@ Codec Control Reference · 107 unmodified lines
184Below all controls within the Codec control class are described. First184Below all controls within the Codec control class are described. First
185the generic controls, then controls specific for certain hardware.185the generic controls, then controls specific for certain hardware.
186 186
187.. note:: These controls are applicable to all codecs and not just MPEG. The187.. note::
188
189 These controls are applicable to all codecs and not just MPEG. The
188 defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG as the controls190 defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG as the controls
189 were originally made for MPEG codecs and later extended to cover all191 were originally made for MPEG codecs and later extended to cover all
190 encoding formats.192 encoding formats.
@@ -207,7 +209,10 @@ Codec Control IDs · 16 unmodified lines
207 209
208.. _v4l2-mpeg-stream-type:210.. _v4l2-mpeg-stream-type:
209 211
210``V4L2_CID_MPEG_STREAM_TYPE (enum v4l2_mpeg_stream_type)``212``V4L2_CID_MPEG_STREAM_TYPE``
213 (enum)
214
215enum v4l2_mpeg_stream_type -
211 The MPEG-1, -2 or -4 output stream type. One cannot assume anything216 The MPEG-1, -2 or -4 output stream type. One cannot assume anything
212 here. Each hardware MPEG encoder tends to support different subsets217 here. Each hardware MPEG encoder tends to support different subsets
213 of the available MPEG stream types. This control is specific to218 of the available MPEG stream types. This control is specific to
@@ -219,42 +224,18 @@ Codec Control IDs · 5 unmodified lines
219 :header-rows: 0224 :header-rows: 0
220 :stub-columns: 0225 :stub-columns: 0
221 226
222 227 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS``
223 - .. row 1228 - MPEG-2 program stream
224 229 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS``
225 - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS``230 - MPEG-2 transport stream
226 231 * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS``
227 - MPEG-2 program stream232 - MPEG-1 system stream
228 233 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD``
229 - .. row 2234 - MPEG-2 DVD-compatible stream
230 235 * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD``
231 - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS``236 - MPEG-1 VCD-compatible stream
232 237 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD``
233 - MPEG-2 transport stream238 - MPEG-2 SVCD-compatible 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
258 239
259 240
260 241
@@ -280,7 +261,10 @@ Codec Control IDs · 19 unmodified lines
280 261
281.. _v4l2-mpeg-stream-vbi-fmt:262.. _v4l2-mpeg-stream-vbi-fmt:
282 263
283``V4L2_CID_MPEG_STREAM_VBI_FMT (enum v4l2_mpeg_stream_vbi_fmt)``264``V4L2_CID_MPEG_STREAM_VBI_FMT``
265 (enum)
266
267enum v4l2_mpeg_stream_vbi_fmt -
284 Some cards can embed VBI data (e. g. Closed Caption, Teletext) into268 Some cards can embed VBI data (e. g. Closed Caption, Teletext) into
285 the MPEG stream. This control selects whether VBI data should be269 the MPEG stream. This control selects whether VBI data should be
286 embedded, and if so, what embedding method should be used. The list270 embedded, and if so, what embedding method should be used. The list
@@ -289,30 +273,27 @@ Codec Control IDs · 2 unmodified lines
289 273
290 274
291 275
276.. tabularcolumns:: |p{6 cm}|p{11.5cm}|
277
292.. flat-table::278.. flat-table::
293 :header-rows: 0279 :header-rows: 0
294 :stub-columns: 0280 :stub-columns: 0
295 281
296 282 * - ``V4L2_MPEG_STREAM_VBI_FMT_NONE``
297 - .. row 1283 - No VBI in the MPEG stream
298 284 * - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV``
299 - ``V4L2_MPEG_STREAM_VBI_FMT_NONE``285 - VBI in private packets, IVTV format (documented in the kernel
300 286 sources in the file
301 - No VBI in the MPEG stream287 ``Documentation/video4linux/cx2341x/README.vbi``)
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``)
310 288
311 289
312 290
313.. _v4l2-mpeg-audio-sampling-freq:291.. _v4l2-mpeg-audio-sampling-freq:
314 292
315``V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (enum v4l2_mpeg_audio_sampling_freq)``293``V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ``
294 (enum)
295
296enum v4l2_mpeg_audio_sampling_freq -
316 MPEG Audio sampling frequency. Possible values are:297 MPEG Audio sampling frequency. Possible values are:
317 298
318 299
@@ -321,30 +302,21 @@ Codec Control IDs · 2 unmodified lines
321 :header-rows: 0302 :header-rows: 0
322 :stub-columns: 0303 :stub-columns: 0
323 304
324 305 * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100``
325 - .. row 1306 - 44.1 kHz
326 307 * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000``
327 - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100``308 - 48 kHz
328 309 * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000``
329 - 44.1 kHz310 - 32 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
342 311
343 312
344 313
345.. _v4l2-mpeg-audio-encoding:314.. _v4l2-mpeg-audio-encoding:
346 315
347``V4L2_CID_MPEG_AUDIO_ENCODING (enum v4l2_mpeg_audio_encoding)``316``V4L2_CID_MPEG_AUDIO_ENCODING``
317 (enum)
318
319enum v4l2_mpeg_audio_encoding -
348 MPEG Audio encoding. This control is specific to multiplexed MPEG320 MPEG Audio encoding. This control is specific to multiplexed MPEG
349 streams. Possible values are:321 streams. Possible values are:
350 322
@@ -354,42 +326,25 @@ Codec Control IDs · 3 unmodified lines
354 :header-rows: 0326 :header-rows: 0
355 :stub-columns: 0327 :stub-columns: 0
356 328
357 329 * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1``
358 - .. row 1330 - MPEG-1/2 Layer I encoding
359 331 * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2``
360 - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1``332 - MPEG-1/2 Layer II encoding
361 333 * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3``
362 - MPEG-1/2 Layer I encoding334 - MPEG-1/2 Layer III encoding
363 335 * - ``V4L2_MPEG_AUDIO_ENCODING_AAC``
364 - .. row 2336 - MPEG-2/4 AAC (Advanced Audio Coding)
365 337 * - ``V4L2_MPEG_AUDIO_ENCODING_AC3``
366 - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2``338 - AC-3 aka ATSC A/52 encoding
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
387 339
388 340
389 341
390.. _v4l2-mpeg-audio-l1-bitrate:342.. _v4l2-mpeg-audio-l1-bitrate:
391 343
392``V4L2_CID_MPEG_AUDIO_L1_BITRATE (enum v4l2_mpeg_audio_l1_bitrate)``344``V4L2_CID_MPEG_AUDIO_L1_BITRATE``
345 (enum)
346
347enum v4l2_mpeg_audio_l1_bitrate -
393 MPEG-1/2 Layer I bitrate. Possible values are:348 MPEG-1/2 Layer I bitrate. Possible values are:
394 349
395 350
@@ -398,97 +353,89 @@ Codec Control IDs · 2 unmodified lines
398 :header-rows: 0353 :header-rows: 0
399 :stub-columns: 0354 :stub-columns: 0
400 355
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
401 384
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
419 385
420 - .. row 4
421 386
422 - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K``387.. _v4l2-mpeg-audio-l2-bitrate:
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``
471 388
472 - 384 kbit/s389``V4L2_CID_MPEG_AUDIO_L2_BITRATE``
390 (enum)
473 391
474 - .. row 13392enum v4l2_mpeg_audio_l2_bitrate -
393 MPEG-1/2 Layer II bitrate. Possible values are:
475 394
476 - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K``
477 395
478 - 416 kbit/s
479 396
480 - .. row 14397.. flat-table::
398 :header-rows: 0
399 :stub-columns: 0
481 400
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
483 429
484 - 448 kbit/s
485 430
486 431
432.. _v4l2-mpeg-audio-l3-bitrate:
487 433
488.. _v4l2-mpeg-audio-l2-bitrate:434``V4L2_CID_MPEG_AUDIO_L3_BITRATE``
435 (enum)
489 436
490``V4L2_CID_MPEG_AUDIO_L2_BITRATE (enum v4l2_mpeg_audio_l2_bitrate)``437enum v4l2_mpeg_audio_l3_bitrate -
491 MPEG-1/2 Layer II bitrate. Possible values are:438 MPEG-1/2 Layer III bitrate. Possible values are:
492 439
493 440
494 441
@@ -496,97 +443,177 @@ Codec Control IDs · 1 unmodified line
496 :header-rows: 0443 :header-rows: 0
497 :stub-columns: 0444 :stub-columns: 0
498 445
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
499 474
500 - .. row 1
501
502 - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K``
503
504 - 32 kbit/s
505
506 - .. row 2
507 475
508 - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K``
509 476
510 - 48 kbit/s477``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)``
511 478 AAC bitrate in bits per second.
512 - .. row 3
513 479
514 - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K``480.. _v4l2-mpeg-audio-ac3-bitrate:
515 481
516 - 56 kbit/s482``V4L2_CID_MPEG_AUDIO_AC3_BITRATE``
483 (enum)
517 484
518 - .. row 4485enum v4l2_mpeg_audio_ac3_bitrate -
486 AC-3 bitrate. Possible values are:
519 487
520 - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K``
521 488
522 - 64 kbit/s
523 489
524 - .. row 5490.. flat-table::
491 :header-rows: 0
492 :stub-columns: 0
525 493
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
527 532
528 - 80 kbit/s
529 533
530 - .. row 6
531 534
532 - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K``535.. _v4l2-mpeg-audio-mode:
533 536
534 - 96 kbit/s537``V4L2_CID_MPEG_AUDIO_MODE``
538 (enum)
535 539
536 - .. row 7540enum v4l2_mpeg_audio_mode -
541 MPEG Audio mode. Possible values are:
537 542
538 - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K``
539 543
540 - 112 kbit/s
541 544
542 - .. row 8545.. flat-table::
546 :header-rows: 0
547 :stub-columns: 0
543 548
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
545 557
546 - 128 kbit/s
547 558
548 - .. row 9
549 559
550 - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K``560.. _v4l2-mpeg-audio-mode-extension:
551 561
552 - 160 kbit/s562``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION``
563 (enum)
553 564
554 - .. row 10565enum 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:
555 569
556 - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K``
557 570
558 - 192 kbit/s
559 571
560 - .. row 11572.. flat-table::
573 :header-rows: 0
574 :stub-columns: 0
561 575
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
563 584
564 - 224 kbit/s
565 585
566 - .. row 12
567 586
568 - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K``587.. _v4l2-mpeg-audio-emphasis:
569 588
570 - 256 kbit/s589``V4L2_CID_MPEG_AUDIO_EMPHASIS``
590 (enum)
571 591
572 - .. row 13592enum v4l2_mpeg_audio_emphasis -
593 Audio Emphasis. Possible values are:
573 594
574 - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K``
575 595
576 - 320 kbit/s
577 596
578 - .. row 14597.. flat-table::
598 :header-rows: 0
599 :stub-columns: 0
579 600
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
581 607
582 - 384 kbit/s
583 608
584 609
610.. _v4l2-mpeg-audio-crc:
585 611
586.. _v4l2-mpeg-audio-l3-bitrate:612``V4L2_CID_MPEG_AUDIO_CRC``
613 (enum)
587 614
588``V4L2_CID_MPEG_AUDIO_L3_BITRATE (enum v4l2_mpeg_audio_l3_bitrate)``615enum v4l2_mpeg_audio_crc -
589 MPEG-1/2 Layer III bitrate. Possible values are:616 CRC method. Possible values are:
590 617
591 618
592 619
@@ -594,100 +621,123 @@ Codec Control IDs · 1 unmodified line
594 :header-rows: 0621 :header-rows: 0
595 :stub-columns: 0622 :stub-columns: 0
596 623
624 * - ``V4L2_MPEG_AUDIO_CRC_NONE``
625 - None
626 * - ``V4L2_MPEG_AUDIO_CRC_CRC16``
627 - 16 bit parity check
597 628
598 - .. row 1
599
600 - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K``
601
602 - 32 kbit/s
603
604 - .. row 2
605 629
606 - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K``
607 630
608 - 40 kbit/s631``V4L2_CID_MPEG_AUDIO_MUTE (boolean)``
609 632 Mutes the audio when capturing. This is not done by muting audio
610 - .. row 3633 hardware, which can still produce a slight hiss, but in the encoder
611 634 itself, guaranteeing a fixed and reproducible audio bitstream. 0 =
612 - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K``635 unmuted, 1 = muted.
613
614 - 48 kbit/s
615 636
616 - .. row 4637.. _v4l2-mpeg-audio-dec-playback:
617 638
618 - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K``639``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK``
640 (enum)
619 641
620 - 56 kbit/s642enum v4l2_mpeg_audio_dec_playback -
643 Determines how monolingual audio should be played back. Possible
644 values are:
621 645
622 - .. row 5
623 646
624 - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K``
625 647
626 - 64 kbit/s648.. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
627 649
628 - .. row 6650.. flat-table::
651 :header-rows: 0
652 :stub-columns: 0
629 653
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.
631 666
632 - 80 kbit/s
633 667
634 - .. row 7
635 668
636 - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K``669.. _v4l2-mpeg-audio-dec-multilingual-playback:
637 670
638 - 96 kbit/s671``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK``
672 (enum)
639 673
640 - .. row 8674enum v4l2_mpeg_audio_dec_playback -
675 Determines how multilingual audio should be played back.
641 676
642 - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K``677.. _v4l2-mpeg-video-encoding:
643 678
644 - 112 kbit/s679``V4L2_CID_MPEG_VIDEO_ENCODING``
680 (enum)
645 681
646 - .. row 9682enum v4l2_mpeg_video_encoding -
683 MPEG Video encoding method. This control is specific to multiplexed
684 MPEG streams. Possible values are:
647 685
648 - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K``
649 686
650 - 128 kbit/s
651 687
652 - .. row 10688.. flat-table::
689 :header-rows: 0
690 :stub-columns: 0
653 691
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
655 698
656 - 160 kbit/s
657 699
658 - .. row 11
659 700
660 - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K``701.. _v4l2-mpeg-video-aspect:
661 702
662 - 192 kbit/s703``V4L2_CID_MPEG_VIDEO_ASPECT``
704 (enum)
663 705
664 - .. row 12706enum v4l2_mpeg_video_aspect -
707 Video aspect. Possible values are:
665 708
666 - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K``
667 709
668 - 224 kbit/s
669 710
670 - .. row 13711.. flat-table::
712 :header-rows: 0
713 :stub-columns: 0
671 714
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``
673 719
674 - 256 kbit/s
675 720
676 - .. row 14
677 721
678 - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K``722``V4L2_CID_MPEG_VIDEO_B_FRAMES (integer)``
723 Number of B-Frames (default 2)
679 724
680 - 320 kbit/s725``V4L2_CID_MPEG_VIDEO_GOP_SIZE (integer)``
726 GOP size (default 12)
681 727
728``V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (boolean)``
729 GOP closure (default 1)
682 730
731``V4L2_CID_MPEG_VIDEO_PULLDOWN (boolean)``
732 Enable 3:2 pulldown (default 0)
683 733
684``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)``734.. _v4l2-mpeg-video-bitrate-mode:
685 AAC bitrate in bits per second.
686 735
687.. _v4l2-mpeg-audio-ac3-bitrate:736``V4L2_CID_MPEG_VIDEO_BITRATE_MODE``
737 (enum)
688 738
689``V4L2_CID_MPEG_AUDIO_AC3_BITRATE (enum v4l2_mpeg_audio_ac3_bitrate)``739enum v4l2_mpeg_video_bitrate_mode -
690 AC-3 bitrate. Possible values are:740 Video bitrate mode. Possible values are:
691 741
692 742
693 743
@@ -695,127 +745,230 @@ Codec Control IDs · 1 unmodified line
695 :header-rows: 0745 :header-rows: 0
696 :stub-columns: 0746 :stub-columns: 0
697 747
748 * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR``
749 - Variable bitrate
750 * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR``
751 - Constant bitrate
698 752
699 - .. row 1
700
701 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K``
702
703 - 32 kbit/s
704
705 - .. row 2
706 753
707 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K``
708 754
709 - 40 kbit/s755``V4L2_CID_MPEG_VIDEO_BITRATE (integer)``
710 756 Video bitrate in bits per second.
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
724 757
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.
726 762
727 - 64 kbit/s763``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)``
764 For every captured frame, skip this many subsequent frames (default
765 0).
728 766
729 - .. row 6767``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.
730 771
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):
732 775
733 - 80 kbit/s
734 776
735 - .. row 7
736 777
737 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K``778.. flat-table::
779 :header-rows: 0
780 :stub-columns: 0
738 781
739 - 96 kbit/s782 * - 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.
740 790
741 - .. row 8
742 791
743 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K``
744 792
745 - 112 kbit/s793.. _v4l2-mpeg-video-dec-pts:
746 794
747 - .. row 9795``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`.
748 800
749 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K``801.. _v4l2-mpeg-video-dec-frame:
750 802
751 - 128 kbit/s803``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.
752 807
753 - .. row 10808``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.
754 812
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.
756 816
757 - 160 kbit/s817.. _v4l2-mpeg-video-h264-vui-sar-idc:
758 818
759 - .. row 11819``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC``
820 (enum)
760 821
761 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K``822enum 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.
762 826
763 - 192 kbit/s
764 827
765 - .. row 12
766 828
767 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K``829.. flat-table::
830 :header-rows: 0
831 :stub-columns: 0
768 832
769 - 224 kbit/s833 * - ``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
770 869
771 - .. row 13
772 870
773 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K``
774 871
775 - 256 kbit/s872``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.
776 875
777 - .. row 14876``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.
778 879
779 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K``880.. _v4l2-mpeg-video-h264-level:
780 881
781 - 320 kbit/s882``V4L2_CID_MPEG_VIDEO_H264_LEVEL``
883 (enum)
782 884
783 - .. row 15885enum v4l2_mpeg_video_h264_level -
886 The level information for the H264 video elementary stream.
887 Applicable to the H264 encoder. Possible values are:
784 888
785 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K``
786 889
787 - 384 kbit/s
788 890
789 - .. row 16891.. flat-table::
892 :header-rows: 0
893 :stub-columns: 0
790 894
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
792 927
793 - 448 kbit/s
794 928
795 - .. row 17
796 929
797 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K``930.. _v4l2-mpeg-video-mpeg4-level:
798 931
799 - 512 kbit/s932``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL``
933 (enum)
800 934
801 - .. row 18935enum v4l2_mpeg_video_mpeg4_level -
936 The level information for the MPEG4 elementary stream. Applicable to
937 the MPEG4 encoder. Possible values are:
802 938
803 - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K``
804 939
805 - 576 kbit/s
806 940
807 - .. row 19941.. flat-table::
942 :header-rows: 0
943 :stub-columns: 0
808 944
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
810 961
811 - 640 kbit/s
812 962
813 963
964.. _v4l2-mpeg-video-h264-profile:
814 965
815.. _v4l2-mpeg-audio-mode:966``V4L2_CID_MPEG_VIDEO_H264_PROFILE``
967 (enum)
816 968
817``V4L2_CID_MPEG_AUDIO_MODE (enum v4l2_mpeg_audio_mode)``969enum v4l2_mpeg_video_h264_profile -
818 MPEG Audio mode. Possible values are:970 The profile information for H264. Applicable to the H264 encoder.
971 Possible values are:
819 972
820 973
821 974
@@ -823,837 +976,68 @@ Codec Control IDs · 1 unmodified line
823 :header-rows: 0976 :header-rows: 0
824 :stub-columns: 0977 :stub-columns: 0
825 978
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
826 1013
827 - .. row 1
828
829 - ``V4L2_MPEG_AUDIO_MODE_STEREO``
830
831 - Stereo
832 1014
833 - .. row 2
834 1015
835 - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO``1016.. _v4l2-mpeg-video-mpeg4-profile:
836
837 - Joint Stereo
838
839 - .. row 3
840
841 - ``V4L2_MPEG_AUDIO_MODE_DUAL``
842 1017
843 - Bilingual1018``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE``
1019 (enum)
844 1020
845 - .. row 41021enum v4l2_mpeg_video_mpeg4_profile -
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)``
1618 The profile information for MPEG4. Applicable to the MPEG4 encoder.1022 The profile information for MPEG4. Applicable to the MPEG4 encoder.
1619 Possible values are:1023 Possible values are:
1620 1024
1621 1025
1622 1026
1623.. flat-table::1027.. flat-table::
1624 :header-rows: 01028 :header-rows: 0
1625 :stub-columns: 01029 :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``
1655 1030
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 -
1657 1041
1658 1042
1659 1043
@@ -1663,34 +1047,27 @@ Codec Control IDs · 3 unmodified lines
1663 1047
1664.. _v4l2-mpeg-video-multi-slice-mode:1048.. _v4l2-mpeg-video-multi-slice-mode:
1665 1049
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
1053enum v4l2_mpeg_video_multi_slice_mode -
1667 Determines how the encoder should handle division of frame into1054 Determines how the encoder should handle division of frame into
1668 slices. Applicable to the encoder. Possible values are:1055 slices. Applicable to the encoder. Possible values are:
1669 1056
1670 1057
1671 1058
1059.. tabularcolumns:: |p{8.7cm}|p{8.8cm}|
1060
1672.. flat-table::1061.. flat-table::
1673 :header-rows: 01062 :header-rows: 0
1674 :stub-columns: 01063 :stub-columns: 0
1675 1064
1676 1065 * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE``
1677 - .. row 11066 - Single slice per frame.
1678 1067 * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``
1679 - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE``1068 - Multiple slices with set maximum number of macroblocks per slice.
1680 1069 * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``
1681 - Single slice per frame.1070 - Multiple slice with set maximum size in bytes per slice.
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.
1694 1071
1695 1072
1696 1073
@@ -1708,33 +1085,26 @@ Codec Control IDs · 11 unmodified lines
1708 1085
1709.. _v4l2-mpeg-video-h264-loop-filter-mode:1086.. _v4l2-mpeg-video-h264-loop-filter-mode:
1710 1087
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
1091enum v4l2_mpeg_video_h264_loop_filter_mode -
1712 Loop filter mode for H264 encoder. Possible values are:1092 Loop filter mode for H264 encoder. Possible values are:
1713 1093
1714 1094
1715 1095
1096.. tabularcolumns:: |p{14.0cm}|p{3.5cm}|
1097
1716.. flat-table::1098.. flat-table::
1717 :header-rows: 01099 :header-rows: 0
1718 :stub-columns: 01100 :stub-columns: 0
1719 1101
1720 1102 * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED``
1721 - .. row 11103 - Loop filter is enabled.
1722 1104 * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED``
1723 - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED``1105 - Loop filter is disabled.
1724 1106 * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY``
1725 - Loop filter is enabled.1107 - Loop filter is disabled at the slice boundary.
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.
1738 1108
1739 1109
1740 1110
@@ -1748,7 +1118,10 @@ Codec Control IDs · 7 unmodified lines
1748 1118
1749.. _v4l2-mpeg-video-h264-entropy-mode:1119.. _v4l2-mpeg-video-h264-entropy-mode:
1750 1120
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
1124enum v4l2_mpeg_video_h264_entropy_mode -
1752 Entropy coding mode for H264 - CABAC/CAVALC. Applicable to the H2641125 Entropy coding mode for H264 - CABAC/CAVALC. Applicable to the H264
1753 encoder. Possible values are:1126 encoder. Possible values are:
1754 1127
@@ -1758,18 +1131,10 @@ Codec Control IDs · 3 unmodified lines
1758 :header-rows: 01131 :header-rows: 0
1759 :stub-columns: 01132 :stub-columns: 0
1760 1133
1761 1134 * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC``
1762 - .. row 11135 - Use CAVLC entropy coding.
1763 1136 * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC``
1764 - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC``1137 - Use CABAC entropy coding.
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.
1773 1138
1774 1139
1775 1140
@@ -1909,30 +1274,27 @@ Codec Control IDs · 133 unmodified lines
1909 1274
1910.. _v4l2-mpeg-video-header-mode:1275.. _v4l2-mpeg-video-header-mode:
1911 1276
1912``V4L2_CID_MPEG_VIDEO_HEADER_MODE (enum v4l2_mpeg_video_header_mode)``1277``V4L2_CID_MPEG_VIDEO_HEADER_MODE``
1278 (enum)
1279
1280enum v4l2_mpeg_video_header_mode -
1913 Determines whether the header is returned as the first buffer or is1281 Determines whether the header is returned as the first buffer or is
1914 it returned together with the first frame. Applicable to encoders.1282 it returned together with the first frame. Applicable to encoders.
1915 Possible values are:1283 Possible values are:
1916 1284
1917 1285
1918 1286
1287.. tabularcolumns:: |p{10.3cm}|p{7.2cm}|
1288
1919.. flat-table::1289.. flat-table::
1920 :header-rows: 01290 :header-rows: 0
1921 :stub-columns: 01291 :stub-columns: 0
1922 1292
1923 1293 * - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE``
1924 - .. row 11294 - The stream header is returned separately in the first buffer.
1925 1295 * - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME``
1926 - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE``1296 - The stream header is returned together with the first encoded
1927 1297 frame.
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.
1936 1298
1937 1299
1938 1300
@@ -1965,52 +1327,31 @@ Codec Control IDs · 26 unmodified lines
1965 1327
1966.. _v4l2-mpeg-video-h264-sei-fp-arrangement-type:1328.. _v4l2-mpeg-video-h264-sei-fp-arrangement-type:
1967 1329
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
1333enum v4l2_mpeg_video_h264_sei_fp_arrangement_type -
1969 Frame packing arrangement type for H264 SEI. Applicable to the H2641334 Frame packing arrangement type for H264 SEI. Applicable to the H264
1970 encoder. Possible values are:1335 encoder. Possible values are:
1971 1336
1972 1337.. tabularcolumns:: |p{12cm}|p{5.5cm}|
1973 1338
1974.. flat-table::1339.. flat-table::
1975 :header-rows: 01340 :header-rows: 0
1976 :stub-columns: 01341 :stub-columns: 0
1977 1342
1978 1343 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD``
1979 - .. row 11344 - Pixels are alternatively from L and R.
1980 1345 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN``
1981 - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD``1346 - L and R are interlaced by column.
1982 1347 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW``
1983 - Pixels are alternatively from L and R.1348 - L and R are interlaced by row.
1984 1349 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE``
1985 - .. row 21350 - L is on the left, R on the right.
1986 1351 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM``
1987 - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN``1352 - L is on top, R on bottom.
1988 1353 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL``
1989 - L and R are interlaced by column.1354 - One view per frame.
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.
2014 1355
2015 1356
2016 1357
@@ -2021,61 +1362,36 @@ Codec Control IDs · 4 unmodified lines
2021 1362
2022.. _v4l2-mpeg-video-h264-fmo-map-type:1363.. _v4l2-mpeg-video-h264-fmo-map-type:
2023 1364
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
1368enum v4l2_mpeg_video_h264_fmo_map_type -
2025 When using FMO, the map type divides the image in different scan1369 When using FMO, the map type divides the image in different scan
2026 patterns of macroblocks. Applicable to the H264 encoder. Possible1370 patterns of macroblocks. Applicable to the H264 encoder. Possible
2027 values are:1371 values are:
2028 1372
2029 1373.. tabularcolumns:: |p{12.5cm}|p{5.0cm}|
2030 1374
2031.. flat-table::1375.. flat-table::
2032 :header-rows: 01376 :header-rows: 0
2033 :stub-columns: 01377 :stub-columns: 0
2034 1378
2035 1379 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES``
2036 - .. row 11380 - Slices are interleaved one after other with macroblocks in run
2037 1381 length order.
2038 - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES``1382 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES``
2039 1383 - Scatters the macroblocks based on a mathematical function known to
2040 - Slices are interleaved one after other with macroblocks in run1384 both encoder and decoder.
2041 length order.1385 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER``
2042 1386 - Macroblocks arranged in rectangular areas or regions of interest.
2043 - .. row 21387 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT``
2044 1388 - Slice groups grow in a cyclic way from centre to outwards.
2045 - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES``1389 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN``
2046 1390 - Slice groups grow in raster scan pattern from left to right.
2047 - Scatters the macroblocks based on a mathematical function known to1391 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN``
2048 both encoder and decoder.1392 - Slice groups grow in wipe scan pattern from top to bottom.
2049 1393 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT``
2050 - .. row 31394 - User defined map type.
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.
2079 1395
2080 1396
2081 1397
@@ -2084,7 +1400,10 @@ Codec Control IDs · 2 unmodified lines
2084 1400
2085.. _v4l2-mpeg-video-h264-fmo-change-direction:1401.. _v4l2-mpeg-video-h264-fmo-change-direction:
2086 1402
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
1406enum v4l2_mpeg_video_h264_fmo_change_dir -
2088 Specifies a direction of the slice group change for raster and wipe1407 Specifies a direction of the slice group change for raster and wipe
2089 maps. Applicable to the H264 encoder. Possible values are:1408 maps. Applicable to the H264 encoder. Possible values are:
2090 1409
@@ -2094,18 +1413,10 @@ Codec Control IDs · 3 unmodified lines
2094 :header-rows: 01413 :header-rows: 0
2095 :stub-columns: 01414 :stub-columns: 0
2096 1415
2097 1416 * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT``
2098 - .. row 11417 - Raster scan or wipe right.
2099 1418 * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT``
2100 - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT``1419 - Reverse raster scan or wipe left.
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.
2109 1420
2110 1421
2111 1422
@@ -2132,18 +1443,10 @@ Codec Control IDs · 20 unmodified lines
2132 :header-rows: 01443 :header-rows: 0
2133 :stub-columns: 01444 :stub-columns: 0
2134 1445
2135 1446 * - Bit 0:15
2136 - .. row 11447 - Slice ID
2137 1448 * - Bit 16:32
2138 - Bit 0:151449 - Slice position or order
2139
2140 - Slice ID
2141
2142 - .. row 2
2143
2144 - Bit 16:32
2145
2146 - Slice position or order
2147 1450
2148 1451
2149 1452
@@ -2152,7 +1455,10 @@ Codec Control IDs · 2 unmodified lines
2152 1455
2153.. _v4l2-mpeg-video-h264-hierarchical-coding-type:1456.. _v4l2-mpeg-video-h264-hierarchical-coding-type:
2154 1457
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
1461enum v4l2_mpeg_video_h264_hierarchical_coding_type -
2156 Specifies the hierarchical coding type. Applicable to the H2641462 Specifies the hierarchical coding type. Applicable to the H264
2157 encoder. Possible values are:1463 encoder. Possible values are:
2158 1464
@@ -2162,18 +1468,10 @@ Codec Control IDs · 3 unmodified lines
2162 :header-rows: 01468 :header-rows: 0
2163 :stub-columns: 01469 :stub-columns: 0
2164 1470
2165 1471 * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B``
2166 - .. row 11472 - Hierarchical B coding.
2167 1473 * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P``
2168 - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B``1474 - Hierarchical P coding.
2169
2170 - Hierarchical B coding.
2171
2172 - .. row 2
2173
2174 - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P``
2175
2176 - Hierarchical P coding.
2177 1475
2178 1476
2179 1477
@@ -2192,18 +1490,10 @@ Codec Control IDs · 12 unmodified lines
2192 :header-rows: 01490 :header-rows: 0
2193 :stub-columns: 01491 :stub-columns: 0
2194 1492
2195 1493 * - Bit 0:15
2196 - .. row 11494 - QP value
2197 1495 * - Bit 16:32
2198 - Bit 0:151496 - Layer number
2199
2200 - QP value
2201
2202 - .. row 2
2203
2204 - Bit 16:32
2205
2206 - Layer number
2207 1497
2208 1498
2209 1499
@@ -2255,30 +1545,14 @@ MFC 5.1 Control IDs · 45 unmodified lines
2255 :header-rows: 01545 :header-rows: 0
2256 :stub-columns: 01546 :stub-columns: 0
2257 1547
2258 1548 * - Bit 0:7
2259 - .. row 11549 - V chrominance information
2260 1550 * - Bit 8:15
2261 - Bit 0:71551 - U chrominance information
2262 1552 * - Bit 16:23
2263 - V chrominance information1553 - Y luminance information
2264 1554 * - Bit 24:31
2265 - .. row 21555 - Must be zero.
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.
2282 1556
2283 1557
2284 1558
@@ -2321,38 +1595,30 @@ MFC 5.1 Control IDs · 36 unmodified lines
2321 1595
2322.. _v4l2-mpeg-mfc51-video-frame-skip-mode:1596.. _v4l2-mpeg-mfc51-video-frame-skip-mode:
2323 1597
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
1601enum v4l2_mpeg_mfc51_video_frame_skip_mode -
2325 Indicates in what conditions the encoder should skip frames. If1602 Indicates in what conditions the encoder should skip frames. If
2326 encoding a frame would cause the encoded stream to be larger then a1603 encoding a frame would cause the encoded stream to be larger then a
2327 chosen data limit then the frame will be skipped. Possible values1604 chosen data limit then the frame will be skipped. Possible values
2328 are:1605 are:
2329 1606
2330 1607
1608.. tabularcolumns:: |p{9.0cm}|p{8.5cm}|
2331 1609
2332.. flat-table::1610.. flat-table::
2333 :header-rows: 01611 :header-rows: 0
2334 :stub-columns: 01612 :stub-columns: 0
2335 1613
2336 1614 * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED``
2337 - .. row 11615 - Frame skip mode is disabled.
2338 1616 * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT``
2339 - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED``1617 - Frame skip mode enabled and buffer limit is set by the chosen
2340 1618 level and is defined by the standard.
2341 - Frame skip mode is disabled.1619 * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT``
2342 1620 - Frame skip mode enabled and buffer limit is set by the VBV
2343 - .. row 21621 (MPEG1/2/4) or CPB (H264) buffer size control.
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.
2356 1622
2357 1623
2358 1624
@@ -2370,7 +1636,10 @@ MFC 5.1 Control IDs · 11 unmodified lines
2370 1636
2371.. _v4l2-mpeg-mfc51-video-force-frame-type:1637.. _v4l2-mpeg-mfc51-video-force-frame-type:
2372 1638
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
1642enum v4l2_mpeg_mfc51_video_force_frame_type -
2374 Force a frame type for the next queued buffer. Applicable to1643 Force a frame type for the next queued buffer. Applicable to
2375 encoders. Possible values are:1644 encoders. Possible values are:
2376 1645
@@ -2380,24 +1649,12 @@ MFC 5.1 Control IDs · 3 unmodified lines
2380 :header-rows: 01649 :header-rows: 0
2381 :stub-columns: 01650 :stub-columns: 0
2382 1651
2383 1652 * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED``
2384 - .. row 11653 - Forcing a specific frame type disabled.
2385 1654 * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME``
2386 - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED``1655 - Force an I-frame.
2387 1656 * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED``
2388 - Forcing a specific frame type disabled.1657 - Force a non-coded frame.
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.
2401 1658
2402 1659
2403 1660
@@ -2416,7 +1673,10 @@ CX2341x Control IDs · 12 unmodified lines
2416 1673
2417.. _v4l2-mpeg-cx2341x-video-spatial-filter-mode:1674.. _v4l2-mpeg-cx2341x-video-spatial-filter-mode:
2418 1675
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
1679enum v4l2_mpeg_cx2341x_video_spatial_filter_mode -
2420 Sets the Spatial Filter mode (default ``MANUAL``). Possible values1680 Sets the Spatial Filter mode (default ``MANUAL``). Possible values
2421 are:1681 are:
2422 1682
@@ -2426,18 +1686,10 @@ CX2341x Control IDs · 3 unmodified lines
2426 :header-rows: 01686 :header-rows: 0
2427 :stub-columns: 01687 :stub-columns: 0
2428 1688
2429 1689 * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL``
2430 - .. row 11690 - Choose the filter manually
2431 1691 * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO``
2432 - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL``1692 - Choose the filter automatically
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
2441 1693
2442 1694
2443 1695
@@ -2447,52 +1699,40 @@ CX2341x Control IDs · 3 unmodified lines
2447 1699
2448.. _luma-spatial-filter-type:1700.. _luma-spatial-filter-type:
2449 1701
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
1705enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type -
2451 Select the algorithm to use for the Luma Spatial Filter (default1706 Select the algorithm to use for the Luma Spatial Filter (default
2452 ``1D_HOR``). Possible values:1707 ``1D_HOR``). Possible values:
2453 1708
2454 1709
2455 1710
1711.. tabularcolumns:: |p{14.5cm}|p{3.0cm}|
1712
2456.. flat-table::1713.. flat-table::
2457 :header-rows: 01714 :header-rows: 0
2458 :stub-columns: 01715 :stub-columns: 0
2459 1716
2460 1717 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF``
2461 - .. row 11718 - No filter
2462 1719 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR``
2463 - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF``1720 - One-dimensional horizontal
2464 1721 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT``
2465 - No filter1722 - One-dimensional vertical
2466 1723 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE``
2467 - .. row 21724 - Two-dimensional separable
2468 1725 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE``
2469 - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR``1726 - Two-dimensional symmetrical non-separable
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
2490 1727
2491 1728
2492 1729
2493.. _chroma-spatial-filter-type:1730.. _chroma-spatial-filter-type:
2494 1731
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
1735enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type -
2496 Select the algorithm for the Chroma Spatial Filter (default1736 Select the algorithm for the Chroma Spatial Filter (default
2497 ``1D_HOR``). Possible values are:1737 ``1D_HOR``). Possible values are:
2498 1738
@@ -2502,24 +1742,19 @@ CX2341x Control IDs · 3 unmodified lines
2502 :header-rows: 01742 :header-rows: 0
2503 :stub-columns: 01743 :stub-columns: 0
2504 1744
2505 1745 * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF``
2506 - .. row 11746 - No filter
2507 1747 * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR``
2508 - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF``1748 - One-dimensional horizontal
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
2517 1749
2518 1750
2519 1751
2520.. _v4l2-mpeg-cx2341x-video-temporal-filter-mode:1752.. _v4l2-mpeg-cx2341x-video-temporal-filter-mode:
2521 1753
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
1757enum v4l2_mpeg_cx2341x_video_temporal_filter_mode -
2523 Sets the Temporal Filter mode (default ``MANUAL``). Possible values1758 Sets the Temporal Filter mode (default ``MANUAL``). Possible values
2524 are:1759 are:
2525 1760
@@ -2529,18 +1764,10 @@ CX2341x Control IDs · 3 unmodified lines
2529 :header-rows: 01764 :header-rows: 0
2530 :stub-columns: 01765 :stub-columns: 0
2531 1766
2532 1767 * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL``
2533 - .. row 11768 - Choose the filter manually
2534 1769 * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO``
2535 - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL``1770 - Choose the filter automatically
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
2544 1771
2545 1772
2546 1773
@@ -2550,7 +1777,10 @@ CX2341x Control IDs · 3 unmodified lines
2550 1777
2551.. _v4l2-mpeg-cx2341x-video-median-filter-type:1778.. _v4l2-mpeg-cx2341x-video-median-filter-type:
2552 1779
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
1783enum v4l2_mpeg_cx2341x_video_median_filter_type -
2554 Median Filter Type (default ``OFF``). Possible values are:1784 Median Filter Type (default ``OFF``). Possible values are:
2555 1785
2556 1786
@@ -2559,36 +1789,16 @@ CX2341x Control IDs · 2 unmodified lines
2559 :header-rows: 01789 :header-rows: 0
2560 :stub-columns: 01790 :stub-columns: 0
2561 1791
2562 1792 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF``
2563 - .. row 11793 - No filter
2564 1794 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR``
2565 - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF``1795 - Horizontal filter
2566 1796 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT``
2567 - No filter1797 - Vertical filter
2568 1798 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT``
2569 - .. row 21799 - Horizontal and vertical filter
2570 1800 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG``
2571 - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR``1801 - Diagonal filter
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
2592 1802
2593 1803
2594 1804
@@ -2631,7 +1841,10 @@ VPX Control IDs · 36 unmodified lines
2631 1841
2632.. _v4l2-vpx-num-partitions:1842.. _v4l2-vpx-num-partitions:
2633 1843
2634``V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS (enum v4l2_vp8_num_partitions)``1844``V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS``
1845 (enum)
1846
1847enum v4l2_vp8_num_partitions -
2635 The number of token partitions to use in VP8 encoder. Possible1848 The number of token partitions to use in VP8 encoder. Possible
2636 values are:1849 values are:
2637 1850
@@ -2641,30 +1854,14 @@ VPX Control IDs · 3 unmodified lines
2641 :header-rows: 01854 :header-rows: 0
2642 :stub-columns: 01855 :stub-columns: 0
2643 1856
2644 1857 * - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION``
2645 - .. row 11858 - 1 coefficient partition
2646 1859 * - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS``
2647 - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION``1860 - 2 coefficient partitions
2648 1861 * - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS``
2649 - 1 coefficient partition1862 - 4 coefficient partitions
2650 1863 * - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS``
2651 - .. row 21864 - 8 coefficient partitions
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
2668 1865
2669 1866
2670 1867
@@ -2673,37 +1870,28 @@ VPX Control IDs · 2 unmodified lines
2673 1870
2674.. _v4l2-vpx-num-ref-frames:1871.. _v4l2-vpx-num-ref-frames:
2675 1872
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
1876enum v4l2_vp8_num_ref_frames -
2677 The number of reference pictures for encoding P frames. Possible1877 The number of reference pictures for encoding P frames. Possible
2678 values are:1878 values are:
2679 1879
2680 1880.. tabularcolumns:: |p{7.9cm}|p{9.6cm}|
2681 1881
2682.. flat-table::1882.. flat-table::
2683 :header-rows: 01883 :header-rows: 0
2684 :stub-columns: 01884 :stub-columns: 0
2685 1885
2686 1886 * - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME``
2687 - .. row 11887 - Last encoded frame will be searched
2688 1888 * - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME``
2689 - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME``1889 - Two frames will be searched among the last encoded frame, the
2690 1890 golden frame and the alternate reference (altref) frame. The
2691 - Last encoded frame will be searched1891 encoder implementation will decide which two are chosen.
2692 1892 * - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME``
2693 - .. row 21893 - The last encoded frame, the golden frame and the altref frame will
2694 1894 be searched.
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.
2707 1895
2708 1896
2709 1897
@@ -2726,31 +1914,33 @@ VPX Control IDs · 16 unmodified lines
2726 1914
2727.. _v4l2-vpx-golden-frame-sel:1915.. _v4l2-vpx-golden-frame-sel:
2728 1916
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
1920enum v4l2_vp8_golden_frame_sel -
2730 Selects the golden frame for encoding. Possible values are:1921 Selects the golden frame for encoding. Possible values are:
2731 1922
1923.. raw:: latex
2732 1924
1925 \begin{adjustbox}{width=\columnwidth}
1926
1927.. tabularcolumns:: |p{11.0cm}|p{10.0cm}|
2733 1928
2734.. flat-table::1929.. flat-table::
2735 :header-rows: 01930 :header-rows: 0
2736 :stub-columns: 01931 :stub-columns: 0
2737 1932
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.
2738 1940
2739 - .. row 11941.. raw:: latex
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.
2753 1942
1943 \end{adjustbox}
2754 1944
2755 1945
2756``V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (integer)``1946``V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (integer)``
@@ -2791,7 +1981,10 @@ Camera Control IDs · 34 unmodified lines
2791 1981
2792.. _v4l2-exposure-auto-type:1982.. _v4l2-exposure-auto-type:
2793 1983
2794``V4L2_CID_EXPOSURE_AUTO (enum v4l2_exposure_auto_type)``1984``V4L2_CID_EXPOSURE_AUTO``
1985 (enum)
1986
1987enum v4l2_exposure_auto_type -
2795 Enables automatic adjustments of the exposure time and/or iris1988 Enables automatic adjustments of the exposure time and/or iris
2796 aperture. The effect of manual changes of the exposure time or iris1989 aperture. The effect of manual changes of the exposure time or iris
2797 aperture while these features are enabled is undefined, drivers1990 aperture while these features are enabled is undefined, drivers
@@ -2803,30 +1996,14 @@ Camera Control IDs · 5 unmodified lines
2803 :header-rows: 01996 :header-rows: 0
2804 :stub-columns: 01997 :stub-columns: 0
2805 1998
2806 1999 * - ``V4L2_EXPOSURE_AUTO``
2807 - .. row 12000 - Automatic exposure time, automatic iris aperture.
2808 2001 * - ``V4L2_EXPOSURE_MANUAL``
2809 - ``V4L2_EXPOSURE_AUTO``2002 - Manual exposure time, manual iris.
2810 2003 * - ``V4L2_EXPOSURE_SHUTTER_PRIORITY``
2811 - Automatic exposure time, automatic iris aperture.2004 - Manual exposure time, auto iris.
2812 2005 * - ``V4L2_EXPOSURE_APERTURE_PRIORITY``
2813 - .. row 22006 - Auto exposure time, manual iris.
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.
2830 2007
2831 2008
2832 2009
@@ -2856,45 +2033,32 @@ Camera Control IDs · 23 unmodified lines
2856 2033
2857.. _v4l2-exposure-metering:2034.. _v4l2-exposure-metering:
2858 2035
2859``V4L2_CID_EXPOSURE_METERING (enum v4l2_exposure_metering)``2036``V4L2_CID_EXPOSURE_METERING``
2860 Determines how the camera measures the amount of light available for2037 (enum)
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``
2887 2038
2888 - Measure only very small area at the center of the frame.2039enum v4l2_exposure_metering -
2040 Determines how the camera measures the amount of light available for
2041 the frame exposure. Possible values are:
2889 2042
2890 - .. row 42043.. tabularcolumns:: |p{8.5cm}|p{9.0cm}|
2891 2044
2892 - ``V4L2_EXPOSURE_METERING_MATRIX``2045.. flat-table::
2046 :header-rows: 0
2047 :stub-columns: 0
2893 2048
2894 - A multi-zone metering. The light intensity is measured in several2049 * - ``V4L2_EXPOSURE_METERING_AVERAGE``
2895 points of the frame and the results are combined. The algorithm of2050 - Use the light information coming from the entire frame and average
2896 the zones selection and their significance in calculating the2051 giving no weighting to any particular portion of the metered area.
2897 final value is device dependent.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.
2898 2062
2899 2063
2900 2064
@@ -2968,77 +2132,48 @@ Camera Control IDs · 67 unmodified lines
2968 control may stop updates of the ``V4L2_CID_AUTO_FOCUS_STATUS``2132 control may stop updates of the ``V4L2_CID_AUTO_FOCUS_STATUS``
2969 control value.2133 control value.
2970 2134
2971 2135.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
2972 2136
2973.. flat-table::2137.. flat-table::
2974 :header-rows: 02138 :header-rows: 0
2975 :stub-columns: 02139 :stub-columns: 0
2976 2140
2977 2141 * - ``V4L2_AUTO_FOCUS_STATUS_IDLE``
2978 - .. row 12142 - Automatic focus is not active.
2979 2143 * - ``V4L2_AUTO_FOCUS_STATUS_BUSY``
2980 - ``V4L2_AUTO_FOCUS_STATUS_IDLE``2144 - Automatic focusing is in progress.
2981 2145 * - ``V4L2_AUTO_FOCUS_STATUS_REACHED``
2982 - Automatic focus is not active.2146 - Focus has been reached.
2983 2147 * - ``V4L2_AUTO_FOCUS_STATUS_FAILED``
2984 - .. row 22148 - Automatic focus has failed, the driver will not transition from
2985 2149 this state until another action is performed by an application.
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.
3002 2150
3003 2151
3004 2152
3005.. _v4l2-auto-focus-range:2153.. _v4l2-auto-focus-range:
3006 2154
3007``V4L2_CID_AUTO_FOCUS_RANGE (enum v4l2_auto_focus_range)``2155``V4L2_CID_AUTO_FOCUS_RANGE``
3008 Determines auto focus distance range for which lens may be adjusted.2156 (enum)
3009 2157
2158enum v4l2_auto_focus_range -
2159 Determines auto focus distance range for which lens may be adjusted.
3010 2160
2161.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
3011 2162
3012.. flat-table::2163.. flat-table::
3013 :header-rows: 02164 :header-rows: 0
3014 :stub-columns: 02165 :stub-columns: 0
3015 2166
3016 2167 * - ``V4L2_AUTO_FOCUS_RANGE_AUTO``
3017 - .. row 12168 - The camera automatically selects the focus range.
3018 2169 * - ``V4L2_AUTO_FOCUS_RANGE_NORMAL``
3019 - ``V4L2_AUTO_FOCUS_RANGE_AUTO``2170 - Normal distance range, limited for best automatic focus
3020 2171 performance.
3021 - The camera automatically selects the focus range.2172 * - ``V4L2_AUTO_FOCUS_RANGE_MACRO``
3022 2173 - Macro (close-up) auto focus. The camera will use its minimum
3023 - .. row 22174 possible distance for auto focus.
3024 2175 * - ``V4L2_AUTO_FOCUS_RANGE_INFINITY``
3025 - ``V4L2_AUTO_FOCUS_RANGE_NORMAL``2176 - The lens is set to focus on an object at infinite distance.
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.
3042 2177
3043 2178
3044 2179
@@ -3088,90 +2223,53 @@ Camera Control IDs · 43 unmodified lines
3088 2223
3089.. _v4l2-auto-n-preset-white-balance:2224.. _v4l2-auto-n-preset-white-balance:
3090 2225
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
2229enum v4l2_auto_n_preset_white_balance -
3092 Sets white balance to automatic, manual or a preset. The presets2230 Sets white balance to automatic, manual or a preset. The presets
3093 determine color temperature of the light as a hint to the camera for2231 determine color temperature of the light as a hint to the camera for
3094 white balance adjustments resulting in most accurate color2232 white balance adjustments resulting in most accurate color
3095 representation. The following white balance presets are listed in2233 representation. The following white balance presets are listed in
3096 order of increasing color temperature.2234 order of increasing color temperature.
3097 2235
3098 2236.. tabularcolumns:: |p{7.0 cm}|p{10.5cm}|
3099 2237
3100.. flat-table::2238.. flat-table::
3101 :header-rows: 02239 :header-rows: 0
3102 :stub-columns: 02240 :stub-columns: 0
3103 2241
3104 2242 * - ``V4L2_WHITE_BALANCE_MANUAL``
3105 - .. row 12243 - Manual white balance.
3106 2244 * - ``V4L2_WHITE_BALANCE_AUTO``
3107 - ``V4L2_WHITE_BALANCE_MANUAL``2245 - Automatic white balance adjustments.
3108 2246 * - ``V4L2_WHITE_BALANCE_INCANDESCENT``
3109 - Manual white balance.2247 - White balance setting for incandescent (tungsten) lighting. It
3110 2248 generally cools down the colors and corresponds approximately to
3111 - .. row 22249 2500...3500 K color temperature range.
3112 2250 * - ``V4L2_WHITE_BALANCE_FLUORESCENT``
3113 - ``V4L2_WHITE_BALANCE_AUTO``2251 - White balance preset for fluorescent lighting. It corresponds
3114 2252 approximately to 4000...5000 K color temperature.
3115 - Automatic white balance adjustments.2253 * - ``V4L2_WHITE_BALANCE_FLUORESCENT_H``
3116 2254 - With this setting the camera will compensate for fluorescent H
3117 - .. row 32255 lighting.
3118 2256 * - ``V4L2_WHITE_BALANCE_HORIZON``
3119 - ``V4L2_WHITE_BALANCE_INCANDESCENT``2257 - White balance setting for horizon daylight. It corresponds
3120 2258 approximately to 5000 K color temperature.
3121 - White balance setting for incandescent (tungsten) lighting. It2259 * - ``V4L2_WHITE_BALANCE_DAYLIGHT``
3122 generally cools down the colors and corresponds approximately to2260 - White balance preset for daylight (with clear sky). It corresponds
3123 2500...3500 K color temperature range.2261 approximately to 5000...6500 K color temperature.
3124 2262 * - ``V4L2_WHITE_BALANCE_FLASH``
3125 - .. row 42263 - With this setting the camera will compensate for the flash light.
3126 2264 It slightly warms up the colors and corresponds roughly to
3127 - ``V4L2_WHITE_BALANCE_FLUORESCENT``2265 5000...5500 K color temperature.
3128 2266 * - ``V4L2_WHITE_BALANCE_CLOUDY``
3129 - White balance preset for fluorescent lighting. It corresponds2267 - White balance preset for moderately overcast sky. This option
3130 approximately to 4000...5000 K color temperature.2268 corresponds approximately to 6500...8000 K color temperature
3131 2269 range.
3132 - .. row 52270 * - ``V4L2_WHITE_BALANCE_SHADE``
3133 2271 - White balance preset for shade or heavily overcast sky. It
3134 - ``V4L2_WHITE_BALANCE_FLUORESCENT_H``2272 corresponds approximately to 9000...10000 K color temperature.
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.
3175 2273
3176 2274
3177 2275
@@ -3205,7 +2303,10 @@ Camera Control IDs · 27 unmodified lines
3205 2303
3206.. _v4l2-iso-sensitivity-auto-type:2304.. _v4l2-iso-sensitivity-auto-type:
3207 2305
3208``V4L2_CID_ISO_SENSITIVITY_AUTO (enum v4l2_iso_sensitivity_type)``2306``V4L2_CID_ISO_SENSITIVITY_AUTO``
2307 (enum)
2308
2309enum v4l2_iso_sensitivity_type -
3209 Enables or disables automatic ISO sensitivity adjustments.2310 Enables or disables automatic ISO sensitivity adjustments.
3210 2311
3211 2312
@@ -3214,24 +2315,19 @@ Camera Control IDs · 2 unmodified lines
3214 :header-rows: 02315 :header-rows: 0
3215 :stub-columns: 02316 :stub-columns: 0
3216 2317
3217 2318 * - ``V4L2_CID_ISO_SENSITIVITY_MANUAL``
3218 - .. row 12319 - Manual ISO sensitivity.
3219 2320 * - ``V4L2_CID_ISO_SENSITIVITY_AUTO``
3220 - ``V4L2_CID_ISO_SENSITIVITY_MANUAL``2321 - Automatic ISO sensitivity adjustments.
3221
3222 - Manual ISO sensitivity.
3223
3224 - .. row 2
3225
3226 - ``V4L2_CID_ISO_SENSITIVITY_AUTO``
3227
3228 - Automatic ISO sensitivity adjustments.
3229 2322
3230 2323
3231 2324
3232.. _v4l2-scene-mode:2325.. _v4l2-scene-mode:
3233 2326
3234``V4L2_CID_SCENE_MODE (enum v4l2_scene_mode)``2327``V4L2_CID_SCENE_MODE``
2328 (enum)
2329
2330enum v4l2_scene_mode -
3235 This control allows to select scene programs as the camera automatic2331 This control allows to select scene programs as the camera automatic
3236 modes optimized for common shooting scenes. Within these modes the2332 modes optimized for common shooting scenes. Within these modes the
3237 camera determines best exposure, aperture, focusing, light metering,2333 camera determines best exposure, aperture, focusing, light metering,
@@ -3243,133 +2339,77 @@ Camera Control IDs · 5 unmodified lines
3243 to ``V4L2_SCENE_MODE_NONE`` to make sure the other possibly related2339 to ``V4L2_SCENE_MODE_NONE`` to make sure the other possibly related
3244 controls are accessible. The following scene programs are defined:2340 controls are accessible. The following scene programs are defined:
3245 2341
3246 2342.. tabularcolumns:: |p{6.0cm}|p{11.5cm}|
3247 2343
3248.. flat-table::2344.. flat-table::
3249 :header-rows: 02345 :header-rows: 0
3250 :stub-columns: 02346 :stub-columns: 0
3251 2347
3252 2348 * - ``V4L2_SCENE_MODE_NONE``
3253 - .. row 12349 - The scene mode feature is disabled.
3254 2350 * - ``V4L2_SCENE_MODE_BACKLIGHT``
3255 - ``V4L2_SCENE_MODE_NONE``2351 - Backlight. Compensates for dark shadows when light is coming from
3256 2352 behind a subject, also by automatically turning on the flash.
3257 - The scene mode feature is disabled.2353 * - ``V4L2_SCENE_MODE_BEACH_SNOW``
3258 2354 - Beach and snow. This mode compensates for all-white or bright
3259 - .. row 22355 scenes, which tend to look gray and low contrast, when camera's
3260 2356 automatic exposure is based on an average scene brightness. To
3261 - ``V4L2_SCENE_MODE_BACKLIGHT``2357 compensate, this mode automatically slightly overexposes the
3262 2358 frames. The white balance may also be adjusted to compensate for
3263 - Backlight. Compensates for dark shadows when light is coming from2359 the fact that reflected snow looks bluish rather than white.
3264 behind a subject, also by automatically turning on the flash.2360 * - ``V4L2_SCENE_MODE_CANDLELIGHT``
3265 2361 - Candle light. The camera generally raises the ISO sensitivity and
3266 - .. row 32362 lowers the shutter speed. This mode compensates for relatively
3267 2363 close subject in the scene. The flash is disabled in order to
3268 - ``V4L2_SCENE_MODE_BEACH_SNOW``2364 preserve the ambiance of the light.
3269 2365 * - ``V4L2_SCENE_MODE_DAWN_DUSK``
3270 - Beach and snow. This mode compensates for all-white or bright2366 - Dawn and dusk. Preserves the colors seen in low natural light
3271 scenes, which tend to look gray and low contrast, when camera's2367 before dusk and after down. The camera may turn off the flash, and
3272 automatic exposure is based on an average scene brightness. To2368 automatically focus at infinity. It will usually boost saturation
3273 compensate, this mode automatically slightly overexposes the2369 and lower the shutter speed.
3274 frames. The white balance may also be adjusted to compensate for2370 * - ``V4L2_SCENE_MODE_FALL_COLORS``
3275 the fact that reflected snow looks bluish rather than white.2371 - Fall colors. Increases saturation and adjusts white balance for
3276 2372 color enhancement. Pictures of autumn leaves get saturated reds
3277 - .. row 42373 and yellows.
3278 2374 * - ``V4L2_SCENE_MODE_FIREWORKS``
3279 - ``V4L2_SCENE_MODE_CANDLELIGHT``2375 - Fireworks. Long exposure times are used to capture the expanding
3280 2376 burst of light from a firework. The camera may invoke image
3281 - Candle light. The camera generally raises the ISO sensitivity and2377 stabilization.
3282 lowers the shutter speed. This mode compensates for relatively2378 * - ``V4L2_SCENE_MODE_LANDSCAPE``
3283 close subject in the scene. The flash is disabled in order to2379 - Landscape. The camera may choose a small aperture to provide deep
3284 preserve the ambiance of the light.2380 depth of field and long exposure duration to help capture detail
3285 2381 in dim light conditions. The focus is fixed at infinity. Suitable
3286 - .. row 52382 for distant and wide scenery.
3287 2383 * - ``V4L2_SCENE_MODE_NIGHT``
3288 - ``V4L2_SCENE_MODE_DAWN_DUSK``2384 - Night, also known as Night Landscape. Designed for low light
3289 2385 conditions, it preserves detail in the dark areas without blowing
3290 - Dawn and dusk. Preserves the colors seen in low natural light2386 out bright objects. The camera generally sets itself to a
3291 before dusk and after down. The camera may turn off the flash, and2387 medium-to-high ISO sensitivity, with a relatively long exposure
3292 automatically focus at infinity. It will usually boost saturation2388 time, and turns flash off. As such, there will be increased image
3293 and lower the shutter speed.2389 noise and the possibility of blurred image.
3294 2390 * - ``V4L2_SCENE_MODE_PARTY_INDOOR``
3295 - .. row 62391 - Party and indoor. Designed to capture indoor scenes that are lit
3296 2392 by indoor background lighting as well as the flash. The camera
3297 - ``V4L2_SCENE_MODE_FALL_COLORS``2393 usually increases ISO sensitivity, and adjusts exposure for the
3298 2394 low light conditions.
3299 - Fall colors. Increases saturation and adjusts white balance for2395 * - ``V4L2_SCENE_MODE_PORTRAIT``
3300 color enhancement. Pictures of autumn leaves get saturated reds2396 - Portrait. The camera adjusts the aperture so that the depth of
3301 and yellows.2397 field is reduced, which helps to isolate the subject against a
3302 2398 smooth background. Most cameras recognize the presence of faces in
3303 - .. row 72399 the scene and focus on them. The color hue is adjusted to enhance
3304 2400 skin tones. The intensity of the flash is often reduced.
3305 - ``V4L2_SCENE_MODE_FIREWORKS``2401 * - ``V4L2_SCENE_MODE_SPORTS``
3306 2402 - Sports. Significantly increases ISO and uses a fast shutter speed
3307 - Fireworks. Long exposure times are used to capture the expanding2403 to freeze motion of rapidly-moving subjects. Increased image noise
3308 burst of light from a firework. The camera may invoke image2404 may be seen in this mode.
3309 stabilization.2405 * - ``V4L2_SCENE_MODE_SUNSET``
3310 2406 - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps
3311 - .. row 82407 up the saturation.
3312 2408 * - ``V4L2_SCENE_MODE_TEXT``
3313 - ``V4L2_SCENE_MODE_LANDSCAPE``2409 - Text. It applies extra contrast and sharpness, it is typically a
3314 2410 black-and-white mode optimized for readability. Automatic focus
3315 - Landscape. The camera may choose a small aperture to provide deep2411 may be switched to close-up mode and this setting may also involve
3316 depth of field and long exposure duration to help capture detail2412 some lens-distortion correction.
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.
3373 2413
3374 2414
3375 2415
@@ -3393,24 +2433,12 @@ Camera Control IDs · 17 unmodified lines
3393 :header-rows: 02433 :header-rows: 0
3394 :stub-columns: 02434 :stub-columns: 0
3395 2435
3396 2436 * - ``V4L2_LOCK_EXPOSURE``
3397 - .. row 12437 - Automatic exposure adjustments lock.
3398 2438 * - ``V4L2_LOCK_WHITE_BALANCE``
3399 - ``V4L2_LOCK_EXPOSURE``2439 - Automatic white balance adjustments lock.
3400 2440 * - ``V4L2_LOCK_FOCUS``
3401 - Automatic exposure adjustments lock.2441 - Automatic focus 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.
3414 2442
3415 2443
3416 2444
@@ -3570,7 +2598,10 @@ FM_TX Control IDs · 153 unmodified lines
3570 Configures pilot tone frequency value. Unit is in Hz. The range and2598 Configures pilot tone frequency value. Unit is in Hz. The range and
3571 step are driver-specific.2599 step are driver-specific.
3572 2600
3573``V4L2_CID_TUNE_PREEMPHASIS (enum v4l2_preemphasis)``2601``V4L2_CID_TUNE_PREEMPHASIS``
2602 (enum)
2603
2604enum v4l2_preemphasis -
3574 Configures the pre-emphasis value for broadcasting. A pre-emphasis2605 Configures the pre-emphasis value for broadcasting. A pre-emphasis
3575 filter is applied to the broadcast to accentuate the high audio2606 filter is applied to the broadcast to accentuate the high audio
3576 frequencies. Depending on the region, a time constant of either 502607 frequencies. Depending on the region, a time constant of either 50
@@ -3583,24 +2614,12 @@ FM_TX Control IDs · 6 unmodified lines
3583 :header-rows: 02614 :header-rows: 0
3584 :stub-columns: 02615 :stub-columns: 0
3585 2616
3586 2617 * - ``V4L2_PREEMPHASIS_DISABLED``
3587 - .. row 12618 - No pre-emphasis is applied.
3588 2619 * - ``V4L2_PREEMPHASIS_50_uS``
3589 - ``V4L2_PREEMPHASIS_DISABLED``2620 - A pre-emphasis of 50 uS is used.
3590 2621 * - ``V4L2_PREEMPHASIS_75_uS``
3591 - No pre-emphasis is applied.2622 - A pre-emphasis of 75 uS is used.
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.
3604 2623
3605 2624
3606 2625
@@ -3684,51 +2703,31 @@ Flash Control IDs · 77 unmodified lines
3684 :header-rows: 02703 :header-rows: 0
3685 :stub-columns: 02704 :stub-columns: 0
3686 2705
3687 2706 * - ``V4L2_FLASH_LED_MODE_NONE``
3688 - .. row 12707 - Off.
3689 2708 * - ``V4L2_FLASH_LED_MODE_FLASH``
3690 - ``V4L2_FLASH_LED_MODE_NONE``2709 - Flash mode.
3691 2710 * - ``V4L2_FLASH_LED_MODE_TORCH``
3692 - Off.2711 - Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY.
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.
3705 2712
3706 2713
3707 2714
3708``V4L2_CID_FLASH_STROBE_SOURCE (menu)``2715``V4L2_CID_FLASH_STROBE_SOURCE (menu)``
3709 Defines the source of the flash LED strobe.2716 Defines the source of the flash LED strobe.
3710 2717
3711 2718.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
3712 2719
3713.. flat-table::2720.. flat-table::
3714 :header-rows: 02721 :header-rows: 0
3715 :stub-columns: 02722 :stub-columns: 0
3716 2723
3717 2724 * - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE``
3718 - .. row 12725 - The flash strobe is triggered by using the
3719 2726 V4L2_CID_FLASH_STROBE control.
3720 - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE``2727 * - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL``
3721 2728 - The flash strobe is triggered by an external source. Typically
3722 - The flash strobe is triggered by using the2729 this is a sensor, which makes it possible to synchronises the
3723 V4L2_CID_FLASH_STROBE control.2730 flash strobe start to exposure start.
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.
3732 2731
3733 2732
3734 2733
@@ -3775,75 +2774,39 @@ Flash Control IDs · 40 unmodified lines
3775 an effect is chip dependent. Reading the faults resets the control2774 an effect is chip dependent. Reading the faults resets the control
3776 and returns the chip to a usable state if possible.2775 and returns the chip to a usable state if possible.
3777 2776
3778 2777.. tabularcolumns:: |p{8.0cm}|p{9.5cm}|
3779 2778
3780.. flat-table::2779.. flat-table::
3781 :header-rows: 02780 :header-rows: 0
3782 :stub-columns: 02781 :stub-columns: 0
3783 2782
3784 2783 * - ``V4L2_FLASH_FAULT_OVER_VOLTAGE``
3785 - .. row 12784 - Flash controller voltage to the flash LED has exceeded the limit
3786 2785 specific to the flash controller.
3787 - ``V4L2_FLASH_FAULT_OVER_VOLTAGE``2786 * - ``V4L2_FLASH_FAULT_TIMEOUT``
3788 2787 - The flash strobe was still on when the timeout set by the user ---
3789 - Flash controller voltage to the flash LED has exceeded the limit2788 V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash
3790 specific to the flash controller.2789 controllers may set this in all such conditions.
3791 2790 * - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE``
3792 - .. row 22791 - The flash controller has overheated.
3793 2792 * - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT``
3794 - ``V4L2_FLASH_FAULT_TIMEOUT``2793 - The short circuit protection of the flash controller has been
3795 2794 triggered.
3796 - The flash strobe was still on when the timeout set by the user ---2795 * - ``V4L2_FLASH_FAULT_OVER_CURRENT``
3797 V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash2796 - Current in the LED power supply has exceeded the limit specific to
3798 controllers may set this in all such conditions.2797 the flash controller.
3799 2798 * - ``V4L2_FLASH_FAULT_INDICATOR``
3800 - .. row 32799 - The flash controller has detected a short or open circuit
3801 2800 condition on the indicator LED.
3802 - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE``2801 * - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE``
3803 2802 - Flash controller voltage to the flash LED has been below the
3804 - The flash controller has overheated.2803 minimum limit specific to the flash controller.
3805 2804 * - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE``
3806 - .. row 42805 - The input voltage of the flash controller is below the limit under
3807 2806 which strobing the flash at full current will not be possible.The
3808 - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT``2807 condition persists until this flag is no longer set.
3809 2808 * - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE``
3810 - The short circuit protection of the flash controller has been2809 - The temperature of the LED has exceeded its allowed upper limit.
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.
3847 2810
3848 2811
3849 2812
@@ -3886,48 +2849,24 @@ JPEG Control IDs · 36 unmodified lines
3886 how Cb and Cr components are downsampled after coverting an input2849 how Cb and Cr components are downsampled after coverting an input
3887 image from RGB to Y'CbCr color space.2850 image from RGB to Y'CbCr color space.
3888 2851
3889 2852.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
3890 2853
3891.. flat-table::2854.. flat-table::
3892 :header-rows: 02855 :header-rows: 0
3893 :stub-columns: 02856 :stub-columns: 0
3894 2857
3895 2858 * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444``
3896 - .. row 12859 - No chroma subsampling, each pixel has Y, Cr and Cb values.
3897 2860 * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422``
3898 - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444``2861 - Horizontally subsample Cr, Cb components by a factor of 2.
3899 2862 * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_420``
3900 - No chroma subsampling, each pixel has Y, Cr and Cb values.2863 - Subsample Cr, Cb components horizontally and vertically by 2.
3901 2864 * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_411``
3902 - .. row 22865 - Horizontally subsample Cr, Cb components by a factor of 4.
3903 2866 * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_410``
3904 - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422``2867 - Subsample Cr, Cb components horizontally by 4 and vertically by 2.
3905 2868 * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY``
3906 - Horizontally subsample Cr, Cb components by a factor of 2.2869 - Use only luminance component.
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.
3931 2870
3932 2871
3933 2872
@@ -3969,36 +2908,16 @@ JPEG Control IDs · 35 unmodified lines
3969 :header-rows: 02908 :header-rows: 0
3970 :stub-columns: 02909 :stub-columns: 0
3971 2910
3972 2911 * - ``V4L2_JPEG_ACTIVE_MARKER_APP0``
3973 - .. row 12912 - Application data segment APP\ :sub:`0`.
3974 2913 * - ``V4L2_JPEG_ACTIVE_MARKER_APP1``
3975 - ``V4L2_JPEG_ACTIVE_MARKER_APP0``2914 - Application data segment APP\ :sub:`1`.
3976 2915 * - ``V4L2_JPEG_ACTIVE_MARKER_COM``
3977 - Application data segment APP\ :sub:`0`.2916 - Comment segment.
3978 2917 * - ``V4L2_JPEG_ACTIVE_MARKER_DQT``
3979 - .. row 22918 - Quantization tables segment.
3980 2919 * - ``V4L2_JPEG_ACTIVE_MARKER_DHT``
3981 - ``V4L2_JPEG_ACTIVE_MARKER_APP1``2920 - Huffman tables segment.
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.
4002 2921
4003 2922
4004 2923
@@ -4162,13 +3081,19 @@ Digital Video Control IDs · 157 unmodified lines
4162 EDIDs, then the bit for that pad will be 0. This read-only control3081 EDIDs, then the bit for that pad will be 0. This read-only control
4163 is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors.3082 is applicable to VGA, DVI-A/D, HDMI and DisplayPort connectors.
4164 3083
4165``V4L2_CID_DV_TX_MODE (enum v4l2_dv_tx_mode)``3084``V4L2_CID_DV_TX_MODE``
3085 (enum)
3086
3087enum v4l2_dv_tx_mode -
4166 HDMI transmitters can transmit in DVI-D mode (just video) or in HDMI3088 HDMI transmitters can transmit in DVI-D mode (just video) or in HDMI
4167 mode (video + audio + auxiliary data). This control selects which3089 mode (video + audio + auxiliary data). This control selects which
4168 mode to use: V4L2_DV_TX_MODE_DVI_D or V4L2_DV_TX_MODE_HDMI.3090 mode to use: V4L2_DV_TX_MODE_DVI_D or V4L2_DV_TX_MODE_HDMI.
4169 This control is applicable to HDMI connectors.3091 This control is applicable to HDMI connectors.
4170 3092
4171``V4L2_CID_DV_TX_RGB_RANGE (enum v4l2_dv_rgb_range)``3093``V4L2_CID_DV_TX_RGB_RANGE``
3094 (enum)
3095
3096enum v4l2_dv_rgb_range -
4172 Select the quantization range for RGB output. V4L2_DV_RANGE_AUTO3097 Select the quantization range for RGB output. V4L2_DV_RANGE_AUTO
4173 follows the RGB quantization range specified in the standard for the3098 follows the RGB quantization range specified in the standard for the
4174 video interface (ie. :ref:`cea861` for HDMI).3099 video interface (ie. :ref:`cea861` for HDMI).
@@ -4180,7 +3105,10 @@ Digital Video Control IDs · 5 unmodified lines
4180 the number of bits per component. This control is applicable to VGA,3105 the number of bits per component. This control is applicable to VGA,
4181 DVI-A/D, HDMI and DisplayPort connectors.3106 DVI-A/D, HDMI and DisplayPort connectors.
4182 3107
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
3111enum v4l2_dv_it_content_type -
4184 Configures the IT Content Type of the transmitted video. This3112 Configures the IT Content Type of the transmitted video. This
4185 information is sent over HDMI and DisplayPort connectors as part of3113 information is sent over HDMI and DisplayPort connectors as part of
4186 the AVI InfoFrame. The term 'IT Content' is used for content that3114 the AVI InfoFrame. The term 'IT Content' is used for content that
@@ -4188,46 +3116,26 @@ Digital Video Control IDs · 1 unmodified line
4188 or an analog source. The enum v4l2_dv_it_content_type defines3116 or an analog source. The enum v4l2_dv_it_content_type defines
4189 the possible content types:3117 the possible content types:
4190 3118
4191 3119.. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
4192 3120
4193.. flat-table::3121.. flat-table::
4194 :header-rows: 03122 :header-rows: 0
4195 :stub-columns: 03123 :stub-columns: 0
4196 3124
4197 3125 * - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS``
4198 - .. row 13126 - Graphics content. Pixel data should be passed unfiltered and
4199 3127 without analog reconstruction.
4200 - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS``3128 * - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO``
4201 3129 - Photo content. The content is derived from digital still pictures.
4202 - Graphics content. Pixel data should be passed unfiltered and3130 The content should be passed through with minimal scaling and
4203 without analog reconstruction.3131 picture enhancements.
4204 3132 * - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA``
4205 - .. row 23133 - Cinema content.
4206 3134 * - ``V4L2_DV_IT_CONTENT_TYPE_GAME``
4207 - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO``3135 - Game content. Audio and video latency should be minimized.
4208 3136 * - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC``
4209 - Photo content. The content is derived from digital still pictures.3137 - No IT Content information is available and the ITC bit in the AVI
4210 The content should be passed through with minimal scaling and3138 InfoFrame is set to 0.
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.
4231 3139
4232 3140
4233 3141
@@ -4241,7 +3149,10 @@ Digital Video Control IDs · 7 unmodified lines
4241 will be 0. This read-only control is applicable to DVI-D, HDMI and3149 will be 0. This read-only control is applicable to DVI-D, HDMI and
4242 DisplayPort connectors.3150 DisplayPort connectors.
4243 3151
4244``V4L2_CID_DV_RX_RGB_RANGE (enum v4l2_dv_rgb_range)``3152``V4L2_CID_DV_RX_RGB_RANGE``
3153 (enum)
3154
3155enum v4l2_dv_rgb_range -
4245 Select the quantization range for RGB input. V4L2_DV_RANGE_AUTO3156 Select the quantization range for RGB input. V4L2_DV_RANGE_AUTO
4246 follows the RGB quantization range specified in the standard for the3157 follows the RGB quantization range specified in the standard for the
4247 video interface (ie. :ref:`cea861` for HDMI).3158 video interface (ie. :ref:`cea861` for HDMI).
@@ -4253,7 +3164,10 @@ Digital Video Control IDs · 5 unmodified lines
4253 the number of bits per component. This control is applicable to VGA,3164 the number of bits per component. This control is applicable to VGA,
4254 DVI-A/D, HDMI and DisplayPort connectors.3165 DVI-A/D, HDMI and DisplayPort connectors.
4255 3166
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
3170enum v4l2_dv_it_content_type -
4257 Reads the IT Content Type of the received video. This information is3171 Reads the IT Content Type of the received video. This information is
4258 sent over HDMI and DisplayPort connectors as part of the AVI3172 sent over HDMI and DisplayPort connectors as part of the AVI
4259 InfoFrame. The term 'IT Content' is used for content that originates3173 InfoFrame. The term 'IT Content' is used for content that originates
@@ -4325,7 +3239,10 @@ FM_RX Control IDs · 65 unmodified lines
4325 broadcasts speech. If the transmitter doesn't make this distinction,3239 broadcasts speech. If the transmitter doesn't make this distinction,
4326 then it will be set.3240 then it will be set.
4327 3241
4328``V4L2_CID_TUNE_DEEMPHASIS (enum v4l2_deemphasis)``3242``V4L2_CID_TUNE_DEEMPHASIS``
3243 (enum)
3244
3245enum v4l2_deemphasis -
4329 Configures the de-emphasis value for reception. A de-emphasis filter3246 Configures the de-emphasis value for reception. A de-emphasis filter
4330 is applied to the broadcast to accentuate the high audio3247 is applied to the broadcast to accentuate the high audio
4331 frequencies. Depending on the region, a time constant of either 503248 frequencies. Depending on the region, a time constant of either 50
@@ -4338,24 +3255,12 @@ FM_RX Control IDs · 6 unmodified lines
4338 :header-rows: 03255 :header-rows: 0
4339 :stub-columns: 03256 :stub-columns: 0
4340 3257
4341 3258 * - ``V4L2_DEEMPHASIS_DISABLED``
4342 - .. row 13259 - No de-emphasis is applied.
4343 3260 * - ``V4L2_DEEMPHASIS_50_uS``
4344 - ``V4L2_DEEMPHASIS_DISABLED``3261 - A de-emphasis of 50 uS is used.
4345 3262 * - ``V4L2_DEEMPHASIS_75_uS``
4346 - No de-emphasis is applied.3263 - A de-emphasis of 75 uS is used.
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.
4359 3264
4360 3265
4361 3266
@@ -4382,43 +3287,27 @@ Detect Control IDs · 20 unmodified lines
4382``V4L2_CID_DETECT_MD_MODE (menu)``3287``V4L2_CID_DETECT_MD_MODE (menu)``
4383 Sets the motion detection mode.3288 Sets the motion detection mode.
4384 3289
4385 3290.. tabularcolumns:: |p{7.5cm}|p{10.0cm}|
4386 3291
4387.. flat-table::3292.. flat-table::
4388 :header-rows: 03293 :header-rows: 0
4389 :stub-columns: 03294 :stub-columns: 0
4390 3295
4391 3296 * - ``V4L2_DETECT_MD_MODE_DISABLED``
4392 - .. row 13297 - Disable motion detection.
4393 3298 * - ``V4L2_DETECT_MD_MODE_GLOBAL``
4394 - ``V4L2_DETECT_MD_MODE_DISABLED``3299 - Use a single motion detection threshold.
4395 3300 * - ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID``
4396 - Disable motion detection.3301 - The image is divided into a grid, each cell with its own motion
4397 3302 detection threshold. These thresholds are set through the
4398 - .. row 23303 ``V4L2_CID_DETECT_MD_THRESHOLD_GRID`` matrix control.
4399 3304 * - ``V4L2_DETECT_MD_MODE_REGION_GRID``
4400 - ``V4L2_DETECT_MD_MODE_GLOBAL``3305 - The image is divided into a grid, each cell with its own region
4401 3306 value that specifies which per-region motion detection thresholds
4402 - Use a single motion detection threshold.3307 should be used. Each region has its own thresholds. How these
4403 3308 per-region thresholds are set up is driver-specific. The region
4404 - .. row 33309 values for the grid are set through the
4405 3310 ``V4L2_CID_DETECT_MD_REGION_GRID`` matrix control.
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.
4422 3311
4423 3312
4424 3313
Documentation/media/uapi/v4l/field-order.rst+74−122
@@ -47,140 +47,92 @@ clearer. · 46 unmodified lines
47All video capture and output devices must report the current field47All video capture and output devices must report the current field
48order. Some drivers may permit the selection of a different order, to48order. Some drivers may permit the selection of a different order, to
49this end applications initialize the ``field`` field of struct49this end applications initialize the ``field`` field of struct
50:ref:`v4l2_pix_format <v4l2-pix-format>` before calling the50:c:type:`v4l2_pix_format` before calling the
51:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. If this is not desired it51:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. If this is not desired it
52should have the value ``V4L2_FIELD_ANY`` (0).52should have the value ``V4L2_FIELD_ANY`` (0).
53 53
54 54
55.. _v4l2-field:
56
57enum v4l2_field55enum v4l2_field
58===============56===============
59 57
58.. c:type:: v4l2_field
59
60.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
61
60.. flat-table::62.. flat-table::
61 :header-rows: 063 :header-rows: 0
62 :stub-columns: 064 :stub-columns: 0
63 :widths: 3 1 465 :widths: 3 1 4
64 66
65 67 * - ``V4L2_FIELD_ANY``
66 - .. row 168 - 0
67 69 - Applications request this field order when any one of the
68 - ``V4L2_FIELD_ANY``70 ``V4L2_FIELD_NONE``, ``V4L2_FIELD_TOP``, ``V4L2_FIELD_BOTTOM``, or
69 71 ``V4L2_FIELD_INTERLACED`` formats is acceptable. Drivers choose
70 - 072 depending on hardware capabilities or e. g. the requested image
71 73 size, and return the actual field order. Drivers must never return
72 - Applications request this field order when any one of the74 ``V4L2_FIELD_ANY``. If multiple field orders are possible the
73 ``V4L2_FIELD_NONE``, ``V4L2_FIELD_TOP``, ``V4L2_FIELD_BOTTOM``, or75 driver must choose one of the possible field orders during
74 ``V4L2_FIELD_INTERLACED`` formats is acceptable. Drivers choose76 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or
75 depending on hardware capabilities or e. g. the requested image77 :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`. struct
76 size, and return the actual field order. Drivers must never return78 :c:type:`v4l2_buffer` ``field`` can never be
77 ``V4L2_FIELD_ANY``. If multiple field orders are possible the79 ``V4L2_FIELD_ANY``.
78 driver must choose one of the possible field orders during80 * - ``V4L2_FIELD_NONE``
79 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or81 - 1
80 :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`. struct82 - Images are in progressive format, not interlaced. The driver may
81 :ref:`v4l2_buffer <v4l2-buffer>` ``field`` can never be83 also indicate this order when it cannot distinguish between
82 ``V4L2_FIELD_ANY``.84 ``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM``.
83 85 * - ``V4L2_FIELD_TOP``
84 - .. row 286 - 2
85 87 - Images consist of the top (aka odd) field only.
86 - ``V4L2_FIELD_NONE``88 * - ``V4L2_FIELD_BOTTOM``
87 89 - 3
88 - 190 - Images consist of the bottom (aka even) field only. Applications
89 91 may wish to prevent a device from capturing interlaced images
90 - Images are in progressive format, not interlaced. The driver may92 because they will have "comb" or "feathering" artefacts around
91 also indicate this order when it cannot distinguish between93 moving objects.
92 ``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM``.94 * - ``V4L2_FIELD_INTERLACED``
93 95 - 4
94 - .. row 396 - Images contain both fields, interleaved line by line. The temporal
95 97 order of the fields (whether the top or bottom field is first
96 - ``V4L2_FIELD_TOP``98 transmitted) depends on the current video standard. M/NTSC
97 99 transmits the bottom field first, all other standards the top
98 - 2100 field first.
99 101 * - ``V4L2_FIELD_SEQ_TB``
100 - Images consist of the top (aka odd) field only.102 - 5
101 103 - Images contain both fields, the top field lines are stored first
102 - .. row 4104 in memory, immediately followed by the bottom field lines. Fields
103 105 are always stored in temporal order, the older one first in
104 - ``V4L2_FIELD_BOTTOM``106 memory. Image sizes refer to the frame, not fields.
105 107 * - ``V4L2_FIELD_SEQ_BT``
106 - 3108 - 6
107 109 - Images contain both fields, the bottom field lines are stored
108 - Images consist of the bottom (aka even) field only. Applications110 first in memory, immediately followed by the top field lines.
109 may wish to prevent a device from capturing interlaced images111 Fields are always stored in temporal order, the older one first in
110 because they will have "comb" or "feathering" artefacts around112 memory. Image sizes refer to the frame, not fields.
111 moving objects.113 * - ``V4L2_FIELD_ALTERNATE``
112 114 - 7
113 - .. row 5115 - The two fields of a frame are passed in separate buffers, in
114 116 temporal order, i. e. the older one first. To indicate the field
115 - ``V4L2_FIELD_INTERLACED``117 parity (whether the current field is a top or bottom field) the
116 118 driver or application, depending on data direction, must set
117 - 4119 struct :c:type:`v4l2_buffer` ``field`` to
118 120 ``V4L2_FIELD_TOP`` or ``V4L2_FIELD_BOTTOM``. Any two successive
119 - Images contain both fields, interleaved line by line. The temporal121 fields pair to build a frame. If fields are successive, without
120 order of the fields (whether the top or bottom field is first122 any dropped fields between them (fields can drop individually),
121 transmitted) depends on the current video standard. M/NTSC123 can be determined from the struct
122 transmits the bottom field first, all other standards the top124 :c:type:`v4l2_buffer` ``sequence`` field. This
123 field first.125 format cannot be selected when using the read/write I/O method
124 126 since there is no way to communicate if a field was a top or
125 - .. row 6127 bottom field.
126 128 * - ``V4L2_FIELD_INTERLACED_TB``
127 - ``V4L2_FIELD_SEQ_TB``129 - 8
128 130 - Images contain both fields, interleaved line by line, top field
129 - 5131 first. The top field is transmitted first.
130 132 * - ``V4L2_FIELD_INTERLACED_BT``
131 - Images contain both fields, the top field lines are stored first133 - 9
132 in memory, immediately followed by the bottom field lines. Fields134 - Images contain both fields, interleaved line by line, top field
133 are always stored in temporal order, the older one first in135 first. The bottom field is transmitted first.
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.
184 136
185 137
186 138
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
22current selection.22current selection.
23 23
24A single mechanism exists to negotiate all data formats using the24A single mechanism exists to negotiate all data formats using the
25aggregate struct :ref:`v4l2_format <v4l2-format>` and the25aggregate struct :c:type:`v4l2_format` and the
26:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and26:ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and
27:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctls. Additionally the27:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctls. Additionally the
28:ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctl can be used to examine28: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
20 #include <unistd.h>20 #include <unistd.h>
21 21
22 22
23.. cpp:function:: int close( int fd )23.. c:function:: int close( int fd )
24 24 :name: v4l2-close
25 25
26Arguments26Arguments
27=========27=========
Documentation/media/uapi/v4l/func-ioctl.rst+2−2
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
20 #include <sys/ioctl.h>20 #include <sys/ioctl.h>
21 21
22 22
23.. cpp:function:: int ioctl( int fd, int request, void *argp )23.. c:function:: int ioctl( int fd, int request, void *argp )
24 24 :name: v4l2-ioctl
25 25
26Arguments26Arguments
27=========27=========
Documentation/media/uapi/v4l/func-mmap.rst+9−7
@@ -21,8 +21,8 @@ Synopsis · 20 unmodified lines
21 #include <sys/mman.h>21 #include <sys/mman.h>
22 22
23 23
24.. cpp:function:: void *mmap( void *start, size_t length, int prot, int flags, int fd, off_t offset )24.. c:function:: void *mmap( void *start, size_t length, int prot, int flags, int fd, off_t offset )
25 25 :name: v4l2-mmap
26 26
27Arguments27Arguments
28=========28=========
@@ -37,9 +37,9 @@ Arguments · 8 unmodified lines
37``length``37``length``
38 Length of the memory area to map. This must be the same value as38 Length of the memory area to map. This must be the same value as
39 returned by the driver in the struct39 returned by the driver in the struct
40 :ref:`v4l2_buffer <v4l2-buffer>` ``length`` field for the40 :c:type:`v4l2_buffer` ``length`` field for the
41 single-planar API, and the same value as returned by the driver in41 single-planar API, and the same value as returned by the driver in
42 the struct :ref:`v4l2_plane <v4l2-plane>` ``length`` field for42 the struct :c:type:`v4l2_plane` ``length`` field for
43 the multi-planar API.43 the multi-planar API.
44 44
45``prot``45``prot``
@@ -78,7 +78,9 @@ Arguments · 32 unmodified lines
78 ``MAP_SHARED`` allows applications to share the mapped memory with78 ``MAP_SHARED`` allows applications to share the mapped memory with
79 other (e. g. child-) processes.79 other (e. g. child-) processes.
80 80
81 .. note:: The Linux ``videobuf`` module which is used by some81 .. note::
82
83 The Linux ``videobuf`` module which is used by some
82 drivers supports only ``MAP_SHARED``. ``MAP_PRIVATE`` requests84 drivers supports only ``MAP_SHARED``. ``MAP_PRIVATE`` requests
83 copy-on-write semantics. V4L2 applications should not set the85 copy-on-write semantics. V4L2 applications should not set the
84 ``MAP_PRIVATE``, ``MAP_DENYWRITE``, ``MAP_EXECUTABLE`` or ``MAP_ANON``86 ``MAP_PRIVATE``, ``MAP_DENYWRITE``, ``MAP_EXECUTABLE`` or ``MAP_ANON``
@@ -90,9 +92,9 @@ Arguments · 5 unmodified lines
90``offset``92``offset``
91 Offset of the buffer in device memory. This must be the same value93 Offset of the buffer in device memory. This must be the same value
92 as returned by the driver in the struct94 as returned by the driver in the struct
93 :ref:`v4l2_buffer <v4l2-buffer>` ``m`` union ``offset`` field for95 :c:type:`v4l2_buffer` ``m`` union ``offset`` field for
94 the single-planar API, and the same value as returned by the driver96 the single-planar API, and the same value as returned by the driver
95 in the struct :ref:`v4l2_plane <v4l2-plane>` ``m`` union97 in the struct :c:type:`v4l2_plane` ``m`` union
96 ``mem_offset`` field for the multi-planar API.98 ``mem_offset`` field for the multi-planar API.
97 99
98 100
Documentation/media/uapi/v4l/func-munmap.rst+4−4
@@ -21,8 +21,8 @@ Synopsis · 20 unmodified lines
21 #include <sys/mman.h>21 #include <sys/mman.h>
22 22
23 23
24.. cpp:function:: int munmap( void *start, size_t length )24.. c:function:: int munmap( void *start, size_t length )
25 25 :name: v4l2-munmap
26 26
27Arguments27Arguments
28=========28=========
@@ -34,9 +34,9 @@ Arguments · 5 unmodified lines
34``length``34``length``
35 Length of the mapped buffer. This must be the same value as given to35 Length of the mapped buffer. This must be the same value as given to
36 :ref:`mmap() <func-mmap>` and returned by the driver in the struct36 :ref:`mmap() <func-mmap>` and returned by the driver in the struct
37 :ref:`v4l2_buffer <v4l2-buffer>` ``length`` field for the37 :c:type:`v4l2_buffer` ``length`` field for the
38 single-planar API and in the struct38 single-planar API and in the struct
39 :ref:`v4l2_plane <v4l2-plane>` ``length`` field for the39 :c:type:`v4l2_plane` ``length`` field for the
40 multi-planar API.40 multi-planar API.
41 41
42 42
Documentation/media/uapi/v4l/func-open.rst+2−2
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
20 #include <fcntl.h>20 #include <fcntl.h>
21 21
22 22
23.. cpp:function:: int open( const char *device_name, int flags )23.. c:function:: int open( const char *device_name, int flags )
24 24 :name: v4l2-open
25 25
26Arguments26Arguments
27=========27=========
Documentation/media/uapi/v4l/func-poll.rst+2−2
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
20 #include <sys/poll.h>20 #include <sys/poll.h>
21 21
22 22
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 24 :name: v4l2-poll
25 25
26Arguments26Arguments
27=========27=========
Documentation/media/uapi/v4l/func-read.rst+5−3
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
20 #include <unistd.h>20 #include <unistd.h>
21 21
22 22
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 24 :name: v4l2-read
25 25
26Arguments26Arguments
27=========27=========
@@ -30,8 +30,10 @@ Arguments · 2 unmodified lines
30 File descriptor returned by :ref:`open() <func-open>`.30 File descriptor returned by :ref:`open() <func-open>`.
31 31
32``buf``32``buf``
33``count``33 Buffer to be filled
34 34
35``count``
36 Max number of bytes to read
35 37
36Description38Description
37===========39===========
Documentation/media/uapi/v4l/func-select.rst+16−2
@@ -22,12 +22,26 @@ Synopsis · 21 unmodified lines
22 #include <unistd.h>22 #include <unistd.h>
23 23
24 24
25.. cpp:function:: int select( int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout )25.. c:function:: int select( int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout )
26 26 :name: v4l2-select
27 27
28Arguments28Arguments
29=========29=========
30 30
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.
31 45
32 46
33Description47Description
Documentation/media/uapi/v4l/func-write.rst+5−3
@@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines
20 #include <unistd.h>20 #include <unistd.h>
21 21
22 22
23.. cpp:function:: ssize_t write( int fd, void *buf, size_t count )23.. c:function:: ssize_t write( int fd, void *buf, size_t count )
24 24 :name: v4l2-write
25 25
26Arguments26Arguments
27=========27=========
@@ -30,8 +30,10 @@ Arguments · 2 unmodified lines
30 File descriptor returned by :ref:`open() <func-open>`.30 File descriptor returned by :ref:`open() <func-open>`.
31 31
32``buf``32``buf``
33``count``33 Buffer with data to be written
34 34
35``count``
36 Number of bytes at the buffer
35 37
36Description38Description
37===========39===========
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
30this flag if they intend to access controls only, as opposed to capture30this flag if they intend to access controls only, as opposed to capture
31applications which need exclusive access. The ``VIDEO_STD_XXX``31applications which need exclusive access. The ``VIDEO_STD_XXX``
32identifiers are now ordinals instead of flags, and the32identifiers are now ordinals instead of flags, and the
33:c:func:`video_std_construct()` helper function takes id and33``video_std_construct()`` helper function takes id and
34transmission arguments.34transmission arguments.
35 35
361998-09-28: Revamped video standard. Made video controls individually361998-09-28: Revamped video standard. Made video controls individually
37enumerable.37enumerable.
38 38
391998-10-02: The ``id`` field was removed from struct391998-10-02: The ``id`` field was removed from struct
40:c:type:`struct video_standard` and the color subcarrier fields were40struct ``video_standard`` and the color subcarrier fields were
41renamed. The :ref:`VIDIOC_QUERYSTD` ioctl was41renamed. The :ref:`VIDIOC_QUERYSTD` ioctl was
42renamed to :ref:`VIDIOC_ENUMSTD`,42renamed to :ref:`VIDIOC_ENUMSTD`,
43:ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` to43:ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` to
@@ -45,7 +45,7 @@ renamed to :ref:`VIDIOC_ENUMSTD`, · 1 unmodified line
45Codec API was released.45Codec API was released.
46 46
471998-11-08: Many minor changes. Most symbols have been renamed. Some471998-11-08: Many minor changes. Most symbols have been renamed. Some
48material changes to struct :ref:`v4l2_capability <v4l2-capability>`.48material changes to struct :c:type:`v4l2_capability`.
49 49
501998-11-12: The read/write directon of some ioctls was misdefined.501998-11-12: The read/write directon of some ioctls was misdefined.
51 51
@@ -117,7 +117,7 @@ to simplify the API, while making it more extensible and following · 65 unmodified lines
117common Linux driver API conventions.117common Linux driver API conventions.
118 118
1191. Some typos in ``V4L2_FMT_FLAG`` symbols were fixed. struct1191. Some typos in ``V4L2_FMT_FLAG`` symbols were fixed. struct
120 :ref:`v4l2_clip <v4l2-clip>` was changed for compatibility with120 :c:type:`v4l2_clip` was changed for compatibility with
121 v4l. (1999-08-30)121 v4l. (1999-08-30)
122 122
1232. ``V4L2_TUNER_SUB_LANG1`` was added. (1999-09-05)1232. ``V4L2_TUNER_SUB_LANG1`` was added. (1999-09-05)
@@ -151,15 +151,15 @@ common Linux driver API conventions. · 27 unmodified lines
151 This change obsoletes the following ioctls: ``VIDIOC_S_INFMT``,151 This change obsoletes the following ioctls: ``VIDIOC_S_INFMT``,
152 ``VIDIOC_G_INFMT``, ``VIDIOC_S_OUTFMT``, ``VIDIOC_G_OUTFMT``,152 ``VIDIOC_G_INFMT``, ``VIDIOC_S_OUTFMT``, ``VIDIOC_G_OUTFMT``,
153 ``VIDIOC_S_VBIFMT`` and ``VIDIOC_G_VBIFMT``. The image format153 ``VIDIOC_S_VBIFMT`` and ``VIDIOC_G_VBIFMT``. The image format
154 structure :c:type:`struct v4l2_format` was renamed to struct154 structure struct :c:type:`v4l2_format` was renamed to struct
155 :ref:`v4l2_pix_format <v4l2-pix-format>`, while struct155 :c:type:`v4l2_pix_format`, while struct
156 :ref:`v4l2_format <v4l2-format>` is now the envelopping structure156 :c:type:`v4l2_format` is now the envelopping structure
157 for all format negotiations.157 for all format negotiations.
158 158
1595. Similar to the changes above, the ``VIDIOC_G_PARM`` and1595. Similar to the changes above, the ``VIDIOC_G_PARM`` and
160 ``VIDIOC_S_PARM`` ioctls were merged with ``VIDIOC_G_OUTPARM`` and160 ``VIDIOC_S_PARM`` ioctls were merged with ``VIDIOC_G_OUTPARM`` and
161 ``VIDIOC_S_OUTPARM``. A ``type`` field in the new struct161 ``VIDIOC_S_OUTPARM``. A ``type`` field in the new struct
162 :ref:`v4l2_streamparm <v4l2-streamparm>` selects the respective162 :c:type:`v4l2_streamparm` selects the respective
163 union member.163 union member.
164 164
165 This change obsoletes the ``VIDIOC_G_OUTPARM`` and165 This change obsoletes the ``VIDIOC_G_OUTPARM`` and
@@ -178,7 +178,7 @@ common Linux driver API conventions. · 12 unmodified lines
178 categories might have a greater separation, or may even appear in178 categories might have a greater separation, or may even appear in
179 separate windows.179 separate windows.
180 180
1817. The struct :ref:`v4l2_buffer <v4l2-buffer>` ``timestamp`` was1817. The struct :c:type:`v4l2_buffer` ``timestamp`` was
182 changed to a 64 bit integer, containing the sampling or output time182 changed to a 64 bit integer, containing the sampling or output time
183 of the frame in nanoseconds. Additionally timestamps will be in183 of the frame in nanoseconds. Additionally timestamps will be in
184 absolute system time, not starting from zero at the beginning of a184 absolute system time, not starting from zero at the beginning of a
@@ -202,7 +202,7 @@ common Linux driver API conventions. · 17 unmodified lines
202 return a 64-bit integer.202 return a 64-bit integer.
203 203
2048. A ``sequence`` field was added to struct2048. A ``sequence`` field was added to struct
205 :ref:`v4l2_buffer <v4l2-buffer>`. The ``sequence`` field counts205 :c:type:`v4l2_buffer`. The ``sequence`` field counts
206 captured frames, it is ignored by output devices. When a capture206 captured frames, it is ignored by output devices. When a capture
207 driver drops a frame, the sequence number of that frame is skipped.207 driver drops a frame, the sequence number of that frame is skipped.
208 208
@@ -210,7 +210,7 @@ common Linux driver API conventions. · 1 unmodified line
210V4L2 Version 0.20 incremental changes210V4L2 Version 0.20 incremental changes
211=====================================211=====================================
212 212
2131999-12-23: In struct :ref:`v4l2_vbi_format <v4l2-vbi-format>` the2131999-12-23: In struct :c:type:`v4l2_vbi_format` the
214``reserved1`` field became ``offset``. Previously drivers were required214``reserved1`` field became ``offset``. Previously drivers were required
215to clear the ``reserved1`` field.215to clear the ``reserved1`` field.
216 216
@@ -254,9 +254,9 @@ multiple tuners into account.) · 37 unmodified lines
2542000-09-18: ``V4L2_BUF_TYPE_VBI`` was added. This may *break2542000-09-18: ``V4L2_BUF_TYPE_VBI`` was added. This may *break
255compatibility* as the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and255compatibility* as the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and
256:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctls may fail now if the struct256:ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctls may fail now if the struct
257:c:type:`struct v4l2_fmt` ``type`` field does not contain257struct ``v4l2_fmt`` ``type`` field does not contain
258``V4L2_BUF_TYPE_VBI``. In the documentation of the struct258``V4L2_BUF_TYPE_VBI``. In the documentation of the struct
259:ref:`v4l2_vbi_format <v4l2-vbi-format>` ``offset`` field the259:c:type:`v4l2_vbi_format` ``offset`` field the
260ambiguous phrase "rising edge" was changed to "leading edge".260ambiguous phrase "rising edge" was changed to "leading edge".
261 261
262 262
@@ -321,7 +321,7 @@ This unnamed version was finally merged into Linux 2.5.46. · 58 unmodified lines
321 until the application attempts to initiate a data exchange, see321 until the application attempts to initiate a data exchange, see
322 :ref:`open`.322 :ref:`open`.
323 323
3243. The struct :ref:`v4l2_capability <v4l2-capability>` changed3243. The struct :c:type:`v4l2_capability` changed
325 dramatically. Note that also the size of the structure changed,325 dramatically. Note that also the size of the structure changed,
326 which is encoded in the ioctl request code, thus older V4L2 devices326 which is encoded in the ioctl request code, thus older V4L2 devices
327 will respond with an ``EINVAL`` error code to the new327 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
354 ``V4L2_FLAG_MONOCHROME`` flag was removed, this information is354 ``V4L2_FLAG_MONOCHROME`` flag was removed, this information is
355 available as described in :ref:`format`.355 available as described in :ref:`format`.
356 356
3574. In struct :ref:`v4l2_input <v4l2-input>` the ``assoc_audio``3574. In struct :c:type:`v4l2_input` the ``assoc_audio``
358 field and the ``capability`` field and its only flag358 field and the ``capability`` field and its only flag
359 ``V4L2_INPUT_CAP_AUDIO`` was replaced by the new ``audioset`` field.359 ``V4L2_INPUT_CAP_AUDIO`` was replaced by the new ``audioset`` field.
360 Instead of linking one video input to one audio input this field360 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
363 New fields are ``tuner`` (reversing the former link from tuners to363 New fields are ``tuner`` (reversing the former link from tuners to
364 video inputs), ``std`` and ``status``.364 video inputs), ``std`` and ``status``.
365 365
366 Accordingly struct :ref:`v4l2_output <v4l2-output>` lost its366 Accordingly struct :c:type:`v4l2_output` lost its
367 ``capability`` and ``assoc_audio`` fields. ``audioset``,367 ``capability`` and ``assoc_audio`` fields. ``audioset``,
368 ``modulator`` and ``std`` where added instead.368 ``modulator`` and ``std`` where added instead.
369 369
3705. The struct :ref:`v4l2_audio <v4l2-audio>` field ``audio`` was3705. The struct :c:type:`v4l2_audio` field ``audio`` was
371 renamed to ``index``, for consistency with other structures. A new371 renamed to ``index``, for consistency with other structures. A new
372 capability flag ``V4L2_AUDCAP_STEREO`` was added to indicated if the372 capability flag ``V4L2_AUDCAP_STEREO`` was added to indicated if the
373 audio input in question supports stereo sound.373 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
376 (However the same applies to AVL which is still there.)376 (However the same applies to AVL which is still there.)
377 377
378 Again for consistency the struct378 Again for consistency the struct
379 :ref:`v4l2_audioout <v4l2-audioout>` field ``audio`` was renamed379 :c:type:`v4l2_audioout` field ``audio`` was renamed
380 to ``index``.380 to ``index``.
381 381
3826. The struct :ref:`v4l2_tuner <v4l2-tuner>` ``input`` field was3826. The struct :c:type:`v4l2_tuner` ``input`` field was
383 replaced by an ``index`` field, permitting devices with multiple383 replaced by an ``index`` field, permitting devices with multiple
384 tuners. The link between video inputs and tuners is now reversed,384 tuners. The link between video inputs and tuners is now reversed,
385 inputs point to their tuner. The ``std`` substructure became a385 inputs point to their tuner. The ``std`` substructure became a
386 simple set (more about this below) and moved into struct386 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.
388 388
389 Accordingly in struct :ref:`v4l2_modulator <v4l2-modulator>` the389 Accordingly in struct :c:type:`v4l2_modulator` the
390 ``output`` was replaced by an ``index`` field.390 ``output`` was replaced by an ``index`` field.
391 391
392 In struct :ref:`v4l2_frequency <v4l2-frequency>` the ``port``392 In struct :c:type:`v4l2_frequency` the ``port``
393 field was replaced by a ``tuner`` field containing the respective393 field was replaced by a ``tuner`` field containing the respective
394 tuner or modulator index number. A tuner ``type`` field was added394 tuner or modulator index number. A tuner ``type`` field was added
395 and the ``reserved`` field became larger for future extensions395 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
405 :ref:`VIDIOC_S_STD <VIDIOC_G_STD>` now take a pointer to this405 :ref:`VIDIOC_S_STD <VIDIOC_G_STD>` now take a pointer to this
406 type as argument. :ref:`VIDIOC_QUERYSTD` was406 type as argument. :ref:`VIDIOC_QUERYSTD` was
407 added to autodetect the received standard, if the hardware has this407 added to autodetect the received standard, if the hardware has this
408 capability. In struct :ref:`v4l2_standard <v4l2-standard>` an408 capability. In struct :c:type:`v4l2_standard` an
409 ``index`` field was added for409 ``index`` field was added for
410 :ref:`VIDIOC_ENUMSTD`. A410 :ref:`VIDIOC_ENUMSTD`. A
411 :ref:`v4l2_std_id <v4l2-std-id>` field named ``id`` was added as411 :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
415 originally needed to distguish between variations of standards, were415 originally needed to distguish between variations of standards, were
416 removed.416 removed.
417 417
418 Struct :c:type:`struct v4l2_enumstd` ceased to be.418 Struct ``v4l2_enumstd`` ceased to be.
419 :ref:`VIDIOC_ENUMSTD` now takes a pointer to a419 :ref:`VIDIOC_ENUMSTD` now takes a pointer to a
420 struct :ref:`v4l2_standard <v4l2-standard>` directly. The420 struct :c:type:`v4l2_standard` directly. The
421 information which standards are supported by a particular video421 information which standards are supported by a particular video
422 input or output moved into struct :ref:`v4l2_input <v4l2-input>`422 input or output moved into struct :c:type:`v4l2_input`
423 and struct :ref:`v4l2_output <v4l2-output>` fields named ``std``,423 and struct :c:type:`v4l2_output` fields named ``std``,
424 respectively.424 respectively.
425 425
4268. The struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` fields4268. 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
432 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`, but without the overhead of432 :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`, but without the overhead of
433 programming the hardware and regardless of I/O in progress.433 programming the hardware and regardless of I/O in progress.
434 434
435 In struct :ref:`v4l2_format <v4l2-format>` the ``fmt`` union was435 In struct :c:type:`v4l2_format` the ``fmt`` union was
436 extended to contain struct :ref:`v4l2_window <v4l2-window>`. All436 extended to contain struct :c:type:`v4l2_window`. All
437 image format negotiations are now possible with ``VIDIOC_G_FMT``,437 image format negotiations are now possible with ``VIDIOC_G_FMT``,
438 ``VIDIOC_S_FMT`` and ``VIDIOC_TRY_FMT``; ioctl. The ``VIDIOC_G_WIN``438 ``VIDIOC_S_FMT`` and ``VIDIOC_TRY_FMT``; ioctl. The ``VIDIOC_G_WIN``
439 and ``VIDIOC_S_WIN`` ioctls to prepare for a video overlay were439 and ``VIDIOC_S_WIN`` ioctls to prepare for a video overlay were
440 removed. The ``type`` field changed to type enum440 removed. The ``type`` field changed to type enum
441 :ref:`v4l2_buf_type <v4l2-buf-type>` and the buffer type names441 :c:type:`v4l2_buf_type` and the buffer type names
442 changed as follows.442 changed as follows.
443 443
444 444
@@ -447,101 +447,45 @@ This unnamed version was finally merged into Linux 2.5.46. · 2 unmodified lines
447 :header-rows: 1447 :header-rows: 1
448 :stub-columns: 0448 :stub-columns: 0
449 449
450 450 * - Old defines
451 - .. row 1451 - enum :c:type:`v4l2_buf_type`
452 452 * - ``V4L2_BUF_TYPE_CAPTURE``
453 - Old defines453 - ``V4L2_BUF_TYPE_VIDEO_CAPTURE``
454 454 * - ``V4L2_BUF_TYPE_CODECIN``
455 - enum :ref:`v4l2_buf_type <v4l2-buf-type>`455 - Omitted for now
456 456 * - ``V4L2_BUF_TYPE_CODECOUT``
457 - .. row 2457 - Omitted for now
458 458 * - ``V4L2_BUF_TYPE_EFFECTSIN``
459 - ``V4L2_BUF_TYPE_CAPTURE``459 - Omitted for now
460 460 * - ``V4L2_BUF_TYPE_EFFECTSIN2``
461 - ``V4L2_BUF_TYPE_VIDEO_CAPTURE``461 - Omitted for now
462 462 * - ``V4L2_BUF_TYPE_EFFECTSOUT``
463 - .. row 3463 - Omitted for now
464 464 * - ``V4L2_BUF_TYPE_VIDEOOUT``
465 - ``V4L2_BUF_TYPE_CODECIN``465 - ``V4L2_BUF_TYPE_VIDEO_OUTPUT``
466 466 * - ``-``
467 - Omitted for now467 - ``V4L2_BUF_TYPE_VIDEO_OVERLAY``
468 468 * - ``-``
469 - .. row 4469 - ``V4L2_BUF_TYPE_VBI_CAPTURE``
470 470 * - ``-``
471 - ``V4L2_BUF_TYPE_CODECOUT``471 - ``V4L2_BUF_TYPE_VBI_OUTPUT``
472 472 * - ``-``
473 - Omitted for now473 - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE``
474 474 * - ``-``
475 - .. row 5475 - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``
476 476 * - ``V4L2_BUF_TYPE_PRIVATE_BASE``
477 - ``V4L2_BUF_TYPE_EFFECTSIN``477 - ``V4L2_BUF_TYPE_PRIVATE`` (but this is deprecated)
478 478
479 - Omitted for now479
480 48010. In struct :c:type:`v4l2_fmtdesc` a enum
481 - .. row 6481 :c:type:`v4l2_buf_type` field named ``type`` was
482 482 added as in struct :c:type:`v4l2_format`. The
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
53610. 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
539 ``VIDIOC_ENUM_FBUFFMT`` ioctl is no longer needed and was removed.483 ``VIDIOC_ENUM_FBUFFMT`` ioctl is no longer needed and was removed.
540 These calls can be replaced by484 These calls can be replaced by
541 :ref:`VIDIOC_ENUM_FMT` with type485 :ref:`VIDIOC_ENUM_FMT` with type
542 ``V4L2_BUF_TYPE_VIDEO_OVERLAY``.486 ``V4L2_BUF_TYPE_VIDEO_OVERLAY``.
543 487
54411. In struct :ref:`v4l2_pix_format <v4l2-pix-format>` the ``depth``48811. In struct :c:type:`v4l2_pix_format` the ``depth``
545 field was removed, assuming applications which recognize the format489 field was removed, assuming applications which recognize the format
546 by its four-character-code already know the color depth, and others490 by its four-character-code already know the color depth, and others
547 do not care about it. The same rationale lead to the removal of the491 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
555 itself was removed.499 itself was removed.
556 500
557 The interlace flags were replaced by a enum501 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``
559 field.503 field.
560 504
561 505
@@ -564,82 +508,50 @@ This unnamed version was finally merged into Linux 2.5.46. · 2 unmodified lines
564 :header-rows: 1508 :header-rows: 1
565 :stub-columns: 0509 :stub-columns: 0
566 510
567 511 * - Old flag
568 - .. row 1512 - enum :c:type:`v4l2_field`
569 513 * - ``V4L2_FMT_FLAG_NOT_INTERLACED``
570 - Old flag514 - ?
571 515 * - ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED``
572 - enum :ref:`v4l2_field <v4l2-field>`516 - ``V4L2_FIELD_INTERLACED``
573 517 * - ``V4L2_FMT_FLAG_TOPFIELD`` = ``V4L2_FMT_FLAG_ODDFIELD``
574 - .. row 2518 - ``V4L2_FIELD_TOP``
575 519 * - ``V4L2_FMT_FLAG_BOTFIELD`` = ``V4L2_FMT_FLAG_EVENFIELD``
576 - ``V4L2_FMT_FLAG_NOT_INTERLACED``520 - ``V4L2_FIELD_BOTTOM``
577 521 * - ``-``
578 - ?522 - ``V4L2_FIELD_SEQ_TB``
579 523 * - ``-``
580 - .. row 3524 - ``V4L2_FIELD_SEQ_BT``
581 525 * - ``-``
582 - ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED``526 - ``V4L2_FIELD_ALTERNATE``
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``
615 527
616 528
617 The color space flags were replaced by a enum529 The color space flags were replaced by a enum
618 :ref:`v4l2_colorspace <v4l2-colorspace>` value in a newly added530 :c:type:`v4l2_colorspace` value in a newly added
619 ``colorspace`` field, where one of ``V4L2_COLORSPACE_SMPTE170M``,531 ``colorspace`` field, where one of ``V4L2_COLORSPACE_SMPTE170M``,
620 ``V4L2_COLORSPACE_BT878``, ``V4L2_COLORSPACE_470_SYSTEM_M`` or532 ``V4L2_COLORSPACE_BT878``, ``V4L2_COLORSPACE_470_SYSTEM_M`` or
621 ``V4L2_COLORSPACE_470_SYSTEM_BG`` replaces ``V4L2_FMT_CS_601YUV``.533 ``V4L2_COLORSPACE_470_SYSTEM_BG`` replaces ``V4L2_FMT_CS_601YUV``.
622 534
62312. In struct :ref:`v4l2_requestbuffers <v4l2-requestbuffers>` the53512. In struct :c:type:`v4l2_requestbuffers` the
624 ``type`` field was properly defined as enum536 ``type`` field was properly defined as enum
625 :ref:`v4l2_buf_type <v4l2-buf-type>`. Buffer types changed as537 :c:type:`v4l2_buf_type`. Buffer types changed as
626 mentioned above. A new ``memory`` field of type enum538 mentioned above. A new ``memory`` field of type enum
627 :ref:`v4l2_memory <v4l2-memory>` was added to distinguish between539 :c:type:`v4l2_memory` was added to distinguish between
628 I/O methods using buffers allocated by the driver or the540 I/O methods using buffers allocated by the driver or the
629 application. See :ref:`io` for details.541 application. See :ref:`io` for details.
630 542
63113. In struct :ref:`v4l2_buffer <v4l2-buffer>` the ``type`` field was54313. In struct :c:type:`v4l2_buffer` the ``type`` field was
632 properly defined as enum :ref:`v4l2_buf_type <v4l2-buf-type>`.544 properly defined as enum :c:type:`v4l2_buf_type`.
633 Buffer types changed as mentioned above. A ``field`` field of type545 Buffer types changed as mentioned above. A ``field`` field of type
634 enum :ref:`v4l2_field <v4l2-field>` was added to indicate if a546 enum :c:type:`v4l2_field` was added to indicate if a
635 buffer contains a top or bottom field. The old field flags were547 buffer contains a top or bottom field. The old field flags were
636 removed. Since no unadjusted system time clock was added to the548 removed. Since no unadjusted system time clock was added to the
637 kernel as planned, the ``timestamp`` field changed back from type549 kernel as planned, the ``timestamp`` field changed back from type
638 stamp_t, an unsigned 64 bit integer expressing the sample time in550 stamp_t, an unsigned 64 bit integer expressing the sample time in
639 nanoseconds, to struct :c:type:`struct timeval`. With the addition551 nanoseconds, to struct :c:type:`timeval`. With the addition
640 of a second memory mapping method the ``offset`` field moved into552 of a second memory mapping method the ``offset`` field moved into
641 union ``m``, and a new ``memory`` field of type enum553 union ``m``, and a new ``memory`` field of type enum
642 :ref:`v4l2_memory <v4l2-memory>` was added to distinguish between554 :c:type:`v4l2_memory` was added to distinguish between
643 I/O methods. See :ref:`io` for details.555 I/O methods. See :ref:`io` for details.
644 556
645 The ``V4L2_BUF_REQ_CONTIG`` flag was used by the V4L compatibility557 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
648 indeed allocated in device memory rather than DMA-able system560 indeed allocated in device memory rather than DMA-able system
649 memory. It was barely useful and so was removed.561 memory. It was barely useful and so was removed.
650 562
65114. In struct :ref:`v4l2_framebuffer <v4l2-framebuffer>` the56314. In struct :c:type:`v4l2_framebuffer` the
652 ``base[3]`` array anticipating double- and triple-buffering in564 ``base[3]`` array anticipating double- and triple-buffering in
653 off-screen video memory, however without defining a synchronization565 off-screen video memory, however without defining a synchronization
654 mechanism, was replaced by a single pointer. The566 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
659 ``V4L2_FBUF_CAP_LIST_CLIPPING`` and571 ``V4L2_FBUF_CAP_LIST_CLIPPING`` and
660 ``V4L2_FBUF_CAP_BITMAP_CLIPPING``.572 ``V4L2_FBUF_CAP_BITMAP_CLIPPING``.
661 573
66215. In struct :ref:`v4l2_clip <v4l2-clip>` the ``x``, ``y``,57415. In struct :c:type:`v4l2_clip` the ``x``, ``y``,
663 ``width`` and ``height`` field moved into a ``c`` substructure of575 ``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``
665 fields were renamed to ``left`` and ``top``, i. e. offsets to a577 fields were renamed to ``left`` and ``top``, i. e. offsets to a
666 context dependent origin.578 context dependent origin.
667 579
66816. In struct :ref:`v4l2_window <v4l2-window>` the ``x``, ``y``,58016. In struct :c:type:`v4l2_window` the ``x``, ``y``,
669 ``width`` and ``height`` field moved into a ``w`` substructure as581 ``width`` and ``height`` field moved into a ``w`` substructure as
670 above. A ``field`` field of type %v4l2-field; was added to582 above. A ``field`` field of type :c:type:`v4l2_field` was added to
671 distinguish between field and frame (interlaced) overlay.583 distinguish between field and frame (interlaced) overlay.
672 584
67317. The digital zoom interface, including struct58517. The digital zoom interface, including struct
674 :c:type:`struct v4l2_zoomcap`, struct586 struct ``v4l2_zoomcap``, struct
675 :c:type:`struct v4l2_zoom`, ``V4L2_ZOOM_NONCAP`` and587 struct ``v4l2_zoom``, ``V4L2_ZOOM_NONCAP`` and
676 ``V4L2_ZOOM_WHILESTREAMING`` was replaced by a new cropping and588 ``V4L2_ZOOM_WHILESTREAMING`` was replaced by a new cropping and
677 scaling interface. The previously unused struct589 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`
679 where redefined for this purpose. See :ref:`crop` for details.591 where redefined for this purpose. See :ref:`crop` for details.
680 592
68118. In struct :ref:`v4l2_vbi_format <v4l2-vbi-format>` the59318. In struct :c:type:`v4l2_vbi_format` the
682 ``SAMPLE_FORMAT`` field now contains a four-character-code as used594 ``SAMPLE_FORMAT`` field now contains a four-character-code as used
683 to identify video image formats and ``V4L2_PIX_FMT_GREY`` replaces595 to identify video image formats and ``V4L2_PIX_FMT_GREY`` replaces
684 the ``V4L2_VBI_SF_UBYTE`` define. The ``reserved`` field was596 the ``V4L2_VBI_SF_UBYTE`` define. The ``reserved`` field was
685 extended.597 extended.
686 598
68719. In struct :ref:`v4l2_captureparm <v4l2-captureparm>` the type of59919. In struct :c:type:`v4l2_captureparm` the type of
688 the ``timeperframe`` field changed from unsigned long to struct600 the ``timeperframe`` field changed from unsigned long to struct
689 :ref:`v4l2_fract <v4l2-fract>`. This allows the accurate601 :c:type:`v4l2_fract`. This allows the accurate
690 expression of multiples of the NTSC-M frame rate 30000 / 1001. A new602 expression of multiples of the NTSC-M frame rate 30000 / 1001. A new
691 field ``readbuffers`` was added to control the driver behaviour in603 field ``readbuffers`` was added to control the driver behaviour in
692 read I/O mode.604 read I/O mode.
693 605
694 Similar changes were made to struct606 Similar changes were made to struct
695 :ref:`v4l2_outputparm <v4l2-outputparm>`.607 :c:type:`v4l2_outputparm`.
696 608
69720. The struct :c:type:`struct v4l2_performance` and60920. The struct ``v4l2_performance`` and
698 ``VIDIOC_G_PERF`` ioctl were dropped. Except when using the610 ``VIDIOC_G_PERF`` ioctl were dropped. Except when using the
699 :ref:`read/write I/O method <rw>`, which is limited anyway, this611 :ref:`read/write I/O method <rw>`, which is limited anyway, this
700 information is already available to applications.612 information is already available to applications.
@@ -768,46 +680,21 @@ V4L2 2003-11-05 · 67 unmodified lines
768 :header-rows: 1680 :header-rows: 1
769 :stub-columns: 0681 :stub-columns: 0
770 682
771 683 * - Symbol
772 - .. row 1684 - In this document prior to revision 0.5
773 685 - Corrected
774 - Symbol686 * - ``V4L2_PIX_FMT_RGB24``
775 687 - B, G, R
776 - In this document prior to revision 0.5688 - R, G, B
777 689 * - ``V4L2_PIX_FMT_BGR24``
778 - Corrected690 - R, G, B
779 691 - B, G, R
780 - .. row 2692 * - ``V4L2_PIX_FMT_RGB32``
781 693 - B, G, R, X
782 - ``V4L2_PIX_FMT_RGB24``694 - R, G, B, X
783 695 * - ``V4L2_PIX_FMT_BGR32``
784 - B, G, R696 - R, G, B, X
785 697 - B, G, R, X
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
811 698
812 699
813 The ``V4L2_PIX_FMT_BGR24`` example was always correct.700 The ``V4L2_PIX_FMT_BGR24`` example was always correct.
@@ -834,7 +721,7 @@ V4L2 in Linux 2.6.8 · 20 unmodified lines
834===================721===================
835 722
8361. A new field ``input`` (former ``reserved[0]``) was added to the7231. A new field ``input`` (former ``reserved[0]``) was added to the
837 struct :ref:`v4l2_buffer <v4l2-buffer>` structure. Purpose of this724 struct :c:type:`v4l2_buffer` structure. Purpose of this
838 field is to alternate between video inputs (e. g. cameras) in step725 field is to alternate between video inputs (e. g. cameras) in step
839 with the video capturing process. This function must be enabled with726 with the video capturing process. This function must be enabled with
840 the new ``V4L2_BUF_FLAG_INPUT`` flag. The ``flags`` field is no727 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
854 741
8554. The documentation of the :ref:`VIDIOC_QBUF` and7424. The documentation of the :ref:`VIDIOC_QBUF` and
856 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctls did not mention the743 :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctls did not mention the
857 struct :ref:`v4l2_buffer <v4l2-buffer>` ``memory`` field. It was744 struct :c:type:`v4l2_buffer` ``memory`` field. It was
858 also missing from examples. Also on the ``VIDIOC_DQBUF`` page the ``EIO``745 also missing from examples. Also on the ``VIDIOC_DQBUF`` page the ``EIO``
859 error code was not documented.746 error code was not documented.
860 747
@@ -882,7 +769,7 @@ V4L2 in Linux 2.6.15 · 21 unmodified lines
8823. The ``VIDIOC_G_COMP`` and ``VIDIOC_S_COMP`` ioctl were renamed to7693. The ``VIDIOC_G_COMP`` and ``VIDIOC_S_COMP`` ioctl were renamed to
883 ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` respectively. Their770 ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` respectively. Their
884 argument was replaced by a struct771 argument was replaced by a struct
885 :c:type:`struct v4l2_mpeg_compression` pointer. (The772 ``v4l2_mpeg_compression`` pointer. (The
886 ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` ioctls where removed773 ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` ioctls where removed
887 in Linux 2.6.25.)774 in Linux 2.6.25.)
888 775
@@ -901,7 +788,7 @@ V4L2 spec erratum 2006-01-10 · 12 unmodified lines
901============================788============================
902 789
9031. The ``V4L2_IN_ST_COLOR_KILL`` flag in struct7901. The ``V4L2_IN_ST_COLOR_KILL`` flag in struct
904 :ref:`v4l2_input <v4l2-input>` not only indicates if the color791 :c:type:`v4l2_input` not only indicates if the color
905 killer is enabled, but also if it is active. (The color killer792 killer is enabled, but also if it is active. (The color killer
906 disables color decoding when it detects no color in the video signal793 disables color decoding when it detects no color in the video signal
907 to improve the image quality.)794 to improve the image quality.)
@@ -914,18 +801,18 @@ V4L2 spec erratum 2006-01-10 · 6 unmodified lines
914V4L2 spec erratum 2006-02-03801V4L2 spec erratum 2006-02-03
915============================802============================
916 803
9171. In struct :ref:`v4l2_captureparm <v4l2-captureparm>` and struct8041. In struct :c:type:`v4l2_captureparm` and struct
918 :ref:`v4l2_outputparm <v4l2-outputparm>` the ``timeperframe``805 :c:type:`v4l2_outputparm` the ``timeperframe``
919 field gives the time in seconds, not microseconds.806 field gives the time in seconds, not microseconds.
920 807
921 808
922V4L2 spec erratum 2006-02-04809V4L2 spec erratum 2006-02-04
923============================810============================
924 811
9251. The ``clips`` field in struct :ref:`v4l2_window <v4l2-window>`8121. The ``clips`` field in struct :c:type:`v4l2_window`
926 must point to an array of struct :ref:`v4l2_clip <v4l2-clip>`, not813 must point to an array of struct :c:type:`v4l2_clip`, not
927 a linked list, because drivers ignore the struct814 a linked list, because drivers ignore the struct
928 :c:type:`struct v4l2_clip`. ``next`` pointer.815 struct :c:type:`v4l2_clip`. ``next`` pointer.
929 816
930 817
931V4L2 in Linux 2.6.17818V4L2 in Linux 2.6.17
@@ -951,18 +838,18 @@ V4L2 spec erratum 2006-09-23 (Draft 0.15) · 19 unmodified lines
951 not mentioned along with other buffer types.838 not mentioned along with other buffer types.
952 839
9532. In :ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` it was clarified that the struct8402. 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.
955 842
9563. :ref:`VIDIOC_QUERYCAP` did not mention the sliced VBI and radio8433. :ref:`VIDIOC_QUERYCAP` did not mention the sliced VBI and radio
957 capability flags.844 capability flags.
958 845
9594. In :ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUENCY>` it was clarified that applications8464. In :ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUENCY>` it was clarified that applications
960 must initialize the tuner ``type`` field of struct847 must initialize the tuner ``type`` field of struct
961 :ref:`v4l2_frequency <v4l2-frequency>` before calling848 :c:type:`v4l2_frequency` before calling
962 :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>`.849 :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>`.
963 850
9645. The ``reserved`` array in struct8515. The ``reserved`` array in struct
965 :ref:`v4l2_requestbuffers <v4l2-requestbuffers>` has 2 elements,852 :c:type:`v4l2_requestbuffers` has 2 elements,
966 not 32.853 not 32.
967 854
9686. In :ref:`output` and :ref:`raw-vbi` the device file names8556. In :ref:`output` and :ref:`raw-vbi` the device file names
@@ -982,7 +869,7 @@ V4L2 in Linux 2.6.18 · 13 unmodified lines
982 flag to skip unsupported controls with869 flag to skip unsupported controls with
983 :ref:`VIDIOC_QUERYCTRL`, new control types870 :ref:`VIDIOC_QUERYCTRL`, new control types
984 ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_TYPE_CTRL_CLASS``871 ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_TYPE_CTRL_CLASS``
985 (:ref:`v4l2-ctrl-type`), and new control flags872 (:c:type:`v4l2_ctrl_type`), and new control flags
986 ``V4L2_CTRL_FLAG_READ_ONLY``, ``V4L2_CTRL_FLAG_UPDATE``,873 ``V4L2_CTRL_FLAG_READ_ONLY``, ``V4L2_CTRL_FLAG_UPDATE``,
987 ``V4L2_CTRL_FLAG_INACTIVE`` and ``V4L2_CTRL_FLAG_SLIDER``874 ``V4L2_CTRL_FLAG_INACTIVE`` and ``V4L2_CTRL_FLAG_SLIDER``
988 (:ref:`control-flags`). See :ref:`extended-controls` for details.875 (:ref:`control-flags`). See :ref:`extended-controls` for details.
@@ -991,7 +878,7 @@ V4L2 in Linux 2.6.18 · 2 unmodified lines
991V4L2 in Linux 2.6.19878V4L2 in Linux 2.6.19
992====================879====================
993 880
9941. In struct :ref:`v4l2_sliced_vbi_cap <v4l2-sliced-vbi-cap>` a8811. In struct :c:type:`v4l2_sliced_vbi_cap` a
995 buffer type field was added replacing a reserved field. Note on882 buffer type field was added replacing a reserved field. Note on
996 architectures where the size of enum types differs from int types the883 architectures where the size of enum types differs from int types the
997 size of the structure changed. The884 size of the structure changed. The
@@ -1029,7 +916,7 @@ V4L2 in Linux 2.6.22 · 31 unmodified lines
1029====================916====================
1030 917
10311. Two new field orders ``V4L2_FIELD_INTERLACED_TB`` and9181. Two new field orders ``V4L2_FIELD_INTERLACED_TB`` and
1032 ``V4L2_FIELD_INTERLACED_BT`` were added. See :ref:`v4l2-field` for919 ``V4L2_FIELD_INTERLACED_BT`` were added. See :c:type:`v4l2_field` for
1033 details.920 details.
1034 921
10352. Three new clipping/blending methods with a global or straight or9222. Three new clipping/blending methods with a global or straight or
@@ -1038,15 +925,15 @@ V4L2 in Linux 2.6.22 · 2 unmodified lines
1038 and :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` ioctls for details.925 and :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` ioctls for details.
1039 926
1040 A new ``global_alpha`` field was added to927 A new ``global_alpha`` field was added to
1041 :ref:`v4l2_window <v4l2-window>`, extending the structure. This928 :c:type:`v4l2_window`, extending the structure. This
1042 may *break compatibility* with applications using a struct929 may *break compatibility* with applications using a struct
1043 :c:type:`struct v4l2_window` directly. However the930 struct :c:type:`v4l2_window` directly. However the
1044 :ref:`VIDIOC_G/S/TRY_FMT <VIDIOC_G_FMT>` ioctls, which take a931 :ref:`VIDIOC_G/S/TRY_FMT <VIDIOC_G_FMT>` ioctls, which take a
1045 pointer to a :ref:`v4l2_format <v4l2-format>` parent structure932 pointer to a :c:type:`v4l2_format` parent structure
1046 with padding bytes at the end, are not affected.933 with padding bytes at the end, are not affected.
1047 934
10483. The format of the ``chromakey`` field in struct9353. 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"
1050 to a pixel value in the same format as the framebuffer. This may937 to a pixel value in the same format as the framebuffer. This may
1051 *break compatibility* with existing applications. Drivers supporting938 *break compatibility* with existing applications. Drivers supporting
1052 the "host order RGB32" format are not known.939 the "host order RGB32" format are not known.
@@ -1127,8 +1014,8 @@ V4L2 in Linux 2.6.29 · 74 unmodified lines
11271. The ``VIDIOC_G_CHIP_IDENT`` ioctl was renamed to10141. The ``VIDIOC_G_CHIP_IDENT`` ioctl was renamed to
1128 ``VIDIOC_G_CHIP_IDENT_OLD`` and ``VIDIOC_DBG_G_CHIP_IDENT`` was1015 ``VIDIOC_G_CHIP_IDENT_OLD`` and ``VIDIOC_DBG_G_CHIP_IDENT`` was
1129 introduced in its place. The old struct1016 introduced in its place. The old struct
1130 :c:type:`struct v4l2_chip_ident` was renamed to1017 struct ``v4l2_chip_ident`` was renamed to
1131 :c:type:`struct v4l2_chip_ident_old`.1018 struct ``v4l2_chip_ident_old``.
1132 1019
11332. The pixel formats ``V4L2_PIX_FMT_VYUY``, ``V4L2_PIX_FMT_NV16`` and10202. The pixel formats ``V4L2_PIX_FMT_VYUY``, ``V4L2_PIX_FMT_NV16`` and
1134 ``V4L2_PIX_FMT_NV61`` were added.1021 ``V4L2_PIX_FMT_NV61`` were added.
@@ -1279,7 +1166,7 @@ V4L2 in Linux 3.5 · 144 unmodified lines
1279V4L2 in Linux 3.61166V4L2 in Linux 3.6
1280=================1167=================
1281 1168
12821. Replaced ``input`` in :c:type:`struct v4l2_buffer` by11691. Replaced ``input`` in struct :c:type:`v4l2_buffer` by
1283 ``reserved2`` and removed ``V4L2_BUF_FLAG_INPUT``.1170 ``reserved2`` and removed ``V4L2_BUF_FLAG_INPUT``.
1284 1171
12852. Added V4L2_CAP_VIDEO_M2M and V4L2_CAP_VIDEO_M2M_MPLANE11722. Added V4L2_CAP_VIDEO_M2M and V4L2_CAP_VIDEO_M2M_MPLANE
@@ -1293,7 +1180,7 @@ V4L2 in Linux 3.9 · 7 unmodified lines
1293=================1180=================
1294 1181
12951. Added timestamp types to ``flags`` field in11821. 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`.
1297 1184
12982. Added ``V4L2_EVENT_CTRL_CH_RANGE`` control event changes flag. See11852. Added ``V4L2_EVENT_CTRL_CH_RANGE`` control event changes flag. See
1299 :ref:`ctrl-changes-flags`.1186 :ref:`ctrl-changes-flags`.
@@ -1320,7 +1207,7 @@ V4L2 in Linux 3.11 · 20 unmodified lines
1320V4L2 in Linux 3.141207V4L2 in Linux 3.14
1321==================1208==================
1322 1209
13231. In struct :c:type:`struct v4l2_rect`, the type of ``width`` and12101. In struct :c:type:`v4l2_rect`, the type of ``width`` and
1324 ``height`` fields changed from _s32 to _u32.1211 ``height`` fields changed from _s32 to _u32.
1325 1212
1326 1213
@@ -1339,7 +1226,7 @@ V4L2 in Linux 3.16 · 12 unmodified lines
1339V4L2 in Linux 3.171226V4L2 in Linux 3.17
1340==================1227==================
1341 1228
13421. Extended struct :ref:`v4l2_pix_format <v4l2-pix-format>`. Added12291. Extended struct :c:type:`v4l2_pix_format`. Added
1343 format flags.1230 format flags.
1344 1231
13452. Added compound control types and12322. Added compound control types and
@@ -1357,11 +1244,11 @@ V4L2 in Linux 3.19 · 11 unmodified lines
1357==================1244==================
1358 1245
13591. Rewrote Colorspace chapter, added new enum12461. Rewrote Colorspace chapter, added new enum
1360 :ref:`v4l2_ycbcr_encoding <v4l2-ycbcr-encoding>` and enum1247 :c:type:`v4l2_ycbcr_encoding` and enum
1361 :ref:`v4l2_quantization <v4l2-quantization>` fields to struct1248 :c:type:`v4l2_quantization` fields to struct
1362 :ref:`v4l2_pix_format <v4l2-pix-format>`, struct1249 :c:type:`v4l2_pix_format`, struct
1363 :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` and1250 :c:type:`v4l2_pix_format_mplane` and
1364 struct :ref:`v4l2_mbus_framefmt <v4l2-mbus-framefmt>`.1251 struct :c:type:`v4l2_mbus_framefmt`.
1365 1252
1366 1253
1367V4L2 in Linux 4.41254V4L2 in Linux 4.4
Documentation/media/uapi/v4l/libv4l-introduction.rst+46−31
@@ -113,56 +113,71 @@ Libv4l device control functions · 112 unmodified lines
113 113
114The common file operation methods are provided by libv4l.114The common file operation methods are provided by libv4l.
115 115
116Those functions operate just like glibc116Those functions operate just like the gcc function ``dup()`` and
117open/close/dup/ioctl/read/mmap/munmap:117V4L2 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>`:
118 121
119- :c:type:`int v4l2_open(const char *file, int oflag, ...)` - operates like the122.. c:function:: int v4l2_open(const char *file, int oflag, ...)
120 standard :ref:`open() <func-open>` function.
121 123
122- :c:type:`int v4l2_close(int fd)` - operates like the standard124 operates like the :c:func:`open() <v4l2-open>` function.
123 :ref:`close() <func-close>` function.
124 125
125- :c:type:`int v4l2_dup(int fd)` - operates like the standard dup() function,126.. c:function:: int v4l2_close(int fd)
126 duplicating a file handler.
127 127
128- :c:type:`int v4l2_ioctl (int fd, unsigned long int request, ...)` - operates128 operates like the :c:func:`close() <v4l2-close>` function.
129 like the standard :ref:`ioctl() <func-ioctl>` function.
130 129
131- :c:type:`int v4l2_read (int fd, void* buffer, size_t n)` - operates like the130.. c:function:: int v4l2_dup(int fd)
132 standard :ref:`read() <func-read>` function.
133 131
134- :c:type:`void v4l2_mmap(void *start, size_t length, int prot, int flags, int132 operates like the libc ``dup()`` function, duplicating a file handler.
135 fd, int64_t offset);` - operates like the standard
136 :ref:`mmap() <func-mmap>` function.
137 133
138- :c:type:`int v4l2_munmap(void *_start, size_t length);` - operates like the134.. c:function:: int v4l2_ioctl (int fd, unsigned long int request, ...)
139 standard :ref:`munmap() <func-munmap>` function.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.
140 149
141Those functions provide additional control:150Those functions provide additional control:
142 151
143- :c:type:`int v4l2_fd_open(int fd, int v4l2_flags)` - opens an already opened152.. c:function:: int v4l2_fd_open(int fd, int v4l2_flags)
144 fd for further use through v4l2lib and possibly modify libv4l2's153
145 default behavior through the v4l2_flags argument. Currently,154 opens an already opened fd for further use through v4l2lib and possibly
146 v4l2_flags can be ``V4L2_DISABLE_CONVERSION``, to disable format155 modify libv4l2's default behavior through the ``v4l2_flags`` argument.
147 conversion.156 Currently, ``v4l2_flags`` can be ``V4L2_DISABLE_CONVERSION``, to disable
157 format conversion.
148 158
149- :c:type:`int v4l2_set_control(int fd, int cid, int value)` - This function159.. c:function:: int v4l2_set_control(int fd, int cid, int value)
150 takes a value of 0 - 65535, and then scales that range to the actual160
151 range of the given v4l control id, and then if the cid exists and is161 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
152 not locked sets the cid to the scaled value.163 not locked sets the cid to the scaled value.
153 164
154- :c:type:`int v4l2_get_control(int fd, int cid)` - This function returns a165.. c:function:: int v4l2_get_control(int fd, int cid)
155 value of 0 - 65535, scaled to from the actual range of the given v4l166
156 control id. when the cid does not exist, could not be accessed for167 This function returns a value of 0 - 65535, scaled to from the actual range
157 some reason, or some error occurred 0 is returned.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.
158 170
159 171
160v4l1compat.so wrapper library172v4l1compat.so wrapper library
161=============================173=============================
162 174
163This library intercepts calls to open/close/ioctl/mmap/mmunmap175This 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>`
164operations and redirects them to the libv4l counterparts, by using179operations and redirects them to the libv4l counterparts, by using
165LD_PRELOAD=/usr/lib/v4l1compat.so. It also emulates V4L1 calls via V4L2180``LD_PRELOAD=/usr/lib/v4l1compat.so``. It also emulates V4L1 calls via V4L2
166API.181API.
167 182
168It allows usage of binary legacy applications that still don't use183It 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
8 8
9Input and output devices support this I/O method when the9Input and output devices support this I/O method when the
10``V4L2_CAP_STREAMING`` flag in the ``capabilities`` field of struct10``V4L2_CAP_STREAMING`` flag in the ``capabilities`` field of struct
11:ref:`v4l2_capability <v4l2-capability>` returned by the11:c:type:`v4l2_capability` returned by the
12:ref:`VIDIOC_QUERYCAP` ioctl is set. There are two12:ref:`VIDIOC_QUERYCAP` ioctl is set. There are two
13streaming methods, to determine if the memory mapping flavor is13streaming methods, to determine if the memory mapping flavor is
14supported applications must call the :ref:`VIDIOC_REQBUFS` ioctl14supported 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
39location of the buffers in device memory can be determined with the39location of the buffers in device memory can be determined with the
40:ref:`VIDIOC_QUERYBUF` ioctl. In the single-planar40:ref:`VIDIOC_QUERYBUF` ioctl. In the single-planar
41API case, the ``m.offset`` and ``length`` returned in a struct41API case, the ``m.offset`` and ``length`` returned in a struct
42:ref:`v4l2_buffer <v4l2-buffer>` are passed as sixth and second42:c:type:`v4l2_buffer` are passed as sixth and second
43parameter to the :ref:`mmap() <func-mmap>` function. When using the43parameter to the :ref:`mmap() <func-mmap>` function. When using the
44multi-planar API, struct :ref:`v4l2_buffer <v4l2-buffer>` contains an44multi-planar API, struct :c:type:`v4l2_buffer` contains an
45array of struct :ref:`v4l2_plane <v4l2-plane>` structures, each45array of struct :c:type:`v4l2_plane` structures, each
46containing its own ``m.offset`` and ``length``. When using the46containing its own ``m.offset`` and ``length``. When using the
47multi-planar API, every plane of every buffer has to be mapped47multi-planar API, every plane of every buffer has to be mapped
48separately, so the number of calls to :ref:`mmap() <func-mmap>` should48separately, 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
218applications can enqueue in advance, or dequeue and process. They can218applications can enqueue in advance, or dequeue and process. They can
219also enqueue in a different order than buffers have been dequeued, and219also enqueue in a different order than buffers have been dequeued, and
220the driver can *fill* enqueued *empty* buffers in any order. [#f2]_ The220the driver can *fill* enqueued *empty* buffers in any order. [#f2]_ The
221index number of a buffer (struct :ref:`v4l2_buffer <v4l2-buffer>`221index number of a buffer (struct :c:type:`v4l2_buffer`
222``index``) plays no role here, it only identifies the buffer.222``index``) plays no role here, it only identifies the buffer.
223 223
224Initially all mapped buffers are in dequeued state, inaccessible by the224Initially 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
251 removes all buffers from both queues as a side effect. Since there is251 removes all buffers from both queues as a side effect. Since there is
252 no notion of doing anything "now" on a multitasking system, if an252 no notion of doing anything "now" on a multitasking system, if an
253 application needs to synchronize with another event it should examine253 application needs to synchronize with another event it should examine
254 the struct ::ref:`v4l2_buffer <v4l2-buffer>` ``timestamp`` of captured254 the struct ::c:type:`v4l2_buffer` ``timestamp`` of captured
255 or outputted buffers.255 or outputted buffers.
256 256
257Drivers implementing memory mapping I/O must support the257Drivers implementing memory mapping I/O must support the
Documentation/media/uapi/v4l/pixfmt-002.rst+120−183
@@ -4,193 +4,130 @@ · 3 unmodified lines
4Single-planar format structure4Single-planar format structure
5******************************5******************************
6 6
7.. tabularcolumns:: |p{4.0cm}|p{2.5cm}|p{11.0cm}|
7 8
8.. _v4l2-pix-format:9.. c:type:: v4l2_pix_format
10
11.. cssclass:: longtable
9 12
10.. flat-table:: struct v4l2_pix_format13.. flat-table:: struct v4l2_pix_format
11 :header-rows: 014 :header-rows: 0
12 :stub-columns: 015 :stub-columns: 0
13 :widths: 1 1 216 :widths: 1 1 2
14 17
15 18 * - __u32
16 - .. row 119 - ``width``
17 20 - Image width in pixels.
18 - __u3221 * - __u32
19 22 - ``height``
20 - ``width``23 - Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``,
21 24 ``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height
22 - Image width in pixels.25 refers to the number of lines in the field, otherwise it refers to
23 26 the number of lines in the frame (which is twice the field height
24 - .. row 227 for interlaced formats).
25 28 * - :cspan:`2` Applications set these fields to request an image
26 - __u3229 size, drivers return the closest possible values. In case of
27 30 planar formats the ``width`` and ``height`` applies to the largest
28 - ``height``31 plane. To avoid ambiguities drivers must return values rounded up
29 32 to a multiple of the scale factor of any smaller planes. For
30 - Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``,33 example when the image format is YUV 4:2:0, ``width`` and
31 ``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height34 ``height`` must be multiples of two.
32 refers to the number of lines in the field, otherwise it refers to35 * - __u32
33 the number of lines in the frame (which is twice the field height36 - ``pixelformat``
34 for interlaced formats).37 - The pixel format or type of compression, set by the application.
35 38 This is a little endian
36 - .. row 339 :ref:`four character code <v4l2-fourcc>`. V4L2 defines standard
37 40 RGB formats in :ref:`rgb-formats`, YUV formats in
38 - :cspan:`2` Applications set these fields to request an image41 :ref:`yuv-formats`, and reserved codes in
39 size, drivers return the closest possible values. In case of42 :ref:`reserved-formats`
40 planar formats the ``width`` and ``height`` applies to the largest43 * - enum :c:type::`v4l2_field`
41 plane. To avoid ambiguities drivers must return values rounded up44 - ``field``
42 to a multiple of the scale factor of any smaller planes. For45 - Video images are typically interlaced. Applications can request to
43 example when the image format is YUV 4:2:0, ``width`` and46 capture or output only the top or bottom field, or both fields
44 ``height`` must be multiples of two.47 interlaced or sequentially stored in one buffer or alternating in
45 48 separate buffers. Drivers return the actual field order selected.
46 - .. row 449 For more details on fields see :ref:`field-order`.
47 50 * - __u32
48 - __u3251 - ``bytesperline``
49 52 - Distance in bytes between the leftmost pixels in two adjacent
50 - ``pixelformat``53 lines.
51 54 * - :cspan:`2`
52 - The pixel format or type of compression, set by the application.55
53 This is a little endian56 Both applications and drivers can set this field to request
54 :ref:`four character code <v4l2-fourcc>`. V4L2 defines standard57 padding bytes at the end of each line. Drivers however may ignore
55 RGB formats in :ref:`rgb-formats`, YUV formats in58 the value requested by the application, returning ``width`` times
56 :ref:`yuv-formats`, and reserved codes in59 bytes per pixel or a larger value required by the hardware. That
57 :ref:`reserved-formats`60 implies applications can just set this field to zero to get a
58 61 reasonable default.
59 - .. row 562
60 63 Video hardware may access padding bytes, therefore they must
61 - enum :ref:`v4l2_field <v4l2-field>`64 reside in accessible memory. Consider cases where padding bytes
62 65 after the last line of an image cross a system page boundary.
63 - ``field``66 Input devices may write padding bytes, the value is undefined.
64 67 Output devices ignore the contents of padding bytes.
65 - Video images are typically interlaced. Applications can request to68
66 capture or output only the top or bottom field, or both fields69 When the image format is planar the ``bytesperline`` value applies
67 interlaced or sequentially stored in one buffer or alternating in70 to the first plane and is divided by the same factor as the
68 separate buffers. Drivers return the actual field order selected.71 ``width`` field for the other planes. For example the Cb and Cr
69 For more details on fields see :ref:`field-order`.72 planes of a YUV 4:2:0 image have half as many padding bytes
70 73 following each line as the Y plane. To avoid ambiguities drivers
71 - .. row 674 must return a ``bytesperline`` value rounded up to a multiple of
72 75 the scale factor.
73 - __u3276
74 77 For compressed formats the ``bytesperline`` value makes no sense.
75 - ``bytesperline``78 Applications and drivers must set this to 0 in that case.
76 79 * - __u32
77 - Distance in bytes between the leftmost pixels in two adjacent80 - ``sizeimage``
78 lines.81 - Size in bytes of the buffer to hold a complete image, set by the
79 82 driver. Usually this is ``bytesperline`` times ``height``. When
80 - .. row 783 the image consists of variable length compressed data this is the
81 84 maximum number of bytes required to hold an image.
82 - :cspan:`2`85 * - enum :c:type:`v4l2_colorspace`
83 86 - ``colorspace``
84 Both applications and drivers can set this field to request87 - This information supplements the ``pixelformat`` and must be set
85 padding bytes at the end of each line. Drivers however may ignore88 by the driver for capture streams and by the application for
86 the value requested by the application, returning ``width`` times89 output streams, see :ref:`colorspaces`.
87 bytes per pixel or a larger value required by the hardware. That90 * - __u32
88 implies applications can just set this field to zero to get a91 - ``priv``
89 reasonable default.92 - This field indicates whether the remaining fields of the
90 93 struct :c:type:`v4l2_pix_format`, also called the
91 Video hardware may access padding bytes, therefore they must94 extended fields, are valid. When set to
92 reside in accessible memory. Consider cases where padding bytes95 ``V4L2_PIX_FMT_PRIV_MAGIC``, it indicates that the extended fields
93 after the last line of an image cross a system page boundary.96 have been correctly initialized. When set to any other value it
94 Input devices may write padding bytes, the value is undefined.97 indicates that the extended fields contain undefined values.
95 Output devices ignore the contents of padding bytes.98
96 99 Applications that wish to use the pixel format extended fields
97 When the image format is planar the ``bytesperline`` value applies100 must first ensure that the feature is supported by querying the
98 to the first plane and is divided by the same factor as the101 device for the :ref:`V4L2_CAP_EXT_PIX_FORMAT <querycap>`
99 ``width`` field for the other planes. For example the Cb and Cr102 capability. If the capability isn't set the pixel format extended
100 planes of a YUV 4:2:0 image have half as many padding bytes103 fields are not supported and using the extended fields will lead
101 following each line as the Y plane. To avoid ambiguities drivers104 to undefined results.
102 must return a ``bytesperline`` value rounded up to a multiple of105
103 the scale factor.106 To use the extended fields, applications must set the ``priv``
104 107 field to ``V4L2_PIX_FMT_PRIV_MAGIC``, initialize all the extended
105 For compressed formats the ``bytesperline`` value makes no sense.108 fields and zero the unused bytes of the
106 Applications and drivers must set this to 0 in that case.109 struct :c:type:`v4l2_format` ``raw_data`` field.
107 110
108 - .. row 8111 When the ``priv`` field isn't set to ``V4L2_PIX_FMT_PRIV_MAGIC``
109 112 drivers must act as if all the extended fields were set to zero.
110 - __u32113 On return drivers must set the ``priv`` field to
111 114 ``V4L2_PIX_FMT_PRIV_MAGIC`` and all the extended fields to
112 - ``sizeimage``115 applicable values.
113 116 * - __u32
114 - Size in bytes of the buffer to hold a complete image, set by the117 - ``flags``
115 driver. Usually this is ``bytesperline`` times ``height``. When118 - Flags set by the application or driver, see :ref:`format-flags`.
116 the image consists of variable length compressed data this is the119 * - enum :c:type:`v4l2_ycbcr_encoding`
117 maximum number of bytes required to hold an image.120 - ``ycbcr_enc``
118 121 - This information supplements the ``colorspace`` and must be set by
119 - .. row 9122 the driver for capture streams and by the application for output
120 123 streams, see :ref:`colorspaces`.
121 - enum :ref:`v4l2_colorspace <v4l2-colorspace>`124 * - enum :c:type:`v4l2_quantization`
122 125 - ``quantization``
123 - ``colorspace``126 - This information supplements the ``colorspace`` and must be set by
124 127 the driver for capture streams and by the application for output
125 - This information supplements the ``pixelformat`` and must be set128 streams, see :ref:`colorspaces`.
126 by the driver for capture streams and by the application for129 * - enum :c:type:`v4l2_xfer_func`
127 output streams, see :ref:`colorspaces`.130 - ``xfer_func``
128 131 - This information supplements the ``colorspace`` and must be set by
129 - .. row 10132 the driver for capture streams and by the application for output
130 133 streams, see :ref:`colorspaces`.
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`.
Documentation/media/uapi/v4l/pixfmt-003.rst+68−140
@@ -4,163 +4,91 @@ · 3 unmodified lines
4Multi-planar format structures4Multi-planar format structures
5******************************5******************************
6 6
7The :ref:`struct v4l2_plane_pix_format <v4l2-plane-pix-format>` structures define size7The struct :c:type:`v4l2_plane_pix_format` structures define size
8and layout for each of the planes in a multi-planar format. The8and layout for each of the planes in a multi-planar format. The
9:ref:`struct v4l2_pix_format_mplane <v4l2-pix-format-mplane>` structure contains9struct :c:type:`v4l2_pix_format_mplane` structure contains
10information common to all planes (such as image width and height) and an10information common to all planes (such as image width and height) and an
11array of :ref:`struct v4l2_plane_pix_format <v4l2-plane-pix-format>` structures,11array of struct :c:type:`v4l2_plane_pix_format` structures,
12describing all planes of that format.12describing all planes of that format.
13 13
14 14
15.. _v4l2-plane-pix-format:15.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
16
17.. c:type:: v4l2_plane_pix_format
16 18
17.. flat-table:: struct v4l2_plane_pix_format19.. flat-table:: struct v4l2_plane_pix_format
18 :header-rows: 020 :header-rows: 0
19 :stub-columns: 021 :stub-columns: 0
20 :widths: 1 1 222 :widths: 1 1 2
21 23
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.
22 35
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>`.
39 36
40 - .. row 337.. tabularcolumns:: |p{4.4cm}|p{5.6cm}|p{7.5cm}|
41 38
42 - __u1639.. c:type:: v4l2_pix_format_mplane
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:
52 40
53.. flat-table:: struct v4l2_pix_format_mplane41.. flat-table:: struct v4l2_pix_format_mplane
54 :header-rows: 042 :header-rows: 0
55 :stub-columns: 043 :stub-columns: 0
56 :widths: 1 1 244 :widths: 1 1 2
57 45
58 46 * - __u32
59 - .. row 147 - ``width``
60 48 - Image width in pixels. See struct
61 - __u3249 :c:type:`v4l2_pix_format`.
62 50 * - __u32
63 - ``width``51 - ``height``
64 52 - Image height in pixels. See struct
65 - Image width in pixels. See struct53 :c:type:`v4l2_pix_format`.
66 :ref:`v4l2_pix_format <v4l2-pix-format>`.54 * - __u32
67 55 - ``pixelformat``
68 - .. row 256 - The pixel format. Both single- and multi-planar four character
69 57 codes can be used.
70 - __u3258 * - enum :c:type:`v4l2_field`
71 59 - ``field``
72 - ``height``60 - See struct :c:type:`v4l2_pix_format`.
73 61 * - enum :c:type:`v4l2_colorspace`
74 - Image height in pixels. See struct62 - ``colorspace``
75 :ref:`v4l2_pix_format <v4l2-pix-format>`.63 - See struct :c:type:`v4l2_pix_format`.
76 64 * - struct :c:type:`v4l2_plane_pix_format`
77 - .. row 365 - ``plane_fmt[VIDEO_MAX_PLANES]``
78 66 - An array of structures describing format of each plane this pixel
79 - __u3267 format consists of. The number of valid entries in this array has
80 68 to be put in the ``num_planes`` field.
81 - ``pixelformat``69 * - __u8
82 70 - ``num_planes``
83 - The pixel format. Both single- and multi-planar four character71 - Number of planes (i.e. separate memory buffers) for this format
84 codes can be used.72 and the number of valid entries in the ``plane_fmt`` array.
85 73 * - __u8
86 - .. row 474 - ``flags``
87 75 - Flags set by the application or driver, see :ref:`format-flags`.
88 - enum :ref:`v4l2_field <v4l2-field>`76 * - enum :c:type:`v4l2_ycbcr_encoding`
89 77 - ``ycbcr_enc``
90 - ``field``78 - This information supplements the ``colorspace`` and must be set by
91 79 the driver for capture streams and by the application for output
92 - See struct :ref:`v4l2_pix_format <v4l2-pix-format>`.80 streams, see :ref:`colorspaces`.
93 81 * - enum :c:type:`v4l2_quantization`
94 - .. row 582 - ``quantization``
95 83 - This information supplements the ``colorspace`` and must be set by
96 - enum :ref:`v4l2_colorspace <v4l2-colorspace>`84 the driver for capture streams and by the application for output
97 85 streams, see :ref:`colorspaces`.
98 - ``colorspace``86 * - enum :c:type:`v4l2_xfer_func`
99 87 - ``xfer_func``
100 - See struct :ref:`v4l2_pix_format <v4l2-pix-format>`.88 - This information supplements the ``colorspace`` and must be set by
101 89 the driver for capture streams and by the application for output
102 - .. row 690 streams, see :ref:`colorspaces`.
103 91 * - __u8
104 - struct :ref:`v4l2_plane_pix_format <v4l2-plane-pix-format>`92 - ``reserved[7]``
105 93 - Reserved for future extensions. Should be zeroed by drivers and
106 - ``plane_fmt[VIDEO_MAX_PLANES]``94 applications.
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.
Documentation/media/uapi/v4l/pixfmt-006.rst+102−241
@@ -5,284 +5,145 @@ Defining Colorspaces in V4L2 · 4 unmodified lines
5****************************5****************************
6 6
7In V4L2 colorspaces are defined by four values. The first is the7In V4L2 colorspaces are defined by four values. The first is the
8colorspace identifier (enum :ref:`v4l2_colorspace <v4l2-colorspace>`)8colorspace identifier (enum :c:type:`v4l2_colorspace`)
9which defines the chromaticities, the default transfer function, the9which defines the chromaticities, the default transfer function, the
10default Y'CbCr encoding and the default quantization method. The second10default Y'CbCr encoding and the default quantization method. The second
11is the transfer function identifier (enum11is the transfer function identifier (enum
12:ref:`v4l2_xfer_func <v4l2-xfer-func>`) to specify non-standard12:c:type:`v4l2_xfer_func`) to specify non-standard
13transfer functions. The third is the Y'CbCr encoding identifier (enum13transfer functions. The third is the Y'CbCr encoding identifier (enum
14:ref:`v4l2_ycbcr_encoding <v4l2-ycbcr-encoding>`) to specify14:c:type:`v4l2_ycbcr_encoding`) to specify
15non-standard Y'CbCr encodings and the fourth is the quantization15non-standard Y'CbCr encodings and the fourth is the quantization
16identifier (enum :ref:`v4l2_quantization <v4l2-quantization>`) to16identifier (enum :c:type:`v4l2_quantization`) to
17specify non-standard quantization methods. Most of the time only the17specify non-standard quantization methods. Most of the time only the
18colorspace field of struct :ref:`v4l2_pix_format <v4l2-pix-format>`18colorspace field of struct :c:type:`v4l2_pix_format`
19or struct :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>`19or struct :c:type:`v4l2_pix_format_mplane`
20needs to be filled in.20needs to be filled in.
21 21
22.. note:: The default R'G'B' quantization is full range for all22.. note::
23
24 The default R'G'B' quantization is full range for all
23 colorspaces except for BT.2020 which uses limited range R'G'B'25 colorspaces except for BT.2020 which uses limited range R'G'B'
24 quantization.26 quantization.
25 27
28.. tabularcolumns:: |p{6.0cm}|p{11.5cm}|
26 29
27.. _v4l2-colorspace:30.. c:type:: v4l2_colorspace
28 31
29.. flat-table:: V4L2 Colorspaces32.. flat-table:: V4L2 Colorspaces
30 :header-rows: 133 :header-rows: 1
31 :stub-columns: 034 :stub-columns: 0
32 35
33 36 * - Identifier
34 - .. row 137 - Details
35 38 * - ``V4L2_COLORSPACE_DEFAULT``
36 - Identifier39 - The default colorspace. This can be used by applications to let
37 40 the driver fill in the colorspace.
38 - Details41 * - ``V4L2_COLORSPACE_SMPTE170M``
39 42 - See :ref:`col-smpte-170m`.
40 - .. row 243 * - ``V4L2_COLORSPACE_REC709``
41 44 - See :ref:`col-rec709`.
42 - ``V4L2_COLORSPACE_DEFAULT``45 * - ``V4L2_COLORSPACE_SRGB``
43 46 - See :ref:`col-srgb`.
44 - The default colorspace. This can be used by applications to let47 * - ``V4L2_COLORSPACE_ADOBERGB``
45 the driver fill in the colorspace.48 - See :ref:`col-adobergb`.
46 49 * - ``V4L2_COLORSPACE_BT2020``
47 - .. row 350 - See :ref:`col-bt2020`.
48 51 * - ``V4L2_COLORSPACE_DCI_P3``
49 - ``V4L2_COLORSPACE_SMPTE170M``52 - See :ref:`col-dcip3`.
50 53 * - ``V4L2_COLORSPACE_SMPTE240M``
51 - See :ref:`col-smpte-170m`.54 - See :ref:`col-smpte-240m`.
52 55 * - ``V4L2_COLORSPACE_470_SYSTEM_M``
53 - .. row 456 - See :ref:`col-sysm`.
54 57 * - ``V4L2_COLORSPACE_470_SYSTEM_BG``
55 - ``V4L2_COLORSPACE_REC709``58 - See :ref:`col-sysbg`.
56 59 * - ``V4L2_COLORSPACE_JPEG``
57 - See :ref:`col-rec709`.60 - See :ref:`col-jpeg`.
58 61 * - ``V4L2_COLORSPACE_RAW``
59 - .. row 562 - The raw colorspace. This is used for raw image capture where the
60 63 image is minimally processed and is using the internal colorspace
61 - ``V4L2_COLORSPACE_SRGB``64 of the device. The software that processes an image using this
62 65 'colorspace' will have to know the internals of the capture
63 - See :ref:`col-srgb`.66 device.
64 67
65 - .. row 668
66 69
67 - ``V4L2_COLORSPACE_ADOBERGB``70.. c:type:: v4l2_xfer_func
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:
120 71
121.. flat-table:: V4L2 Transfer Function72.. flat-table:: V4L2 Transfer Function
122 :header-rows: 173 :header-rows: 1
123 :stub-columns: 074 :stub-columns: 0
124 75
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.
125 94
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
151 95
152 - ``V4L2_XFER_FUNC_ADOBERGB``
153 96
154 - Use the AdobeRGB transfer function.97.. c:type:: v4l2_ycbcr_encoding
155 98
156 - .. row 699.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
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:
183 100
184.. flat-table:: V4L2 Y'CbCr Encodings101.. flat-table:: V4L2 Y'CbCr Encodings
185 :header-rows: 1102 :header-rows: 1
186 :stub-columns: 0103 :stub-columns: 0
187 104
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.
188 123
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.
218 124
219 - .. row 6
220 125
221 - ``V4L2_YCBCR_ENC_XV709``126.. c:type:: v4l2_quantization
222 127
223 - Use the extended gamut xvYCC Rec. 709 encoding.128.. tabularcolumns:: |p{6.5cm}|p{11.0cm}|
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:
252 129
253.. flat-table:: V4L2 Quantization Methods130.. flat-table:: V4L2 Quantization Methods
254 :header-rows: 1131 :header-rows: 1
255 :stub-columns: 0132 :stub-columns: 0
256 133
257 134 * - Identifier
258 - .. row 1135 - Details
259 136 * - ``V4L2_QUANTIZATION_DEFAULT``
260 - Identifier137 - Use the default quantization encoding as defined by the
261 138 colorspace. This is always full range for R'G'B' (except for the
262 - Details139 BT.2020 colorspace) and usually limited range for Y'CbCr.
263 140 * - ``V4L2_QUANTIZATION_FULL_RANGE``
264 - .. row 2141 - Use the full range quantization encoding. I.e. the range [0…1] is
265 142 mapped to [0…255] (with possible clipping to [1…254] to avoid the
266 - ``V4L2_QUANTIZATION_DEFAULT``143 0x00 and 0xff values). Cb and Cr are mapped from [-0.5…0.5] to
267 144 [0…255] (with possible clipping to [1…254] to avoid the 0x00 and
268 - Use the default quantization encoding as defined by the145 0xff values).
269 colorspace. This is always full range for R'G'B' (except for the146 * - ``V4L2_QUANTIZATION_LIM_RANGE``
270 BT.2020 colorspace) and usually limited range for Y'CbCr.147 - Use the limited range quantization encoding. I.e. the range [0…1]
271 148 is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to
272 - .. row 3149 [16…240].
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].
Documentation/media/uapi/v4l/pixfmt-007.rst+301−453
@@ -19,51 +19,28 @@ are: · 18 unmodified lines
19 19
20 20
21 21
22.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
23
22.. flat-table:: SMPTE 170M Chromaticities24.. flat-table:: SMPTE 170M Chromaticities
23 :header-rows: 125 :header-rows: 1
24 :stub-columns: 026 :stub-columns: 0
25 :widths: 1 1 227 :widths: 1 1 2
26 28
27 29 * - Color
28 - .. row 130 - x
29 31 - y
30 - Color32 * - Red
31 33 - 0.630
32 - x34 - 0.340
33 35 * - Green
34 - y36 - 0.310
35 37 - 0.595
36 - .. row 238 * - Blue
37 39 - 0.155
38 - Red40 - 0.070
39 41 * - White Reference (D65)
40 - 0.63042 - 0.3127
41 43 - 0.3290
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
67 44
68 45
69The red, green and blue chromaticities are also often referred to as the46The 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
72The transfer function defined for SMPTE 170M is the same as the one49The transfer function defined for SMPTE 170M is the same as the one
73defined in Rec. 709.50defined in Rec. 709.
74 51
75 L' = -1.099(-L) :sup:`0.45` + 0.099 for L ≤ -0.01852.. math::
53
54 L' = -1.099(-L)^{0.45} + 0.099 \text{, for } L \le-0.018
76 55
77 L' = 4.5L for -0.018 < L < 0.01856 L' = 4.5L \text{, for } -0.018 < L < 0.018
78 57
79 L' = 1.099L :sup:`0.45` - 0.099 for L ≥ 0.01858 L' = 1.099L^{0.45} - 0.099 \text{, for } L \ge 0.018
80 59
81Inverse Transfer function:60Inverse Transfer function:
82 61
83 L = -((L' - 0.099) / -1.099) :sup:`1/0.45` for L' ≤ -0.08162.. math::
84 63
85 L = L' / 4.5 for -0.081 < L' < 0.08164 L = -\left( \frac{L' - 0.099}{-1.099} \right) ^{\frac{1}{0.45}} \text{, for } L' \le -0.081
86 65
87 L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.08166 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
88 69
89The luminance (Y') and color difference (Cb and Cr) are obtained with70The luminance (Y') and color difference (Cb and Cr) are obtained with
90the following ``V4L2_YCBCR_ENC_601`` encoding:71the following ``V4L2_YCBCR_ENC_601`` encoding:
91 72
92 Y' = 0.299R' + 0.587G' + 0.114B'73.. math::
93 74
94 Cb = -0.169R' - 0.331G' + 0.5B'75 Y' = 0.2990R' + 0.5870G' + 0.1140B'
95 76
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'
97 80
98Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range81Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
99[-0.5…0.5]. This conversion to Y'CbCr is identical to the one defined in82[-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
117 100
118 101
119 102
103.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
104
120.. flat-table:: Rec. 709 Chromaticities105.. flat-table:: Rec. 709 Chromaticities
121 :header-rows: 1106 :header-rows: 1
122 :stub-columns: 0107 :stub-columns: 0
123 :widths: 1 1 2108 :widths: 1 1 2
124 109
125 110 * - Color
126 - .. row 1111 - x
127 112 - y
128 - Color113 * - Red
129 114 - 0.640
130 - x115 - 0.330
131 116 * - Green
132 - y117 - 0.300
133 118 - 0.600
134 - .. row 2119 * - Blue
135 120 - 0.150
136 - Red121 - 0.060
137 122 * - White Reference (D65)
138 - 0.640123 - 0.3127
139 124 - 0.3290
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
165 125
166 126
167The full name of this standard is Rec. ITU-R BT.709-5.127The 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
169Transfer function. Normally L is in the range [0…1], but for the129Transfer function. Normally L is in the range [0…1], but for the
170extended gamut xvYCC encoding values outside that range are allowed.130extended gamut xvYCC encoding values outside that range are allowed.
171 131
172 L' = -1.099(-L) :sup:`0.45` + 0.099 for L ≤ -0.018132.. math::
133
134 L' = -1.099(-L)^{0.45} + 0.099 \text{, for } L \le -0.018
173 135
174 L' = 4.5L for -0.018 < L < 0.018136 L' = 4.5L \text{, for } -0.018 < L < 0.018
175 137
176 L' = 1.099L :sup:`0.45` - 0.099 for L ≥ 0.018138 L' = 1.099L^{0.45} - 0.099 \text{, for } L \ge 0.018
177 139
178Inverse Transfer function:140Inverse Transfer function:
179 141
180 L = -((L' - 0.099) / -1.099) :sup:`1/0.45` for L' ≤ -0.081142.. math::
181 143
182 L = L' / 4.5 for -0.081 < L' < 0.081144 L = -\left( \frac{L' - 0.099}{-1.099} \right)^\frac{1}{0.45} \text{, for } L' \le -0.081
183 145
184 L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081146 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
185 149
186The luminance (Y') and color difference (Cb and Cr) are obtained with150The luminance (Y') and color difference (Cb and Cr) are obtained with
187the following ``V4L2_YCBCR_ENC_709`` encoding:151the following ``V4L2_YCBCR_ENC_709`` encoding:
188 152
153.. math::
154
189 Y' = 0.2126R' + 0.7152G' + 0.0722B'155 Y' = 0.2126R' + 0.7152G' + 0.0722B'
190 156
191 Cb = -0.1146R' - 0.3854G' + 0.5B'157 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
210that are outside the range [0…1]. The resulting Y', Cb and Cr values are176that are outside the range [0…1]. The resulting Y', Cb and Cr values are
211scaled and offset:177scaled and offset:
212 178
213 Y' = (219 / 256) * (0.2126R' + 0.7152G' + 0.0722B') + (16 / 256)179.. math::
214 180
215 Cb = (224 / 256) * (-0.1146R' - 0.3854G' + 0.5B')181 Y' = \frac{219}{256} * (0.2126R' + 0.7152G' + 0.0722B') + \frac{16}{256}
216 182
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')
218 186
219The xvYCC 601 encoding (``V4L2_YCBCR_ENC_XV601``, :ref:`xvycc`) is187The xvYCC 601 encoding (``V4L2_YCBCR_ENC_XV601``, :ref:`xvycc`) is
220similar to the BT.601 encoding, but it allows for R', G' and B' values188similar to the BT.601 encoding, but it allows for R', G' and B' values
221that are outside the range [0…1]. The resulting Y', Cb and Cr values are189that are outside the range [0…1]. The resulting Y', Cb and Cr values are
222scaled and offset:190scaled and offset:
223 191
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}
225 195
226 Cb = (224 / 256) * (-0.169R' - 0.331G' + 0.5B')196 Cb = \frac{224}{256} * (-0.1687R' - 0.3313G' + 0.5B')
227 197
228 Cr = (224 / 256) * (0.5R' - 0.419G' - 0.081B')198 Cr = \frac{224}{256} * (0.5R' - 0.4187G' - 0.0813B')
229 199
230Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range200Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
231[-0.5…0.5]. The non-standard xvYCC 709 or xvYCC 601 encodings can be201[-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
241The :ref:`srgb` standard defines the colorspace used by most webcams211The :ref:`srgb` standard defines the colorspace used by most webcams
242and computer graphics. The default transfer function is212and computer graphics. The default transfer function is
243``V4L2_XFER_FUNC_SRGB``. The default Y'CbCr encoding is213``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.
245The chromaticities of the primary colors and the white reference are:215The chromaticities of the primary colors and the white reference are:
246 216
247 217
248 218
219.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
220
249.. flat-table:: sRGB Chromaticities221.. flat-table:: sRGB Chromaticities
250 :header-rows: 1222 :header-rows: 1
251 :stub-columns: 0223 :stub-columns: 0
252 :widths: 1 1 2224 :widths: 1 1 2
253 225
254 226 * - Color
255 - .. row 1227 - x
256 228 - y
257 - Color229 * - Red
258 230 - 0.640
259 - x231 - 0.330
260 232 * - Green
261 - y233 - 0.300
262 234 - 0.600
263 - .. row 2235 * - Blue
264 236 - 0.150
265 - Red237 - 0.060
266 238 * - White Reference (D65)
267 - 0.640239 - 0.3127
268 240 - 0.3290
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
294 241
295 242
296These chromaticities are identical to the Rec. 709 colorspace.243These chromaticities are identical to the Rec. 709 colorspace.
@@ -298,23 +245,28 @@ These chromaticities are identical to the Rec. 709 colorspace. · 1 unmodified line
298Transfer function. Note that negative values for L are only used by the245Transfer function. Note that negative values for L are only used by the
299Y'CbCr conversion.246Y'CbCr conversion.
300 247
301 L' = -1.055(-L) :sup:`1/2.4` + 0.055 for L < -0.0031308248.. math::
302 249
303 L' = 12.92L for -0.0031308 ≤ L ≤ 0.0031308250 L' = -1.055(-L)^{\frac{1}{2.4} } + 0.055\text{, for }L < -0.0031308
304 251
305 L' = 1.055L :sup:`1/2.4` - 0.055 for 0.0031308 < L ≤ 1252 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
306 255
307Inverse Transfer function:256Inverse Transfer function:
308 257
309 L = -((-L' + 0.055) / 1.055) :sup:`2.4` for L' < -0.04045258.. math::
259
260 L = -((-L' + 0.055) / 1.055) ^{2.4}\text{, for }L' < -0.04045
310 261
311 L = L' / 12.92 for -0.04045 ≤ L' ≤ 0.04045262 L = L' / 12.92\text{, for }-0.04045 \le L' \le 0.04045
312 263
313 L = ((L' + 0.055) / 1.055) :sup:`2.4` for L' > 0.04045264 L = ((L' + 0.055) / 1.055) ^{2.4}\text{, for }L' > 0.04045
314 265
315The luminance (Y') and color difference (Cb and Cr) are obtained with266The luminance (Y') and color difference (Cb and Cr) are obtained with
316the following ``V4L2_YCBCR_ENC_SYCC`` encoding as defined by267the following ``V4L2_YCBCR_ENC_601`` encoding as defined by :ref:`sycc`:
317:ref:`sycc`:268
269.. math::
318 270
319 Y' = 0.2990R' + 0.5870G' + 0.1140B'271 Y' = 0.2990R' + 0.5870G' + 0.1140B'
320 272
@@ -323,11 +275,8 @@ the following ``V4L2_YCBCR_ENC_SYCC`` encoding as defined by · 2 unmodified lines
323 Cr = 0.5R' - 0.4187G' - 0.0813B'275 Cr = 0.5R' - 0.4187G' - 0.0813B'
324 276
325Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range277Y' 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 full278[-0.5…0.5]. This transform is identical to one defined in SMPTE
327range. Although this Y'CbCr encoding looks very similar to the279170M/BT.601. The Y'CbCr quantization is full range.
328``V4L2_YCBCR_ENC_XV601`` encoding, it is not. The
329``V4L2_YCBCR_ENC_XV601`` scales and offsets the Y'CbCr values before
330quantization, but this encoding does not do that.
331 280
332 281
333.. _col-adobergb:282.. _col-adobergb:
@@ -339,80 +288,63 @@ The :ref:`adobergb` standard defines the colorspace used by computer · 5 unmodified lines
339graphics that use the AdobeRGB colorspace. This is also known as the288graphics that use the AdobeRGB colorspace. This is also known as the
340:ref:`oprgb` standard. The default transfer function is289:ref:`oprgb` standard. The default transfer function is
341``V4L2_XFER_FUNC_ADOBERGB``. The default Y'CbCr encoding is290``V4L2_XFER_FUNC_ADOBERGB``. The default Y'CbCr encoding is
342``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited291``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is full
343range. The chromaticities of the primary colors and the white reference292range. The chromaticities of the primary colors and the white reference
344are:293are:
345 294
346 295
347 296
297.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
298
348.. flat-table:: Adobe RGB Chromaticities299.. flat-table:: Adobe RGB Chromaticities
349 :header-rows: 1300 :header-rows: 1
350 :stub-columns: 0301 :stub-columns: 0
351 :widths: 1 1 2302 :widths: 1 1 2
352 303
353 304 * - Color
354 - .. row 1305 - x
355 306 - y
356 - Color307 * - Red
357 308 - 0.6400
358 - x309 - 0.3300
359 310 * - Green
360 - y311 - 0.2100
361 312 - 0.7100
362 - .. row 2313 * - Blue
363 314 - 0.1500
364 - Red315 - 0.0600
365 316 * - White Reference (D65)
366 - 0.6400317 - 0.3127
367 318 - 0.3290
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
393 319
394 320
395 321
396Transfer function:322Transfer function:
397 323
398 L' = L :sup:`1/2.19921875`324.. math::
325
326 L' = L ^{\frac{1}{2.19921875}}
399 327
400Inverse Transfer function:328Inverse Transfer function:
401 329
402 L = L' :sup:`2.19921875`330.. math::
331
332 L = L'^{(2.19921875)}
403 333
404The luminance (Y') and color difference (Cb and Cr) are obtained with334The luminance (Y') and color difference (Cb and Cr) are obtained with
405the following ``V4L2_YCBCR_ENC_601`` encoding:335the following ``V4L2_YCBCR_ENC_601`` encoding:
406 336
407 Y' = 0.299R' + 0.587G' + 0.114B'337.. math::
408 338
409 Cb = -0.169R' - 0.331G' + 0.5B'339 Y' = 0.2990R' + 0.5870G' + 0.1140B'
410 340
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'
412 344
413Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range345Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
414[-0.5…0.5]. This transform is identical to one defined in SMPTE346[-0.5…0.5]. This transform is identical to one defined in SMPTE
415170M/BT.601. The Y'CbCr quantization is limited range.347170M/BT.601. The Y'CbCr quantization is full range.
416 348
417 349
418.. _col-bt2020:350.. _col-bt2020:
@@ -429,69 +361,52 @@ of the primary colors and the white reference are: · 10 unmodified lines
429 361
430 362
431 363
364.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
365
432.. flat-table:: BT.2020 Chromaticities366.. flat-table:: BT.2020 Chromaticities
433 :header-rows: 1367 :header-rows: 1
434 :stub-columns: 0368 :stub-columns: 0
435 :widths: 1 1 2369 :widths: 1 1 2
436 370
437 371 * - Color
438 - .. row 1372 - x
439 373 - y
440 - Color374 * - Red
441 375 - 0.708
442 - x376 - 0.292
443 377 * - Green
444 - y378 - 0.170
445 379 - 0.797
446 - .. row 2380 * - Blue
447 381 - 0.131
448 - Red382 - 0.046
449 383 * - White Reference (D65)
450 - 0.708384 - 0.3127
451 385 - 0.3290
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
477 386
478 387
479 388
480Transfer function (same as Rec. 709):389Transfer function (same as Rec. 709):
481 390
482 L' = 4.5L for 0 ≤ L < 0.018391.. math::
483 392
484 L' = 1.099L :sup:`0.45` - 0.099 for 0.018 ≤ L ≤ 1393 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
485 396
486Inverse Transfer function:397Inverse Transfer function:
487 398
488 L = L' / 4.5 for L' < 0.081399.. math::
400
401 L = L' / 4.5\text{, for } L' < 0.081
489 402
490 L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081403 L = \left( \frac{L' + 0.099}{1.099}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081
491 404
492The luminance (Y') and color difference (Cb and Cr) are obtained with405The luminance (Y') and color difference (Cb and Cr) are obtained with
493the following ``V4L2_YCBCR_ENC_BT2020`` encoding:406the following ``V4L2_YCBCR_ENC_BT2020`` encoding:
494 407
408.. math::
409
495 Y' = 0.2627R' + 0.6780G' + 0.0593B'410 Y' = 0.2627R' + 0.6780G' + 0.0593B'
496 411
497 Cb = -0.1396R' - 0.3604G' + 0.5B'412 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
506 421
507Luma:422Luma:
508 423
509 Yc' = (0.2627R + 0.6780G + 0.0593B)'424.. math::
510 425 :nowrap:
511B' - Yc' ≤ 0:426
512 427 \begin{align*}
513 Cbc = (B' - Yc') / 1.9404428 Yc' = (0.2627R + 0.6780G + 0.0593B)'& \\
514 429 B' - Yc' \le 0:& \\
515B' - Yc' > 0:430 &Cbc = (B' - Yc') / 1.9404 \\
516 431 B' - Yc' > 0: & \\
517 Cbc = (B' - Yc') / 1.5816432 &Cbc = (B' - Yc') / 1.5816 \\
518 433 R' - Yc' \le 0:& \\
519R' - Yc' ≤ 0:434 &Crc = (R' - Y') / 1.7184 \\
520 435 R' - Yc' > 0:& \\
521 Crc = (R' - Y') / 1.7184436 &Crc = (R' - Y') / 0.9936
522 437 \end{align*}
523R' - Yc' > 0:
524
525 Crc = (R' - Y') / 0.9936
526 438
527Yc' is clamped to the range [0…1] and Cbc and Crc are clamped to the439Yc' is clamped to the range [0…1] and Cbc and Crc are clamped to the
528range [-0.5…0.5]. The Yc'CbcCrc quantization is limited range.440range [-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
536The :ref:`smpte431` standard defines the colorspace used by cinema448The :ref:`smpte431` standard defines the colorspace used by cinema
537projectors that use the DCI-P3 colorspace. The default transfer function449projectors that use the DCI-P3 colorspace. The default transfer function
538is ``V4L2_XFER_FUNC_DCI_P3``. The default Y'CbCr encoding is450is ``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::
540 454
541.. note:: Note that this colorspace does not specify a455 Note that this colorspace standard does not specify a
542 Y'CbCr encoding since it is not meant to be encoded to Y'CbCr. So this456 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. The457 default Y'CbCr encoding was picked because it is the HDTV encoding.
544 default Y'CbCr quantization is limited range. The chromaticities of the458
545 primary colors and the white reference are:459The chromaticities of the primary colors and the white reference are:
546 460
547 461
548 462
463.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
464
549.. flat-table:: DCI-P3 Chromaticities465.. flat-table:: DCI-P3 Chromaticities
550 :header-rows: 1466 :header-rows: 1
551 :stub-columns: 0467 :stub-columns: 0
552 :widths: 1 1 2468 :widths: 1 1 2
553 469
554 470 * - Color
555 - .. row 1471 - x
556 472 - y
557 - Color473 * - Red
558 474 - 0.6800
559 - x475 - 0.3200
560 476 * - Green
561 - y477 - 0.2650
562 478 - 0.6900
563 - .. row 2479 * - Blue
564 480 - 0.1500
565 - Red481 - 0.0600
566 482 * - White Reference
567 - 0.6800483 - 0.3140
568 484 - 0.3510
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
594 485
595 486
596 487
597Transfer function:488Transfer function:
598 489
599 L' = L :sup:`1/2.6`490.. math::
491
492 L' = L^{\frac{1}{2.6}}
600 493
601Inverse Transfer function:494Inverse Transfer function:
602 495
603 L = L' :sup:`2.6`496.. math::
497
498 L = L'^{(2.6)}
604 499
605Y'CbCr encoding is not specified. V4L2 defaults to Rec. 709.500Y'CbCr encoding is not specified. V4L2 defaults to Rec. 709.
606 501
@@ -619,77 +514,60 @@ and the white reference are: · 12 unmodified lines
619 514
620 515
621 516
517.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
518
622.. flat-table:: SMPTE 240M Chromaticities519.. flat-table:: SMPTE 240M Chromaticities
623 :header-rows: 1520 :header-rows: 1
624 :stub-columns: 0521 :stub-columns: 0
625 :widths: 1 1 2522 :widths: 1 1 2
626 523
627 524 * - Color
628 - .. row 1525 - x
629 526 - y
630 - Color527 * - Red
631 528 - 0.630
632 - x529 - 0.340
633 530 * - Green
634 - y531 - 0.310
635 532 - 0.595
636 - .. row 2533 * - Blue
637 534 - 0.155
638 - Red535 - 0.070
639 536 * - White Reference (D65)
640 - 0.630537 - 0.3127
641 538 - 0.3290
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
667 539
668 540
669These chromaticities are identical to the SMPTE 170M colorspace.541These chromaticities are identical to the SMPTE 170M colorspace.
670 542
671Transfer function:543Transfer function:
672 544
673 L' = 4L for 0 ≤ L < 0.0228545.. math::
674 546
675 L' = 1.1115L :sup:`0.45` - 0.1115 for 0.0228 ≤ L ≤ 1547 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
676 550
677Inverse Transfer function:551Inverse Transfer function:
678 552
679 L = L' / 4 for 0 ≤ L' < 0.0913553.. math::
554
555 L = \frac{L'}{4}\text{, for } 0 \le L' < 0.0913
680 556
681 L = ((L' + 0.1115) / 1.1115) :sup:`1/0.45` for L' ≥ 0.0913557 L = \left( \frac{L' + 0.1115}{1.1115}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.0913
682 558
683The luminance (Y') and color difference (Cb and Cr) are obtained with559The luminance (Y') and color difference (Cb and Cr) are obtained with
684the following ``V4L2_YCBCR_ENC_SMPTE240M`` encoding:560the following ``V4L2_YCBCR_ENC_SMPTE240M`` encoding:
685 561
562.. math::
563
686 Y' = 0.2122R' + 0.7013G' + 0.0865B'564 Y' = 0.2122R' + 0.7013G' + 0.0865B'
687 565
688 Cb = -0.1161R' - 0.3839G' + 0.5B'566 Cb = -0.1161R' - 0.3839G' + 0.5B'
689 567
690 Cr = 0.5R' - 0.4451G' - 0.0549B'568 Cr = 0.5R' - 0.4451G' - 0.0549B'
691 569
692Yc' is clamped to the range [0…1] and Cbc and Crc are clamped to the570Y' is clamped to the range [0…1] and Cb and Cr are clamped to the
693range [-0.5…0.5]. The Y'CbCr quantization is limited range.571range [-0.5…0.5]. The Y'CbCr quantization is limited range.
694 572
695 573
@@ -707,54 +585,33 @@ reference are: · 11 unmodified lines
707 585
708 586
709 587
588.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
589
710.. flat-table:: NTSC 1953 Chromaticities590.. flat-table:: NTSC 1953 Chromaticities
711 :header-rows: 1591 :header-rows: 1
712 :stub-columns: 0592 :stub-columns: 0
713 :widths: 1 1 2593 :widths: 1 1 2
714 594
715 595 * - Color
716 - .. row 1596 - x
717 597 - y
718 - Color598 * - Red
719 599 - 0.67
720 - x600 - 0.33
721 601 * - Green
722 - y602 - 0.21
723 603 - 0.71
724 - .. row 2604 * - Blue
725 605 - 0.14
726 - Red606 - 0.08
727 607 * - White Reference (C)
728 - 0.67608 - 0.310
729 609 - 0.316
730 - 0.33610
731 611
732 - .. row 3612.. note::
733 613
734 - Green614 This colorspace uses Illuminant C instead of D65 as the white
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
758 reference. To correctly convert an image in this colorspace to another615 reference. To correctly convert an image in this colorspace to another
759 that uses D65 you need to apply a chromatic adaptation algorithm such as616 that uses D65 you need to apply a chromatic adaptation algorithm such as
760 the Bradford method.617 the Bradford method.
@@ -762,24 +619,30 @@ reference are: · 1 unmodified line
762The transfer function was never properly defined for NTSC 1953. The Rec.619The transfer function was never properly defined for NTSC 1953. The Rec.
763709 transfer function is recommended in the literature:620709 transfer function is recommended in the literature:
764 621
765 L' = 4.5L for 0 ≤ L < 0.018622.. math::
623
624 L' = 4.5L\text{, for } 0 \le L < 0.018
766 625
767 L' = 1.099L :sup:`0.45` - 0.099 for 0.018 ≤ L ≤ 1626 L' = 1.099L ^{0.45} - 0.099\text{, for } 0.018 \le L \le 1
768 627
769Inverse Transfer function:628Inverse Transfer function:
770 629
771 L = L' / 4.5 for L' < 0.081630.. math::
772 631
773 L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081632 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
774 635
775The luminance (Y') and color difference (Cb and Cr) are obtained with636The luminance (Y') and color difference (Cb and Cr) are obtained with
776the following ``V4L2_YCBCR_ENC_601`` encoding:637the following ``V4L2_YCBCR_ENC_601`` encoding:
777 638
778 Y' = 0.299R' + 0.587G' + 0.114B'639.. math::
779 640
780 Cb = -0.169R' - 0.331G' + 0.5B'641 Y' = 0.2990R' + 0.5870G' + 0.1140B'
781 642
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'
783 646
784Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range647Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
785[-0.5…0.5]. The Y'CbCr quantization is limited range. This transform is648[-0.5…0.5]. The Y'CbCr quantization is limited range. This transform is
@@ -801,75 +664,58 @@ are: · 15 unmodified lines
801 664
802 665
803 666
667.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}|
668
804.. flat-table:: EBU Tech. 3213 Chromaticities669.. flat-table:: EBU Tech. 3213 Chromaticities
805 :header-rows: 1670 :header-rows: 1
806 :stub-columns: 0671 :stub-columns: 0
807 :widths: 1 1 2672 :widths: 1 1 2
808 673
809 674 * - Color
810 - .. row 1675 - x
811 676 - y
812 - Color677 * - Red
813 678 - 0.64
814 - x679 - 0.33
815 680 * - Green
816 - y681 - 0.29
817 682 - 0.60
818 - .. row 2683 * - Blue
819 684 - 0.15
820 - Red685 - 0.06
821 686 * - White Reference (D65)
822 - 0.64687 - 0.3127
823 688 - 0.3290
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
849 689
850 690
851 691
852The transfer function was never properly defined for this colorspace.692The transfer function was never properly defined for this colorspace.
853The Rec. 709 transfer function is recommended in the literature:693The Rec. 709 transfer function is recommended in the literature:
854 694
855 L' = 4.5L for 0 ≤ L < 0.018695.. math::
856 696
857 L' = 1.099L :sup:`0.45` - 0.099 for 0.018 ≤ L ≤ 1697 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
858 700
859Inverse Transfer function:701Inverse Transfer function:
860 702
861 L = L' / 4.5 for L' < 0.081703.. math::
704
705 L = \frac{L'}{4.5} \text{, for } L' < 0.081
862 706
863 L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081707 L = \left(\frac{L' + 0.099}{1.099} \right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081
864 708
865The luminance (Y') and color difference (Cb and Cr) are obtained with709The luminance (Y') and color difference (Cb and Cr) are obtained with
866the following ``V4L2_YCBCR_ENC_601`` encoding:710the following ``V4L2_YCBCR_ENC_601`` encoding:
867 711
868 Y' = 0.299R' + 0.587G' + 0.114B'712.. math::
869 713
870 Cb = -0.169R' - 0.331G' + 0.5B'714 Y' = 0.2990R' + 0.5870G' + 0.1140B'
871 715
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'
873 719
874Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range720Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range
875[-0.5…0.5]. The Y'CbCr quantization is limited range. This transform is721[-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
888with full range quantization where Y' is scaled to [0…255] and Cb/Cr are734with full range quantization where Y' is scaled to [0…255] and Cb/Cr are
889scaled to [-128…128] and then clipped to [-128…127].735scaled to [-128…128] and then clipped to [-128…127].
890 736
891.. note:: The JPEG standard does not actually store colorspace737.. note::
738
739 The JPEG standard does not actually store colorspace
892 information. So if something other than sRGB is used, then the driver740 information. So if something other than sRGB is used, then the driver
893 will have to set that information explicitly. Effectively741 will have to set that information explicitly. Effectively
894 ``V4L2_COLORSPACE_JPEG`` can be considered to be an abbreviation for742 ``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
7 7
8.. _compressed-formats:8.. _compressed-formats:
9 9
10.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|
11
10.. flat-table:: Compressed Image Formats12.. flat-table:: Compressed Image Formats
11 :header-rows: 113 :header-rows: 1
12 :stub-columns: 014 :stub-columns: 0
13 :widths: 3 1 415 :widths: 3 1 4
14 16
15 17 * - Identifier
16 - .. row 118 - Code
17 19 - Details
18 - Identifier20 * .. _V4L2-PIX-FMT-JPEG:
19 21
20 - Code22 - ``V4L2_PIX_FMT_JPEG``
21 23 - 'JPEG'
22 - Details24 - TBD. See also :ref:`VIDIOC_G_JPEGCOMP <VIDIOC_G_JPEGCOMP>`,
23 25 :ref:`VIDIOC_S_JPEGCOMP <VIDIOC_G_JPEGCOMP>`.
24 - .. _V4L2-PIX-FMT-JPEG:26 * .. _V4L2-PIX-FMT-MPEG:
25 27
26 - ``V4L2_PIX_FMT_JPEG``28 - ``V4L2_PIX_FMT_MPEG``
27 29 - 'MPEG'
28 - 'JPEG'30 - MPEG multiplexed stream. The actual format is determined by
29 31 extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see
30 - TBD. See also :ref:`VIDIOC_G_JPEGCOMP <VIDIOC_G_JPEGCOMP>`,32 :ref:`mpeg-control-id`.
31 :ref:`VIDIOC_S_JPEGCOMP <VIDIOC_G_JPEGCOMP>`.33 * .. _V4L2-PIX-FMT-H264:
32 34
33 - .. _V4L2-PIX-FMT-MPEG:35 - ``V4L2_PIX_FMT_H264``
34 36 - 'H264'
35 - ``V4L2_PIX_FMT_MPEG``37 - H264 video elementary stream with start codes.
36 38 * .. _V4L2-PIX-FMT-H264-NO-SC:
37 - 'MPEG'39
38 40 - ``V4L2_PIX_FMT_H264_NO_SC``
39 - MPEG multiplexed stream. The actual format is determined by41 - 'AVC1'
40 extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see42 - H264 video elementary stream without start codes.
41 :ref:`mpeg-control-id`.43 * .. _V4L2-PIX-FMT-H264-MVC:
42 44
43 - .. _V4L2-PIX-FMT-H264:45 - ``V4L2_PIX_FMT_H264_MVC``
44 46 - 'M264'
45 - ``V4L2_PIX_FMT_H264``47 - H264 MVC video elementary stream.
46 48 * .. _V4L2-PIX-FMT-H263:
47 - 'H264'49
48 50 - ``V4L2_PIX_FMT_H263``
49 - H264 video elementary stream with start codes.51 - 'H263'
50 52 - H263 video elementary stream.
51 - .. _V4L2-PIX-FMT-H264-NO-SC:53 * .. _V4L2-PIX-FMT-MPEG1:
52 54
53 - ``V4L2_PIX_FMT_H264_NO_SC``55 - ``V4L2_PIX_FMT_MPEG1``
54 56 - 'MPG1'
55 - 'AVC1'57 - MPEG1 video elementary stream.
56 58 * .. _V4L2-PIX-FMT-MPEG2:
57 - H264 video elementary stream without start codes.59
58 60 - ``V4L2_PIX_FMT_MPEG2``
59 - .. _V4L2-PIX-FMT-H264-MVC:61 - 'MPG2'
60 62 - MPEG2 video elementary stream.
61 - ``V4L2_PIX_FMT_H264_MVC``63 * .. _V4L2-PIX-FMT-MPEG4:
62 64
63 - 'M264'65 - ``V4L2_PIX_FMT_MPEG4``
64 66 - 'MPG4'
65 - H264 MVC video elementary stream.67 - MPEG4 video elementary stream.
66 68 * .. _V4L2-PIX-FMT-XVID:
67 - .. _V4L2-PIX-FMT-H263:69
68 70 - ``V4L2_PIX_FMT_XVID``
69 - ``V4L2_PIX_FMT_H263``71 - 'XVID'
70 72 - Xvid video elementary stream.
71 - 'H263'73 * .. _V4L2-PIX-FMT-VC1-ANNEX-G:
72 74
73 - H263 video elementary stream.75 - ``V4L2_PIX_FMT_VC1_ANNEX_G``
74 76 - 'VC1G'
75 - .. _V4L2-PIX-FMT-MPEG1:77 - VC1, SMPTE 421M Annex G compliant stream.
76 78 * .. _V4L2-PIX-FMT-VC1-ANNEX-L:
77 - ``V4L2_PIX_FMT_MPEG1``79
78 80 - ``V4L2_PIX_FMT_VC1_ANNEX_L``
79 - 'MPG1'81 - 'VC1L'
80 82 - VC1, SMPTE 421M Annex L compliant stream.
81 - MPEG1 video elementary stream.83 * .. _V4L2-PIX-FMT-VP8:
82 84
83 - .. _V4L2-PIX-FMT-MPEG2:85 - ``V4L2_PIX_FMT_VP8``
84 86 - 'VP80'
85 - ``V4L2_PIX_FMT_MPEG2``87 - VP8 video elementary stream.
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.
Documentation/media/uapi/v4l/pixfmt-grey.rst+20−53
@@ -6,8 +6,6 @@ · 5 unmodified lines
6V4L2_PIX_FMT_GREY ('GREY')6V4L2_PIX_FMT_GREY ('GREY')
7**************************7**************************
8 8
9*man V4L2_PIX_FMT_GREY(2)*
10
11Grey-scale image9Grey-scale image
12 10
13 11
@@ -20,58 +18,27 @@ which simply contains no Cb or Cr data. · 6 unmodified lines
20**Byte Order.**18**Byte Order.**
21Each cell is one byte.19Each cell is one byte.
22 20
23
24
25.. flat-table::21.. flat-table::
26 :header-rows: 022 :header-rows: 0
27 :stub-columns: 023 :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`
76 24
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
17 :header-rows: 217 :header-rows: 2
18 :stub-columns: 018 :stub-columns: 0
19 19
20 20 * - Identifier
21 - .. row 121 - Code
22 22 -
23 - Identifier23 - :cspan:`7` Byte 0
24 24 * -
25 - Code25 -
26 26 - Bit
27 -27 - 7
28 - :cspan:`7` Byte 028 - 6
29 29 - 5
30 - .. row 230 - 4
31 31 - 3
32 -32 - 2
33 -33 - 1
34 - Bit34 - 0
35 35 * .. _V4L2-PIX-FMT-PAL8:
36 - 736
37 37 - ``V4L2_PIX_FMT_PAL8``
38 - 638 - 'PAL8'
39 39 -
40 - 540 - i\ :sub:`7`
41 41 - i\ :sub:`6`
42 - 442 - i\ :sub:`5`
43 43 - i\ :sub:`4`
44 - 344 - i\ :sub:`3`
45 45 - i\ :sub:`2`
46 - 246 - i\ :sub:`1`
47 47 - i\ :sub:`0`
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`
Documentation/media/uapi/v4l/pixfmt-m420.rst+80−173
@@ -6,8 +6,6 @@ · 5 unmodified lines
6V4L2_PIX_FMT_M420 ('M420')6V4L2_PIX_FMT_M420 ('M420')
7**************************7**************************
8 8
9*man V4L2_PIX_FMT_M420(2)*
10
11Format with ½ horizontal and vertical chroma resolution, also known as9Format with ½ horizontal and vertical chroma resolution, also known as
12YUV 4:2:0. Hybrid plane line-interleaved layout.10YUV 4:2:0. Hybrid plane line-interleaved layout.
13 11
@@ -32,84 +30,40 @@ the CbCr lines. · 18 unmodified lines
32Each cell is one byte.30Each cell is one byte.
33 31
34 32
35
36.. flat-table::33.. flat-table::
37 :header-rows: 034 :header-rows: 0
38 :stub-columns: 035 :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