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 ...
Unified · Split
| @@ -342,6 +342,8 @@ latex_documents = [ · 341 unmodified lines | ||
| 342 | 342 | 'The kernel development community', 'manual'), |
| 343 | 343 | ('gpu/index', 'gpu.tex', 'Linux GPU Driver Developer\'s Guide', |
| 344 | 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 | 349 | # The name of an image file (relative to this directory) to place at the top of |
| @@ -0,0 +1,65 @@ | ||
| 1 | +Atmel Image Sensor Controller (ISC) | |
| 2 | +---------------------------------------------- | |
| 3 | + | |
| 4 | +Required properties for ISC: | |
| 5 | +- compatible | |
| 6 | + Must be "atmel,sama5d2-isc". | |
| 7 | +- reg | |
| 8 | + Physical base address and length of the registers set for the device. | |
| 9 | +- interrupts | |
| 10 | + Should contain IRQ line for the ISC. | |
| 11 | +- clocks | |
| 12 | + List of clock specifiers, corresponding to entries in | |
| 13 | + the clock-names property; | |
| 14 | + Please refer to clock-bindings.txt. | |
| 15 | +- clock-names | |
| 16 | + Required elements: "hclock", "iscck", "gck". | |
| 17 | +- #clock-cells | |
| 18 | + Should be 0. | |
| 19 | +- clock-output-names | |
| 20 | + Should be "isc-mck". | |
| 21 | +- pinctrl-names, pinctrl-0 | |
| 22 | + Please refer to pinctrl-bindings.txt. | |
| 23 | + | |
| 24 | +ISC supports a single port node with parallel bus. It should contain one | |
| 25 | +'port' child node with child 'endpoint' node. Please refer to the bindings | |
| 26 | +defined in Documentation/devicetree/bindings/media/video-interfaces.txt. | |
| 27 | + | |
| 28 | +Example: | |
| 29 | +isc: isc@f0008000 { | |
| 30 | + compatible = "atmel,sama5d2-isc"; | |
| 31 | + reg = <0xf0008000 0x4000>; | |
| 32 | + interrupts = <46 IRQ_TYPE_LEVEL_HIGH 5>; | |
| 33 | + clocks = <&isc_clk>, <&iscck>, <&isc_gclk>; | |
| 34 | + clock-names = "hclock", "iscck", "gck"; | |
| 35 | + #clock-cells = <0>; | |
| 36 | + clock-output-names = "isc-mck"; | |
| 37 | + pinctrl-names = "default"; | |
| 38 | + pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>; | |
| 39 | + | |
| 40 | + port { | |
| 41 | + isc_0: endpoint { | |
| 42 | + remote-endpoint = <&ov7740_0>; | |
| 43 | + hsync-active = <1>; | |
| 44 | + vsync-active = <0>; | |
| 45 | + pclk-sample = <1>; | |
| 46 | + }; | |
| 47 | + }; | |
| 48 | +}; | |
| 49 | + | |
| 50 | +i2c1: i2c@fc028000 { | |
| 51 | + ov7740: camera@21 { | |
| 52 | + compatible = "ovti,ov7740"; | |
| 53 | + reg = <0x21>; | |
| 54 | + clocks = <&isc>; | |
| 55 | + clock-names = "xvclk"; | |
| 56 | + assigned-clocks = <&isc>; | |
| 57 | + assigned-clock-rates = <24000000>; | |
| 58 | + | |
| 59 | + port { | |
| 60 | + ov7740_0: endpoint { | |
| 61 | + remote-endpoint = <&isc_0>; | |
| 62 | + }; | |
| 63 | + }; | |
| 64 | + }; | |
| 65 | +}; | |
| @@ -16,9 +16,10 @@ Required properties: · 15 unmodified lines | ||
| 16 | 16 | - clocks : list of clock specifiers, corresponding to entries in |
| 17 | 17 | clock-names property; |
| 18 | 18 | - clock-names : must contain "ppmuispx", "ppmuispx", "lite0", "lite1" |
| 19 | − "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "uart", | |
| 20 | − "ispdiv0", "ispdiv1", "mcuispdiv0", "mcuispdiv1", "aclk200", | |
| 21 | − "div_aclk200", "aclk400mcuisp", "div_aclk400mcuisp" entries, | |
| 19 | + "mpll", "sysreg", "isp", "drc", "fd", "mcuisp", "gicisp", | |
| 20 | + "pwm_isp", "mcuctl_isp", "uart", "ispdiv0", "ispdiv1", | |
| 21 | + "mcuispdiv0", "mcuispdiv1", "aclk200", "div_aclk200", | |
| 22 | + "aclk400mcuisp", "div_aclk400mcuisp" entries, | |
| 22 | 23 | matching entries in the clocks property. |
| 23 | 24 | pmu subnode |
| 24 | 25 | ----------- |
| @@ -0,0 +1,19 @@ | ||
| 1 | +* Analog Devices AD5820 autofocus coil | |
| 2 | + | |
| 3 | +Required Properties: | |
| 4 | + | |
| 5 | + - compatible: Must contain "adi,ad5820" | |
| 6 | + | |
| 7 | + - reg: I2C slave address | |
| 8 | + | |
| 9 | + - VANA-supply: supply of voltage for VANA pin | |
| 10 | + | |
| 11 | +Example: | |
| 12 | + | |
| 13 | + ad5820: coil@c { | |
| 14 | + compatible = "adi,ad5820"; | |
| 15 | + reg = <0x0c>; | |
| 16 | + | |
| 17 | + VANA-supply = <&vaux4>; | |
| 18 | + }; | |
| 19 | + | |
| @@ -15,6 +15,11 @@ Required Properties : · 14 unmodified lines | ||
| 15 | 15 | "adi,adv7282" |
| 16 | 16 | "adi,adv7282-m" |
| 17 | 17 | |
| 18 | +Optional Properties : | |
| 19 | +- powerdown-gpios: reference to the GPIO connected to the powerdown pin, | |
| 20 | + if any. | |
| 21 | + | |
| 22 | + | |
| 18 | 23 | Example: |
| 19 | 24 | |
| 20 | 25 | i2c0@1c22000 { |
| @@ -7,12 +7,14 @@ conversion of AXI transactions in order to reduce the memory bandwidth. · 6 unmodified lines | ||
| 7 | 7 | |
| 8 | 8 | There are three types of FCP: FCP for Codec (FCPC), FCP for VSP (FCPV) and FCP |
| 9 | 9 | for FDP (FCPF). Their configuration and behaviour depend on the module they |
| 10 | −are paired with. These DT bindings currently support the FCPV only. | |
| 10 | +are paired with. These DT bindings currently support the FCPV and FCPF. | |
| 11 | 11 | |
| 12 | 12 | - compatible: Must be one or more of the following |
| 13 | 13 | |
| 14 | 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 | 16 | - "renesas,fcpv" for generic compatible 'FCP for VSP' |
| 17 | + - "renesas,fcpf" for generic compatible 'FCP for FDP' | |
| 16 | 18 | |
| 17 | 19 | When compatible with the generic version, nodes must list the |
| 18 | 20 | 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 | 23 | - reg: the register base and size for the device registers |
| 22 | 24 | - clocks: Reference to the functional clock |
| 23 | 25 | |
| 26 | +Optional properties: | |
| 27 | + - power-domains : power-domain property defined with a power domain specifier | |
| 28 | + to respective power domain. | |
| 29 | + | |
| 24 | 30 | |
| 25 | 31 | Device node example |
| 26 | 32 | ------------------- |
| @@ -29,4 +35,5 @@ Device node example · 2 unmodified lines | ||
| 29 | 35 | compatible = "renesas,r8a7795-fcpv", "renesas,fcpv"; |
| 30 | 36 | reg = <0 0xfea2f000 0 0x200>; |
| 31 | 37 | clocks = <&cpg CPG_MOD 602>; |
| 38 | + power-domains = <&sysc R8A7795_PD_A3VP>; | |
| 32 | 39 | }; |
| @@ -0,0 +1,24 @@ | ||
| 1 | +st-hva: multi-format video encoder for STMicroelectronics SoC. | |
| 2 | + | |
| 3 | +Required properties: | |
| 4 | +- compatible: should be "st,st-hva". | |
| 5 | +- reg: HVA physical address location and length, esram address location and | |
| 6 | + length. | |
| 7 | +- reg-names: names of the registers listed in registers property in the same | |
| 8 | + order. | |
| 9 | +- interrupts: HVA interrupt number. | |
| 10 | +- clocks: from common clock binding: handle hardware IP needed clocks, the | |
| 11 | + number of clocks may depend on the SoC type. | |
| 12 | + See ../clock/clock-bindings.txt for details. | |
| 13 | +- clock-names: names of the clocks listed in clocks property in the same order. | |
| 14 | + | |
| 15 | +Example: | |
| 16 | + hva@8c85000{ | |
| 17 | + compatible = "st,st-hva"; | |
| 18 | + reg = <0x8c85000 0x400>, <0x6000000 0x40000>; | |
| 19 | + reg-names = "hva_registers", "hva_esram"; | |
| 20 | + interrupts = <GIC_SPI 58 IRQ_TYPE_NONE>, | |
| 21 | + <GIC_SPI 59 IRQ_TYPE_NONE>; | |
| 22 | + clock-names = "clk_hva"; | |
| 23 | + clocks = <&clk_s_c0_flexgen CLK_HVA>; | |
| 24 | + }; | |
| @@ -0,0 +1,25 @@ | ||
| 1 | +STMicroelectronics STIH4xx HDMI CEC driver | |
| 2 | + | |
| 3 | +Required properties: | |
| 4 | + - compatible : value should be "st,stih-cec" | |
| 5 | + - reg : Physical base address of the IP registers and length of memory | |
| 6 | + mapped region. | |
| 7 | + - clocks : from common clock binding: handle to HDMI CEC clock | |
| 8 | + - interrupts : HDMI CEC interrupt number to the CPU. | |
| 9 | + - pinctrl-names: Contains only one value - "default" | |
| 10 | + - pinctrl-0: Specifies the pin control groups used for CEC hardware. | |
| 11 | + - resets: Reference to a reset controller | |
| 12 | + | |
| 13 | +Example for STIH407: | |
| 14 | + | |
| 15 | +sti-cec@094a087c { | |
| 16 | + compatible = "st,stih-cec"; | |
| 17 | + reg = <0x94a087c 0x64>; | |
| 18 | + clocks = <&clk_sysin>; | |
| 19 | + clock-names = "cec-clk"; | |
| 20 | + interrupts = <GIC_SPI 140 IRQ_TYPE_NONE>; | |
| 21 | + interrupt-names = "cec-irq"; | |
| 22 | + pinctrl-names = "default"; | |
| 23 | + pinctrl-0 = <&pinctrl_cec0_default>; | |
| 24 | + resets = <&softreset STIH407_LPM_SOFTRESET>; | |
| 25 | +}; | |
| @@ -2,7 +2,7 @@ · 1 unmodified line | ||
| 2 | 2 | ignore define _DVBAUDIO_H_ |
| 3 | 3 | |
| 4 | 4 | # Typedef pointing to structs |
| 5 | −replace typedef audio_karaoke_t audio-karaoke | |
| 5 | +replace typedef audio_karaoke_t :c:type:`audio_karaoke` | |
| 6 | 6 | |
| 7 | 7 | # Undocumented audio caps, as this is a deprecated API anyway |
| 8 | 8 | ignore define AUDIO_CAP_DTS |
| @@ -16,5 +16,5 @@ ignore define AUDIO_CAP_SDDS · 7 unmodified lines | ||
| 16 | 16 | ignore define AUDIO_CAP_AC3 |
| 17 | 17 | |
| 18 | 18 | # some typedefs should point to struct/enums |
| 19 | −replace typedef audio_mixer_t audio-mixer | |
| 20 | −replace typedef audio_status_t audio-status | |
| 19 | +replace typedef audio_mixer_t :c:type:`audio_mixer` | |
| 20 | +replace typedef audio_status_t :c:type:`audio_status` | |
| @@ -2,23 +2,23 @@ · 1 unmodified line | ||
| 2 | 2 | ignore define _DVBCA_H_ |
| 3 | 3 | |
| 4 | 4 | # struct ca_slot_info defines |
| 5 | −replace define CA_CI ca-slot-info | |
| 6 | −replace define CA_CI_LINK ca-slot-info | |
| 7 | −replace define CA_CI_PHYS ca-slot-info | |
| 8 | −replace define CA_DESCR ca-slot-info | |
| 9 | −replace define CA_SC ca-slot-info | |
| 10 | −replace define CA_CI_MODULE_PRESENT ca-slot-info | |
| 11 | −replace define CA_CI_MODULE_READY ca-slot-info | |
| 5 | +replace define CA_CI :c:type:`ca_slot_info` | |
| 6 | +replace define CA_CI_LINK :c:type:`ca_slot_info` | |
| 7 | +replace define CA_CI_PHYS :c:type:`ca_slot_info` | |
| 8 | +replace define CA_DESCR :c:type:`ca_slot_info` | |
| 9 | +replace define CA_SC :c:type:`ca_slot_info` | |
| 10 | +replace define CA_CI_MODULE_PRESENT :c:type:`ca_slot_info` | |
| 11 | +replace define CA_CI_MODULE_READY :c:type:`ca_slot_info` | |
| 12 | 12 | |
| 13 | 13 | # struct ca_descr_info defines |
| 14 | −replace define CA_ECD ca-descr-info | |
| 15 | −replace define CA_NDS ca-descr-info | |
| 16 | −replace define CA_DSS ca-descr-info | |
| 14 | +replace define CA_ECD :c:type:`ca_descr_info` | |
| 15 | +replace define CA_NDS :c:type:`ca_descr_info` | |
| 16 | +replace define CA_DSS :c:type:`ca_descr_info` | |
| 17 | 17 | |
| 18 | 18 | # some typedefs should point to struct/enums |
| 19 | −replace typedef ca_pid_t ca-pid | |
| 20 | −replace typedef ca_slot_info_t ca-slot-info | |
| 21 | −replace typedef ca_descr_info_t ca-descr-info | |
| 22 | −replace typedef ca_caps_t ca-caps | |
| 23 | −replace typedef ca_msg_t ca-msg | |
| 24 | −replace typedef ca_descr_t ca-descr | |
| 19 | +replace typedef ca_pid_t :c:type:`ca_pid` | |
| 20 | +replace typedef ca_slot_info_t :c:type:`ca_slot_info` | |
| 21 | +replace typedef ca_descr_info_t :c:type:`ca_descr_info` | |
| 22 | +replace typedef ca_caps_t :c:type:`ca_caps` | |
| 23 | +replace typedef ca_msg_t :c:type:`ca_msg` | |
| 24 | +replace typedef ca_descr_t :c:type:`ca_descr` | |
| @@ -1,12 +1,6 @@ | ||
| 1 | 1 | # Ignore header name |
| 2 | 2 | ignore define _CEC_UAPI_H |
| 3 | 3 | |
| 4 | −# Rename some symbols, to avoid namespace conflicts | |
| 5 | −replace struct cec_event_state_change cec-event-state-change_s | |
| 6 | −replace struct cec_event_lost_msgs cec-event-lost-msgs_s | |
| 7 | −replace enum cec_mode_initiator cec-mode-initiator_e | |
| 8 | −replace enum cec_mode_follower cec-mode-follower_e | |
| 9 | − | |
| 10 | 4 | # define macros to ignore |
| 11 | 5 | |
| 12 | 6 | ignore define CEC_MAX_MSG_SIZE |
| @@ -21,10 +21,14 @@ nitpick_ignore = [ · 20 unmodified lines | ||
| 21 | 21 | ("c:func", "clock_gettime"), |
| 22 | 22 | ("c:func", "close"), |
| 23 | 23 | ("c:func", "container_of"), |
| 24 | + ("c:func", "copy_from_user"), | |
| 25 | + ("c:func", "copy_to_user"), | |
| 24 | 26 | ("c:func", "determine_valid_ioctls"), |
| 25 | 27 | ("c:func", "ERR_PTR"), |
| 28 | + ("c:func", "i2c_new_device"), | |
| 26 | 29 | ("c:func", "ioctl"), |
| 27 | 30 | ("c:func", "IS_ERR"), |
| 31 | + ("c:func", "KERNEL_VERSION"), | |
| 28 | 32 | ("c:func", "mmap"), |
| 29 | 33 | ("c:func", "open"), |
| 30 | 34 | ("c:func", "pci_name"), |
| @@ -36,58 +40,70 @@ nitpick_ignore = [ · 5 unmodified lines | ||
| 36 | 40 | ("c:func", "struct fd_set"), |
| 37 | 41 | ("c:func", "struct pollfd"), |
| 38 | 42 | ("c:func", "usb_make_path"), |
| 43 | + ("c:func", "wait_finish"), | |
| 44 | + ("c:func", "wait_prepare"), | |
| 39 | 45 | ("c:func", "write"), |
| 46 | + | |
| 40 | 47 | ("c:type", "atomic_t"), |
| 41 | 48 | ("c:type", "bool"), |
| 49 | + ("c:type", "boolean"), | |
| 42 | 50 | ("c:type", "buf_queue"), |
| 43 | 51 | ("c:type", "device"), |
| 44 | 52 | ("c:type", "device_driver"), |
| 45 | 53 | ("c:type", "device_node"), |
| 46 | 54 | ("c:type", "enum"), |
| 55 | + ("c:type", "fd"), | |
| 56 | + ("c:type", "fd_set"), | |
| 47 | 57 | ("c:type", "file"), |
| 48 | 58 | ("c:type", "i2c_adapter"), |
| 49 | 59 | ("c:type", "i2c_board_info"), |
| 50 | 60 | ("c:type", "i2c_client"), |
| 61 | + ("c:type", "int16_t"), | |
| 51 | 62 | ("c:type", "ktime_t"), |
| 52 | 63 | ("c:type", "led_classdev_flash"), |
| 53 | 64 | ("c:type", "list_head"), |
| 54 | 65 | ("c:type", "lock_class_key"), |
| 55 | 66 | ("c:type", "module"), |
| 56 | 67 | ("c:type", "mutex"), |
| 68 | + ("c:type", "NULL"), | |
| 69 | + ("c:type", "off_t"), | |
| 57 | 70 | ("c:type", "pci_dev"), |
| 58 | 71 | ("c:type", "pdvbdev"), |
| 72 | + ("c:type", "poll_table"), | |
| 73 | + ("c:type", "platform_device"), | |
| 74 | + ("c:type", "pollfd"), | |
| 59 | 75 | ("c:type", "poll_table_struct"), |
| 60 | 76 | ("c:type", "s32"), |
| 61 | 77 | ("c:type", "s64"), |
| 62 | 78 | ("c:type", "sd"), |
| 79 | + ("c:type", "size_t"), | |
| 63 | 80 | ("c:type", "spi_board_info"), |
| 64 | 81 | ("c:type", "spi_device"), |
| 65 | 82 | ("c:type", "spi_master"), |
| 66 | − ("c:type", "struct fb_fix_screeninfo"), | |
| 67 | − ("c:type", "struct pollfd"), | |
| 68 | − ("c:type", "struct timeval"), | |
| 69 | − ("c:type", "struct video_capability"), | |
| 83 | + ("c:type", "ssize_t"), | |
| 84 | + ("c:type", "fb_fix_screeninfo"), | |
| 85 | + ("c:type", "pollfd"), | |
| 86 | + ("c:type", "timeval"), | |
| 87 | + ("c:type", "video_capability"), | |
| 88 | + ("c:type", "timeval"), | |
| 89 | + ("c:type", "__u16"), | |
| 70 | 90 | ("c:type", "u16"), |
| 91 | + ("c:type", "__u32"), | |
| 71 | 92 | ("c:type", "u32"), |
| 93 | + ("c:type", "__u64"), | |
| 72 | 94 | ("c:type", "u64"), |
| 73 | 95 | ("c:type", "u8"), |
| 96 | + ("c:type", "uint16_t"), | |
| 97 | + ("c:type", "uint32_t"), | |
| 74 | 98 | ("c:type", "union"), |
| 99 | + ("c:type", "__user"), | |
| 75 | 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"), | |
| 78 | − ("cpp:type", "fd"), | |
| 79 | − ("cpp:type", "fd_set"), | |
| 80 | − ("cpp:type", "int16_t"), | |
| 81 | − ("cpp:type", "NULL"), | |
| 82 | − ("cpp:type", "off_t"), | |
| 83 | − ("cpp:type", "pollfd"), | |
| 84 | − ("cpp:type", "size_t"), | |
| 85 | − ("cpp:type", "ssize_t"), | |
| 86 | − ("cpp:type", "timeval"), | |
| 87 | − ("cpp:type", "__u16"), | |
| 88 | − ("cpp:type", "__u32"), | |
| 89 | − ("cpp:type", "__u64"), | |
| 90 | − ("cpp:type", "uint16_t"), | |
| 91 | − ("cpp:type", "uint32_t"), | |
| 92 | − ("cpp:type", "video_system_t"), | |
| 108 | + ("c:type", "v4l2_m2m_dev"), | |
| 93 | 109 | ] |
| @@ -4,29 +4,29 @@ ignore define _UAPI_DVBDMX_H_ · 3 unmodified lines | ||
| 4 | 4 | # Ignore limit constants |
| 5 | 5 | ignore define DMX_FILTER_SIZE |
| 6 | 6 | |
| 7 | −# dmx-pes-type-t enum symbols | |
| 8 | −replace enum dmx_ts_pes dmx-pes-type-t | |
| 9 | −replace symbol DMX_PES_AUDIO0 dmx-pes-type-t | |
| 10 | −replace symbol DMX_PES_VIDEO0 dmx-pes-type-t | |
| 11 | −replace symbol DMX_PES_TELETEXT0 dmx-pes-type-t | |
| 12 | −replace symbol DMX_PES_SUBTITLE0 dmx-pes-type-t | |
| 13 | −replace symbol DMX_PES_PCR0 dmx-pes-type-t | |
| 14 | −replace symbol DMX_PES_AUDIO1 dmx-pes-type-t | |
| 15 | −replace symbol DMX_PES_VIDEO1 dmx-pes-type-t | |
| 16 | −replace symbol DMX_PES_TELETEXT1 dmx-pes-type-t | |
| 17 | −replace symbol DMX_PES_SUBTITLE1 dmx-pes-type-t | |
| 18 | −replace symbol DMX_PES_PCR1 dmx-pes-type-t | |
| 19 | −replace symbol DMX_PES_AUDIO2 dmx-pes-type-t | |
| 20 | −replace symbol DMX_PES_VIDEO2 dmx-pes-type-t | |
| 21 | −replace symbol DMX_PES_TELETEXT2 dmx-pes-type-t | |
| 22 | −replace symbol DMX_PES_SUBTITLE2 dmx-pes-type-t | |
| 23 | −replace symbol DMX_PES_PCR2 dmx-pes-type-t | |
| 24 | −replace symbol DMX_PES_AUDIO3 dmx-pes-type-t | |
| 25 | −replace symbol DMX_PES_VIDEO3 dmx-pes-type-t | |
| 26 | −replace symbol DMX_PES_TELETEXT3 dmx-pes-type-t | |
| 27 | −replace symbol DMX_PES_SUBTITLE3 dmx-pes-type-t | |
| 28 | −replace symbol DMX_PES_PCR3 dmx-pes-type-t | |
| 29 | −replace symbol DMX_PES_OTHER dmx-pes-type-t | |
| 7 | +# dmx_pes_type_t enum symbols | |
| 8 | +replace enum dmx_ts_pes :c:type:`dmx_pes_type` | |
| 9 | +replace symbol DMX_PES_AUDIO0 :c:type:`dmx_pes_type` | |
| 10 | +replace symbol DMX_PES_VIDEO0 :c:type:`dmx_pes_type` | |
| 11 | +replace symbol DMX_PES_TELETEXT0 :c:type:`dmx_pes_type` | |
| 12 | +replace symbol DMX_PES_SUBTITLE0 :c:type:`dmx_pes_type` | |
| 13 | +replace symbol DMX_PES_PCR0 :c:type:`dmx_pes_type` | |
| 14 | +replace symbol DMX_PES_AUDIO1 :c:type:`dmx_pes_type` | |
| 15 | +replace symbol DMX_PES_VIDEO1 :c:type:`dmx_pes_type` | |
| 16 | +replace symbol DMX_PES_TELETEXT1 :c:type:`dmx_pes_type` | |
| 17 | +replace symbol DMX_PES_SUBTITLE1 :c:type:`dmx_pes_type` | |
| 18 | +replace symbol DMX_PES_PCR1 :c:type:`dmx_pes_type` | |
| 19 | +replace symbol DMX_PES_AUDIO2 :c:type:`dmx_pes_type` | |
| 20 | +replace symbol DMX_PES_VIDEO2 :c:type:`dmx_pes_type` | |
| 21 | +replace symbol DMX_PES_TELETEXT2 :c:type:`dmx_pes_type` | |
| 22 | +replace symbol DMX_PES_SUBTITLE2 :c:type:`dmx_pes_type` | |
| 23 | +replace symbol DMX_PES_PCR2 :c:type:`dmx_pes_type` | |
| 24 | +replace symbol DMX_PES_AUDIO3 :c:type:`dmx_pes_type` | |
| 25 | +replace symbol DMX_PES_VIDEO3 :c:type:`dmx_pes_type` | |
| 26 | +replace symbol DMX_PES_TELETEXT3 :c:type:`dmx_pes_type` | |
| 27 | +replace symbol DMX_PES_SUBTITLE3 :c:type:`dmx_pes_type` | |
| 28 | +replace symbol DMX_PES_PCR3 :c:type:`dmx_pes_type` | |
| 29 | +replace symbol DMX_PES_OTHER :c:type:`dmx_pes_type` | |
| 30 | 30 | |
| 31 | 31 | # Ignore obsolete symbols |
| 32 | 32 | ignore define DMX_PES_AUDIO |
| @@ -36,28 +36,31 @@ ignore define DMX_PES_SUBTITLE · 3 unmodified lines | ||
| 36 | 36 | ignore define DMX_PES_PCR |
| 37 | 37 | |
| 38 | 38 | # dmx_input_t symbols |
| 39 | −replace enum dmx_input dmx-input-t | |
| 40 | −replace symbol DMX_IN_FRONTEND dmx-input-t | |
| 41 | −replace symbol DMX_IN_DVR dmx-input-t | |
| 39 | +replace enum dmx_input :c:type:`dmx_input` | |
| 40 | +replace symbol DMX_IN_FRONTEND :c:type:`dmx_input` | |
| 41 | +replace symbol DMX_IN_DVR :c:type:`dmx_input` | |
| 42 | 42 | |
| 43 | 43 | # dmx_source_t symbols |
| 44 | −replace enum dmx_source dmx-source-t | |
| 45 | −replace symbol DMX_SOURCE_FRONT0 dmx-source-t | |
| 46 | −replace symbol DMX_SOURCE_FRONT1 dmx-source-t | |
| 47 | −replace symbol DMX_SOURCE_FRONT2 dmx-source-t | |
| 48 | −replace symbol DMX_SOURCE_FRONT3 dmx-source-t | |
| 49 | −replace symbol DMX_SOURCE_DVR0 dmx-source-t | |
| 50 | −replace symbol DMX_SOURCE_DVR1 dmx-source-t | |
| 51 | −replace symbol DMX_SOURCE_DVR2 dmx-source-t | |
| 52 | −replace symbol DMX_SOURCE_DVR3 dmx-source-t | |
| 44 | +replace enum dmx_source :c:type:`dmx_source` | |
| 45 | +replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source` | |
| 46 | +replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source` | |
| 47 | +replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source` | |
| 48 | +replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source` | |
| 49 | +replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source` | |
| 50 | +replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source` | |
| 51 | +replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source` | |
| 52 | +replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source` | |
| 53 | 53 | |
| 54 | 54 | |
| 55 | 55 | # Flags for struct dmx_sct_filter_params |
| 56 | −replace define DMX_CHECK_CRC dmx-sct-filter-params | |
| 57 | −replace define DMX_ONESHOT dmx-sct-filter-params | |
| 58 | −replace define DMX_IMMEDIATE_START dmx-sct-filter-params | |
| 59 | −replace define DMX_KERNEL_CLIENT dmx-sct-filter-params | |
| 56 | +replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params` | |
| 57 | +replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params` | |
| 58 | +replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params` | |
| 59 | +replace define DMX_KERNEL_CLIENT :c:type:`dmx_sct_filter_params` | |
| 60 | 60 | |
| 61 | 61 | # some typedefs should point to struct/enums |
| 62 | −replace typedef dmx_caps_t dmx-caps | |
| 63 | −replace typedef dmx_filter_t dmx-filter | |
| 62 | +replace typedef dmx_caps_t :c:type:`dmx_caps` | |
| 63 | +replace typedef dmx_filter_t :c:type:`dmx_filter` | |
| 64 | +replace typedef dmx_pes_type_t :c:type:`dmx_pes_type` | |
| 65 | +replace typedef dmx_input_t :c:type:`dmx_input` | |
| 66 | +replace typedef dmx_source_t :c:type:`dmx_source` | |
| @@ -26,22 +26,22 @@ ignore define MAX_DTV_STATS · 25 unmodified lines | ||
| 26 | 26 | ignore define DTV_IOCTL_MAX_MSGS |
| 27 | 27 | |
| 28 | 28 | # Stats enum is documented altogether |
| 29 | −replace enum fecap_scale_params frontend-stat-properties | |
| 29 | +replace enum fecap_scale_params :ref:`frontend-stat-properties` | |
| 30 | 30 | replace symbol FE_SCALE_COUNTER frontend-stat-properties |
| 31 | 31 | replace symbol FE_SCALE_DECIBEL frontend-stat-properties |
| 32 | 32 | replace symbol FE_SCALE_NOT_AVAILABLE frontend-stat-properties |
| 33 | 33 | replace symbol FE_SCALE_RELATIVE frontend-stat-properties |
| 34 | 34 | |
| 35 | 35 | # the same reference is used for both get and set ioctls |
| 36 | −replace ioctl FE_SET_PROPERTY FE_GET_PROPERTY | |
| 36 | +replace ioctl FE_SET_PROPERTY :c:type:`FE_GET_PROPERTY` | |
| 37 | 37 | |
| 38 | 38 | # Ignore struct used only internally at Kernel |
| 39 | 39 | ignore struct dtv_cmds_h |
| 40 | 40 | |
| 41 | 41 | # Typedefs that use the enum reference |
| 42 | −replace typedef fe_sec_voltage_t fe-sec-voltage | |
| 42 | +replace typedef fe_sec_voltage_t :c:type:`fe_sec_voltage` | |
| 43 | 43 | |
| 44 | 44 | # Replaces for flag constants |
| 45 | −replace define FE_TUNE_MODE_ONESHOT fe_set_frontend_tune_mode | |
| 45 | +replace define FE_TUNE_MODE_ONESHOT :c:func:`FE_SET_FRONTEND_TUNE_MODE` | |
| 46 | 46 | replace define LNA_AUTO dtv-lna |
| 47 | 47 | replace define NO_STREAM_ID_FILTER dtv-stream-id |
| @@ -1,6 +1,11 @@ | ||
| 1 | 1 | Linux 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 | + | |
| 4 | 9 | Contents: |
| 5 | 10 | |
| 6 | 11 | .. toctree:: |
| @@ -30,7 +30,7 @@ divided into five parts. · 29 unmodified lines | ||
| 30 | 30 | called as DVB API, in fact it covers several different video standards |
| 31 | 31 | including DVB-T/T2, DVB-S/S2, DVB-C, ATSC, ISDB-T, ISDB-S, DTMB, etc. The |
| 32 | 32 | complete list of supported standards can be found at |
| 33 | − :ref:`fe-delivery-system-t`. | |
| 33 | + :c:type:`fe_delivery_system`. | |
| 34 | 34 | |
| 35 | 35 | 3. The :ref:`third part <remote_controllers>` covers the Remote Controller API. |
| 36 | 36 | |
| @@ -36,39 +36,50 @@ CEC Adapter · 35 unmodified lines | ||
| 36 | 36 | The struct cec_adapter represents the CEC adapter hardware. It is created by |
| 37 | 37 | calling cec_allocate_adapter() and deleted by calling cec_delete_adapter(): |
| 38 | 38 | |
| 39 | −struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops, | |
| 39 | +.. c:function:: | |
| 40 | + struct cec_adapter *cec_allocate_adapter(const struct cec_adap_ops *ops, | |
| 40 | 41 | void *priv, const char *name, u32 caps, u8 available_las, |
| 41 | 42 | struct device *parent); |
| 42 | −void cec_delete_adapter(struct cec_adapter *adap); | |
| 43 | + | |
| 44 | +.. c:function:: | |
| 45 | + void cec_delete_adapter(struct cec_adapter *adap); | |
| 43 | 46 | |
| 44 | 47 | To create an adapter you need to pass the following information: |
| 45 | 48 | |
| 46 | −ops: adapter operations which are called by the CEC framework and that you | |
| 47 | −have to implement. | |
| 49 | +ops: | |
| 50 | + adapter operations which are called by the CEC framework and that you | |
| 51 | + have to implement. | |
| 48 | 52 | |
| 49 | −priv: will be stored in adap->priv and can be used by the adapter ops. | |
| 53 | +priv: | |
| 54 | + will be stored in adap->priv and can be used by the adapter ops. | |
| 50 | 55 | |
| 51 | −name: the name of the CEC adapter. Note: this name will be copied. | |
| 56 | +name: | |
| 57 | + the name of the CEC adapter. Note: this name will be copied. | |
| 52 | 58 | |
| 53 | −caps: capabilities of the CEC adapter. These capabilities determine the | |
| 59 | +caps: | |
| 60 | + capabilities of the CEC adapter. These capabilities determine the | |
| 54 | 61 | capabilities of the hardware and which parts are to be handled |
| 55 | 62 | by userspace and which parts are handled by kernelspace. The |
| 56 | 63 | capabilities are returned by CEC_ADAP_G_CAPS. |
| 57 | 64 | |
| 58 | −available_las: the number of simultaneous logical addresses that this | |
| 65 | +available_las: | |
| 66 | + the number of simultaneous logical addresses that this | |
| 59 | 67 | adapter can handle. Must be 1 <= available_las <= CEC_MAX_LOG_ADDRS. |
| 60 | 68 | |
| 61 | −parent: the parent device. | |
| 69 | +parent: | |
| 70 | + the parent device. | |
| 62 | 71 | |
| 63 | 72 | |
| 64 | 73 | To register the /dev/cecX device node and the remote control device (if |
| 65 | 74 | CEC_CAP_RC is set) you call: |
| 66 | 75 | |
| 67 | −int cec_register_adapter(struct cec_adapter *adap); | |
| 76 | +.. c:function:: | |
| 77 | + int cec_register_adapter(struct cec_adapter \*adap); | |
| 68 | 78 | |
| 69 | 79 | To unregister the devices call: |
| 70 | 80 | |
| 71 | −void cec_unregister_adapter(struct cec_adapter *adap); | |
| 81 | +.. c:function:: | |
| 82 | + void cec_unregister_adapter(struct cec_adapter \*adap); | |
| 72 | 83 | |
| 73 | 84 | Note: if cec_register_adapter() fails, then call cec_delete_adapter() to |
| 74 | 85 | clean up. But if cec_register_adapter() succeeded, then only call |
| @@ -83,18 +94,23 @@ Implementing the Low-Level CEC Adapter · 8 unmodified lines | ||
| 83 | 94 | The following low-level adapter operations have to be implemented in |
| 84 | 95 | your driver: |
| 85 | 96 | |
| 86 | −struct cec_adap_ops { | |
| 87 | − /* Low-level callbacks */ | |
| 88 | − int (*adap_enable)(struct cec_adapter *adap, bool enable); | |
| 89 | − int (*adap_monitor_all_enable)(struct cec_adapter *adap, bool enable); | |
| 90 | − int (*adap_log_addr)(struct cec_adapter *adap, u8 logical_addr); | |
| 91 | − int (*adap_transmit)(struct cec_adapter *adap, u8 attempts, | |
| 92 | − u32 signal_free_time, struct cec_msg *msg); | |
| 93 | − void (*adap_log_status)(struct cec_adapter *adap); | |
| 97 | +.. c:type:: struct cec_adap_ops | |
| 98 | + | |
| 99 | +.. code-block:: none | |
| 100 | + | |
| 101 | + struct cec_adap_ops | |
| 102 | + { | |
| 103 | + /* Low-level callbacks */ | |
| 104 | + int (*adap_enable)(struct cec_adapter *adap, bool enable); | |
| 105 | + int (*adap_monitor_all_enable)(struct cec_adapter *adap, bool enable); | |
| 106 | + int (*adap_log_addr)(struct cec_adapter *adap, u8 logical_addr); | |
| 107 | + int (*adap_transmit)(struct cec_adapter *adap, u8 attempts, | |
| 108 | + u32 signal_free_time, struct cec_msg *msg); | |
| 109 | + void (\*adap_log_status)(struct cec_adapter *adap); | |
| 94 | 110 | |
| 95 | − /* High-level callbacks */ | |
| 96 | − ... | |
| 97 | −}; | |
| 111 | + /* High-level callbacks */ | |
| 112 | + ... | |
| 113 | + }; | |
| 98 | 114 | |
| 99 | 115 | The three low-level ops deal with various aspects of controlling the CEC adapter |
| 100 | 116 | hardware: |
| @@ -102,6 +118,7 @@ hardware: · 1 unmodified line | ||
| 102 | 118 | |
| 103 | 119 | To enable/disable the hardware: |
| 104 | 120 | |
| 121 | +.. c:function:: | |
| 105 | 122 | int (*adap_enable)(struct cec_adapter *adap, bool enable); |
| 106 | 123 | |
| 107 | 124 | This callback enables or disables the CEC hardware. Enabling the CEC hardware |
| @@ -115,6 +132,7 @@ Note that adap_enable must return 0 if enable is false. · 7 unmodified lines | ||
| 115 | 132 | |
| 116 | 133 | To enable/disable the 'monitor all' mode: |
| 117 | 134 | |
| 135 | +.. c:function:: | |
| 118 | 136 | int (*adap_monitor_all_enable)(struct cec_adapter *adap, bool enable); |
| 119 | 137 | |
| 120 | 138 | If enabled, then the adapter should be put in a mode to also monitor messages |
| @@ -127,6 +145,7 @@ Note that adap_monitor_all_enable must return 0 if enable is false. · 6 unmodified lines | ||
| 127 | 145 | |
| 128 | 146 | To program a new logical address: |
| 129 | 147 | |
| 148 | +.. c:function:: | |
| 130 | 149 | int (*adap_log_addr)(struct cec_adapter *adap, u8 logical_addr); |
| 131 | 150 | |
| 132 | 151 | If logical_addr == CEC_LOG_ADDR_INVALID then all programmed logical addresses |
| @@ -140,6 +159,7 @@ Note that adap_log_addr must return 0 if logical_addr is CEC_LOG_ADDR_INVALID. · 7 unmodified lines | ||
| 140 | 159 | |
| 141 | 160 | To transmit a new message: |
| 142 | 161 | |
| 162 | +.. c:function:: | |
| 143 | 163 | int (*adap_transmit)(struct cec_adapter *adap, u8 attempts, |
| 144 | 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 | |
| 159 | 179 | To log the current CEC hardware status: |
| 160 | 180 | |
| 181 | +.. c:function:: | |
| 161 | 182 | void (*adap_status)(struct cec_adapter *adap, struct seq_file *file); |
| 162 | 183 | |
| 163 | 184 | This optional callback can be used to show the status of the CEC hardware. |
| @@ -169,29 +190,41 @@ driven) by calling into the framework in the following situations: · 5 unmodified lines | ||
| 169 | 190 | |
| 170 | 191 | When a transmit finished (successfully or otherwise): |
| 171 | 192 | |
| 172 | −void cec_transmit_done(struct cec_adapter *adap, u8 status, u8 arb_lost_cnt, | |
| 193 | +.. c:function:: | |
| 194 | + void cec_transmit_done(struct cec_adapter *adap, u8 status, u8 arb_lost_cnt, | |
| 173 | 195 | u8 nack_cnt, u8 low_drive_cnt, u8 error_cnt); |
| 174 | 196 | |
| 175 | 197 | The status can be one of: |
| 176 | 198 | |
| 177 | −CEC_TX_STATUS_OK: the transmit was successful. | |
| 178 | −CEC_TX_STATUS_ARB_LOST: arbitration was lost: another CEC initiator | |
| 179 | −took control of the CEC line and you lost the arbitration. | |
| 180 | −CEC_TX_STATUS_NACK: the message was nacked (for a directed message) or | |
| 181 | −acked (for a broadcast message). A retransmission is needed. | |
| 182 | −CEC_TX_STATUS_LOW_DRIVE: low drive was detected on the CEC bus. This | |
| 183 | −indicates that a follower detected an error on the bus and requested a | |
| 184 | −retransmission. | |
| 185 | −CEC_TX_STATUS_ERROR: some unspecified error occurred: this can be one of | |
| 186 | −the previous two if the hardware cannot differentiate or something else | |
| 187 | −entirely. | |
| 188 | −CEC_TX_STATUS_MAX_RETRIES: could not transmit the message after | |
| 189 | −trying multiple times. Should only be set by the driver if it has hardware | |
| 190 | −support for retrying messages. If set, then the framework assumes that it | |
| 191 | −doesn't have to make another attempt to transmit the message since the | |
| 192 | −hardware did that already. | |
| 193 | − | |
| 194 | −The *_cnt arguments are the number of error conditions that were seen. | |
| 199 | +CEC_TX_STATUS_OK: | |
| 200 | + the transmit was successful. | |
| 201 | + | |
| 202 | +CEC_TX_STATUS_ARB_LOST: | |
| 203 | + arbitration was lost: another CEC initiator | |
| 204 | + took control of the CEC line and you lost the arbitration. | |
| 205 | + | |
| 206 | +CEC_TX_STATUS_NACK: | |
| 207 | + the message was nacked (for a directed message) or | |
| 208 | + acked (for a broadcast message). A retransmission is needed. | |
| 209 | + | |
| 210 | +CEC_TX_STATUS_LOW_DRIVE: | |
| 211 | + low drive was detected on the CEC bus. This indicates that | |
| 212 | + a follower detected an error on the bus and requested a | |
| 213 | + retransmission. | |
| 214 | + | |
| 215 | +CEC_TX_STATUS_ERROR: | |
| 216 | + some unspecified error occurred: this can be one of | |
| 217 | + the previous two if the hardware cannot differentiate or something | |
| 218 | + else entirely. | |
| 219 | + | |
| 220 | +CEC_TX_STATUS_MAX_RETRIES: | |
| 221 | + could not transmit the message after trying multiple times. | |
| 222 | + Should only be set by the driver if it has hardware support for | |
| 223 | + retrying messages. If set, then the framework assumes that it | |
| 224 | + doesn't have to make another attempt to transmit the message | |
| 225 | + since the hardware did that already. | |
| 226 | + | |
| 227 | +The \*_cnt arguments are the number of error conditions that were seen. | |
| 195 | 228 | This may be 0 if no information is available. Drivers that do not support |
| 196 | 229 | hardware retry can just set the counter corresponding to the transmit error |
| 197 | 230 | to 1, if the hardware does support retry then either set these counters to |
| @@ -200,7 +233,8 @@ times, or fill in the correct values as reported by the hardware. · 2 unmodified lines | ||
| 200 | 233 | |
| 201 | 234 | When a CEC message was received: |
| 202 | 235 | |
| 203 | −void cec_received_msg(struct cec_adapter *adap, struct cec_msg *msg); | |
| 236 | +.. c:function:: | |
| 237 | + void cec_received_msg(struct cec_adapter *adap, struct cec_msg *msg); | |
| 204 | 238 | |
| 205 | 239 | Speaks for itself. |
| 206 | 240 | |
| @@ -210,17 +244,20 @@ Implementing the High-Level CEC Adapter · 3 unmodified lines | ||
| 210 | 244 | The low-level operations drive the hardware, the high-level operations are |
| 211 | 245 | CEC protocol driven. The following high-level callbacks are available: |
| 212 | 246 | |
| 213 | −struct cec_adap_ops { | |
| 214 | − /* Low-level callbacks */ | |
| 215 | − ... | |
| 247 | +.. code-block:: none | |
| 216 | 248 | |
| 217 | − /* High-level CEC message callback */ | |
| 218 | − int (*received)(struct cec_adapter *adap, struct cec_msg *msg); | |
| 219 | −}; | |
| 249 | + struct cec_adap_ops { | |
| 250 | + /\* Low-level callbacks \*/ | |
| 251 | + ... | |
| 252 | + | |
| 253 | + /\* High-level CEC message callback \*/ | |
| 254 | + int (\*received)(struct cec_adapter \*adap, struct cec_msg \*msg); | |
| 255 | + }; | |
| 220 | 256 | |
| 221 | 257 | The received() callback allows the driver to optionally handle a newly |
| 222 | 258 | received CEC message |
| 223 | 259 | |
| 260 | +.. c:function:: | |
| 224 | 261 | int (*received)(struct cec_adapter *adap, struct cec_msg *msg); |
| 225 | 262 | |
| 226 | 263 | If 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 | |
| 235 | 272 | CEC Adapter drivers can call the following CEC framework functions: |
| 236 | 273 | |
| 237 | −int cec_transmit_msg(struct cec_adapter *adap, struct cec_msg *msg, | |
| 238 | − bool block); | |
| 274 | +.. c:function:: | |
| 275 | + int cec_transmit_msg(struct cec_adapter *adap, struct cec_msg *msg, | |
| 276 | + bool block); | |
| 239 | 277 | |
| 240 | 278 | Transmit a CEC message. If block is true, then wait until the message has been |
| 241 | 279 | transmitted, otherwise just queue it and return. |
| 242 | 280 | |
| 243 | −void cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, bool block); | |
| 281 | +.. c:function:: | |
| 282 | + void cec_s_phys_addr(struct cec_adapter *adap, u16 phys_addr, | |
| 283 | + bool block); | |
| 244 | 284 | |
| 245 | 285 | Change the physical address. This function will set adap->phys_addr and |
| 246 | 286 | send an event if it has changed. If cec_s_log_addrs() has been called and |
| @@ -254,8 +294,9 @@ then the CEC adapter will be disabled. If you change a valid physical address · 7 unmodified lines | ||
| 254 | 294 | to another valid physical address, then this function will first set the |
| 255 | 295 | address to CEC_PHYS_ADDR_INVALID before enabling the new physical address. |
| 256 | 296 | |
| 257 | −int cec_s_log_addrs(struct cec_adapter *adap, | |
| 258 | − struct cec_log_addrs *log_addrs, bool block); | |
| 297 | +.. c:function:: | |
| 298 | + int cec_s_log_addrs(struct cec_adapter *adap, | |
| 299 | + struct cec_log_addrs *log_addrs, bool block); | |
| 259 | 300 | |
| 260 | 301 | Claim the CEC logical addresses. Should never be called if CEC_CAP_LOG_ADDRS |
| 261 | 302 | is set. If block is true, then wait until the logical addresses have been |
| @@ -6,8 +6,6 @@ Digital TV Common functions · 5 unmodified lines | ||
| 6 | 6 | |
| 7 | 7 | .. kernel-doc:: drivers/media/dvb-core/dvb_math.h |
| 8 | 8 | |
| 9 | −.. kernel-doc:: drivers/media/dvb-core/dvb_ringbuffer.h | |
| 10 | − | |
| 11 | 9 | .. kernel-doc:: drivers/media/dvb-core/dvbdev.h |
| 12 | 10 | |
| 13 | 11 | |
| @@ -18,6 +16,42 @@ Digital TV Common functions · 4 unmodified lines | ||
| 18 | 16 | .. kernel-doc:: drivers/media/dvb-core/dvbdev.h |
| 19 | 17 | :export: drivers/media/dvb-core/dvbdev.c |
| 20 | 18 | |
| 19 | +Digital TV Ring buffer | |
| 20 | +---------------------- | |
| 21 | + | |
| 22 | +Those routines implement ring buffers used to handle digital TV data and | |
| 23 | +copy it from/to userspace. | |
| 24 | + | |
| 25 | +.. note:: | |
| 26 | + | |
| 27 | + 1) For performance reasons read and write routines don't check buffer sizes | |
| 28 | + and/or number of bytes free/available. This has to be done before these | |
| 29 | + routines are called. For example: | |
| 30 | + | |
| 31 | + .. code-block:: c | |
| 32 | + | |
| 33 | + /* write @buflen: bytes */ | |
| 34 | + free = dvb_ringbuffer_free(rbuf); | |
| 35 | + if (free >= buflen) | |
| 36 | + count = dvb_ringbuffer_write(rbuf, buffer, buflen); | |
| 37 | + else | |
| 38 | + /* do something */ | |
| 39 | + | |
| 40 | + /* read min. 1000, max. @bufsize: bytes */ | |
| 41 | + avail = dvb_ringbuffer_avail(rbuf); | |
| 42 | + if (avail >= 1000) | |
| 43 | + count = dvb_ringbuffer_read(rbuf, buffer, min(avail, bufsize)); | |
| 44 | + else | |
| 45 | + /* do something */ | |
| 46 | + | |
| 47 | + 2) If there is exactly one reader and one writer, there is no need | |
| 48 | + to lock read or write operations. | |
| 49 | + Two or more readers must be locked against each other. | |
| 50 | + Flushing the buffer counts as a read operation. | |
| 51 | + Resetting the buffer counts as a read and write operation. | |
| 52 | + Two or more writers must be locked against each other. | |
| 53 | + | |
| 54 | +.. kernel-doc:: drivers/media/dvb-core/dvb_ringbuffer.h | |
| 21 | 55 | |
| 22 | 56 | |
| 23 | 57 | Digital TV Frontend kABI |
| @@ -121,7 +155,7 @@ triggered by a hardware interrupt, it is recommended to use the Linux · 97 unmodified lines | ||
| 121 | 155 | bottom half mechanism or start a tasklet instead of making the callback |
| 122 | 156 | function call directly from a hardware interrupt. |
| 123 | 157 | |
| 124 | −This mechanism is implemented by :c:func:`dmx_ts_cb()` and :cpp:func:`dmx_section_cb()` | |
| 158 | +This mechanism is implemented by :c:func:`dmx_ts_cb()` and :c:func:`dmx_section_cb()` | |
| 125 | 159 | callbacks. |
| 126 | 160 | |
| 127 | 161 | .. kernel-doc:: drivers/media/dvb-core/demux.h |
| @@ -34,7 +34,7 @@ pad to a sink pad. · 33 unmodified lines | ||
| 34 | 34 | Media device |
| 35 | 35 | ^^^^^^^^^^^^ |
| 36 | 36 | |
| 37 | −A media device is represented by a :c:type:`struct media_device <media_device>` | |
| 37 | +A media device is represented by a struct :c:type:`media_device` | |
| 38 | 38 | instance, defined in ``include/media/media-device.h``. |
| 39 | 39 | Allocation of the structure is handled by the media device driver, usually by |
| 40 | 40 | embedding the :c:type:`media_device` instance in a larger driver-specific |
| @@ -47,7 +47,7 @@ and unregistered by calling :c:func:`media_device_unregister()`. · 6 unmodified lines | ||
| 47 | 47 | Entities |
| 48 | 48 | ^^^^^^^^ |
| 49 | 49 | |
| 50 | −Entities are represented by a :c:type:`struct media_entity <media_entity>` | |
| 50 | +Entities are represented by a struct :c:type:`media_entity` | |
| 51 | 51 | instance, defined in ``include/media/media-entity.h``. The structure is usually |
| 52 | 52 | embedded into a higher-level structure, such as |
| 53 | 53 | :c:type:`v4l2_subdev` or :c:type:`video_device` |
| @@ -65,10 +65,10 @@ Interfaces · 11 unmodified lines | ||
| 65 | 65 | ^^^^^^^^^^ |
| 66 | 66 | |
| 67 | 67 | Interfaces are represented by a |
| 68 | −:c:type:`struct media_interface <media_interface>` instance, defined in | |
| 68 | +struct :c:type:`media_interface` instance, defined in | |
| 69 | 69 | ``include/media/media-entity.h``. Currently, only one type of interface is |
| 70 | 70 | defined: a device node. Such interfaces are represented by a |
| 71 | −:c:type:`struct media_intf_devnode <media_intf_devnode>`. | |
| 71 | +struct :c:type:`media_intf_devnode`. | |
| 72 | 72 | |
| 73 | 73 | Drivers initialize and create device node interfaces by calling |
| 74 | 74 | :c:func:`media_devnode_create()` |
| @@ -77,7 +77,7 @@ and remove them by calling: · 2 unmodified lines | ||
| 77 | 77 | |
| 78 | 78 | Pads |
| 79 | 79 | ^^^^ |
| 80 | −Pads are represented by a :c:type:`struct media_pad <media_pad>` instance, | |
| 80 | +Pads are represented by a struct :c:type:`media_pad` instance, | |
| 81 | 81 | defined in ``include/media/media-entity.h``. Each entity stores its pads in |
| 82 | 82 | a pads array managed by the entity driver. Drivers usually embed the array in |
| 83 | 83 | a driver-specific structure. |
| @@ -85,8 +85,9 @@ a driver-specific structure. · 1 unmodified line | ||
| 85 | 85 | Pads are identified by their entity and their 0-based index in the pads |
| 86 | 86 | array. |
| 87 | 87 | |
| 88 | −Both information are stored in the :c:type:`struct media_pad`, making the | |
| 89 | −:c:type:`media_pad` pointer the canonical way to store and pass link references. | |
| 88 | +Both information are stored in the struct :c:type:`media_pad`, | |
| 89 | +making the struct :c:type:`media_pad` pointer the canonical way | |
| 90 | +to store and pass link references. | |
| 90 | 91 | |
| 91 | 92 | Pads 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 | ||
| 101 | 102 | Links |
| 102 | 103 | ^^^^^ |
| 103 | 104 | |
| 104 | −Links are represented by a :c:type:`struct media_link <media_link>` instance, | |
| 105 | +Links are represented by a struct :c:type:`media_link` instance, | |
| 105 | 106 | defined in ``include/media/media-entity.h``. There are two types of links: |
| 106 | 107 | |
| 107 | 108 | **1. pad to pad links**: |
| @@ -184,7 +185,7 @@ Use count and power handling · 76 unmodified lines | ||
| 184 | 185 | |
| 185 | 186 | Due to the wide differences between drivers regarding power management |
| 186 | 187 | needs, the media controller does not implement power management. However, |
| 187 | −the :c:type:`struct media_entity <media_entity>` includes a ``use_count`` | |
| 188 | +the struct :c:type:`media_entity` includes a ``use_count`` | |
| 188 | 189 | field that media drivers |
| 189 | 190 | can use to track the number of users of every entity for power management |
| 190 | 191 | needs. |
| @@ -210,11 +211,11 @@ prevent link states from being modified during streaming by calling · 19 unmodified lines | ||
| 210 | 211 | The function will mark all entities connected to the given entity through |
| 211 | 212 | enabled links, either directly or indirectly, as streaming. |
| 212 | 213 | |
| 213 | −The :c:type:`struct media_pipeline <media_pipeline>` instance pointed to by | |
| 214 | +The struct :c:type:`media_pipeline` instance pointed to by | |
| 214 | 215 | the pipe argument will be stored in every entity in the pipeline. |
| 215 | −Drivers should embed the :c:type:`struct media_pipeline <media_pipeline>` | |
| 216 | +Drivers should embed the struct :c:type:`media_pipeline` | |
| 216 | 217 | in higher-level pipeline structures and can then access the |
| 217 | −pipeline through the :c:type:`struct media_entity <media_entity>` | |
| 218 | +pipeline through the struct :c:type:`media_entity` | |
| 218 | 219 | pipe field. |
| 219 | 220 | |
| 220 | 221 | Calls to :c:func:`media_entity_pipeline_start()` can be nested. |
| @@ -56,7 +56,7 @@ You should also set these fields of :c:type:`video_device`: · 55 unmodified lines | ||
| 56 | 56 | :c:type:`video_device`->vfl_dir fields are used to disable ops that do not |
| 57 | 57 | match the type/dir combination. E.g. VBI ops are disabled for non-VBI nodes, |
| 58 | 58 | and output ops are disabled for a capture device. This makes it possible to |
| 59 | − provide just one :c:type:`v4l2_ioctl_ops struct` for both vbi and | |
| 59 | + provide just one :c:type:`v4l2_ioctl_ops` struct for both vbi and | |
| 60 | 60 | video nodes. |
| 61 | 61 | |
| 62 | 62 | - :c:type:`video_device`->lock: leave to ``NULL`` if you want to do all the |
| @@ -166,14 +166,14 @@ something. · 103 unmodified lines | ||
| 166 | 166 | In the case of :ref:`videobuf2 <vb2_framework>` you will need to implement the |
| 167 | 167 | ``wait_prepare()`` and ``wait_finish()`` callbacks to unlock/lock if applicable. |
| 168 | 168 | If you use the ``queue->lock`` pointer, then you can use the helper functions |
| 169 | −:c:func:`vb2_ops_wait_prepare` and :cpp:func:`vb2_ops_wait_finish`. | |
| 169 | +:c:func:`vb2_ops_wait_prepare` and :c:func:`vb2_ops_wait_finish`. | |
| 170 | 170 | |
| 171 | 171 | The implementation of a hotplug disconnect should also take the lock from |
| 172 | 172 | :c:type:`video_device` before calling v4l2_device_disconnect. If you are also |
| 173 | 173 | using :c:type:`video_device`->queue->lock, then you have to first lock |
| 174 | 174 | :c:type:`video_device`->queue->lock followed by :c:type:`video_device`->lock. |
| 175 | 175 | That way you can be sure no ioctl is running when you call |
| 176 | −:c:type:`v4l2_device_disconnect`. | |
| 176 | +:c:func:`v4l2_device_disconnect`. | |
| 177 | 177 | |
| 178 | 178 | Video device registration |
| 179 | 179 | ------------------------- |
| @@ -200,6 +200,7 @@ types exist: · 20 unmodified lines | ||
| 200 | 200 | - ``VFL_TYPE_VBI``: ``/dev/vbiX`` for vertical blank data (i.e. closed captions, teletext) |
| 201 | 201 | - ``VFL_TYPE_RADIO``: ``/dev/radioX`` for radio tuners |
| 202 | 202 | - ``VFL_TYPE_SDR``: ``/dev/swradioX`` for Software Defined Radio tuners |
| 203 | +- ``VFL_TYPE_TOUCH``: ``/dev/v4l-touchX`` for touch sensors | |
| 203 | 204 | |
| 204 | 205 | The last argument gives you a certain amount of control over the device |
| 205 | 206 | device 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 | |
| 263 | 264 | It is a bitmask and the following bits can be set: |
| 264 | 265 | |
| 266 | +.. tabularcolumns:: |p{5ex}|L| | |
| 265 | 267 | |
| 266 | 268 | ===== ================================================================ |
| 267 | 269 | Mask Description |
| @@ -334,7 +336,7 @@ And this function: · 66 unmodified lines | ||
| 334 | 336 | |
| 335 | 337 | returns the video_device belonging to the file struct. |
| 336 | 338 | |
| 337 | −The :c:func:`video_devdata` function combines :cpp:func:`video_get_drvdata` | |
| 339 | +The :c:func:`video_devdata` function combines :c:func:`video_get_drvdata` | |
| 338 | 340 | with :c:func:`video_devdata`: |
| 339 | 341 | |
| 340 | 342 | :c:func:`video_drvdata <video_drvdata>` |
| @@ -40,7 +40,7 @@ A good example of these ``replace``/``merge`` callbacks is in v4l2-event.c: · 39 unmodified lines | ||
| 40 | 40 | In order to queue events to video device, drivers should call: |
| 41 | 41 | |
| 42 | 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 | |
| 45 | 45 | The driver's only responsibility is to fill in the type and the data fields. |
| 46 | 46 | The other fields will be filled in by V4L2. |
| @@ -51,7 +51,7 @@ Event subscription · 4 unmodified lines | ||
| 51 | 51 | Subscribing to an event is via: |
| 52 | 52 | |
| 53 | 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 | 55 | elems, :c:type:`ops <v4l2_subscribed_event_ops>`) |
| 56 | 56 | |
| 57 | 57 | |
| @@ -86,7 +86,7 @@ Unsubscribing an event · 28 unmodified lines | ||
| 86 | 86 | Unsubscribing to an event is via: |
| 87 | 87 | |
| 88 | 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 | |
| 91 | 91 | This function is used to implement :c:type:`video_device`-> |
| 92 | 92 | :c:type:`ioctl_ops <v4l2_ioctl_ops>`-> ``vidioc_unsubscribe_event``. |
| @@ -21,8 +21,8 @@ function by the driver. · 20 unmodified lines | ||
| 21 | 21 | In many cases the struct :c:type:`v4l2_fh` will be embedded in a larger |
| 22 | 22 | structure. In that case you should call: |
| 23 | 23 | |
| 24 | −#) :c:func:`v4l2_fh_init` and :cpp:func:`v4l2_fh_add` in ``open()`` | |
| 25 | −#) :c:func:`v4l2_fh_del` and :cpp:func:`v4l2_fh_exit` in ``release()`` | |
| 24 | +#) :c:func:`v4l2_fh_init` and :c:func:`v4l2_fh_add` in ``open()`` | |
| 25 | +#) :c:func:`v4l2_fh_del` and :c:func:`v4l2_fh_exit` in ``release()`` | |
| 26 | 26 | |
| 27 | 27 | Drivers can extract their own file handle structure by using the container_of |
| 28 | 28 | macro. |
| @@ -27,7 +27,7 @@ methods. · 26 unmodified lines | ||
| 27 | 27 | Bridges might also need to store per-subdev private data, such as a pointer to |
| 28 | 28 | bridge-specific per-subdev private data. The :c:type:`v4l2_subdev` structure |
| 29 | 29 | provides host private data for that purpose that can be accessed with |
| 30 | −:c:func:`v4l2_get_subdev_hostdata` and :cpp:func:`v4l2_set_subdev_hostdata`. | |
| 30 | +:c:func:`v4l2_get_subdev_hostdata` and :c:func:`v4l2_set_subdev_hostdata`. | |
| 31 | 31 | |
| 32 | 32 | From the bridge driver perspective, you load the sub-device module and somehow |
| 33 | 33 | obtain the :c:type:`v4l2_subdev` pointer. For i2c devices this is easy: you call |
| @@ -412,19 +412,7 @@ later date. It differs between i2c drivers and as such can be confusing. · 378 unmodified lines | ||
| 412 | 412 | To see which chip variants are supported you can look in the i2c driver code |
| 413 | 413 | for the i2c_device_id table. This lists all the possibilities. |
| 414 | 414 | |
| 415 | −There are two more helper functions: | |
| 416 | − | |
| 417 | −:c:func:`v4l2_i2c_new_subdev_cfg`: this function adds new irq and | |
| 418 | −platform_data arguments and has both 'addr' and 'probed_addrs' arguments: | |
| 419 | −if addr is not 0 then that will be used (non-probing variant), otherwise the | |
| 420 | −probed_addrs are probed. | |
| 421 | − | |
| 422 | −For example: this will probe for address 0x10: | |
| 423 | − | |
| 424 | −.. code-block:: c | |
| 425 | − | |
| 426 | − struct v4l2_subdev *sd = v4l2_i2c_new_subdev_cfg(v4l2_dev, adapter, | |
| 427 | − "module_foo", "chipid", 0, NULL, 0, I2C_ADDRS(0x10)); | |
| 415 | +There are one more helper function: | |
| 428 | 416 | |
| 429 | 417 | :c:func:`v4l2_i2c_new_subdev_board` uses an :c:type:`i2c_board_info` struct |
| 430 | 418 | which is passed to the i2c driver and replaces the irq, platform_data and addr |
| @@ -433,9 +421,10 @@ arguments. · 2 unmodified lines | ||
| 433 | 421 | If the subdev supports the s_config core ops, then that op is called with |
| 434 | 422 | the irq and platform_data arguments after the subdev was setup. |
| 435 | 423 | |
| 436 | −The older :c:func:`v4l2_i2c_new_subdev` and | |
| 437 | −:c:func:`v4l2_i2c_new_probed_subdev` functions will call ``s_config`` as | |
| 438 | −well, but with irq set to 0 and platform_data set to ``NULL``. | |
| 424 | +The :c:func:`v4l2_i2c_new_subdev` function will call | |
| 425 | +:c:func:`v4l2_i2c_new_subdev_board`, internally filling a | |
| 426 | +:c:type:`i2c_board_info` structure using the ``client_type`` and the | |
| 427 | +``addr`` to fill it. | |
| 439 | 428 | |
| 440 | 429 | V4L2 sub-device functions and data structures |
| 441 | 430 | --------------------------------------------- |
Binary file not shown.
| @@ -32,3 +32,4 @@ For more details see the file COPYING in the source distribution of Linux. · 31 unmodified lines | ||
| 32 | 32 | kapi/dtv-core |
| 33 | 33 | kapi/rc-core |
| 34 | 34 | kapi/mc-core |
| 35 | + kapi/cec-core | |
| @@ -7,5 +7,5 @@ ignore ioctl __NET_GET_IF_OLD · 6 unmodified lines | ||
| 7 | 7 | ignore struct __dvb_net_if_old |
| 8 | 8 | |
| 9 | 9 | # Macros used at struct dvb_net_if |
| 10 | −replace define DVB_NET_FEEDTYPE_MPE dvb-net-if | |
| 11 | −replace define DVB_NET_FEEDTYPE_ULE dvb-net-if | |
| 10 | +replace define DVB_NET_FEEDTYPE_MPE :c:type:`dvb_net_if` | |
| 11 | +replace define DVB_NET_FEEDTYPE_ULE :c:type:`dvb_net_if` | |
| @@ -20,19 +20,22 @@ Synopsis · 19 unmodified lines | ||
| 20 | 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 | |
| 25 | 26 | Arguments |
| 26 | 27 | ========= |
| 27 | 28 | |
| 28 | 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 | |
| 32 | 33 | Description |
| 33 | 34 | =========== |
| 34 | 35 | |
| 35 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 36 | +.. note:: | |
| 37 | + | |
| 38 | + This documents the proposed CEC API. This API is not yet finalized | |
| 36 | 39 | and is currently only available as a staging kernel module. |
| 37 | 40 | |
| 38 | 41 | Closes the cec device. Resources associated with the file descriptor are |
| @@ -19,17 +19,18 @@ Synopsis · 18 unmodified lines | ||
| 19 | 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 | |
| 24 | 25 | Arguments |
| 25 | 26 | ========= |
| 26 | 27 | |
| 27 | 28 | ``fd`` |
| 28 | − File descriptor returned by :ref:`open() <func-open>`. | |
| 29 | + File descriptor returned by :c:func:`open() <cec-open>`. | |
| 29 | 30 | |
| 30 | 31 | ``request`` |
| 31 | 32 | 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 | 35 | ``argp`` |
| 35 | 36 | Pointer to a request-specific structure. |
| @@ -38,7 +39,9 @@ Arguments · 2 unmodified lines | ||
| 38 | 39 | Description |
| 39 | 40 | =========== |
| 40 | 41 | |
| 41 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 42 | +.. note:: | |
| 43 | + | |
| 44 | + This documents the proposed CEC API. This API is not yet finalized | |
| 42 | 45 | and is currently only available as a staging kernel module. |
| 43 | 46 | |
| 44 | 47 | The :c:func:`ioctl()` function manipulates cec device parameters. The |
| @@ -19,7 +19,8 @@ Synopsis · 18 unmodified lines | ||
| 19 | 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 | |
| 25 | 26 | Arguments |
| @@ -45,7 +46,9 @@ Arguments · 19 unmodified lines | ||
| 45 | 46 | Description |
| 46 | 47 | =========== |
| 47 | 48 | |
| 48 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 49 | +.. note:: | |
| 50 | + | |
| 51 | + This documents the proposed CEC API. This API is not yet finalized | |
| 49 | 52 | and is currently only available as a staging kernel module. |
| 50 | 53 | |
| 51 | 54 | To open a cec device applications call :c:func:`open()` with the |
| @@ -20,16 +20,28 @@ Synopsis · 19 unmodified lines | ||
| 20 | 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 | |
| 25 | 26 | Arguments |
| 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 | |
| 29 | 39 | Description |
| 30 | 40 | =========== |
| 31 | 41 | |
| 32 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 42 | +.. note:: | |
| 43 | + | |
| 44 | + This documents the proposed CEC API. This API is not yet finalized | |
| 33 | 45 | and is currently only available as a staging kernel module. |
| 34 | 46 | |
| 35 | 47 | With the :c:func:`poll()` function applications can wait for CEC |
| @@ -37,7 +49,7 @@ events. · 1 unmodified line | ||
| 37 | 49 | |
| 38 | 50 | On success :c:func:`poll()` returns the number of file descriptors |
| 39 | 51 | that have been selected (that is, file descriptors for which the |
| 40 | −``revents`` field of the respective :c:type:`struct pollfd` structure | |
| 52 | +``revents`` field of the respective struct :c:type:`pollfd` | |
| 41 | 53 | is non-zero). CEC devices set the ``POLLIN`` and ``POLLRDNORM`` flags in |
| 42 | 54 | the ``revents`` field if there are messages in the receive queue. If the |
| 43 | 55 | transmit queue has room for new messages, the ``POLLOUT`` and |
| @@ -3,7 +3,9 @@ · 2 unmodified lines | ||
| 3 | 3 | Introduction |
| 4 | 4 | ============ |
| 5 | 5 | |
| 6 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 6 | +.. note:: | |
| 7 | + | |
| 8 | + This documents the proposed CEC API. This API is not yet finalized | |
| 7 | 9 | and is currently only available as a staging kernel module. |
| 8 | 10 | |
| 9 | 11 | HDMI connectors provide a single pin for use by the Consumer Electronics |
| @@ -14,7 +14,8 @@ CEC_ADAP_G_CAPS - Query device capabilities · 13 unmodified lines | ||
| 14 | 14 | Synopsis |
| 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 | |
| 19 | 20 | Arguments |
| 20 | 21 | ========= |
| @@ -22,25 +23,25 @@ Arguments · 1 unmodified line | ||
| 22 | 23 | ``fd`` |
| 23 | 24 | File descriptor returned by :ref:`open() <cec-func-open>`. |
| 24 | 25 | |
| 25 | −``request`` | |
| 26 | − CEC_ADAP_G_CAPS | |
| 27 | − | |
| 28 | 26 | ``argp`` |
| 29 | 27 | |
| 30 | 28 | |
| 31 | 29 | Description |
| 32 | 30 | =========== |
| 33 | 31 | |
| 34 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 32 | +.. note:: | |
| 33 | + | |
| 34 | + This documents the proposed CEC API. This API is not yet finalized | |
| 35 | 35 | and is currently only available as a staging kernel module. |
| 36 | 36 | |
| 37 | 37 | All cec devices must support :ref:`ioctl CEC_ADAP_G_CAPS <CEC_ADAP_G_CAPS>`. To query |
| 38 | 38 | device information, applications call the ioctl with a pointer to a |
| 39 | −struct :ref:`cec_caps <cec-caps>`. The driver fills the structure and | |
| 39 | +struct :c:type:`cec_caps`. The driver fills the structure and | |
| 40 | 40 | returns 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 | 46 | .. flat-table:: struct cec_caps |
| 46 | 47 | :header-rows: 0 |
| @@ -84,6 +85,7 @@ returns the information to the application. The ioctl never fails. · 37 unmodified lines | ||
| 84 | 85 | macro. |
| 85 | 86 | |
| 86 | 87 | |
| 88 | +.. tabularcolumns:: |p{4.4cm}|p{2.5cm}|p{10.6cm}| | |
| 87 | 89 | |
| 88 | 90 | .. _cec-capabilities: |
| 89 | 91 | |
| @@ -17,33 +17,35 @@ CEC_ADAP_G_LOG_ADDRS, CEC_ADAP_S_LOG_ADDRS - Get or set the logical addresses · 16 unmodified lines | ||
| 17 | 17 | Synopsis |
| 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 | |
| 23 | 26 | Arguments |
| 24 | 27 | ========= |
| 25 | 28 | |
| 26 | 29 | ``fd`` |
| 27 | − File descriptor returned by :ref:`open() <cec-func-open>`. | |
| 28 | − | |
| 29 | −``request`` | |
| 30 | − CEC_ADAP_G_LOG_ADDRS, CEC_ADAP_S_LOG_ADDRS | |
| 30 | + File descriptor returned by :c:func:`open() <cec-open>`. | |
| 31 | 31 | |
| 32 | 32 | ``argp`` |
| 33 | − | |
| 33 | + Pointer to struct :c:type:`cec_log_addrs`. | |
| 34 | 34 | |
| 35 | 35 | Description |
| 36 | 36 | =========== |
| 37 | 37 | |
| 38 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 38 | +.. note:: | |
| 39 | + | |
| 40 | + This documents the proposed CEC API. This API is not yet finalized | |
| 39 | 41 | and is currently only available as a staging kernel module. |
| 40 | 42 | |
| 41 | 43 | To query the current CEC logical addresses, applications call |
| 42 | 44 | :ref:`ioctl CEC_ADAP_G_LOG_ADDRS <CEC_ADAP_G_LOG_ADDRS>` with a pointer to a |
| 43 | −:c:type:`struct cec_log_addrs` where the driver stores the logical addresses. | |
| 45 | +struct :c:type:`cec_log_addrs` where the driver stores the logical addresses. | |
| 44 | 46 | |
| 45 | 47 | To set new logical addresses, applications fill in |
| 46 | −:c:type:`struct cec_log_addrs` and call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` | |
| 48 | +struct :c:type:`cec_log_addrs` and call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` | |
| 47 | 49 | with a pointer to this struct. The :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` |
| 48 | 50 | is only available if ``CEC_CAP_LOG_ADDRS`` is set (the ``ENOTTY`` error code is |
| 49 | 51 | returned otherwise). The :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` |
| @@ -64,8 +66,11 @@ logical addresses are claimed or cleared. · 14 unmodified lines | ||
| 64 | 66 | Attempting to call :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>` when |
| 65 | 67 | logical 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 | 75 | .. flat-table:: struct cec_log_addrs |
| 71 | 76 | :header-rows: 0 |
| @@ -220,6 +225,8 @@ logical address types are already defined will return with error ``EBUSY``. · 148 unmodified lines | ||
| 220 | 225 | fallback to the Unregistered logical address. Note that if the Unregistered |
| 221 | 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 | 230 | .. _cec-versions: |
| 224 | 231 | |
| 225 | 232 | .. flat-table:: CEC Versions |
| @@ -253,6 +260,7 @@ logical address types are already defined will return with error ``EBUSY``. · 27 unmodified lines | ||
| 253 | 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 | 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 | 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 | 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 | 402 | .. _cec-all-dev-types-flags: |
| 392 | 403 | |
| 393 | 404 | .. flat-table:: CEC All Device Types Flags |
| @@ -17,24 +17,27 @@ CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR - Get or set the physical address · 16 unmodified lines | ||
| 17 | 17 | Synopsis |
| 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 | |
| 22 | 26 | Arguments |
| 23 | 27 | ========= |
| 24 | 28 | |
| 25 | 29 | ``fd`` |
| 26 | − File descriptor returned by :ref:`open() <cec-func-open>`. | |
| 27 | − | |
| 28 | −``request`` | |
| 29 | − CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR | |
| 30 | + File descriptor returned by :c:func:`open() <cec-open>`. | |
| 30 | 31 | |
| 31 | 32 | ``argp`` |
| 32 | − | |
| 33 | + Pointer to the CEC address. | |
| 33 | 34 | |
| 34 | 35 | Description |
| 35 | 36 | =========== |
| 36 | 37 | |
| 37 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 38 | +.. note:: | |
| 39 | + | |
| 40 | + This documents the proposed CEC API. This API is not yet finalized | |
| 38 | 41 | and is currently only available as a staging kernel module. |
| 39 | 42 | |
| 40 | 43 | To query the current physical address applications call |
| @@ -15,8 +15,8 @@ CEC_DQEVENT - Dequeue a CEC event · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 16 | 16 | ======== |
| 17 | 17 | |
| 18 | −.. c:function:: int ioctl( int fd, int request, struct cec_event *argp ) | |
| 19 | − :name: CEC_DQEVENT | |
| 18 | +.. c:function:: int ioctl( int fd, CEC_DQEVENT, struct cec_event *argp ) | |
| 19 | + :name: CEC_DQEVENT | |
| 20 | 20 | |
| 21 | 21 | Arguments |
| 22 | 22 | ========= |
| @@ -24,16 +24,15 @@ Arguments · 1 unmodified line | ||
| 24 | 24 | ``fd`` |
| 25 | 25 | File descriptor returned by :ref:`open() <cec-func-open>`. |
| 26 | 26 | |
| 27 | −``request`` | |
| 28 | − CEC_DQEVENT | |
| 29 | − | |
| 30 | 27 | ``argp`` |
| 31 | 28 | |
| 32 | 29 | |
| 33 | 30 | Description |
| 34 | 31 | =========== |
| 35 | 32 | |
| 36 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 33 | +.. note:: | |
| 34 | + | |
| 35 | + This documents the proposed CEC API. This API is not yet finalized | |
| 37 | 36 | and is currently only available as a staging kernel module. |
| 38 | 37 | |
| 39 | 38 | CEC devices can send asynchronous events. These can be retrieved by |
| @@ -50,8 +49,9 @@ two :ref:`CEC_EVENT_STATE_CHANGE <CEC-EVENT-STATE-CHANGE>` events with · 10 unmodified lines | ||
| 50 | 49 | the same state). In that case the intermediate state changes were lost but |
| 51 | 50 | it 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 | 56 | .. flat-table:: struct cec_event_state_change |
| 57 | 57 | :header-rows: 0 |
| @@ -80,8 +80,9 @@ it is guaranteed that the state did change in between the two events. · 22 unmodified lines | ||
| 80 | 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 | 87 | .. flat-table:: struct cec_event_lost_msgs |
| 87 | 88 | :header-rows: 0 |
| @@ -106,8 +107,9 @@ it is guaranteed that the state did change in between the two events. · 18 unmodified lines | ||
| 106 | 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 | 114 | .. flat-table:: struct cec_event |
| 113 | 115 | :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 | 124 | - ``ts`` |
| 123 | 125 | |
| 124 | − - Timestamp of the event in ns. | |
| 125 | − The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access | |
| 126 | − the same clock from userspace use :c:func:`clock_gettime(2)`. | |
| 126 | + - :cspan:`1` Timestamp of the event in ns. | |
| 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 | 131 | - .. 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 | 135 | - ``event`` |
| 135 | 136 | |
| 136 | − - The CEC event type, see :ref:`cec-events`. | |
| 137 | − | |
| 138 | − - | |
| 137 | + - :cspan:`1` The CEC event type, see :ref:`cec-events`. | |
| 139 | 138 | |
| 140 | 139 | - .. 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 | 143 | - ``flags`` |
| 145 | 144 | |
| 146 | − - Event flags, see :ref:`cec-event-flags`. | |
| 147 | − | |
| 148 | − - | |
| 145 | + - :cspan:`1` Event flags, see :ref:`cec-event-flags`. | |
| 149 | 146 | |
| 150 | 147 | - .. 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 | 174 | event. |
| 178 | 175 | |
| 179 | 176 | |
| 177 | +.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}| | |
| 180 | 178 | |
| 181 | 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 | 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 | 209 | .. _cec-event-flags: |
| 211 | 210 | |
| @@ -13,24 +13,27 @@ CEC_G_MODE, CEC_S_MODE - Get or set exclusive use of the CEC adapter · 12 unmodified lines | ||
| 13 | 13 | Synopsis |
| 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 | |
| 18 | 22 | Arguments |
| 19 | 23 | ========= |
| 20 | 24 | |
| 21 | 25 | ``fd`` |
| 22 | − File descriptor returned by :ref:`open() <cec-func-open>`. | |
| 23 | − | |
| 24 | −``request`` | |
| 25 | − CEC_G_MODE, CEC_S_MODE | |
| 26 | + File descriptor returned by :c:func:`open() <cec-open>`. | |
| 26 | 27 | |
| 27 | 28 | ``argp`` |
| 28 | − | |
| 29 | + Pointer to CEC mode. | |
| 29 | 30 | |
| 30 | 31 | Description |
| 31 | 32 | =========== |
| 32 | 33 | |
| 33 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 34 | +.. note:: | |
| 35 | + | |
| 36 | + This documents the proposed CEC API. This API is not yet finalized | |
| 34 | 37 | and is currently only available as a staging kernel module. |
| 35 | 38 | |
| 36 | 39 | By default any filehandle can use :ref:`CEC_TRANSMIT`, but in order to prevent |
| @@ -71,6 +74,7 @@ always call :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`. · 34 unmodified lines | ||
| 71 | 74 | |
| 72 | 75 | Available initiator modes are: |
| 73 | 76 | |
| 77 | +.. tabularcolumns:: |p{5.6cm}|p{0.9cm}|p{11.0cm}| | |
| 74 | 78 | |
| 75 | 79 | .. _cec-mode-initiator_e: |
| 76 | 80 | |
| @@ -114,6 +118,7 @@ Available initiator modes are: · 37 unmodified lines | ||
| 114 | 118 | |
| 115 | 119 | Available follower modes are: |
| 116 | 120 | |
| 121 | +.. tabularcolumns:: |p{6.6cm}|p{0.9cm}|p{10.0cm}| | |
| 117 | 122 | |
| 118 | 123 | .. _cec-mode-follower_e: |
| 119 | 124 | |
| @@ -206,6 +211,7 @@ Available follower modes are: · 86 unmodified lines | ||
| 206 | 211 | |
| 207 | 212 | Core message processing details: |
| 208 | 213 | |
| 214 | +.. tabularcolumns:: |p{6.6cm}|p{10.9cm}| | |
| 209 | 215 | |
| 210 | 216 | .. _cec-core-processing: |
| 211 | 217 | |
| @@ -16,28 +16,32 @@ CEC_RECEIVE, CEC_TRANSMIT - Receive or transmit a CEC message · 15 unmodified lines | ||
| 16 | 16 | Synopsis |
| 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 | |
| 21 | 25 | Arguments |
| 22 | 26 | ========= |
| 23 | 27 | |
| 24 | 28 | ``fd`` |
| 25 | − File descriptor returned by :ref:`open() <cec-func-open>`. | |
| 26 | − | |
| 27 | −``request`` | |
| 28 | − CEC_RECEIVE, CEC_TRANSMIT | |
| 29 | + File descriptor returned by :c:func:`open() <cec-open>`. | |
| 29 | 30 | |
| 30 | 31 | ``argp`` |
| 31 | − | |
| 32 | + Pointer to struct cec_msg. | |
| 32 | 33 | |
| 33 | 34 | Description |
| 34 | 35 | =========== |
| 35 | 36 | |
| 36 | −.. note:: This documents the proposed CEC API. This API is not yet finalized | |
| 37 | +.. note:: | |
| 38 | + | |
| 39 | + This documents the proposed CEC API. This API is not yet finalized | |
| 37 | 40 | and is currently only available as a staging kernel module. |
| 38 | 41 | |
| 39 | 42 | To receive a CEC message the application has to fill in the |
| 40 | −``timeout`` field of :c:type:`struct cec_msg` and pass it to :ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`. | |
| 43 | +``timeout`` field of struct :c:type:`cec_msg` and pass it to | |
| 44 | +:ref:`ioctl CEC_RECEIVE <CEC_RECEIVE>`. | |
| 41 | 45 | If the file descriptor is in non-blocking mode and there are no received |
| 42 | 46 | messages pending, then it will return -1 and set errno to the ``EAGAIN`` |
| 43 | 47 | error code. If the file descriptor is in blocking mode and ``timeout`` |
| @@ -51,9 +55,9 @@ A received message can be: · 7 unmodified lines | ||
| 51 | 55 | 2. the result of an earlier non-blocking transmit (the ``sequence`` field will |
| 52 | 56 | be non-zero). |
| 53 | 57 | |
| 54 | −To send a CEC message the application has to fill in the | |
| 55 | −:c:type:`struct cec_msg` and pass it to | |
| 56 | −:ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`. The :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` is only available if | |
| 58 | +To send a CEC message the application has to fill in the struct | |
| 59 | +:c:type:` cec_msg` and pass it to :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>`. | |
| 60 | +The :ref:`ioctl CEC_TRANSMIT <CEC_TRANSMIT>` is only available if | |
| 57 | 61 | ``CEC_CAP_TRANSMIT`` is set. If there is no more room in the transmit |
| 58 | 62 | queue, then it will return -1 and set errno to the ``EBUSY`` error code. |
| 59 | 63 | The transmit queue has enough room for 18 messages (about 1 second worth |
| @@ -71,7 +75,11 @@ checked against the received messages to find the corresponding transmit · 11 unmodified lines | ||
| 71 | 75 | result. |
| 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 | 84 | .. flat-table:: struct cec_msg |
| 77 | 85 | :header-rows: 0 |
| @@ -87,7 +95,7 @@ result. · 9 unmodified lines | ||
| 87 | 95 | |
| 88 | 96 | - Timestamp in ns of when the last byte of the message was transmitted. |
| 89 | 97 | 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 | 100 | - .. row 2 |
| 93 | 101 | |
| @@ -97,7 +105,7 @@ result. · 3 unmodified lines | ||
| 97 | 105 | |
| 98 | 106 | - Timestamp in ns of when the last byte of the message was received. |
| 99 | 107 | 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 | 110 | - .. row 3 |
| 103 | 111 | |
| @@ -247,6 +255,7 @@ result. · 143 unmodified lines | ||
| 247 | 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 | 260 | .. _cec-tx-status: |
| 252 | 261 | |
| @@ -315,6 +324,7 @@ result. · 62 unmodified lines | ||
| 315 | 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 | 329 | .. _cec-rx-status: |
| 320 | 330 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_BILINGUAL_CHANNEL_SELECT |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -25,20 +27,13 @@ Arguments · 3 unmodified lines | ||
| 25 | 27 | :header-rows: 0 |
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | + - | |
| 30 | 31 | |
| 31 | 32 | - int fd |
| 32 | 33 | |
| 33 | 34 | - File descriptor returned by a previous call to open(). |
| 34 | 35 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_BILINGUAL_CHANNEL_SELECT for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 36 | + - | |
| 42 | 37 | |
| 43 | 38 | - audio_channel_select_t ch |
| 44 | 39 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_CHANNEL_SELECT |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -26,19 +28,13 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | 30 | |
| 29 | − - .. row 1 | |
| 31 | + - | |
| 30 | 32 | |
| 31 | 33 | - int fd |
| 32 | 34 | |
| 33 | 35 | - File descriptor returned by a previous call to open(). |
| 34 | 36 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_CHANNEL_SELECT for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 42 | 38 | |
| 43 | 39 | - audio_channel_select_t ch |
| 44 | 40 | |
| @@ -11,12 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_CLEAR_BUFFER |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 16 | 17 | -------- |
| 17 | 18 | |
| 18 | −.. cpp:function:: int ioctl(int fd, int request = AUDIO_CLEAR_BUFFER) | |
| 19 | − | |
| 19 | +.. c:function:: int ioctl(int fd, AUDIO_CLEAR_BUFFER) | |
| 20 | + :name: AUDIO_CLEAR_BUFFER | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| @@ -32,13 +33,6 @@ Arguments · 9 unmodified lines | ||
| 32 | 33 | |
| 33 | 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 | − | |
| 42 | 36 | Description |
| 43 | 37 | ----------- |
| 44 | 38 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_CONTINUE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -32,13 +34,6 @@ Arguments · 10 unmodified lines | ||
| 32 | 34 | |
| 33 | 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 | − | |
| 42 | 37 | Description |
| 43 | 38 | ----------- |
| 44 | 39 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | DVB audio close() |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | DVB audio open() |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -80,6 +82,8 @@ AUDIO_GET_STATUS. All other call will return with an error code. · 58 unmodified lines | ||
| 80 | 82 | Return Value |
| 81 | 83 | ------------ |
| 82 | 84 | |
| 85 | +.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| | |
| 86 | + | |
| 83 | 87 | .. flat-table:: |
| 84 | 88 | :header-rows: 0 |
| 85 | 89 | :stub-columns: 0 |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | DVB audio write() |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_GET_CAPABILITIES |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -26,19 +28,13 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | 30 | |
| 29 | − - .. row 1 | |
| 31 | + - | |
| 30 | 32 | |
| 31 | 33 | - int fd |
| 32 | 34 | |
| 33 | 35 | - File descriptor returned by a previous call to open(). |
| 34 | 36 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_GET_CAPABILITIES for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 42 | 38 | |
| 43 | 39 | - unsigned int \*cap |
| 44 | 40 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_GET_PTS |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -26,19 +28,13 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | 30 | |
| 29 | − - .. row 1 | |
| 31 | + - | |
| 30 | 32 | |
| 31 | 33 | - int fd |
| 32 | 34 | |
| 33 | 35 | - File descriptor returned by a previous call to open(). |
| 34 | 36 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_GET_PTS for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 42 | 38 | |
| 43 | 39 | - __u64 \*pts |
| 44 | 40 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_GET_STATUS |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -26,19 +28,13 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | 30 | |
| 29 | − - .. row 1 | |
| 31 | + - | |
| 30 | 32 | |
| 31 | 33 | - int fd |
| 32 | 34 | |
| 33 | 35 | - File descriptor returned by a previous call to open(). |
| 34 | 36 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_GET_STATUS for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 42 | 38 | |
| 43 | 39 | - struct audio_status \*status |
| 44 | 40 | |
| @@ -11,12 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_PAUSE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 16 | 17 | -------- |
| 17 | 18 | |
| 18 | −.. cpp:function:: int ioctl(int fd, int request = AUDIO_PAUSE) | |
| 19 | − | |
| 19 | +.. c:function:: int ioctl(int fd, AUDIO_PAUSE) | |
| 20 | + :name: AUDIO_PAUSE | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| @@ -32,12 +33,6 @@ Arguments · 9 unmodified lines | ||
| 32 | 33 | |
| 33 | 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 | |
| 42 | 37 | Description |
| 43 | 38 | ----------- |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_PLAY |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -32,13 +34,6 @@ Arguments · 10 unmodified lines | ||
| 32 | 34 | |
| 33 | 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 | − | |
| 42 | 37 | Description |
| 43 | 38 | ----------- |
| 44 | 39 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_SELECT_SOURCE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -26,19 +28,13 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | 30 | |
| 29 | − - .. row 1 | |
| 31 | + - | |
| 30 | 32 | |
| 31 | 33 | - int fd |
| 32 | 34 | |
| 33 | 35 | - File descriptor returned by a previous call to open(). |
| 34 | 36 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_SELECT_SOURCE for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 42 | 38 | |
| 43 | 39 | - audio_stream_source_t source |
| 44 | 40 | |
| @@ -11,12 +11,14 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_SET_ATTRIBUTES |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 15 | + | |
| 14 | 16 | |
| 15 | 17 | Synopsis |
| 16 | 18 | -------- |
| 17 | 19 | |
| 18 | −.. cpp:function:: int ioctl(fd, int request = AUDIO_SET_ATTRIBUTES, audio_attributes_t attr ) | |
| 19 | − | |
| 20 | +.. c:function:: int ioctl(fd, AUDIO_SET_ATTRIBUTES, struct audio_attributes *attr ) | |
| 21 | + :name: AUDIO_SET_ATTRIBUTES | |
| 20 | 22 | |
| 21 | 23 | Arguments |
| 22 | 24 | --------- |
| @@ -26,19 +28,13 @@ Arguments · 3 unmodified lines | ||
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | 30 | |
| 29 | − - .. row 1 | |
| 31 | + - | |
| 30 | 32 | |
| 31 | 33 | - int fd |
| 32 | 34 | |
| 33 | 35 | - File descriptor returned by a previous call to open(). |
| 34 | 36 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_SET_ATTRIBUTES for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 42 | 38 | |
| 43 | 39 | - audio_attributes_t attr |
| 44 | 40 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_SET_AV_SYNC |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -26,33 +28,21 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | 30 | |
| 29 | − - .. row 1 | |
| 31 | + - | |
| 30 | 32 | |
| 31 | 33 | - int fd |
| 32 | 34 | |
| 33 | 35 | - File descriptor returned by a previous call to open(). |
| 34 | 36 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_AV_SYNC for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 42 | 38 | |
| 43 | 39 | - boolean state |
| 44 | 40 | |
| 45 | 41 | - Tells the DVB subsystem if A/V synchronization shall be ON or OFF. |
| 46 | 42 | |
| 47 | − - .. row 4 | |
| 48 | − | |
| 49 | − - | |
| 50 | − - TRUE AV-sync ON | |
| 51 | − | |
| 52 | − - .. row 5 | |
| 43 | + TRUE: AV-sync ON | |
| 53 | 44 | |
| 54 | − - | |
| 55 | − - FALSE AV-sync OFF | |
| 45 | + FALSE: AV-sync OFF | |
| 56 | 46 | |
| 57 | 47 | |
| 58 | 48 | Description |
| @@ -11,12 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_SET_BYPASS_MODE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 16 | 17 | -------- |
| 17 | 18 | |
| 18 | −.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_BYPASS_MODE, boolean mode) | |
| 19 | − | |
| 19 | +.. c:function:: int ioctl(int fd, AUDIO_SET_BYPASS_MODE, boolean mode) | |
| 20 | + :name: AUDIO_SET_BYPASS_MODE | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| @@ -26,34 +27,22 @@ Arguments · 3 unmodified lines | ||
| 26 | 27 | :stub-columns: 0 |
| 27 | 28 | |
| 28 | 29 | |
| 29 | − - .. row 1 | |
| 30 | + - | |
| 30 | 31 | |
| 31 | 32 | - int fd |
| 32 | 33 | |
| 33 | 34 | - File descriptor returned by a previous call to open(). |
| 34 | 35 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_SET_BYPASS_MODE for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 36 | + - | |
| 42 | 37 | |
| 43 | 38 | - boolean mode |
| 44 | 39 | |
| 45 | 40 | - Enables or disables the decoding of the current Audio stream in |
| 46 | 41 | the DVB subsystem. |
| 47 | 42 | |
| 48 | − - .. row 4 | |
| 49 | − | |
| 50 | − - | |
| 51 | − - TRUE Bypass is disabled | |
| 52 | − | |
| 53 | − - .. row 5 | |
| 43 | + TRUE: Bypass is disabled | |
| 54 | 44 | |
| 55 | − - | |
| 56 | − - FALSE Bypass is enabled | |
| 45 | + FALSE: Bypass is enabled | |
| 57 | 46 | |
| 58 | 47 | |
| 59 | 48 | Description |
| @@ -11,12 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_SET_EXT_ID |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 16 | 17 | -------- |
| 17 | 18 | |
| 18 | −.. cpp:function:: int ioctl(fd, int request = AUDIO_SET_EXT_ID, int id) | |
| 19 | − | |
| 19 | +.. c:function:: int ioctl(fd, AUDIO_SET_EXT_ID, int id) | |
| 20 | + :name: AUDIO_SET_EXT_ID | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| @@ -26,19 +27,13 @@ Arguments · 3 unmodified lines | ||
| 26 | 27 | :stub-columns: 0 |
| 27 | 28 | |
| 28 | 29 | |
| 29 | − - .. row 1 | |
| 30 | + - | |
| 30 | 31 | |
| 31 | 32 | - int fd |
| 32 | 33 | |
| 33 | 34 | - File descriptor returned by a previous call to open(). |
| 34 | 35 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_SET_EXT_ID for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 36 | + - | |
| 42 | 37 | |
| 43 | 38 | - int id |
| 44 | 39 | |
| @@ -11,12 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_SET_ID |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 16 | 17 | -------- |
| 17 | 18 | |
| 18 | −.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_ID, int id) | |
| 19 | − | |
| 19 | +.. c:function:: int ioctl(int fd, AUDIO_SET_ID, int id) | |
| 20 | + :name: AUDIO_SET_ID | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| @@ -26,19 +27,13 @@ Arguments · 3 unmodified lines | ||
| 26 | 27 | :stub-columns: 0 |
| 27 | 28 | |
| 28 | 29 | |
| 29 | − - .. row 1 | |
| 30 | + - | |
| 30 | 31 | |
| 31 | 32 | - int fd |
| 32 | 33 | |
| 33 | 34 | - File descriptor returned by a previous call to open(). |
| 34 | 35 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_SET_ID for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 36 | + - | |
| 42 | 37 | |
| 43 | 38 | - int id |
| 44 | 39 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_SET_KARAOKE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -26,19 +28,13 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | 30 | |
| 29 | − - .. row 1 | |
| 31 | + - | |
| 30 | 32 | |
| 31 | 33 | - int fd |
| 32 | 34 | |
| 33 | 35 | - File descriptor returned by a previous call to open(). |
| 34 | 36 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_SET_KARAOKE for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 42 | 38 | |
| 43 | 39 | - audio_karaoke_t \*karaoke |
| 44 | 40 | |
| @@ -11,12 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_SET_MIXER |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 16 | 17 | -------- |
| 17 | 18 | |
| 18 | −.. cpp:function:: int ioctl(int fd, int request = AUDIO_SET_MIXER, audio_mixer_t *mix) | |
| 19 | − | |
| 19 | +.. c:function:: int ioctl(int fd, AUDIO_SET_MIXER, struct audio_mixer *mix) | |
| 20 | + :name: AUDIO_SET_MIXER | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| @@ -26,19 +27,13 @@ Arguments · 3 unmodified lines | ||
| 26 | 27 | :stub-columns: 0 |
| 27 | 28 | |
| 28 | 29 | |
| 29 | − - .. row 1 | |
| 30 | + - | |
| 30 | 31 | |
| 31 | 32 | - int fd |
| 32 | 33 | |
| 33 | 34 | - File descriptor returned by a previous call to open(). |
| 34 | 35 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_SET_ID for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 36 | + - | |
| 42 | 37 | |
| 43 | 38 | - audio_mixer_t \*mix |
| 44 | 39 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_SET_MUTE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -26,33 +28,21 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | 30 | |
| 29 | − - .. row 1 | |
| 31 | + - | |
| 30 | 32 | |
| 31 | 33 | - int fd |
| 32 | 34 | |
| 33 | 35 | - File descriptor returned by a previous call to open(). |
| 34 | 36 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_SET_MUTE for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 42 | 38 | |
| 43 | 39 | - boolean state |
| 44 | 40 | |
| 45 | 41 | - Indicates if audio device shall mute or not. |
| 46 | 42 | |
| 47 | − - .. row 4 | |
| 48 | − | |
| 49 | − - | |
| 50 | − - TRUE Audio Mute | |
| 51 | − | |
| 52 | − - .. row 5 | |
| 43 | + TRUE: Audio Mute | |
| 53 | 44 | |
| 54 | − - | |
| 55 | − - FALSE Audio Un-mute | |
| 45 | + FALSE: Audio Un-mute | |
| 56 | 46 | |
| 57 | 47 | |
| 58 | 48 | Description |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_SET_STREAMTYPE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -26,19 +28,13 @@ Arguments · 4 unmodified lines | ||
| 26 | 28 | :stub-columns: 0 |
| 27 | 29 | |
| 28 | 30 | |
| 29 | − - .. row 1 | |
| 31 | + - | |
| 30 | 32 | |
| 31 | 33 | - int fd |
| 32 | 34 | |
| 33 | 35 | - File descriptor returned by a previous call to open(). |
| 34 | 36 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals AUDIO_SET_STREAMTYPE for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 42 | 38 | |
| 43 | 39 | - int type |
| 44 | 40 | |
| @@ -11,12 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | AUDIO_STOP |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 16 | 17 | -------- |
| 17 | 18 | |
| 18 | −.. cpp:function:: int ioctl(int fd, int request = AUDIO_STOP) | |
| 19 | − | |
| 19 | +.. c:function:: int ioctl(int fd, AUDIO_STOP) | |
| 20 | + :name: AUDIO_STOP | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| @@ -32,12 +33,6 @@ Arguments · 9 unmodified lines | ||
| 32 | 33 | |
| 33 | 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 | |
| 42 | 37 | Description |
| 43 | 38 | ----------- |
| @@ -9,11 +9,7 @@ Audio Data Types · 8 unmodified lines | ||
| 9 | 9 | This section describes the structures, data types and defines used when |
| 10 | 10 | talking to the audio device. |
| 11 | 11 | |
| 12 | − | |
| 13 | −.. _audio-stream-source-t: | |
| 14 | − | |
| 15 | −audio_stream_source_t | |
| 16 | −===================== | |
| 12 | +.. c:type:: audio_stream_source | |
| 17 | 13 | |
| 18 | 14 | The audio stream source is set through the AUDIO_SELECT_SOURCE call |
| 19 | 15 | and can take the following values, depending on whether we are replaying |
| @@ -33,10 +29,7 @@ AUDIO_SOURCE_MEMORY is selected the stream comes from the application · 13 unmodified lines | ||
| 33 | 29 | through the ``write()`` system call. |
| 34 | 30 | |
| 35 | 31 | |
| 36 | −.. _audio-play-state-t: | |
| 37 | − | |
| 38 | −audio_play_state_t | |
| 39 | −================== | |
| 32 | +.. c:type:: audio_play_state | |
| 40 | 33 | |
| 41 | 34 | The following values can be returned by the AUDIO_GET_STATUS call |
| 42 | 35 | representing the state of audio playback. |
| @@ -51,10 +44,7 @@ representing the state of audio playback. · 8 unmodified lines | ||
| 51 | 44 | } audio_play_state_t; |
| 52 | 45 | |
| 53 | 46 | |
| 54 | −.. _audio-channel-select-t: | |
| 55 | − | |
| 56 | −audio_channel_select_t | |
| 57 | −====================== | |
| 47 | +.. c:type:: audio_channel_select | |
| 58 | 48 | |
| 59 | 49 | The audio channel selected via AUDIO_CHANNEL_SELECT is determined by |
| 60 | 50 | the following values. |
| @@ -71,10 +61,7 @@ the following values. · 10 unmodified lines | ||
| 71 | 61 | } audio_channel_select_t; |
| 72 | 62 | |
| 73 | 63 | |
| 74 | −.. _audio-status: | |
| 75 | − | |
| 76 | −struct audio_status | |
| 77 | −=================== | |
| 64 | +.. c:type:: audio_status | |
| 78 | 65 | |
| 79 | 66 | The AUDIO_GET_STATUS call returns the following structure informing |
| 80 | 67 | about various states of the playback operation. |
| @@ -93,10 +80,7 @@ about various states of the playback operation. · 12 unmodified lines | ||
| 93 | 80 | } audio_status_t; |
| 94 | 81 | |
| 95 | 82 | |
| 96 | −.. _audio-mixer: | |
| 97 | − | |
| 98 | −struct audio_mixer | |
| 99 | −================== | |
| 83 | +.. c:type:: audio_mixer | |
| 100 | 84 | |
| 101 | 85 | The following structure is used by the AUDIO_SET_MIXER call to set the |
| 102 | 86 | audio volume. |
| @@ -131,11 +115,7 @@ following bits set according to the hardwares capabilities. · 28 unmodified lines | ||
| 131 | 115 | #define AUDIO_CAP_SDDS 128 |
| 132 | 116 | #define AUDIO_CAP_AC3 256 |
| 133 | 117 | |
| 134 | − | |
| 135 | −.. _audio-karaoke: | |
| 136 | − | |
| 137 | −struct audio_karaoke | |
| 138 | −==================== | |
| 118 | +.. c:type:: audio_karaoke | |
| 139 | 119 | |
| 140 | 120 | The 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 | ||
| 155 | 135 | Melody is non-zero, the melody channel gets mixed into left and right. |
| 156 | 136 | |
| 157 | 137 | |
| 158 | −.. _audio-attributes-t: | |
| 159 | − | |
| 160 | −audio attributes | |
| 161 | −================ | |
| 138 | +.. c:type:: audio_attributes | |
| 162 | 139 | |
| 163 | 140 | The following attributes can be set by a call to AUDIO_SET_ATTRIBUTES: |
| 164 | 141 | |
| @@ -15,28 +15,20 @@ DVB CA close() · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 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 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 35 | 27 | |
| 36 | 28 | Description |
| 37 | 29 | ----------- |
| 38 | 30 | |
| 39 | −This system call closes a previously opened audio device. | |
| 31 | +This system call closes a previously opened CA device. | |
| 40 | 32 | |
| 41 | 33 | |
| 42 | 34 | Return Value |
| @@ -15,48 +15,35 @@ DVB CA open() · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 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 | 31 | .. flat-table:: |
| 25 | 32 | :header-rows: 0 |
| 26 | 33 | :stub-columns: 0 |
| 27 | 34 | |
| 35 | + - | |
| 36 | + - O_RDONLY | |
| 37 | + - read-only access | |
| 28 | 38 | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - const char \*deviceName | |
| 32 | − | |
| 33 | − - Name of specific video device. | |
| 39 | + - | |
| 40 | + - O_RDWR | |
| 41 | + - read/write access | |
| 34 | 42 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int flags | |
| 38 | − | |
| 39 | − - A bit-wise OR of the following flags: | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - | |
| 44 | − - O_RDONLY read-only access | |
| 45 | − | |
| 46 | − - .. row 4 | |
| 47 | − | |
| 48 | − - | |
| 49 | − - O_RDWR read/write access | |
| 50 | − | |
| 51 | − - .. row 5 | |
| 52 | − | |
| 53 | − - | |
| 54 | − - O_NONBLOCK open in non-blocking mode | |
| 55 | − | |
| 56 | − - .. row 6 | |
| 57 | − | |
| 58 | − - | |
| 59 | − - (blocking mode is the default) | |
| 43 | + - | |
| 44 | + - O_NONBLOCK | |
| 45 | + - open in non-blocking mode | |
| 46 | + (blocking mode is the default) | |
| 60 | 47 | |
| 61 | 48 | |
| 62 | 49 | Description |
| @@ -79,6 +66,8 @@ the device in this mode will fail, and an error code will be returned. · 16 unmodified lines | ||
| 79 | 66 | Return Value |
| 80 | 67 | ------------ |
| 81 | 68 | |
| 69 | +.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| | |
| 70 | + | |
| 82 | 71 | .. flat-table:: |
| 83 | 72 | :header-rows: 0 |
| 84 | 73 | :stub-columns: 0 |
| @@ -15,40 +15,51 @@ CA_GET_CAP · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 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 2 | |
| 31 | +.. c:type:: struct ca_caps | |
| 36 | 32 | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals CA_GET_CAP for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - ca_caps_t * | |
| 33 | +.. flat-table:: struct ca_caps | |
| 34 | + :header-rows: 1 | |
| 35 | + :stub-columns: 0 | |
| 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 | |
| 48 | 59 | Description |
| 49 | 60 | ----------- |
| 50 | 61 | |
| 51 | −This ioctl is undocumented. Documentation is welcome. | |
| 62 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 52 | 63 | |
| 53 | 64 | |
| 54 | 65 | Return Value |
| @@ -15,40 +15,44 @@ CA_GET_DESCR_INFO · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. cpp:function:: int ioctl(fd, int request = CA_GET_DESCR_INFO, ca_descr_info_t *) | |
| 19 | − | |
| 18 | +.. c:function:: int ioctl(fd, CA_GET_DESCR_INFO, struct ca_descr_info *desc) | |
| 19 | + :name: CA_GET_DESCR_INFO | |
| 20 | 20 | |
| 21 | 21 | Arguments |
| 22 | 22 | --------- |
| 23 | 23 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 24 | +``fd`` | |
| 25 | + File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 30 | 26 | |
| 31 | − - int fd | |
| 27 | +``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 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals CA_GET_DESCR_INFO for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 32 | +.. flat-table:: struct ca_descr_info | |
| 33 | + :header-rows: 1 | |
| 34 | + :stub-columns: 0 | |
| 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 | |
| 48 | 52 | Description |
| 49 | 53 | ----------- |
| 50 | 54 | |
| 51 | −This ioctl is undocumented. Documentation is welcome. | |
| 55 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 52 | 56 | |
| 53 | 57 | |
| 54 | 58 | Return Value |
| @@ -15,40 +15,55 @@ CA_GET_MSG · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 28 | 27 | |
| 29 | − - .. row 1 | |
| 28 | +``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 2 | |
| 36 | − | |
| 37 | − - int request | |
| 34 | +.. flat-table:: struct ca_msg | |
| 35 | + :header-rows: 1 | |
| 36 | + :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 3 | |
| 47 | + - | |
| 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 | |
| 48 | 63 | Description |
| 49 | 64 | ----------- |
| 50 | 65 | |
| 51 | −This ioctl is undocumented. Documentation is welcome. | |
| 66 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 52 | 67 | |
| 53 | 68 | |
| 54 | 69 | Return Value |
| @@ -15,40 +15,106 @@ CA_GET_SLOT_INFO · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by a previous call to :c:func:`open() <cec-open>`. | |
| 27 | + | |
| 28 | +``info`` | |
| 29 | + Pointer to struct c:type:`ca_slot_info`. | |
| 30 | + | |
| 31 | +.. _ca_slot_info_type: | |
| 32 | + | |
| 33 | +.. flat-table:: ca_slot_info types | |
| 34 | + :header-rows: 1 | |
| 26 | 35 | :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 1 | |
| 72 | + - | |
| 73 | + - type | |
| 74 | + - name | |
| 75 | + - description | |
| 30 | 76 | |
| 31 | − - int fd | |
| 77 | + - | |
| 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 2 | |
| 87 | +.. c:type:: ca_slot_info | |
| 36 | 88 | |
| 37 | − - int request | |
| 89 | +.. 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 3 | |
| 98 | + - | |
| 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 | |
| 48 | 114 | Description |
| 49 | 115 | ----------- |
| 50 | 116 | |
| 51 | −This ioctl is undocumented. Documentation is welcome. | |
| 117 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 52 | 118 | |
| 53 | 119 | |
| 54 | 120 | Return Value |
| @@ -15,34 +15,20 @@ CA_RESET · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 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 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals CA_RESET for this command. | |
| 40 | − | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by a previous call to :c:func:`open() <cec-open>`. | |
| 41 | 27 | |
| 42 | 28 | Description |
| 43 | 29 | ----------- |
| 44 | 30 | |
| 45 | −This ioctl is undocumented. Documentation is welcome. | |
| 31 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 46 | 32 | |
| 47 | 33 | |
| 48 | 34 | Return Value |
| @@ -15,40 +15,24 @@ CA_SEND_MSG · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by a previous call to :c:func:`open() <cec-open>`. | |
| 27 | 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_SEND_MSG for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - ca_msg_t \* | |
| 44 | − | |
| 45 | − - Undocumented. | |
| 28 | +``msg`` | |
| 29 | + Pointer to struct :c:type:`ca_msg`. | |
| 46 | 30 | |
| 47 | 31 | |
| 48 | 32 | Description |
| 49 | 33 | ----------- |
| 50 | 34 | |
| 51 | −This ioctl is undocumented. Documentation is welcome. | |
| 35 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 52 | 36 | |
| 53 | 37 | |
| 54 | 38 | Return Value |
| @@ -15,40 +15,24 @@ CA_SET_DESCR · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by a previous call to :c:func:`open() <cec-open>`. | |
| 27 | 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_SET_DESCR for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - ca_descr_t \* | |
| 44 | − | |
| 45 | − - Undocumented. | |
| 28 | +``msg`` | |
| 29 | + Pointer to struct :c:type:`ca_descr`. | |
| 46 | 30 | |
| 47 | 31 | |
| 48 | 32 | Description |
| 49 | 33 | ----------- |
| 50 | 34 | |
| 51 | −This ioctl is undocumented. Documentation is welcome. | |
| 35 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 52 | 36 | |
| 53 | 37 | |
| 54 | 38 | Return Value |
| @@ -15,40 +15,41 @@ CA_SET_PID · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 30 | 27 | |
| 31 | − - int fd | |
| 28 | +``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 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals CA_SET_PID for this command. | |
| 33 | +.. flat-table:: struct ca_pid | |
| 34 | + :header-rows: 1 | |
| 35 | + :stub-columns: 0 | |
| 40 | 36 | |
| 41 | − - .. row 3 | |
| 37 | + - | |
| 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 | |
| 48 | 49 | Description |
| 49 | 50 | ----------- |
| 50 | 51 | |
| 51 | −This ioctl is undocumented. Documentation is welcome. | |
| 52 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 52 | 53 | |
| 53 | 54 | |
| 54 | 55 | Return Value |
| @@ -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 | |
| 12 | 12 | ca_slot_info_t |
| 13 | 13 | ============== |
| @@ -31,7 +31,7 @@ ca_slot_info_t · 17 unmodified lines | ||
| 31 | 31 | } ca_slot_info_t; |
| 32 | 32 | |
| 33 | 33 | |
| 34 | −.. _ca-descr-info: | |
| 34 | +.. c:type:: ca_descr_info | |
| 35 | 35 | |
| 36 | 36 | ca_descr_info_t |
| 37 | 37 | =============== |
| @@ -48,7 +48,7 @@ ca_descr_info_t · 10 unmodified lines | ||
| 48 | 48 | } ca_descr_info_t; |
| 49 | 49 | |
| 50 | 50 | |
| 51 | −.. _ca-caps: | |
| 51 | +.. c:type:: ca_caps | |
| 52 | 52 | |
| 53 | 53 | ca_caps_t |
| 54 | 54 | ========= |
| @@ -64,7 +64,7 @@ ca_caps_t · 9 unmodified lines | ||
| 64 | 64 | } ca_cap_t; |
| 65 | 65 | |
| 66 | 66 | |
| 67 | −.. _ca-msg: | |
| 67 | +.. c:type:: ca_msg | |
| 68 | 68 | |
| 69 | 69 | ca_msg_t |
| 70 | 70 | ======== |
| @@ -81,7 +81,7 @@ ca_msg_t · 10 unmodified lines | ||
| 81 | 81 | } ca_msg_t; |
| 82 | 82 | |
| 83 | 83 | |
| 84 | −.. _ca-descr: | |
| 84 | +.. c:type:: ca_descr | |
| 85 | 85 | |
| 86 | 86 | ca_descr_t |
| 87 | 87 | ========== |
| @@ -96,7 +96,7 @@ ca_descr_t · 8 unmodified lines | ||
| 96 | 96 | } ca_descr_t; |
| 97 | 97 | |
| 98 | 98 | |
| 99 | −.. _ca-pid: | |
| 99 | +.. c:type:: ca_pid | |
| 100 | 100 | |
| 101 | 101 | ca-pid |
| 102 | 102 | ====== |
| @@ -15,34 +15,18 @@ DMX_ADD_PID · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 27 | 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_ADD_PID for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - __u16 * | |
| 44 | − | |
| 45 | − - PID number to be filtered. | |
| 28 | +``pid`` | |
| 29 | + PID number to be filtered. | |
| 46 | 30 | |
| 47 | 31 | |
| 48 | 32 | Description |
| @@ -15,23 +15,15 @@ DVB demux close() · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 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 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 35 | 27 | |
| 36 | 28 | Description |
| 37 | 29 | ----------- |
| @@ -15,43 +15,34 @@ DVB demux open() · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. cpp:function:: int open(const char *deviceName, int flags) | |
| 19 | − | |
| 18 | +.. c:function:: int open(const char *deviceName, int flags) | |
| 19 | + :name: dvb-dmx-open | |
| 20 | 20 | |
| 21 | 21 | Arguments |
| 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 | 30 | .. flat-table:: |
| 25 | 31 | :header-rows: 0 |
| 26 | 32 | :stub-columns: 0 |
| 27 | 33 | |
| 34 | + - | |
| 35 | + - O_RDONLY | |
| 36 | + - read-only access | |
| 28 | 37 | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - const char \*deviceName | |
| 32 | − | |
| 33 | − - Name of demux device. | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int flags | |
| 38 | − | |
| 39 | − - A bit-wise OR of the following flags: | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - | |
| 44 | − - O_RDWR read/write access | |
| 45 | − | |
| 46 | − - .. row 4 | |
| 47 | − | |
| 48 | − - | |
| 49 | − - O_NONBLOCK open in non-blocking mode | |
| 50 | − | |
| 51 | − - .. row 5 | |
| 38 | + - | |
| 39 | + - O_RDWR | |
| 40 | + - read/write access | |
| 52 | 41 | |
| 53 | − - | |
| 54 | − - (blocking mode is the default) | |
| 42 | + - | |
| 43 | + - O_NONBLOCK | |
| 44 | + - open in non-blocking mode | |
| 45 | + (blocking mode is the default) | |
| 55 | 46 | |
| 56 | 47 | |
| 57 | 48 | Description |
| @@ -15,35 +15,20 @@ DVB demux read() · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. cpp:function:: size_t read(int fd, void *buf, size_t count) | |
| 19 | − | |
| 18 | +.. c:function:: size_t read(int fd, void *buf, size_t count) | |
| 19 | + :name: dvb-dmx-read | |
| 20 | 20 | |
| 21 | 21 | Arguments |
| 22 | 22 | --------- |
| 23 | 23 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 24 | +``fd`` | |
| 25 | + File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 34 | 26 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - void \*buf | |
| 38 | − | |
| 39 | − - Pointer to the buffer to be used for returned filtered data. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - size_t count | |
| 44 | − | |
| 45 | − - Size of buf. | |
| 27 | + ``buf`` | |
| 28 | + Buffer to be filled | |
| 46 | 29 | |
| 30 | +``count`` | |
| 31 | + Max number of bytes to read | |
| 47 | 32 | |
| 48 | 33 | Description |
| 49 | 34 | ----------- |
| @@ -53,10 +38,11 @@ data. The filtered data is transferred from the driver’s internal · 3 unmodified lines | ||
| 53 | 38 | circular buffer to buf. The maximum amount of data to be transferred is |
| 54 | 39 | implied by count. |
| 55 | 40 | |
| 56 | − | |
| 57 | 41 | Return Value |
| 58 | 42 | ------------ |
| 59 | 43 | |
| 44 | +.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| | |
| 45 | + | |
| 60 | 46 | .. flat-table:: |
| 61 | 47 | :header-rows: 0 |
| 62 | 48 | :stub-columns: 0 |
| @@ -15,35 +15,20 @@ DVB demux write() · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. cpp:function:: ssize_t write(int fd, const void *buf, size_t count) | |
| 19 | − | |
| 18 | +.. c:function:: ssize_t write(int fd, const void *buf, size_t count) | |
| 19 | + :name: dvb-dmx-write | |
| 20 | 20 | |
| 21 | 21 | Arguments |
| 22 | 22 | --------- |
| 23 | 23 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 24 | +``fd`` | |
| 25 | + File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`. | |
| 34 | 26 | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - void \*buf | |
| 38 | − | |
| 39 | − - Pointer to the buffer containing the Transport Stream. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - size_t count | |
| 44 | − | |
| 45 | − - Size of buf. | |
| 27 | +``buf`` | |
| 28 | + Buffer with data to be written | |
| 46 | 29 | |
| 30 | +``count`` | |
| 31 | + Number of bytes at the buffer | |
| 47 | 32 | |
| 48 | 33 | Description |
| 49 | 34 | ----------- |
| @@ -59,11 +44,12 @@ The amount of data to be transferred is implied by count. · 9 unmodified lines | ||
| 59 | 44 | Return Value |
| 60 | 45 | ------------ |
| 61 | 46 | |
| 47 | +.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| | |
| 48 | + | |
| 62 | 49 | .. flat-table:: |
| 63 | 50 | :header-rows: 0 |
| 64 | 51 | :stub-columns: 0 |
| 65 | 52 | |
| 66 | − | |
| 67 | 53 | - .. row 1 |
| 68 | 54 | |
| 69 | 55 | - ``EWOULDBLOCK`` |
| @@ -15,41 +15,23 @@ DMX_GET_CAPS · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. cpp:function:: int ioctl(fd, int request = DMX_GET_CAPS, dmx_caps_t *) | |
| 19 | − | |
| 18 | +.. c:function:: int ioctl(fd, DMX_GET_CAPS, struct dmx_caps *caps) | |
| 19 | + :name: DMX_GET_CAPS | |
| 20 | 20 | |
| 21 | 21 | Arguments |
| 22 | 22 | --------- |
| 23 | 23 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 24 | +``fd`` | |
| 25 | + File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 36 | 26 | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals DMX_GET_CAPS for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - dmx_caps_t * | |
| 44 | − | |
| 45 | − - Undocumented. | |
| 27 | +``caps`` | |
| 28 | + Pointer to struct :c:type:`dmx_caps` | |
| 46 | 29 | |
| 47 | 30 | |
| 48 | 31 | Description |
| 49 | 32 | ----------- |
| 50 | 33 | |
| 51 | −This ioctl is undocumented. Documentation is welcome. | |
| 52 | − | |
| 34 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 53 | 35 | |
| 54 | 36 | Return Value |
| 55 | 37 | ------------ |
| @@ -15,34 +15,18 @@ DMX_GET_EVENT · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 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 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals DMX_GET_EVENT for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - struct dmx_event \*ev | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 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 | |
| 48 | 32 | Description |
| @@ -15,40 +15,23 @@ DMX_GET_PES_PIDS · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. cpp:function:: int ioctl(fd, int request = DMX_GET_PES_PIDS, __u16[5]) | |
| 19 | − | |
| 18 | +.. c:function:: int ioctl(fd, DMX_GET_PES_PIDS, __u16 pids[5]) | |
| 19 | + :name: DMX_GET_PES_PIDS | |
| 20 | 20 | |
| 21 | 21 | Arguments |
| 22 | 22 | --------- |
| 23 | 23 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals DMX_GET_PES_PIDS for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - __u16[5] | |
| 24 | +``fd`` | |
| 25 | + File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 44 | 26 | |
| 45 | − - Undocumented. | |
| 27 | +``pids`` | |
| 28 | + Undocumented. | |
| 46 | 29 | |
| 47 | 30 | |
| 48 | 31 | Description |
| 49 | 32 | ----------- |
| 50 | 33 | |
| 51 | −This ioctl is undocumented. Documentation is welcome. | |
| 34 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 52 | 35 | |
| 53 | 36 | |
| 54 | 37 | Return Value |
| @@ -15,34 +15,17 @@ DMX_GET_STC · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. cpp:function:: int ioctl( int fd, int request = DMX_GET_STC, struct dmx_stc *stc) | |
| 19 | − | |
| 18 | +.. c:function:: int ioctl( int fd, DMX_GET_STC, struct dmx_stc *stc) | |
| 19 | + :name: DMX_GET_STC | |
| 20 | 20 | |
| 21 | 21 | Arguments |
| 22 | 22 | --------- |
| 23 | 23 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 24 | +``fd`` | |
| 25 | + File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 32 | 26 | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals DMX_GET_STC for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - struct dmx_stc \*stc | |
| 44 | − | |
| 45 | − - Pointer to the location where the stc is to be stored. | |
| 27 | +``stc`` | |
| 28 | + Pointer to the location where the stc is to be stored. | |
| 46 | 29 | |
| 47 | 30 | |
| 48 | 31 | Description |
| @@ -63,8 +46,6 @@ On success 0 is returned, on error -1 and the ``errno`` variable is set · 14 unmodified lines | ||
| 63 | 46 | appropriately. The generic error codes are described at the |
| 64 | 47 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| 65 | 48 | |
| 66 | − | |
| 67 | − | |
| 68 | 49 | .. flat-table:: |
| 69 | 50 | :header-rows: 0 |
| 70 | 51 | :stub-columns: 0 |
| @@ -15,34 +15,18 @@ DMX_REMOVE_PID · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 22 | 23 | --------- |
| 23 | 24 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 27 | 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_REMOVE_PID for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - __u16 * | |
| 44 | − | |
| 45 | − - PID of the PES filter to be removed. | |
| 28 | +``pid`` | |
| 29 | + PID of the PES filter to be removed. | |
| 46 | 30 | |
| 47 | 31 | |
| 48 | 32 | Description |
| @@ -15,35 +15,18 @@ DMX_SET_BUFFER_SIZE · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 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 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals DMX_SET_BUFFER_SIZE for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - unsigned long size | |
| 44 | − | |
| 45 | − - Size of circular buffer. | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 46 | 27 | |
| 28 | +``size`` | |
| 29 | + Unsigned long size | |
| 47 | 30 | |
| 48 | 31 | Description |
| 49 | 32 | ----------- |
| @@ -15,34 +15,18 @@ DMX_SET_FILTER · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 16 | 16 | -------- |
| 17 | 17 | |
| 18 | −.. cpp:function:: int ioctl( int fd, int request = DMX_SET_FILTER, struct dmx_sct_filter_params *params) | |
| 19 | − | |
| 18 | +.. c:function:: int ioctl( int fd, DMX_SET_FILTER, struct dmx_sct_filter_params *params) | |
| 19 | + :name: DMX_SET_FILTER | |
| 20 | 20 | |
| 21 | 21 | Arguments |
| 22 | 22 | --------- |
| 23 | 23 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals DMX_SET_FILTER for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 24 | +``fd`` | |
| 25 | + File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 42 | 26 | |
| 43 | − - struct dmx_sct_filter_params \*params | |
| 27 | +``params`` | |
| 44 | 28 | |
| 45 | − - Pointer to structure containing filter parameters. | |
| 29 | + Pointer to structure containing filter parameters. | |
| 46 | 30 | |
| 47 | 31 | |
| 48 | 32 | Description |
| @@ -15,34 +15,19 @@ DMX_SET_PES_FILTER · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 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 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals DMX_SET_PES_FILTER for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - struct dmx_pes_filter_params \*params | |
| 44 | − | |
| 45 | − - Pointer to structure containing filter parameters. | |
| 29 | +``params`` | |
| 30 | + Pointer to structure containing filter parameters. | |
| 46 | 31 | |
| 47 | 32 | |
| 48 | 33 | Description |
| @@ -61,7 +46,7 @@ On success 0 is returned, on error -1 and the ``errno`` variable is set · 12 unmodified lines | ||
| 61 | 46 | appropriately. The generic error codes are described at the |
| 62 | 47 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| 63 | 48 | |
| 64 | − | |
| 49 | +.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| | |
| 65 | 50 | |
| 66 | 51 | .. flat-table:: |
| 67 | 52 | :header-rows: 0 |
| @@ -15,40 +15,25 @@ DMX_SET_SOURCE · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 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 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals DMX_SET_SOURCE for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - dmx_source_t * | |
| 44 | − | |
| 45 | − - Undocumented. | |
| 29 | +``src`` | |
| 30 | + Undocumented. | |
| 46 | 31 | |
| 47 | 32 | |
| 48 | 33 | Description |
| 49 | 34 | ----------- |
| 50 | 35 | |
| 51 | −This ioctl is undocumented. Documentation is welcome. | |
| 36 | +.. note:: This ioctl is undocumented. Documentation is welcome. | |
| 52 | 37 | |
| 53 | 38 | |
| 54 | 39 | Return Value |
| @@ -15,29 +15,15 @@ DMX_START · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 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 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals DMX_START for this command. | |
| 40 | − | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 41 | 27 | |
| 42 | 28 | Description |
| 43 | 29 | ----------- |
| @@ -53,7 +39,7 @@ On success 0 is returned, on error -1 and the ``errno`` variable is set · 9 unmodified lines | ||
| 53 | 39 | appropriately. The generic error codes are described at the |
| 54 | 40 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| 55 | 41 | |
| 56 | − | |
| 42 | +.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| | |
| 57 | 43 | |
| 58 | 44 | .. flat-table:: |
| 59 | 45 | :header-rows: 0 |
| @@ -15,29 +15,15 @@ DMX_STOP · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 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 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals DMX_STOP for this command. | |
| 40 | − | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by :c:func:`open() <dvb-dmx-open>`. | |
| 41 | 27 | |
| 42 | 28 | Description |
| 43 | 29 | ----------- |
| @@ -6,14 +6,12 @@ · 5 unmodified lines | ||
| 6 | 6 | Demux Data Types |
| 7 | 7 | **************** |
| 8 | 8 | |
| 9 | − | |
| 10 | −.. _dmx-output-t: | |
| 11 | − | |
| 12 | 9 | Output 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 | 16 | .. flat-table:: enum dmx_output |
| 19 | 17 | :header-rows: 1 |
| @@ -65,12 +63,10 @@ Output for the demux · 45 unmodified lines | ||
| 65 | 63 | from the DMX device. |
| 66 | 64 | |
| 67 | 65 | |
| 68 | − | |
| 69 | −.. _dmx-input-t: | |
| 70 | − | |
| 71 | 66 | dmx_input_t |
| 72 | 67 | =========== |
| 73 | 68 | |
| 69 | +.. c:type:: dmx_input | |
| 74 | 70 | |
| 75 | 71 | .. code-block:: c |
| 76 | 72 | |
| @@ -81,11 +77,11 @@ dmx_input_t · 4 unmodified lines | ||
| 81 | 77 | } dmx_input_t; |
| 82 | 78 | |
| 83 | 79 | |
| 84 | −.. _dmx-pes-type-t: | |
| 85 | − | |
| 86 | 80 | dmx_pes_type_t |
| 87 | 81 | ============== |
| 88 | 82 | |
| 83 | +.. c:type:: dmx_pes_type | |
| 84 | + | |
| 89 | 85 | |
| 90 | 86 | .. code-block:: c |
| 91 | 87 | |
| @@ -119,11 +115,10 @@ dmx_pes_type_t · 27 unmodified lines | ||
| 119 | 115 | } dmx_pes_type_t; |
| 120 | 116 | |
| 121 | 117 | |
| 122 | −.. _dmx-filter: | |
| 123 | − | |
| 124 | 118 | struct dmx_filter |
| 125 | 119 | ================= |
| 126 | 120 | |
| 121 | +.. c:type:: dmx_filter | |
| 127 | 122 | |
| 128 | 123 | .. code-block:: c |
| 129 | 124 | |
| @@ -135,7 +130,7 @@ struct dmx_filter · 5 unmodified lines | ||
| 135 | 130 | } dmx_filter_t; |
| 136 | 131 | |
| 137 | 132 | |
| 138 | −.. _dmx-sct-filter-params: | |
| 133 | +.. c:type:: dmx_sct_filter_params | |
| 139 | 134 | |
| 140 | 135 | struct 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 | − | |
| 161 | 154 | struct dmx_pes_filter_params |
| 162 | 155 | ============================ |
| 163 | 156 | |
| 157 | +.. c:type:: dmx_pes_filter_params | |
| 164 | 158 | |
| 165 | 159 | .. 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 | − | |
| 179 | 171 | struct dmx_event |
| 180 | 172 | ================ |
| 181 | 173 | |
| 174 | +.. c:type:: dmx_event | |
| 182 | 175 | |
| 183 | 176 | .. 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 | − | |
| 198 | 189 | struct dmx_stc |
| 199 | 190 | ============== |
| 200 | 191 | |
| 192 | +.. c:type:: dmx_stc | |
| 201 | 193 | |
| 202 | 194 | .. 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 | − | |
| 213 | 203 | struct dmx_caps |
| 214 | 204 | =============== |
| 215 | 205 | |
| 206 | +.. c:type:: dmx_caps | |
| 216 | 207 | |
| 217 | 208 | .. code-block:: c |
| 218 | 209 | |
| @@ -222,15 +213,14 @@ struct dmx_caps · 3 unmodified lines | ||
| 222 | 213 | } dmx_caps_t; |
| 223 | 214 | |
| 224 | 215 | |
| 225 | −.. _dmx-source-t: | |
| 226 | − | |
| 227 | −enum dmx_source_t | |
| 228 | −================= | |
| 216 | +enum dmx_source | |
| 217 | +=============== | |
| 229 | 218 | |
| 219 | +.. c:type:: dmx_source | |
| 230 | 220 | |
| 231 | 221 | .. code-block:: c |
| 232 | 222 | |
| 233 | − typedef enum { | |
| 223 | + typedef enum dmx_source { | |
| 234 | 224 | DMX_SOURCE_FRONT0 = 0, |
| 235 | 225 | DMX_SOURCE_FRONT1, |
| 236 | 226 | DMX_SOURCE_FRONT2, |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | 2 | |
| 3 | −.. _dtv-fe-stats: | |
| 3 | +.. c:type:: dtv_fe_stats | |
| 4 | 4 | |
| 5 | 5 | ******************* |
| 6 | 6 | struct dtv_fe_stats |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | 2 | |
| 3 | −.. _dtv-properties: | |
| 3 | +.. c:type:: dtv_properties | |
| 4 | 4 | |
| 5 | 5 | ********************* |
| 6 | 6 | struct dtv_properties |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | 2 | |
| 3 | −.. _dtv-property: | |
| 3 | +.. c:type:: dtv_property | |
| 4 | 4 | |
| 5 | 5 | ******************* |
| 6 | 6 | struct dtv_property |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | 2 | |
| 3 | −.. _dtv-stats: | |
| 3 | +.. c:type:: dtv_stats | |
| 4 | 4 | |
| 5 | 5 | **************** |
| 6 | 6 | struct dtv_stats |
| @@ -17,7 +17,9 @@ using :ref:`FE_READ_STATUS`. · 16 unmodified lines | ||
| 17 | 17 | Signal statistics are provided via |
| 18 | 18 | :ref:`FE_GET_PROPERTY`. |
| 19 | 19 | |
| 20 | −.. note:: Most statistics require the demodulator to be fully locked | |
| 20 | +.. note:: | |
| 21 | + | |
| 22 | + Most statistics require the demodulator to be fully locked | |
| 21 | 23 | (e. g. with FE_HAS_LOCK bit set). See |
| 22 | 24 | :ref:`Frontend statistics indicators <frontend-stat-properties>` for |
| 23 | 25 | more details. |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | 2 | |
| 3 | −.. _dvb-frontend-event: | |
| 3 | +.. c:type:: dvb_frontend_event | |
| 4 | 4 | |
| 5 | 5 | *************** |
| 6 | 6 | frontend events |
| @@ -1,6 +1,6 @@ | ||
| 1 | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | 2 | |
| 3 | −.. _dvb-frontend-parameters: | |
| 3 | +.. c:type:: dvb_frontend_parameters | |
| 4 | 4 | |
| 5 | 5 | ******************* |
| 6 | 6 | frontend parameters |
| @@ -49,7 +49,7 @@ frontends the ``frequency`` specifies the absolute frequency and is · 42 unmodified lines | ||
| 49 | 49 | given in Hz. |
| 50 | 50 | |
| 51 | 51 | |
| 52 | −.. _dvb-qpsk-parameters: | |
| 52 | +.. c:type:: dvb_qpsk_parameters | |
| 53 | 53 | |
| 54 | 54 | QPSK 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 | |
| 71 | 71 | QAM 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 | |
| 88 | 88 | VSB 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 | |
| 103 | 103 | OFDM parameters |
| 104 | 104 | =============== |
| @@ -8,7 +8,9 @@ · 7 unmodified lines | ||
| 8 | 8 | Part II - Digital TV API |
| 9 | 9 | ######################## |
| 10 | 10 | |
| 11 | −.. note:: This API is also known as **DVB API**, although it is generic | |
| 11 | +.. note:: | |
| 12 | + | |
| 13 | + This API is also known as **DVB API**, although it is generic | |
| 12 | 14 | enough to support all digital TV standards. |
| 13 | 15 | |
| 14 | 16 | **Version 5.10** |
| @@ -20,8 +20,10 @@ Also, the union didn't have any space left to be expanded without · 19 unmodified lines | ||
| 20 | 20 | breaking userspace. So, the decision was to deprecate the legacy |
| 21 | 21 | union/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 via | |
| 24 | − :ref:`struct dvb_frontend_parameters <dvb-frontend-parameters>`. | |
| 23 | +.. note:: | |
| 24 | + | |
| 25 | + On Linux DVB API version 3, setting a frontend were done via | |
| 26 | + struct :c:type:`dvb_frontend_parameters`. | |
| 25 | 27 | This got replaced on version 5 (also called "S2API", as this API were |
| 26 | 28 | added originally_enabled to provide support for DVB-S2), because the |
| 27 | 29 | old API has a very limited support to new standards and new hardware. |
| @@ -9,7 +9,9 @@ Examples · 8 unmodified lines | ||
| 9 | 9 | In this section we would like to present some examples for using the DVB |
| 10 | 10 | API. |
| 11 | 11 | |
| 12 | −..note:: This section is out of date, and the code below won't even | |
| 12 | +.. note:: | |
| 13 | + | |
| 14 | + This section is out of date, and the code below won't even | |
| 13 | 15 | compile. Please refer to the |
| 14 | 16 | `libdvbv5 <https://linuxtv.org/docs/libdvbv5/index.html>`__ for |
| 15 | 17 | updated/recommended examples. |
| @@ -1,13 +1,10 @@ | ||
| 1 | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | 2 | |
| 3 | −.. _fe-bandwidth-t: | |
| 4 | − | |
| 5 | 3 | ****************** |
| 6 | 4 | Frontend bandwidth |
| 7 | 5 | ****************** |
| 8 | 6 | |
| 9 | − | |
| 10 | −.. _fe-bandwidth: | |
| 7 | +.. c:type:: fe_bandwidth | |
| 11 | 8 | |
| 12 | 9 | .. flat-table:: enum fe_bandwidth |
| 13 | 10 | :header-rows: 1 |
| @@ -15,7 +15,8 @@ FE_DISEQC_RECV_SLAVE_REPLY - Receives reply from a DiSEqC 2.0 command · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,12 +25,9 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_DISEQC_RECV_SLAVE_REPLY | |
| 29 | − | |
| 30 | 28 | ``argp`` |
| 31 | 29 | pointer to struct |
| 32 | − :ref:`dvb_diseqc_slave_reply <dvb-diseqc-slave-reply>` | |
| 30 | + :c:type:`dvb_diseqc_slave_reply` | |
| 33 | 31 | |
| 34 | 32 | |
| 35 | 33 | Description |
| @@ -37,10 +35,9 @@ Description · 1 unmodified line | ||
| 37 | 35 | |
| 38 | 36 | Receives reply from a DiSEqC 2.0 command. |
| 39 | 37 | |
| 40 | −.. _dvb-diseqc-slave-reply: | |
| 38 | +.. c:type:: dvb_diseqc_slave_reply | |
| 41 | 39 | |
| 42 | −struct dvb_diseqc_slave_reply | |
| 43 | −----------------------------- | |
| 40 | +.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| | |
| 44 | 41 | |
| 45 | 42 | .. flat-table:: struct dvb_diseqc_slave_reply |
| 46 | 43 | :header-rows: 0 |
| @@ -15,7 +15,8 @@ FE_DISEQC_RESET_OVERLOAD - Restores the power to the antenna subsystem, if it wa · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,10 +25,6 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_DISEQC_RESET_OVERLOAD | |
| 29 | − | |
| 30 | − | |
| 31 | 28 | Description |
| 32 | 29 | =========== |
| 33 | 30 | |
| @@ -15,7 +15,8 @@ FE_DISEQC_SEND_BURST - Sends a 22KHz tone burst for 2x1 mini DiSEqC satellite se · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,11 +25,8 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_DISEQC_SEND_BURST | |
| 29 | − | |
| 30 | 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 | |
| 34 | 32 | Description |
| @@ -41,12 +39,7 @@ read/write permissions. · 6 unmodified lines | ||
| 41 | 39 | It provides support for what's specified at |
| 42 | 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: | |
| 45 | − | |
| 46 | −enum fe_sec_mini_cmd | |
| 47 | −==================== | |
| 48 | − | |
| 49 | −.. _fe-sec-mini-cmd: | |
| 42 | +.. c:type:: fe_sec_mini_cmd | |
| 50 | 43 | |
| 51 | 44 | .. flat-table:: enum fe_sec_mini_cmd |
| 52 | 45 | :header-rows: 1 |
| @@ -15,7 +15,8 @@ FE_DISEQC_SEND_MASTER_CMD - Sends a DiSEqC command · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,12 +25,9 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_DISEQC_SEND_MASTER_CMD | |
| 29 | − | |
| 30 | 28 | ``argp`` |
| 31 | 29 | pointer to struct |
| 32 | − :ref:`dvb_diseqc_master_cmd <dvb-diseqc-master-cmd>` | |
| 30 | + :c:type:`dvb_diseqc_master_cmd` | |
| 33 | 31 | |
| 34 | 32 | |
| 35 | 33 | Description |
| @@ -37,10 +35,10 @@ Description · 1 unmodified line | ||
| 37 | 35 | |
| 38 | 36 | Sends a DiSEqC command to the antenna subsystem. |
| 39 | 37 | |
| 40 | −.. _dvb-diseqc-master-cmd: | |
| 41 | 38 | |
| 42 | −struct dvb_diseqc_master_cmd | |
| 43 | −============================ | |
| 39 | +.. c:type:: dvb_diseqc_master_cmd | |
| 40 | + | |
| 41 | +.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| | |
| 44 | 42 | |
| 45 | 43 | .. flat-table:: struct dvb_diseqc_master_cmd |
| 46 | 44 | :header-rows: 0 |
| @@ -15,22 +15,18 @@ FE_DISHNETWORK_SEND_LEGACY_CMD · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| 22 | 23 | ========= |
| 23 | 24 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 25 | +``fd`` | |
| 26 | + File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 27 | 27 | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - unsigned long cmd | |
| 32 | − | |
| 33 | − - sends the specified raw cmd to the dish via DISEqC. | |
| 28 | +``cmd`` | |
| 29 | + Sends the specified raw cmd to the dish via DISEqC. | |
| 34 | 30 | |
| 35 | 31 | |
| 36 | 32 | Description |
| @@ -15,7 +15,8 @@ FE_ENABLE_HIGH_LNB_VOLTAGE - Select output DC level between normal LNBf voltages · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,9 +25,6 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_ENABLE_HIGH_LNB_VOLTAGE | |
| 29 | − | |
| 30 | 28 | ``high`` |
| 31 | 29 | Valid flags: |
| 32 | 30 | |
| @@ -11,43 +11,24 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | FE_GET_EVENT |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 15 | + | |
| 14 | 16 | |
| 15 | 17 | Synopsis |
| 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 | |
| 21 | 24 | Arguments |
| 22 | 25 | ========= |
| 23 | 26 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals :ref:`FE_GET_EVENT` for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - struct dvb_frontend_event \*ev | |
| 44 | − | |
| 45 | − - Points to the location where the event, | |
| 46 | − | |
| 47 | − - .. row 4 | |
| 27 | +``fd`` | |
| 28 | + File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 48 | 29 | |
| 49 | − - | |
| 50 | − - if any, is to be stored. | |
| 30 | +``ev`` | |
| 31 | + Points to the location where the event, if any, is to be stored. | |
| 51 | 32 | |
| 52 | 33 | |
| 53 | 34 | Description |
| @@ -11,39 +11,25 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | FE_GET_FRONTEND |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 15 | + | |
| 14 | 16 | |
| 15 | 17 | Synopsis |
| 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 | |
| 21 | 24 | Arguments |
| 22 | 25 | ========= |
| 23 | 26 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals :ref:`FE_SET_FRONTEND` for this | |
| 40 | − command. | |
| 41 | − | |
| 42 | − - .. row 3 | |
| 27 | +``fd`` | |
| 28 | + File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 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 | |
| 49 | 35 | Description |
| @@ -15,7 +15,8 @@ FE_GET_INFO - Query DVB frontend capabilities and returns information about the · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,12 +25,9 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_GET_INFO | |
| 29 | − | |
| 30 | 28 | ``argp`` |
| 31 | 29 | pointer to struct struct |
| 32 | − :ref:`dvb_frontend_info <dvb-frontend-info>` | |
| 30 | + :c:type:`dvb_frontend_info` | |
| 33 | 31 | |
| 34 | 32 | |
| 35 | 33 | Description |
| @@ -42,10 +40,9 @@ takes a pointer to dvb_frontend_info which is filled by the driver. · 6 unmodified lines | ||
| 42 | 40 | When the driver is not compatible with this specification the ioctl |
| 43 | 41 | returns an error. |
| 44 | 42 | |
| 45 | −.. _dvb-frontend-info: | |
| 43 | +.. c:type:: dvb_frontend_info | |
| 46 | 44 | |
| 47 | −struct dvb_frontend_info | |
| 48 | −======================== | |
| 45 | +.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| | |
| 49 | 46 | |
| 50 | 47 | .. flat-table:: struct dvb_frontend_info |
| 51 | 48 | :header-rows: 0 |
| @@ -137,18 +134,18 @@ struct dvb_frontend_info · 85 unmodified lines | ||
| 137 | 134 | |
| 138 | 135 | - .. row 11 |
| 139 | 136 | |
| 140 | − - enum :ref:`fe_caps <fe-caps>` | |
| 137 | + - enum :c:type:`fe_caps` | |
| 141 | 138 | |
| 142 | 139 | - caps |
| 143 | 140 | |
| 144 | 141 | - Capabilities supported by the frontend |
| 145 | 142 | |
| 146 | 143 | |
| 147 | −.. note:: The frequencies are specified in Hz for Terrestrial and Cable | |
| 148 | − systems. They're specified in kHz for Satellite systems | |
| 144 | +.. note:: | |
| 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 | |
| 153 | 150 | frontend capabilities |
| 154 | 151 | ===================== |
| @@ -156,8 +153,9 @@ frontend capabilities · 1 unmodified line | ||
| 156 | 153 | Capabilities describe what a frontend can do. Some capabilities are |
| 157 | 154 | supported 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 | 160 | .. flat-table:: enum fe_caps |
| 163 | 161 | :header-rows: 1 |
| @@ -15,7 +15,11 @@ FE_SET_PROPERTY - FE_GET_PROPERTY - FE_SET_PROPERTY sets one or more frontend pr · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 25 | Arguments |
| @@ -24,11 +28,8 @@ Arguments · 2 unmodified lines | ||
| 24 | 28 | ``fd`` |
| 25 | 29 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 30 | |
| 27 | −``request`` | |
| 28 | − FE_SET_PROPERTY, FE_GET_PROPERTY | |
| 29 | − | |
| 30 | 31 | ``argp`` |
| 31 | − pointer to struct :ref:`dtv_properties <dtv-properties>` | |
| 32 | + pointer to struct :c:type:`dtv_properties` | |
| 32 | 33 | |
| 33 | 34 | |
| 34 | 35 | Description |
| @@ -11,37 +11,23 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | FE_READ_BER |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 15 | + | |
| 14 | 16 | Synopsis |
| 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 | |
| 20 | 23 | Arguments |
| 21 | 24 | ========= |
| 22 | 25 | |
| 23 | −.. flat-table:: | |
| 24 | − :header-rows: 0 | |
| 25 | − :stub-columns: 0 | |
| 26 | − | |
| 27 | − | |
| 28 | − - .. row 1 | |
| 29 | − | |
| 30 | − - int fd | |
| 31 | − | |
| 32 | − - File descriptor returned by a previous call to open(). | |
| 33 | − | |
| 34 | − - .. row 2 | |
| 35 | − | |
| 36 | − - int request | |
| 37 | − | |
| 38 | − - Equals :ref:`FE_READ_BER` for this command. | |
| 39 | − | |
| 40 | − - .. row 3 | |
| 41 | − | |
| 42 | − - uint32_t \*ber | |
| 26 | +``fd`` | |
| 27 | + File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 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 | |
| 47 | 33 | Description |
| @@ -11,40 +11,23 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | FE_READ_SIGNAL_STRENGTH |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| 22 | 24 | ========= |
| 23 | 25 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 26 | +``fd`` | |
| 27 | + File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 27 | 28 | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals | |
| 40 | − :ref:`FE_READ_SIGNAL_STRENGTH` | |
| 41 | − for this command. | |
| 42 | − | |
| 43 | − - .. row 3 | |
| 44 | − | |
| 45 | − - uint16_t \*strength | |
| 46 | − | |
| 47 | − - The signal strength value is stored into \*strength. | |
| 29 | +``strength`` | |
| 30 | + The signal strength value is stored into \*strength. | |
| 48 | 31 | |
| 49 | 32 | |
| 50 | 33 | Description |
| @@ -11,38 +11,23 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | FE_READ_SNR |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| 22 | 24 | ========= |
| 23 | 25 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 26 | +``fd`` | |
| 27 | + File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 27 | 28 | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals :ref:`FE_READ_SNR` for this command. | |
| 40 | − | |
| 41 | − - .. row 3 | |
| 42 | − | |
| 43 | − - uint16_t \*snr | |
| 44 | − | |
| 45 | − - The signal-to-noise ratio is stored into \*snr. | |
| 29 | +``snr`` | |
| 30 | + The signal-to-noise ratio is stored into \*snr. | |
| 46 | 31 | |
| 47 | 32 | |
| 48 | 33 | Description |
| @@ -15,7 +15,8 @@ FE_READ_STATUS - Returns status information about the front-end. This call only · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,12 +25,9 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_READ_STATUS | |
| 29 | − | |
| 30 | 28 | ``status`` |
| 31 | 29 | 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 | |
| 35 | 33 | Description |
| @@ -40,20 +38,23 @@ used to check about the locking status of the frontend after being · 4 unmodified lines | ||
| 40 | 38 | tuned. The ioctl takes a pointer to an integer where the status will be |
| 41 | 39 | written. |
| 42 | 40 | |
| 43 | −.. note:: The size of status is actually sizeof(enum fe_status), with | |
| 41 | +.. note:: | |
| 42 | + | |
| 43 | + The size of status is actually sizeof(enum fe_status), with | |
| 44 | 44 | varies according with the architecture. This needs to be fixed in the |
| 45 | 45 | future. |
| 46 | 46 | |
| 47 | 47 | |
| 48 | −.. _fe-status-t: | |
| 49 | − | |
| 50 | 48 | int fe_status |
| 51 | 49 | ============= |
| 52 | 50 | |
| 53 | 51 | The fe_status parameter is used to indicate the current state and/or |
| 54 | 52 | state changes of the frontend hardware. It is produced using the enum |
| 55 | −:ref:`fe_status <fe-status>` values on a bitmask | |
| 53 | +:c:type:`fe_status` values on a bitmask | |
| 54 | + | |
| 55 | +.. c:type:: fe_status | |
| 56 | 56 | |
| 57 | +.. tabularcolumns:: |p{3.5cm}|p{14.0cm}| | |
| 57 | 58 | |
| 58 | 59 | .. _fe-status: |
| 59 | 60 | |
| @@ -11,40 +11,23 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | FE_READ_UNCORRECTED_BLOCKS |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| 22 | 24 | ========= |
| 23 | 25 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 26 | +``fd`` | |
| 27 | + File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 27 | 28 | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals | |
| 40 | − :ref:`FE_READ_UNCORRECTED_BLOCKS` | |
| 41 | − for this command. | |
| 42 | − | |
| 43 | − - .. row 3 | |
| 44 | − | |
| 45 | − - uint32_t \*ublocks | |
| 46 | − | |
| 47 | − - The total number of uncorrected blocks seen by the driver so far. | |
| 29 | +``ublocks`` | |
| 30 | + The total number of uncorrected blocks seen by the driver so far. | |
| 48 | 31 | |
| 49 | 32 | |
| 50 | 33 | Description |
| @@ -15,7 +15,8 @@ FE_SET_FRONTEND_TUNE_MODE - Allow setting tuner mode flags to the frontend. · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,9 +25,6 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_SET_FRONTEND_TUNE_MODE | |
| 29 | − | |
| 30 | 28 | ``flags`` |
| 31 | 29 | Valid flags: |
| 32 | 30 | |
| @@ -6,6 +6,8 @@ · 5 unmodified lines | ||
| 6 | 6 | FE_SET_FRONTEND |
| 7 | 7 | *************** |
| 8 | 8 | |
| 9 | +.. attention:: This ioctl is deprecated. | |
| 10 | + | |
| 9 | 11 | Name |
| 10 | 12 | ==== |
| 11 | 13 | |
| @@ -15,35 +17,18 @@ FE_SET_FRONTEND · 3 unmodified lines | ||
| 15 | 17 | Synopsis |
| 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 | |
| 21 | 24 | Arguments |
| 22 | 25 | ========= |
| 23 | 26 | |
| 24 | −.. flat-table:: | |
| 25 | − :header-rows: 0 | |
| 26 | − :stub-columns: 0 | |
| 27 | − | |
| 28 | − | |
| 29 | − - .. row 1 | |
| 30 | − | |
| 31 | − - int fd | |
| 32 | − | |
| 33 | − - File descriptor returned by a previous call to open(). | |
| 34 | − | |
| 35 | − - .. row 2 | |
| 36 | − | |
| 37 | − - int request | |
| 38 | − | |
| 39 | − - Equals :ref:`FE_SET_FRONTEND` for this | |
| 40 | − command. | |
| 41 | − | |
| 42 | − - .. row 3 | |
| 43 | − | |
| 44 | − - struct dvb_frontend_parameters \*p | |
| 27 | +``fd`` | |
| 28 | + File descriptor returned by :c:func:`open() <dvb-fe-open>`. | |
| 45 | 29 | |
| 46 | − - Points to parameters for tuning operation. | |
| 30 | +``p`` | |
| 31 | + Points to parameters for tuning operation. | |
| 47 | 32 | |
| 48 | 33 | |
| 49 | 34 | Description |
| @@ -15,7 +15,8 @@ FE_SET_TONE - Sets/resets the generation of the continuous 22kHz tone. · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,11 +25,8 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_SET_TONE | |
| 29 | − | |
| 30 | 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 | |
| 34 | 32 | Description |
| @@ -47,12 +45,7 @@ this is done using the DiSEqC ioctls. · 12 unmodified lines | ||
| 47 | 45 | capability of selecting the band. So, it is recommended that applications |
| 48 | 46 | would change to SEC_TONE_OFF when the device is not used. |
| 49 | 47 | |
| 50 | −.. _fe-sec-tone-mode-t: | |
| 51 | − | |
| 52 | −enum fe_sec_tone_mode | |
| 53 | −===================== | |
| 54 | − | |
| 55 | −.. _fe-sec-tone-mode: | |
| 48 | +.. c:type:: fe_sec_tone_mode | |
| 56 | 49 | |
| 57 | 50 | .. flat-table:: enum fe_sec_tone_mode |
| 58 | 51 | :header-rows: 1 |
| @@ -15,7 +15,8 @@ FE_SET_VOLTAGE - Allow setting the DC level sent to the antenna subsystem. · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,14 +25,11 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_SET_VOLTAGE | |
| 29 | − | |
| 30 | 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 | 31 | Valid values are described at enum |
| 34 | − :ref:`fe_sec_voltage <fe-sec-voltage>`. | |
| 32 | + :c:type:`fe_sec_voltage`. | |
| 35 | 33 | |
| 36 | 34 | |
| 37 | 35 | Description |
| @@ -1,7 +1,5 @@ | ||
| 1 | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | 2 | |
| 3 | −.. _fe-type-t: | |
| 4 | − | |
| 5 | 3 | ************* |
| 6 | 4 | Frontend type |
| 7 | 5 | ************* |
| @@ -11,7 +9,9 @@ modulation used in transmission. The fontend types are given by · 3 unmodified lines | ||
| 11 | 9 | fe_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 | 16 | .. flat-table:: Frontend types |
| 17 | 17 | :header-rows: 1 |
| @@ -76,7 +76,7 @@ at the above, as they're supported via the new · 58 unmodified lines | ||
| 76 | 76 | ioctl's, using the :ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>` |
| 77 | 77 | parameter. |
| 78 | 78 | |
| 79 | −In the old days, struct :ref:`dvb_frontend_info <dvb-frontend-info>` | |
| 79 | +In the old days, struct :c:type:`dvb_frontend_info` | |
| 80 | 80 | used to contain ``fe_type_t`` field to indicate the delivery systems, |
| 81 | 81 | filled with either FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC. While this |
| 82 | 82 | is still filled to keep backward compatibility, the usage of this field |
| @@ -85,7 +85,7 @@ devices support multiple delivery systems. Please use · 2 unmodified lines | ||
| 85 | 85 | :ref:`DTV_ENUM_DELSYS <DTV-ENUM-DELSYS>` instead. |
| 86 | 86 | |
| 87 | 87 | On devices that support multiple delivery systems, struct |
| 88 | −:ref:`dvb_frontend_info <dvb-frontend-info>`::``fe_type_t`` is | |
| 88 | +:c:type:`dvb_frontend_info`::``fe_type_t`` is | |
| 89 | 89 | filled with the currently standard, as selected by the last call to |
| 90 | 90 | :ref:`FE_SET_PROPERTY <FE_GET_PROPERTY>` using the |
| 91 | 91 | :ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>` property. |
| @@ -68,10 +68,10 @@ DTV_MODULATION · 67 unmodified lines | ||
| 68 | 68 | |
| 69 | 69 | Specifies the frontend modulation type for delivery systems that |
| 70 | 70 | supports more than one modulation type. The modulation can be one of the |
| 71 | −types defined by enum :ref:`fe_modulation <fe-modulation>`. | |
| 71 | +types defined by enum :c:type:`fe_modulation`. | |
| 72 | 72 | |
| 73 | 73 | |
| 74 | −.. _fe-modulation-t: | |
| 74 | +.. c:type:: fe_modulation | |
| 75 | 75 | |
| 76 | 76 | Modulation property |
| 77 | 77 | ------------------- |
| @@ -82,8 +82,6 @@ enum contains the values used by the Kernel. Please note that not all · 4 unmodified lines | ||
| 82 | 82 | modulations are supported by a given standard. |
| 83 | 83 | |
| 84 | 84 | |
| 85 | −.. _fe-modulation: | |
| 86 | − | |
| 87 | 85 | .. flat-table:: enum fe_modulation |
| 88 | 86 | :header-rows: 1 |
| 89 | 87 | :stub-columns: 0 |
| @@ -251,8 +249,7 @@ DTV_INVERSION · 161 unmodified lines | ||
| 251 | 249 | |
| 252 | 250 | Specifies if the frontend should do spectral inversion or not. |
| 253 | 251 | |
| 254 | − | |
| 255 | −.. _fe-spectral-inversion-t: | |
| 252 | +.. c:type:: fe_spectral_inversion | |
| 256 | 253 | |
| 257 | 254 | enum 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 | ||
| 264 | 261 | inversion off. If it fails, it will try to enable inversion. |
| 265 | 262 | |
| 266 | 263 | |
| 267 | −.. _fe-spectral-inversion: | |
| 268 | − | |
| 269 | 264 | .. flat-table:: enum fe_modulation |
| 270 | 265 | :header-rows: 1 |
| 271 | 266 | :stub-columns: 0 |
| @@ -327,15 +322,11 @@ DTV_INNER_FEC · 55 unmodified lines | ||
| 327 | 322 | |
| 328 | 323 | Used cable/satellite transmissions. The acceptable values are: |
| 329 | 324 | |
| 330 | − | |
| 331 | −.. _fe-code-rate-t: | |
| 325 | +.. c:type:: fe_code_rate | |
| 332 | 326 | |
| 333 | 327 | enum fe_code_rate: type of the Forward Error Correction. |
| 334 | 328 | -------------------------------------------------------- |
| 335 | 329 | |
| 336 | − | |
| 337 | −.. _fe-code-rate: | |
| 338 | − | |
| 339 | 330 | .. flat-table:: enum fe_code_rate |
| 340 | 331 | :header-rows: 1 |
| 341 | 332 | :stub-columns: 0 |
| @@ -464,7 +455,7 @@ voltage has to be switched consistently to the DiSEqC commands as · 122 unmodified lines | ||
| 464 | 455 | described in the DiSEqC spec. |
| 465 | 456 | |
| 466 | 457 | |
| 467 | −.. _fe-sec-voltage: | |
| 458 | +.. c:type:: fe_sec_voltage | |
| 468 | 459 | |
| 469 | 460 | .. flat-table:: enum fe_sec_voltage |
| 470 | 461 | :header-rows: 1 |
| @@ -519,14 +510,12 @@ DTV_PILOT · 48 unmodified lines | ||
| 519 | 510 | Sets DVB-S2 pilot |
| 520 | 511 | |
| 521 | 512 | |
| 522 | −.. _fe-pilot-t: | |
| 513 | +.. c:type:: fe_pilot | |
| 523 | 514 | |
| 524 | 515 | fe_pilot type |
| 525 | 516 | ------------- |
| 526 | 517 | |
| 527 | 518 | |
| 528 | −.. _fe-pilot: | |
| 529 | − | |
| 530 | 519 | .. flat-table:: enum fe_pilot |
| 531 | 520 | :header-rows: 1 |
| 532 | 521 | :stub-columns: 0 |
| @@ -572,14 +561,12 @@ DTV_ROLLOFF · 39 unmodified lines | ||
| 572 | 561 | Sets DVB-S2 rolloff |
| 573 | 562 | |
| 574 | 563 | |
| 575 | −.. _fe-rolloff-t: | |
| 564 | +.. c:type:: fe_rolloff | |
| 576 | 565 | |
| 577 | 566 | fe_rolloff type |
| 578 | 567 | --------------- |
| 579 | 568 | |
| 580 | 569 | |
| 581 | −.. _fe-rolloff: | |
| 582 | − | |
| 583 | 570 | .. flat-table:: enum fe_rolloff |
| 584 | 571 | :header-rows: 1 |
| 585 | 572 | :stub-columns: 0 |
| @@ -657,7 +644,7 @@ DTV_DELIVERY_SYSTEM · 71 unmodified lines | ||
| 657 | 644 | Specifies the type of Delivery system |
| 658 | 645 | |
| 659 | 646 | |
| 660 | −.. _fe-delivery-system-t: | |
| 647 | +.. c:type:: fe_delivery_system | |
| 661 | 648 | |
| 662 | 649 | fe_delivery_system type |
| 663 | 650 | ----------------------- |
| @@ -665,8 +652,6 @@ fe_delivery_system type · 1 unmodified line | ||
| 665 | 652 | Possible values: |
| 666 | 653 | |
| 667 | 654 | |
| 668 | −.. _fe-delivery-system: | |
| 669 | − | |
| 670 | 655 | .. flat-table:: enum fe_delivery_system |
| 671 | 656 | :header-rows: 1 |
| 672 | 657 | :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 | ||
| 1005 | 990 | Note: Truth table for ``DTV_ISDBT_SOUND_BROADCASTING`` and |
| 1006 | 991 | ``DTV_ISDBT_PARTIAL_RECEPTION`` and ``LAYER[A-C]_SEGMENT_COUNT`` |
| 1007 | 992 | |
| 1008 | − | |
| 1009 | 993 | .. _isdbt-layer_seg-cnt-table: |
| 1010 | 994 | |
| 1011 | −.. flat-table:: | |
| 995 | +.. flat-table:: Truth table for ISDB-T Sound Broadcasting | |
| 1012 | 996 | :header-rows: 0 |
| 1013 | 997 | :stub-columns: 0 |
| 1014 | 998 | |
| @@ -1099,9 +1083,9 @@ The values here are referring to what can be found in the · 84 unmodified lines | ||
| 1099 | 1083 | TMCC-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 | 1089 | :header-rows: 0 |
| 1106 | 1090 | :stub-columns: 0 |
| 1107 | 1091 | |
| @@ -1234,8 +1218,9 @@ Reed Solomon (RS) frame mode. · 126 unmodified lines | ||
| 1234 | 1218 | |
| 1235 | 1219 | Possible 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 | 1225 | .. flat-table:: enum atscmh_rs_frame_mode |
| 1241 | 1226 | :header-rows: 1 |
| @@ -1279,7 +1264,7 @@ Reed Solomon(RS) frame ensemble. · 37 unmodified lines | ||
| 1279 | 1264 | Possible values are: |
| 1280 | 1265 | |
| 1281 | 1266 | |
| 1282 | −.. _atscmh-rs-frame-ensemble: | |
| 1267 | +.. c:type:: atscmh_rs_frame_ensemble | |
| 1283 | 1268 | |
| 1284 | 1269 | .. flat-table:: enum atscmh_rs_frame_ensemble |
| 1285 | 1270 | :header-rows: 1 |
| @@ -1328,7 +1313,7 @@ Reed Solomon (RS) code mode (primary). · 42 unmodified lines | ||
| 1328 | 1313 | Possible values are: |
| 1329 | 1314 | |
| 1330 | 1315 | |
| 1331 | −.. _atscmh-rs-code-mode: | |
| 1316 | +.. c:type:: atscmh_rs_code_mode | |
| 1332 | 1317 | |
| 1333 | 1318 | .. flat-table:: enum atscmh_rs_code_mode |
| 1334 | 1319 | :header-rows: 1 |
| @@ -1383,7 +1368,7 @@ DTV_ATSCMH_RS_CODE_MODE_SEC · 48 unmodified lines | ||
| 1383 | 1368 | Reed Solomon (RS) code mode (secondary). |
| 1384 | 1369 | |
| 1385 | 1370 | Possible values are the same as documented on enum |
| 1386 | −:ref:`atscmh_rs_code_mode <atscmh-rs-code-mode>`: | |
| 1371 | +:c:type:`atscmh_rs_code_mode`: | |
| 1387 | 1372 | |
| 1388 | 1373 | |
| 1389 | 1374 | .. _DTV-ATSCMH-SCCC-BLOCK-MODE: |
| @@ -1395,8 +1380,9 @@ Series Concatenated Convolutional Code Block Mode. · 5 unmodified lines | ||
| 1395 | 1380 | |
| 1396 | 1381 | Possible 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 | 1387 | .. flat-table:: enum atscmh_scc_block_mode |
| 1402 | 1388 | :header-rows: 1 |
| @@ -1447,7 +1433,7 @@ Series Concatenated Convolutional Code Rate. · 44 unmodified lines | ||
| 1447 | 1433 | Possible values are: |
| 1448 | 1434 | |
| 1449 | 1435 | |
| 1450 | −.. _atscmh-sccc-code-mode: | |
| 1436 | +.. c:type:: atscmh_sccc_code_mode | |
| 1451 | 1437 | |
| 1452 | 1438 | .. flat-table:: enum atscmh_sccc_code_mode |
| 1453 | 1439 | :header-rows: 1 |
| @@ -1494,7 +1480,7 @@ DTV_ATSCMH_SCCC_CODE_MODE_B · 40 unmodified lines | ||
| 1494 | 1480 | Series Concatenated Convolutional Code Rate. |
| 1495 | 1481 | |
| 1496 | 1482 | Possible values are the same as documented on enum |
| 1497 | −:ref:`atscmh_sccc_code_mode <atscmh-sccc-code-mode>`. | |
| 1483 | +:c:type:`atscmh_sccc_code_mode`. | |
| 1498 | 1484 | |
| 1499 | 1485 | |
| 1500 | 1486 | .. _DTV-ATSCMH-SCCC-CODE-MODE-C: |
| @@ -1505,7 +1491,7 @@ DTV_ATSCMH_SCCC_CODE_MODE_C · 4 unmodified lines | ||
| 1505 | 1491 | Series Concatenated Convolutional Code Rate. |
| 1506 | 1492 | |
| 1507 | 1493 | Possible values are the same as documented on enum |
| 1508 | −:ref:`atscmh_sccc_code_mode <atscmh-sccc-code-mode>`. | |
| 1494 | +:c:type:`atscmh_sccc_code_mode`. | |
| 1509 | 1495 | |
| 1510 | 1496 | |
| 1511 | 1497 | .. _DTV-ATSCMH-SCCC-CODE-MODE-D: |
| @@ -1516,7 +1502,7 @@ DTV_ATSCMH_SCCC_CODE_MODE_D · 4 unmodified lines | ||
| 1516 | 1502 | Series Concatenated Convolutional Code Rate. |
| 1517 | 1503 | |
| 1518 | 1504 | Possible values are the same as documented on enum |
| 1519 | −:ref:`atscmh_sccc_code_mode <atscmh-sccc-code-mode>`. | |
| 1505 | +:c:type:`atscmh_sccc_code_mode`. | |
| 1520 | 1506 | |
| 1521 | 1507 | |
| 1522 | 1508 | .. _DTV-API-VERSION: |
| @@ -1533,7 +1519,7 @@ DTV_CODE_RATE_HP · 10 unmodified lines | ||
| 1533 | 1519 | ================ |
| 1534 | 1520 | |
| 1535 | 1521 | Used on terrestrial transmissions. The acceptable values are the ones |
| 1536 | −described at :ref:`fe_transmit_mode_t <fe-transmit-mode-t>`. | |
| 1522 | +described at :c:type:`fe_transmit_mode`. | |
| 1537 | 1523 | |
| 1538 | 1524 | |
| 1539 | 1525 | .. _DTV-CODE-RATE-LP: |
| @@ -1542,7 +1528,7 @@ DTV_CODE_RATE_LP · 2 unmodified lines | ||
| 1542 | 1528 | ================ |
| 1543 | 1529 | |
| 1544 | 1530 | Used on terrestrial transmissions. The acceptable values are the ones |
| 1545 | −described at :ref:`fe_transmit_mode_t <fe-transmit-mode-t>`. | |
| 1531 | +described at :c:type:`fe_transmit_mode`. | |
| 1546 | 1532 | |
| 1547 | 1533 | |
| 1548 | 1534 | .. _DTV-GUARD-INTERVAL: |
| @@ -1553,14 +1539,12 @@ DTV_GUARD_INTERVAL · 4 unmodified lines | ||
| 1553 | 1539 | Possible values are: |
| 1554 | 1540 | |
| 1555 | 1541 | |
| 1556 | −.. _fe-guard-interval-t: | |
| 1542 | +.. c:type:: fe_guard_interval | |
| 1557 | 1543 | |
| 1558 | 1544 | Modulation guard interval |
| 1559 | 1545 | ------------------------- |
| 1560 | 1546 | |
| 1561 | 1547 | |
| 1562 | −.. _fe-guard-interval: | |
| 1563 | − | |
| 1564 | 1548 | .. flat-table:: enum fe_guard_interval |
| 1565 | 1549 | :header-rows: 1 |
| 1566 | 1550 | :stub-columns: 0 |
| @@ -1682,13 +1666,12 @@ Specifies the number of carriers used by the standard. This is used only · 115 unmodified lines | ||
| 1682 | 1666 | on 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 | |
| 1687 | 1671 | enum fe_transmit_mode: Number of carriers per channel |
| 1688 | 1672 | ----------------------------------------------------- |
| 1689 | 1673 | |
| 1690 | − | |
| 1691 | −.. _fe-transmit-mode: | |
| 1674 | +.. tabularcolumns:: |p{5.0cm}|p{12.5cm}| | |
| 1692 | 1675 | |
| 1693 | 1676 | .. flat-table:: enum fe_transmit_mode |
| 1694 | 1677 | :header-rows: 1 |
| @@ -1799,14 +1782,12 @@ DTV_HIERARCHY · 104 unmodified lines | ||
| 1799 | 1782 | Frontend hierarchy |
| 1800 | 1783 | |
| 1801 | 1784 | |
| 1802 | −.. _fe-hierarchy-t: | |
| 1785 | +.. c:type:: fe_hierarchy | |
| 1803 | 1786 | |
| 1804 | 1787 | Frontend hierarchy |
| 1805 | 1788 | ------------------ |
| 1806 | 1789 | |
| 1807 | 1790 | |
| 1808 | −.. _fe-hierarchy: | |
| 1809 | − | |
| 1810 | 1791 | .. flat-table:: enum fe_hierarchy |
| 1811 | 1792 | :header-rows: 1 |
| 1812 | 1793 | :stub-columns: 0 |
| @@ -1912,7 +1893,7 @@ DTV_INTERLEAVING · 99 unmodified lines | ||
| 1912 | 1893 | Time interleaving to be used. Currently, used only on DTMB. |
| 1913 | 1894 | |
| 1914 | 1895 | |
| 1915 | −.. _fe-interleaving: | |
| 1896 | +.. c:type:: fe_interleaving | |
| 1916 | 1897 | |
| 1917 | 1898 | .. flat-table:: enum fe_interleaving |
| 1918 | 1899 | :header-rows: 1 |
| @@ -20,7 +20,7 @@ standards, up to 3 groups of statistics can be provided, and · 19 unmodified lines | ||
| 20 | 20 | plus one metric per each carrier group (called "layer" on ISDB). |
| 21 | 21 | |
| 22 | 22 | So, in order to be consistent with other delivery systems, the first |
| 23 | −value at :ref:`dtv_property.stat.dtv_stats <dtv-stats>` array refers | |
| 23 | +value at :c:type:`dtv_property.stat.dtv_stats <dtv_stats>` array refers | |
| 24 | 24 | to the global metric. The other elements of the array represent each |
| 25 | 25 | layer, starting from layer A(index 1), layer B (index 2) and so on. |
| 26 | 26 | |
| @@ -29,7 +29,9 @@ The frontend can be accessed through ``/dev/dvb/adapter?/frontend?``. · 28 unmodified lines | ||
| 29 | 29 | Data types and ioctl definitions can be accessed by including |
| 30 | 30 | ``linux/dvb/frontend.h`` in your application. |
| 31 | 31 | |
| 32 | −.. note:: Transmission via the internet (DVB-IP) is not yet handled by this | |
| 32 | +.. note:: | |
| 33 | + | |
| 34 | + Transmission via the internet (DVB-IP) is not yet handled by this | |
| 33 | 35 | API but a future extension is possible. |
| 34 | 36 | |
| 35 | 37 | On Satellite systems, the API support for the Satellite Equipment |
| @@ -20,14 +20,14 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: int close( int fd ) | |
| 24 | − | |
| 23 | +.. c:function:: int close( int fd ) | |
| 24 | + :name: dvb-fe-close | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| 28 | 28 | |
| 29 | 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 | |
| 33 | 33 | Description |
| @@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <fcntl.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: int open( const char *device_name, int flags ) | |
| 24 | − | |
| 23 | +.. c:function:: int open( const char *device_name, int flags ) | |
| 24 | + :name: dvb-fe-open | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| @@ -15,7 +15,8 @@ NET_ADD_IF - Creates a new network interface for a given Packet ID. · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,11 +25,8 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_SET_TONE | |
| 29 | − | |
| 30 | 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 | |
| 34 | 32 | Description |
| @@ -40,16 +38,10 @@ ULE) and the interface number for the new interface to be created. When · 5 unmodified lines | ||
| 40 | 38 | the system call successfully returns, a new virtual network interface is |
| 41 | 39 | created. |
| 42 | 40 | |
| 43 | −The struct :ref:`dvb_net_if <dvb-net-if>`::ifnum field will be | |
| 41 | +The struct :c:type:`dvb_net_if`::ifnum field will be | |
| 44 | 42 | filled with the number of the created interface. |
| 45 | 43 | |
| 46 | − | |
| 47 | −.. _dvb-net-if-t: | |
| 48 | − | |
| 49 | −struct dvb_net_if description | |
| 50 | −============================= | |
| 51 | − | |
| 52 | −.. _dvb-net-if: | |
| 44 | +.. c:type:: dvb_net_if | |
| 53 | 45 | |
| 54 | 46 | .. flat-table:: struct dvb_net_if |
| 55 | 47 | :header-rows: 1 |
| @@ -15,7 +15,8 @@ NET_GET_IF - Read the configuration data of an interface created via - :ref:`NET · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,19 +25,16 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_SET_TONE | |
| 29 | − | |
| 30 | 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 | |
| 34 | 32 | Description |
| 35 | 33 | =========== |
| 36 | 34 | |
| 37 | 35 | The NET_GET_IF ioctl uses the interface number given by the struct |
| 38 | −:ref:`dvb_net_if <dvb-net-if>`::ifnum field and fills the content of | |
| 39 | −struct :ref:`dvb_net_if <dvb-net-if>` with the packet ID and | |
| 36 | +:c:type:`dvb_net_if`::ifnum field and fills the content of | |
| 37 | +struct :c:type:`dvb_net_if` with the packet ID and | |
| 40 | 38 | encapsulation type used on such interface. If the interface was not |
| 41 | 39 | created yet with :ref:`NET_ADD_IF <net>`, it will return -1 and fill |
| 42 | 40 | the ``errno`` with ``EINVAL`` error code. |
| @@ -15,7 +15,8 @@ NET_REMOVE_IF - Removes a network interface. · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,9 +25,6 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <frontend_f_open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − FE_SET_TONE | |
| 29 | − | |
| 30 | 28 | ``net_if`` |
| 31 | 29 | number of the interface to be removed |
| 32 | 30 | |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_CLEAR_BUFFER |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_COMMAND |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -57,6 +59,36 @@ subset of the ``v4l2_decoder_cmd`` struct, so refer to the · 35 unmodified lines | ||
| 57 | 59 | :ref:`VIDIOC_DECODER_CMD` documentation for |
| 58 | 60 | more 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 | |
| 61 | 93 | Return Value |
| 62 | 94 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_CONTINUE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_FAST_FORWARD |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,12 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | dvb video close() |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 16 | 17 | -------- |
| 17 | 18 | |
| 18 | −.. cpp:function:: int close(int fd) | |
| 19 | +.. c:function:: int close(int fd) | |
| 19 | 20 | |
| 20 | 21 | |
| 21 | 22 | Arguments |
| @@ -11,11 +11,12 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | dvb video open() |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -82,6 +83,8 @@ return an error code. · 60 unmodified lines | ||
| 82 | 83 | Return Value |
| 83 | 84 | ------------ |
| 84 | 85 | |
| 86 | +.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| | |
| 87 | + | |
| 85 | 88 | .. flat-table:: |
| 86 | 89 | :header-rows: 0 |
| 87 | 90 | :stub-columns: 0 |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_FREEZE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,12 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | dvb video write() |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_GET_CAPABILITIES |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_GET_EVENT |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -62,6 +64,23 @@ included in the exceptfds argument, and for poll(), POLLPRI should be · 40 unmodified lines | ||
| 62 | 64 | specified as the wake-up condition. Read-only permissions are sufficient |
| 63 | 65 | for 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 | |
| 66 | 85 | Return Value |
| 67 | 86 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_GET_FRAME_COUNT |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_GET_FRAME_RATE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_GET_NAVI |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -52,6 +54,14 @@ This ioctl returns navigational information from the DVD stream. This is · 30 unmodified lines | ||
| 52 | 54 | especially needed if an encoded stream has to be decoded by the |
| 53 | 55 | hardware. |
| 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 | |
| 56 | 66 | Return Value |
| 57 | 67 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_GET_PTS |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_GET_SIZE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -50,6 +52,16 @@ Description · 28 unmodified lines | ||
| 50 | 52 | |
| 51 | 53 | This 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 | |
| 54 | 66 | Return Value |
| 55 | 67 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_GET_STATUS |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -51,6 +53,17 @@ Description · 29 unmodified lines | ||
| 51 | 53 | This ioctl call asks the Video Device to return the current status of |
| 52 | 54 | the 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 | |
| 55 | 68 | Return Value |
| 56 | 69 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_PLAY |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SELECT_SOURCE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -56,6 +58,16 @@ This ioctl call informs the video device which source shall be used for · 34 unmodified lines | ||
| 56 | 58 | the input data. The possible sources are demux or memory. If memory is |
| 57 | 59 | selected, 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 | |
| 60 | 72 | Return Value |
| 61 | 73 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SET_ATTRIBUTES |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -53,6 +55,22 @@ information about the stream. Some hardware may not need this · 31 unmodified lines | ||
| 53 | 55 | information, but the call also tells the hardware to prepare for DVD |
| 54 | 56 | playback. |
| 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 | |
| 57 | 75 | Return Value |
| 58 | 76 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SET_BLANK |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SET_DISPLAY_FORMAT |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SET_FORMAT |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -52,6 +54,15 @@ This ioctl sets the screen format (aspect ratio) of the connected output · 30 unmodified lines | ||
| 52 | 54 | device (TV) so that the output of the decoder can be adjusted |
| 53 | 55 | accordingly. |
| 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 | |
| 56 | 67 | Return Value |
| 57 | 68 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SET_HIGHLIGHT |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -51,6 +53,30 @@ Description · 29 unmodified lines | ||
| 51 | 53 | This ioctl sets the SPU highlight information for the menu access of a |
| 52 | 54 | DVD. |
| 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 | |
| 55 | 81 | Return Value |
| 56 | 82 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SET_ID |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SET_SPU_PALETTE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -50,6 +52,14 @@ Description · 28 unmodified lines | ||
| 50 | 52 | |
| 51 | 53 | This 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 | |
| 54 | 64 | Return Value |
| 55 | 65 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SET_SPU |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -52,6 +54,15 @@ Description · 30 unmodified lines | ||
| 52 | 54 | This ioctl activates or deactivates SPU decoding in a DVD input stream. |
| 53 | 55 | It 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 | |
| 56 | 67 | Return Value |
| 57 | 68 | ------------ |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SET_STREAMTYPE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SET_SYSTEM |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_SLOWMOTION |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_STILLPICTURE |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_STOP |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -11,11 +11,13 @@ Name · 10 unmodified lines | ||
| 11 | 11 | |
| 12 | 12 | VIDEO_TRY_COMMAND |
| 13 | 13 | |
| 14 | +.. attention:: This ioctl is deprecated. | |
| 14 | 15 | |
| 15 | 16 | Synopsis |
| 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 | |
| 21 | 23 | Arguments |
| @@ -95,7 +95,7 @@ representing the state of video playback. · 94 unmodified lines | ||
| 95 | 95 | } video_play_state_t; |
| 96 | 96 | |
| 97 | 97 | |
| 98 | −.. _video-command: | |
| 98 | +.. c:type:: video_command | |
| 99 | 99 | |
| 100 | 100 | struct video_command |
| 101 | 101 | ==================== |
| @@ -146,7 +146,7 @@ video_size_t · 44 unmodified lines | ||
| 146 | 146 | } video_size_t; |
| 147 | 147 | |
| 148 | 148 | |
| 149 | −.. _video-event: | |
| 149 | +.. c:type:: video_event | |
| 150 | 150 | |
| 151 | 151 | struct 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 | |
| 177 | 177 | struct 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 | ||
| 203 | 203 | device. |
| 204 | 204 | |
| 205 | 205 | |
| 206 | −.. _video-still-picture: | |
| 206 | +.. c:type:: video_still_picture | |
| 207 | 207 | |
| 208 | 208 | struct video_still_picture |
| 209 | 209 | ========================== |
| @@ -271,7 +271,7 @@ output. The following system types can be set: · 61 unmodified lines | ||
| 271 | 271 | } video_system_t; |
| 272 | 272 | |
| 273 | 273 | |
| 274 | −.. _video-highlight: | |
| 274 | +.. c:type:: video_highlight | |
| 275 | 275 | |
| 276 | 276 | struct video_highlight |
| 277 | 277 | ====================== |
| @@ -302,7 +302,7 @@ information. The call expects the following format for that information: · 24 unmodified lines | ||
| 302 | 302 | } video_highlight_t; |
| 303 | 303 | |
| 304 | 304 | |
| 305 | −.. _video-spu: | |
| 305 | +.. c:type:: video_spu | |
| 306 | 306 | |
| 307 | 307 | struct video_spu |
| 308 | 308 | ================ |
| @@ -320,7 +320,7 @@ to the following format: · 11 unmodified lines | ||
| 320 | 320 | } video_spu_t; |
| 321 | 321 | |
| 322 | 322 | |
| 323 | −.. _video-spu-palette: | |
| 323 | +.. c:type:: video_spu_palette | |
| 324 | 324 | |
| 325 | 325 | struct video_spu_palette |
| 326 | 326 | ======================== |
| @@ -338,7 +338,7 @@ VIDEO_SPU_PALETTE: · 11 unmodified lines | ||
| 338 | 338 | } video_spu_palette_t; |
| 339 | 339 | |
| 340 | 340 | |
| 341 | −.. _video-navi-pack: | |
| 341 | +.. c:type:: video_navi_pack | |
| 342 | 342 | |
| 343 | 343 | struct video_navi_pack |
| 344 | 344 | ====================== |
| @@ -9,6 +9,8 @@ Generic Error Codes · 8 unmodified lines | ||
| 9 | 9 | |
| 10 | 10 | .. _gen-errors: |
| 11 | 11 | |
| 12 | +.. tabularcolumns:: |p{2.5cm}|p{15.0cm}| | |
| 13 | + | |
| 12 | 14 | .. flat-table:: Generic error codes |
| 13 | 15 | :header-rows: 0 |
| 14 | 16 | :stub-columns: 0 |
| @@ -20,14 +20,14 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: int close( int fd ) | |
| 24 | − | |
| 23 | +.. c:function:: int close( int fd ) | |
| 24 | + :name: mc-close | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| 28 | 28 | |
| 29 | 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 | |
| 33 | 33 | Description |
| @@ -20,14 +20,14 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <sys/ioctl.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: int ioctl( int fd, int request, void *argp ) | |
| 24 | − | |
| 23 | +.. c:function:: int ioctl( int fd, int request, void *argp ) | |
| 24 | + :name: mc-ioctl | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| 28 | 28 | |
| 29 | 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 | ``request`` |
| 33 | 33 | Media ioctl request code as defined in the media.h header file, for |
| @@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <fcntl.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: int open( const char *device_name, int flags ) | |
| 24 | − | |
| 23 | +.. c:function:: int open( const char *device_name, int flags ) | |
| 24 | + :name: mc-open | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| @@ -15,7 +15,8 @@ MEDIA_IOC_DEVICE_INFO - Query device information · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,9 +25,6 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <media-func-open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − MEDIA_IOC_DEVICE_INFO | |
| 29 | − | |
| 30 | 28 | ``argp`` |
| 31 | 29 | |
| 32 | 30 | |
| @@ -35,12 +33,14 @@ Description · 2 unmodified lines | ||
| 35 | 33 | |
| 36 | 34 | All media devices must support the ``MEDIA_IOC_DEVICE_INFO`` ioctl. To |
| 37 | 35 | query device information, applications call the ioctl with a pointer to |
| 38 | −a struct :ref:`media_device_info <media-device-info>`. The driver | |
| 36 | +a struct :c:type:`media_device_info`. The driver | |
| 39 | 37 | fills the structure and returns the information to the application. The |
| 40 | 38 | ioctl 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 | 45 | .. flat-table:: struct media_device_info |
| 46 | 46 | :header-rows: 0 |
| @@ -15,7 +15,8 @@ MEDIA_IOC_ENUM_ENTITIES - Enumerate entities and their properties · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,9 +25,6 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <media-func-open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − MEDIA_IOC_ENUM_ENTITIES | |
| 29 | − | |
| 30 | 28 | ``argp`` |
| 31 | 29 | |
| 32 | 30 | |
| @@ -34,7 +32,7 @@ Description · 1 unmodified line | ||
| 34 | 32 | =========== |
| 35 | 33 | |
| 36 | 34 | To query the attributes of an entity, applications set the id field of a |
| 37 | −struct :ref:`media_entity_desc <media-entity-desc>` structure and | |
| 35 | +struct :c:type:`media_entity_desc` structure and | |
| 38 | 36 | call the MEDIA_IOC_ENUM_ENTITIES ioctl with a pointer to this |
| 39 | 37 | structure. The driver fills the rest of the structure or returns an |
| 40 | 38 | EINVAL error code when the id is invalid. |
| @@ -51,7 +49,9 @@ enumerate entities by calling MEDIA_IOC_ENUM_ENTITIES with increasing · 10 unmodified lines | ||
| 51 | 49 | id'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 | 56 | .. flat-table:: struct media_entity_desc |
| 57 | 57 | :header-rows: 0 |
| @@ -195,5 +195,5 @@ appropriately. The generic error codes are described at the · 137 unmodified lines | ||
| 195 | 195 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| 196 | 196 | |
| 197 | 197 | EINVAL |
| 198 | − The struct :ref:`media_entity_desc <media-entity-desc>` ``id`` | |
| 198 | + The struct :c:type:`media_entity_desc` ``id`` | |
| 199 | 199 | references a non-existing entity. |
| @@ -15,7 +15,8 @@ MEDIA_IOC_ENUM_LINKS - Enumerate all pads and links for a given entity · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,9 +25,6 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <media-func-open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − MEDIA_IOC_ENUM_LINKS | |
| 29 | − | |
| 30 | 28 | ``argp`` |
| 31 | 29 | |
| 32 | 30 | |
| @@ -34,10 +32,10 @@ Description · 1 unmodified line | ||
| 34 | 32 | =========== |
| 35 | 33 | |
| 36 | 34 | To enumerate pads and/or links for a given entity, applications set the |
| 37 | −entity field of a struct :ref:`media_links_enum <media-links-enum>` | |
| 35 | +entity field of a struct :c:type:`media_links_enum` | |
| 38 | 36 | structure and initialize the struct |
| 39 | −:ref:`media_pad_desc <media-pad-desc>` and struct | |
| 40 | −:ref:`media_link_desc <media-link-desc>` structure arrays pointed by | |
| 37 | +:c:type:`media_pad_desc` and struct | |
| 38 | +:c:type:`media_link_desc` structure arrays pointed by | |
| 41 | 39 | the ``pads`` and ``links`` fields. They then call the |
| 42 | 40 | MEDIA_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 | ||
| 55 | 53 | returned 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 | 60 | .. flat-table:: struct media_links_enum |
| 61 | 61 | :header-rows: 0 |
| @@ -73,7 +73,7 @@ returned during the enumeration process. · 11 unmodified lines | ||
| 73 | 73 | |
| 74 | 74 | - .. row 2 |
| 75 | 75 | |
| 76 | − - struct :ref:`media_pad_desc <media-pad-desc>` | |
| 76 | + - struct :c:type:`media_pad_desc` | |
| 77 | 77 | |
| 78 | 78 | - \*\ ``pads`` |
| 79 | 79 | |
| @@ -82,7 +82,7 @@ returned during the enumeration process. · 2 unmodified lines | ||
| 82 | 82 | |
| 83 | 83 | - .. row 3 |
| 84 | 84 | |
| 85 | − - struct :ref:`media_link_desc <media-link-desc>` | |
| 85 | + - struct :c:type:`media_link_desc` | |
| 86 | 86 | |
| 87 | 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 | 98 | .. flat-table:: struct media_pad_desc |
| 97 | 99 | :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 | 134 | .. flat-table:: struct media_link_desc |
| 131 | 135 | :header-rows: 0 |
| @@ -135,7 +139,7 @@ returned during the enumeration process. · 3 unmodified lines | ||
| 135 | 139 | |
| 136 | 140 | - .. row 1 |
| 137 | 141 | |
| 138 | − - struct :ref:`media_pad_desc <media-pad-desc>` | |
| 142 | + - struct :c:type:`media_pad_desc` | |
| 139 | 143 | |
| 140 | 144 | - ``source`` |
| 141 | 145 | |
| @@ -143,7 +147,7 @@ returned during the enumeration process. · 1 unmodified line | ||
| 143 | 147 | |
| 144 | 148 | - .. row 2 |
| 145 | 149 | |
| 146 | − - struct :ref:`media_pad_desc <media-pad-desc>` | |
| 150 | + - struct :c:type:`media_pad_desc` | |
| 147 | 151 | |
| 148 | 152 | - ``sink`` |
| 149 | 153 | |
| @@ -166,5 +170,5 @@ appropriately. The generic error codes are described at the · 16 unmodified lines | ||
| 166 | 170 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| 167 | 171 | |
| 168 | 172 | EINVAL |
| 169 | − The struct :ref:`media_links_enum <media-links-enum>` ``id`` | |
| 173 | + The struct :c:type:`media_links_enum` ``id`` | |
| 170 | 174 | references a non-existing entity. |
| @@ -15,7 +15,8 @@ MEDIA_IOC_G_TOPOLOGY - Enumerate the graph topology and graph element properties · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,9 +25,6 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <media-func-open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − MEDIA_IOC_G_TOPOLOGY | |
| 29 | − | |
| 30 | 28 | ``argp`` |
| 31 | 29 | |
| 32 | 30 | |
| @@ -35,7 +33,7 @@ Description · 2 unmodified lines | ||
| 35 | 33 | |
| 36 | 34 | The typical usage of this ioctl is to call it twice. On the first call, |
| 37 | 35 | the structure defined at struct |
| 38 | −:ref:`media_v2_topology <media-v2-topology>` should be zeroed. At | |
| 36 | +:c:type:`media_v2_topology` should be zeroed. At | |
| 39 | 37 | return, if no errors happen, this ioctl will return the |
| 40 | 38 | ``topology_version`` and the total number of entities, interfaces, pads |
| 41 | 39 | and links. |
| @@ -48,8 +46,9 @@ other values untouched. · 6 unmodified lines | ||
| 48 | 46 | If the ``topology_version`` remains the same, the ioctl should fill the |
| 49 | 47 | desired 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 | 53 | .. flat-table:: struct media_v2_topology |
| 55 | 54 | :header-rows: 0 |
| @@ -142,8 +141,9 @@ desired arrays with the media graph elements. · 86 unmodified lines | ||
| 142 | 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 | 148 | .. flat-table:: struct media_v2_entity |
| 149 | 149 | :header-rows: 0 |
| @@ -185,8 +185,9 @@ desired arrays with the media graph elements. · 35 unmodified lines | ||
| 185 | 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 | 192 | .. flat-table:: struct media_v2_interface |
| 192 | 193 | :header-rows: 0 |
| @@ -233,11 +234,12 @@ desired arrays with the media graph elements. · 40 unmodified lines | ||
| 233 | 234 | - ``devnode`` |
| 234 | 235 | |
| 235 | 236 | - 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 | 244 | .. flat-table:: struct media_v2_interface |
| 243 | 245 | :header-rows: 0 |
| @@ -262,8 +264,9 @@ desired arrays with the media graph elements. · 18 unmodified lines | ||
| 262 | 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 | 271 | .. flat-table:: struct media_v2_pad |
| 269 | 272 | :header-rows: 0 |
| @@ -305,8 +308,9 @@ desired arrays with the media graph elements. · 35 unmodified lines | ||
| 305 | 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 | 315 | .. flat-table:: struct media_v2_pad |
| 312 | 316 | :header-rows: 0 |
| @@ -15,7 +15,8 @@ MEDIA_IOC_SETUP_LINK - Modify the properties of a link · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 21 | 22 | Arguments |
| @@ -24,9 +25,6 @@ Arguments · 2 unmodified lines | ||
| 24 | 25 | ``fd`` |
| 25 | 26 | File descriptor returned by :ref:`open() <media-func-open>`. |
| 26 | 27 | |
| 27 | −``request`` | |
| 28 | − MEDIA_IOC_SETUP_LINK | |
| 29 | − | |
| 30 | 28 | ``argp`` |
| 31 | 29 | |
| 32 | 30 | |
| @@ -34,7 +32,7 @@ Description · 1 unmodified line | ||
| 34 | 32 | =========== |
| 35 | 33 | |
| 36 | 34 | To change link properties applications fill a struct |
| 37 | −:ref:`media_link_desc <media-link-desc>` with link identification | |
| 35 | +:c:type:`media_link_desc` with link identification | |
| 38 | 36 | information (source and sink pad) and the new requested link flags. They |
| 39 | 37 | then call the MEDIA_IOC_SETUP_LINK ioctl with a pointer to that |
| 40 | 38 | structure. |
| @@ -63,6 +61,6 @@ appropriately. The generic error codes are described at the · 22 unmodified lines | ||
| 63 | 61 | :ref:`Generic Error Codes <gen-errors>` chapter. |
| 64 | 62 | |
| 65 | 63 | EINVAL |
| 66 | − The struct :ref:`media_link_desc <media-link-desc>` references a | |
| 64 | + The struct :c:type:`media_link_desc` references a | |
| 67 | 65 | non-existing link, or the link is immutable and an attempt to modify |
| 68 | 66 | its configuration was made. |
| @@ -5,9 +5,12 @@ · 4 unmodified lines | ||
| 5 | 5 | Types and flags used to represent the media graph elements |
| 6 | 6 | ========================================================== |
| 7 | 7 | |
| 8 | +.. tabularcolumns:: |p{8.0cm}|p{10.5cm}| | |
| 8 | 9 | |
| 9 | 10 | .. _media-entity-type: |
| 10 | 11 | |
| 12 | +.. cssclass:: longtable | |
| 13 | + | |
| 11 | 14 | .. flat-table:: Media entity types |
| 12 | 15 | :header-rows: 0 |
| 13 | 16 | :stub-columns: 0 |
| @@ -15,10 +18,12 @@ Types and flags used to represent the media graph elements · 1 unmodified line | ||
| 15 | 18 | |
| 16 | 19 | - .. row 1 |
| 17 | 20 | |
| 18 | − .. _MEDIA-ENT-F-UNKNOWN: | |
| 21 | + .. _MEDIA-ENT-F-UNKNOWN: | |
| 19 | 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 | 28 | - Unknown entity. That generally indicates that a driver didn't |
| 24 | 29 | 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 | 299 | its source pad. |
| 295 | 300 | |
| 296 | 301 | |
| 302 | +.. tabularcolumns:: |p{5.5cm}|p{12.0cm}| | |
| 303 | + | |
| 297 | 304 | .. _media-entity-flag: |
| 298 | 305 | |
| 299 | 306 | .. flat-table:: Media entity flags |
| @@ -319,6 +326,7 @@ Types and flags used to represent the media graph elements · 19 unmodified lines | ||
| 319 | 326 | - The entity represents a data conector |
| 320 | 327 | |
| 321 | 328 | |
| 329 | +.. tabularcolumns:: |p{6.5cm}|p{6.0cm}|p{5.0cm}| | |
| 322 | 330 | |
| 323 | 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 | 414 | - Device node interface for radio (V4L) |
| 407 | 415 | |
| 408 | − - typically, /dev/vbi? | |
| 416 | + - typically, /dev/radio? | |
| 409 | 417 | |
| 410 | 418 | - .. row 9 |
| 411 | 419 | |
| @@ -429,6 +437,16 @@ Types and flags used to represent the media graph elements · 17 unmodified lines | ||
| 429 | 437 | |
| 430 | 438 | - .. 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 | 450 | .. _MEDIA-INTF-T-ALSA-PCM-CAPTURE: |
| 433 | 451 | |
| 434 | 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 | 456 | - typically, /dev/snd/pcmC?D?c |
| 439 | 457 | |
| 440 | − - .. row 12 | |
| 458 | + - .. row 13 | |
| 441 | 459 | |
| 442 | 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 | 466 | - typically, /dev/snd/pcmC?D?p |
| 449 | 467 | |
| 450 | − - .. row 13 | |
| 468 | + - .. row 14 | |
| 451 | 469 | |
| 452 | 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 | 476 | - typically, /dev/snd/controlC? |
| 459 | 477 | |
| 460 | − - .. row 14 | |
| 478 | + - .. row 15 | |
| 461 | 479 | |
| 462 | 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 | 486 | - typically, /dev/snd/compr? |
| 469 | 487 | |
| 470 | − - .. row 15 | |
| 488 | + - .. row 16 | |
| 471 | 489 | |
| 472 | 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 | 496 | - typically, /dev/snd/midi? |
| 479 | 497 | |
| 480 | − - .. row 16 | |
| 498 | + - .. row 17 | |
| 481 | 499 | |
| 482 | 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 | 506 | - typically, /dev/snd/hwC?D? |
| 489 | 507 | |
| 490 | − - .. row 17 | |
| 508 | + - .. row 18 | |
| 491 | 509 | |
| 492 | 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 | 516 | - typically, /dev/snd/seq |
| 499 | 517 | |
| 500 | − - .. row 18 | |
| 518 | + - .. row 19 | |
| 501 | 519 | |
| 502 | 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 | 526 | - typically, /dev/snd/timer |
| 509 | 527 | |
| 510 | 528 | |
| 529 | +.. tabularcolumns:: |p{5.5cm}|p{12.0cm}| | |
| 511 | 530 | |
| 512 | 531 | .. _media-pad-flag: |
| 513 | 532 | |
| @@ -551,6 +570,7 @@ Types and flags used to represent the media graph elements · 37 unmodified lines | ||
| 551 | 570 | One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE`` |
| 552 | 571 | must be set for every pad. |
| 553 | 572 | |
| 573 | +.. tabularcolumns:: |p{5.5cm}|p{12.0cm}| | |
| 554 | 574 | |
| 555 | 575 | .. _media-link-flag: |
| 556 | 576 | |
| @@ -14,7 +14,8 @@ LIRC_GET_FEATURES - Get the underlying hardware device's features · 13 unmodified lines | ||
| 14 | 14 | Synopsis |
| 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 | |
| 19 | 20 | Arguments |
| 20 | 21 | ========= |
| @@ -22,9 +23,6 @@ Arguments · 1 unmodified line | ||
| 22 | 23 | ``fd`` |
| 23 | 24 | File descriptor returned by open(). |
| 24 | 25 | |
| 25 | −``request`` | |
| 26 | − LIRC_GET_FEATURES | |
| 27 | − | |
| 28 | 26 | ``features`` |
| 29 | 27 | Bitmask with the LIRC features. |
| 30 | 28 | |
| @@ -14,7 +14,8 @@ LIRC_GET_LENGTH - Retrieves the code length in bits. · 13 unmodified lines | ||
| 14 | 14 | Synopsis |
| 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 | |
| 19 | 20 | Arguments |
| 20 | 21 | ========= |
| @@ -22,9 +23,6 @@ Arguments · 1 unmodified line | ||
| 22 | 23 | ``fd`` |
| 23 | 24 | File descriptor returned by open(). |
| 24 | 25 | |
| 25 | −``request`` | |
| 26 | − LIRC_GET_LENGTH | |
| 27 | − | |
| 28 | 26 | ``length`` |
| 29 | 27 | length, in bits |
| 30 | 28 | |
| @@ -10,12 +10,16 @@ ioctls LIRC_GET_REC_MODE and LIRC_SET_REC_MODE · 9 unmodified lines | ||
| 10 | 10 | Name |
| 11 | 11 | ==== |
| 12 | 12 | |
| 13 | −LIRC_GET_REC_MODE/LIRC_GET_REC_MODE - Get/set supported receive modes. | |
| 13 | +LIRC_GET_REC_MODE/LIRC_SET_REC_MODE - Get/set supported receive modes. | |
| 14 | 14 | |
| 15 | 15 | Synopsis |
| 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 | |
| 20 | 24 | Arguments |
| 21 | 25 | ========= |
| @@ -23,9 +27,6 @@ Arguments · 1 unmodified line | ||
| 23 | 27 | ``fd`` |
| 24 | 28 | File descriptor returned by open(). |
| 25 | 29 | |
| 26 | −``request`` | |
| 27 | − LIRC_GET_REC_MODE or LIRC_GET_REC_MODE | |
| 28 | − | |
| 29 | 30 | ``rx_modes`` |
| 30 | 31 | Bitmask with the supported transmit modes. |
| 31 | 32 | |
| @@ -14,7 +14,8 @@ LIRC_GET_REC_RESOLUTION - Obtain the value of receive resolution, in microsecond · 13 unmodified lines | ||
| 14 | 14 | Synopsis |
| 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 | |
| 19 | 20 | Arguments |
| 20 | 21 | ========= |
| @@ -22,9 +23,6 @@ Arguments · 1 unmodified line | ||
| 22 | 23 | ``fd`` |
| 23 | 24 | File descriptor returned by open(). |
| 24 | 25 | |
| 25 | −``request`` | |
| 26 | − LIRC_GET_REC_RESOLUTION | |
| 27 | − | |
| 28 | 26 | ``microseconds`` |
| 29 | 27 | Resolution, in microseconds. |
| 30 | 28 | |
| @@ -15,7 +15,11 @@ LIRC_GET_SEND_MODE/LIRC_SET_SEND_MODE - Get/set supported transmit mode. · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 20 | 24 | Arguments |
| 21 | 25 | ========= |
| @@ -23,9 +27,6 @@ Arguments · 1 unmodified line | ||
| 23 | 27 | ``fd`` |
| 24 | 28 | File descriptor returned by open(). |
| 25 | 29 | |
| 26 | −``request`` | |
| 27 | − LIRC_GET_SEND_MODE | |
| 28 | − | |
| 29 | 30 | ``tx_modes`` |
| 30 | 31 | Bitmask with the supported transmit modes. |
| 31 | 32 | |
| @@ -16,7 +16,11 @@ range for IR receive. · 15 unmodified lines | ||
| 16 | 16 | Synopsis |
| 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 | |
| 21 | 25 | Arguments |
| 22 | 26 | ========= |
| @@ -24,9 +28,6 @@ Arguments · 1 unmodified line | ||
| 24 | 28 | ``fd`` |
| 25 | 29 | File descriptor returned by open(). |
| 26 | 30 | |
| 27 | −``request`` | |
| 28 | − LIRC_GET_MIN_TIMEOUT or LIRC_GET_MAX_TIMEOUT | |
| 29 | − | |
| 30 | 31 | ``timeout`` |
| 31 | 32 | Timeout, in microseconds. |
| 32 | 33 | |
| @@ -20,7 +20,8 @@ Synopsis · 19 unmodified lines | ||
| 20 | 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 | |
| 26 | 27 | Arguments |
| @@ -30,8 +31,10 @@ Arguments · 3 unmodified lines | ||
| 30 | 31 | File descriptor returned by ``open()``. |
| 31 | 32 | |
| 32 | 33 | ``buf`` |
| 33 | −``count`` | |
| 34 | + Buffer to be filled | |
| 34 | 35 | |
| 36 | +``count`` | |
| 37 | + Max number of bytes to read | |
| 35 | 38 | |
| 36 | 39 | Description |
| 37 | 40 | =========== |
| @@ -14,7 +14,8 @@ LIRC_SET_MEASURE_CARRIER_MODE - enable or disable measure mode · 13 unmodified lines | ||
| 14 | 14 | Synopsis |
| 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 | |
| 19 | 20 | Arguments |
| 20 | 21 | ========= |
| @@ -22,9 +23,6 @@ Arguments · 1 unmodified line | ||
| 22 | 23 | ``fd`` |
| 23 | 24 | File descriptor returned by open(). |
| 24 | 25 | |
| 25 | −``request`` | |
| 26 | − LIRC_SET_MEASURE_CARRIER_MODE | |
| 27 | − | |
| 28 | 26 | ``enable`` |
| 29 | 27 | enable = 1 means enable measure mode, enable = 0 means disable measure |
| 30 | 28 | mode. |
| @@ -15,7 +15,8 @@ IR receive. · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 20 | 21 | Arguments |
| 21 | 22 | ========= |
| @@ -23,9 +24,6 @@ Arguments · 1 unmodified line | ||
| 23 | 24 | ``fd`` |
| 24 | 25 | File descriptor returned by open(). |
| 25 | 26 | |
| 26 | −``request`` | |
| 27 | − LIRC_SET_REC_CARRIER_RANGE | |
| 28 | − | |
| 29 | 27 | ``frequency`` |
| 30 | 28 | Frequency of the carrier that modulates PWM data, in Hz. |
| 31 | 29 | |
| @@ -15,7 +15,8 @@ LIRC_SET_REC_CARRIER - Set carrier used to modulate IR receive. · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 20 | 21 | Arguments |
| 21 | 22 | ========= |
| @@ -23,9 +24,6 @@ Arguments · 1 unmodified line | ||
| 23 | 24 | ``fd`` |
| 24 | 25 | File descriptor returned by open(). |
| 25 | 26 | |
| 26 | −``request`` | |
| 27 | − LIRC_SET_REC_CARRIER | |
| 28 | − | |
| 29 | 27 | ``frequency`` |
| 30 | 28 | Frequency of the carrier that modulates PWM data, in Hz. |
| 31 | 29 | |
| @@ -14,7 +14,8 @@ LIRC_SET_REC_TIMEOUT_REPORTS - enable or disable timeout reports for IR receive · 13 unmodified lines | ||
| 14 | 14 | Synopsis |
| 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 | |
| 19 | 20 | Arguments |
| 20 | 21 | ========= |
| @@ -22,9 +23,6 @@ Arguments · 1 unmodified line | ||
| 22 | 23 | ``fd`` |
| 23 | 24 | File descriptor returned by open(). |
| 24 | 25 | |
| 25 | −``request`` | |
| 26 | − LIRC_SET_REC_TIMEOUT_REPORTS | |
| 27 | − | |
| 28 | 26 | ``enable`` |
| 29 | 27 | enable = 1 means enable timeout report, enable = 0 means disable timeout |
| 30 | 28 | reports. |
| @@ -14,7 +14,8 @@ LIRC_SET_REC_TIMEOUT - sets the integer value for IR inactivity timeout. · 13 unmodified lines | ||
| 14 | 14 | Synopsis |
| 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 | |
| 19 | 20 | Arguments |
| 20 | 21 | ========= |
| @@ -22,9 +23,6 @@ Arguments · 1 unmodified line | ||
| 22 | 23 | ``fd`` |
| 23 | 24 | File descriptor returned by open(). |
| 24 | 25 | |
| 25 | −``request`` | |
| 26 | − LIRC_SET_REC_TIMEOUT | |
| 27 | − | |
| 28 | 26 | ``timeout`` |
| 29 | 27 | Timeout, in microseconds. |
| 30 | 28 | |
| @@ -15,7 +15,8 @@ LIRC_SET_SEND_CARRIER - Set send carrier used to modulate IR TX. · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 20 | 21 | Arguments |
| 21 | 22 | ========= |
| @@ -23,9 +24,6 @@ Arguments · 1 unmodified line | ||
| 23 | 24 | ``fd`` |
| 24 | 25 | File descriptor returned by open(). |
| 25 | 26 | |
| 26 | −``request`` | |
| 27 | − LIRC_SET_SEND_CARRIER | |
| 28 | − | |
| 29 | 27 | ``frequency`` |
| 30 | 28 | Frequency of the carrier to be modulated, in Hz. |
| 31 | 29 | |
| @@ -15,7 +15,8 @@ IR transmit. · 14 unmodified lines | ||
| 15 | 15 | Synopsis |
| 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 | |
| 20 | 21 | Arguments |
| 21 | 22 | ========= |
| @@ -23,9 +24,6 @@ Arguments · 1 unmodified line | ||
| 23 | 24 | ``fd`` |
| 24 | 25 | File descriptor returned by open(). |
| 25 | 26 | |
| 26 | −``request`` | |
| 27 | − LIRC_SET_SEND_DUTY_CYCLE | |
| 28 | − | |
| 29 | 27 | ``duty_cycle`` |
| 30 | 28 | Duty cicle, describing the pulse width in percent (from 1 to 99) of |
| 31 | 29 | the total cycle. Values 0 and 100 are reserved. |
| @@ -14,7 +14,8 @@ LIRC_SET_TRANSMITTER_MASK - Enables send codes on a given set of transmitters · 13 unmodified lines | ||
| 14 | 14 | Synopsis |
| 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 | |
| 19 | 20 | Arguments |
| 20 | 21 | ========= |
| @@ -22,9 +23,6 @@ Arguments · 1 unmodified line | ||
| 22 | 23 | ``fd`` |
| 23 | 24 | File descriptor returned by open(). |
| 24 | 25 | |
| 25 | −``request`` | |
| 26 | − LIRC_SET_TRANSMITTER_MASK | |
| 27 | − | |
| 28 | 26 | ``mask`` |
| 29 | 27 | Mask with channels to enable tx. Channel 0 is the least significant bit. |
| 30 | 28 | |
| @@ -14,7 +14,8 @@ LIRC_SET_WIDEBAND_RECEIVER - enable wide band receiver. · 13 unmodified lines | ||
| 14 | 14 | Synopsis |
| 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 | |
| 19 | 20 | Arguments |
| 20 | 21 | ========= |
| @@ -22,9 +23,6 @@ Arguments · 1 unmodified line | ||
| 22 | 23 | ``fd`` |
| 23 | 24 | File descriptor returned by open(). |
| 24 | 25 | |
| 25 | −``request`` | |
| 26 | − LIRC_SET_WIDEBAND_RECEIVER | |
| 27 | − | |
| 28 | 26 | ``enable`` |
| 29 | 27 | enable = 1 means enable wideband receiver, enable = 0 means disable |
| 30 | 28 | wideband receiver. |
| @@ -42,7 +40,9 @@ that prevents them to be used with some remotes. Wide band receiver might · 11 unmodified lines | ||
| 42 | 40 | also be more precise. On the other hand its disadvantage it usually |
| 43 | 41 | reduced range of reception. |
| 44 | 42 | |
| 45 | −.. note:: Wide band receiver might be implictly enabled if you enable | |
| 43 | +.. note:: | |
| 44 | + | |
| 45 | + Wide band receiver might be implictly enabled if you enable | |
| 46 | 46 | carrier reports. In that case it will be disabled as soon as you disable |
| 47 | 47 | carrier reports. Trying to disable wide band receiver while carrier |
| 48 | 48 | reports are active will do nothing. |
| @@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: ssize_t write( int fd, void *buf, size_t count ) | |
| 24 | − | |
| 23 | +.. c:function:: ssize_t write( int fd, void *buf, size_t count ) | |
| 24 | + :name: lirc-write | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| @@ -30,8 +30,10 @@ Arguments · 2 unmodified lines | ||
| 30 | 30 | File descriptor returned by ``open()``. |
| 31 | 31 | |
| 32 | 32 | ``buf`` |
| 33 | −``count`` | |
| 33 | + Buffer with data to be written | |
| 34 | 34 | |
| 35 | +``count`` | |
| 36 | + Number of bytes at the buffer | |
| 35 | 37 | |
| 36 | 38 | Description |
| 37 | 39 | =========== |
| @@ -25,6 +25,8 @@ the remote via /dev/input/event devices. · 24 unmodified lines | ||
| 25 | 25 | |
| 26 | 26 | .. _rc_standard_keymap: |
| 27 | 27 | |
| 28 | +.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| | |
| 29 | + | |
| 28 | 30 | .. flat-table:: IR default keymapping |
| 29 | 31 | :header-rows: 0 |
| 30 | 32 | :stub-columns: 0 |
| @@ -21,15 +21,15 @@ more than one video input or output. Assumed two composite video inputs · 20 unmodified lines | ||
| 21 | 21 | and two audio inputs exist, there may be up to four valid combinations. |
| 22 | 22 | The relation of video and audio connectors is defined in the |
| 23 | 23 | ``audioset`` field of the respective struct |
| 24 | −:ref:`v4l2_input <v4l2-input>` or struct | |
| 25 | −:ref:`v4l2_output <v4l2-output>`, where each bit represents the index | |
| 24 | +:c:type:`v4l2_input` or struct | |
| 25 | +:c:type:`v4l2_output`, where each bit represents the index | |
| 26 | 26 | number, starting at zero, of one audio input or output. |
| 27 | 27 | |
| 28 | 28 | To learn about the number and attributes of the available inputs and |
| 29 | 29 | outputs applications can enumerate them with the |
| 30 | 30 | :ref:`VIDIOC_ENUMAUDIO` and |
| 31 | 31 | :ref:`VIDIOC_ENUMAUDOUT <VIDIOC_ENUMAUDOUT>` ioctl, respectively. |
| 32 | −The struct :ref:`v4l2_audio <v4l2-audio>` returned by the | |
| 32 | +The struct :c:type:`v4l2_audio` returned by the | |
| 33 | 33 | :ref:`VIDIOC_ENUMAUDIO` ioctl also contains signal |
| 34 | 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 | 37 | :ref:`VIDIOC_G_AUDOUT <VIDIOC_G_AUDOUT>` ioctls report the current |
| 38 | 38 | audio input and output, respectively. |
| 39 | 39 | |
| 40 | −.. note:: Note that, unlike :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and | |
| 40 | +.. note:: | |
| 41 | + | |
| 42 | + Note that, unlike :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and | |
| 41 | 43 | :ref:`VIDIOC_G_OUTPUT <VIDIOC_G_OUTPUT>` these ioctls return a |
| 42 | 44 | structure as :ref:`VIDIOC_ENUMAUDIO` and |
| 43 | 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 | ||
| 51 | 53 | multiple selectable audio inputs, all audio output ioctls when the |
| 52 | 54 | device has multiple selectable audio outputs. When the device has any |
| 53 | 55 | audio inputs or outputs the driver must set the ``V4L2_CAP_AUDIO`` flag |
| 54 | −in the struct :ref:`v4l2_capability <v4l2-capability>` returned by | |
| 56 | +in the struct :c:type:`v4l2_capability` returned by | |
| 55 | 57 | the :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 | 93 | .. [#f1] |
| 92 | − Actually struct :ref:`v4l2_audio <v4l2-audio>` ought to have a | |
| 93 | − ``tuner`` field like struct :ref:`v4l2_input <v4l2-input>`, not | |
| 94 | + Actually struct :c:type:`v4l2_audio` ought to have a | |
| 95 | + ``tuner`` field like struct :c:type:`v4l2_input`, not | |
| 94 | 96 | only making the API more consistent but also permitting radio devices |
| 95 | 97 | with multiple tuners. |
| @@ -11,14 +11,14 @@ the Streaming I/O methods. In the multi-planar API, the data is held in · 10 unmodified lines | ||
| 11 | 11 | planes, while the buffer structure acts as a container for the planes. |
| 12 | 12 | Only pointers to buffers (planes) are exchanged, the data itself is not |
| 13 | 13 | copied. These pointers, together with meta-information like timestamps |
| 14 | −or field parity, are stored in a struct :ref:`struct v4l2_buffer <v4l2-buffer>`, | |
| 14 | +or field parity, are stored in a struct :c:type:`v4l2_buffer`, | |
| 15 | 15 | argument to the :ref:`VIDIOC_QUERYBUF`, |
| 16 | 16 | :ref:`VIDIOC_QBUF` and |
| 17 | 17 | :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. In the multi-planar API, |
| 18 | −some plane-specific members of struct :ref:`struct v4l2_buffer <v4l2-buffer>`, | |
| 18 | +some plane-specific members of struct :c:type:`v4l2_buffer`, | |
| 19 | 19 | such as pointers and sizes for each plane, are stored in struct |
| 20 | −:ref:`struct v4l2_plane <v4l2-plane>` instead. In that case, struct | |
| 21 | −:ref:`struct v4l2_buffer <v4l2-buffer>` contains an array of plane structures. | |
| 20 | +struct :c:type:`v4l2_plane` instead. In that case, struct | |
| 21 | +struct :c:type:`v4l2_buffer` contains an array of plane structures. | |
| 22 | 22 | |
| 23 | 23 | Dequeued video buffers come with timestamps. The driver decides at which |
| 24 | 24 | part of the frame and with which clock the timestamp is taken. Please |
| @@ -34,470 +34,302 @@ flags are copied from the OUTPUT video buffer to the CAPTURE video · 9 unmodified lines | ||
| 34 | 34 | buffer. |
| 35 | 35 | |
| 36 | 36 | |
| 37 | −.. _v4l2-buffer: | |
| 37 | +.. c:type:: v4l2_buffer | |
| 38 | 38 | |
| 39 | 39 | struct 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 | 46 | .. flat-table:: struct v4l2_buffer |
| 43 | 47 | :header-rows: 0 |
| 44 | 48 | :stub-columns: 0 |
| 45 | − :widths: 1 1 1 2 | |
| 46 | − | |
| 47 | − | |
| 48 | − - .. row 1 | |
| 49 | − | |
| 50 | − - __u32 | |
| 51 | − | |
| 52 | − - ``index`` | |
| 53 | − | |
| 54 | − - | |
| 55 | − - Number of the buffer, set by the application except when calling | |
| 56 | − :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>`, then it is set by the | |
| 57 | − driver. This field can range from zero to the number of buffers | |
| 58 | − allocated with the :ref:`VIDIOC_REQBUFS` ioctl | |
| 59 | − (struct :ref:`v4l2_requestbuffers <v4l2-requestbuffers>` | |
| 60 | − ``count``), plus any buffers allocated with | |
| 61 | − :ref:`VIDIOC_CREATE_BUFS` minus one. | |
| 62 | − | |
| 63 | − - .. row 2 | |
| 64 | − | |
| 65 | − - __u32 | |
| 66 | − | |
| 67 | − - ``type`` | |
| 68 | − | |
| 69 | − - | |
| 70 | − - Type of the buffer, same as struct | |
| 71 | − :ref:`v4l2_format <v4l2-format>` ``type`` or struct | |
| 72 | − :ref:`v4l2_requestbuffers <v4l2-requestbuffers>` ``type``, set | |
| 73 | − by the application. See :ref:`v4l2-buf-type` | |
| 74 | − | |
| 75 | − - .. row 3 | |
| 76 | − | |
| 77 | − - __u32 | |
| 78 | − | |
| 79 | − - ``bytesused`` | |
| 80 | − | |
| 81 | − - | |
| 82 | − - The number of bytes occupied by the data in the buffer. It depends | |
| 83 | − on the negotiated data format and may change with each buffer for | |
| 84 | − compressed variable size data like JPEG images. Drivers must set | |
| 85 | − this field when ``type`` refers to a capture stream, applications | |
| 86 | − when it refers to an output stream. If the application sets this | |
| 87 | − to 0 for an output stream, then ``bytesused`` will be set to the | |
| 88 | − size of the buffer (see the ``length`` field of this struct) by | |
| 89 | − the driver. For multiplanar formats this field is ignored and the | |
| 90 | − ``planes`` pointer is used instead. | |
| 91 | − | |
| 92 | − - .. row 4 | |
| 93 | − | |
| 94 | − - __u32 | |
| 95 | − | |
| 96 | − - ``flags`` | |
| 97 | − | |
| 98 | − - | |
| 99 | − - Flags set by the application or driver, see :ref:`buffer-flags`. | |
| 100 | − | |
| 101 | − - .. row 5 | |
| 102 | − | |
| 103 | − - __u32 | |
| 104 | − | |
| 105 | − - ``field`` | |
| 106 | − | |
| 107 | − - | |
| 108 | − - Indicates the field order of the image in the buffer, see | |
| 109 | − :ref:`v4l2-field`. This field is not used when the buffer | |
| 110 | − contains VBI data. Drivers must set it when ``type`` refers to a | |
| 111 | − capture stream, applications when it refers to an output stream. | |
| 112 | − | |
| 113 | − - .. row 6 | |
| 114 | − | |
| 115 | − - struct timeval | |
| 116 | − | |
| 117 | − - ``timestamp`` | |
| 118 | − | |
| 119 | − - | |
| 120 | − - For capture streams this is time when the first data byte was | |
| 121 | − captured, as returned by the :c:func:`clock_gettime()` function | |
| 122 | − for the relevant clock id; see ``V4L2_BUF_FLAG_TIMESTAMP_*`` in | |
| 123 | − :ref:`buffer-flags`. For output streams the driver stores the | |
| 124 | − time at which the last data byte was actually sent out in the | |
| 125 | − ``timestamp`` field. This permits applications to monitor the | |
| 126 | − drift between the video and system clock. For output streams that | |
| 127 | − use ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` the application has to fill | |
| 128 | − in the timestamp which will be copied by the driver to the capture | |
| 129 | − stream. | |
| 130 | − | |
| 131 | − - .. row 7 | |
| 132 | − | |
| 133 | − - struct :ref:`v4l2_timecode <v4l2-timecode>` | |
| 134 | − | |
| 135 | − - ``timecode`` | |
| 136 | − | |
| 137 | − - | |
| 138 | − - When ``type`` is ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` and the | |
| 139 | − ``V4L2_BUF_FLAG_TIMECODE`` flag is set in ``flags``, this | |
| 140 | − structure contains a frame timecode. In | |
| 141 | − :ref:`V4L2_FIELD_ALTERNATE <v4l2-field>` mode the top and | |
| 142 | − bottom field contain the same timecode. Timecodes are intended to | |
| 143 | − help video editing and are typically recorded on video tapes, but | |
| 144 | − also embedded in compressed formats like MPEG. This field is | |
| 145 | − independent of the ``timestamp`` and ``sequence`` fields. | |
| 146 | − | |
| 147 | − - .. row 8 | |
| 148 | − | |
| 149 | − - __u32 | |
| 150 | − | |
| 151 | − - ``sequence`` | |
| 152 | − | |
| 153 | − - | |
| 154 | − - Set by the driver, counting the frames (not fields!) in sequence. | |
| 155 | − This field is set for both input and output devices. | |
| 156 | − | |
| 157 | − - .. row 9 | |
| 158 | − | |
| 159 | − - :cspan:`3` | |
| 160 | − | |
| 161 | − In :ref:`V4L2_FIELD_ALTERNATE <v4l2-field>` mode the top and | |
| 162 | − bottom field have the same sequence number. The count starts at | |
| 163 | − zero and includes dropped or repeated frames. A dropped frame was | |
| 164 | − received by an input device but could not be stored due to lack of | |
| 165 | − free buffer space. A repeated frame was displayed again by an | |
| 166 | − output device because the application did not pass new data in | |
| 167 | − time. | |
| 168 | − | |
| 169 | − .. note:: This may count the frames received e.g. over USB, without | |
| 170 | − taking into account the frames dropped by the remote hardware due | |
| 171 | − to limited compression throughput or bus bandwidth. These devices | |
| 172 | − identify by not enumerating any video standards, see | |
| 173 | − :ref:`standard`. | |
| 174 | − | |
| 175 | − - .. row 10 | |
| 176 | − | |
| 177 | − - __u32 | |
| 178 | − | |
| 179 | − - ``memory`` | |
| 180 | − | |
| 181 | − - | |
| 182 | − - This field must be set by applications and/or drivers in | |
| 183 | − accordance with the selected I/O method. See :ref:`v4l2-memory` | |
| 184 | − | |
| 185 | − - .. row 11 | |
| 186 | − | |
| 187 | − - union | |
| 188 | − | |
| 189 | − - ``m`` | |
| 190 | − | |
| 191 | − - .. row 12 | |
| 192 | − | |
| 193 | − - | |
| 194 | − - __u32 | |
| 195 | − | |
| 196 | − - ``offset`` | |
| 197 | − | |
| 198 | − - For the single-planar API and when ``memory`` is | |
| 199 | − ``V4L2_MEMORY_MMAP`` this is the offset of the buffer from the | |
| 200 | − start of the device memory. The value is returned by the driver | |
| 201 | − and apart of serving as parameter to the | |
| 202 | − :ref:`mmap() <func-mmap>` function not useful for applications. | |
| 203 | − See :ref:`mmap` for details | |
| 204 | − | |
| 205 | − - .. row 13 | |
| 206 | − | |
| 207 | − - | |
| 208 | − - unsigned long | |
| 209 | − | |
| 210 | − - ``userptr`` | |
| 211 | − | |
| 212 | − - For the single-planar API and when ``memory`` is | |
| 213 | − ``V4L2_MEMORY_USERPTR`` this is a pointer to the buffer (casted to | |
| 214 | − unsigned long type) in virtual memory, set by the application. See | |
| 215 | − :ref:`userp` for details. | |
| 216 | − | |
| 217 | − - .. row 14 | |
| 218 | − | |
| 219 | − - | |
| 220 | − - struct v4l2_plane | |
| 221 | − | |
| 222 | − - ``*planes`` | |
| 223 | − | |
| 224 | − - When using the multi-planar API, contains a userspace pointer to | |
| 225 | − an array of struct :ref:`v4l2_plane <v4l2-plane>`. The size of | |
| 226 | − the array should be put in the ``length`` field of this | |
| 227 | − :ref:`struct v4l2_buffer <v4l2-buffer>` structure. | |
| 228 | − | |
| 229 | − - .. row 15 | |
| 230 | − | |
| 231 | − - | |
| 232 | − - int | |
| 233 | − | |
| 234 | − - ``fd`` | |
| 235 | − | |
| 236 | − - For the single-plane API and when ``memory`` is | |
| 237 | − ``V4L2_MEMORY_DMABUF`` this is the file descriptor associated with | |
| 238 | − a DMABUF buffer. | |
| 239 | − | |
| 240 | − - .. row 16 | |
| 241 | − | |
| 242 | − - __u32 | |
| 243 | − | |
| 244 | − - ``length`` | |
| 245 | − | |
| 246 | − - | |
| 247 | − - Size of the buffer (not the payload) in bytes for the | |
| 248 | − single-planar API. This is set by the driver based on the calls to | |
| 249 | − :ref:`VIDIOC_REQBUFS` and/or | |
| 250 | − :ref:`VIDIOC_CREATE_BUFS`. For the | |
| 251 | − multi-planar API the application sets this to the number of | |
| 252 | − elements in the ``planes`` array. The driver will fill in the | |
| 253 | − actual number of valid elements in that array. | |
| 254 | − | |
| 255 | − - .. row 17 | |
| 256 | − | |
| 257 | − - __u32 | |
| 258 | − | |
| 259 | − - ``reserved2`` | |
| 260 | − | |
| 261 | − - | |
| 262 | − - A place holder for future extensions. Drivers and applications | |
| 263 | − must set this to 0. | |
| 264 | − | |
| 265 | − - .. row 18 | |
| 266 | − | |
| 267 | − - __u32 | |
| 268 | − | |
| 269 | − - ``reserved`` | |
| 270 | − | |
| 271 | − - | |
| 272 | − - A place holder for future extensions. Drivers and applications | |
| 273 | − must set this to 0. | |
| 274 | − | |
| 275 | − | |
| 276 | − | |
| 277 | −.. _v4l2-plane: | |
| 49 | + :widths: 1 2 1 10 | |
| 50 | + | |
| 51 | + * - __u32 | |
| 52 | + - ``index`` | |
| 53 | + - | |
| 54 | + - Number of the buffer, set by the application except when calling | |
| 55 | + :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>`, then it is set by the | |
| 56 | + driver. This field can range from zero to the number of buffers | |
| 57 | + allocated with the :ref:`VIDIOC_REQBUFS` ioctl | |
| 58 | + (struct :c:type:`v4l2_requestbuffers` | |
| 59 | + ``count``), plus any buffers allocated with | |
| 60 | + :ref:`VIDIOC_CREATE_BUFS` minus one. | |
| 61 | + * - __u32 | |
| 62 | + - ``type`` | |
| 63 | + - | |
| 64 | + - Type of the buffer, same as struct | |
| 65 | + :c:type:`v4l2_format` ``type`` or struct | |
| 66 | + :c:type:`v4l2_requestbuffers` ``type``, set | |
| 67 | + by the application. See :c:type:`v4l2_buf_type` | |
| 68 | + * - __u32 | |
| 69 | + - ``bytesused`` | |
| 70 | + - | |
| 71 | + - The number of bytes occupied by the data in the buffer. It depends | |
| 72 | + on the negotiated data format and may change with each buffer for | |
| 73 | + compressed variable size data like JPEG images. Drivers must set | |
| 74 | + this field when ``type`` refers to a capture stream, applications | |
| 75 | + when it refers to an output stream. If the application sets this | |
| 76 | + to 0 for an output stream, then ``bytesused`` will be set to the | |
| 77 | + size of the buffer (see the ``length`` field of this struct) by | |
| 78 | + the driver. For multiplanar formats this field is ignored and the | |
| 79 | + ``planes`` pointer is used instead. | |
| 80 | + * - __u32 | |
| 81 | + - ``flags`` | |
| 82 | + - | |
| 83 | + - Flags set by the application or driver, see :ref:`buffer-flags`. | |
| 84 | + * - __u32 | |
| 85 | + - ``field`` | |
| 86 | + - | |
| 87 | + - Indicates the field order of the image in the buffer, see | |
| 88 | + :c:type:`v4l2_field`. This field is not used when the buffer | |
| 89 | + contains VBI data. Drivers must set it when ``type`` refers to a | |
| 90 | + capture stream, applications when it refers to an output stream. | |
| 91 | + * - struct timeval | |
| 92 | + - ``timestamp`` | |
| 93 | + - | |
| 94 | + - For capture streams this is time when the first data byte was | |
| 95 | + captured, as returned by the :c:func:`clock_gettime()` function | |
| 96 | + for the relevant clock id; see ``V4L2_BUF_FLAG_TIMESTAMP_*`` in | |
| 97 | + :ref:`buffer-flags`. For output streams the driver stores the | |
| 98 | + time at which the last data byte was actually sent out in the | |
| 99 | + ``timestamp`` field. This permits applications to monitor the | |
| 100 | + drift between the video and system clock. For output streams that | |
| 101 | + use ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` the application has to fill | |
| 102 | + in the timestamp which will be copied by the driver to the capture | |
| 103 | + stream. | |
| 104 | + * - struct :c:type:`v4l2_timecode` | |
| 105 | + - ``timecode`` | |
| 106 | + - | |
| 107 | + - When ``type`` is ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` and the | |
| 108 | + ``V4L2_BUF_FLAG_TIMECODE`` flag is set in ``flags``, this | |
| 109 | + structure contains a frame timecode. In | |
| 110 | + :c:type:`V4L2_FIELD_ALTERNATE <v4l2_field>` mode the top and | |
| 111 | + bottom field contain the same timecode. Timecodes are intended to | |
| 112 | + help video editing and are typically recorded on video tapes, but | |
| 113 | + also embedded in compressed formats like MPEG. This field is | |
| 114 | + independent of the ``timestamp`` and ``sequence`` fields. | |
| 115 | + * - __u32 | |
| 116 | + - ``sequence`` | |
| 117 | + - | |
| 118 | + - Set by the driver, counting the frames (not fields!) in sequence. | |
| 119 | + This field is set for both input and output devices. | |
| 120 | + * - :cspan:`3` | |
| 121 | + | |
| 122 | + In :c:type:`V4L2_FIELD_ALTERNATE <v4l2_field>` mode the top and | |
| 123 | + bottom field have the same sequence number. The count starts at | |
| 124 | + zero and includes dropped or repeated frames. A dropped frame was | |
| 125 | + received by an input device but could not be stored due to lack of | |
| 126 | + free buffer space. A repeated frame was displayed again by an | |
| 127 | + output device because the application did not pass new data in | |
| 128 | + time. | |
| 129 | + | |
| 130 | + .. note:: | |
| 131 | + | |
| 132 | + This may count the frames received e.g. over USB, without | |
| 133 | + taking into account the frames dropped by the remote hardware due | |
| 134 | + to limited compression throughput or bus bandwidth. These devices | |
| 135 | + identify by not enumerating any video standards, see | |
| 136 | + :ref:`standard`. | |
| 137 | + | |
| 138 | + * - __u32 | |
| 139 | + - ``memory`` | |
| 140 | + - | |
| 141 | + - This field must be set by applications and/or drivers in | |
| 142 | + accordance with the selected I/O method. See :c:type:`v4l2_memory` | |
| 143 | + * - union | |
| 144 | + - ``m`` | |
| 145 | + * - | |
| 146 | + - __u32 | |
| 147 | + - ``offset`` | |
| 148 | + - For the single-planar API and when ``memory`` is | |
| 149 | + ``V4L2_MEMORY_MMAP`` this is the offset of the buffer from the | |
| 150 | + start of the device memory. The value is returned by the driver | |
| 151 | + and apart of serving as parameter to the | |
| 152 | + :ref:`mmap() <func-mmap>` function not useful for applications. | |
| 153 | + See :ref:`mmap` for details | |
| 154 | + * - | |
| 155 | + - unsigned long | |
| 156 | + - ``userptr`` | |
| 157 | + - For the single-planar API and when ``memory`` is | |
| 158 | + ``V4L2_MEMORY_USERPTR`` this is a pointer to the buffer (casted to | |
| 159 | + unsigned long type) in virtual memory, set by the application. See | |
| 160 | + :ref:`userp` for details. | |
| 161 | + * - | |
| 162 | + - struct v4l2_plane | |
| 163 | + - ``*planes`` | |
| 164 | + - When using the multi-planar API, contains a userspace pointer to | |
| 165 | + an array of struct :c:type:`v4l2_plane`. The size of | |
| 166 | + the array should be put in the ``length`` field of this | |
| 167 | + struct :c:type:`v4l2_buffer` structure. | |
| 168 | + * - | |
| 169 | + - int | |
| 170 | + - ``fd`` | |
| 171 | + - For the single-plane API and when ``memory`` is | |
| 172 | + ``V4L2_MEMORY_DMABUF`` this is the file descriptor associated with | |
| 173 | + a DMABUF buffer. | |
| 174 | + * - __u32 | |
| 175 | + - ``length`` | |
| 176 | + - | |
| 177 | + - Size of the buffer (not the payload) in bytes for the | |
| 178 | + single-planar API. This is set by the driver based on the calls to | |
| 179 | + :ref:`VIDIOC_REQBUFS` and/or | |
| 180 | + :ref:`VIDIOC_CREATE_BUFS`. For the | |
| 181 | + multi-planar API the application sets this to the number of | |
| 182 | + elements in the ``planes`` array. The driver will fill in the | |
| 183 | + actual number of valid elements in that array. | |
| 184 | + * - __u32 | |
| 185 | + - ``reserved2`` | |
| 186 | + - | |
| 187 | + - A place holder for future extensions. Drivers and applications | |
| 188 | + must set this to 0. | |
| 189 | + * - __u32 | |
| 190 | + - ``reserved`` | |
| 191 | + - | |
| 192 | + - A place holder for future extensions. Drivers and applications | |
| 193 | + must set this to 0. | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | +.. c:type:: v4l2_plane | |
| 278 | 198 | |
| 279 | 199 | struct 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 | 206 | .. flat-table:: |
| 283 | 207 | :header-rows: 0 |
| 284 | 208 | :stub-columns: 0 |
| 285 | 209 | :widths: 1 1 1 2 |
| 286 | 210 | |
| 287 | − | |
| 288 | − - .. row 1 | |
| 289 | − | |
| 290 | − - __u32 | |
| 291 | − | |
| 292 | − - ``bytesused`` | |
| 293 | − | |
| 294 | − - | |
| 295 | − - The number of bytes occupied by data in the plane (its payload). | |
| 296 | − Drivers must set this field when ``type`` refers to a capture | |
| 297 | − stream, applications when it refers to an output stream. If the | |
| 298 | − application sets this to 0 for an output stream, then | |
| 299 | − ``bytesused`` will be set to the size of the plane (see the | |
| 300 | − ``length`` field of this struct) by the driver. | |
| 301 | − | |
| 302 | − .. note:: Note that the actual image data starts at ``data_offset`` | |
| 303 | − which may not be 0. | |
| 304 | − | |
| 305 | − - .. row 2 | |
| 306 | − | |
| 307 | − - __u32 | |
| 308 | − | |
| 309 | − - ``length`` | |
| 310 | − | |
| 311 | − - | |
| 312 | − - Size in bytes of the plane (not its payload). This is set by the | |
| 313 | − driver based on the calls to | |
| 314 | − :ref:`VIDIOC_REQBUFS` and/or | |
| 315 | − :ref:`VIDIOC_CREATE_BUFS`. | |
| 316 | − | |
| 317 | − - .. row 3 | |
| 318 | − | |
| 319 | − - union | |
| 320 | − | |
| 321 | − - ``m`` | |
| 322 | − | |
| 323 | − - | |
| 324 | − - | |
| 325 | − | |
| 326 | − - .. row 4 | |
| 327 | − | |
| 328 | − - | |
| 329 | − - __u32 | |
| 330 | − | |
| 331 | − - ``mem_offset`` | |
| 332 | − | |
| 333 | − - When the memory type in the containing struct | |
| 334 | − :ref:`v4l2_buffer <v4l2-buffer>` is ``V4L2_MEMORY_MMAP``, this | |
| 335 | − is the value that should be passed to :ref:`mmap() <func-mmap>`, | |
| 336 | − similar to the ``offset`` field in struct | |
| 337 | − :ref:`v4l2_buffer <v4l2-buffer>`. | |
| 338 | − | |
| 339 | − - .. row 5 | |
| 340 | − | |
| 341 | − - | |
| 342 | − - unsigned long | |
| 343 | − | |
| 344 | − - ``userptr`` | |
| 345 | − | |
| 346 | − - When the memory type in the containing struct | |
| 347 | − :ref:`v4l2_buffer <v4l2-buffer>` is ``V4L2_MEMORY_USERPTR``, | |
| 348 | − this is a userspace pointer to the memory allocated for this plane | |
| 349 | − by an application. | |
| 350 | − | |
| 351 | − - .. row 6 | |
| 352 | − | |
| 353 | − - | |
| 354 | − - int | |
| 355 | − | |
| 356 | − - ``fd`` | |
| 357 | − | |
| 358 | − - When the memory type in the containing struct | |
| 359 | − :ref:`v4l2_buffer <v4l2-buffer>` is ``V4L2_MEMORY_DMABUF``, | |
| 360 | − this is a file descriptor associated with a DMABUF buffer, similar | |
| 361 | − to the ``fd`` field in struct :ref:`v4l2_buffer <v4l2-buffer>`. | |
| 362 | − | |
| 363 | − - .. row 7 | |
| 364 | − | |
| 365 | − - __u32 | |
| 366 | − | |
| 367 | − - ``data_offset`` | |
| 368 | − | |
| 369 | − - | |
| 370 | − - Offset in bytes to video data in the plane. Drivers must set this | |
| 371 | − field when ``type`` refers to a capture stream, applications when | |
| 372 | − it refers to an output stream. | |
| 373 | − | |
| 374 | − .. note:: That data_offset is included in ``bytesused``. So the | |
| 375 | − size of the image in the plane is ``bytesused``-``data_offset`` | |
| 376 | − at offset ``data_offset`` from the start of the plane. | |
| 377 | − | |
| 378 | − - .. row 8 | |
| 379 | − | |
| 380 | − - __u32 | |
| 381 | − | |
| 382 | − - ``reserved[11]`` | |
| 383 | − | |
| 384 | − - | |
| 385 | − - Reserved for future use. Should be zeroed by drivers and | |
| 386 | − applications. | |
| 387 | − | |
| 388 | − | |
| 389 | − | |
| 390 | −.. _v4l2-buf-type: | |
| 211 | + * - __u32 | |
| 212 | + - ``bytesused`` | |
| 213 | + - | |
| 214 | + - The number of bytes occupied by data in the plane (its payload). | |
| 215 | + Drivers must set this field when ``type`` refers to a capture | |
| 216 | + stream, applications when it refers to an output stream. If the | |
| 217 | + application sets this to 0 for an output stream, then | |
| 218 | + ``bytesused`` will be set to the size of the plane (see the | |
| 219 | + ``length`` field of this struct) by the driver. | |
| 220 | + | |
| 221 | + .. note:: | |
| 222 | + | |
| 223 | + Note that the actual image data starts at ``data_offset`` | |
| 224 | + which may not be 0. | |
| 225 | + * - __u32 | |
| 226 | + - ``length`` | |
| 227 | + - | |
| 228 | + - Size in bytes of the plane (not its payload). This is set by the | |
| 229 | + driver based on the calls to | |
| 230 | + :ref:`VIDIOC_REQBUFS` and/or | |
| 231 | + :ref:`VIDIOC_CREATE_BUFS`. | |
| 232 | + * - union | |
| 233 | + - ``m`` | |
| 234 | + - | |
| 235 | + - | |
| 236 | + * - | |
| 237 | + - __u32 | |
| 238 | + - ``mem_offset`` | |
| 239 | + - When the memory type in the containing struct | |
| 240 | + :c:type:`v4l2_buffer` is ``V4L2_MEMORY_MMAP``, this | |
| 241 | + is the value that should be passed to :ref:`mmap() <func-mmap>`, | |
| 242 | + similar to the ``offset`` field in struct | |
| 243 | + :c:type:`v4l2_buffer`. | |
| 244 | + * - | |
| 245 | + - unsigned long | |
| 246 | + - ``userptr`` | |
| 247 | + - When the memory type in the containing struct | |
| 248 | + :c:type:`v4l2_buffer` is ``V4L2_MEMORY_USERPTR``, | |
| 249 | + this is a userspace pointer to the memory allocated for this plane | |
| 250 | + by an application. | |
| 251 | + * - | |
| 252 | + - int | |
| 253 | + - ``fd`` | |
| 254 | + - When the memory type in the containing struct | |
| 255 | + :c:type:`v4l2_buffer` is ``V4L2_MEMORY_DMABUF``, | |
| 256 | + this is a file descriptor associated with a DMABUF buffer, similar | |
| 257 | + to the ``fd`` field in struct :c:type:`v4l2_buffer`. | |
| 258 | + * - __u32 | |
| 259 | + - ``data_offset`` | |
| 260 | + - | |
| 261 | + - Offset in bytes to video data in the plane. Drivers must set this | |
| 262 | + field when ``type`` refers to a capture stream, applications when | |
| 263 | + it refers to an output stream. | |
| 264 | + | |
| 265 | + .. note:: | |
| 266 | + | |
| 267 | + That data_offset is included in ``bytesused``. So the | |
| 268 | + size of the image in the plane is ``bytesused``-``data_offset`` | |
| 269 | + at offset ``data_offset`` from the start of the plane. | |
| 270 | + * - __u32 | |
| 271 | + - ``reserved[11]`` | |
| 272 | + - | |
| 273 | + - Reserved for future use. Should be zeroed by drivers and | |
| 274 | + applications. | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | +.. c:type:: v4l2_buf_type | |
| 391 | 279 | |
| 392 | 280 | enum v4l2_buf_type |
| 393 | 281 | ================== |
| 394 | 282 | |
| 283 | +.. cssclass:: longtable | |
| 284 | + | |
| 285 | +.. tabularcolumns:: |p{7.2cm}|p{0.6cm}|p{9.7cm}| | |
| 286 | + | |
| 395 | 287 | .. flat-table:: |
| 396 | 288 | :header-rows: 0 |
| 397 | 289 | :stub-columns: 0 |
| 398 | − :widths: 3 1 4 | |
| 399 | − | |
| 400 | − | |
| 401 | − - .. row 1 | |
| 402 | − | |
| 403 | − - ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` | |
| 404 | − | |
| 405 | − - 1 | |
| 406 | − | |
| 407 | − - Buffer of a single-planar video capture stream, see | |
| 408 | − :ref:`capture`. | |
| 409 | − | |
| 410 | − - .. row 2 | |
| 411 | − | |
| 412 | − - ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE`` | |
| 413 | − | |
| 414 | − - 9 | |
| 415 | − | |
| 416 | − - Buffer of a multi-planar video capture stream, see | |
| 417 | − :ref:`capture`. | |
| 418 | − | |
| 419 | − - .. row 3 | |
| 420 | − | |
| 421 | − - ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` | |
| 422 | − | |
| 423 | − - 2 | |
| 424 | − | |
| 425 | − - Buffer of a single-planar video output stream, see | |
| 426 | − :ref:`output`. | |
| 427 | − | |
| 428 | − - .. row 4 | |
| 429 | − | |
| 430 | − - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` | |
| 431 | − | |
| 432 | − - 10 | |
| 433 | − | |
| 434 | − - Buffer of a multi-planar video output stream, see :ref:`output`. | |
| 435 | − | |
| 436 | − - .. row 5 | |
| 437 | − | |
| 438 | − - ``V4L2_BUF_TYPE_VIDEO_OVERLAY`` | |
| 439 | − | |
| 440 | − - 3 | |
| 441 | − | |
| 442 | − - Buffer for video overlay, see :ref:`overlay`. | |
| 443 | − | |
| 444 | − - .. row 6 | |
| 445 | − | |
| 446 | − - ``V4L2_BUF_TYPE_VBI_CAPTURE`` | |
| 447 | − | |
| 448 | − - 4 | |
| 449 | − | |
| 450 | − - Buffer of a raw VBI capture stream, see :ref:`raw-vbi`. | |
| 451 | − | |
| 452 | − - .. row 7 | |
| 453 | − | |
| 454 | − - ``V4L2_BUF_TYPE_VBI_OUTPUT`` | |
| 455 | − | |
| 456 | − - 5 | |
| 457 | − | |
| 458 | − - Buffer of a raw VBI output stream, see :ref:`raw-vbi`. | |
| 459 | − | |
| 460 | − - .. row 8 | |
| 461 | − | |
| 462 | − - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` | |
| 463 | − | |
| 464 | − - 6 | |
| 465 | − | |
| 466 | − - Buffer of a sliced VBI capture stream, see :ref:`sliced`. | |
| 467 | − | |
| 468 | − - .. row 9 | |
| 469 | − | |
| 470 | − - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT`` | |
| 471 | − | |
| 472 | − - 7 | |
| 473 | − | |
| 474 | − - Buffer of a sliced VBI output stream, see :ref:`sliced`. | |
| 475 | − | |
| 476 | − - .. row 10 | |
| 477 | − | |
| 478 | − - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY`` | |
| 479 | − | |
| 480 | − - 8 | |
| 481 | − | |
| 482 | − - Buffer for video output overlay (OSD), see :ref:`osd`. | |
| 483 | − | |
| 484 | − - .. row 11 | |
| 485 | − | |
| 486 | − - ``V4L2_BUF_TYPE_SDR_CAPTURE`` | |
| 487 | − | |
| 488 | − - 11 | |
| 489 | − | |
| 490 | − - Buffer for Software Defined Radio (SDR) capture stream, see | |
| 491 | − :ref:`sdr`. | |
| 492 | − | |
| 493 | − - .. row 12 | |
| 494 | − | |
| 495 | − - ``V4L2_BUF_TYPE_SDR_OUTPUT`` | |
| 496 | − | |
| 497 | − - 12 | |
| 498 | − | |
| 499 | − - Buffer for Software Defined Radio (SDR) output stream, see | |
| 500 | − :ref:`sdr`. | |
| 290 | + :widths: 4 1 9 | |
| 291 | + | |
| 292 | + * - ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` | |
| 293 | + - 1 | |
| 294 | + - Buffer of a single-planar video capture stream, see | |
| 295 | + :ref:`capture`. | |
| 296 | + * - ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE`` | |
| 297 | + - 9 | |
| 298 | + - Buffer of a multi-planar video capture stream, see | |
| 299 | + :ref:`capture`. | |
| 300 | + * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` | |
| 301 | + - 2 | |
| 302 | + - Buffer of a single-planar video output stream, see | |
| 303 | + :ref:`output`. | |
| 304 | + * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` | |
| 305 | + - 10 | |
| 306 | + - Buffer of a multi-planar video output stream, see :ref:`output`. | |
| 307 | + * - ``V4L2_BUF_TYPE_VIDEO_OVERLAY`` | |
| 308 | + - 3 | |
| 309 | + - Buffer for video overlay, see :ref:`overlay`. | |
| 310 | + * - ``V4L2_BUF_TYPE_VBI_CAPTURE`` | |
| 311 | + - 4 | |
| 312 | + - Buffer of a raw VBI capture stream, see :ref:`raw-vbi`. | |
| 313 | + * - ``V4L2_BUF_TYPE_VBI_OUTPUT`` | |
| 314 | + - 5 | |
| 315 | + - Buffer of a raw VBI output stream, see :ref:`raw-vbi`. | |
| 316 | + * - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` | |
| 317 | + - 6 | |
| 318 | + - Buffer of a sliced VBI capture stream, see :ref:`sliced`. | |
| 319 | + * - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT`` | |
| 320 | + - 7 | |
| 321 | + - Buffer of a sliced VBI output stream, see :ref:`sliced`. | |
| 322 | + * - ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY`` | |
| 323 | + - 8 | |
| 324 | + - Buffer for video output overlay (OSD), see :ref:`osd`. | |
| 325 | + * - ``V4L2_BUF_TYPE_SDR_CAPTURE`` | |
| 326 | + - 11 | |
| 327 | + - Buffer for Software Defined Radio (SDR) capture stream, see | |
| 328 | + :ref:`sdr`. | |
| 329 | + * - ``V4L2_BUF_TYPE_SDR_OUTPUT`` | |
| 330 | + - 12 | |
| 331 | + - Buffer for Software Defined Radio (SDR) output stream, see | |
| 332 | + :ref:`sdr`. | |
| 501 | 333 | |
| 502 | 334 | |
| 503 | 335 | |
| @@ -506,371 +338,267 @@ enum v4l2_buf_type · 2 unmodified lines | ||
| 506 | 338 | Buffer Flags |
| 507 | 339 | ============ |
| 508 | 340 | |
| 341 | +.. tabularcolumns:: |p{7.0cm}|p{2.2cm}|p{8.3cm}| | |
| 342 | + | |
| 343 | +.. cssclass:: longtable | |
| 344 | + | |
| 509 | 345 | .. flat-table:: |
| 510 | 346 | :header-rows: 0 |
| 511 | 347 | :stub-columns: 0 |
| 512 | 348 | :widths: 3 1 4 |
| 513 | 349 | |
| 514 | − | |
| 515 | − - .. _`V4L2-BUF-FLAG-MAPPED`: | |
| 516 | − | |
| 517 | − - ``V4L2_BUF_FLAG_MAPPED`` | |
| 518 | − | |
| 519 | − - 0x00000001 | |
| 520 | − | |
| 521 | − - The buffer resides in device memory and has been mapped into the | |
| 522 | − application's address space, see :ref:`mmap` for details. | |
| 523 | − Drivers set or clear this flag when the | |
| 524 | − :ref:`VIDIOC_QUERYBUF`, | |
| 525 | − :ref:`VIDIOC_QBUF` or | |
| 526 | − :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Set by the | |
| 527 | − driver. | |
| 528 | − | |
| 529 | − - .. _`V4L2-BUF-FLAG-QUEUED`: | |
| 530 | − | |
| 531 | − - ``V4L2_BUF_FLAG_QUEUED`` | |
| 532 | − | |
| 533 | − - 0x00000002 | |
| 534 | − | |
| 535 | − - Internally drivers maintain two buffer queues, an incoming and | |
| 536 | − outgoing queue. When this flag is set, the buffer is currently on | |
| 537 | − the incoming queue. It automatically moves to the outgoing queue | |
| 538 | − after the buffer has been filled (capture devices) or displayed | |
| 539 | − (output devices). Drivers set or clear this flag when the | |
| 540 | − ``VIDIOC_QUERYBUF`` ioctl is called. After (successful) calling | |
| 541 | − the ``VIDIOC_QBUF``\ ioctl it is always set and after | |
| 542 | − ``VIDIOC_DQBUF`` always cleared. | |
| 543 | − | |
| 544 | − - .. _`V4L2-BUF-FLAG-DONE`: | |
| 545 | − | |
| 546 | − - ``V4L2_BUF_FLAG_DONE`` | |
| 547 | − | |
| 548 | − - 0x00000004 | |
| 549 | − | |
| 550 | − - When this flag is set, the buffer is currently on the outgoing | |
| 551 | − queue, ready to be dequeued from the driver. Drivers set or clear | |
| 552 | − this flag when the ``VIDIOC_QUERYBUF`` ioctl is called. After | |
| 553 | − calling the ``VIDIOC_QBUF`` or ``VIDIOC_DQBUF`` it is always | |
| 554 | − cleared. Of course a buffer cannot be on both queues at the same | |
| 555 | − time, the ``V4L2_BUF_FLAG_QUEUED`` and ``V4L2_BUF_FLAG_DONE`` flag | |
| 556 | − are mutually exclusive. They can be both cleared however, then the | |
| 557 | − buffer is in "dequeued" state, in the application domain so to | |
| 558 | − say. | |
| 559 | − | |
| 560 | − - .. _`V4L2-BUF-FLAG-ERROR`: | |
| 561 | − | |
| 562 | − - ``V4L2_BUF_FLAG_ERROR`` | |
| 563 | − | |
| 564 | − - 0x00000040 | |
| 565 | − | |
| 566 | − - When this flag is set, the buffer has been dequeued successfully, | |
| 567 | − although the data might have been corrupted. This is recoverable, | |
| 568 | − streaming may continue as normal and the buffer may be reused | |
| 569 | − normally. Drivers set this flag when the ``VIDIOC_DQBUF`` ioctl is | |
| 570 | − called. | |
| 571 | − | |
| 572 | − - .. _`V4L2-BUF-FLAG-KEYFRAME`: | |
| 573 | − | |
| 574 | − - ``V4L2_BUF_FLAG_KEYFRAME`` | |
| 575 | − | |
| 576 | − - 0x00000008 | |
| 577 | − | |
| 578 | − - Drivers set or clear this flag when calling the ``VIDIOC_DQBUF`` | |
| 579 | − ioctl. It may be set by video capture devices when the buffer | |
| 580 | − contains a compressed image which is a key frame (or field), i. e. | |
| 581 | − can be decompressed on its own. Also known as an I-frame. | |
| 582 | − Applications can set this bit when ``type`` refers to an output | |
| 583 | − stream. | |
| 584 | − | |
| 585 | − - .. _`V4L2-BUF-FLAG-PFRAME`: | |
| 586 | − | |
| 587 | − - ``V4L2_BUF_FLAG_PFRAME`` | |
| 588 | − | |
| 589 | − - 0x00000010 | |
| 590 | − | |
| 591 | − - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags predicted frames | |
| 592 | − or fields which contain only differences to a previous key frame. | |
| 593 | − Applications can set this bit when ``type`` refers to an output | |
| 594 | − stream. | |
| 595 | − | |
| 596 | − - .. _`V4L2-BUF-FLAG-BFRAME`: | |
| 597 | − | |
| 598 | − - ``V4L2_BUF_FLAG_BFRAME`` | |
| 599 | − | |
| 600 | − - 0x00000020 | |
| 601 | − | |
| 602 | − - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags a bi-directional | |
| 603 | − predicted frame or field which contains only the differences | |
| 604 | − between the current frame and both the preceding and following key | |
| 605 | − frames to specify its content. Applications can set this bit when | |
| 606 | − ``type`` refers to an output stream. | |
| 607 | − | |
| 608 | − - .. _`V4L2-BUF-FLAG-TIMECODE`: | |
| 609 | − | |
| 610 | − - ``V4L2_BUF_FLAG_TIMECODE`` | |
| 611 | − | |
| 612 | − - 0x00000100 | |
| 613 | − | |
| 614 | − - The ``timecode`` field is valid. Drivers set or clear this flag | |
| 615 | − when the ``VIDIOC_DQBUF`` ioctl is called. Applications can set | |
| 616 | − this bit and the corresponding ``timecode`` structure when | |
| 617 | − ``type`` refers to an output stream. | |
| 618 | − | |
| 619 | − - .. _`V4L2-BUF-FLAG-PREPARED`: | |
| 620 | − | |
| 621 | − - ``V4L2_BUF_FLAG_PREPARED`` | |
| 622 | − | |
| 623 | − - 0x00000400 | |
| 624 | − | |
| 625 | − - The buffer has been prepared for I/O and can be queued by the | |
| 626 | − application. Drivers set or clear this flag when the | |
| 627 | − :ref:`VIDIOC_QUERYBUF`, | |
| 628 | − :ref:`VIDIOC_PREPARE_BUF <VIDIOC_QBUF>`, | |
| 629 | − :ref:`VIDIOC_QBUF` or | |
| 630 | − :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. | |
| 631 | − | |
| 632 | − - .. _`V4L2-BUF-FLAG-NO-CACHE-INVALIDATE`: | |
| 633 | − | |
| 634 | − - ``V4L2_BUF_FLAG_NO_CACHE_INVALIDATE`` | |
| 635 | − | |
| 636 | − - 0x00000800 | |
| 637 | − | |
| 638 | − - Caches do not have to be invalidated for this buffer. Typically | |
| 639 | − applications shall use this flag if the data captured in the | |
| 640 | − buffer is not going to be touched by the CPU, instead the buffer | |
| 641 | − will, probably, be passed on to a DMA-capable hardware unit for | |
| 642 | − further processing or output. | |
| 643 | − | |
| 644 | − - .. _`V4L2-BUF-FLAG-NO-CACHE-CLEAN`: | |
| 645 | − | |
| 646 | − - ``V4L2_BUF_FLAG_NO_CACHE_CLEAN`` | |
| 647 | − | |
| 648 | − - 0x00001000 | |
| 649 | − | |
| 650 | − - Caches do not have to be cleaned for this buffer. Typically | |
| 651 | − applications shall use this flag for output buffers if the data in | |
| 652 | − this buffer has not been created by the CPU but by some | |
| 653 | − DMA-capable unit, in which case caches have not been used. | |
| 654 | − | |
| 655 | − - .. _`V4L2-BUF-FLAG-LAST`: | |
| 656 | − | |
| 657 | − - ``V4L2_BUF_FLAG_LAST`` | |
| 658 | − | |
| 659 | − - 0x00100000 | |
| 660 | − | |
| 661 | − - Last buffer produced by the hardware. mem2mem codec drivers set | |
| 662 | − this flag on the capture queue for the last buffer when the | |
| 663 | − :ref:`VIDIOC_QUERYBUF` or | |
| 664 | − :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Due to | |
| 665 | − hardware limitations, the last buffer may be empty. In this case | |
| 666 | − the driver will set the ``bytesused`` field to 0, regardless of | |
| 667 | − the format. Any Any subsequent call to the | |
| 668 | − :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore, | |
| 669 | − but return an ``EPIPE`` error code. | |
| 670 | − | |
| 671 | − - .. _`V4L2-BUF-FLAG-TIMESTAMP-MASK`: | |
| 672 | − | |
| 673 | − - ``V4L2_BUF_FLAG_TIMESTAMP_MASK`` | |
| 674 | − | |
| 675 | − - 0x0000e000 | |
| 676 | − | |
| 677 | − - Mask for timestamp types below. To test the timestamp type, mask | |
| 678 | − out bits not belonging to timestamp type by performing a logical | |
| 679 | − and operation with buffer flags and timestamp mask. | |
| 680 | − | |
| 681 | − - .. _`V4L2-BUF-FLAG-TIMESTAMP-UNKNOWN`: | |
| 682 | − | |
| 683 | − - ``V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN`` | |
| 684 | − | |
| 685 | − - 0x00000000 | |
| 686 | − | |
| 687 | − - Unknown timestamp type. This type is used by drivers before Linux | |
| 688 | − 3.9 and may be either monotonic (see below) or realtime (wall | |
| 689 | − clock). Monotonic clock has been favoured in embedded systems | |
| 690 | − whereas most of the drivers use the realtime clock. Either kinds | |
| 691 | − of timestamps are available in user space via | |
| 692 | − :c:func:`clock_gettime(2)` using clock IDs ``CLOCK_MONOTONIC`` | |
| 693 | − and ``CLOCK_REALTIME``, respectively. | |
| 694 | − | |
| 695 | − - .. _`V4L2-BUF-FLAG-TIMESTAMP-MONOTONIC`: | |
| 696 | − | |
| 697 | − - ``V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC`` | |
| 698 | − | |
| 699 | − - 0x00002000 | |
| 700 | − | |
| 701 | − - The buffer timestamp has been taken from the ``CLOCK_MONOTONIC`` | |
| 702 | − clock. To access the same clock outside V4L2, use | |
| 703 | − :c:func:`clock_gettime(2)`. | |
| 704 | − | |
| 705 | − - .. _`V4L2-BUF-FLAG-TIMESTAMP-COPY`: | |
| 706 | − | |
| 707 | − - ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` | |
| 708 | − | |
| 709 | − - 0x00004000 | |
| 710 | − | |
| 711 | − - The CAPTURE buffer timestamp has been taken from the corresponding | |
| 712 | − OUTPUT buffer. This flag applies only to mem2mem devices. | |
| 713 | − | |
| 714 | − - .. _`V4L2-BUF-FLAG-TSTAMP-SRC-MASK`: | |
| 715 | − | |
| 716 | − - ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` | |
| 717 | − | |
| 718 | − - 0x00070000 | |
| 719 | − | |
| 720 | − - Mask for timestamp sources below. The timestamp source defines the | |
| 721 | − point of time the timestamp is taken in relation to the frame. | |
| 722 | − Logical 'and' operation between the ``flags`` field and | |
| 723 | − ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` produces the value of the | |
| 724 | − timestamp source. Applications must set the timestamp source when | |
| 725 | − ``type`` refers to an output stream and | |
| 726 | − ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` is set. | |
| 727 | − | |
| 728 | − - .. _`V4L2-BUF-FLAG-TSTAMP-SRC-EOF`: | |
| 729 | − | |
| 730 | − - ``V4L2_BUF_FLAG_TSTAMP_SRC_EOF`` | |
| 731 | − | |
| 732 | − - 0x00000000 | |
| 733 | − | |
| 734 | − - End Of Frame. The buffer timestamp has been taken when the last | |
| 735 | − pixel of the frame has been received or the last pixel of the | |
| 736 | − frame has been transmitted. In practice, software generated | |
| 737 | − timestamps will typically be read from the clock a small amount of | |
| 738 | − time after the last pixel has been received or transmitten, | |
| 739 | − depending on the system and other activity in it. | |
| 740 | − | |
| 741 | − - .. _`V4L2-BUF-FLAG-TSTAMP-SRC-SOE`: | |
| 742 | − | |
| 743 | − - ``V4L2_BUF_FLAG_TSTAMP_SRC_SOE`` | |
| 744 | − | |
| 745 | − - 0x00010000 | |
| 746 | − | |
| 747 | − - Start Of Exposure. The buffer timestamp has been taken when the | |
| 748 | − exposure of the frame has begun. This is only valid for the | |
| 749 | − ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` buffer type. | |
| 750 | − | |
| 751 | − | |
| 752 | − | |
| 753 | −.. _v4l2-memory: | |
| 350 | + * .. _`V4L2-BUF-FLAG-MAPPED`: | |
| 351 | + | |
| 352 | + - ``V4L2_BUF_FLAG_MAPPED`` | |
| 353 | + - 0x00000001 | |
| 354 | + - The buffer resides in device memory and has been mapped into the | |
| 355 | + application's address space, see :ref:`mmap` for details. | |
| 356 | + Drivers set or clear this flag when the | |
| 357 | + :ref:`VIDIOC_QUERYBUF`, | |
| 358 | + :ref:`VIDIOC_QBUF` or | |
| 359 | + :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Set by the | |
| 360 | + driver. | |
| 361 | + * .. _`V4L2-BUF-FLAG-QUEUED`: | |
| 362 | + | |
| 363 | + - ``V4L2_BUF_FLAG_QUEUED`` | |
| 364 | + - 0x00000002 | |
| 365 | + - Internally drivers maintain two buffer queues, an incoming and | |
| 366 | + outgoing queue. When this flag is set, the buffer is currently on | |
| 367 | + the incoming queue. It automatically moves to the outgoing queue | |
| 368 | + after the buffer has been filled (capture devices) or displayed | |
| 369 | + (output devices). Drivers set or clear this flag when the | |
| 370 | + ``VIDIOC_QUERYBUF`` ioctl is called. After (successful) calling | |
| 371 | + the ``VIDIOC_QBUF``\ ioctl it is always set and after | |
| 372 | + ``VIDIOC_DQBUF`` always cleared. | |
| 373 | + * .. _`V4L2-BUF-FLAG-DONE`: | |
| 374 | + | |
| 375 | + - ``V4L2_BUF_FLAG_DONE`` | |
| 376 | + - 0x00000004 | |
| 377 | + - When this flag is set, the buffer is currently on the outgoing | |
| 378 | + queue, ready to be dequeued from the driver. Drivers set or clear | |
| 379 | + this flag when the ``VIDIOC_QUERYBUF`` ioctl is called. After | |
| 380 | + calling the ``VIDIOC_QBUF`` or ``VIDIOC_DQBUF`` it is always | |
| 381 | + cleared. Of course a buffer cannot be on both queues at the same | |
| 382 | + time, the ``V4L2_BUF_FLAG_QUEUED`` and ``V4L2_BUF_FLAG_DONE`` flag | |
| 383 | + are mutually exclusive. They can be both cleared however, then the | |
| 384 | + buffer is in "dequeued" state, in the application domain so to | |
| 385 | + say. | |
| 386 | + * .. _`V4L2-BUF-FLAG-ERROR`: | |
| 387 | + | |
| 388 | + - ``V4L2_BUF_FLAG_ERROR`` | |
| 389 | + - 0x00000040 | |
| 390 | + - When this flag is set, the buffer has been dequeued successfully, | |
| 391 | + although the data might have been corrupted. This is recoverable, | |
| 392 | + streaming may continue as normal and the buffer may be reused | |
| 393 | + normally. Drivers set this flag when the ``VIDIOC_DQBUF`` ioctl is | |
| 394 | + called. | |
| 395 | + * .. _`V4L2-BUF-FLAG-KEYFRAME`: | |
| 396 | + | |
| 397 | + - ``V4L2_BUF_FLAG_KEYFRAME`` | |
| 398 | + - 0x00000008 | |
| 399 | + - Drivers set or clear this flag when calling the ``VIDIOC_DQBUF`` | |
| 400 | + ioctl. It may be set by video capture devices when the buffer | |
| 401 | + contains a compressed image which is a key frame (or field), i. e. | |
| 402 | + can be decompressed on its own. Also known as an I-frame. | |
| 403 | + Applications can set this bit when ``type`` refers to an output | |
| 404 | + stream. | |
| 405 | + * .. _`V4L2-BUF-FLAG-PFRAME`: | |
| 406 | + | |
| 407 | + - ``V4L2_BUF_FLAG_PFRAME`` | |
| 408 | + - 0x00000010 | |
| 409 | + - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags predicted frames | |
| 410 | + or fields which contain only differences to a previous key frame. | |
| 411 | + Applications can set this bit when ``type`` refers to an output | |
| 412 | + stream. | |
| 413 | + * .. _`V4L2-BUF-FLAG-BFRAME`: | |
| 414 | + | |
| 415 | + - ``V4L2_BUF_FLAG_BFRAME`` | |
| 416 | + - 0x00000020 | |
| 417 | + - Similar to ``V4L2_BUF_FLAG_KEYFRAME`` this flags a bi-directional | |
| 418 | + predicted frame or field which contains only the differences | |
| 419 | + between the current frame and both the preceding and following key | |
| 420 | + frames to specify its content. Applications can set this bit when | |
| 421 | + ``type`` refers to an output stream. | |
| 422 | + * .. _`V4L2-BUF-FLAG-TIMECODE`: | |
| 423 | + | |
| 424 | + - ``V4L2_BUF_FLAG_TIMECODE`` | |
| 425 | + - 0x00000100 | |
| 426 | + - The ``timecode`` field is valid. Drivers set or clear this flag | |
| 427 | + when the ``VIDIOC_DQBUF`` ioctl is called. Applications can set | |
| 428 | + this bit and the corresponding ``timecode`` structure when | |
| 429 | + ``type`` refers to an output stream. | |
| 430 | + * .. _`V4L2-BUF-FLAG-PREPARED`: | |
| 431 | + | |
| 432 | + - ``V4L2_BUF_FLAG_PREPARED`` | |
| 433 | + - 0x00000400 | |
| 434 | + - The buffer has been prepared for I/O and can be queued by the | |
| 435 | + application. Drivers set or clear this flag when the | |
| 436 | + :ref:`VIDIOC_QUERYBUF`, | |
| 437 | + :ref:`VIDIOC_PREPARE_BUF <VIDIOC_QBUF>`, | |
| 438 | + :ref:`VIDIOC_QBUF` or | |
| 439 | + :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. | |
| 440 | + * .. _`V4L2-BUF-FLAG-NO-CACHE-INVALIDATE`: | |
| 441 | + | |
| 442 | + - ``V4L2_BUF_FLAG_NO_CACHE_INVALIDATE`` | |
| 443 | + - 0x00000800 | |
| 444 | + - Caches do not have to be invalidated for this buffer. Typically | |
| 445 | + applications shall use this flag if the data captured in the | |
| 446 | + buffer is not going to be touched by the CPU, instead the buffer | |
| 447 | + will, probably, be passed on to a DMA-capable hardware unit for | |
| 448 | + further processing or output. | |
| 449 | + * .. _`V4L2-BUF-FLAG-NO-CACHE-CLEAN`: | |
| 450 | + | |
| 451 | + - ``V4L2_BUF_FLAG_NO_CACHE_CLEAN`` | |
| 452 | + - 0x00001000 | |
| 453 | + - Caches do not have to be cleaned for this buffer. Typically | |
| 454 | + applications shall use this flag for output buffers if the data in | |
| 455 | + this buffer has not been created by the CPU but by some | |
| 456 | + DMA-capable unit, in which case caches have not been used. | |
| 457 | + * .. _`V4L2-BUF-FLAG-LAST`: | |
| 458 | + | |
| 459 | + - ``V4L2_BUF_FLAG_LAST`` | |
| 460 | + - 0x00100000 | |
| 461 | + - Last buffer produced by the hardware. mem2mem codec drivers set | |
| 462 | + this flag on the capture queue for the last buffer when the | |
| 463 | + :ref:`VIDIOC_QUERYBUF` or | |
| 464 | + :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl is called. Due to | |
| 465 | + hardware limitations, the last buffer may be empty. In this case | |
| 466 | + the driver will set the ``bytesused`` field to 0, regardless of | |
| 467 | + the format. Any Any subsequent call to the | |
| 468 | + :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl will not block anymore, | |
| 469 | + but return an ``EPIPE`` error code. | |
| 470 | + * .. _`V4L2-BUF-FLAG-TIMESTAMP-MASK`: | |
| 471 | + | |
| 472 | + - ``V4L2_BUF_FLAG_TIMESTAMP_MASK`` | |
| 473 | + - 0x0000e000 | |
| 474 | + - Mask for timestamp types below. To test the timestamp type, mask | |
| 475 | + out bits not belonging to timestamp type by performing a logical | |
| 476 | + and operation with buffer flags and timestamp mask. | |
| 477 | + * .. _`V4L2-BUF-FLAG-TIMESTAMP-UNKNOWN`: | |
| 478 | + | |
| 479 | + - ``V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN`` | |
| 480 | + - 0x00000000 | |
| 481 | + - Unknown timestamp type. This type is used by drivers before Linux | |
| 482 | + 3.9 and may be either monotonic (see below) or realtime (wall | |
| 483 | + clock). Monotonic clock has been favoured in embedded systems | |
| 484 | + whereas most of the drivers use the realtime clock. Either kinds | |
| 485 | + of timestamps are available in user space via | |
| 486 | + :c:func:`clock_gettime` using clock IDs ``CLOCK_MONOTONIC`` | |
| 487 | + and ``CLOCK_REALTIME``, respectively. | |
| 488 | + * .. _`V4L2-BUF-FLAG-TIMESTAMP-MONOTONIC`: | |
| 489 | + | |
| 490 | + - ``V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC`` | |
| 491 | + - 0x00002000 | |
| 492 | + - The buffer timestamp has been taken from the ``CLOCK_MONOTONIC`` | |
| 493 | + clock. To access the same clock outside V4L2, use | |
| 494 | + :c:func:`clock_gettime`. | |
| 495 | + * .. _`V4L2-BUF-FLAG-TIMESTAMP-COPY`: | |
| 496 | + | |
| 497 | + - ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` | |
| 498 | + - 0x00004000 | |
| 499 | + - The CAPTURE buffer timestamp has been taken from the corresponding | |
| 500 | + OUTPUT buffer. This flag applies only to mem2mem devices. | |
| 501 | + * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-MASK`: | |
| 502 | + | |
| 503 | + - ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` | |
| 504 | + - 0x00070000 | |
| 505 | + - Mask for timestamp sources below. The timestamp source defines the | |
| 506 | + point of time the timestamp is taken in relation to the frame. | |
| 507 | + Logical 'and' operation between the ``flags`` field and | |
| 508 | + ``V4L2_BUF_FLAG_TSTAMP_SRC_MASK`` produces the value of the | |
| 509 | + timestamp source. Applications must set the timestamp source when | |
| 510 | + ``type`` refers to an output stream and | |
| 511 | + ``V4L2_BUF_FLAG_TIMESTAMP_COPY`` is set. | |
| 512 | + * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-EOF`: | |
| 513 | + | |
| 514 | + - ``V4L2_BUF_FLAG_TSTAMP_SRC_EOF`` | |
| 515 | + - 0x00000000 | |
| 516 | + - End Of Frame. The buffer timestamp has been taken when the last | |
| 517 | + pixel of the frame has been received or the last pixel of the | |
| 518 | + frame has been transmitted. In practice, software generated | |
| 519 | + timestamps will typically be read from the clock a small amount of | |
| 520 | + time after the last pixel has been received or transmitten, | |
| 521 | + depending on the system and other activity in it. | |
| 522 | + * .. _`V4L2-BUF-FLAG-TSTAMP-SRC-SOE`: | |
| 523 | + | |
| 524 | + - ``V4L2_BUF_FLAG_TSTAMP_SRC_SOE`` | |
| 525 | + - 0x00010000 | |
| 526 | + - Start Of Exposure. The buffer timestamp has been taken when the | |
| 527 | + exposure of the frame has begun. This is only valid for the | |
| 528 | + ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` buffer type. | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | +.. c:type:: v4l2_memory | |
| 754 | 533 | |
| 755 | 534 | enum v4l2_memory |
| 756 | 535 | ================ |
| 757 | 536 | |
| 537 | +.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| | |
| 538 | + | |
| 758 | 539 | .. flat-table:: |
| 759 | 540 | :header-rows: 0 |
| 760 | 541 | :stub-columns: 0 |
| 761 | 542 | :widths: 3 1 4 |
| 762 | 543 | |
| 763 | − | |
| 764 | − - .. row 1 | |
| 765 | − | |
| 766 | − - ``V4L2_MEMORY_MMAP`` | |
| 767 | − | |
| 768 | − - 1 | |
| 769 | − | |
| 770 | − - The buffer is used for :ref:`memory mapping <mmap>` I/O. | |
| 771 | − | |
| 772 | − - .. row 2 | |
| 773 | − | |
| 774 | − - ``V4L2_MEMORY_USERPTR`` | |
| 775 | − | |
| 776 | − - 2 | |
| 777 | − | |
| 778 | − - The buffer is used for :ref:`user pointer <userp>` I/O. | |
| 779 | − | |
| 780 | − - .. row 3 | |
| 781 | − | |
| 782 | − - ``V4L2_MEMORY_OVERLAY`` | |
| 783 | − | |
| 784 | − - 3 | |
| 785 | − | |
| 786 | − - [to do] | |
| 787 | − | |
| 788 | − - .. row 4 | |
| 789 | − | |
| 790 | − - ``V4L2_MEMORY_DMABUF`` | |
| 791 | − | |
| 792 | − - 4 | |
| 793 | − | |
| 794 | − - The buffer is used for :ref:`DMA shared buffer <dmabuf>` I/O. | |
| 544 | + * - ``V4L2_MEMORY_MMAP`` | |
| 545 | + - 1 | |
| 546 | + - The buffer is used for :ref:`memory mapping <mmap>` I/O. | |
| 547 | + * - ``V4L2_MEMORY_USERPTR`` | |
| 548 | + - 2 | |
| 549 | + - The buffer is used for :ref:`user pointer <userp>` I/O. | |
| 550 | + * - ``V4L2_MEMORY_OVERLAY`` | |
| 551 | + - 3 | |
| 552 | + - [to do] | |
| 553 | + * - ``V4L2_MEMORY_DMABUF`` | |
| 554 | + - 4 | |
| 555 | + - The buffer is used for :ref:`DMA shared buffer <dmabuf>` I/O. | |
| 795 | 556 | |
| 796 | 557 | |
| 797 | 558 | |
| 798 | 559 | Timecodes |
| 799 | 560 | ========= |
| 800 | 561 | |
| 801 | −The :ref:`struct v4l2_timecode <v4l2-timecode>` structure is designed to hold a | |
| 562 | +The struct :c:type:`v4l2_timecode` structure is designed to hold a | |
| 802 | 563 | :ref:`smpte12m` or similar timecode. (struct |
| 803 | −:c:type:`struct timeval` timestamps are stored in struct | |
| 804 | −:ref:`v4l2_buffer <v4l2-buffer>` field ``timestamp``.) | |
| 564 | +struct :c:type:`timeval` timestamps are stored in struct | |
| 565 | +:c:type:`v4l2_buffer` field ``timestamp``.) | |
| 805 | 566 | |
| 806 | 567 | |
| 807 | −.. _v4l2-timecode: | |
| 568 | +.. c:type:: v4l2_timecode | |
| 808 | 569 | |
| 809 | 570 | struct v4l2_timecode |
| 810 | 571 | -------------------- |
| 811 | 572 | |
| 573 | +.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| | |
| 574 | + | |
| 812 | 575 | .. flat-table:: |
| 813 | 576 | :header-rows: 0 |
| 814 | 577 | :stub-columns: 0 |
| 815 | 578 | :widths: 1 1 2 |
| 816 | 579 | |
| 817 | − | |
| 818 | − - .. row 1 | |
| 819 | − | |
| 820 | − - __u32 | |
| 821 | − | |
| 822 | − - ``type`` | |
| 823 | − | |
| 824 | − - Frame rate the timecodes are based on, see :ref:`timecode-type`. | |
| 825 | − | |
| 826 | − - .. row 2 | |
| 827 | − | |
| 828 | − - __u32 | |
| 829 | − | |
| 830 | − - ``flags`` | |
| 831 | − | |
| 832 | − - Timecode flags, see :ref:`timecode-flags`. | |
| 833 | − | |
| 834 | − - .. row 3 | |
| 835 | − | |
| 836 | − - __u8 | |
| 837 | − | |
| 838 | − - ``frames`` | |
| 839 | − | |
| 840 | − - Frame count, 0 ... 23/24/29/49/59, depending on the type of | |
| 841 | − timecode. | |
| 842 | − | |
| 843 | − - .. row 4 | |
| 844 | − | |
| 845 | − - __u8 | |
| 846 | − | |
| 847 | − - ``seconds`` | |
| 848 | − | |
| 849 | − - Seconds count, 0 ... 59. This is a binary, not BCD number. | |
| 850 | − | |
| 851 | − - .. row 5 | |
| 852 | − | |
| 853 | − - __u8 | |
| 854 | − | |
| 855 | − - ``minutes`` | |
| 856 | − | |
| 857 | − - Minutes count, 0 ... 59. This is a binary, not BCD number. | |
| 858 | − | |
| 859 | − - .. row 6 | |
| 860 | − | |
| 861 | − - __u8 | |
| 862 | − | |
| 863 | − - ``hours`` | |
| 864 | − | |
| 865 | − - Hours count, 0 ... 29. This is a binary, not BCD number. | |
| 866 | − | |
| 867 | − - .. row 7 | |
| 868 | − | |
| 869 | − - __u8 | |
| 870 | − | |
| 871 | − - ``userbits``\ [4] | |
| 872 | − | |
| 873 | − - The "user group" bits from the timecode. | |
| 580 | + * - __u32 | |
| 581 | + - ``type`` | |
| 582 | + - Frame rate the timecodes are based on, see :ref:`timecode-type`. | |
| 583 | + * - __u32 | |
| 584 | + - ``flags`` | |
| 585 | + - Timecode flags, see :ref:`timecode-flags`. | |
| 586 | + * - __u8 | |
| 587 | + - ``frames`` | |
| 588 | + - Frame count, 0 ... 23/24/29/49/59, depending on the type of | |
| 589 | + timecode. | |
| 590 | + * - __u8 | |
| 591 | + - ``seconds`` | |
| 592 | + - Seconds count, 0 ... 59. This is a binary, not BCD number. | |
| 593 | + * - __u8 | |
| 594 | + - ``minutes`` | |
| 595 | + - Minutes count, 0 ... 59. This is a binary, not BCD number. | |
| 596 | + * - __u8 | |
| 597 | + - ``hours`` | |
| 598 | + - Hours count, 0 ... 29. This is a binary, not BCD number. | |
| 599 | + * - __u8 | |
| 600 | + - ``userbits``\ [4] | |
| 601 | + - The "user group" bits from the timecode. | |
| 874 | 602 | |
| 875 | 603 | |
| 876 | 604 | |
| @@ -879,51 +607,28 @@ struct v4l2_timecode · 2 unmodified lines | ||
| 879 | 607 | Timecode Types |
| 880 | 608 | -------------- |
| 881 | 609 | |
| 610 | +.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| | |
| 611 | + | |
| 882 | 612 | .. flat-table:: |
| 883 | 613 | :header-rows: 0 |
| 884 | 614 | :stub-columns: 0 |
| 885 | 615 | :widths: 3 1 4 |
| 886 | 616 | |
| 887 | − | |
| 888 | − - .. row 1 | |
| 889 | − | |
| 890 | − - ``V4L2_TC_TYPE_24FPS`` | |
| 891 | − | |
| 892 | − - 1 | |
| 893 | − | |
| 894 | − - 24 frames per second, i. e. film. | |
| 895 | − | |
| 896 | − - .. row 2 | |
| 897 | − | |
| 898 | − - ``V4L2_TC_TYPE_25FPS`` | |
| 899 | − | |
| 900 | − - 2 | |
| 901 | − | |
| 902 | − - 25 frames per second, i. e. PAL or SECAM video. | |
| 903 | − | |
| 904 | − - .. row 3 | |
| 905 | − | |
| 906 | − - ``V4L2_TC_TYPE_30FPS`` | |
| 907 | − | |
| 908 | − - 3 | |
| 909 | − | |
| 910 | − - 30 frames per second, i. e. NTSC video. | |
| 911 | − | |
| 912 | − - .. row 4 | |
| 913 | − | |
| 914 | − - ``V4L2_TC_TYPE_50FPS`` | |
| 915 | − | |
| 916 | − - 4 | |
| 917 | − | |
| 918 | − - | |
| 919 | − | |
| 920 | − - .. row 5 | |
| 921 | − | |
| 922 | − - ``V4L2_TC_TYPE_60FPS`` | |
| 923 | − | |
| 924 | − - 5 | |
| 925 | − | |
| 926 | − - | |
| 617 | + * - ``V4L2_TC_TYPE_24FPS`` | |
| 618 | + - 1 | |
| 619 | + - 24 frames per second, i. e. film. | |
| 620 | + * - ``V4L2_TC_TYPE_25FPS`` | |
| 621 | + - 2 | |
| 622 | + - 25 frames per second, i. e. PAL or SECAM video. | |
| 623 | + * - ``V4L2_TC_TYPE_30FPS`` | |
| 624 | + - 3 | |
| 625 | + - 30 frames per second, i. e. NTSC video. | |
| 626 | + * - ``V4L2_TC_TYPE_50FPS`` | |
| 627 | + - 4 | |
| 628 | + - | |
| 629 | + * - ``V4L2_TC_TYPE_60FPS`` | |
| 630 | + - 5 | |
| 631 | + - | |
| 927 | 632 | |
| 928 | 633 | |
| 929 | 634 | |
| @@ -932,51 +637,28 @@ Timecode Types · 2 unmodified lines | ||
| 932 | 637 | Timecode Flags |
| 933 | 638 | -------------- |
| 934 | 639 | |
| 640 | +.. tabularcolumns:: |p{6.6cm}|p{1.4cm}|p{9.5cm}| | |
| 641 | + | |
| 935 | 642 | .. flat-table:: |
| 936 | 643 | :header-rows: 0 |
| 937 | 644 | :stub-columns: 0 |
| 938 | 645 | :widths: 3 1 4 |
| 939 | 646 | |
| 940 | − | |
| 941 | − - .. row 1 | |
| 942 | − | |
| 943 | − - ``V4L2_TC_FLAG_DROPFRAME`` | |
| 944 | − | |
| 945 | − - 0x0001 | |
| 946 | − | |
| 947 | − - Indicates "drop frame" semantics for counting frames in 29.97 fps | |
| 948 | − material. When set, frame numbers 0 and 1 at the start of each | |
| 949 | − minute, except minutes 0, 10, 20, 30, 40, 50 are omitted from the | |
| 950 | − count. | |
| 951 | − | |
| 952 | − - .. row 2 | |
| 953 | − | |
| 954 | − - ``V4L2_TC_FLAG_COLORFRAME`` | |
| 955 | − | |
| 956 | − - 0x0002 | |
| 957 | − | |
| 958 | − - The "color frame" flag. | |
| 959 | − | |
| 960 | − - .. row 3 | |
| 961 | − | |
| 962 | − - ``V4L2_TC_USERBITS_field`` | |
| 963 | − | |
| 964 | − - 0x000C | |
| 965 | − | |
| 966 | − - Field mask for the "binary group flags". | |
| 967 | − | |
| 968 | − - .. row 4 | |
| 969 | − | |
| 970 | − - ``V4L2_TC_USERBITS_USERDEFINED`` | |
| 971 | − | |
| 972 | − - 0x0000 | |
| 973 | − | |
| 974 | − - Unspecified format. | |
| 975 | − | |
| 976 | − - .. row 5 | |
| 977 | − | |
| 978 | − - ``V4L2_TC_USERBITS_8BITCHARS`` | |
| 979 | − | |
| 980 | − - 0x0008 | |
| 981 | − | |
| 982 | − - 8-bit ISO characters. | |
| 647 | + * - ``V4L2_TC_FLAG_DROPFRAME`` | |
| 648 | + - 0x0001 | |
| 649 | + - Indicates "drop frame" semantics for counting frames in 29.97 fps | |
| 650 | + material. When set, frame numbers 0 and 1 at the start of each | |
| 651 | + minute, except minutes 0, 10, 20, 30, 40, 50 are omitted from the | |
| 652 | + count. | |
| 653 | + * - ``V4L2_TC_FLAG_COLORFRAME`` | |
| 654 | + - 0x0002 | |
| 655 | + - The "color frame" flag. | |
| 656 | + * - ``V4L2_TC_USERBITS_field`` | |
| 657 | + - 0x000C | |
| 658 | + - Field mask for the "binary group flags". | |
| 659 | + * - ``V4L2_TC_USERBITS_USERDEFINED`` | |
| 660 | + - 0x0000 | |
| 661 | + - Unspecified format. | |
| 662 | + * - ``V4L2_TC_USERBITS_8BITCHARS`` | |
| 663 | + - 0x0008 | |
| 664 | + - 8-bit ISO characters. | |
| @@ -191,109 +191,48 @@ Control IDs · 190 unmodified lines | ||
| 191 | 191 | |
| 192 | 192 | |
| 193 | 193 | |
| 194 | +.. tabularcolumns:: |p{5.5cm}|p{12cm}| | |
| 195 | + | |
| 194 | 196 | .. flat-table:: |
| 195 | 197 | :header-rows: 0 |
| 196 | 198 | :stub-columns: 0 |
| 197 | − | |
| 198 | − | |
| 199 | − - .. row 1 | |
| 200 | − | |
| 201 | − - ``V4L2_COLORFX_NONE`` | |
| 202 | − | |
| 203 | − - Color effect is disabled. | |
| 204 | − | |
| 205 | − - .. row 2 | |
| 206 | − | |
| 207 | − - ``V4L2_COLORFX_ANTIQUE`` | |
| 208 | − | |
| 209 | − - An aging (old photo) effect. | |
| 210 | − | |
| 211 | − - .. row 3 | |
| 212 | − | |
| 213 | − - ``V4L2_COLORFX_ART_FREEZE`` | |
| 214 | − | |
| 215 | − - Frost color effect. | |
| 216 | − | |
| 217 | − - .. row 4 | |
| 218 | − | |
| 219 | − - ``V4L2_COLORFX_AQUA`` | |
| 220 | − | |
| 221 | − - Water color, cool tone. | |
| 222 | − | |
| 223 | − - .. row 5 | |
| 224 | − | |
| 225 | − - ``V4L2_COLORFX_BW`` | |
| 226 | − | |
| 227 | − - Black and white. | |
| 228 | − | |
| 229 | − - .. row 6 | |
| 230 | − | |
| 231 | − - ``V4L2_COLORFX_EMBOSS`` | |
| 232 | − | |
| 233 | − - Emboss, the highlights and shadows replace light/dark boundaries | |
| 234 | − and low contrast areas are set to a gray background. | |
| 235 | − | |
| 236 | − - .. row 7 | |
| 237 | − | |
| 238 | − - ``V4L2_COLORFX_GRASS_GREEN`` | |
| 239 | − | |
| 240 | − - Grass green. | |
| 241 | − | |
| 242 | − - .. row 8 | |
| 243 | − | |
| 244 | − - ``V4L2_COLORFX_NEGATIVE`` | |
| 245 | − | |
| 246 | − - Negative. | |
| 247 | − | |
| 248 | − - .. row 9 | |
| 249 | − | |
| 250 | − - ``V4L2_COLORFX_SEPIA`` | |
| 251 | − | |
| 252 | − - Sepia tone. | |
| 253 | − | |
| 254 | − - .. row 10 | |
| 255 | − | |
| 256 | − - ``V4L2_COLORFX_SKETCH`` | |
| 257 | − | |
| 258 | − - Sketch. | |
| 259 | − | |
| 260 | − - .. row 11 | |
| 261 | − | |
| 262 | − - ``V4L2_COLORFX_SKIN_WHITEN`` | |
| 263 | − | |
| 264 | − - Skin whiten. | |
| 265 | − | |
| 266 | − - .. row 12 | |
| 267 | − | |
| 268 | − - ``V4L2_COLORFX_SKY_BLUE`` | |
| 269 | − | |
| 270 | − - Sky blue. | |
| 271 | − | |
| 272 | − - .. row 13 | |
| 273 | − | |
| 274 | − - ``V4L2_COLORFX_SOLARIZATION`` | |
| 275 | − | |
| 276 | − - Solarization, the image is partially reversed in tone, only color | |
| 277 | − values above or below a certain threshold are inverted. | |
| 278 | − | |
| 279 | − - .. row 14 | |
| 280 | − | |
| 281 | − - ``V4L2_COLORFX_SILHOUETTE`` | |
| 282 | − | |
| 283 | − - Silhouette (outline). | |
| 284 | − | |
| 285 | − - .. row 15 | |
| 286 | − | |
| 287 | − - ``V4L2_COLORFX_VIVID`` | |
| 288 | − | |
| 289 | − - Vivid colors. | |
| 290 | − | |
| 291 | − - .. row 16 | |
| 292 | − | |
| 293 | − - ``V4L2_COLORFX_SET_CBCR`` | |
| 294 | − | |
| 295 | − - The Cb and Cr chroma components are replaced by fixed coefficients | |
| 296 | − determined by ``V4L2_CID_COLORFX_CBCR`` control. | |
| 199 | + :widths: 11 24 | |
| 200 | + | |
| 201 | + * - ``V4L2_COLORFX_NONE`` | |
| 202 | + - Color effect is disabled. | |
| 203 | + * - ``V4L2_COLORFX_ANTIQUE`` | |
| 204 | + - An aging (old photo) effect. | |
| 205 | + * - ``V4L2_COLORFX_ART_FREEZE`` | |
| 206 | + - Frost color effect. | |
| 207 | + * - ``V4L2_COLORFX_AQUA`` | |
| 208 | + - Water color, cool tone. | |
| 209 | + * - ``V4L2_COLORFX_BW`` | |
| 210 | + - Black and white. | |
| 211 | + * - ``V4L2_COLORFX_EMBOSS`` | |
| 212 | + - Emboss, the highlights and shadows replace light/dark boundaries | |
| 213 | + and low contrast areas are set to a gray background. | |
| 214 | + * - ``V4L2_COLORFX_GRASS_GREEN`` | |
| 215 | + - Grass green. | |
| 216 | + * - ``V4L2_COLORFX_NEGATIVE`` | |
| 217 | + - Negative. | |
| 218 | + * - ``V4L2_COLORFX_SEPIA`` | |
| 219 | + - Sepia tone. | |
| 220 | + * - ``V4L2_COLORFX_SKETCH`` | |
| 221 | + - Sketch. | |
| 222 | + * - ``V4L2_COLORFX_SKIN_WHITEN`` | |
| 223 | + - Skin whiten. | |
| 224 | + * - ``V4L2_COLORFX_SKY_BLUE`` | |
| 225 | + - Sky blue. | |
| 226 | + * - ``V4L2_COLORFX_SOLARIZATION`` | |
| 227 | + - Solarization, the image is partially reversed in tone, only color | |
| 228 | + values above or below a certain threshold are inverted. | |
| 229 | + * - ``V4L2_COLORFX_SILHOUETTE`` | |
| 230 | + - Silhouette (outline). | |
| 231 | + * - ``V4L2_COLORFX_VIVID`` | |
| 232 | + - Vivid colors. | |
| 233 | + * - ``V4L2_COLORFX_SET_CBCR`` | |
| 234 | + - The Cb and Cr chroma components are replaced by fixed coefficients | |
| 235 | + determined by ``V4L2_CID_COLORFX_CBCR`` control. | |
| 297 | 236 | |
| 298 | 237 | |
| 299 | 238 | |
| @@ -15,7 +15,9 @@ offset into a video signal. · 14 unmodified lines | ||
| 15 | 15 | Applications can use the following API to select an area in the video |
| 16 | 16 | signal, 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 | 21 | :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and :ref:`VIDIOC_S_CROP |
| 20 | 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 | 40 | :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` ioctls. Their size (and position |
| 39 | 41 | where applicable) will be fixed in this case. |
| 40 | 42 | |
| 41 | −.. note:: All capture and output devices must support the | |
| 43 | +.. note:: | |
| 44 | + | |
| 45 | + All capture and output devices must support the | |
| 42 | 46 | :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>` ioctl such that applications |
| 43 | 47 | can determine if scaling takes place. |
| 44 | 48 | |
| @@ -61,7 +65,7 @@ Cropping Structures · 16 unmodified lines | ||
| 61 | 65 | |
| 62 | 66 | For capture devices the coordinates of the top left corner, width and |
| 63 | 67 | height of the area which can be sampled is given by the ``bounds`` |
| 64 | −substructure of the struct :ref:`v4l2_cropcap <v4l2-cropcap>` returned | |
| 68 | +substructure of the struct :c:type:`v4l2_cropcap` returned | |
| 65 | 69 | by the :ref:`VIDIOC_CROPCAP <VIDIOC_CROPCAP>` ioctl. To support a wide |
| 66 | 70 | range of hardware this specification does not define an origin or units. |
| 67 | 71 | However by convention drivers should horizontally count unscaled samples |
| @@ -73,8 +77,8 @@ can capture both fields. · 5 unmodified lines | ||
| 73 | 77 | |
| 74 | 78 | The top left corner, width and height of the source rectangle, that is |
| 75 | 79 | the area actually sampled, is given by struct |
| 76 | −:ref:`v4l2_crop <v4l2-crop>` using the same coordinate system as | |
| 77 | −struct :ref:`v4l2_cropcap <v4l2-cropcap>`. Applications can use the | |
| 80 | +:c:type:`v4l2_crop` using the same coordinate system as | |
| 81 | +struct :c:type:`v4l2_cropcap`. Applications can use the | |
| 78 | 82 | :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` |
| 79 | 83 | ioctls to get and set this rectangle. It must lie completely within the |
| 80 | 84 | capture boundaries and the driver may further adjust the requested size |
| @@ -82,7 +86,7 @@ and/or position according to hardware limitations. · 1 unmodified line | ||
| 82 | 86 | |
| 83 | 87 | Each capture device has a default source rectangle, given by the |
| 84 | 88 | ``defrect`` substructure of struct |
| 85 | −:ref:`v4l2_cropcap <v4l2-cropcap>`. The center of this rectangle | |
| 89 | +:c:type:`v4l2_cropcap`. The center of this rectangle | |
| 86 | 90 | shall align with the center of the active picture area of the video |
| 87 | 91 | signal, and cover what the driver writer considers the complete picture. |
| 88 | 92 | Drivers shall reset the source rectangle to the default when the driver |
| @@ -100,11 +104,11 @@ Video hardware can have various cropping, insertion and scaling · 11 unmodified lines | ||
| 100 | 104 | limitations. It may only scale up or down, support only discrete scaling |
| 101 | 105 | factors, or have different scaling abilities in horizontal and vertical |
| 102 | 106 | direction. Also it may not support scaling at all. At the same time the |
| 103 | −struct :ref:`v4l2_crop <v4l2-crop>` rectangle may have to be aligned, | |
| 107 | +struct :c:type:`v4l2_crop` rectangle may have to be aligned, | |
| 104 | 108 | and both the source and target rectangles may have arbitrary upper and |
| 105 | 109 | lower size limits. In particular the maximum ``width`` and ``height`` in |
| 106 | −struct :ref:`v4l2_crop <v4l2-crop>` may be smaller than the struct | |
| 107 | −:ref:`v4l2_cropcap <v4l2-cropcap>`. ``bounds`` area. Therefore, as | |
| 110 | +struct :c:type:`v4l2_crop` may be smaller than the struct | |
| 111 | +:c:type:`v4l2_cropcap`. ``bounds`` area. Therefore, as | |
| 108 | 112 | usual, drivers are expected to adjust the requested parameters and |
| 109 | 113 | return 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 | ||
| 144 | 148 | work without special preparations. More advanced applications should |
| 145 | 149 | ensure 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 | 154 | change ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` for other types of device. |
| 149 | 155 | |
| 150 | 156 | Example: Resetting the cropping parameters |
| @@ -26,7 +26,7 @@ Querying Capabilities · 25 unmodified lines | ||
| 26 | 26 | Devices supporting the video capture interface set the |
| 27 | 27 | ``V4L2_CAP_VIDEO_CAPTURE`` or ``V4L2_CAP_VIDEO_CAPTURE_MPLANE`` flag in |
| 28 | 28 | the ``capabilities`` field of struct |
| 29 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 29 | +:c:type:`v4l2_capability` returned by the | |
| 30 | 30 | :ref:`VIDIOC_QUERYCAP` ioctl. As secondary device |
| 31 | 31 | functions they may also support the :ref:`video overlay <overlay>` |
| 32 | 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 | ||
| 64 | 64 | defaults. An example is given in :ref:`crop`. |
| 65 | 65 | |
| 66 | 66 | To query the current image format applications set the ``type`` field of |
| 67 | −a struct :ref:`v4l2_format <v4l2-format>` to | |
| 67 | +a struct :c:type:`v4l2_format` to | |
| 68 | 68 | ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` or |
| 69 | 69 | ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE`` and call the |
| 70 | 70 | :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer to this |
| 71 | 71 | structure. Drivers fill the struct |
| 72 | −:ref:`v4l2_pix_format <v4l2-pix-format>` ``pix`` or the struct | |
| 73 | −:ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` ``pix_mp`` | |
| 72 | +:c:type:`v4l2_pix_format` ``pix`` or the struct | |
| 73 | +:c:type:`v4l2_pix_format_mplane` ``pix_mp`` | |
| 74 | 74 | member of the ``fmt`` union. |
| 75 | 75 | |
| 76 | 76 | To request different parameters applications set the ``type`` field of a |
| 77 | −struct :ref:`v4l2_format <v4l2-format>` as above and initialize all | |
| 78 | −fields of the struct :ref:`v4l2_pix_format <v4l2-pix-format>` | |
| 77 | +struct :c:type:`v4l2_format` as above and initialize all | |
| 78 | +fields of the struct :c:type:`v4l2_pix_format` | |
| 79 | 79 | ``vbi`` member of the ``fmt`` union, or better just modify the results |
| 80 | 80 | of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` |
| 81 | 81 | ioctl with a pointer to this structure. Drivers may adjust the |
| @@ -86,8 +86,8 @@ Like :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` the :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` · 4 unmodified lines | ||
| 86 | 86 | can be used to learn about hardware limitations without disabling I/O or |
| 87 | 87 | possibly time consuming hardware preparations. |
| 88 | 88 | |
| 89 | −The contents of struct :ref:`v4l2_pix_format <v4l2-pix-format>` and | |
| 90 | −struct :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` are | |
| 89 | +The contents of struct :c:type:`v4l2_pix_format` and | |
| 90 | +struct :c:type:`v4l2_pix_format_mplane` are | |
| 91 | 91 | discussed in :ref:`pixfmt`. See also the specification of the |
| 92 | 92 | :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` and :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctls for |
| 93 | 93 | details. Video capture devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` |
| @@ -21,7 +21,9 @@ for both capture and output to start the codec. · 20 unmodified lines | ||
| 21 | 21 | Video compression codecs use the MPEG controls to setup their codec |
| 22 | 22 | parameters |
| 23 | 23 | |
| 24 | −.. note:: The MPEG controls actually support many more codecs than | |
| 24 | +.. note:: | |
| 25 | + | |
| 26 | + The MPEG controls actually support many more codecs than | |
| 25 | 27 | just MPEG. See :ref:`mpeg-controls`. |
| 26 | 28 | |
| 27 | 29 | Memory-to-memory devices can often be used as a shared resource: you can |
| @@ -16,7 +16,9 @@ this interface, which borrows structures and ioctls of the · 15 unmodified lines | ||
| 16 | 16 | The OSD function is accessible through the same character special file |
| 17 | 17 | as the :ref:`Video Output <capture>` function. |
| 18 | 18 | |
| 19 | −.. note:: The default function of such a ``/dev/video`` device is video | |
| 19 | +.. note:: | |
| 20 | + | |
| 21 | + The default function of such a ``/dev/video`` device is video | |
| 20 | 22 | capturing or output. The OSD function is only available after calling |
| 21 | 23 | the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. |
| 22 | 24 | |
| @@ -26,7 +28,7 @@ Querying Capabilities · 3 unmodified lines | ||
| 26 | 28 | |
| 27 | 29 | Devices supporting the *Video Output Overlay* interface set the |
| 28 | 30 | ``V4L2_CAP_VIDEO_OUTPUT_OVERLAY`` flag in the ``capabilities`` field of |
| 29 | −struct :ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 31 | +struct :c:type:`v4l2_capability` returned by the | |
| 30 | 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 | ||
| 39 | 41 | applications can find the corresponding framebuffer device by calling |
| 40 | 42 | the :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` ioctl. It returns, amongst |
| 41 | 43 | other information, the physical address of the framebuffer in the |
| 42 | −``base`` field of struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`. | |
| 44 | +``base`` field of struct :c:type:`v4l2_framebuffer`. | |
| 43 | 45 | The framebuffer device ioctl ``FBIOGET_FSCREENINFO`` returns the same |
| 44 | 46 | address in the ``smem_start`` field of struct |
| 45 | −:c:type:`struct fb_fix_screeninfo`. The ``FBIOGET_FSCREENINFO`` | |
| 46 | −ioctl and struct :c:type:`struct fb_fix_screeninfo` are defined in | |
| 47 | +struct :c:type:`fb_fix_screeninfo`. The ``FBIOGET_FSCREENINFO`` | |
| 48 | +ioctl and struct :c:type:`fb_fix_screeninfo` are defined in | |
| 47 | 49 | the ``linux/fb.h`` header file. |
| 48 | 50 | |
| 49 | 51 | The width and height of the framebuffer depends on the current video |
| @@ -112,18 +114,18 @@ sizes and positions of these rectangles. Further drivers may support any · 62 unmodified lines | ||
| 112 | 114 | (or none) of the clipping/blending methods defined for the |
| 113 | 115 | :ref:`Video Overlay <overlay>` interface. |
| 114 | 116 | |
| 115 | −A struct :ref:`v4l2_window <v4l2-window>` defines the size of the | |
| 117 | +A struct :c:type:`v4l2_window` defines the size of the | |
| 116 | 118 | source rectangle, its position in the framebuffer and the |
| 117 | 119 | clipping/blending method to be used for the overlay. To get the current |
| 118 | 120 | parameters applications set the ``type`` field of a struct |
| 119 | −:ref:`v4l2_format <v4l2-format>` to | |
| 121 | +:c:type:`v4l2_format` to | |
| 120 | 122 | ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY`` and call the |
| 121 | 123 | :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl. The driver fills the |
| 122 | −:ref:`struct v4l2_window <v4l2-window>` substructure named ``win``. It is not | |
| 124 | +struct :c:type:`v4l2_window` substructure named ``win``. It is not | |
| 123 | 125 | possible to retrieve a previously programmed clipping list or bitmap. |
| 124 | 126 | |
| 125 | 127 | To program the source rectangle applications set the ``type`` field of a |
| 126 | −struct :ref:`v4l2_format <v4l2-format>` to | |
| 128 | +struct :c:type:`v4l2_format` to | |
| 127 | 129 | ``V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY``, initialize the ``win`` |
| 128 | 130 | substructure and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. |
| 129 | 131 | The driver adjusts the parameters against hardware limits and returns |
| @@ -132,10 +134,10 @@ the :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctl can be used to learn · 2 unmodified lines | ||
| 132 | 134 | about driver capabilities without actually changing driver state. Unlike |
| 133 | 135 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` this also works after the overlay has been enabled. |
| 134 | 136 | |
| 135 | −A struct :ref:`v4l2_crop <v4l2-crop>` defines the size and position | |
| 137 | +A struct :c:type:`v4l2_crop` defines the size and position | |
| 136 | 138 | of the target rectangle. The scaling factor of the overlay is implied by |
| 137 | −the width and height given in struct :ref:`v4l2_window <v4l2-window>` | |
| 138 | −and struct :ref:`v4l2_crop <v4l2-crop>`. The cropping API applies to | |
| 139 | +the width and height given in struct :c:type:`v4l2_window` | |
| 140 | +and struct :c:type:`v4l2_crop`. The cropping API applies to | |
| 139 | 141 | *Video Output* and *Video Output Overlay* devices in the same way as to |
| 140 | 142 | *Video Capture* and *Video Overlay* devices, merely reversing the |
| 141 | 143 | direction of the data flow. For more information see :ref:`crop`. |
| @@ -16,7 +16,7 @@ device special files named ``/dev/video`` and ``/dev/video0`` to · 15 unmodified lines | ||
| 16 | 16 | ``/dev/video`` is typically a symbolic link to the preferred video |
| 17 | 17 | device. |
| 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 | |
| 22 | 22 | Querying Capabilities |
| @@ -25,7 +25,7 @@ Querying Capabilities · 2 unmodified lines | ||
| 25 | 25 | Devices supporting the video output interface set the |
| 26 | 26 | ``V4L2_CAP_VIDEO_OUTPUT`` or ``V4L2_CAP_VIDEO_OUTPUT_MPLANE`` flag in |
| 27 | 27 | the ``capabilities`` field of struct |
| 28 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 28 | +:c:type:`v4l2_capability` returned by the | |
| 29 | 29 | :ref:`VIDIOC_QUERYCAP` ioctl. As secondary device |
| 30 | 30 | functions they may also support the :ref:`raw VBI output <raw-vbi>` |
| 31 | 31 | (``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 | ||
| 62 | 62 | defaults. An example is given in :ref:`crop`. |
| 63 | 63 | |
| 64 | 64 | To query the current image format applications set the ``type`` field of |
| 65 | −a struct :ref:`v4l2_format <v4l2-format>` to | |
| 65 | +a struct :c:type:`v4l2_format` to | |
| 66 | 66 | ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` or ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE`` |
| 67 | 67 | and call the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer |
| 68 | 68 | to this structure. Drivers fill the struct |
| 69 | −:ref:`v4l2_pix_format <v4l2-pix-format>` ``pix`` or the struct | |
| 70 | −:ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` ``pix_mp`` | |
| 69 | +:c:type:`v4l2_pix_format` ``pix`` or the struct | |
| 70 | +:c:type:`v4l2_pix_format_mplane` ``pix_mp`` | |
| 71 | 71 | member of the ``fmt`` union. |
| 72 | 72 | |
| 73 | 73 | To request different parameters applications set the ``type`` field of a |
| 74 | −struct :ref:`v4l2_format <v4l2-format>` as above and initialize all | |
| 75 | −fields of the struct :ref:`v4l2_pix_format <v4l2-pix-format>` | |
| 74 | +struct :c:type:`v4l2_format` as above and initialize all | |
| 75 | +fields of the struct :c:type:`v4l2_pix_format` | |
| 76 | 76 | ``vbi`` member of the ``fmt`` union, or better just modify the results |
| 77 | 77 | of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` |
| 78 | 78 | ioctl with a pointer to this structure. Drivers may adjust the |
| @@ -83,8 +83,8 @@ Like :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` the :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` · 4 unmodified lines | ||
| 83 | 83 | can be used to learn about hardware limitations without disabling I/O or |
| 84 | 84 | possibly time consuming hardware preparations. |
| 85 | 85 | |
| 86 | −The contents of struct :ref:`v4l2_pix_format <v4l2-pix-format>` and | |
| 87 | −struct :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` are | |
| 86 | +The contents of struct :c:type:`v4l2_pix_format` and | |
| 87 | +struct :c:type:`v4l2_pix_format_mplane` are | |
| 88 | 88 | discussed in :ref:`pixfmt`. See also the specification of the |
| 89 | 89 | :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` and :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctls for |
| 90 | 90 | details. Video output devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` |
| @@ -19,7 +19,9 @@ video into a window. · 18 unmodified lines | ||
| 19 | 19 | Video overlay devices are accessed through the same character special |
| 20 | 20 | files as :ref:`video capture <capture>` devices. |
| 21 | 21 | |
| 22 | −.. note:: The default function of a ``/dev/video`` device is video | |
| 22 | +.. note:: | |
| 23 | + | |
| 24 | + The default function of a ``/dev/video`` device is video | |
| 23 | 25 | capturing. The overlay function is only available after calling |
| 24 | 26 | the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. |
| 25 | 27 | |
| @@ -41,7 +43,7 @@ Querying Capabilities · 15 unmodified lines | ||
| 41 | 43 | |
| 42 | 44 | Devices supporting the video overlay interface set the |
| 43 | 45 | ``V4L2_CAP_VIDEO_OVERLAY`` flag in the ``capabilities`` field of struct |
| 44 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 46 | +:c:type:`v4l2_capability` returned by the | |
| 45 | 47 | :ref:`VIDIOC_QUERYCAP` ioctl. The overlay I/O |
| 46 | 48 | method specified below must be supported. Tuners and audio inputs are |
| 47 | 49 | optional. |
| @@ -117,17 +119,17 @@ at minimum requires to reset the parameters to defaults. An example is · 69 unmodified lines | ||
| 117 | 119 | given in :ref:`crop`. |
| 118 | 120 | |
| 119 | 121 | The overlay window is described by a struct |
| 120 | −:ref:`v4l2_window <v4l2-window>`. It defines the size of the image, | |
| 122 | +:c:type:`v4l2_window`. It defines the size of the image, | |
| 121 | 123 | its position over the graphics surface and the clipping to be applied. |
| 122 | 124 | To get the current parameters applications set the ``type`` field of a |
| 123 | −struct :ref:`v4l2_format <v4l2-format>` to | |
| 125 | +struct :c:type:`v4l2_format` to | |
| 124 | 126 | ``V4L2_BUF_TYPE_VIDEO_OVERLAY`` and call the |
| 125 | 127 | :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl. The driver fills the |
| 126 | −:ref:`struct v4l2_window <v4l2-window>` substructure named ``win``. It is not | |
| 128 | +struct :c:type:`v4l2_window` substructure named ``win``. It is not | |
| 127 | 129 | possible to retrieve a previously programmed clipping list or bitmap. |
| 128 | 130 | |
| 129 | 131 | To program the overlay window applications set the ``type`` field of a |
| 130 | −struct :ref:`v4l2_format <v4l2-format>` to | |
| 132 | +struct :c:type:`v4l2_format` to | |
| 131 | 133 | ``V4L2_BUF_TYPE_VIDEO_OVERLAY``, initialize the ``win`` substructure and |
| 132 | 134 | call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. The driver |
| 133 | 135 | adjusts the parameters against hardware limits and returns the actual |
| @@ -137,7 +139,7 @@ about driver capabilities without actually changing driver state. Unlike · 3 unmodified lines | ||
| 137 | 139 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` this also works after the overlay has been enabled. |
| 138 | 140 | |
| 139 | 141 | The scaling factor of the overlaid image is implied by the width and |
| 140 | −height given in struct :ref:`v4l2_window <v4l2-window>` and the size | |
| 142 | +height given in struct :c:type:`v4l2_window` and the size | |
| 141 | 143 | of the cropping rectangle. For more information see :ref:`crop`. |
| 142 | 144 | |
| 143 | 145 | When simultaneous capturing and overlay is supported and the hardware |
| @@ -147,7 +149,7 @@ takes precedence. The attempt to capture or overlay as well · 3 unmodified lines | ||
| 147 | 149 | code or return accordingly modified parameters. |
| 148 | 150 | |
| 149 | 151 | |
| 150 | −.. _v4l2-window: | |
| 152 | +.. c:type:: v4l2_window | |
| 151 | 153 | |
| 152 | 154 | struct v4l2_window |
| 153 | 155 | ------------------ |
| @@ -173,7 +175,7 @@ struct v4l2_window · 19 unmodified lines | ||
| 173 | 175 | :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` applications set this field |
| 174 | 176 | to the desired pixel value for the chroma key. The format is the |
| 175 | 177 | 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 | 179 | field), with bytes in host order. E. g. for |
| 178 | 180 | :ref:`V4L2_PIX_FMT_BGR24 <V4L2-PIX-FMT-BGR32>` the value should |
| 179 | 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 | 238 | :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>`, |
| 237 | 239 | :ref:`framebuffer-flags`). |
| 238 | 240 | |
| 239 | − .. note:: This field was added in Linux 2.6.23, extending the | |
| 240 | − structure. However the :ref:`VIDIOC_[G|S|TRY]_FMT <VIDIOC_G_FMT>` | |
| 241 | − ioctls, which take a pointer to a :ref:`v4l2_format <v4l2-format>` | |
| 242 | − parent structure with padding bytes at the end, are not affected. | |
| 241 | +.. note:: | |
| 242 | + | |
| 243 | + This field was added in Linux 2.6.23, extending the | |
| 244 | + structure. However the :ref:`VIDIOC_[G|S|TRY]_FMT <VIDIOC_G_FMT>` | |
| 245 | + ioctls, which take a pointer to a :c:type:`v4l2_format` | |
| 246 | + parent structure with padding bytes at the end, are not affected. | |
| 243 | 247 | |
| 244 | 248 | |
| 245 | −.. _v4l2-clip: | |
| 249 | +.. c:type:: v4l2_clip | |
| 246 | 250 | |
| 247 | 251 | struct v4l2_clip [#f4]_ |
| 248 | 252 | ----------------------- |
| @@ -258,7 +262,7 @@ struct v4l2_clip [#f4]_ · 9 unmodified lines | ||
| 258 | 262 | linked list of clipping rectangles. |
| 259 | 263 | |
| 260 | 264 | |
| 261 | −.. _v4l2-rect: | |
| 265 | +.. c:type:: v4l2_rect | |
| 262 | 266 | |
| 263 | 267 | struct v4l2_rect |
| 264 | 268 | ---------------- |
| @@ -20,7 +20,7 @@ Querying Capabilities · 19 unmodified lines | ||
| 20 | 20 | Devices supporting the radio interface set the ``V4L2_CAP_RADIO`` and |
| 21 | 21 | ``V4L2_CAP_TUNER`` or ``V4L2_CAP_MODULATOR`` flag in the |
| 22 | 22 | ``capabilities`` field of struct |
| 23 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 23 | +:c:type:`v4l2_capability` returned by the | |
| 24 | 24 | :ref:`VIDIOC_QUERYCAP` ioctl. Other combinations of |
| 25 | 25 | capability flags are reserved for future extensions. |
| 26 | 26 | |
| @@ -39,7 +39,7 @@ Querying Capabilities · 38 unmodified lines | ||
| 39 | 39 | Devices supporting the raw VBI capturing or output API set the |
| 40 | 40 | ``V4L2_CAP_VBI_CAPTURE`` or ``V4L2_CAP_VBI_OUTPUT`` flags, respectively, |
| 41 | 41 | in the ``capabilities`` field of struct |
| 42 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 42 | +:c:type:`v4l2_capability` returned by the | |
| 43 | 43 | :ref:`VIDIOC_QUERYCAP` ioctl. At least one of the |
| 44 | 44 | read/write, streaming or asynchronous I/O methods must be supported. VBI |
| 45 | 45 | devices may or may not have a tuner or modulator. |
| @@ -69,16 +69,16 @@ always ensure they really get what they want, requesting reasonable · 23 unmodified lines | ||
| 69 | 69 | parameters and then checking if the actual parameters are suitable. |
| 70 | 70 | |
| 71 | 71 | To query the current raw VBI capture parameters applications set the |
| 72 | −``type`` field of a struct :ref:`v4l2_format <v4l2-format>` to | |
| 72 | +``type`` field of a struct :c:type:`v4l2_format` to | |
| 73 | 73 | ``V4L2_BUF_TYPE_VBI_CAPTURE`` or ``V4L2_BUF_TYPE_VBI_OUTPUT``, and call |
| 74 | 74 | the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl with a pointer to this |
| 75 | 75 | structure. Drivers fill the struct |
| 76 | −:ref:`v4l2_vbi_format <v4l2-vbi-format>` ``vbi`` member of the | |
| 76 | +:c:type:`v4l2_vbi_format` ``vbi`` member of the | |
| 77 | 77 | ``fmt`` union. |
| 78 | 78 | |
| 79 | 79 | To request different parameters applications set the ``type`` field of a |
| 80 | −struct :ref:`v4l2_format <v4l2-format>` as above and initialize all | |
| 81 | −fields of the struct :ref:`v4l2_vbi_format <v4l2-vbi-format>` | |
| 80 | +struct :c:type:`v4l2_format` as above and initialize all | |
| 81 | +fields of the struct :c:type:`v4l2_vbi_format` | |
| 82 | 82 | ``vbi`` member of the ``fmt`` union, or better just modify the results |
| 83 | 83 | of :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>`, and call the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` |
| 84 | 84 | ioctl with a pointer to this structure. Drivers return an ``EINVAL`` error |
| @@ -99,131 +99,91 @@ VBI devices must implement both the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and · 14 unmodified lines | ||
| 99 | 99 | and always returns default parameters as :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` does. |
| 100 | 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 | 108 | .. flat-table:: struct v4l2_vbi_format |
| 106 | 109 | :header-rows: 0 |
| 107 | 110 | :stub-columns: 0 |
| 108 | 111 | :widths: 1 1 2 |
| 109 | 112 | |
| 110 | − | |
| 111 | − - .. row 1 | |
| 112 | − | |
| 113 | − - __u32 | |
| 114 | − | |
| 115 | − - ``sampling_rate`` | |
| 116 | − | |
| 117 | − - Samples per second, i. e. unit 1 Hz. | |
| 118 | − | |
| 119 | − - .. row 2 | |
| 120 | − | |
| 121 | − - __u32 | |
| 122 | − | |
| 123 | − - ``offset`` | |
| 124 | − | |
| 125 | − - Horizontal offset of the VBI image, relative to the leading edge | |
| 126 | − of the line synchronization pulse and counted in samples: The | |
| 127 | − first sample in the VBI image will be located ``offset`` / | |
| 128 | − ``sampling_rate`` seconds following the leading edge. See also | |
| 129 | − :ref:`vbi-hsync`. | |
| 130 | − | |
| 131 | − - .. row 3 | |
| 132 | − | |
| 133 | − - __u32 | |
| 134 | − | |
| 135 | − - ``samples_per_line`` | |
| 136 | − | |
| 137 | − - | |
| 138 | − | |
| 139 | − - .. row 4 | |
| 140 | − | |
| 141 | − - __u32 | |
| 142 | − | |
| 143 | − - ``sample_format`` | |
| 144 | − | |
| 145 | − - Defines the sample format as in :ref:`pixfmt`, a | |
| 146 | − four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``, | |
| 147 | − i. e. each sample consists of 8 bits with lower values oriented | |
| 148 | − towards the black level. Do not assume any other correlation of | |
| 149 | − values with the signal level. For example, the MSB does not | |
| 150 | − necessarily indicate if the signal is 'high' or 'low' because 128 | |
| 151 | − may not be the mean value of the signal. Drivers shall not convert | |
| 152 | − the sample format by software. | |
| 153 | − | |
| 154 | − - .. row 5 | |
| 155 | − | |
| 156 | − - __u32 | |
| 157 | − | |
| 158 | − - ``start``\ [#f2]_ | |
| 159 | − | |
| 160 | − - This is the scanning system line number associated with the first | |
| 161 | − line of the VBI image, of the first and the second field | |
| 162 | − respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid | |
| 163 | − values. The ``V4L2_VBI_ITU_525_F1_START``, | |
| 164 | − ``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and | |
| 165 | − ``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers | |
| 166 | − for each field for each 525 or 625 line format as a convenience. | |
| 167 | − Don't forget that ITU line numbering starts at 1, not 0. VBI input | |
| 168 | − drivers can return start values 0 if the hardware cannot reliable | |
| 169 | − identify scanning lines, VBI acquisition may not require this | |
| 170 | − information. | |
| 171 | − | |
| 172 | − - .. row 6 | |
| 173 | − | |
| 174 | − - __u32 | |
| 175 | − | |
| 176 | − - ``count``\ [#f2]_ | |
| 177 | − | |
| 178 | − - The number of lines in the first and second field image, | |
| 179 | − respectively. | |
| 180 | − | |
| 181 | − - .. row 7 | |
| 182 | − | |
| 183 | − - :cspan:`2` | |
| 184 | − | |
| 185 | − Drivers should be as flexibility as possible. For example, it may | |
| 186 | − be possible to extend or move the VBI capture window down to the | |
| 187 | − picture area, implementing a 'full field mode' to capture data | |
| 188 | − service transmissions embedded in the picture. | |
| 189 | − | |
| 190 | − An application can set the first or second ``count`` value to zero | |
| 191 | − if no data is required from the respective field; ``count``\ [1] | |
| 192 | − if the scanning system is progressive, i. e. not interlaced. The | |
| 193 | − corresponding start value shall be ignored by the application and | |
| 194 | − driver. Anyway, drivers may not support single field capturing and | |
| 195 | − return both count values non-zero. | |
| 196 | − | |
| 197 | − Both ``count`` values set to zero, or line numbers outside the | |
| 198 | − bounds depicted in :ref:`vbi-525` and :ref:`vbi-625`, or a | |
| 199 | − field image covering lines of two fields, are invalid and shall | |
| 200 | − not be returned by the driver. | |
| 201 | − | |
| 202 | − To initialize the ``start`` and ``count`` fields, applications | |
| 203 | − must first determine the current video standard selection. The | |
| 204 | − :ref:`v4l2_std_id <v4l2-std-id>` or the ``framelines`` field | |
| 205 | − of struct :ref:`v4l2_standard <v4l2-standard>` can be evaluated | |
| 206 | − for this purpose. | |
| 207 | − | |
| 208 | − - .. row 8 | |
| 209 | − | |
| 210 | − - __u32 | |
| 211 | − | |
| 212 | − - ``flags`` | |
| 213 | − | |
| 214 | − - See :ref:`vbifmt-flags` below. Currently only drivers set flags, | |
| 215 | − applications must set this field to zero. | |
| 216 | − | |
| 217 | − - .. row 9 | |
| 218 | − | |
| 219 | − - __u32 | |
| 220 | − | |
| 221 | − - ``reserved``\ [#f2]_ | |
| 222 | − | |
| 223 | − - This array is reserved for future extensions. Drivers and | |
| 224 | − applications must set it to zero. | |
| 225 | − | |
| 226 | − | |
| 113 | + * - __u32 | |
| 114 | + - ``sampling_rate`` | |
| 115 | + - Samples per second, i. e. unit 1 Hz. | |
| 116 | + * - __u32 | |
| 117 | + - ``offset`` | |
| 118 | + - Horizontal offset of the VBI image, relative to the leading edge | |
| 119 | + of the line synchronization pulse and counted in samples: The | |
| 120 | + first sample in the VBI image will be located ``offset`` / | |
| 121 | + ``sampling_rate`` seconds following the leading edge. See also | |
| 122 | + :ref:`vbi-hsync`. | |
| 123 | + * - __u32 | |
| 124 | + - ``samples_per_line`` | |
| 125 | + - | |
| 126 | + * - __u32 | |
| 127 | + - ``sample_format`` | |
| 128 | + - Defines the sample format as in :ref:`pixfmt`, a | |
| 129 | + four-character-code. [#f2]_ Usually this is ``V4L2_PIX_FMT_GREY``, | |
| 130 | + i. e. each sample consists of 8 bits with lower values oriented | |
| 131 | + towards the black level. Do not assume any other correlation of | |
| 132 | + values with the signal level. For example, the MSB does not | |
| 133 | + necessarily indicate if the signal is 'high' or 'low' because 128 | |
| 134 | + may not be the mean value of the signal. Drivers shall not convert | |
| 135 | + the sample format by software. | |
| 136 | + * - __u32 | |
| 137 | + - ``start``\ [#f2]_ | |
| 138 | + - This is the scanning system line number associated with the first | |
| 139 | + line of the VBI image, of the first and the second field | |
| 140 | + respectively. See :ref:`vbi-525` and :ref:`vbi-625` for valid | |
| 141 | + values. The ``V4L2_VBI_ITU_525_F1_START``, | |
| 142 | + ``V4L2_VBI_ITU_525_F2_START``, ``V4L2_VBI_ITU_625_F1_START`` and | |
| 143 | + ``V4L2_VBI_ITU_625_F2_START`` defines give the start line numbers | |
| 144 | + for each field for each 525 or 625 line format as a convenience. | |
| 145 | + Don't forget that ITU line numbering starts at 1, not 0. VBI input | |
| 146 | + drivers can return start values 0 if the hardware cannot reliable | |
| 147 | + identify scanning lines, VBI acquisition may not require this | |
| 148 | + information. | |
| 149 | + * - __u32 | |
| 150 | + - ``count``\ [#f2]_ | |
| 151 | + - The number of lines in the first and second field image, | |
| 152 | + respectively. | |
| 153 | + * - :cspan:`2` | |
| 154 | + | |
| 155 | + Drivers should be as flexibility as possible. For example, it may | |
| 156 | + be possible to extend or move the VBI capture window down to the | |
| 157 | + picture area, implementing a 'full field mode' to capture data | |
| 158 | + service transmissions embedded in the picture. | |
| 159 | + | |
| 160 | + An application can set the first or second ``count`` value to zero | |
| 161 | + if no data is required from the respective field; ``count``\ [1] | |
| 162 | + if the scanning system is progressive, i. e. not interlaced. The | |
| 163 | + corresponding start value shall be ignored by the application and | |
| 164 | + driver. Anyway, drivers may not support single field capturing and | |
| 165 | + return both count values non-zero. | |
| 166 | + | |
| 167 | + Both ``count`` values set to zero, or line numbers are outside the | |
| 168 | + bounds depicted\ [#f4]_, or a field image covering lines of two | |
| 169 | + fields, are invalid and shall not be returned by the driver. | |
| 170 | + | |
| 171 | + To initialize the ``start`` and ``count`` fields, applications | |
| 172 | + must first determine the current video standard selection. The | |
| 173 | + :ref:`v4l2_std_id <v4l2-std-id>` or the ``framelines`` field | |
| 174 | + of struct :c:type:`v4l2_standard` can be evaluated | |
| 175 | + for this purpose. | |
| 176 | + * - __u32 | |
| 177 | + - ``flags`` | |
| 178 | + - See :ref:`vbifmt-flags` below. Currently only drivers set flags, | |
| 179 | + applications must set this field to zero. | |
| 180 | + * - __u32 | |
| 181 | + - ``reserved``\ [#f2]_ | |
| 182 | + - This array is reserved for future extensions. Drivers and | |
| 183 | + applications must set it to zero. | |
| 184 | + | |
| 185 | + | |
| 186 | +.. tabularcolumns:: |p{4.0cm}|p{1.5cm}|p{12.0cm}| | |
| 227 | 187 | |
| 228 | 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 | 192 | :stub-columns: 0 |
| 233 | 193 | :widths: 3 1 4 |
| 234 | 194 | |
| 235 | − | |
| 236 | − - .. row 1 | |
| 237 | − | |
| 238 | − - ``V4L2_VBI_UNSYNC`` | |
| 239 | − | |
| 240 | − - 0x0001 | |
| 241 | − | |
| 242 | − - This flag indicates hardware which does not properly distinguish | |
| 243 | − between fields. Normally the VBI image stores the first field | |
| 244 | − (lower scanning line numbers) first in memory. This may be a top | |
| 245 | − or bottom field depending on the video standard. When this flag is | |
| 246 | − set the first or second field may be stored first, however the | |
| 247 | − fields are still in correct temporal order with the older field | |
| 248 | − first in memory. [#f3]_ | |
| 249 | − | |
| 250 | − - .. row 2 | |
| 251 | − | |
| 252 | − - ``V4L2_VBI_INTERLACED`` | |
| 253 | − | |
| 254 | − - 0x0002 | |
| 255 | − | |
| 256 | − - By default the two field images will be passed sequentially; all | |
| 257 | − lines of the first field followed by all lines of the second field | |
| 258 | − (compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and | |
| 259 | − ``V4L2_FIELD_SEQ_BT``, whether the top or bottom field is first in | |
| 260 | − memory depends on the video standard). When this flag is set, the | |
| 261 | − two fields are interlaced (cf. ``V4L2_FIELD_INTERLACED``). The | |
| 262 | − first line of the first field followed by the first line of the | |
| 263 | − second field, then the two second lines, and so on. Such a layout | |
| 264 | − may be necessary when the hardware has been programmed to capture | |
| 265 | − or output interlaced video images and is unable to separate the | |
| 266 | − fields for VBI capturing at the same time. For simplicity setting | |
| 267 | − this flag implies that both ``count`` values are equal and | |
| 268 | − non-zero. | |
| 195 | + * - ``V4L2_VBI_UNSYNC`` | |
| 196 | + - 0x0001 | |
| 197 | + - This flag indicates hardware which does not properly distinguish | |
| 198 | + between fields. Normally the VBI image stores the first field | |
| 199 | + (lower scanning line numbers) first in memory. This may be a top | |
| 200 | + or bottom field depending on the video standard. When this flag is | |
| 201 | + set the first or second field may be stored first, however the | |
| 202 | + fields are still in correct temporal order with the older field | |
| 203 | + first in memory. [#f3]_ | |
| 204 | + * - ``V4L2_VBI_INTERLACED`` | |
| 205 | + - 0x0002 | |
| 206 | + - By default the two field images will be passed sequentially; all | |
| 207 | + lines of the first field followed by all lines of the second field | |
| 208 | + (compare :ref:`field-order` ``V4L2_FIELD_SEQ_TB`` and | |
| 209 | + ``V4L2_FIELD_SEQ_BT``, whether the top or bottom field is first in | |
| 210 | + memory depends on the video standard). When this flag is set, the | |
| 211 | + two fields are interlaced (cf. ``V4L2_FIELD_INTERLACED``). The | |
| 212 | + first line of the first field followed by the first line of the | |
| 213 | + second field, then the two second lines, and so on. Such a layout | |
| 214 | + may be necessary when the hardware has been programmed to capture | |
| 215 | + or output interlaced video images and is unable to separate the | |
| 216 | + fields for VBI capturing at the same time. For simplicity setting | |
| 217 | + this flag implies that both ``count`` values are equal and | |
| 218 | + non-zero. | |
| 269 | 219 | |
| 270 | 220 | |
| 271 | 221 | |
| @@ -348,3 +298,6 @@ another process. · 76 unmodified lines | ||
| 348 | 298 | Most VBI services transmit on both fields, but some have different |
| 349 | 299 | semantics depending on the field number. These cannot be reliable |
| 350 | 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`. | |
Binary file not shown.
Binary file not shown.
| @@ -14,7 +14,9 @@ at devices capable of receiving and/or transmitting RDS information. · 13 unmodified lines | ||
| 14 | 14 | For more information see the core RDS standard :ref:`iec62106` and the |
| 15 | 15 | RBDS standard :ref:`nrsc4`. |
| 16 | 16 | |
| 17 | −.. note:: Note that the RBDS standard as is used in the USA is almost | |
| 17 | +.. note:: | |
| 18 | + | |
| 19 | + Note that the RBDS standard as is used in the USA is almost | |
| 18 | 20 | identical to the RDS standard. Any RDS decoder/encoder can also handle |
| 19 | 21 | RBDS. Only some of the fields have slightly different meanings. See the |
| 20 | 22 | RBDS standard for more information. |
| @@ -32,10 +34,10 @@ Querying Capabilities · 11 unmodified lines | ||
| 32 | 34 | |
| 33 | 35 | Devices supporting the RDS capturing API set the |
| 34 | 36 | ``V4L2_CAP_RDS_CAPTURE`` flag in the ``capabilities`` field of struct |
| 35 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 37 | +:c:type:`v4l2_capability` returned by the | |
| 36 | 38 | :ref:`VIDIOC_QUERYCAP` ioctl. Any tuner that |
| 37 | 39 | supports RDS will set the ``V4L2_TUNER_CAP_RDS`` flag in the |
| 38 | −``capability`` field of struct :ref:`v4l2_tuner <v4l2-tuner>`. If the | |
| 40 | +``capability`` field of struct :c:type:`v4l2_tuner`. If the | |
| 39 | 41 | driver only passes RDS blocks without interpreting the data the |
| 40 | 42 | ``V4L2_TUNER_CAP_RDS_BLOCK_IO`` flag has to be set, see |
| 41 | 43 | :ref:`Reading RDS data <reading-rds-data>`. For future use the flag |
| @@ -46,19 +48,19 @@ linux-media mailing list: · 4 unmodified lines | ||
| 46 | 48 | `https://linuxtv.org/lists.php <https://linuxtv.org/lists.php>`__. |
| 47 | 49 | |
| 48 | 50 | Whether an RDS signal is present can be detected by looking at the |
| 49 | −``rxsubchans`` field of struct :ref:`v4l2_tuner <v4l2-tuner>`: the | |
| 51 | +``rxsubchans`` field of struct :c:type:`v4l2_tuner`: the | |
| 50 | 52 | ``V4L2_TUNER_SUB_RDS`` will be set if RDS data was detected. |
| 51 | 53 | |
| 52 | 54 | Devices supporting the RDS output API set the ``V4L2_CAP_RDS_OUTPUT`` |
| 53 | 55 | flag in the ``capabilities`` field of struct |
| 54 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 56 | +:c:type:`v4l2_capability` returned by the | |
| 55 | 57 | :ref:`VIDIOC_QUERYCAP` ioctl. Any modulator that |
| 56 | 58 | supports RDS will set the ``V4L2_TUNER_CAP_RDS`` flag in the |
| 57 | 59 | ``capability`` field of struct |
| 58 | −:ref:`v4l2_modulator <v4l2-modulator>`. In order to enable the RDS | |
| 60 | +:c:type:`v4l2_modulator`. In order to enable the RDS | |
| 59 | 61 | transmission one must set the ``V4L2_TUNER_SUB_RDS`` bit in the |
| 60 | 62 | ``txsubchans`` field of struct |
| 61 | −:ref:`v4l2_modulator <v4l2-modulator>`. If the driver only passes RDS | |
| 63 | +:c:type:`v4l2_modulator`. If the driver only passes RDS | |
| 62 | 64 | blocks without interpreting the data the ``V4L2_TUNER_CAP_RDS_BLOCK_IO`` |
| 63 | 65 | flag has to be set. If the tuner is capable of handling RDS entities |
| 64 | 66 | like 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 | 100 | .. flat-table:: struct v4l2_rds_data |
| 97 | 101 | :header-rows: 0 |
| 98 | 102 | :stub-columns: 0 |
| 99 | 103 | :widths: 1 1 5 |
| 100 | 104 | |
| 101 | − | |
| 102 | − - .. row 1 | |
| 103 | − | |
| 104 | − - __u8 | |
| 105 | − | |
| 106 | − - ``lsb`` | |
| 107 | − | |
| 108 | − - Least Significant Byte of RDS Block | |
| 109 | − | |
| 110 | − - .. row 2 | |
| 111 | − | |
| 112 | − - __u8 | |
| 113 | − | |
| 114 | − - ``msb`` | |
| 115 | − | |
| 116 | − - Most Significant Byte of RDS Block | |
| 117 | − | |
| 118 | − - .. row 3 | |
| 119 | − | |
| 120 | − - __u8 | |
| 121 | − | |
| 122 | − - ``block`` | |
| 123 | − | |
| 124 | − - Block description | |
| 105 | + * - __u8 | |
| 106 | + - ``lsb`` | |
| 107 | + - Least Significant Byte of RDS Block | |
| 108 | + * - __u8 | |
| 109 | + - ``msb`` | |
| 110 | + - Most Significant Byte of RDS Block | |
| 111 | + * - __u8 | |
| 112 | + - ``block`` | |
| 113 | + - Block description | |
| 125 | 114 | |
| 126 | 115 | |
| 127 | 116 | |
| 128 | 117 | .. _v4l2-rds-block: |
| 129 | 118 | |
| 119 | +.. tabularcolumns:: |p{2.9cm}|p{14.6cm}| | |
| 120 | + | |
| 130 | 121 | .. flat-table:: Block description |
| 131 | 122 | :header-rows: 0 |
| 132 | 123 | :stub-columns: 0 |
| 133 | 124 | :widths: 1 5 |
| 134 | 125 | |
| 135 | − | |
| 136 | − - .. row 1 | |
| 137 | − | |
| 138 | − - Bits 0-2 | |
| 139 | − | |
| 140 | − - Block (aka offset) of the received data. | |
| 141 | − | |
| 142 | − - .. row 2 | |
| 143 | − | |
| 144 | − - Bits 3-5 | |
| 145 | − | |
| 146 | − - Deprecated. Currently identical to bits 0-2. Do not use these | |
| 147 | − bits. | |
| 148 | − | |
| 149 | − - .. row 3 | |
| 150 | − | |
| 151 | − - Bit 6 | |
| 152 | − | |
| 153 | − - Corrected bit. Indicates that an error was corrected for this data | |
| 154 | − block. | |
| 155 | − | |
| 156 | − - .. row 4 | |
| 157 | − | |
| 158 | − - Bit 7 | |
| 159 | − | |
| 160 | − - Error bit. Indicates that an uncorrectable error occurred during | |
| 161 | − reception of this block. | |
| 126 | + * - Bits 0-2 | |
| 127 | + - Block (aka offset) of the received data. | |
| 128 | + * - Bits 3-5 | |
| 129 | + - Deprecated. Currently identical to bits 0-2. Do not use these | |
| 130 | + bits. | |
| 131 | + * - Bit 6 | |
| 132 | + - Corrected bit. Indicates that an error was corrected for this data | |
| 133 | + block. | |
| 134 | + * - Bit 7 | |
| 135 | + - Error bit. Indicates that an uncorrectable error occurred during | |
| 136 | + reception of this block. | |
| 162 | 137 | |
| 163 | 138 | |
| 164 | 139 | |
| 165 | 140 | .. _v4l2-rds-block-codes: |
| 166 | 141 | |
| 142 | +.. tabularcolumns:: |p{5.6cm}|p{2.0cm}|p{1.5cm}|p{7.0cm}| | |
| 143 | + | |
| 167 | 144 | .. flat-table:: Block defines |
| 168 | 145 | :header-rows: 0 |
| 169 | 146 | :stub-columns: 0 |
| 170 | 147 | :widths: 1 1 1 5 |
| 171 | 148 | |
| 172 | − | |
| 173 | − - .. row 1 | |
| 174 | − | |
| 175 | − - V4L2_RDS_BLOCK_MSK | |
| 176 | − | |
| 177 | − - | |
| 178 | − - 7 | |
| 179 | − | |
| 180 | − - Mask for bits 0-2 to get the block ID. | |
| 181 | − | |
| 182 | − - .. row 2 | |
| 183 | − | |
| 184 | − - V4L2_RDS_BLOCK_A | |
| 185 | − | |
| 186 | − - | |
| 187 | − - 0 | |
| 188 | − | |
| 189 | − - Block A. | |
| 190 | − | |
| 191 | − - .. row 3 | |
| 192 | − | |
| 193 | − - V4L2_RDS_BLOCK_B | |
| 194 | − | |
| 195 | − - | |
| 196 | − - 1 | |
| 197 | − | |
| 198 | − - Block B. | |
| 199 | − | |
| 200 | − - .. row 4 | |
| 201 | − | |
| 202 | − - V4L2_RDS_BLOCK_C | |
| 203 | − | |
| 204 | − - | |
| 205 | − - 2 | |
| 206 | − | |
| 207 | − - Block C. | |
| 208 | − | |
| 209 | − - .. row 5 | |
| 210 | − | |
| 211 | − - V4L2_RDS_BLOCK_D | |
| 212 | − | |
| 213 | − - | |
| 214 | − - 3 | |
| 215 | − | |
| 216 | − - Block D. | |
| 217 | − | |
| 218 | − - .. row 6 | |
| 219 | − | |
| 220 | − - V4L2_RDS_BLOCK_C_ALT | |
| 221 | − | |
| 222 | − - | |
| 223 | − - 4 | |
| 224 | − | |
| 225 | − - Block C'. | |
| 226 | − | |
| 227 | − - .. row 7 | |
| 228 | − | |
| 229 | − - V4L2_RDS_BLOCK_INVALID | |
| 230 | − | |
| 231 | − - read-only | |
| 232 | − | |
| 233 | − - 7 | |
| 234 | − | |
| 235 | − - An invalid block. | |
| 236 | − | |
| 237 | − - .. row 8 | |
| 238 | − | |
| 239 | − - V4L2_RDS_BLOCK_CORRECTED | |
| 240 | − | |
| 241 | − - read-only | |
| 242 | − | |
| 243 | − - 0x40 | |
| 244 | − | |
| 245 | − - A bit error was detected but corrected. | |
| 246 | − | |
| 247 | − - .. row 9 | |
| 248 | − | |
| 249 | − - V4L2_RDS_BLOCK_ERROR | |
| 250 | − | |
| 251 | − - read-only | |
| 252 | − | |
| 253 | − - 0x80 | |
| 254 | − | |
| 255 | − - An uncorrectable error occurred. | |
| 149 | + * - V4L2_RDS_BLOCK_MSK | |
| 150 | + - | |
| 151 | + - 7 | |
| 152 | + - Mask for bits 0-2 to get the block ID. | |
| 153 | + * - V4L2_RDS_BLOCK_A | |
| 154 | + - | |
| 155 | + - 0 | |
| 156 | + - Block A. | |
| 157 | + * - V4L2_RDS_BLOCK_B | |
| 158 | + - | |
| 159 | + - 1 | |
| 160 | + - Block B. | |
| 161 | + * - V4L2_RDS_BLOCK_C | |
| 162 | + - | |
| 163 | + - 2 | |
| 164 | + - Block C. | |
| 165 | + * - V4L2_RDS_BLOCK_D | |
| 166 | + - | |
| 167 | + - 3 | |
| 168 | + - Block D. | |
| 169 | + * - V4L2_RDS_BLOCK_C_ALT | |
| 170 | + - | |
| 171 | + - 4 | |
| 172 | + - Block C'. | |
| 173 | + * - V4L2_RDS_BLOCK_INVALID | |
| 174 | + - read-only | |
| 175 | + - 7 | |
| 176 | + - An invalid block. | |
| 177 | + * - V4L2_RDS_BLOCK_CORRECTED | |
| 178 | + - read-only | |
| 179 | + - 0x40 | |
| 180 | + - A bit error was detected but corrected. | |
| 181 | + * - V4L2_RDS_BLOCK_ERROR | |
| 182 | + - read-only | |
| 183 | + - 0x80 | |
| 184 | + - An uncorrectable error occurred. | |
| @@ -21,7 +21,7 @@ Querying Capabilities · 20 unmodified lines | ||
| 21 | 21 | Devices supporting the SDR receiver interface set the |
| 22 | 22 | ``V4L2_CAP_SDR_CAPTURE`` and ``V4L2_CAP_TUNER`` flag in the |
| 23 | 23 | ``capabilities`` field of struct |
| 24 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 24 | +:c:type:`v4l2_capability` returned by the | |
| 25 | 25 | :ref:`VIDIOC_QUERYCAP` ioctl. That flag means the |
| 26 | 26 | device has an Analog to Digital Converter (ADC), which is a mandatory |
| 27 | 27 | element for the SDR receiver. |
| @@ -29,7 +29,7 @@ element for the SDR receiver. · 1 unmodified line | ||
| 29 | 29 | Devices supporting the SDR transmitter interface set the |
| 30 | 30 | ``V4L2_CAP_SDR_OUTPUT`` and ``V4L2_CAP_MODULATOR`` flag in the |
| 31 | 31 | ``capabilities`` field of struct |
| 32 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 32 | +:c:type:`v4l2_capability` returned by the | |
| 33 | 33 | :ref:`VIDIOC_QUERYCAP` ioctl. That flag means the |
| 34 | 34 | device has an Digital to Analog Converter (DAC), which is a mandatory |
| 35 | 35 | element for the SDR transmitter. |
| @@ -67,53 +67,40 @@ basic :ref:`format` ioctls, the · 31 unmodified lines | ||
| 67 | 67 | well. |
| 68 | 68 | |
| 69 | 69 | To use the :ref:`format` ioctls applications set the ``type`` |
| 70 | −field of a struct :ref:`v4l2_format <v4l2-format>` to | |
| 70 | +field of a struct :c:type:`v4l2_format` to | |
| 71 | 71 | ``V4L2_BUF_TYPE_SDR_CAPTURE`` or ``V4L2_BUF_TYPE_SDR_OUTPUT`` and use |
| 72 | −the struct :ref:`v4l2_sdr_format <v4l2-sdr-format>` ``sdr`` member | |
| 72 | +the struct :c:type:`v4l2_sdr_format` ``sdr`` member | |
| 73 | 73 | of the ``fmt`` union as needed per the desired operation. Currently |
| 74 | 74 | there is two fields, ``pixelformat`` and ``buffersize``, of struct |
| 75 | −struct :ref:`v4l2_sdr_format <v4l2-sdr-format>` which are used. | |
| 75 | +struct :c:type:`v4l2_sdr_format` which are used. | |
| 76 | 76 | Content of the ``pixelformat`` is V4L2 FourCC code of the data format. |
| 77 | 77 | The ``buffersize`` field is maximum buffer size in bytes required for |
| 78 | 78 | data 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 | 85 | .. flat-table:: struct v4l2_sdr_format |
| 84 | 86 | :header-rows: 0 |
| 85 | 87 | :stub-columns: 0 |
| 86 | 88 | :widths: 1 1 2 |
| 87 | 89 | |
| 88 | − | |
| 89 | − - .. row 1 | |
| 90 | − | |
| 91 | − - __u32 | |
| 92 | − | |
| 93 | − - ``pixelformat`` | |
| 94 | − | |
| 95 | − - The data format or type of compression, set by the application. | |
| 96 | − This is a little endian | |
| 97 | − :ref:`four character code <v4l2-fourcc>`. V4L2 defines SDR | |
| 98 | − formats in :ref:`sdr-formats`. | |
| 99 | − | |
| 100 | − - .. row 2 | |
| 101 | − | |
| 102 | − - __u32 | |
| 103 | − | |
| 104 | − - ``buffersize`` | |
| 105 | − | |
| 106 | − - Maximum size in bytes required for data. Value is set by the | |
| 107 | − driver. | |
| 108 | − | |
| 109 | − - .. row 3 | |
| 110 | − | |
| 111 | − - __u8 | |
| 112 | − | |
| 113 | − - ``reserved[24]`` | |
| 114 | − | |
| 115 | − - This array is reserved for future extensions. Drivers and | |
| 116 | − applications must set it to zero. | |
| 90 | + * - __u32 | |
| 91 | + - ``pixelformat`` | |
| 92 | + - The data format or type of compression, set by the application. | |
| 93 | + This is a little endian | |
| 94 | + :ref:`four character code <v4l2-fourcc>`. V4L2 defines SDR | |
| 95 | + formats in :ref:`sdr-formats`. | |
| 96 | + * - __u32 | |
| 97 | + - ``buffersize`` | |
| 98 | + - Maximum size in bytes required for data. Value is set by the | |
| 99 | + driver. | |
| 100 | + * - __u8 | |
| 101 | + - ``reserved[24]`` | |
| 102 | + - This array is reserved for future extensions. Drivers and | |
| 103 | + applications must set it to zero. | |
| 117 | 104 | |
| 118 | 105 | |
| 119 | 106 | An SDR device may support :ref:`read/write <rw>` and/or streaming |
| @@ -34,7 +34,7 @@ Querying Capabilities · 33 unmodified lines | ||
| 34 | 34 | Devices supporting the sliced VBI capturing or output API set the |
| 35 | 35 | ``V4L2_CAP_SLICED_VBI_CAPTURE`` or ``V4L2_CAP_SLICED_VBI_OUTPUT`` flag |
| 36 | 36 | respectively, in the ``capabilities`` field of struct |
| 37 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 37 | +:c:type:`v4l2_capability` returned by the | |
| 38 | 38 | :ref:`VIDIOC_QUERYCAP` ioctl. At least one of the |
| 39 | 39 | read/write, streaming or asynchronous :ref:`I/O methods <io>` must be |
| 40 | 40 | supported. Sliced VBI devices may have a tuner or modulator. |
| @@ -67,17 +67,17 @@ line 16 the hardware may be able to look for a VPS or Teletext signal, · 26 unmodified lines | ||
| 67 | 67 | but not both at the same time. |
| 68 | 68 | |
| 69 | 69 | To determine the currently selected services applications set the |
| 70 | −``type`` field of struct :ref:`v4l2_format <v4l2-format>` to | |
| 70 | +``type`` field of struct :c:type:`v4l2_format` to | |
| 71 | 71 | ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or |
| 72 | 72 | ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``, and the |
| 73 | 73 | :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` ioctl fills the ``fmt.sliced`` |
| 74 | 74 | member, a struct |
| 75 | −:ref:`v4l2_sliced_vbi_format <v4l2-sliced-vbi-format>`. | |
| 75 | +:c:type:`v4l2_sliced_vbi_format`. | |
| 76 | 76 | |
| 77 | 77 | Applications can request different parameters by initializing or |
| 78 | 78 | modifying the ``fmt.sliced`` member and calling the |
| 79 | 79 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl with a pointer to the |
| 80 | −:ref:`struct v4l2_format <v4l2-format>` structure. | |
| 80 | +struct :c:type:`v4l2_format` structure. | |
| 81 | 81 | |
| 82 | 82 | The sliced VBI API is more complicated than the raw VBI API because the |
| 83 | 83 | hardware must be told which VBI service to expect on each scan line. Not |
| @@ -100,149 +100,104 @@ which may return ``EBUSY`` can be the · 16 unmodified lines | ||
| 100 | 100 | :ref:`select() <func-select>` call. |
| 101 | 101 | |
| 102 | 102 | |
| 103 | −.. _v4l2-sliced-vbi-format: | |
| 103 | +.. c:type:: v4l2_sliced_vbi_format | |
| 104 | 104 | |
| 105 | 105 | struct 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 | 112 | .. flat-table:: |
| 109 | 113 | :header-rows: 0 |
| 110 | 114 | :stub-columns: 0 |
| 111 | 115 | :widths: 3 3 2 2 2 |
| 112 | 116 | |
| 113 | − | |
| 114 | − - .. row 1 | |
| 115 | − | |
| 116 | − - __u32 | |
| 117 | − | |
| 118 | − - ``service_set`` | |
| 119 | − | |
| 120 | − - :cspan:`2` | |
| 121 | − | |
| 122 | − If ``service_set`` is non-zero when passed with | |
| 123 | − :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or | |
| 124 | − :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`, the ``service_lines`` | |
| 125 | − array will be filled by the driver according to the services | |
| 126 | − specified in this field. For example, if ``service_set`` is | |
| 127 | − initialized with ``V4L2_SLICED_TELETEXT_B | V4L2_SLICED_WSS_625``, | |
| 128 | − a driver for the cx25840 video decoder sets lines 7-22 of both | |
| 129 | − fields [#f1]_ to ``V4L2_SLICED_TELETEXT_B`` and line 23 of the first | |
| 130 | − field to ``V4L2_SLICED_WSS_625``. If ``service_set`` is set to | |
| 131 | − zero, then the values of ``service_lines`` will be used instead. | |
| 132 | − | |
| 133 | − On return the driver sets this field to the union of all elements | |
| 134 | − of the returned ``service_lines`` array. It may contain less | |
| 135 | − services than requested, perhaps just one, if the hardware cannot | |
| 136 | − handle more services simultaneously. It may be empty (zero) if | |
| 137 | − none of the requested services are supported by the hardware. | |
| 138 | − | |
| 139 | − - .. row 2 | |
| 140 | − | |
| 141 | − - __u16 | |
| 142 | − | |
| 143 | − - ``service_lines``\ [2][24] | |
| 144 | − | |
| 145 | − - :cspan:`2` | |
| 146 | − | |
| 147 | − Applications initialize this array with sets of data services the | |
| 148 | − driver shall look for or insert on the respective scan line. | |
| 149 | − Subject to hardware capabilities drivers return the requested set, | |
| 150 | − a subset, which may be just a single service, or an empty set. | |
| 151 | − When the hardware cannot handle multiple services on the same line | |
| 152 | − the driver shall choose one. No assumptions can be made on which | |
| 153 | − service the driver chooses. | |
| 154 | − | |
| 155 | − Data services are defined in :ref:`vbi-services2`. Array indices | |
| 156 | − map to ITU-R line numbers (see also :ref:`vbi-525` and | |
| 157 | − :ref:`vbi-625`) as follows: | |
| 158 | − | |
| 159 | − - .. row 3 | |
| 160 | − | |
| 161 | − - | |
| 162 | − - | |
| 163 | − - Element | |
| 164 | − | |
| 165 | − - 525 line systems | |
| 166 | − | |
| 167 | − - 625 line systems | |
| 168 | − | |
| 169 | − - .. row 4 | |
| 170 | − | |
| 171 | − - | |
| 172 | − - | |
| 173 | − - ``service_lines``\ [0][1] | |
| 174 | − | |
| 175 | − - 1 | |
| 176 | − | |
| 177 | − - 1 | |
| 178 | − | |
| 179 | − - .. row 5 | |
| 180 | − | |
| 181 | − - | |
| 182 | − - | |
| 183 | − - ``service_lines``\ [0][23] | |
| 184 | − | |
| 185 | − - 23 | |
| 186 | − | |
| 187 | − - 23 | |
| 188 | − | |
| 189 | − - .. row 6 | |
| 190 | − | |
| 191 | − - | |
| 192 | − - | |
| 193 | − - ``service_lines``\ [1][1] | |
| 194 | − | |
| 195 | − - 264 | |
| 196 | − | |
| 197 | − - 314 | |
| 198 | − | |
| 199 | − - .. row 7 | |
| 200 | − | |
| 201 | − - | |
| 202 | − - | |
| 203 | − - ``service_lines``\ [1][23] | |
| 204 | − | |
| 205 | − - 286 | |
| 206 | − | |
| 207 | − - 336 | |
| 208 | − | |
| 209 | − - .. row 8 | |
| 210 | − | |
| 211 | − - | |
| 212 | − - | |
| 213 | − - :cspan:`2` Drivers must set ``service_lines`` [0][0] and | |
| 214 | − ``service_lines``\ [1][0] to zero. The | |
| 215 | − ``V4L2_VBI_ITU_525_F1_START``, ``V4L2_VBI_ITU_525_F2_START``, | |
| 216 | − ``V4L2_VBI_ITU_625_F1_START`` and ``V4L2_VBI_ITU_625_F2_START`` | |
| 217 | − defines give the start line numbers for each field for each 525 or | |
| 218 | − 625 line format as a convenience. Don't forget that ITU line | |
| 219 | − numbering starts at 1, not 0. | |
| 220 | − | |
| 221 | − - .. row 9 | |
| 222 | − | |
| 223 | − - __u32 | |
| 224 | − | |
| 225 | − - ``io_size`` | |
| 226 | − | |
| 227 | − - :cspan:`2` Maximum number of bytes passed by one | |
| 228 | − :ref:`read() <func-read>` or :ref:`write() <func-write>` call, | |
| 229 | − and the buffer size in bytes for the | |
| 230 | − :ref:`VIDIOC_QBUF` and | |
| 231 | − :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. Drivers set this field | |
| 232 | − to the size of struct | |
| 233 | − :ref:`v4l2_sliced_vbi_data <v4l2-sliced-vbi-data>` times the | |
| 234 | − number of non-zero elements in the returned ``service_lines`` | |
| 235 | − array (that is the number of lines potentially carrying data). | |
| 236 | − | |
| 237 | − - .. row 10 | |
| 238 | − | |
| 239 | − - __u32 | |
| 240 | − | |
| 241 | − - ``reserved``\ [2] | |
| 242 | − | |
| 243 | − - :cspan:`2` This array is reserved for future extensions. | |
| 244 | − Applications and drivers must set it to zero. | |
| 245 | − | |
| 117 | + * - __u32 | |
| 118 | + - ``service_set`` | |
| 119 | + - :cspan:`2` | |
| 120 | + | |
| 121 | + If ``service_set`` is non-zero when passed with | |
| 122 | + :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or | |
| 123 | + :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`, the ``service_lines`` | |
| 124 | + array will be filled by the driver according to the services | |
| 125 | + specified in this field. For example, if ``service_set`` is | |
| 126 | + initialized with ``V4L2_SLICED_TELETEXT_B | V4L2_SLICED_WSS_625``, | |
| 127 | + a driver for the cx25840 video decoder sets lines 7-22 of both | |
| 128 | + fields [#f1]_ to ``V4L2_SLICED_TELETEXT_B`` and line 23 of the first | |
| 129 | + field to ``V4L2_SLICED_WSS_625``. If ``service_set`` is set to | |
| 130 | + zero, then the values of ``service_lines`` will be used instead. | |
| 131 | + | |
| 132 | + On return the driver sets this field to the union of all elements | |
| 133 | + of the returned ``service_lines`` array. It may contain less | |
| 134 | + services than requested, perhaps just one, if the hardware cannot | |
| 135 | + handle more services simultaneously. It may be empty (zero) if | |
| 136 | + none of the requested services are supported by the hardware. | |
| 137 | + * - __u16 | |
| 138 | + - ``service_lines``\ [2][24] | |
| 139 | + - :cspan:`2` | |
| 140 | + | |
| 141 | + Applications initialize this array with sets of data services the | |
| 142 | + driver shall look for or insert on the respective scan line. | |
| 143 | + Subject to hardware capabilities drivers return the requested set, | |
| 144 | + a subset, which may be just a single service, or an empty set. | |
| 145 | + When the hardware cannot handle multiple services on the same line | |
| 146 | + the driver shall choose one. No assumptions can be made on which | |
| 147 | + service the driver chooses. | |
| 148 | + | |
| 149 | + Data services are defined in :ref:`vbi-services2`. Array indices | |
| 150 | + map to ITU-R line numbers\ [#f2]_ as follows: | |
| 151 | + * - | |
| 152 | + - | |
| 153 | + - Element | |
| 154 | + - 525 line systems | |
| 155 | + - 625 line systems | |
| 156 | + * - | |
| 157 | + - | |
| 158 | + - ``service_lines``\ [0][1] | |
| 159 | + - 1 | |
| 160 | + - 1 | |
| 161 | + * - | |
| 162 | + - | |
| 163 | + - ``service_lines``\ [0][23] | |
| 164 | + - 23 | |
| 165 | + - 23 | |
| 166 | + * - | |
| 167 | + - | |
| 168 | + - ``service_lines``\ [1][1] | |
| 169 | + - 264 | |
| 170 | + - 314 | |
| 171 | + * - | |
| 172 | + - | |
| 173 | + - ``service_lines``\ [1][23] | |
| 174 | + - 286 | |
| 175 | + - 336 | |
| 176 | + * - | |
| 177 | + - | |
| 178 | + - :cspan:`2` Drivers must set ``service_lines`` [0][0] and | |
| 179 | + ``service_lines``\ [1][0] to zero. The | |
| 180 | + ``V4L2_VBI_ITU_525_F1_START``, ``V4L2_VBI_ITU_525_F2_START``, | |
| 181 | + ``V4L2_VBI_ITU_625_F1_START`` and ``V4L2_VBI_ITU_625_F2_START`` | |
| 182 | + defines give the start line numbers for each field for each 525 or | |
| 183 | + 625 line format as a convenience. Don't forget that ITU line | |
| 184 | + numbering starts at 1, not 0. | |
| 185 | + * - __u32 | |
| 186 | + - ``io_size`` | |
| 187 | + - :cspan:`2` Maximum number of bytes passed by one | |
| 188 | + :ref:`read() <func-read>` or :ref:`write() <func-write>` call, | |
| 189 | + and the buffer size in bytes for the | |
| 190 | + :ref:`VIDIOC_QBUF` and | |
| 191 | + :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. Drivers set this field | |
| 192 | + to the size of struct | |
| 193 | + :c:type:`v4l2_sliced_vbi_data` times the | |
| 194 | + number of non-zero elements in the returned ``service_lines`` | |
| 195 | + array (that is the number of lines potentially carrying data). | |
| 196 | + * - __u32 | |
| 197 | + - ``reserved``\ [2] | |
| 198 | + - :cspan:`2` This array is reserved for future extensions. | |
| 199 | + | |
| 200 | + Applications and drivers must set it to zero. | |
| 246 | 201 | |
| 247 | 202 | |
| 248 | 203 | .. _vbi-services2: |
| @@ -250,96 +205,65 @@ struct v4l2_sliced_vbi_format · 1 unmodified line | ||
| 250 | 205 | Sliced 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 | 214 | .. flat-table:: |
| 254 | 215 | :header-rows: 1 |
| 255 | 216 | :stub-columns: 0 |
| 256 | 217 | :widths: 2 1 1 2 2 |
| 257 | 218 | |
| 258 | − | |
| 259 | − - .. row 1 | |
| 260 | − | |
| 261 | − - Symbol | |
| 262 | − | |
| 263 | − - Value | |
| 264 | − | |
| 265 | − - Reference | |
| 266 | − | |
| 267 | − - Lines, usually | |
| 268 | − | |
| 269 | − - Payload | |
| 270 | − | |
| 271 | − - .. row 2 | |
| 272 | − | |
| 273 | − - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B) | |
| 274 | − | |
| 275 | − - 0x0001 | |
| 276 | − | |
| 277 | − - :ref:`ets300706`, :ref:`itu653` | |
| 278 | − | |
| 279 | − - PAL/SECAM line 7-22, 320-335 (second field 7-22) | |
| 280 | − | |
| 281 | − - Last 42 of the 45 byte Teletext packet, that is without clock | |
| 282 | − run-in and framing code, lsb first transmitted. | |
| 283 | − | |
| 284 | − - .. row 3 | |
| 285 | − | |
| 286 | − - ``V4L2_SLICED_VPS`` | |
| 287 | − | |
| 288 | − - 0x0400 | |
| 289 | − | |
| 290 | − - :ref:`ets300231` | |
| 291 | − | |
| 292 | − - PAL line 16 | |
| 293 | − | |
| 294 | − - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb | |
| 295 | − first transmitted. | |
| 296 | − | |
| 297 | − - .. row 4 | |
| 298 | − | |
| 299 | − - ``V4L2_SLICED_CAPTION_525`` | |
| 300 | − | |
| 301 | − - 0x1000 | |
| 302 | − | |
| 303 | − - :ref:`cea608` | |
| 304 | − | |
| 305 | − - NTSC line 21, 284 (second field 21) | |
| 306 | − | |
| 307 | − - Two bytes in transmission order, including parity bit, lsb first | |
| 308 | − transmitted. | |
| 309 | − | |
| 310 | − - .. row 5 | |
| 311 | − | |
| 312 | − - ``V4L2_SLICED_WSS_625`` | |
| 313 | − | |
| 314 | − - 0x4000 | |
| 315 | − | |
| 316 | − - :ref:`itu1119`, :ref:`en300294` | |
| 317 | − | |
| 318 | − - PAL/SECAM line 23 | |
| 319 | − | |
| 320 | − - | |
| 321 | − | |
| 322 | − :: | |
| 323 | − | |
| 324 | − Byte 0 1 | |
| 325 | − msb lsb msb lsb | |
| 326 | − Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9 | |
| 327 | − | |
| 328 | − - .. row 6 | |
| 329 | − | |
| 330 | − - ``V4L2_SLICED_VBI_525`` | |
| 331 | − | |
| 332 | − - 0x1000 | |
| 333 | − | |
| 334 | − - :cspan:`2` Set of services applicable to 525 line systems. | |
| 335 | − | |
| 336 | − - .. row 7 | |
| 337 | − | |
| 338 | − - ``V4L2_SLICED_VBI_625`` | |
| 339 | − | |
| 340 | − - 0x4401 | |
| 341 | − | |
| 342 | − - :cspan:`2` Set of services applicable to 625 line systems. | |
| 219 | + * - Symbol | |
| 220 | + - Value | |
| 221 | + - Reference | |
| 222 | + - Lines, usually | |
| 223 | + - Payload | |
| 224 | + * - ``V4L2_SLICED_TELETEXT_B`` (Teletext System B) | |
| 225 | + - 0x0001 | |
| 226 | + - :ref:`ets300706`, | |
| 227 | + | |
| 228 | + :ref:`itu653` | |
| 229 | + - PAL/SECAM line 7-22, 320-335 (second field 7-22) | |
| 230 | + - Last 42 of the 45 byte Teletext packet, that is without clock | |
| 231 | + run-in and framing code, lsb first transmitted. | |
| 232 | + * - ``V4L2_SLICED_VPS`` | |
| 233 | + - 0x0400 | |
| 234 | + - :ref:`ets300231` | |
| 235 | + - PAL line 16 | |
| 236 | + - Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb | |
| 237 | + first transmitted. | |
| 238 | + * - ``V4L2_SLICED_CAPTION_525`` | |
| 239 | + - 0x1000 | |
| 240 | + - :ref:`cea608` | |
| 241 | + - NTSC line 21, 284 (second field 21) | |
| 242 | + - Two bytes in transmission order, including parity bit, lsb first | |
| 243 | + transmitted. | |
| 244 | + * - ``V4L2_SLICED_WSS_625`` | |
| 245 | + - 0x4000 | |
| 246 | + - :ref:`itu1119`, | |
| 247 | + | |
| 248 | + :ref:`en300294` | |
| 249 | + - PAL/SECAM line 23 | |
| 250 | + - | |
| 251 | + | |
| 252 | + :: | |
| 253 | + | |
| 254 | + Byte 0 1 | |
| 255 | + msb lsb msb lsb | |
| 256 | + Bit 7 6 5 4 3 2 1 0 x x 13 12 11 10 9 | |
| 257 | + * - ``V4L2_SLICED_VBI_525`` | |
| 258 | + - 0x1000 | |
| 259 | + - :cspan:`2` Set of services applicable to 525 line systems. | |
| 260 | + * - ``V4L2_SLICED_VBI_625`` | |
| 261 | + - 0x4401 | |
| 262 | + - :cspan:`2` Set of services applicable to 625 line systems. | |
| 263 | + | |
| 264 | +.. raw:: latex | |
| 265 | + | |
| 266 | + \end{adjustbox}\newline\newline | |
| 343 | 267 | |
| 344 | 268 | |
| 345 | 269 | Drivers 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 | |
| 360 | 284 | A single :ref:`read() <func-read>` or :ref:`write() <func-write>` |
| 361 | 285 | call must pass all data belonging to one video frame. That is an array |
| 362 | −of :ref:`struct v4l2_sliced_vbi_data <v4l2-sliced-vbi-data>` structures with one or | |
| 286 | +of struct :c:type:`v4l2_sliced_vbi_data` structures with one or | |
| 363 | 287 | more elements and a total size not exceeding ``io_size`` bytes. Likewise |
| 364 | 288 | in streaming I/O mode one buffer of ``io_size`` bytes must contain data |
| 365 | 289 | of one video frame. The ``id`` of unused |
| 366 | −:ref:`struct v4l2_sliced_vbi_data <v4l2-sliced-vbi-data>` elements must be zero. | |
| 290 | +struct :c:type:`v4l2_sliced_vbi_data` elements must be zero. | |
| 367 | 291 | |
| 368 | 292 | |
| 369 | −.. _v4l2-sliced-vbi-data: | |
| 293 | +.. c:type:: v4l2_sliced_vbi_data | |
| 370 | 294 | |
| 371 | 295 | struct v4l2_sliced_vbi_data |
| 372 | 296 | --------------------------- |
| 373 | 297 | |
| 298 | +.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| | |
| 299 | + | |
| 374 | 300 | .. flat-table:: |
| 375 | 301 | :header-rows: 0 |
| 376 | 302 | :stub-columns: 0 |
| 377 | 303 | :widths: 3 1 4 |
| 378 | 304 | |
| 379 | − | |
| 380 | − - .. row 1 | |
| 381 | − | |
| 382 | − - __u32 | |
| 383 | − | |
| 384 | − - ``id`` | |
| 385 | − | |
| 386 | − - A flag from :ref:`vbi-services` identifying the type of data in | |
| 387 | − this packet. Only a single bit must be set. When the ``id`` of a | |
| 388 | − captured packet is zero, the packet is empty and the contents of | |
| 389 | − other fields are undefined. Applications shall ignore empty | |
| 390 | − packets. When the ``id`` of a packet for output is zero the | |
| 391 | − contents of the ``data`` field are undefined and the driver must | |
| 392 | − no longer insert data on the requested ``field`` and ``line``. | |
| 393 | − | |
| 394 | − - .. row 2 | |
| 395 | − | |
| 396 | − - __u32 | |
| 397 | − | |
| 398 | − - ``field`` | |
| 399 | − | |
| 400 | − - The video field number this data has been captured from, or shall | |
| 401 | − be inserted at. ``0`` for the first field, ``1`` for the second | |
| 402 | − field. | |
| 403 | − | |
| 404 | − - .. row 3 | |
| 405 | − | |
| 406 | − - __u32 | |
| 407 | − | |
| 408 | − - ``line`` | |
| 409 | − | |
| 410 | − - The field (as opposed to frame) line number this data has been | |
| 411 | − captured from, or shall be inserted at. See :ref:`vbi-525` and | |
| 412 | − :ref:`vbi-625` for valid values. Sliced VBI capture devices can | |
| 413 | − set the line number of all packets to ``0`` if the hardware cannot | |
| 414 | − reliably identify scan lines. The field number must always be | |
| 415 | − valid. | |
| 416 | − | |
| 417 | − - .. row 4 | |
| 418 | − | |
| 419 | − - __u32 | |
| 420 | − | |
| 421 | − - ``reserved`` | |
| 422 | − | |
| 423 | − - This field is reserved for future extensions. Applications and | |
| 424 | − drivers must set it to zero. | |
| 425 | − | |
| 426 | − - .. row 5 | |
| 427 | − | |
| 428 | − - __u8 | |
| 429 | − | |
| 430 | − - ``data``\ [48] | |
| 431 | − | |
| 432 | − - The packet payload. See :ref:`vbi-services` for the contents and | |
| 433 | − number of bytes passed for each data type. The contents of padding | |
| 434 | − bytes at the end of this array are undefined, drivers and | |
| 435 | − applications shall ignore them. | |
| 305 | + * - __u32 | |
| 306 | + - ``id`` | |
| 307 | + - A flag from :ref:`vbi-services` identifying the type of data in | |
| 308 | + this packet. Only a single bit must be set. When the ``id`` of a | |
| 309 | + captured packet is zero, the packet is empty and the contents of | |
| 310 | + other fields are undefined. Applications shall ignore empty | |
| 311 | + packets. When the ``id`` of a packet for output is zero the | |
| 312 | + contents of the ``data`` field are undefined and the driver must | |
| 313 | + no longer insert data on the requested ``field`` and ``line``. | |
| 314 | + * - __u32 | |
| 315 | + - ``field`` | |
| 316 | + - The video field number this data has been captured from, or shall | |
| 317 | + be inserted at. ``0`` for the first field, ``1`` for the second | |
| 318 | + field. | |
| 319 | + * - __u32 | |
| 320 | + - ``line`` | |
| 321 | + - The field (as opposed to frame) line number this data has been | |
| 322 | + captured from, or shall be inserted at. See :ref:`vbi-525` and | |
| 323 | + :ref:`vbi-625` for valid values. Sliced VBI capture devices can | |
| 324 | + set the line number of all packets to ``0`` if the hardware cannot | |
| 325 | + reliably identify scan lines. The field number must always be | |
| 326 | + valid. | |
| 327 | + * - __u32 | |
| 328 | + - ``reserved`` | |
| 329 | + - This field is reserved for future extensions. Applications and | |
| 330 | + drivers must set it to zero. | |
| 331 | + * - __u8 | |
| 332 | + - ``data``\ [48] | |
| 333 | + - The packet payload. See :ref:`vbi-services` for the contents and | |
| 334 | + number of bytes passed for each data type. The contents of padding | |
| 335 | + bytes at the end of this array are undefined, drivers and | |
| 336 | + applications shall ignore them. | |
| 436 | 337 | |
| 437 | 338 | |
| 438 | 339 | Packets are always passed in ascending line number order, without |
| @@ -542,7 +443,7 @@ refer to the MPEG-2 specifications for details on those packet headers.) · 103 unmodified lines | ||
| 542 | 443 | |
| 543 | 444 | The payload of the MPEG-2 *Private Stream 1 PES* packets that contain |
| 544 | 445 | sliced VBI data is specified by struct |
| 545 | −:ref:`v4l2_mpeg_vbi_fmt_ivtv <v4l2-mpeg-vbi-fmt-ivtv>`. The | |
| 446 | +:c:type:`v4l2_mpeg_vbi_fmt_ivtv`. The | |
| 546 | 447 | payload is variable length, depending on the actual number of lines of |
| 547 | 448 | sliced VBI data present in a video frame. The payload may be padded at |
| 548 | 449 | the end with unspecified fill bytes to align the end of the payload to a |
| @@ -551,58 +452,41 @@ with 18 lines/field with 43 bytes of data/line and a 4 byte magic · 2 unmodified lines | ||
| 551 | 452 | number). |
| 552 | 453 | |
| 553 | 454 | |
| 554 | −.. _v4l2-mpeg-vbi-fmt-ivtv: | |
| 455 | +.. c:type:: v4l2_mpeg_vbi_fmt_ivtv | |
| 555 | 456 | |
| 556 | 457 | struct 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 | 462 | .. flat-table:: |
| 560 | 463 | :header-rows: 0 |
| 561 | 464 | :stub-columns: 0 |
| 562 | 465 | :widths: 1 1 1 2 |
| 563 | 466 | |
| 564 | − | |
| 565 | − - .. row 1 | |
| 566 | − | |
| 567 | − - __u8 | |
| 568 | − | |
| 569 | − - ``magic``\ [4] | |
| 570 | − | |
| 571 | − - | |
| 572 | − - A "magic" constant from :ref:`v4l2-mpeg-vbi-fmt-ivtv-magic` that | |
| 573 | − indicates this is a valid sliced VBI data payload and also | |
| 574 | − indicates which member of the anonymous union, ``itv0`` or | |
| 575 | − ``ITV0``, to use for the payload data. | |
| 576 | − | |
| 577 | − - .. row 2 | |
| 578 | − | |
| 579 | − - union | |
| 580 | − | |
| 581 | − - (anonymous) | |
| 582 | − | |
| 583 | − - .. row 3 | |
| 584 | − | |
| 585 | − - | |
| 586 | − - struct :ref:`v4l2_mpeg_vbi_itv0 <v4l2-mpeg-vbi-itv0>` | |
| 587 | − | |
| 588 | − - ``itv0`` | |
| 589 | − | |
| 590 | − - The primary form of the sliced VBI data payload that contains | |
| 591 | − anywhere from 1 to 35 lines of sliced VBI data. Line masks are | |
| 592 | − provided in this form of the payload indicating which VBI lines | |
| 593 | − are provided. | |
| 594 | − | |
| 595 | − - .. row 4 | |
| 596 | − | |
| 597 | − - | |
| 598 | − - struct :ref:`v4l2_mpeg_vbi_ITV0 <v4l2-mpeg-vbi-itv0-1>` | |
| 599 | − | |
| 600 | − - ``ITV0`` | |
| 601 | − | |
| 602 | − - An alternate form of the sliced VBI data payload used when 36 | |
| 603 | − lines of sliced VBI data are present. No line masks are provided | |
| 604 | − in this form of the payload; all valid line mask bits are | |
| 605 | − implcitly set. | |
| 467 | + * - __u8 | |
| 468 | + - ``magic``\ [4] | |
| 469 | + - | |
| 470 | + - A "magic" constant from :ref:`v4l2-mpeg-vbi-fmt-ivtv-magic` that | |
| 471 | + indicates this is a valid sliced VBI data payload and also | |
| 472 | + indicates which member of the anonymous union, ``itv0`` or | |
| 473 | + ``ITV0``, to use for the payload data. | |
| 474 | + * - union | |
| 475 | + - (anonymous) | |
| 476 | + * - | |
| 477 | + - struct :c:type:`v4l2_mpeg_vbi_itv0` | |
| 478 | + - ``itv0`` | |
| 479 | + - The primary form of the sliced VBI data payload that contains | |
| 480 | + anywhere from 1 to 35 lines of sliced VBI data. Line masks are | |
| 481 | + provided in this form of the payload indicating which VBI lines | |
| 482 | + are provided. | |
| 483 | + * - | |
| 484 | + - struct :ref:`v4l2_mpeg_vbi_ITV0 <v4l2-mpeg-vbi-itv0-1>` | |
| 485 | + - ``ITV0`` | |
| 486 | + - An alternate form of the sliced VBI data payload used when 36 | |
| 487 | + lines of sliced VBI data are present. No line masks are provided | |
| 488 | + in this form of the payload; all valid line mask bits are | |
| 489 | + implcitly set. | |
| 606 | 490 | |
| 607 | 491 | |
| 608 | 492 | |
| @@ -611,96 +495,77 @@ struct v4l2_mpeg_vbi_fmt_ivtv · 2 unmodified lines | ||
| 611 | 495 | Magic 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 | 500 | .. flat-table:: |
| 615 | 501 | :header-rows: 1 |
| 616 | 502 | :stub-columns: 0 |
| 617 | 503 | :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 2 | |
| 521 | +.. 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" | |
| 525 | +structs v4l2_mpeg_vbi_itv0 and v4l2_mpeg_vbi_ITV0 | |
| 526 | +------------------------------------------------- | |
| 633 | 527 | |
| 634 | − - Indicates the ``itv0`` member of the union in struct | |
| 635 | − :ref:`v4l2_mpeg_vbi_fmt_ivtv <v4l2-mpeg-vbi-fmt-ivtv>` is | |
| 636 | − valid. | |
| 637 | − | |
| 638 | − - .. row 3 | |
| 639 | − | |
| 640 | − - ``V4L2_MPEG_VBI_IVTV_MAGIC1`` | |
| 641 | − | |
| 642 | − - "ITV0" | |
| 643 | − | |
| 644 | − - Indicates the ``ITV0`` member of the union in struct | |
| 645 | − :ref:`v4l2_mpeg_vbi_fmt_ivtv <v4l2-mpeg-vbi-fmt-ivtv>` is | |
| 646 | − valid and that 36 lines of sliced VBI data are present. | |
| 647 | − | |
| 648 | − | |
| 649 | − | |
| 650 | −.. _v4l2-mpeg-vbi-itv0: | |
| 651 | − | |
| 652 | −struct v4l2_mpeg_vbi_itv0 | |
| 653 | −------------------------- | |
| 528 | +.. tabularcolumns:: |p{4.4cm}|p{2.4cm}|p{10.7cm}| | |
| 654 | 529 | |
| 655 | 530 | .. flat-table:: |
| 656 | 531 | :header-rows: 0 |
| 657 | 532 | :stub-columns: 0 |
| 658 | 533 | :widths: 1 1 2 |
| 659 | 534 | |
| 660 | − | |
| 661 | − - .. row 1 | |
| 662 | − | |
| 663 | − - __le32 | |
| 664 | − | |
| 665 | − - ``linemask``\ [2] | |
| 666 | − | |
| 667 | − - Bitmasks indicating the VBI service lines present. These | |
| 668 | − ``linemask`` values are stored in little endian byte order in the | |
| 669 | − MPEG stream. Some reference ``linemask`` bit positions with their | |
| 670 | − corresponding VBI line number and video field are given below. | |
| 671 | − b\ :sub:`0` indicates the least significant bit of a ``linemask`` | |
| 672 | − value: | |
| 673 | − | |
| 674 | − | |
| 675 | − | |
| 676 | − :: | |
| 677 | − | |
| 678 | − linemask[0] b0: line 6 first field | |
| 679 | − linemask[0] b17: line 23 first field | |
| 680 | − linemask[0] b18: line 6 second field | |
| 681 | − linemask[0] b31: line 19 second field | |
| 682 | − linemask[1] b0: line 20 second field | |
| 683 | − linemask[1] b3: line 23 second field | |
| 684 | − linemask[1] b4-b31: unused and set to 0 | |
| 685 | − | |
| 686 | − - .. row 2 | |
| 687 | − | |
| 688 | − - struct | |
| 689 | − :ref:`v4l2_mpeg_vbi_itv0_line <v4l2-mpeg-vbi-itv0-line>` | |
| 690 | − | |
| 691 | − - ``line``\ [35] | |
| 692 | − | |
| 693 | − - This is a variable length array that holds from 1 to 35 lines of | |
| 694 | − sliced VBI data. The sliced VBI data lines present correspond to | |
| 695 | − the bits set in the ``linemask`` array, starting from b\ :sub:`0` | |
| 696 | − of ``linemask``\ [0] up through b\ :sub:`31` of ``linemask``\ [0], | |
| 697 | − and from b\ :sub:`0` of ``linemask``\ [1] up through b\ :sub:`3` of | |
| 698 | − ``linemask``\ [1]. ``line``\ [0] corresponds to the first bit | |
| 699 | − found set in the ``linemask`` array, ``line``\ [1] corresponds to | |
| 700 | − the second bit found set in the ``linemask`` array, etc. If no | |
| 701 | − ``linemask`` array bits are set, then ``line``\ [0] may contain | |
| 702 | − one line of unspecified data that should be ignored by | |
| 703 | − applications. | |
| 535 | + * - __le32 | |
| 536 | + - ``linemask``\ [2] | |
| 537 | + - Bitmasks indicating the VBI service lines present. These | |
| 538 | + ``linemask`` values are stored in little endian byte order in the | |
| 539 | + MPEG stream. Some reference ``linemask`` bit positions with their | |
| 540 | + corresponding VBI line number and video field are given below. | |
| 541 | + b\ :sub:`0` indicates the least significant bit of a ``linemask`` | |
| 542 | + value: | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + :: | |
| 547 | + | |
| 548 | + linemask[0] b0: line 6 first field | |
| 549 | + linemask[0] b17: line 23 first field | |
| 550 | + linemask[0] b18: line 6 second field | |
| 551 | + linemask[0] b31: line 19 second field | |
| 552 | + linemask[1] b0: line 20 second field | |
| 553 | + linemask[1] b3: line 23 second field | |
| 554 | + linemask[1] b4-b31: unused and set to 0 | |
| 555 | + * - struct | |
| 556 | + :c:type:`v4l2_mpeg_vbi_itv0_line` | |
| 557 | + - ``line``\ [35] | |
| 558 | + - This is a variable length array that holds from 1 to 35 lines of | |
| 559 | + sliced VBI data. The sliced VBI data lines present correspond to | |
| 560 | + the bits set in the ``linemask`` array, starting from b\ :sub:`0` | |
| 561 | + of ``linemask``\ [0] up through b\ :sub:`31` of ``linemask``\ [0], | |
| 562 | + and from b\ :sub:`0` of ``linemask``\ [1] up through b\ :sub:`3` of | |
| 563 | + ``linemask``\ [1]. ``line``\ [0] corresponds to the first bit | |
| 564 | + found set in the ``linemask`` array, ``line``\ [1] corresponds to | |
| 565 | + the second bit found set in the ``linemask`` array, etc. If no | |
| 566 | + ``linemask`` array bits are set, then ``line``\ [0] may contain | |
| 567 | + one line of unspecified data that should be ignored by | |
| 568 | + applications. | |
| 704 | 569 | |
| 705 | 570 | |
| 706 | 571 | |
| @@ -709,54 +574,43 @@ struct v4l2_mpeg_vbi_itv0 · 2 unmodified lines | ||
| 709 | 574 | struct v4l2_mpeg_vbi_ITV0 |
| 710 | 575 | ------------------------- |
| 711 | 576 | |
| 577 | +.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| | |
| 578 | + | |
| 712 | 579 | .. flat-table:: |
| 713 | 580 | :header-rows: 0 |
| 714 | 581 | :stub-columns: 0 |
| 715 | 582 | :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] | |
| 726 | − through ``line``\ [17] correspond to lines 6 through 23 of the | |
| 727 | − first field. ``line``\ [18] through ``line``\ [35] corresponds to | |
| 728 | − lines 6 through 23 of the second field. | |
| 729 | − | |
| 730 | − | |
| 731 | − | |
| 732 | −.. _v4l2-mpeg-vbi-itv0-line: | |
| 594 | +.. c:type:: v4l2_mpeg_vbi_itv0_line | |
| 733 | 595 | |
| 734 | 596 | struct v4l2_mpeg_vbi_itv0_line |
| 735 | 597 | ------------------------------ |
| 736 | 598 | |
| 599 | +.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| | |
| 600 | + | |
| 737 | 601 | .. flat-table:: |
| 738 | 602 | :header-rows: 0 |
| 739 | 603 | :stub-columns: 0 |
| 740 | 604 | :widths: 1 1 2 |
| 741 | 605 | |
| 742 | − | |
| 743 | − - .. row 1 | |
| 744 | − | |
| 745 | − - __u8 | |
| 746 | − | |
| 747 | − - ``id`` | |
| 748 | − | |
| 749 | − - A line identifier value from | |
| 750 | − :ref:`ITV0-Line-Identifier-Constants` that indicates the type of | |
| 751 | − sliced VBI data stored on this line. | |
| 752 | − | |
| 753 | − - .. row 2 | |
| 754 | − | |
| 755 | − - __u8 | |
| 756 | − | |
| 757 | − - ``data``\ [42] | |
| 758 | − | |
| 759 | − - The sliced VBI data for the line. | |
| 606 | + * - __u8 | |
| 607 | + - ``id`` | |
| 608 | + - A line identifier value from | |
| 609 | + :ref:`ITV0-Line-Identifier-Constants` that indicates the type of | |
| 610 | + sliced VBI data stored on this line. | |
| 611 | + * - __u8 | |
| 612 | + - ``data``\ [42] | |
| 613 | + - The sliced VBI data for the line. | |
| 760 | 614 | |
| 761 | 615 | |
| 762 | 616 | |
| @@ -765,58 +619,38 @@ struct v4l2_mpeg_vbi_itv0_line · 2 unmodified lines | ||
| 765 | 619 | Line 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 | 624 | .. flat-table:: |
| 769 | 625 | :header-rows: 1 |
| 770 | 626 | :stub-columns: 0 |
| 771 | 627 | :widths: 3 1 4 |
| 772 | 628 | |
| 773 | − | |
| 774 | − - .. row 1 | |
| 775 | − | |
| 776 | − - Defined Symbol | |
| 777 | − | |
| 778 | − - Value | |
| 779 | − | |
| 780 | − - Description | |
| 781 | − | |
| 782 | − - .. row 2 | |
| 783 | − | |
| 784 | − - ``V4L2_MPEG_VBI_IVTV_TELETEXT_B`` | |
| 785 | − | |
| 786 | − - 1 | |
| 787 | − | |
| 788 | − - Refer to :ref:`Sliced VBI services <vbi-services2>` for a | |
| 789 | − description of the line payload. | |
| 790 | − | |
| 791 | − - .. row 3 | |
| 792 | − | |
| 793 | − - ``V4L2_MPEG_VBI_IVTV_CAPTION_525`` | |
| 794 | − | |
| 795 | − - 4 | |
| 796 | − | |
| 797 | − - Refer to :ref:`Sliced VBI services <vbi-services2>` for a | |
| 798 | − description of the line payload. | |
| 799 | − | |
| 800 | − - .. row 4 | |
| 801 | − | |
| 802 | − - ``V4L2_MPEG_VBI_IVTV_WSS_625`` | |
| 803 | − | |
| 804 | − - 5 | |
| 805 | − | |
| 806 | − - Refer to :ref:`Sliced VBI services <vbi-services2>` for a | |
| 807 | − description of the line payload. | |
| 808 | − | |
| 809 | − - .. row 5 | |
| 810 | − | |
| 811 | − - ``V4L2_MPEG_VBI_IVTV_VPS`` | |
| 812 | − | |
| 813 | − - 7 | |
| 814 | − | |
| 815 | − - Refer to :ref:`Sliced VBI services <vbi-services2>` for a | |
| 816 | − description of the line payload. | |
| 629 | + * - Defined Symbol | |
| 630 | + - Value | |
| 631 | + - Description | |
| 632 | + * - ``V4L2_MPEG_VBI_IVTV_TELETEXT_B`` | |
| 633 | + - 1 | |
| 634 | + - Refer to :ref:`Sliced VBI services <vbi-services2>` for a | |
| 635 | + description of the line payload. | |
| 636 | + * - ``V4L2_MPEG_VBI_IVTV_CAPTION_525`` | |
| 637 | + - 4 | |
| 638 | + - Refer to :ref:`Sliced VBI services <vbi-services2>` for a | |
| 639 | + description of the line payload. | |
| 640 | + * - ``V4L2_MPEG_VBI_IVTV_WSS_625`` | |
| 641 | + - 5 | |
| 642 | + - Refer to :ref:`Sliced VBI services <vbi-services2>` for a | |
| 643 | + description of the line payload. | |
| 644 | + * - ``V4L2_MPEG_VBI_IVTV_VPS`` | |
| 645 | + - 7 | |
| 646 | + - Refer to :ref:`Sliced VBI services <vbi-services2>` for a | |
| 647 | + description of the line payload. | |
| 817 | 648 | |
| 818 | 649 | |
| 819 | 650 | |
| 820 | 651 | .. [#f1] |
| 821 | 652 | According to :ref:`ETS 300 706 <ets300706>` lines 6-22 of the first |
| 822 | 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`. | |
| @@ -202,93 +202,58 @@ for the pipeline described in :ref:`pipeline-scaling` (table columns · 201 unmodified lines | ||
| 202 | 202 | list 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 | 211 | .. _sample-pipeline-config: |
| 206 | 212 | |
| 207 | 213 | .. flat-table:: Sample Pipeline Configuration |
| 208 | 214 | :header-rows: 1 |
| 209 | 215 | :stub-columns: 0 |
| 210 | − | |
| 211 | − | |
| 212 | − - .. row 1 | |
| 213 | − | |
| 214 | − - | |
| 215 | − - Sensor/0 format | |
| 216 | − | |
| 217 | − - Frontend/0 format | |
| 218 | − | |
| 219 | − - Frontend/1 format | |
| 220 | − | |
| 221 | − - Scaler/0 format | |
| 222 | − | |
| 223 | − - Scaler/0 compose selection rectangle | |
| 224 | − | |
| 225 | − - Scaler/1 format | |
| 226 | − | |
| 227 | − - .. row 2 | |
| 228 | − | |
| 229 | − - Initial state | |
| 230 | − | |
| 231 | − - 2048x1536/SGRBG8_1X8 | |
| 232 | − | |
| 233 | − - (default) | |
| 234 | − | |
| 235 | − - (default) | |
| 236 | − | |
| 237 | − - (default) | |
| 238 | − | |
| 239 | − - (default) | |
| 240 | − | |
| 241 | − - (default) | |
| 242 | − | |
| 243 | − - .. row 3 | |
| 244 | − | |
| 245 | − - Configure frontend sink format | |
| 246 | − | |
| 247 | − - 2048x1536/SGRBG8_1X8 | |
| 248 | − | |
| 249 | − - *2048x1536/SGRBG8_1X8* | |
| 250 | − | |
| 251 | − - *2046x1534/SGRBG8_1X8* | |
| 252 | − | |
| 253 | − - (default) | |
| 254 | − | |
| 255 | − - (default) | |
| 256 | − | |
| 257 | − - (default) | |
| 258 | − | |
| 259 | − - .. row 4 | |
| 260 | − | |
| 261 | − - Configure scaler sink format | |
| 262 | − | |
| 263 | − - 2048x1536/SGRBG8_1X8 | |
| 264 | − | |
| 265 | − - 2048x1536/SGRBG8_1X8 | |
| 266 | − | |
| 267 | − - 2046x1534/SGRBG8_1X8 | |
| 268 | − | |
| 269 | − - *2046x1534/SGRBG8_1X8* | |
| 270 | − | |
| 271 | − - *0,0/2046x1534* | |
| 272 | − | |
| 273 | − - *2046x1534/SGRBG8_1X8* | |
| 274 | − | |
| 275 | − - .. row 5 | |
| 276 | − | |
| 277 | − - Configure scaler sink compose selection | |
| 278 | − | |
| 279 | − - 2048x1536/SGRBG8_1X8 | |
| 280 | − | |
| 281 | − - 2048x1536/SGRBG8_1X8 | |
| 282 | − | |
| 283 | − - 2046x1534/SGRBG8_1X8 | |
| 284 | − | |
| 285 | − - 2046x1534/SGRBG8_1X8 | |
| 286 | − | |
| 287 | − - *0,0/1280x960* | |
| 288 | − | |
| 289 | − - *1280x960/SGRBG8_1X8* | |
| 290 | − | |
| 291 | − | |
| 216 | + :widths: 5 5 5 5 5 5 5 | |
| 217 | + | |
| 218 | + * - | |
| 219 | + - Sensor/0 format | |
| 220 | + - Frontend/0 format | |
| 221 | + - Frontend/1 format | |
| 222 | + - Scaler/0 format | |
| 223 | + - Scaler/0 compose selection rectangle | |
| 224 | + - Scaler/1 format | |
| 225 | + * - Initial state | |
| 226 | + - 2048x1536/SGRBG8_1X8 | |
| 227 | + - (default) | |
| 228 | + - (default) | |
| 229 | + - (default) | |
| 230 | + - (default) | |
| 231 | + - (default) | |
| 232 | + * - Configure frontend sink format | |
| 233 | + - 2048x1536/SGRBG8_1X8 | |
| 234 | + - *2048x1536/SGRBG8_1X8* | |
| 235 | + - *2046x1534/SGRBG8_1X8* | |
| 236 | + - (default) | |
| 237 | + - (default) | |
| 238 | + - (default) | |
| 239 | + * - Configure scaler sink format | |
| 240 | + - 2048x1536/SGRBG8_1X8 | |
| 241 | + - 2048x1536/SGRBG8_1X8 | |
| 242 | + - 2046x1534/SGRBG8_1X8 | |
| 243 | + - *2046x1534/SGRBG8_1X8* | |
| 244 | + - *0,0/2046x1534* | |
| 245 | + - *2046x1534/SGRBG8_1X8* | |
| 246 | + * - Configure scaler sink compose selection | |
| 247 | + - 2048x1536/SGRBG8_1X8 | |
| 248 | + - 2048x1536/SGRBG8_1X8 | |
| 249 | + - 2046x1534/SGRBG8_1X8 | |
| 250 | + - 2046x1534/SGRBG8_1X8 | |
| 251 | + - *0,0/1280x960* | |
| 252 | + - *1280x960/SGRBG8_1X8* | |
| 253 | + | |
| 254 | +.. raw:: latex | |
| 255 | + | |
| 256 | + \end{adjustbox}\newline\newline | |
| 292 | 257 | |
| 293 | 258 | 1. Initial state. The sensor source pad format is set to its native 3MP |
| 294 | 259 | 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 | ||
| 332 | 297 | the area of the image that will be scaled up. |
| 333 | 298 | |
| 334 | 299 | Crop settings are defined by a crop rectangle and represented in a |
| 335 | −struct :ref:`v4l2_rect <v4l2-rect>` by the coordinates of the top | |
| 300 | +struct :c:type:`v4l2_rect` by the coordinates of the top | |
| 336 | 301 | left corner and the rectangle size. Both the coordinates and sizes are |
| 337 | 302 | expressed in pixels. |
| 338 | 303 | |
| @@ -348,7 +313,7 @@ sub-device for processing. · 9 unmodified lines | ||
| 348 | 313 | The scaling operation changes the size of the image by scaling it to new |
| 349 | 314 | dimensions. The scaling ratio isn't specified explicitly, but is implied |
| 350 | 315 | from the original and scaled image sizes. Both sizes are represented by |
| 351 | −struct :ref:`v4l2_rect <v4l2-rect>`. | |
| 316 | +struct :c:type:`v4l2_rect`. | |
| 352 | 317 | |
| 353 | 318 | Scaling support is optional. When supported by a subdev, the crop |
| 354 | 319 | rectangle on the subdev's sink pad is scaled to the size configured |
| @@ -0,0 +1,56 @@ | ||
| 1 | +.. -*- coding: utf-8; mode: rst -*- | |
| 2 | + | |
| 3 | +.. _touch: | |
| 4 | + | |
| 5 | +************* | |
| 6 | +Touch Devices | |
| 7 | +************* | |
| 8 | + | |
| 9 | +Touch devices are accessed through character device special files named | |
| 10 | +``/dev/v4l-touch0`` to ``/dev/v4l-touch255`` with major number 81 and | |
| 11 | +dynamically allocated minor numbers 0 to 255. | |
| 12 | + | |
| 13 | +Overview | |
| 14 | +======== | |
| 15 | + | |
| 16 | +Sensors may be Optical, or Projected Capacitive touch (PCT). | |
| 17 | + | |
| 18 | +Processing is required to analyse the raw data and produce input events. In | |
| 19 | +some systems, this may be performed on the ASIC and the raw data is purely a | |
| 20 | +side-channel for diagnostics or tuning. In other systems, the ASIC is a simple | |
| 21 | +analogue front end device which delivers touch data at high rate, and any touch | |
| 22 | +processing must be done on the host. | |
| 23 | + | |
| 24 | +For capacitive touch sensing, the touchscreen is composed of an array of | |
| 25 | +horizontal and vertical conductors (alternatively called rows/columns, X/Y | |
| 26 | +lines, or tx/rx). Mutual Capacitance measured is at the nodes where the | |
| 27 | +conductors cross. Alternatively, Self Capacitance measures the signal from each | |
| 28 | +column and row independently. | |
| 29 | + | |
| 30 | +A touch input may be determined by comparing the raw capacitance measurement to | |
| 31 | +a no-touch reference (or "baseline") measurement: | |
| 32 | + | |
| 33 | +Delta = Raw - Reference | |
| 34 | + | |
| 35 | +The reference measurement takes account of variations in the capacitance across | |
| 36 | +the touch sensor matrix, for example manufacturing irregularities, | |
| 37 | +environmental or edge effects. | |
| 38 | + | |
| 39 | +Querying Capabilities | |
| 40 | +===================== | |
| 41 | + | |
| 42 | +Devices supporting the touch interface set the ``V4L2_CAP_VIDEO_CAPTURE`` flag | |
| 43 | +and the ``V4L2_CAP_TOUCH`` flag in the ``capabilities`` field of | |
| 44 | +:c:type:`v4l2_capability` returned by the | |
| 45 | +:ref:`VIDIOC_QUERYCAP` ioctl. | |
| 46 | + | |
| 47 | +At least one of the read/write or streaming I/O methods must be | |
| 48 | +supported. | |
| 49 | + | |
| 50 | +The formats supported by touch devices are documented in | |
| 51 | +:ref:`Touch Formats <tch-formats>`. | |
| 52 | + | |
| 53 | +Data Format Negotiation | |
| 54 | +======================= | |
| 55 | + | |
| 56 | +A touch device may support any I/O method. | |
| @@ -22,5 +22,6 @@ Interfaces · 21 unmodified lines | ||
| 22 | 22 | dev-radio |
| 23 | 23 | dev-rds |
| 24 | 24 | dev-sdr |
| 25 | + dev-touch | |
| 25 | 26 | dev-event |
| 26 | 27 | dev-subdev |
| @@ -39,39 +39,19 @@ using driver module options. The major device number remains 81. · 38 unmodified lines | ||
| 39 | 39 | :header-rows: 1 |
| 40 | 40 | :stub-columns: 0 |
| 41 | 41 | |
| 42 | − | |
| 43 | − - .. row 1 | |
| 44 | − | |
| 45 | − - Device Type | |
| 46 | − | |
| 47 | − - File Name | |
| 48 | − | |
| 49 | − - Minor Numbers | |
| 50 | − | |
| 51 | − - .. row 2 | |
| 52 | − | |
| 53 | − - Video capture and overlay | |
| 54 | − | |
| 55 | − - ``/dev/video`` and ``/dev/bttv0``\ [#f1]_, ``/dev/video0`` to | |
| 56 | − ``/dev/video63`` | |
| 57 | − | |
| 58 | − - 0-63 | |
| 59 | − | |
| 60 | − - .. row 3 | |
| 61 | − | |
| 62 | − - Radio receiver | |
| 63 | − | |
| 64 | − - ``/dev/radio``\ [#f2]_, ``/dev/radio0`` to ``/dev/radio63`` | |
| 65 | − | |
| 66 | − - 64-127 | |
| 67 | − | |
| 68 | − - .. row 4 | |
| 69 | − | |
| 70 | − - Raw VBI capture | |
| 71 | − | |
| 72 | − - ``/dev/vbi``, ``/dev/vbi0`` to ``/dev/vbi31`` | |
| 73 | − | |
| 74 | − - 224-255 | |
| 42 | + * - Device Type | |
| 43 | + - File Name | |
| 44 | + - Minor Numbers | |
| 45 | + * - Video capture and overlay | |
| 46 | + - ``/dev/video`` and ``/dev/bttv0``\ [#f1]_, ``/dev/video0`` to | |
| 47 | + ``/dev/video63`` | |
| 48 | + - 0-63 | |
| 49 | + * - Radio receiver | |
| 50 | + - ``/dev/radio``\ [#f2]_, ``/dev/radio0`` to ``/dev/radio63`` | |
| 51 | + - 64-127 | |
| 52 | + * - Raw VBI capture | |
| 53 | + - ``/dev/vbi``, ``/dev/vbi0`` to ``/dev/vbi31`` | |
| 54 | + - 224-255 | |
| 75 | 55 | |
| 76 | 56 | |
| 77 | 57 | V4L prohibits (or used to prohibit) multiple opens of a device file. |
| @@ -87,162 +67,89 @@ Querying Capabilities · 9 unmodified lines | ||
| 87 | 67 | The V4L ``VIDIOCGCAP`` ioctl is equivalent to V4L2's |
| 88 | 68 | :ref:`VIDIOC_QUERYCAP`. |
| 89 | 69 | |
| 90 | −The ``name`` field in struct :c:type:`struct video_capability` became | |
| 91 | −``card`` in struct :ref:`v4l2_capability <v4l2-capability>`, ``type`` | |
| 70 | +The ``name`` field in struct ``video_capability`` became | |
| 71 | +``card`` in struct :c:type:`v4l2_capability`, ``type`` | |
| 92 | 72 | was replaced by ``capabilities``. Note V4L2 does not distinguish between |
| 93 | 73 | device types like this, better think of basic video input, video output |
| 94 | 74 | and radio devices supporting a set of related functions like video |
| 95 | 75 | capturing, video overlay and VBI capturing. See :ref:`open` for an |
| 96 | 76 | introduction. |
| 97 | 77 | |
| 78 | +.. tabularcolumns:: |p{5.5cm}|p{6.5cm}|p{5.5cm} | |
| 98 | 79 | |
| 80 | +.. cssclass:: longtable | |
| 99 | 81 | |
| 100 | 82 | .. flat-table:: |
| 101 | 83 | :header-rows: 1 |
| 102 | 84 | :stub-columns: 0 |
| 103 | 85 | |
| 104 | − | |
| 105 | − - .. row 1 | |
| 106 | − | |
| 107 | − - struct :c:type:`struct video_capability` ``type`` | |
| 108 | − | |
| 109 | − - struct :ref:`v4l2_capability <v4l2-capability>` | |
| 110 | − ``capabilities`` flags | |
| 111 | − | |
| 112 | − - Purpose | |
| 113 | − | |
| 114 | − - .. row 2 | |
| 115 | − | |
| 116 | − - ``VID_TYPE_CAPTURE`` | |
| 117 | − | |
| 118 | − - ``V4L2_CAP_VIDEO_CAPTURE`` | |
| 119 | − | |
| 120 | − - The :ref:`video capture <capture>` interface is supported. | |
| 121 | − | |
| 122 | − - .. row 3 | |
| 123 | − | |
| 124 | − - ``VID_TYPE_TUNER`` | |
| 125 | − | |
| 126 | − - ``V4L2_CAP_TUNER`` | |
| 127 | − | |
| 128 | − - The device has a :ref:`tuner or modulator <tuner>`. | |
| 129 | − | |
| 130 | − - .. row 4 | |
| 131 | − | |
| 132 | − - ``VID_TYPE_TELETEXT`` | |
| 133 | − | |
| 134 | − - ``V4L2_CAP_VBI_CAPTURE`` | |
| 135 | − | |
| 136 | − - The :ref:`raw VBI capture <raw-vbi>` interface is supported. | |
| 137 | − | |
| 138 | − - .. row 5 | |
| 139 | − | |
| 140 | − - ``VID_TYPE_OVERLAY`` | |
| 141 | − | |
| 142 | − - ``V4L2_CAP_VIDEO_OVERLAY`` | |
| 143 | − | |
| 144 | − - The :ref:`video overlay <overlay>` interface is supported. | |
| 145 | − | |
| 146 | − - .. row 6 | |
| 147 | − | |
| 148 | − - ``VID_TYPE_CHROMAKEY`` | |
| 149 | − | |
| 150 | − - ``V4L2_FBUF_CAP_CHROMAKEY`` in field ``capability`` of struct | |
| 151 | − :ref:`v4l2_framebuffer <v4l2-framebuffer>` | |
| 152 | − | |
| 153 | − - Whether chromakey overlay is supported. For more information on | |
| 154 | − overlay see :ref:`overlay`. | |
| 155 | − | |
| 156 | − - .. row 7 | |
| 157 | − | |
| 158 | − - ``VID_TYPE_CLIPPING`` | |
| 159 | − | |
| 160 | − - ``V4L2_FBUF_CAP_LIST_CLIPPING`` and | |
| 161 | − ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` in field ``capability`` of | |
| 162 | − struct :ref:`v4l2_framebuffer <v4l2-framebuffer>` | |
| 163 | − | |
| 164 | − - Whether clipping the overlaid image is supported, see | |
| 165 | − :ref:`overlay`. | |
| 166 | − | |
| 167 | − - .. row 8 | |
| 168 | − | |
| 169 | − - ``VID_TYPE_FRAMERAM`` | |
| 170 | − | |
| 171 | − - ``V4L2_FBUF_CAP_EXTERNOVERLAY`` *not set* in field ``capability`` | |
| 172 | − of struct :ref:`v4l2_framebuffer <v4l2-framebuffer>` | |
| 173 | − | |
| 174 | − - Whether overlay overwrites frame buffer memory, see | |
| 175 | − :ref:`overlay`. | |
| 176 | − | |
| 177 | − - .. row 9 | |
| 178 | − | |
| 179 | − - ``VID_TYPE_SCALES`` | |
| 180 | − | |
| 181 | − - ``-`` | |
| 182 | − | |
| 183 | − - This flag indicates if the hardware can scale images. The V4L2 API | |
| 184 | − implies the scale factor by setting the cropping dimensions and | |
| 185 | − image size with the :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` and | |
| 186 | − :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, respectively. The | |
| 187 | − driver returns the closest sizes possible. For more information on | |
| 188 | − cropping and scaling see :ref:`crop`. | |
| 189 | − | |
| 190 | − - .. row 10 | |
| 191 | − | |
| 192 | − - ``VID_TYPE_MONOCHROME`` | |
| 193 | − | |
| 194 | − - ``-`` | |
| 195 | − | |
| 196 | − - Applications can enumerate the supported image formats with the | |
| 197 | − :ref:`VIDIOC_ENUM_FMT` ioctl to determine if | |
| 198 | − the device supports grey scale capturing only. For more | |
| 199 | − information on image formats see :ref:`pixfmt`. | |
| 200 | − | |
| 201 | − - .. row 11 | |
| 202 | − | |
| 203 | − - ``VID_TYPE_SUBCAPTURE`` | |
| 204 | − | |
| 205 | − - ``-`` | |
| 206 | − | |
| 207 | − - Applications can call the :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` | |
| 208 | − ioctl to determine if the device supports capturing a subsection | |
| 209 | − of the full picture ("cropping" in V4L2). If not, the ioctl | |
| 210 | − returns the ``EINVAL`` error code. For more information on cropping | |
| 211 | − and scaling see :ref:`crop`. | |
| 212 | − | |
| 213 | − - .. row 12 | |
| 214 | − | |
| 215 | − - ``VID_TYPE_MPEG_DECODER`` | |
| 216 | − | |
| 217 | − - ``-`` | |
| 218 | − | |
| 219 | − - Applications can enumerate the supported image formats with the | |
| 220 | − :ref:`VIDIOC_ENUM_FMT` ioctl to determine if | |
| 221 | − the device supports MPEG streams. | |
| 222 | − | |
| 223 | − - .. row 13 | |
| 224 | − | |
| 225 | − - ``VID_TYPE_MPEG_ENCODER`` | |
| 226 | − | |
| 227 | − - ``-`` | |
| 228 | − | |
| 229 | − - See above. | |
| 230 | − | |
| 231 | − - .. row 14 | |
| 232 | − | |
| 233 | − - ``VID_TYPE_MJPEG_DECODER`` | |
| 234 | − | |
| 235 | − - ``-`` | |
| 236 | − | |
| 237 | − - See above. | |
| 238 | − | |
| 239 | − - .. row 15 | |
| 240 | − | |
| 241 | − - ``VID_TYPE_MJPEG_ENCODER`` | |
| 242 | − | |
| 243 | − - ``-`` | |
| 244 | − | |
| 245 | − - See above. | |
| 86 | + * - ``struct video_capability`` ``type`` | |
| 87 | + - struct :c:type:`v4l2_capability` | |
| 88 | + ``capabilities`` flags | |
| 89 | + - Purpose | |
| 90 | + * - ``VID_TYPE_CAPTURE`` | |
| 91 | + - ``V4L2_CAP_VIDEO_CAPTURE`` | |
| 92 | + - The :ref:`video capture <capture>` interface is supported. | |
| 93 | + * - ``VID_TYPE_TUNER`` | |
| 94 | + - ``V4L2_CAP_TUNER`` | |
| 95 | + - The device has a :ref:`tuner or modulator <tuner>`. | |
| 96 | + * - ``VID_TYPE_TELETEXT`` | |
| 97 | + - ``V4L2_CAP_VBI_CAPTURE`` | |
| 98 | + - The :ref:`raw VBI capture <raw-vbi>` interface is supported. | |
| 99 | + * - ``VID_TYPE_OVERLAY`` | |
| 100 | + - ``V4L2_CAP_VIDEO_OVERLAY`` | |
| 101 | + - The :ref:`video overlay <overlay>` interface is supported. | |
| 102 | + * - ``VID_TYPE_CHROMAKEY`` | |
| 103 | + - ``V4L2_FBUF_CAP_CHROMAKEY`` in field ``capability`` of struct | |
| 104 | + :c:type:`v4l2_framebuffer` | |
| 105 | + - Whether chromakey overlay is supported. For more information on | |
| 106 | + overlay see :ref:`overlay`. | |
| 107 | + * - ``VID_TYPE_CLIPPING`` | |
| 108 | + - ``V4L2_FBUF_CAP_LIST_CLIPPING`` and | |
| 109 | + ``V4L2_FBUF_CAP_BITMAP_CLIPPING`` in field ``capability`` of | |
| 110 | + struct :c:type:`v4l2_framebuffer` | |
| 111 | + - Whether clipping the overlaid image is supported, see | |
| 112 | + :ref:`overlay`. | |
| 113 | + * - ``VID_TYPE_FRAMERAM`` | |
| 114 | + - ``V4L2_FBUF_CAP_EXTERNOVERLAY`` *not set* in field ``capability`` | |
| 115 | + of struct :c:type:`v4l2_framebuffer` | |
| 116 | + - Whether overlay overwrites frame buffer memory, see | |
| 117 | + :ref:`overlay`. | |
| 118 | + * - ``VID_TYPE_SCALES`` | |
| 119 | + - ``-`` | |
| 120 | + - This flag indicates if the hardware can scale images. The V4L2 API | |
| 121 | + implies the scale factor by setting the cropping dimensions and | |
| 122 | + image size with the :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` and | |
| 123 | + :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl, respectively. The | |
| 124 | + driver returns the closest sizes possible. For more information on | |
| 125 | + cropping and scaling see :ref:`crop`. | |
| 126 | + * - ``VID_TYPE_MONOCHROME`` | |
| 127 | + - ``-`` | |
| 128 | + - Applications can enumerate the supported image formats with the | |
| 129 | + :ref:`VIDIOC_ENUM_FMT` ioctl to determine if | |
| 130 | + the device supports grey scale capturing only. For more | |
| 131 | + information on image formats see :ref:`pixfmt`. | |
| 132 | + * - ``VID_TYPE_SUBCAPTURE`` | |
| 133 | + - ``-`` | |
| 134 | + - Applications can call the :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` | |
| 135 | + ioctl to determine if the device supports capturing a subsection | |
| 136 | + of the full picture ("cropping" in V4L2). If not, the ioctl | |
| 137 | + returns the ``EINVAL`` error code. For more information on cropping | |
| 138 | + and scaling see :ref:`crop`. | |
| 139 | + * - ``VID_TYPE_MPEG_DECODER`` | |
| 140 | + - ``-`` | |
| 141 | + - Applications can enumerate the supported image formats with the | |
| 142 | + :ref:`VIDIOC_ENUM_FMT` ioctl to determine if | |
| 143 | + the device supports MPEG streams. | |
| 144 | + * - ``VID_TYPE_MPEG_ENCODER`` | |
| 145 | + - ``-`` | |
| 146 | + - See above. | |
| 147 | + * - ``VID_TYPE_MJPEG_DECODER`` | |
| 148 | + - ``-`` | |
| 149 | + - See above. | |
| 150 | + * - ``VID_TYPE_MJPEG_ENCODER`` | |
| 151 | + - ``-`` | |
| 152 | + - See above. | |
| 246 | 153 | |
| 247 | 154 | |
| 248 | 155 | The ``audios`` field was replaced by ``capabilities`` flag |
| @@ -262,12 +169,12 @@ Video Sources · 13 unmodified lines | ||
| 262 | 169 | ============= |
| 263 | 170 | |
| 264 | 171 | V4L provides the ``VIDIOCGCHAN`` and ``VIDIOCSCHAN`` ioctl using struct |
| 265 | −:c:type:`struct video_channel` to enumerate the video inputs of a V4L | |
| 172 | +``video_channel`` to enumerate the video inputs of a V4L | |
| 266 | 173 | device. The equivalent V4L2 ioctls are |
| 267 | 174 | :ref:`VIDIOC_ENUMINPUT`, |
| 268 | 175 | :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` and |
| 269 | 176 | :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 | |
| 272 | 179 | The ``channel`` field counting inputs was renamed to ``index``, the |
| 273 | 180 | video input types were renamed as follows: |
| @@ -278,24 +185,12 @@ video input types were renamed as follows: · 4 unmodified lines | ||
| 278 | 185 | :header-rows: 1 |
| 279 | 186 | :stub-columns: 0 |
| 280 | 187 | |
| 281 | − | |
| 282 | − - .. row 1 | |
| 283 | − | |
| 284 | − - struct :c:type:`struct video_channel` ``type`` | |
| 285 | − | |
| 286 | − - struct :ref:`v4l2_input <v4l2-input>` ``type`` | |
| 287 | − | |
| 288 | − - .. row 2 | |
| 289 | − | |
| 290 | − - ``VIDEO_TYPE_TV`` | |
| 291 | − | |
| 292 | − - ``V4L2_INPUT_TYPE_TUNER`` | |
| 293 | − | |
| 294 | − - .. row 3 | |
| 295 | − | |
| 296 | − - ``VIDEO_TYPE_CAMERA`` | |
| 297 | − | |
| 298 | − - ``V4L2_INPUT_TYPE_CAMERA`` | |
| 188 | + * - struct ``video_channel`` ``type`` | |
| 189 | + - struct :c:type:`v4l2_input` ``type`` | |
| 190 | + * - ``VIDEO_TYPE_TV`` | |
| 191 | + - ``V4L2_INPUT_TYPE_TUNER`` | |
| 192 | + * - ``VIDEO_TYPE_CAMERA`` | |
| 193 | + - ``V4L2_INPUT_TYPE_CAMERA`` | |
| 299 | 194 | |
| 300 | 195 | |
| 301 | 196 | Unlike the ``tuners`` field expressing the number of tuners of this |
| @@ -303,7 +198,7 @@ input, V4L2 assumes each video input is connected to at most one tuner. · 1 unmodified line | ||
| 303 | 198 | However a tuner can have more than one input, i. e. RF connectors, and a |
| 304 | 199 | device can have multiple tuners. The index number of the tuner |
| 305 | 200 | associated with the input, if any, is stored in field ``tuner`` of |
| 306 | −struct :ref:`v4l2_input <v4l2-input>`. Enumeration of tuners is | |
| 201 | +struct :c:type:`v4l2_input`. Enumeration of tuners is | |
| 307 | 202 | discussed in :ref:`tuner`. |
| 308 | 203 | |
| 309 | 204 | The redundant ``VIDEO_VC_TUNER`` flag was dropped. Video inputs |
| @@ -326,11 +221,11 @@ Tuning · 16 unmodified lines | ||
| 326 | 221 | ====== |
| 327 | 222 | |
| 328 | 223 | The V4L ``VIDIOCGTUNER`` and ``VIDIOCSTUNER`` ioctl and struct |
| 329 | −:c:type:`struct video_tuner` can be used to enumerate the tuners of a | |
| 224 | +``video_tuner`` can be used to enumerate the tuners of a | |
| 330 | 225 | V4L TV or radio device. The equivalent V4L2 ioctls are |
| 331 | 226 | :ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` and |
| 332 | 227 | :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 | |
| 335 | 230 | The ``tuner`` field counting tuners was renamed to ``index``. The fields |
| 336 | 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 | ||
| 338 | 233 | The ``VIDEO_TUNER_PAL``, ``VIDEO_TUNER_NTSC`` and ``VIDEO_TUNER_SECAM`` |
| 339 | 234 | flags indicating the supported video standards were dropped. This |
| 340 | 235 | information is now contained in the associated struct |
| 341 | −:ref:`v4l2_input <v4l2-input>`. No replacement exists for the | |
| 236 | +:c:type:`v4l2_input`. No replacement exists for the | |
| 342 | 237 | ``VIDEO_TUNER_NORM`` flag indicating whether the video standard can be |
| 343 | 238 | switched. The ``mode`` field to select a different video standard was |
| 344 | 239 | replaced by a whole new set of ioctls and structures described in |
| @@ -351,18 +246,18 @@ Japan with numbers 3-6 (sic). · 6 unmodified lines | ||
| 351 | 246 | The ``VIDEO_TUNER_STEREO_ON`` flag indicating stereo reception became |
| 352 | 247 | ``V4L2_TUNER_SUB_STEREO`` in field ``rxsubchans``. This field also |
| 353 | 248 | permits the detection of monaural and bilingual audio, see the |
| 354 | −definition of struct :ref:`v4l2_tuner <v4l2-tuner>` for details. | |
| 249 | +definition of struct :c:type:`v4l2_tuner` for details. | |
| 355 | 250 | Presently no replacement exists for the ``VIDEO_TUNER_RDS_ON`` and |
| 356 | 251 | ``VIDEO_TUNER_MBS_ON`` flags. |
| 357 | 252 | |
| 358 | 253 | The ``VIDEO_TUNER_LOW`` flag was renamed to ``V4L2_TUNER_CAP_LOW`` in |
| 359 | −the struct :ref:`v4l2_tuner <v4l2-tuner>` ``capability`` field. | |
| 254 | +the struct :c:type:`v4l2_tuner` ``capability`` field. | |
| 360 | 255 | |
| 361 | 256 | The ``VIDIOCGFREQ`` and ``VIDIOCSFREQ`` ioctl to change the tuner |
| 362 | 257 | frequency where renamed to |
| 363 | 258 | :ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUENCY>` and |
| 364 | 259 | :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>`. They take a pointer |
| 365 | −to a struct :ref:`v4l2_frequency <v4l2-frequency>` instead of an | |
| 260 | +to a struct :c:type:`v4l2_frequency` instead of an | |
| 366 | 261 | unsigned long integer. |
| 367 | 262 | |
| 368 | 263 | |
| @@ -372,7 +267,7 @@ Image Properties · 3 unmodified lines | ||
| 372 | 267 | ================ |
| 373 | 268 | |
| 374 | 269 | V4L2 has no equivalent of the ``VIDIOCGPICT`` and ``VIDIOCSPICT`` ioctl |
| 375 | −and struct :c:type:`struct video_picture`. The following fields where | |
| 270 | +and struct ``video_picture``. The following fields where | |
| 376 | 271 | replaced by V4L2 controls accessible with the |
| 377 | 272 | :ref:`VIDIOC_QUERYCTRL`, |
| 378 | 273 | :ref:`VIDIOC_G_CTRL <VIDIOC_G_CTRL>` and |
| @@ -384,42 +279,18 @@ replaced by V4L2 controls accessible with the · 5 unmodified lines | ||
| 384 | 279 | :header-rows: 1 |
| 385 | 280 | :stub-columns: 0 |
| 386 | 281 | |
| 387 | − | |
| 388 | − - .. row 1 | |
| 389 | − | |
| 390 | − - struct :c:type:`struct video_picture` | |
| 391 | − | |
| 392 | − - V4L2 Control ID | |
| 393 | − | |
| 394 | − - .. row 2 | |
| 395 | − | |
| 396 | − - ``brightness`` | |
| 397 | − | |
| 398 | − - ``V4L2_CID_BRIGHTNESS`` | |
| 399 | − | |
| 400 | − - .. row 3 | |
| 401 | − | |
| 402 | − - ``hue`` | |
| 403 | − | |
| 404 | − - ``V4L2_CID_HUE`` | |
| 405 | − | |
| 406 | − - .. row 4 | |
| 407 | − | |
| 408 | − - ``colour`` | |
| 409 | − | |
| 410 | − - ``V4L2_CID_SATURATION`` | |
| 411 | − | |
| 412 | − - .. row 5 | |
| 413 | − | |
| 414 | − - ``contrast`` | |
| 415 | − | |
| 416 | − - ``V4L2_CID_CONTRAST`` | |
| 417 | − | |
| 418 | − - .. row 6 | |
| 419 | − | |
| 420 | − - ``whiteness`` | |
| 421 | − | |
| 422 | − - ``V4L2_CID_WHITENESS`` | |
| 282 | + * - struct ``video_picture`` | |
| 283 | + - V4L2 Control ID | |
| 284 | + * - ``brightness`` | |
| 285 | + - ``V4L2_CID_BRIGHTNESS`` | |
| 286 | + * - ``hue`` | |
| 287 | + - ``V4L2_CID_HUE`` | |
| 288 | + * - ``colour`` | |
| 289 | + - ``V4L2_CID_SATURATION`` | |
| 290 | + * - ``contrast`` | |
| 291 | + - ``V4L2_CID_CONTRAST`` | |
| 292 | + * - ``whiteness`` | |
| 293 | + - ``V4L2_CID_WHITENESS`` | |
| 423 | 294 | |
| 424 | 295 | |
| 425 | 296 | The V4L picture controls are assumed to range from 0 to 65535 with no |
| @@ -432,7 +303,7 @@ The ``depth`` (average number of bits per pixel) of a video image is · 6 unmodified lines | ||
| 432 | 303 | implied by the selected image format. V4L2 does not explicitly provide |
| 433 | 304 | such information assuming applications recognizing the format are aware |
| 434 | 305 | of the image depth and others need not know. The ``palette`` field moved |
| 435 | −into the struct :ref:`v4l2_pix_format <v4l2-pix-format>`: | |
| 306 | +into the struct :c:type:`v4l2_pix_format`: | |
| 436 | 307 | |
| 437 | 308 | |
| 438 | 309 | |
| @@ -440,108 +311,40 @@ into the struct :ref:`v4l2_pix_format <v4l2-pix-format>`: · 1 unmodified line | ||
| 440 | 311 | :header-rows: 1 |
| 441 | 312 | :stub-columns: 0 |
| 442 | 313 | |
| 443 | − | |
| 444 | − - .. row 1 | |
| 445 | − | |
| 446 | − - struct :c:type:`struct video_picture` ``palette`` | |
| 447 | − | |
| 448 | − - struct :ref:`v4l2_pix_format <v4l2-pix-format>` ``pixfmt`` | |
| 449 | − | |
| 450 | − - .. row 2 | |
| 451 | − | |
| 452 | − - ``VIDEO_PALETTE_GREY`` | |
| 453 | − | |
| 454 | − - :ref:`V4L2_PIX_FMT_GREY <V4L2-PIX-FMT-GREY>` | |
| 455 | − | |
| 456 | − - .. row 3 | |
| 457 | − | |
| 458 | − - ``VIDEO_PALETTE_HI240`` | |
| 459 | − | |
| 460 | − - :ref:`V4L2_PIX_FMT_HI240 <pixfmt-reserved>` [#f3]_ | |
| 461 | − | |
| 462 | − - .. row 4 | |
| 463 | − | |
| 464 | − - ``VIDEO_PALETTE_RGB565`` | |
| 465 | − | |
| 466 | − - :ref:`V4L2_PIX_FMT_RGB565 <pixfmt-rgb>` | |
| 467 | − | |
| 468 | − - .. row 5 | |
| 469 | − | |
| 470 | − - ``VIDEO_PALETTE_RGB555`` | |
| 471 | − | |
| 472 | − - :ref:`V4L2_PIX_FMT_RGB555 <pixfmt-rgb>` | |
| 473 | − | |
| 474 | − - .. row 6 | |
| 475 | − | |
| 476 | − - ``VIDEO_PALETTE_RGB24`` | |
| 477 | − | |
| 478 | − - :ref:`V4L2_PIX_FMT_BGR24 <pixfmt-rgb>` | |
| 479 | − | |
| 480 | − - .. row 7 | |
| 481 | − | |
| 482 | − - ``VIDEO_PALETTE_RGB32`` | |
| 483 | − | |
| 484 | − - :ref:`V4L2_PIX_FMT_BGR32 <pixfmt-rgb>` [#f4]_ | |
| 485 | − | |
| 486 | − - .. row 8 | |
| 487 | − | |
| 488 | − - ``VIDEO_PALETTE_YUV422`` | |
| 489 | − | |
| 490 | − - :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>` | |
| 491 | − | |
| 492 | − - .. row 9 | |
| 493 | − | |
| 494 | − - ``VIDEO_PALETTE_YUYV``\ [#f5]_ | |
| 495 | − | |
| 496 | − - :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>` | |
| 497 | − | |
| 498 | − - .. row 10 | |
| 499 | − | |
| 500 | − - ``VIDEO_PALETTE_UYVY`` | |
| 501 | − | |
| 502 | − - :ref:`V4L2_PIX_FMT_UYVY <V4L2-PIX-FMT-UYVY>` | |
| 503 | − | |
| 504 | − - .. row 11 | |
| 505 | − | |
| 506 | − - ``VIDEO_PALETTE_YUV420`` | |
| 507 | − | |
| 508 | − - None | |
| 509 | − | |
| 510 | − - .. row 12 | |
| 511 | − | |
| 512 | − - ``VIDEO_PALETTE_YUV411`` | |
| 513 | − | |
| 514 | − - :ref:`V4L2_PIX_FMT_Y41P <V4L2-PIX-FMT-Y41P>` [#f6]_ | |
| 515 | − | |
| 516 | − - .. row 13 | |
| 517 | − | |
| 518 | − - ``VIDEO_PALETTE_RAW`` | |
| 519 | − | |
| 520 | − - None [#f7]_ | |
| 521 | − | |
| 522 | − - .. row 14 | |
| 523 | − | |
| 524 | − - ``VIDEO_PALETTE_YUV422P`` | |
| 525 | − | |
| 526 | − - :ref:`V4L2_PIX_FMT_YUV422P <V4L2-PIX-FMT-YUV422P>` | |
| 527 | − | |
| 528 | − - .. row 15 | |
| 529 | − | |
| 530 | − - ``VIDEO_PALETTE_YUV411P`` | |
| 531 | − | |
| 532 | − - :ref:`V4L2_PIX_FMT_YUV411P <V4L2-PIX-FMT-YUV411P>` [#f8]_ | |
| 533 | − | |
| 534 | − - .. row 16 | |
| 535 | − | |
| 536 | − - ``VIDEO_PALETTE_YUV420P`` | |
| 537 | − | |
| 538 | − - :ref:`V4L2_PIX_FMT_YVU420 <V4L2-PIX-FMT-YVU420>` | |
| 539 | − | |
| 540 | − - .. row 17 | |
| 541 | − | |
| 542 | − - ``VIDEO_PALETTE_YUV410P`` | |
| 543 | − | |
| 544 | − - :ref:`V4L2_PIX_FMT_YVU410 <V4L2-PIX-FMT-YVU410>` | |
| 314 | + * - struct ``video_picture`` ``palette`` | |
| 315 | + - struct :c:type:`v4l2_pix_format` ``pixfmt`` | |
| 316 | + * - ``VIDEO_PALETTE_GREY`` | |
| 317 | + - :ref:`V4L2_PIX_FMT_GREY <V4L2-PIX-FMT-GREY>` | |
| 318 | + * - ``VIDEO_PALETTE_HI240`` | |
| 319 | + - :ref:`V4L2_PIX_FMT_HI240 <pixfmt-reserved>` [#f3]_ | |
| 320 | + * - ``VIDEO_PALETTE_RGB565`` | |
| 321 | + - :ref:`V4L2_PIX_FMT_RGB565 <pixfmt-rgb>` | |
| 322 | + * - ``VIDEO_PALETTE_RGB555`` | |
| 323 | + - :ref:`V4L2_PIX_FMT_RGB555 <pixfmt-rgb>` | |
| 324 | + * - ``VIDEO_PALETTE_RGB24`` | |
| 325 | + - :ref:`V4L2_PIX_FMT_BGR24 <pixfmt-rgb>` | |
| 326 | + * - ``VIDEO_PALETTE_RGB32`` | |
| 327 | + - :ref:`V4L2_PIX_FMT_BGR32 <pixfmt-rgb>` [#f4]_ | |
| 328 | + * - ``VIDEO_PALETTE_YUV422`` | |
| 329 | + - :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>` | |
| 330 | + * - ``VIDEO_PALETTE_YUYV``\ [#f5]_ | |
| 331 | + - :ref:`V4L2_PIX_FMT_YUYV <V4L2-PIX-FMT-YUYV>` | |
| 332 | + * - ``VIDEO_PALETTE_UYVY`` | |
| 333 | + - :ref:`V4L2_PIX_FMT_UYVY <V4L2-PIX-FMT-UYVY>` | |
| 334 | + * - ``VIDEO_PALETTE_YUV420`` | |
| 335 | + - None | |
| 336 | + * - ``VIDEO_PALETTE_YUV411`` | |
| 337 | + - :ref:`V4L2_PIX_FMT_Y41P <V4L2-PIX-FMT-Y41P>` [#f6]_ | |
| 338 | + * - ``VIDEO_PALETTE_RAW`` | |
| 339 | + - None [#f7]_ | |
| 340 | + * - ``VIDEO_PALETTE_YUV422P`` | |
| 341 | + - :ref:`V4L2_PIX_FMT_YUV422P <V4L2-PIX-FMT-YUV422P>` | |
| 342 | + * - ``VIDEO_PALETTE_YUV411P`` | |
| 343 | + - :ref:`V4L2_PIX_FMT_YUV411P <V4L2-PIX-FMT-YUV411P>` [#f8]_ | |
| 344 | + * - ``VIDEO_PALETTE_YUV420P`` | |
| 345 | + - :ref:`V4L2_PIX_FMT_YVU420 <V4L2-PIX-FMT-YVU420>` | |
| 346 | + * - ``VIDEO_PALETTE_YUV410P`` | |
| 347 | + - :ref:`V4L2_PIX_FMT_YVU410 <V4L2-PIX-FMT-YVU410>` | |
| 545 | 348 | |
| 546 | 349 | |
| 547 | 350 | V4L2 image formats are defined in :ref:`pixfmt`. The image format can |
| @@ -552,11 +355,11 @@ Audio · 4 unmodified lines | ||
| 552 | 355 | ===== |
| 553 | 356 | |
| 554 | 357 | The ``VIDIOCGAUDIO`` and ``VIDIOCSAUDIO`` ioctl and struct |
| 555 | −:c:type:`struct video_audio` are used to enumerate the audio inputs | |
| 358 | +``video_audio`` are used to enumerate the audio inputs | |
| 556 | 359 | of a V4L device. The equivalent V4L2 ioctls are |
| 557 | 360 | :ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` and |
| 558 | 361 | :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 | |
| 561 | 364 | The ``audio`` "channel number" field counting audio inputs was renamed |
| 562 | 365 | to ``index``. |
| @@ -569,10 +372,10 @@ standard is BTSC ``VIDEO_SOUND_LANG2`` refers to SAP and · 6 unmodified lines | ||
| 569 | 372 | specification, there is no way to query the selected mode. On |
| 570 | 373 | ``VIDIOCGAUDIO`` the driver returns the *actually received* audio |
| 571 | 374 | programmes in this field. In the V4L2 API this information is stored in |
| 572 | −the struct :ref:`v4l2_tuner <v4l2-tuner>` ``rxsubchans`` and | |
| 375 | +the struct :c:type:`v4l2_tuner` ``rxsubchans`` and | |
| 573 | 376 | ``audmode`` fields, respectively. See :ref:`tuner` for more |
| 574 | 377 | information on tuners. Related to audio modes struct |
| 575 | −:ref:`v4l2_audio <v4l2-audio>` also reports if this is a mono or | |
| 378 | +:c:type:`v4l2_audio` also reports if this is a mono or | |
| 576 | 379 | stereo input, regardless if the source is a tuner. |
| 577 | 380 | |
| 578 | 381 | The following fields where replaced by V4L2 controls accessible with the |
| @@ -586,36 +389,16 @@ The following fields where replaced by V4L2 controls accessible with the · 7 unmodified lines | ||
| 586 | 389 | :header-rows: 1 |
| 587 | 390 | :stub-columns: 0 |
| 588 | 391 | |
| 589 | − | |
| 590 | − - .. row 1 | |
| 591 | − | |
| 592 | − - struct :c:type:`struct video_audio` | |
| 593 | − | |
| 594 | − - V4L2 Control ID | |
| 595 | − | |
| 596 | − - .. row 2 | |
| 597 | − | |
| 598 | − - ``volume`` | |
| 599 | − | |
| 600 | − - ``V4L2_CID_AUDIO_VOLUME`` | |
| 601 | − | |
| 602 | − - .. row 3 | |
| 603 | − | |
| 604 | − - ``bass`` | |
| 605 | − | |
| 606 | − - ``V4L2_CID_AUDIO_BASS`` | |
| 607 | − | |
| 608 | − - .. row 4 | |
| 609 | − | |
| 610 | − - ``treble`` | |
| 611 | − | |
| 612 | − - ``V4L2_CID_AUDIO_TREBLE`` | |
| 613 | − | |
| 614 | − - .. row 5 | |
| 615 | − | |
| 616 | − - ``balance`` | |
| 617 | − | |
| 618 | − - ``V4L2_CID_AUDIO_BALANCE`` | |
| 392 | + * - struct ``video_audio`` | |
| 393 | + - V4L2 Control ID | |
| 394 | + * - ``volume`` | |
| 395 | + - ``V4L2_CID_AUDIO_VOLUME`` | |
| 396 | + * - ``bass`` | |
| 397 | + - ``V4L2_CID_AUDIO_BASS`` | |
| 398 | + * - ``treble`` | |
| 399 | + - ``V4L2_CID_AUDIO_TREBLE`` | |
| 400 | + * - ``balance`` | |
| 401 | + - ``V4L2_CID_AUDIO_BALANCE`` | |
| 619 | 402 | |
| 620 | 403 | |
| 621 | 404 | To determine which of these controls are supported by a driver V4L |
| @@ -627,7 +410,7 @@ and ``VIDEO_AUDIO_MUTE`` flags where replaced by the boolean · 5 unmodified lines | ||
| 627 | 410 | ``V4L2_CID_AUDIO_MUTE`` control. |
| 628 | 411 | |
| 629 | 412 | All V4L2 controls have a ``step`` attribute replacing the struct |
| 630 | −:c:type:`struct video_audio` ``step`` field. The V4L audio controls | |
| 413 | +``video_audio`` ``step`` field. The V4L audio controls | |
| 631 | 414 | are assumed to range from 0 to 65535 with no particular reset value. The |
| 632 | 415 | V4L2 API permits arbitrary limits and defaults which can be queried with |
| 633 | 416 | the :ref:`VIDIOC_QUERYCTRL` ioctl. For general |
| @@ -640,11 +423,11 @@ Frame Buffer Overlay · 6 unmodified lines | ||
| 640 | 423 | The V4L2 ioctls equivalent to ``VIDIOCGFBUF`` and ``VIDIOCSFBUF`` are |
| 641 | 424 | :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>` and |
| 642 | 425 | :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>`. The ``base`` field of struct |
| 643 | −:c:type:`struct video_buffer` remained unchanged, except V4L2 defines | |
| 426 | +``video_buffer`` remained unchanged, except V4L2 defines | |
| 644 | 427 | a flag to indicate non-destructive overlays instead of a ``NULL`` |
| 645 | 428 | pointer. All other fields moved into the struct |
| 646 | −:ref:`v4l2_pix_format <v4l2-pix-format>` ``fmt`` substructure of | |
| 647 | −struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`. The ``depth`` | |
| 429 | +:c:type:`v4l2_pix_format` ``fmt`` substructure of | |
| 430 | +struct :c:type:`v4l2_framebuffer`. The ``depth`` | |
| 648 | 431 | field was replaced by ``pixelformat``. See :ref:`pixfmt-rgb` for a |
| 649 | 432 | list 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 | ||
| 652 | 435 | uses the general-purpose data format negotiation ioctls |
| 653 | 436 | :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and |
| 654 | 437 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`. They take a pointer to a struct |
| 655 | −:ref:`v4l2_format <v4l2-format>` as argument. Here the ``win`` member | |
| 438 | +:c:type:`v4l2_format` as argument. Here the ``win`` member | |
| 656 | 439 | of the ``fmt`` union is used, a struct |
| 657 | −:ref:`v4l2_window <v4l2-window>`. | |
| 440 | +:c:type:`v4l2_window`. | |
| 658 | 441 | |
| 659 | 442 | The ``x``, ``y``, ``width`` and ``height`` fields of struct |
| 660 | −:c:type:`struct video_window` moved into struct | |
| 661 | −:ref:`v4l2_rect <v4l2-rect>` substructure ``w`` of struct | |
| 662 | −:c:type:`struct v4l2_window`. The ``chromakey``, ``clips``, and | |
| 443 | +``video_window`` moved into struct | |
| 444 | +:c:type:`v4l2_rect` substructure ``w`` of struct | |
| 445 | +:c:type:`v4l2_window`. The ``chromakey``, ``clips``, and | |
| 663 | 446 | ``clipcount`` fields remained unchanged. Struct |
| 664 | −:c:type:`struct video_clip` was renamed to struct | |
| 665 | −:ref:`v4l2_clip <v4l2-clip>`, also containing a struct | |
| 666 | −:c:type:`struct v4l2_rect`, but the semantics are still the same. | |
| 447 | +``video_clip`` was renamed to struct | |
| 448 | +:c:type:`v4l2_clip`, also containing a struct | |
| 449 | +:c:type:`v4l2_rect`, but the semantics are still the same. | |
| 667 | 450 | |
| 668 | 451 | The ``VIDEO_WINDOW_INTERLACE`` flag was dropped. Instead applications |
| 669 | 452 | must set the ``field`` field to ``V4L2_FIELD_ANY`` or |
| 670 | 453 | ``V4L2_FIELD_INTERLACED``. The ``VIDEO_WINDOW_CHROMAKEY`` flag moved |
| 671 | −into struct :ref:`v4l2_framebuffer <v4l2-framebuffer>`, under the new | |
| 454 | +into struct :c:type:`v4l2_framebuffer`, under the new | |
| 672 | 455 | name ``V4L2_FBUF_FLAG_CHROMAKEY``. |
| 673 | 456 | |
| 674 | 457 | In V4L, storing a bitmap pointer in ``clips`` and setting ``clipcount`` |
| 675 | 458 | to ``VIDEO_CLIP_BITMAP`` (-1) requests bitmap clipping, using a fixed |
| 676 | −size bitmap of 1024 × 625 bits. Struct :c:type:`struct v4l2_window` | |
| 459 | +size bitmap of 1024 × 625 bits. Struct :c:type:`v4l2_window` | |
| 677 | 460 | has a separate ``bitmap`` pointer field for this purpose and the bitmap |
| 678 | 461 | size is determined by ``w.width`` and ``w.height``. |
| 679 | 462 | |
| @@ -686,24 +469,24 @@ Cropping · 6 unmodified lines | ||
| 686 | 469 | |
| 687 | 470 | To capture only a subsection of the full picture V4L defines the |
| 688 | 471 | ``VIDIOCGCAPTURE`` and ``VIDIOCSCAPTURE`` ioctls using struct |
| 689 | −:c:type:`struct video_capture`. The equivalent V4L2 ioctls are | |
| 472 | +``video_capture``. The equivalent V4L2 ioctls are | |
| 690 | 473 | :ref:`VIDIOC_G_CROP <VIDIOC_G_CROP>` and |
| 691 | 474 | :ref:`VIDIOC_S_CROP <VIDIOC_G_CROP>` using struct |
| 692 | −:ref:`v4l2_crop <v4l2-crop>`, and the related | |
| 475 | +:c:type:`v4l2_crop`, and the related | |
| 693 | 476 | :ref:`VIDIOC_CROPCAP` ioctl. This is a rather |
| 694 | 477 | complex matter, see :ref:`crop` for details. |
| 695 | 478 | |
| 696 | 479 | The ``x``, ``y``, ``width`` and ``height`` fields moved into struct |
| 697 | −:ref:`v4l2_rect <v4l2-rect>` substructure ``c`` of struct | |
| 698 | −:c:type:`struct v4l2_crop`. The ``decimation`` field was dropped. In | |
| 480 | +:c:type:`v4l2_rect` substructure ``c`` of struct | |
| 481 | +:c:type:`v4l2_crop`. The ``decimation`` field was dropped. In | |
| 699 | 482 | the V4L2 API the scaling factor is implied by the size of the cropping |
| 700 | 483 | rectangle and the size of the captured or overlaid image. |
| 701 | 484 | |
| 702 | 485 | The ``VIDEO_CAPTURE_ODD`` and ``VIDEO_CAPTURE_EVEN`` flags to capture |
| 703 | 486 | only the odd or even field, respectively, were replaced by |
| 704 | 487 | ``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM`` in the field named |
| 705 | −``field`` of struct :ref:`v4l2_pix_format <v4l2-pix-format>` and | |
| 706 | −struct :ref:`v4l2_window <v4l2-window>`. These structures are used to | |
| 488 | +``field`` of struct :c:type:`v4l2_pix_format` and | |
| 489 | +struct :c:type:`v4l2_window`. These structures are used to | |
| 707 | 490 | select a capture or overlay format with the |
| 708 | 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 | 511 | ``VIDIOCSWIN`` ioctls. V4L2 uses the general-purpose data format |
| 729 | 512 | negotiation ioctls :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and |
| 730 | 513 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`. They take a pointer to a struct |
| 731 | −:ref:`v4l2_format <v4l2-format>` as argument, here the struct | |
| 732 | −:ref:`v4l2_pix_format <v4l2-pix-format>` named ``pix`` of its | |
| 514 | +:c:type:`v4l2_format` as argument, here the struct | |
| 515 | +:c:type:`v4l2_pix_format` named ``pix`` of its | |
| 733 | 516 | ``fmt`` union is used. |
| 734 | 517 | |
| 735 | 518 | For more information about the V4L2 read interface see :ref:`rw`. |
| @@ -750,68 +533,49 @@ differences. · 14 unmodified lines | ||
| 750 | 533 | :header-rows: 1 |
| 751 | 534 | :stub-columns: 0 |
| 752 | 535 | |
| 753 | − | |
| 754 | − - .. row 1 | |
| 755 | − | |
| 756 | − - V4L | |
| 757 | − | |
| 758 | − - V4L2 | |
| 759 | − | |
| 760 | − - .. row 2 | |
| 761 | − | |
| 762 | − - | |
| 763 | − - The image format must be selected before buffers are allocated, | |
| 764 | − with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. When no | |
| 765 | − format is selected the driver may use the last, possibly by | |
| 766 | − another application requested format. | |
| 767 | − | |
| 768 | − - .. row 3 | |
| 769 | − | |
| 770 | − - Applications cannot change the number of buffers. The it is built | |
| 771 | − into the driver, unless it has a module option to change the | |
| 772 | − number when the driver module is loaded. | |
| 773 | − | |
| 774 | − - The :ref:`VIDIOC_REQBUFS` ioctl allocates the | |
| 775 | − desired number of buffers, this is a required step in the | |
| 776 | − initialization sequence. | |
| 777 | − | |
| 778 | − - .. row 4 | |
| 779 | − | |
| 780 | − - Drivers map all buffers as one contiguous range of memory. The | |
| 781 | − ``VIDIOCGMBUF`` ioctl is available to query the number of buffers, | |
| 782 | − the offset of each buffer from the start of the virtual file, and | |
| 783 | − the overall amount of memory used, which can be used as arguments | |
| 784 | − for the :ref:`mmap() <func-mmap>` function. | |
| 785 | − | |
| 786 | − - Buffers are individually mapped. The offset and size of each | |
| 787 | − buffer can be determined with the | |
| 788 | − :ref:`VIDIOC_QUERYBUF` ioctl. | |
| 789 | − | |
| 790 | − - .. row 5 | |
| 791 | − | |
| 792 | − - The ``VIDIOCMCAPTURE`` ioctl prepares a buffer for capturing. It | |
| 793 | − also determines the image format for this buffer. The ioctl | |
| 794 | − returns immediately, eventually with an ``EAGAIN`` error code if no | |
| 795 | − video signal had been detected. When the driver supports more than | |
| 796 | − one buffer applications can call the ioctl multiple times and thus | |
| 797 | − have multiple outstanding capture requests. | |
| 798 | − | |
| 799 | − The ``VIDIOCSYNC`` ioctl suspends execution until a particular | |
| 800 | − buffer has been filled. | |
| 801 | − | |
| 802 | − - Drivers maintain an incoming and outgoing queue. | |
| 803 | − :ref:`VIDIOC_QBUF` enqueues any empty buffer into | |
| 804 | − the incoming queue. Filled buffers are dequeued from the outgoing | |
| 805 | − queue with the :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. To wait | |
| 806 | − until filled buffers become available this function, | |
| 807 | − :ref:`select() <func-select>` or :ref:`poll() <func-poll>` can | |
| 808 | − be used. The :ref:`VIDIOC_STREAMON` ioctl | |
| 809 | − must be called once after enqueuing one or more buffers to start | |
| 810 | − capturing. Its counterpart | |
| 811 | − :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` stops capturing and | |
| 812 | − dequeues all buffers from both queues. Applications can query the | |
| 813 | − signal status, if known, with the | |
| 814 | − :ref:`VIDIOC_ENUMINPUT` ioctl. | |
| 536 | + * - V4L | |
| 537 | + - V4L2 | |
| 538 | + * - | |
| 539 | + - The image format must be selected before buffers are allocated, | |
| 540 | + with the :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. When no | |
| 541 | + format is selected the driver may use the last, possibly by | |
| 542 | + another application requested format. | |
| 543 | + * - Applications cannot change the number of buffers. The it is built | |
| 544 | + into the driver, unless it has a module option to change the | |
| 545 | + number when the driver module is loaded. | |
| 546 | + - The :ref:`VIDIOC_REQBUFS` ioctl allocates the | |
| 547 | + desired number of buffers, this is a required step in the | |
| 548 | + initialization sequence. | |
| 549 | + * - Drivers map all buffers as one contiguous range of memory. The | |
| 550 | + ``VIDIOCGMBUF`` ioctl is available to query the number of buffers, | |
| 551 | + the offset of each buffer from the start of the virtual file, and | |
| 552 | + the overall amount of memory used, which can be used as arguments | |
| 553 | + for the :ref:`mmap() <func-mmap>` function. | |
| 554 | + - Buffers are individually mapped. The offset and size of each | |
| 555 | + buffer can be determined with the | |
| 556 | + :ref:`VIDIOC_QUERYBUF` ioctl. | |
| 557 | + * - The ``VIDIOCMCAPTURE`` ioctl prepares a buffer for capturing. It | |
| 558 | + also determines the image format for this buffer. The ioctl | |
| 559 | + returns immediately, eventually with an ``EAGAIN`` error code if no | |
| 560 | + video signal had been detected. When the driver supports more than | |
| 561 | + one buffer applications can call the ioctl multiple times and thus | |
| 562 | + have multiple outstanding capture requests. | |
| 563 | + | |
| 564 | + The ``VIDIOCSYNC`` ioctl suspends execution until a particular | |
| 565 | + buffer has been filled. | |
| 566 | + - Drivers maintain an incoming and outgoing queue. | |
| 567 | + :ref:`VIDIOC_QBUF` enqueues any empty buffer into | |
| 568 | + the incoming queue. Filled buffers are dequeued from the outgoing | |
| 569 | + queue with the :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctl. To wait | |
| 570 | + until filled buffers become available this function, | |
| 571 | + :ref:`select() <func-select>` or :ref:`poll() <func-poll>` can | |
| 572 | + be used. The :ref:`VIDIOC_STREAMON` ioctl | |
| 573 | + must be called once after enqueuing one or more buffers to start | |
| 574 | + capturing. Its counterpart | |
| 575 | + :ref:`VIDIOC_STREAMOFF <VIDIOC_STREAMON>` stops capturing and | |
| 576 | + dequeues all buffers from both queues. Applications can query the | |
| 577 | + signal status, if known, with the | |
| 578 | + :ref:`VIDIOC_ENUMINPUT` ioctl. | |
| 815 | 579 | |
| 816 | 580 | |
| 817 | 581 | For a more in-depth discussion of memory mapping and examples, see |
| @@ -833,68 +597,36 @@ with the following parameters: · 15 unmodified lines | ||
| 833 | 597 | :header-rows: 1 |
| 834 | 598 | :stub-columns: 0 |
| 835 | 599 | |
| 836 | − | |
| 837 | − - .. row 1 | |
| 838 | − | |
| 839 | − - struct :ref:`v4l2_vbi_format <v4l2-vbi-format>` | |
| 840 | − | |
| 841 | − - V4L, BTTV driver | |
| 842 | − | |
| 843 | − - .. row 2 | |
| 844 | − | |
| 845 | − - sampling_rate | |
| 846 | − | |
| 847 | − - 28636363 Hz NTSC (or any other 525-line standard); 35468950 Hz PAL | |
| 848 | − and SECAM (625-line standards) | |
| 849 | − | |
| 850 | − - .. row 3 | |
| 851 | − | |
| 852 | − - offset | |
| 853 | − | |
| 854 | − - ? | |
| 855 | − | |
| 856 | − - .. row 4 | |
| 857 | − | |
| 858 | − - samples_per_line | |
| 859 | − | |
| 860 | − - 2048 | |
| 861 | − | |
| 862 | − - .. row 5 | |
| 863 | − | |
| 864 | − - sample_format | |
| 865 | − | |
| 866 | − - V4L2_PIX_FMT_GREY. The last four bytes (a machine endianness | |
| 867 | − integer) contain a frame counter. | |
| 868 | − | |
| 869 | − - .. row 6 | |
| 870 | − | |
| 871 | − - start[] | |
| 872 | − | |
| 873 | − - 10, 273 NTSC; 22, 335 PAL and SECAM | |
| 874 | − | |
| 875 | − - .. row 7 | |
| 876 | − | |
| 877 | − - count[] | |
| 878 | − | |
| 879 | − - 16, 16 [#f9]_ | |
| 880 | − | |
| 881 | − - .. row 8 | |
| 882 | − | |
| 883 | − - flags | |
| 884 | − | |
| 885 | − - 0 | |
| 600 | + * - struct :c:type:`v4l2_vbi_format` | |
| 601 | + - V4L, BTTV driver | |
| 602 | + * - sampling_rate | |
| 603 | + - 28636363 Hz NTSC (or any other 525-line standard); 35468950 Hz PAL | |
| 604 | + and SECAM (625-line standards) | |
| 605 | + * - offset | |
| 606 | + - ? | |
| 607 | + * - samples_per_line | |
| 608 | + - 2048 | |
| 609 | + * - sample_format | |
| 610 | + - V4L2_PIX_FMT_GREY. The last four bytes (a machine endianness | |
| 611 | + integer) contain a frame counter. | |
| 612 | + * - start[] | |
| 613 | + - 10, 273 NTSC; 22, 335 PAL and SECAM | |
| 614 | + * - count[] | |
| 615 | + - 16, 16 [#f9]_ | |
| 616 | + * - flags | |
| 617 | + - 0 | |
| 886 | 618 | |
| 887 | 619 | |
| 888 | 620 | Undocumented in the V4L specification, in Linux 2.3 the |
| 889 | 621 | ``VIDIOCGVBIFMT`` and ``VIDIOCSVBIFMT`` ioctls using struct |
| 890 | −:c:type:`struct vbi_format` were added to determine the VBI image | |
| 622 | +``vbi_format`` were added to determine the VBI image | |
| 891 | 623 | parameters. These ioctls are only partially compatible with the V4L2 VBI |
| 892 | 624 | interface specified in :ref:`raw-vbi`. |
| 893 | 625 | |
| 894 | 626 | An ``offset`` field does not exist, ``sample_format`` is supposed to be |
| 895 | 627 | ``VIDEO_PALETTE_RAW``, equivalent to ``V4L2_PIX_FMT_GREY``. The |
| 896 | 628 | remaining fields are probably equivalent to struct |
| 897 | −:ref:`v4l2_vbi_format <v4l2-vbi-format>`. | |
| 629 | +:c:type:`v4l2_vbi_format`. | |
| 898 | 630 | |
| 899 | 631 | Apparently only the Zoran (ZR 36120) driver implements these ioctls. The |
| 900 | 632 | semantics differ from those specified for V4L2 in two ways. The |
| @@ -19,7 +19,7 @@ exporting V4L2 buffers as DMABUF file descriptors. · 18 unmodified lines | ||
| 19 | 19 | |
| 20 | 20 | Input and output devices support the streaming I/O method when the |
| 21 | 21 | ``V4L2_CAP_STREAMING`` flag in the ``capabilities`` field of struct |
| 22 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 22 | +:c:type:`v4l2_capability` returned by the | |
| 23 | 23 | :ref:`VIDIOC_QUERYCAP <VIDIOC_QUERYCAP>` ioctl is set. Whether |
| 24 | 24 | importing DMA buffers through DMABUF file descriptors is supported is |
| 25 | 25 | determined by calling the :ref:`VIDIOC_REQBUFS <VIDIOC_REQBUFS>` |
| @@ -31,8 +31,8 @@ DRM). Buffers (planes) are allocated by a driver on behalf of an · 5 unmodified lines | ||
| 31 | 31 | application. Next, these buffers are exported to the application as file |
| 32 | 32 | descriptors using an API which is specific for an allocator driver. Only |
| 33 | 33 | such file descriptor are exchanged. The descriptors and meta-information |
| 34 | −are passed in struct :ref:`v4l2_buffer <v4l2-buffer>` (or in struct | |
| 35 | −:ref:`v4l2_plane <v4l2-plane>` in the multi-planar API case). The | |
| 34 | +are passed in struct :c:type:`v4l2_buffer` (or in struct | |
| 35 | +:c:type:`v4l2_plane` in the multi-planar API case). The | |
| 36 | 36 | driver must be switched into DMABUF I/O mode by calling the |
| 37 | 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 | 151 | both queues and unlocks all buffers as a side effect. Since there is no |
| 152 | 152 | notion of doing anything "now" on a multitasking system, if an |
| 153 | 153 | application needs to synchronize with another event it should examine |
| 154 | − the struct :ref:`v4l2_buffer <v4l2-buffer>` ``timestamp`` of captured or | |
| 154 | + the struct :c:type:`v4l2_buffer` ``timestamp`` of captured or | |
| 155 | 155 | outputted buffers. |
| 156 | 156 | |
| 157 | 157 | Drivers implementing DMABUF importing I/O must support the |
| @@ -49,7 +49,7 @@ control). This is needed since it is often required to atomically change · 48 unmodified lines | ||
| 49 | 49 | several controls at once. |
| 50 | 50 | |
| 51 | 51 | Each of the new ioctls expects a pointer to a struct |
| 52 | −:ref:`v4l2_ext_controls <v4l2-ext-controls>`. This structure | |
| 52 | +:c:type:`v4l2_ext_controls`. This structure | |
| 53 | 53 | contains a pointer to the control array, a count of the number of |
| 54 | 54 | controls in that array and a control class. Control classes are used to |
| 55 | 55 | group similar controls into a single class. For example, control class |
| @@ -65,12 +65,12 @@ It is also possible to use an empty control array (``count`` == 0) to check · 9 unmodified lines | ||
| 65 | 65 | whether the specified control class is supported. |
| 66 | 66 | |
| 67 | 67 | The control array is a struct |
| 68 | −:ref:`v4l2_ext_control <v4l2-ext-control>` array. The | |
| 69 | −:ref:`struct v4l2_ext_control <v4l2-ext-control>` structure is very similar to | |
| 70 | −struct :ref:`v4l2_control <v4l2-control>`, except for the fact that | |
| 68 | +:c:type:`v4l2_ext_control` array. The | |
| 69 | +struct :c:type:`v4l2_ext_control` is very similar to | |
| 70 | +struct :c:type:`v4l2_control`, except for the fact that | |
| 71 | 71 | it also allows for 64-bit values and pointers to be passed. |
| 72 | 72 | |
| 73 | −Since the struct :ref:`v4l2_ext_control <v4l2-ext-control>` supports | |
| 73 | +Since the struct :c:type:`v4l2_ext_control` supports | |
| 74 | 74 | pointers it is now also possible to have controls with compound types |
| 75 | 75 | such as N-dimensional arrays and/or structures. You need to specify the |
| 76 | 76 | ``V4L2_CTRL_FLAG_NEXT_COMPOUND`` when enumerating controls to actually |
| @@ -184,7 +184,9 @@ Codec Control Reference · 107 unmodified lines | ||
| 184 | 184 | Below all controls within the Codec control class are described. First |
| 185 | 185 | the generic controls, then controls specific for certain hardware. |
| 186 | 186 | |
| 187 | −.. note:: These controls are applicable to all codecs and not just MPEG. The | |
| 187 | +.. note:: | |
| 188 | + | |
| 189 | + These controls are applicable to all codecs and not just MPEG. The | |
| 188 | 190 | defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG as the controls |
| 189 | 191 | were originally made for MPEG codecs and later extended to cover all |
| 190 | 192 | encoding formats. |
| @@ -207,7 +209,10 @@ Codec Control IDs · 16 unmodified lines | ||
| 207 | 209 | |
| 208 | 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 | + | |
| 215 | +enum v4l2_mpeg_stream_type - | |
| 211 | 216 | The MPEG-1, -2 or -4 output stream type. One cannot assume anything |
| 212 | 217 | here. Each hardware MPEG encoder tends to support different subsets |
| 213 | 218 | of the available MPEG stream types. This control is specific to |
| @@ -219,42 +224,18 @@ Codec Control IDs · 5 unmodified lines | ||
| 219 | 224 | :header-rows: 0 |
| 220 | 225 | :stub-columns: 0 |
| 221 | 226 | |
| 222 | − | |
| 223 | − - .. row 1 | |
| 224 | − | |
| 225 | − - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS`` | |
| 226 | − | |
| 227 | − - MPEG-2 program stream | |
| 228 | − | |
| 229 | − - .. row 2 | |
| 230 | − | |
| 231 | − - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS`` | |
| 232 | − | |
| 233 | − - MPEG-2 transport stream | |
| 234 | − | |
| 235 | − - .. row 3 | |
| 236 | − | |
| 237 | − - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS`` | |
| 238 | − | |
| 239 | − - MPEG-1 system stream | |
| 240 | − | |
| 241 | − - .. row 4 | |
| 242 | − | |
| 243 | − - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD`` | |
| 244 | − | |
| 245 | − - MPEG-2 DVD-compatible stream | |
| 246 | − | |
| 247 | − - .. row 5 | |
| 248 | − | |
| 249 | − - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD`` | |
| 250 | − | |
| 251 | − - MPEG-1 VCD-compatible stream | |
| 252 | − | |
| 253 | − - .. row 6 | |
| 254 | − | |
| 255 | − - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD`` | |
| 256 | − | |
| 257 | − - MPEG-2 SVCD-compatible stream | |
| 227 | + * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS`` | |
| 228 | + - MPEG-2 program stream | |
| 229 | + * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS`` | |
| 230 | + - MPEG-2 transport stream | |
| 231 | + * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS`` | |
| 232 | + - MPEG-1 system stream | |
| 233 | + * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD`` | |
| 234 | + - MPEG-2 DVD-compatible stream | |
| 235 | + * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD`` | |
| 236 | + - MPEG-1 VCD-compatible stream | |
| 237 | + * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD`` | |
| 238 | + - MPEG-2 SVCD-compatible stream | |
| 258 | 239 | |
| 259 | 240 | |
| 260 | 241 | |
| @@ -280,7 +261,10 @@ Codec Control IDs · 19 unmodified lines | ||
| 280 | 261 | |
| 281 | 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 | + | |
| 267 | +enum v4l2_mpeg_stream_vbi_fmt - | |
| 284 | 268 | Some cards can embed VBI data (e. g. Closed Caption, Teletext) into |
| 285 | 269 | the MPEG stream. This control selects whether VBI data should be |
| 286 | 270 | 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 | 278 | .. flat-table:: |
| 293 | 279 | :header-rows: 0 |
| 294 | 280 | :stub-columns: 0 |
| 295 | 281 | |
| 296 | − | |
| 297 | − - .. row 1 | |
| 298 | − | |
| 299 | − - ``V4L2_MPEG_STREAM_VBI_FMT_NONE`` | |
| 300 | − | |
| 301 | − - No VBI in the MPEG stream | |
| 302 | − | |
| 303 | − - .. row 2 | |
| 304 | − | |
| 305 | − - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV`` | |
| 306 | − | |
| 307 | − - VBI in private packets, IVTV format (documented in the kernel | |
| 308 | − sources in the file | |
| 309 | − ``Documentation/video4linux/cx2341x/README.vbi``) | |
| 282 | + * - ``V4L2_MPEG_STREAM_VBI_FMT_NONE`` | |
| 283 | + - No VBI in the MPEG stream | |
| 284 | + * - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV`` | |
| 285 | + - VBI in private packets, IVTV format (documented in the kernel | |
| 286 | + sources in the file | |
| 287 | + ``Documentation/video4linux/cx2341x/README.vbi``) | |
| 310 | 288 | |
| 311 | 289 | |
| 312 | 290 | |
| 313 | 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 | + | |
| 296 | +enum v4l2_mpeg_audio_sampling_freq - | |
| 316 | 297 | MPEG Audio sampling frequency. Possible values are: |
| 317 | 298 | |
| 318 | 299 | |
| @@ -321,30 +302,21 @@ Codec Control IDs · 2 unmodified lines | ||
| 321 | 302 | :header-rows: 0 |
| 322 | 303 | :stub-columns: 0 |
| 323 | 304 | |
| 324 | − | |
| 325 | − - .. row 1 | |
| 326 | − | |
| 327 | − - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100`` | |
| 328 | − | |
| 329 | − - 44.1 kHz | |
| 330 | − | |
| 331 | − - .. row 2 | |
| 332 | − | |
| 333 | − - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000`` | |
| 334 | − | |
| 335 | − - 48 kHz | |
| 336 | − | |
| 337 | − - .. row 3 | |
| 338 | − | |
| 339 | − - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000`` | |
| 340 | − | |
| 341 | − - 32 kHz | |
| 305 | + * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100`` | |
| 306 | + - 44.1 kHz | |
| 307 | + * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000`` | |
| 308 | + - 48 kHz | |
| 309 | + * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000`` | |
| 310 | + - 32 kHz | |
| 342 | 311 | |
| 343 | 312 | |
| 344 | 313 | |
| 345 | 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 | + | |
| 319 | +enum v4l2_mpeg_audio_encoding - | |
| 348 | 320 | MPEG Audio encoding. This control is specific to multiplexed MPEG |
| 349 | 321 | streams. Possible values are: |
| 350 | 322 | |
| @@ -354,42 +326,25 @@ Codec Control IDs · 3 unmodified lines | ||
| 354 | 326 | :header-rows: 0 |
| 355 | 327 | :stub-columns: 0 |
| 356 | 328 | |
| 357 | − | |
| 358 | − - .. row 1 | |
| 359 | − | |
| 360 | − - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1`` | |
| 361 | − | |
| 362 | − - MPEG-1/2 Layer I encoding | |
| 363 | − | |
| 364 | − - .. row 2 | |
| 365 | − | |
| 366 | − - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2`` | |
| 367 | − | |
| 368 | − - MPEG-1/2 Layer II encoding | |
| 369 | − | |
| 370 | − - .. row 3 | |
| 371 | − | |
| 372 | − - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3`` | |
| 373 | − | |
| 374 | − - MPEG-1/2 Layer III encoding | |
| 375 | − | |
| 376 | − - .. row 4 | |
| 377 | − | |
| 378 | − - ``V4L2_MPEG_AUDIO_ENCODING_AAC`` | |
| 379 | − | |
| 380 | − - MPEG-2/4 AAC (Advanced Audio Coding) | |
| 381 | − | |
| 382 | − - .. row 5 | |
| 383 | − | |
| 384 | − - ``V4L2_MPEG_AUDIO_ENCODING_AC3`` | |
| 385 | − | |
| 386 | − - AC-3 aka ATSC A/52 encoding | |
| 329 | + * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1`` | |
| 330 | + - MPEG-1/2 Layer I encoding | |
| 331 | + * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2`` | |
| 332 | + - MPEG-1/2 Layer II encoding | |
| 333 | + * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3`` | |
| 334 | + - MPEG-1/2 Layer III encoding | |
| 335 | + * - ``V4L2_MPEG_AUDIO_ENCODING_AAC`` | |
| 336 | + - MPEG-2/4 AAC (Advanced Audio Coding) | |
| 337 | + * - ``V4L2_MPEG_AUDIO_ENCODING_AC3`` | |
| 338 | + - AC-3 aka ATSC A/52 encoding | |
| 387 | 339 | |
| 388 | 340 | |
| 389 | 341 | |
| 390 | 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 | + | |
| 347 | +enum v4l2_mpeg_audio_l1_bitrate - | |
| 393 | 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 | 353 | :header-rows: 0 |
| 399 | 354 | :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`` | |
| 423 | − | |
| 424 | − - 128 kbit/s | |
| 425 | − | |
| 426 | − - .. row 5 | |
| 427 | − | |
| 428 | − - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K`` | |
| 429 | − | |
| 430 | − - 160 kbit/s | |
| 431 | − | |
| 432 | − - .. row 6 | |
| 433 | − | |
| 434 | − - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K`` | |
| 435 | − | |
| 436 | − - 192 kbit/s | |
| 437 | − | |
| 438 | − - .. row 7 | |
| 439 | − | |
| 440 | − - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K`` | |
| 441 | − | |
| 442 | − - 224 kbit/s | |
| 443 | − | |
| 444 | − - .. row 8 | |
| 445 | − | |
| 446 | − - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K`` | |
| 447 | − | |
| 448 | − - 256 kbit/s | |
| 449 | − | |
| 450 | − - .. row 9 | |
| 451 | − | |
| 452 | − - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K`` | |
| 453 | − | |
| 454 | − - 288 kbit/s | |
| 455 | − | |
| 456 | − - .. row 10 | |
| 457 | − | |
| 458 | − - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K`` | |
| 459 | − | |
| 460 | − - 320 kbit/s | |
| 461 | − | |
| 462 | − - .. row 11 | |
| 463 | − | |
| 464 | − - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K`` | |
| 465 | − | |
| 466 | − - 352 kbit/s | |
| 467 | − | |
| 468 | − - .. row 12 | |
| 469 | − | |
| 470 | − - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K`` | |
| 387 | +.. _v4l2-mpeg-audio-l2-bitrate: | |
| 471 | 388 | |
| 472 | − - 384 kbit/s | |
| 389 | +``V4L2_CID_MPEG_AUDIO_L2_BITRATE`` | |
| 390 | + (enum) | |
| 473 | 391 | |
| 474 | − - .. row 13 | |
| 392 | +enum 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 14 | |
| 397 | +.. 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)`` | |
| 491 | − MPEG-1/2 Layer II bitrate. Possible values are: | |
| 437 | +enum v4l2_mpeg_audio_l3_bitrate - | |
| 438 | + MPEG-1/2 Layer III bitrate. Possible values are: | |
| 492 | 439 | |
| 493 | 440 | |
| 494 | 441 | |
| @@ -496,97 +443,177 @@ Codec Control IDs · 1 unmodified line | ||
| 496 | 443 | :header-rows: 0 |
| 497 | 444 | :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/s | |
| 511 | − | |
| 512 | − - .. row 3 | |
| 477 | +``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)`` | |
| 478 | + AAC bitrate in bits per second. | |
| 513 | 479 | |
| 514 | − - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K`` | |
| 480 | +.. _v4l2-mpeg-audio-ac3-bitrate: | |
| 515 | 481 | |
| 516 | − - 56 kbit/s | |
| 482 | +``V4L2_CID_MPEG_AUDIO_AC3_BITRATE`` | |
| 483 | + (enum) | |
| 517 | 484 | |
| 518 | − - .. row 4 | |
| 485 | +enum 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 5 | |
| 490 | +.. 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/s | |
| 537 | +``V4L2_CID_MPEG_AUDIO_MODE`` | |
| 538 | + (enum) | |
| 535 | 539 | |
| 536 | − - .. row 7 | |
| 540 | +enum 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 8 | |
| 545 | +.. 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/s | |
| 562 | +``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION`` | |
| 563 | + (enum) | |
| 553 | 564 | |
| 554 | − - .. row 10 | |
| 565 | +enum v4l2_mpeg_audio_mode_extension - | |
| 566 | + Joint Stereo audio mode extension. In Layer I and II they indicate | |
| 567 | + which subbands are in intensity stereo. All other subbands are coded | |
| 568 | + in stereo. Layer III is not (yet) supported. Possible values are: | |
| 555 | 569 | |
| 556 | − - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K`` | |
| 557 | 570 | |
| 558 | − - 192 kbit/s | |
| 559 | 571 | |
| 560 | − - .. row 11 | |
| 572 | +.. 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/s | |
| 589 | +``V4L2_CID_MPEG_AUDIO_EMPHASIS`` | |
| 590 | + (enum) | |
| 571 | 591 | |
| 572 | − - .. row 13 | |
| 592 | +enum 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 14 | |
| 597 | +.. 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)`` | |
| 589 | − MPEG-1/2 Layer III bitrate. Possible values are: | |
| 615 | +enum v4l2_mpeg_audio_crc - | |
| 616 | + CRC method. Possible values are: | |
| 590 | 617 | |
| 591 | 618 | |
| 592 | 619 | |
| @@ -594,100 +621,123 @@ Codec Control IDs · 1 unmodified line | ||
| 594 | 621 | :header-rows: 0 |
| 595 | 622 | :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/s | |
| 609 | − | |
| 610 | − - .. row 3 | |
| 611 | − | |
| 612 | − - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K`` | |
| 613 | − | |
| 614 | − - 48 kbit/s | |
| 631 | +``V4L2_CID_MPEG_AUDIO_MUTE (boolean)`` | |
| 632 | + Mutes the audio when capturing. This is not done by muting audio | |
| 633 | + hardware, which can still produce a slight hiss, but in the encoder | |
| 634 | + itself, guaranteeing a fixed and reproducible audio bitstream. 0 = | |
| 635 | + unmuted, 1 = muted. | |
| 615 | 636 | |
| 616 | − - .. row 4 | |
| 637 | +.. _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/s | |
| 642 | +enum 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/s | |
| 648 | +.. tabularcolumns:: |p{9.0cm}|p{8.5cm}| | |
| 627 | 649 | |
| 628 | − - .. row 6 | |
| 650 | +.. 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/s | |
| 671 | +``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK`` | |
| 672 | + (enum) | |
| 639 | 673 | |
| 640 | − - .. row 8 | |
| 674 | +enum 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/s | |
| 679 | +``V4L2_CID_MPEG_VIDEO_ENCODING`` | |
| 680 | + (enum) | |
| 645 | 681 | |
| 646 | − - .. row 9 | |
| 682 | +enum v4l2_mpeg_video_encoding - | |
| 683 | + MPEG Video encoding method. This control is specific to multiplexed | |
| 684 | + MPEG streams. Possible values are: | |
| 647 | 685 | |
| 648 | − - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K`` | |
| 649 | 686 | |
| 650 | − - 128 kbit/s | |
| 651 | 687 | |
| 652 | − - .. row 10 | |
| 688 | +.. 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/s | |
| 703 | +``V4L2_CID_MPEG_VIDEO_ASPECT`` | |
| 704 | + (enum) | |
| 663 | 705 | |
| 664 | − - .. row 12 | |
| 706 | +enum 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 13 | |
| 711 | +.. 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/s | |
| 725 | +``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)`` | |
| 685 | − AAC bitrate in bits per second. | |
| 734 | +.. _v4l2-mpeg-video-bitrate-mode: | |
| 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)`` | |
| 690 | − AC-3 bitrate. Possible values are: | |
| 739 | +enum v4l2_mpeg_video_bitrate_mode - | |
| 740 | + Video bitrate mode. Possible values are: | |
| 691 | 741 | |
| 692 | 742 | |
| 693 | 743 | |
| @@ -695,127 +745,230 @@ Codec Control IDs · 1 unmodified line | ||
| 695 | 745 | :header-rows: 0 |
| 696 | 746 | :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/s | |
| 710 | − | |
| 711 | − - .. row 3 | |
| 712 | − | |
| 713 | − - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K`` | |
| 714 | − | |
| 715 | − - 48 kbit/s | |
| 716 | − | |
| 717 | − - .. row 4 | |
| 718 | − | |
| 719 | − - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K`` | |
| 720 | − | |
| 721 | − - 56 kbit/s | |
| 722 | − | |
| 723 | − - .. row 5 | |
| 755 | +``V4L2_CID_MPEG_VIDEO_BITRATE (integer)`` | |
| 756 | + Video bitrate in bits per second. | |
| 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/s | |
| 763 | +``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)`` | |
| 764 | + For every captured frame, skip this many subsequent frames (default | |
| 765 | + 0). | |
| 728 | 766 | |
| 729 | − - .. row 6 | |
| 767 | +``V4L2_CID_MPEG_VIDEO_MUTE (boolean)`` | |
| 768 | + "Mutes" the video to a fixed color when capturing. This is useful | |
| 769 | + for testing, to produce a fixed video bitstream. 0 = unmuted, 1 = | |
| 770 | + muted. | |
| 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/s | |
| 782 | + * - Bit 0:7 | |
| 783 | + - V chrominance information | |
| 784 | + * - Bit 8:15 | |
| 785 | + - U chrominance information | |
| 786 | + * - Bit 16:23 | |
| 787 | + - Y luminance information | |
| 788 | + * - Bit 24:31 | |
| 789 | + - Must be zero. | |
| 740 | 790 | |
| 741 | − - .. row 8 | |
| 742 | 791 | |
| 743 | − - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K`` | |
| 744 | 792 | |
| 745 | − - 112 kbit/s | |
| 793 | +.. _v4l2-mpeg-video-dec-pts: | |
| 746 | 794 | |
| 747 | − - .. row 9 | |
| 795 | +``V4L2_CID_MPEG_VIDEO_DEC_PTS (integer64)`` | |
| 796 | + This read-only control returns the 33-bit video Presentation Time | |
| 797 | + Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of the | |
| 798 | + currently displayed frame. This is the same PTS as is used in | |
| 799 | + :ref:`VIDIOC_DECODER_CMD`. | |
| 748 | 800 | |
| 749 | − - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K`` | |
| 801 | +.. _v4l2-mpeg-video-dec-frame: | |
| 750 | 802 | |
| 751 | − - 128 kbit/s | |
| 803 | +``V4L2_CID_MPEG_VIDEO_DEC_FRAME (integer64)`` | |
| 804 | + This read-only control returns the frame counter of the frame that | |
| 805 | + is currently displayed (decoded). This value is reset to 0 whenever | |
| 806 | + the decoder is started. | |
| 752 | 807 | |
| 753 | − - .. row 10 | |
| 808 | +``V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (boolean)`` | |
| 809 | + If enabled the decoder expects to receive a single slice per buffer, | |
| 810 | + otherwise the decoder expects a single frame in per buffer. | |
| 811 | + Applicable to the decoder, all codecs. | |
| 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/s | |
| 817 | +.. _v4l2-mpeg-video-h264-vui-sar-idc: | |
| 758 | 818 | |
| 759 | − - .. row 11 | |
| 819 | +``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC`` | |
| 820 | + (enum) | |
| 760 | 821 | |
| 761 | − - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K`` | |
| 822 | +enum v4l2_mpeg_video_h264_vui_sar_idc - | |
| 823 | + VUI sample aspect ratio indicator for H.264 encoding. The value is | |
| 824 | + defined in the table E-1 in the standard. Applicable to the H264 | |
| 825 | + encoder. | |
| 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/s | |
| 833 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED`` | |
| 834 | + - Unspecified | |
| 835 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1`` | |
| 836 | + - 1x1 | |
| 837 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11`` | |
| 838 | + - 12x11 | |
| 839 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11`` | |
| 840 | + - 10x11 | |
| 841 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11`` | |
| 842 | + - 16x11 | |
| 843 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33`` | |
| 844 | + - 40x33 | |
| 845 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11`` | |
| 846 | + - 24x11 | |
| 847 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11`` | |
| 848 | + - 20x11 | |
| 849 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11`` | |
| 850 | + - 32x11 | |
| 851 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33`` | |
| 852 | + - 80x33 | |
| 853 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11`` | |
| 854 | + - 18x11 | |
| 855 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11`` | |
| 856 | + - 15x11 | |
| 857 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33`` | |
| 858 | + - 64x33 | |
| 859 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99`` | |
| 860 | + - 160x99 | |
| 861 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3`` | |
| 862 | + - 4x3 | |
| 863 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2`` | |
| 864 | + - 3x2 | |
| 865 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1`` | |
| 866 | + - 2x1 | |
| 867 | + * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED`` | |
| 868 | + - Extended SAR | |
| 770 | 869 | |
| 771 | − - .. row 13 | |
| 772 | 870 | |
| 773 | − - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K`` | |
| 774 | 871 | |
| 775 | − - 256 kbit/s | |
| 872 | +``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (integer)`` | |
| 873 | + Extended sample aspect ratio width for H.264 VUI encoding. | |
| 874 | + Applicable to the H264 encoder. | |
| 776 | 875 | |
| 777 | − - .. row 14 | |
| 876 | +``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (integer)`` | |
| 877 | + Extended sample aspect ratio height for H.264 VUI encoding. | |
| 878 | + Applicable to the H264 encoder. | |
| 778 | 879 | |
| 779 | − - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K`` | |
| 880 | +.. _v4l2-mpeg-video-h264-level: | |
| 780 | 881 | |
| 781 | − - 320 kbit/s | |
| 882 | +``V4L2_CID_MPEG_VIDEO_H264_LEVEL`` | |
| 883 | + (enum) | |
| 782 | 884 | |
| 783 | − - .. row 15 | |
| 885 | +enum v4l2_mpeg_video_h264_level - | |
| 886 | + The level information for the H264 video elementary stream. | |
| 887 | + Applicable to the H264 encoder. Possible values are: | |
| 784 | 888 | |
| 785 | − - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K`` | |
| 786 | 889 | |
| 787 | − - 384 kbit/s | |
| 788 | 890 | |
| 789 | − - .. row 16 | |
| 891 | +.. 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/s | |
| 932 | +``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL`` | |
| 933 | + (enum) | |
| 800 | 934 | |
| 801 | − - .. row 18 | |
| 935 | +enum v4l2_mpeg_video_mpeg4_level - | |
| 936 | + The level information for the MPEG4 elementary stream. Applicable to | |
| 937 | + the MPEG4 encoder. Possible values are: | |
| 802 | 938 | |
| 803 | − - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K`` | |
| 804 | 939 | |
| 805 | − - 576 kbit/s | |
| 806 | 940 | |
| 807 | − - .. row 19 | |
| 941 | +.. 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)`` | |
| 818 | − MPEG Audio mode. Possible values are: | |
| 969 | +enum v4l2_mpeg_video_h264_profile - | |
| 970 | + The profile information for H264. Applicable to the H264 encoder. | |
| 971 | + Possible values are: | |
| 819 | 972 | |
| 820 | 973 | |
| 821 | 974 | |
| @@ -823,837 +976,68 @@ Codec Control IDs · 1 unmodified line | ||
| 823 | 976 | :header-rows: 0 |
| 824 | 977 | :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`` | |
| 836 | − | |
| 837 | − - Joint Stereo | |
| 838 | − | |
| 839 | − - .. row 3 | |
| 840 | − | |
| 841 | − - ``V4L2_MPEG_AUDIO_MODE_DUAL`` | |
| 1016 | +.. _v4l2-mpeg-video-mpeg4-profile: | |
| 842 | 1017 | |
| 843 | − - Bilingual | |
| 1018 | +``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE`` | |
| 1019 | + (enum) | |
| 844 | 1020 | |
| 845 | − - .. row 4 | |
| 846 | − | |
| 847 | − - ``V4L2_MPEG_AUDIO_MODE_MONO`` | |
| 848 | − | |
| 849 | − - Mono | |
| 850 | − | |
| 851 | − | |
| 852 | − | |
| 853 | −.. _v4l2-mpeg-audio-mode-extension: | |
| 854 | − | |
| 855 | −``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (enum v4l2_mpeg_audio_mode_extension)`` | |
| 856 | − Joint Stereo audio mode extension. In Layer I and II they indicate | |
| 857 | − which subbands are in intensity stereo. All other subbands are coded | |
| 858 | − in stereo. Layer III is not (yet) supported. Possible values are: | |
| 859 | − | |
| 860 | − | |
| 861 | − | |
| 862 | −.. flat-table:: | |
| 863 | − :header-rows: 0 | |
| 864 | − :stub-columns: 0 | |
| 865 | − | |
| 866 | − | |
| 867 | − - .. row 1 | |
| 868 | − | |
| 869 | − - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4`` | |
| 870 | − | |
| 871 | − - Subbands 4-31 in intensity stereo | |
| 872 | − | |
| 873 | − - .. row 2 | |
| 874 | − | |
| 875 | − - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8`` | |
| 876 | − | |
| 877 | − - Subbands 8-31 in intensity stereo | |
| 878 | − | |
| 879 | − - .. row 3 | |
| 880 | − | |
| 881 | − - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12`` | |
| 882 | − | |
| 883 | − - Subbands 12-31 in intensity stereo | |
| 884 | − | |
| 885 | − - .. row 4 | |
| 886 | − | |
| 887 | − - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16`` | |
| 888 | − | |
| 889 | − - Subbands 16-31 in intensity stereo | |
| 890 | − | |
| 891 | − | |
| 892 | − | |
| 893 | −.. _v4l2-mpeg-audio-emphasis: | |
| 894 | − | |
| 895 | −``V4L2_CID_MPEG_AUDIO_EMPHASIS (enum v4l2_mpeg_audio_emphasis)`` | |
| 896 | − Audio Emphasis. Possible values are: | |
| 897 | − | |
| 898 | − | |
| 899 | − | |
| 900 | −.. flat-table:: | |
| 901 | − :header-rows: 0 | |
| 902 | − :stub-columns: 0 | |
| 903 | − | |
| 904 | − | |
| 905 | − - .. row 1 | |
| 906 | − | |
| 907 | − - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE`` | |
| 908 | − | |
| 909 | − - None | |
| 910 | − | |
| 911 | − - .. row 2 | |
| 912 | − | |
| 913 | − - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS`` | |
| 914 | − | |
| 915 | − - 50/15 microsecond emphasis | |
| 916 | − | |
| 917 | − - .. row 3 | |
| 918 | − | |
| 919 | − - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17`` | |
| 920 | − | |
| 921 | − - CCITT J.17 | |
| 922 | − | |
| 923 | − | |
| 924 | − | |
| 925 | −.. _v4l2-mpeg-audio-crc: | |
| 926 | − | |
| 927 | −``V4L2_CID_MPEG_AUDIO_CRC (enum v4l2_mpeg_audio_crc)`` | |
| 928 | − CRC method. Possible values are: | |
| 929 | − | |
| 930 | − | |
| 931 | − | |
| 932 | −.. flat-table:: | |
| 933 | − :header-rows: 0 | |
| 934 | − :stub-columns: 0 | |
| 935 | − | |
| 936 | − | |
| 937 | − - .. row 1 | |
| 938 | − | |
| 939 | − - ``V4L2_MPEG_AUDIO_CRC_NONE`` | |
| 940 | − | |
| 941 | − - None | |
| 942 | − | |
| 943 | − - .. row 2 | |
| 944 | − | |
| 945 | − - ``V4L2_MPEG_AUDIO_CRC_CRC16`` | |
| 946 | − | |
| 947 | − - 16 bit parity check | |
| 948 | − | |
| 949 | − | |
| 950 | − | |
| 951 | −``V4L2_CID_MPEG_AUDIO_MUTE (boolean)`` | |
| 952 | − Mutes the audio when capturing. This is not done by muting audio | |
| 953 | − hardware, which can still produce a slight hiss, but in the encoder | |
| 954 | − itself, guaranteeing a fixed and reproducible audio bitstream. 0 = | |
| 955 | − unmuted, 1 = muted. | |
| 956 | − | |
| 957 | −.. _v4l2-mpeg-audio-dec-playback: | |
| 958 | − | |
| 959 | −``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK (enum v4l2_mpeg_audio_dec_playback)`` | |
| 960 | − Determines how monolingual audio should be played back. Possible | |
| 961 | − values are: | |
| 962 | − | |
| 963 | − | |
| 964 | − | |
| 965 | −.. flat-table:: | |
| 966 | − :header-rows: 0 | |
| 967 | − :stub-columns: 0 | |
| 968 | − | |
| 969 | − | |
| 970 | − - .. row 1 | |
| 971 | − | |
| 972 | − - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO`` | |
| 973 | − | |
| 974 | − - Automatically determines the best playback mode. | |
| 975 | − | |
| 976 | − - .. row 2 | |
| 977 | − | |
| 978 | − - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO`` | |
| 979 | − | |
| 980 | − - Stereo playback. | |
| 981 | − | |
| 982 | − - .. row 3 | |
| 983 | − | |
| 984 | − - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT`` | |
| 985 | − | |
| 986 | − - Left channel playback. | |
| 987 | − | |
| 988 | − - .. row 4 | |
| 989 | − | |
| 990 | − - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT`` | |
| 991 | − | |
| 992 | − - Right channel playback. | |
| 993 | − | |
| 994 | − - .. row 5 | |
| 995 | − | |
| 996 | − - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO`` | |
| 997 | − | |
| 998 | − - Mono playback. | |
| 999 | − | |
| 1000 | − - .. row 6 | |
| 1001 | − | |
| 1002 | − - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO`` | |
| 1003 | − | |
| 1004 | − - Stereo playback with swapped left and right channels. | |
| 1005 | − | |
| 1006 | − | |
| 1007 | − | |
| 1008 | −.. _v4l2-mpeg-audio-dec-multilingual-playback: | |
| 1009 | − | |
| 1010 | −``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (enum v4l2_mpeg_audio_dec_playback)`` | |
| 1011 | − Determines how multilingual audio should be played back. | |
| 1012 | − | |
| 1013 | −.. _v4l2-mpeg-video-encoding: | |
| 1014 | − | |
| 1015 | −``V4L2_CID_MPEG_VIDEO_ENCODING (enum v4l2_mpeg_video_encoding)`` | |
| 1016 | − MPEG Video encoding method. This control is specific to multiplexed | |
| 1017 | − MPEG streams. Possible values are: | |
| 1018 | − | |
| 1019 | − | |
| 1020 | − | |
| 1021 | −.. flat-table:: | |
| 1022 | − :header-rows: 0 | |
| 1023 | − :stub-columns: 0 | |
| 1024 | − | |
| 1025 | − | |
| 1026 | − - .. row 1 | |
| 1027 | − | |
| 1028 | − - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1`` | |
| 1029 | − | |
| 1030 | − - MPEG-1 Video encoding | |
| 1031 | − | |
| 1032 | − - .. row 2 | |
| 1033 | − | |
| 1034 | − - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2`` | |
| 1035 | − | |
| 1036 | − - MPEG-2 Video encoding | |
| 1037 | − | |
| 1038 | − - .. row 3 | |
| 1039 | − | |
| 1040 | − - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC`` | |
| 1041 | − | |
| 1042 | − - MPEG-4 AVC (H.264) Video encoding | |
| 1043 | − | |
| 1044 | − | |
| 1045 | − | |
| 1046 | −.. _v4l2-mpeg-video-aspect: | |
| 1047 | − | |
| 1048 | −``V4L2_CID_MPEG_VIDEO_ASPECT (enum v4l2_mpeg_video_aspect)`` | |
| 1049 | − Video aspect. Possible values are: | |
| 1050 | − | |
| 1051 | − | |
| 1052 | − | |
| 1053 | −.. flat-table:: | |
| 1054 | − :header-rows: 0 | |
| 1055 | − :stub-columns: 0 | |
| 1056 | − | |
| 1057 | − | |
| 1058 | − - .. row 1 | |
| 1059 | − | |
| 1060 | − - ``V4L2_MPEG_VIDEO_ASPECT_1x1`` | |
| 1061 | − | |
| 1062 | − - .. row 2 | |
| 1063 | − | |
| 1064 | − - ``V4L2_MPEG_VIDEO_ASPECT_4x3`` | |
| 1065 | − | |
| 1066 | − - .. row 3 | |
| 1067 | − | |
| 1068 | − - ``V4L2_MPEG_VIDEO_ASPECT_16x9`` | |
| 1069 | − | |
| 1070 | − - .. row 4 | |
| 1071 | − | |
| 1072 | − - ``V4L2_MPEG_VIDEO_ASPECT_221x100`` | |
| 1073 | − | |
| 1074 | − | |
| 1075 | − | |
| 1076 | −``V4L2_CID_MPEG_VIDEO_B_FRAMES (integer)`` | |
| 1077 | − Number of B-Frames (default 2) | |
| 1078 | − | |
| 1079 | −``V4L2_CID_MPEG_VIDEO_GOP_SIZE (integer)`` | |
| 1080 | − GOP size (default 12) | |
| 1081 | − | |
| 1082 | −``V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (boolean)`` | |
| 1083 | − GOP closure (default 1) | |
| 1084 | − | |
| 1085 | −``V4L2_CID_MPEG_VIDEO_PULLDOWN (boolean)`` | |
| 1086 | − Enable 3:2 pulldown (default 0) | |
| 1087 | − | |
| 1088 | −.. _v4l2-mpeg-video-bitrate-mode: | |
| 1089 | − | |
| 1090 | −``V4L2_CID_MPEG_VIDEO_BITRATE_MODE (enum v4l2_mpeg_video_bitrate_mode)`` | |
| 1091 | − Video bitrate mode. Possible values are: | |
| 1092 | − | |
| 1093 | − | |
| 1094 | − | |
| 1095 | −.. flat-table:: | |
| 1096 | − :header-rows: 0 | |
| 1097 | − :stub-columns: 0 | |
| 1098 | − | |
| 1099 | − | |
| 1100 | − - .. row 1 | |
| 1101 | − | |
| 1102 | − - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR`` | |
| 1103 | − | |
| 1104 | − - Variable bitrate | |
| 1105 | − | |
| 1106 | − - .. row 2 | |
| 1107 | − | |
| 1108 | − - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR`` | |
| 1109 | − | |
| 1110 | − - Constant bitrate | |
| 1111 | − | |
| 1112 | − | |
| 1113 | − | |
| 1114 | −``V4L2_CID_MPEG_VIDEO_BITRATE (integer)`` | |
| 1115 | − Video bitrate in bits per second. | |
| 1116 | − | |
| 1117 | −``V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (integer)`` | |
| 1118 | − Peak video bitrate in bits per second. Must be larger or equal to | |
| 1119 | − the average video bitrate. It is ignored if the video bitrate mode | |
| 1120 | − is set to constant bitrate. | |
| 1121 | − | |
| 1122 | −``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)`` | |
| 1123 | − For every captured frame, skip this many subsequent frames (default | |
| 1124 | − 0). | |
| 1125 | − | |
| 1126 | −``V4L2_CID_MPEG_VIDEO_MUTE (boolean)`` | |
| 1127 | − "Mutes" the video to a fixed color when capturing. This is useful | |
| 1128 | − for testing, to produce a fixed video bitstream. 0 = unmuted, 1 = | |
| 1129 | − muted. | |
| 1130 | − | |
| 1131 | −``V4L2_CID_MPEG_VIDEO_MUTE_YUV (integer)`` | |
| 1132 | − Sets the "mute" color of the video. The supplied 32-bit integer is | |
| 1133 | − interpreted as follows (bit 0 = least significant bit): | |
| 1134 | − | |
| 1135 | − | |
| 1136 | − | |
| 1137 | −.. flat-table:: | |
| 1138 | − :header-rows: 0 | |
| 1139 | − :stub-columns: 0 | |
| 1140 | − | |
| 1141 | − | |
| 1142 | − - .. row 1 | |
| 1143 | − | |
| 1144 | − - Bit 0:7 | |
| 1145 | − | |
| 1146 | − - V chrominance information | |
| 1147 | − | |
| 1148 | − - .. row 2 | |
| 1149 | − | |
| 1150 | − - Bit 8:15 | |
| 1151 | − | |
| 1152 | − - U chrominance information | |
| 1153 | − | |
| 1154 | − - .. row 3 | |
| 1155 | − | |
| 1156 | − - Bit 16:23 | |
| 1157 | − | |
| 1158 | − - Y luminance information | |
| 1159 | − | |
| 1160 | − - .. row 4 | |
| 1161 | − | |
| 1162 | − - Bit 24:31 | |
| 1163 | − | |
| 1164 | − - Must be zero. | |
| 1165 | − | |
| 1166 | − | |
| 1167 | − | |
| 1168 | −.. _v4l2-mpeg-video-dec-pts: | |
| 1169 | − | |
| 1170 | −``V4L2_CID_MPEG_VIDEO_DEC_PTS (integer64)`` | |
| 1171 | − This read-only control returns the 33-bit video Presentation Time | |
| 1172 | − Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of the | |
| 1173 | − currently displayed frame. This is the same PTS as is used in | |
| 1174 | − :ref:`VIDIOC_DECODER_CMD`. | |
| 1175 | − | |
| 1176 | −.. _v4l2-mpeg-video-dec-frame: | |
| 1177 | − | |
| 1178 | −``V4L2_CID_MPEG_VIDEO_DEC_FRAME (integer64)`` | |
| 1179 | − This read-only control returns the frame counter of the frame that | |
| 1180 | − is currently displayed (decoded). This value is reset to 0 whenever | |
| 1181 | − the decoder is started. | |
| 1182 | − | |
| 1183 | −``V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (boolean)`` | |
| 1184 | − If enabled the decoder expects to receive a single slice per buffer, | |
| 1185 | − otherwise the decoder expects a single frame in per buffer. | |
| 1186 | − Applicable to the decoder, all codecs. | |
| 1187 | − | |
| 1188 | −``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (boolean)`` | |
| 1189 | − Enable writing sample aspect ratio in the Video Usability | |
| 1190 | − Information. Applicable to the H264 encoder. | |
| 1191 | − | |
| 1192 | −.. _v4l2-mpeg-video-h264-vui-sar-idc: | |
| 1193 | − | |
| 1194 | −``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC (enum v4l2_mpeg_video_h264_vui_sar_idc)`` | |
| 1195 | − VUI sample aspect ratio indicator for H.264 encoding. The value is | |
| 1196 | − defined in the table E-1 in the standard. Applicable to the H264 | |
| 1197 | − encoder. | |
| 1198 | − | |
| 1199 | − | |
| 1200 | − | |
| 1201 | −.. flat-table:: | |
| 1202 | − :header-rows: 0 | |
| 1203 | − :stub-columns: 0 | |
| 1204 | − | |
| 1205 | − | |
| 1206 | − - .. row 1 | |
| 1207 | − | |
| 1208 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED`` | |
| 1209 | − | |
| 1210 | − - Unspecified | |
| 1211 | − | |
| 1212 | − - .. row 2 | |
| 1213 | − | |
| 1214 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1`` | |
| 1215 | − | |
| 1216 | − - 1x1 | |
| 1217 | − | |
| 1218 | − - .. row 3 | |
| 1219 | − | |
| 1220 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11`` | |
| 1221 | − | |
| 1222 | − - 12x11 | |
| 1223 | − | |
| 1224 | − - .. row 4 | |
| 1225 | − | |
| 1226 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11`` | |
| 1227 | − | |
| 1228 | − - 10x11 | |
| 1229 | − | |
| 1230 | − - .. row 5 | |
| 1231 | − | |
| 1232 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11`` | |
| 1233 | − | |
| 1234 | − - 16x11 | |
| 1235 | − | |
| 1236 | − - .. row 6 | |
| 1237 | − | |
| 1238 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33`` | |
| 1239 | − | |
| 1240 | − - 40x33 | |
| 1241 | − | |
| 1242 | − - .. row 7 | |
| 1243 | − | |
| 1244 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11`` | |
| 1245 | − | |
| 1246 | − - 24x11 | |
| 1247 | − | |
| 1248 | − - .. row 8 | |
| 1249 | − | |
| 1250 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11`` | |
| 1251 | − | |
| 1252 | − - 20x11 | |
| 1253 | − | |
| 1254 | − - .. row 9 | |
| 1255 | − | |
| 1256 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11`` | |
| 1257 | − | |
| 1258 | − - 32x11 | |
| 1259 | − | |
| 1260 | − - .. row 10 | |
| 1261 | − | |
| 1262 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33`` | |
| 1263 | − | |
| 1264 | − - 80x33 | |
| 1265 | − | |
| 1266 | − - .. row 11 | |
| 1267 | − | |
| 1268 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11`` | |
| 1269 | − | |
| 1270 | − - 18x11 | |
| 1271 | − | |
| 1272 | − - .. row 12 | |
| 1273 | − | |
| 1274 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11`` | |
| 1275 | − | |
| 1276 | − - 15x11 | |
| 1277 | − | |
| 1278 | − - .. row 13 | |
| 1279 | − | |
| 1280 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33`` | |
| 1281 | − | |
| 1282 | − - 64x33 | |
| 1283 | − | |
| 1284 | − - .. row 14 | |
| 1285 | − | |
| 1286 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99`` | |
| 1287 | − | |
| 1288 | − - 160x99 | |
| 1289 | − | |
| 1290 | − - .. row 15 | |
| 1291 | − | |
| 1292 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3`` | |
| 1293 | − | |
| 1294 | − - 4x3 | |
| 1295 | − | |
| 1296 | − - .. row 16 | |
| 1297 | − | |
| 1298 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2`` | |
| 1299 | − | |
| 1300 | − - 3x2 | |
| 1301 | − | |
| 1302 | − - .. row 17 | |
| 1303 | − | |
| 1304 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1`` | |
| 1305 | − | |
| 1306 | − - 2x1 | |
| 1307 | − | |
| 1308 | − - .. row 18 | |
| 1309 | − | |
| 1310 | − - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED`` | |
| 1311 | − | |
| 1312 | − - Extended SAR | |
| 1313 | − | |
| 1314 | − | |
| 1315 | − | |
| 1316 | −``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (integer)`` | |
| 1317 | − Extended sample aspect ratio width for H.264 VUI encoding. | |
| 1318 | − Applicable to the H264 encoder. | |
| 1319 | − | |
| 1320 | −``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (integer)`` | |
| 1321 | − Extended sample aspect ratio height for H.264 VUI encoding. | |
| 1322 | − Applicable to the H264 encoder. | |
| 1323 | − | |
| 1324 | −.. _v4l2-mpeg-video-h264-level: | |
| 1325 | − | |
| 1326 | −``V4L2_CID_MPEG_VIDEO_H264_LEVEL (enum v4l2_mpeg_video_h264_level)`` | |
| 1327 | − The level information for the H264 video elementary stream. | |
| 1328 | − Applicable to the H264 encoder. Possible values are: | |
| 1329 | − | |
| 1330 | − | |
| 1331 | − | |
| 1332 | −.. flat-table:: | |
| 1333 | − :header-rows: 0 | |
| 1334 | − :stub-columns: 0 | |
| 1335 | − | |
| 1336 | − | |
| 1337 | − - .. row 1 | |
| 1338 | − | |
| 1339 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0`` | |
| 1340 | − | |
| 1341 | − - Level 1.0 | |
| 1342 | − | |
| 1343 | − - .. row 2 | |
| 1344 | − | |
| 1345 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B`` | |
| 1346 | − | |
| 1347 | − - Level 1B | |
| 1348 | − | |
| 1349 | − - .. row 3 | |
| 1350 | − | |
| 1351 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1`` | |
| 1352 | − | |
| 1353 | − - Level 1.1 | |
| 1354 | − | |
| 1355 | − - .. row 4 | |
| 1356 | − | |
| 1357 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2`` | |
| 1358 | − | |
| 1359 | − - Level 1.2 | |
| 1360 | − | |
| 1361 | − - .. row 5 | |
| 1362 | − | |
| 1363 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3`` | |
| 1364 | − | |
| 1365 | − - Level 1.3 | |
| 1366 | − | |
| 1367 | − - .. row 6 | |
| 1368 | − | |
| 1369 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0`` | |
| 1370 | − | |
| 1371 | − - Level 2.0 | |
| 1372 | − | |
| 1373 | − - .. row 7 | |
| 1374 | − | |
| 1375 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1`` | |
| 1376 | − | |
| 1377 | − - Level 2.1 | |
| 1378 | − | |
| 1379 | − - .. row 8 | |
| 1380 | − | |
| 1381 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2`` | |
| 1382 | − | |
| 1383 | − - Level 2.2 | |
| 1384 | − | |
| 1385 | − - .. row 9 | |
| 1386 | − | |
| 1387 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0`` | |
| 1388 | − | |
| 1389 | − - Level 3.0 | |
| 1390 | − | |
| 1391 | − - .. row 10 | |
| 1392 | − | |
| 1393 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1`` | |
| 1394 | − | |
| 1395 | − - Level 3.1 | |
| 1396 | − | |
| 1397 | − - .. row 11 | |
| 1398 | − | |
| 1399 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2`` | |
| 1400 | − | |
| 1401 | − - Level 3.2 | |
| 1402 | − | |
| 1403 | − - .. row 12 | |
| 1404 | − | |
| 1405 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0`` | |
| 1406 | − | |
| 1407 | − - Level 4.0 | |
| 1408 | − | |
| 1409 | − - .. row 13 | |
| 1410 | − | |
| 1411 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1`` | |
| 1412 | − | |
| 1413 | − - Level 4.1 | |
| 1414 | − | |
| 1415 | − - .. row 14 | |
| 1416 | − | |
| 1417 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2`` | |
| 1418 | − | |
| 1419 | − - Level 4.2 | |
| 1420 | − | |
| 1421 | − - .. row 15 | |
| 1422 | − | |
| 1423 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0`` | |
| 1424 | − | |
| 1425 | − - Level 5.0 | |
| 1426 | − | |
| 1427 | − - .. row 16 | |
| 1428 | − | |
| 1429 | − - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1`` | |
| 1430 | − | |
| 1431 | − - Level 5.1 | |
| 1432 | − | |
| 1433 | − | |
| 1434 | − | |
| 1435 | −.. _v4l2-mpeg-video-mpeg4-level: | |
| 1436 | − | |
| 1437 | −``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL (enum v4l2_mpeg_video_mpeg4_level)`` | |
| 1438 | − The level information for the MPEG4 elementary stream. Applicable to | |
| 1439 | − the MPEG4 encoder. Possible values are: | |
| 1440 | − | |
| 1441 | − | |
| 1442 | − | |
| 1443 | −.. flat-table:: | |
| 1444 | − :header-rows: 0 | |
| 1445 | − :stub-columns: 0 | |
| 1446 | − | |
| 1447 | − | |
| 1448 | − - .. row 1 | |
| 1449 | − | |
| 1450 | − - ``V4L2_MPEG_VIDEO_LEVEL_0`` | |
| 1451 | − | |
| 1452 | − - Level 0 | |
| 1453 | − | |
| 1454 | − - .. row 2 | |
| 1455 | − | |
| 1456 | − - ``V4L2_MPEG_VIDEO_LEVEL_0B`` | |
| 1457 | − | |
| 1458 | − - Level 0b | |
| 1459 | − | |
| 1460 | − - .. row 3 | |
| 1461 | − | |
| 1462 | − - ``V4L2_MPEG_VIDEO_LEVEL_1`` | |
| 1463 | − | |
| 1464 | − - Level 1 | |
| 1465 | − | |
| 1466 | − - .. row 4 | |
| 1467 | − | |
| 1468 | − - ``V4L2_MPEG_VIDEO_LEVEL_2`` | |
| 1469 | − | |
| 1470 | − - Level 2 | |
| 1471 | − | |
| 1472 | − - .. row 5 | |
| 1473 | − | |
| 1474 | − - ``V4L2_MPEG_VIDEO_LEVEL_3`` | |
| 1475 | − | |
| 1476 | − - Level 3 | |
| 1477 | − | |
| 1478 | − - .. row 6 | |
| 1479 | − | |
| 1480 | − - ``V4L2_MPEG_VIDEO_LEVEL_3B`` | |
| 1481 | − | |
| 1482 | − - Level 3b | |
| 1483 | − | |
| 1484 | − - .. row 7 | |
| 1485 | − | |
| 1486 | − - ``V4L2_MPEG_VIDEO_LEVEL_4`` | |
| 1487 | − | |
| 1488 | − - Level 4 | |
| 1489 | − | |
| 1490 | − - .. row 8 | |
| 1491 | − | |
| 1492 | − - ``V4L2_MPEG_VIDEO_LEVEL_5`` | |
| 1493 | − | |
| 1494 | − - Level 5 | |
| 1495 | − | |
| 1496 | − | |
| 1497 | − | |
| 1498 | −.. _v4l2-mpeg-video-h264-profile: | |
| 1499 | − | |
| 1500 | −``V4L2_CID_MPEG_VIDEO_H264_PROFILE (enum v4l2_mpeg_video_h264_profile)`` | |
| 1501 | − The profile information for H264. Applicable to the H264 encoder. | |
| 1502 | − Possible values are: | |
| 1503 | − | |
| 1504 | − | |
| 1505 | − | |
| 1506 | −.. flat-table:: | |
| 1507 | − :header-rows: 0 | |
| 1508 | − :stub-columns: 0 | |
| 1509 | − | |
| 1510 | − | |
| 1511 | − - .. row 1 | |
| 1512 | − | |
| 1513 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE`` | |
| 1514 | − | |
| 1515 | − - Baseline profile | |
| 1516 | − | |
| 1517 | − - .. row 2 | |
| 1518 | − | |
| 1519 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE`` | |
| 1520 | − | |
| 1521 | − - Constrained Baseline profile | |
| 1522 | − | |
| 1523 | − - .. row 3 | |
| 1524 | − | |
| 1525 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN`` | |
| 1526 | − | |
| 1527 | − - Main profile | |
| 1528 | − | |
| 1529 | − - .. row 4 | |
| 1530 | − | |
| 1531 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED`` | |
| 1532 | − | |
| 1533 | − - Extended profile | |
| 1534 | − | |
| 1535 | − - .. row 5 | |
| 1536 | − | |
| 1537 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH`` | |
| 1538 | − | |
| 1539 | − - High profile | |
| 1540 | − | |
| 1541 | − - .. row 6 | |
| 1542 | − | |
| 1543 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10`` | |
| 1544 | − | |
| 1545 | − - High 10 profile | |
| 1546 | − | |
| 1547 | − - .. row 7 | |
| 1548 | − | |
| 1549 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422`` | |
| 1550 | − | |
| 1551 | − - High 422 profile | |
| 1552 | − | |
| 1553 | − - .. row 8 | |
| 1554 | − | |
| 1555 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE`` | |
| 1556 | − | |
| 1557 | − - High 444 Predictive profile | |
| 1558 | − | |
| 1559 | − - .. row 9 | |
| 1560 | − | |
| 1561 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA`` | |
| 1562 | − | |
| 1563 | − - High 10 Intra profile | |
| 1564 | − | |
| 1565 | − - .. row 10 | |
| 1566 | − | |
| 1567 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA`` | |
| 1568 | − | |
| 1569 | − - High 422 Intra profile | |
| 1570 | − | |
| 1571 | − - .. row 11 | |
| 1572 | − | |
| 1573 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA`` | |
| 1574 | − | |
| 1575 | − - High 444 Intra profile | |
| 1576 | − | |
| 1577 | − - .. row 12 | |
| 1578 | − | |
| 1579 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA`` | |
| 1580 | − | |
| 1581 | − - CAVLC 444 Intra profile | |
| 1582 | − | |
| 1583 | − - .. row 13 | |
| 1584 | − | |
| 1585 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE`` | |
| 1586 | − | |
| 1587 | − - Scalable Baseline profile | |
| 1588 | − | |
| 1589 | − - .. row 14 | |
| 1590 | − | |
| 1591 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH`` | |
| 1592 | − | |
| 1593 | − - Scalable High profile | |
| 1594 | − | |
| 1595 | − - .. row 15 | |
| 1596 | − | |
| 1597 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA`` | |
| 1598 | − | |
| 1599 | − - Scalable High Intra profile | |
| 1600 | − | |
| 1601 | − - .. row 16 | |
| 1602 | − | |
| 1603 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH`` | |
| 1604 | − | |
| 1605 | − - Stereo High profile | |
| 1606 | − | |
| 1607 | − - .. row 17 | |
| 1608 | − | |
| 1609 | − - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH`` | |
| 1610 | − | |
| 1611 | − - Multiview High profile | |
| 1612 | − | |
| 1613 | − | |
| 1614 | − | |
| 1615 | −.. _v4l2-mpeg-video-mpeg4-profile: | |
| 1616 | − | |
| 1617 | −``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE (enum v4l2_mpeg_video_mpeg4_profile)`` | |
| 1021 | +enum v4l2_mpeg_video_mpeg4_profile - | |
| 1618 | 1022 | The profile information for MPEG4. Applicable to the MPEG4 encoder. |
| 1619 | 1023 | Possible values are: |
| 1620 | 1024 | |
| 1621 | 1025 | |
| 1622 | 1026 | |
| 1623 | −.. flat-table:: | |
| 1624 | − :header-rows: 0 | |
| 1625 | − :stub-columns: 0 | |
| 1626 | − | |
| 1627 | − | |
| 1628 | − - .. row 1 | |
| 1629 | − | |
| 1630 | − - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE`` | |
| 1631 | − | |
| 1632 | − - Simple profile | |
| 1633 | − | |
| 1634 | − - .. row 2 | |
| 1635 | − | |
| 1636 | − - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_SIMPLE`` | |
| 1637 | − | |
| 1638 | − - Advanced Simple profile | |
| 1639 | − | |
| 1640 | − - .. row 3 | |
| 1641 | − | |
| 1642 | − - ``V4L2_MPEG_VIDEO_PROFILE_CORE`` | |
| 1643 | − | |
| 1644 | − - Core profile | |
| 1645 | − | |
| 1646 | − - .. row 4 | |
| 1647 | − | |
| 1648 | − - ``V4L2_MPEG_VIDEO_PROFILE_SIMPLE_SCALABLE`` | |
| 1649 | − | |
| 1650 | − - Simple Scalable profile | |
| 1651 | − | |
| 1652 | − - .. row 5 | |
| 1653 | − | |
| 1654 | − - ``V4L2_MPEG_VIDEO_PROFILE_ADVANCED_CODING_EFFICIENCY`` | |
| 1027 | +.. flat-table:: | |
| 1028 | + :header-rows: 0 | |
| 1029 | + :stub-columns: 0 | |
| 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 | 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 | + | |
| 1053 | +enum v4l2_mpeg_video_multi_slice_mode - | |
| 1667 | 1054 | Determines how the encoder should handle division of frame into |
| 1668 | 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 | 1061 | .. flat-table:: |
| 1673 | 1062 | :header-rows: 0 |
| 1674 | 1063 | :stub-columns: 0 |
| 1675 | 1064 | |
| 1676 | − | |
| 1677 | − - .. row 1 | |
| 1678 | − | |
| 1679 | − - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE`` | |
| 1680 | − | |
| 1681 | − - Single slice per frame. | |
| 1682 | − | |
| 1683 | − - .. row 2 | |
| 1684 | − | |
| 1685 | − - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB`` | |
| 1686 | − | |
| 1687 | − - Multiple slices with set maximum number of macroblocks per slice. | |
| 1688 | − | |
| 1689 | − - .. row 3 | |
| 1690 | − | |
| 1691 | − - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES`` | |
| 1692 | − | |
| 1693 | − - Multiple slice with set maximum size in bytes per slice. | |
| 1065 | + * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE`` | |
| 1066 | + - Single slice per frame. | |
| 1067 | + * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB`` | |
| 1068 | + - Multiple slices with set maximum number of macroblocks per slice. | |
| 1069 | + * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES`` | |
| 1070 | + - Multiple slice with set maximum size in bytes per slice. | |
| 1694 | 1071 | |
| 1695 | 1072 | |
| 1696 | 1073 | |
| @@ -1708,33 +1085,26 @@ Codec Control IDs · 11 unmodified lines | ||
| 1708 | 1085 | |
| 1709 | 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 | + | |
| 1091 | +enum v4l2_mpeg_video_h264_loop_filter_mode - | |
| 1712 | 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 | 1098 | .. flat-table:: |
| 1717 | 1099 | :header-rows: 0 |
| 1718 | 1100 | :stub-columns: 0 |
| 1719 | 1101 | |
| 1720 | − | |
| 1721 | − - .. row 1 | |
| 1722 | − | |
| 1723 | − - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED`` | |
| 1724 | − | |
| 1725 | − - Loop filter is enabled. | |
| 1726 | − | |
| 1727 | − - .. row 2 | |
| 1728 | − | |
| 1729 | − - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED`` | |
| 1730 | − | |
| 1731 | − - Loop filter is disabled. | |
| 1732 | − | |
| 1733 | − - .. row 3 | |
| 1734 | − | |
| 1735 | − - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY`` | |
| 1736 | − | |
| 1737 | − - Loop filter is disabled at the slice boundary. | |
| 1102 | + * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED`` | |
| 1103 | + - Loop filter is enabled. | |
| 1104 | + * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED`` | |
| 1105 | + - Loop filter is disabled. | |
| 1106 | + * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY`` | |
| 1107 | + - Loop filter is disabled at the slice boundary. | |
| 1738 | 1108 | |
| 1739 | 1109 | |
| 1740 | 1110 | |
| @@ -1748,7 +1118,10 @@ Codec Control IDs · 7 unmodified lines | ||
| 1748 | 1118 | |
| 1749 | 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 | + | |
| 1124 | +enum v4l2_mpeg_video_h264_entropy_mode - | |
| 1752 | 1125 | Entropy coding mode for H264 - CABAC/CAVALC. Applicable to the H264 |
| 1753 | 1126 | encoder. Possible values are: |
| 1754 | 1127 | |
| @@ -1758,18 +1131,10 @@ Codec Control IDs · 3 unmodified lines | ||
| 1758 | 1131 | :header-rows: 0 |
| 1759 | 1132 | :stub-columns: 0 |
| 1760 | 1133 | |
| 1761 | − | |
| 1762 | − - .. row 1 | |
| 1763 | − | |
| 1764 | − - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC`` | |
| 1765 | − | |
| 1766 | − - Use CAVLC entropy coding. | |
| 1767 | − | |
| 1768 | − - .. row 2 | |
| 1769 | − | |
| 1770 | − - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC`` | |
| 1771 | − | |
| 1772 | − - Use CABAC entropy coding. | |
| 1134 | + * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC`` | |
| 1135 | + - Use CAVLC entropy coding. | |
| 1136 | + * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC`` | |
| 1137 | + - Use CABAC entropy coding. | |
| 1773 | 1138 | |
| 1774 | 1139 | |
| 1775 | 1140 | |
| @@ -1909,30 +1274,27 @@ Codec Control IDs · 133 unmodified lines | ||
| 1909 | 1274 | |
| 1910 | 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 | + | |
| 1280 | +enum v4l2_mpeg_video_header_mode - | |
| 1913 | 1281 | Determines whether the header is returned as the first buffer or is |
| 1914 | 1282 | it returned together with the first frame. Applicable to encoders. |
| 1915 | 1283 | Possible values are: |
| 1916 | 1284 | |
| 1917 | 1285 | |
| 1918 | 1286 | |
| 1287 | +.. tabularcolumns:: |p{10.3cm}|p{7.2cm}| | |
| 1288 | + | |
| 1919 | 1289 | .. flat-table:: |
| 1920 | 1290 | :header-rows: 0 |
| 1921 | 1291 | :stub-columns: 0 |
| 1922 | 1292 | |
| 1923 | − | |
| 1924 | − - .. row 1 | |
| 1925 | − | |
| 1926 | − - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE`` | |
| 1927 | − | |
| 1928 | − - The stream header is returned separately in the first buffer. | |
| 1929 | − | |
| 1930 | − - .. row 2 | |
| 1931 | − | |
| 1932 | − - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME`` | |
| 1933 | − | |
| 1934 | − - The stream header is returned together with the first encoded | |
| 1935 | − frame. | |
| 1293 | + * - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE`` | |
| 1294 | + - The stream header is returned separately in the first buffer. | |
| 1295 | + * - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME`` | |
| 1296 | + - The stream header is returned together with the first encoded | |
| 1297 | + frame. | |
| 1936 | 1298 | |
| 1937 | 1299 | |
| 1938 | 1300 | |
| @@ -1965,52 +1327,31 @@ Codec Control IDs · 26 unmodified lines | ||
| 1965 | 1327 | |
| 1966 | 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 | + | |
| 1333 | +enum v4l2_mpeg_video_h264_sei_fp_arrangement_type - | |
| 1969 | 1334 | Frame packing arrangement type for H264 SEI. Applicable to the H264 |
| 1970 | 1335 | encoder. Possible values are: |
| 1971 | 1336 | |
| 1972 | − | |
| 1337 | +.. tabularcolumns:: |p{12cm}|p{5.5cm}| | |
| 1973 | 1338 | |
| 1974 | 1339 | .. flat-table:: |
| 1975 | 1340 | :header-rows: 0 |
| 1976 | 1341 | :stub-columns: 0 |
| 1977 | 1342 | |
| 1978 | − | |
| 1979 | − - .. row 1 | |
| 1980 | − | |
| 1981 | − - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD`` | |
| 1982 | − | |
| 1983 | − - Pixels are alternatively from L and R. | |
| 1984 | − | |
| 1985 | − - .. row 2 | |
| 1986 | − | |
| 1987 | − - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN`` | |
| 1988 | − | |
| 1989 | − - L and R are interlaced by column. | |
| 1990 | − | |
| 1991 | − - .. row 3 | |
| 1992 | − | |
| 1993 | − - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW`` | |
| 1994 | − | |
| 1995 | − - L and R are interlaced by row. | |
| 1996 | − | |
| 1997 | − - .. row 4 | |
| 1998 | − | |
| 1999 | − - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE`` | |
| 2000 | − | |
| 2001 | − - L is on the left, R on the right. | |
| 2002 | − | |
| 2003 | − - .. row 5 | |
| 2004 | − | |
| 2005 | − - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM`` | |
| 2006 | − | |
| 2007 | − - L is on top, R on bottom. | |
| 2008 | − | |
| 2009 | − - .. row 6 | |
| 2010 | − | |
| 2011 | − - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL`` | |
| 2012 | − | |
| 2013 | − - One view per frame. | |
| 1343 | + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD`` | |
| 1344 | + - Pixels are alternatively from L and R. | |
| 1345 | + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN`` | |
| 1346 | + - L and R are interlaced by column. | |
| 1347 | + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW`` | |
| 1348 | + - L and R are interlaced by row. | |
| 1349 | + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE`` | |
| 1350 | + - L is on the left, R on the right. | |
| 1351 | + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM`` | |
| 1352 | + - L is on top, R on bottom. | |
| 1353 | + * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL`` | |
| 1354 | + - One view per frame. | |
| 2014 | 1355 | |
| 2015 | 1356 | |
| 2016 | 1357 | |
| @@ -2021,61 +1362,36 @@ Codec Control IDs · 4 unmodified lines | ||
| 2021 | 1362 | |
| 2022 | 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 | + | |
| 1368 | +enum v4l2_mpeg_video_h264_fmo_map_type - | |
| 2025 | 1369 | When using FMO, the map type divides the image in different scan |
| 2026 | 1370 | patterns of macroblocks. Applicable to the H264 encoder. Possible |
| 2027 | 1371 | values are: |
| 2028 | 1372 | |
| 2029 | − | |
| 1373 | +.. tabularcolumns:: |p{12.5cm}|p{5.0cm}| | |
| 2030 | 1374 | |
| 2031 | 1375 | .. flat-table:: |
| 2032 | 1376 | :header-rows: 0 |
| 2033 | 1377 | :stub-columns: 0 |
| 2034 | 1378 | |
| 2035 | − | |
| 2036 | − - .. row 1 | |
| 2037 | − | |
| 2038 | − - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES`` | |
| 2039 | − | |
| 2040 | − - Slices are interleaved one after other with macroblocks in run | |
| 2041 | − length order. | |
| 2042 | − | |
| 2043 | − - .. row 2 | |
| 2044 | − | |
| 2045 | − - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES`` | |
| 2046 | − | |
| 2047 | − - Scatters the macroblocks based on a mathematical function known to | |
| 2048 | − both encoder and decoder. | |
| 2049 | − | |
| 2050 | − - .. row 3 | |
| 2051 | − | |
| 2052 | − - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER`` | |
| 2053 | − | |
| 2054 | − - Macroblocks arranged in rectangular areas or regions of interest. | |
| 2055 | − | |
| 2056 | − - .. row 4 | |
| 2057 | − | |
| 2058 | − - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT`` | |
| 2059 | − | |
| 2060 | − - Slice groups grow in a cyclic way from centre to outwards. | |
| 2061 | − | |
| 2062 | − - .. row 5 | |
| 2063 | − | |
| 2064 | − - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN`` | |
| 2065 | − | |
| 2066 | − - Slice groups grow in raster scan pattern from left to right. | |
| 2067 | − | |
| 2068 | − - .. row 6 | |
| 2069 | − | |
| 2070 | − - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN`` | |
| 2071 | − | |
| 2072 | − - Slice groups grow in wipe scan pattern from top to bottom. | |
| 2073 | − | |
| 2074 | − - .. row 7 | |
| 2075 | − | |
| 2076 | − - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT`` | |
| 2077 | − | |
| 2078 | − - User defined map type. | |
| 1379 | + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES`` | |
| 1380 | + - Slices are interleaved one after other with macroblocks in run | |
| 1381 | + length order. | |
| 1382 | + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES`` | |
| 1383 | + - Scatters the macroblocks based on a mathematical function known to | |
| 1384 | + both encoder and decoder. | |
| 1385 | + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER`` | |
| 1386 | + - Macroblocks arranged in rectangular areas or regions of interest. | |
| 1387 | + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT`` | |
| 1388 | + - Slice groups grow in a cyclic way from centre to outwards. | |
| 1389 | + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN`` | |
| 1390 | + - Slice groups grow in raster scan pattern from left to right. | |
| 1391 | + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN`` | |
| 1392 | + - Slice groups grow in wipe scan pattern from top to bottom. | |
| 1393 | + * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT`` | |
| 1394 | + - User defined map type. | |
| 2079 | 1395 | |
| 2080 | 1396 | |
| 2081 | 1397 | |
| @@ -2084,7 +1400,10 @@ Codec Control IDs · 2 unmodified lines | ||
| 2084 | 1400 | |
| 2085 | 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 | + | |
| 1406 | +enum v4l2_mpeg_video_h264_fmo_change_dir - | |
| 2088 | 1407 | Specifies a direction of the slice group change for raster and wipe |
| 2089 | 1408 | maps. Applicable to the H264 encoder. Possible values are: |
| 2090 | 1409 | |
| @@ -2094,18 +1413,10 @@ Codec Control IDs · 3 unmodified lines | ||
| 2094 | 1413 | :header-rows: 0 |
| 2095 | 1414 | :stub-columns: 0 |
| 2096 | 1415 | |
| 2097 | − | |
| 2098 | − - .. row 1 | |
| 2099 | − | |
| 2100 | − - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT`` | |
| 2101 | − | |
| 2102 | − - Raster scan or wipe right. | |
| 2103 | − | |
| 2104 | − - .. row 2 | |
| 2105 | − | |
| 2106 | − - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT`` | |
| 2107 | − | |
| 2108 | − - Reverse raster scan or wipe left. | |
| 1416 | + * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT`` | |
| 1417 | + - Raster scan or wipe right. | |
| 1418 | + * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT`` | |
| 1419 | + - Reverse raster scan or wipe left. | |
| 2109 | 1420 | |
| 2110 | 1421 | |
| 2111 | 1422 | |
| @@ -2132,18 +1443,10 @@ Codec Control IDs · 20 unmodified lines | ||
| 2132 | 1443 | :header-rows: 0 |
| 2133 | 1444 | :stub-columns: 0 |
| 2134 | 1445 | |
| 2135 | − | |
| 2136 | − - .. row 1 | |
| 2137 | − | |
| 2138 | − - Bit 0:15 | |
| 2139 | − | |
| 2140 | − - Slice ID | |
| 2141 | − | |
| 2142 | − - .. row 2 | |
| 2143 | − | |
| 2144 | − - Bit 16:32 | |
| 2145 | − | |
| 2146 | − - Slice position or order | |
| 1446 | + * - Bit 0:15 | |
| 1447 | + - Slice ID | |
| 1448 | + * - Bit 16:32 | |
| 1449 | + - Slice position or order | |
| 2147 | 1450 | |
| 2148 | 1451 | |
| 2149 | 1452 | |
| @@ -2152,7 +1455,10 @@ Codec Control IDs · 2 unmodified lines | ||
| 2152 | 1455 | |
| 2153 | 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 | + | |
| 1461 | +enum v4l2_mpeg_video_h264_hierarchical_coding_type - | |
| 2156 | 1462 | Specifies the hierarchical coding type. Applicable to the H264 |
| 2157 | 1463 | encoder. Possible values are: |
| 2158 | 1464 | |
| @@ -2162,18 +1468,10 @@ Codec Control IDs · 3 unmodified lines | ||
| 2162 | 1468 | :header-rows: 0 |
| 2163 | 1469 | :stub-columns: 0 |
| 2164 | 1470 | |
| 2165 | − | |
| 2166 | − - .. row 1 | |
| 2167 | − | |
| 2168 | − - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B`` | |
| 2169 | − | |
| 2170 | − - Hierarchical B coding. | |
| 2171 | − | |
| 2172 | − - .. row 2 | |
| 2173 | − | |
| 2174 | − - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P`` | |
| 2175 | − | |
| 2176 | − - Hierarchical P coding. | |
| 1471 | + * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B`` | |
| 1472 | + - Hierarchical B coding. | |
| 1473 | + * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P`` | |
| 1474 | + - Hierarchical P coding. | |
| 2177 | 1475 | |
| 2178 | 1476 | |
| 2179 | 1477 | |
| @@ -2192,18 +1490,10 @@ Codec Control IDs · 12 unmodified lines | ||
| 2192 | 1490 | :header-rows: 0 |
| 2193 | 1491 | :stub-columns: 0 |
| 2194 | 1492 | |
| 2195 | − | |
| 2196 | − - .. row 1 | |
| 2197 | − | |
| 2198 | − - Bit 0:15 | |
| 2199 | − | |
| 2200 | − - QP value | |
| 2201 | − | |
| 2202 | − - .. row 2 | |
| 2203 | − | |
| 2204 | − - Bit 16:32 | |
| 2205 | − | |
| 2206 | − - Layer number | |
| 1493 | + * - Bit 0:15 | |
| 1494 | + - QP value | |
| 1495 | + * - Bit 16:32 | |
| 1496 | + - Layer number | |
| 2207 | 1497 | |
| 2208 | 1498 | |
| 2209 | 1499 | |
| @@ -2255,30 +1545,14 @@ MFC 5.1 Control IDs · 45 unmodified lines | ||
| 2255 | 1545 | :header-rows: 0 |
| 2256 | 1546 | :stub-columns: 0 |
| 2257 | 1547 | |
| 2258 | − | |
| 2259 | − - .. row 1 | |
| 2260 | − | |
| 2261 | − - Bit 0:7 | |
| 2262 | − | |
| 2263 | − - V chrominance information | |
| 2264 | − | |
| 2265 | − - .. row 2 | |
| 2266 | − | |
| 2267 | − - Bit 8:15 | |
| 2268 | − | |
| 2269 | − - U chrominance information | |
| 2270 | − | |
| 2271 | − - .. row 3 | |
| 2272 | − | |
| 2273 | − - Bit 16:23 | |
| 2274 | − | |
| 2275 | − - Y luminance information | |
| 2276 | − | |
| 2277 | − - .. row 4 | |
| 2278 | − | |
| 2279 | − - Bit 24:31 | |
| 2280 | − | |
| 2281 | − - Must be zero. | |
| 1548 | + * - Bit 0:7 | |
| 1549 | + - V chrominance information | |
| 1550 | + * - Bit 8:15 | |
| 1551 | + - U chrominance information | |
| 1552 | + * - Bit 16:23 | |
| 1553 | + - Y luminance information | |
| 1554 | + * - Bit 24:31 | |
| 1555 | + - Must be zero. | |
| 2282 | 1556 | |
| 2283 | 1557 | |
| 2284 | 1558 | |
| @@ -2321,38 +1595,30 @@ MFC 5.1 Control IDs · 36 unmodified lines | ||
| 2321 | 1595 | |
| 2322 | 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 | + | |
| 1601 | +enum v4l2_mpeg_mfc51_video_frame_skip_mode - | |
| 2325 | 1602 | Indicates in what conditions the encoder should skip frames. If |
| 2326 | 1603 | encoding a frame would cause the encoded stream to be larger then a |
| 2327 | 1604 | chosen data limit then the frame will be skipped. Possible values |
| 2328 | 1605 | are: |
| 2329 | 1606 | |
| 2330 | 1607 | |
| 1608 | +.. tabularcolumns:: |p{9.0cm}|p{8.5cm}| | |
| 2331 | 1609 | |
| 2332 | 1610 | .. flat-table:: |
| 2333 | 1611 | :header-rows: 0 |
| 2334 | 1612 | :stub-columns: 0 |
| 2335 | 1613 | |
| 2336 | − | |
| 2337 | − - .. row 1 | |
| 2338 | − | |
| 2339 | − - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED`` | |
| 2340 | − | |
| 2341 | − - Frame skip mode is disabled. | |
| 2342 | − | |
| 2343 | − - .. row 2 | |
| 2344 | − | |
| 2345 | − - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT`` | |
| 2346 | − | |
| 2347 | − - Frame skip mode enabled and buffer limit is set by the chosen | |
| 2348 | − level and is defined by the standard. | |
| 2349 | − | |
| 2350 | − - .. row 3 | |
| 2351 | − | |
| 2352 | − - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT`` | |
| 2353 | − | |
| 2354 | − - Frame skip mode enabled and buffer limit is set by the VBV | |
| 2355 | − (MPEG1/2/4) or CPB (H264) buffer size control. | |
| 1614 | + * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED`` | |
| 1615 | + - Frame skip mode is disabled. | |
| 1616 | + * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT`` | |
| 1617 | + - Frame skip mode enabled and buffer limit is set by the chosen | |
| 1618 | + level and is defined by the standard. | |
| 1619 | + * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT`` | |
| 1620 | + - Frame skip mode enabled and buffer limit is set by the VBV | |
| 1621 | + (MPEG1/2/4) or CPB (H264) buffer size control. | |
| 2356 | 1622 | |
| 2357 | 1623 | |
| 2358 | 1624 | |
| @@ -2370,7 +1636,10 @@ MFC 5.1 Control IDs · 11 unmodified lines | ||
| 2370 | 1636 | |
| 2371 | 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 | + | |
| 1642 | +enum v4l2_mpeg_mfc51_video_force_frame_type - | |
| 2374 | 1643 | Force a frame type for the next queued buffer. Applicable to |
| 2375 | 1644 | encoders. Possible values are: |
| 2376 | 1645 | |
| @@ -2380,24 +1649,12 @@ MFC 5.1 Control IDs · 3 unmodified lines | ||
| 2380 | 1649 | :header-rows: 0 |
| 2381 | 1650 | :stub-columns: 0 |
| 2382 | 1651 | |
| 2383 | − | |
| 2384 | − - .. row 1 | |
| 2385 | − | |
| 2386 | − - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED`` | |
| 2387 | − | |
| 2388 | − - Forcing a specific frame type disabled. | |
| 2389 | − | |
| 2390 | − - .. row 2 | |
| 2391 | − | |
| 2392 | − - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME`` | |
| 2393 | − | |
| 2394 | − - Force an I-frame. | |
| 2395 | − | |
| 2396 | − - .. row 3 | |
| 2397 | − | |
| 2398 | − - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED`` | |
| 2399 | − | |
| 2400 | − - Force a non-coded frame. | |
| 1652 | + * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED`` | |
| 1653 | + - Forcing a specific frame type disabled. | |
| 1654 | + * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME`` | |
| 1655 | + - Force an I-frame. | |
| 1656 | + * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED`` | |
| 1657 | + - Force a non-coded frame. | |
| 2401 | 1658 | |
| 2402 | 1659 | |
| 2403 | 1660 | |
| @@ -2416,7 +1673,10 @@ CX2341x Control IDs · 12 unmodified lines | ||
| 2416 | 1673 | |
| 2417 | 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 | + | |
| 1679 | +enum v4l2_mpeg_cx2341x_video_spatial_filter_mode - | |
| 2420 | 1680 | Sets the Spatial Filter mode (default ``MANUAL``). Possible values |
| 2421 | 1681 | are: |
| 2422 | 1682 | |
| @@ -2426,18 +1686,10 @@ CX2341x Control IDs · 3 unmodified lines | ||
| 2426 | 1686 | :header-rows: 0 |
| 2427 | 1687 | :stub-columns: 0 |
| 2428 | 1688 | |
| 2429 | − | |
| 2430 | − - .. row 1 | |
| 2431 | − | |
| 2432 | − - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL`` | |
| 2433 | − | |
| 2434 | − - Choose the filter manually | |
| 2435 | − | |
| 2436 | − - .. row 2 | |
| 2437 | − | |
| 2438 | − - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO`` | |
| 2439 | − | |
| 2440 | − - Choose the filter automatically | |
| 1689 | + * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL`` | |
| 1690 | + - Choose the filter manually | |
| 1691 | + * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO`` | |
| 1692 | + - Choose the filter automatically | |
| 2441 | 1693 | |
| 2442 | 1694 | |
| 2443 | 1695 | |
| @@ -2447,52 +1699,40 @@ CX2341x Control IDs · 3 unmodified lines | ||
| 2447 | 1699 | |
| 2448 | 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 | + | |
| 1705 | +enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type - | |
| 2451 | 1706 | Select the algorithm to use for the Luma Spatial Filter (default |
| 2452 | 1707 | ``1D_HOR``). Possible values: |
| 2453 | 1708 | |
| 2454 | 1709 | |
| 2455 | 1710 | |
| 1711 | +.. tabularcolumns:: |p{14.5cm}|p{3.0cm}| | |
| 1712 | + | |
| 2456 | 1713 | .. flat-table:: |
| 2457 | 1714 | :header-rows: 0 |
| 2458 | 1715 | :stub-columns: 0 |
| 2459 | 1716 | |
| 2460 | − | |
| 2461 | − - .. row 1 | |
| 2462 | − | |
| 2463 | − - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF`` | |
| 2464 | − | |
| 2465 | − - No filter | |
| 2466 | − | |
| 2467 | − - .. row 2 | |
| 2468 | − | |
| 2469 | − - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR`` | |
| 2470 | − | |
| 2471 | − - One-dimensional horizontal | |
| 2472 | − | |
| 2473 | − - .. row 3 | |
| 2474 | − | |
| 2475 | − - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT`` | |
| 2476 | − | |
| 2477 | − - One-dimensional vertical | |
| 2478 | − | |
| 2479 | − - .. row 4 | |
| 2480 | − | |
| 2481 | − - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE`` | |
| 2482 | − | |
| 2483 | − - Two-dimensional separable | |
| 2484 | − | |
| 2485 | − - .. row 5 | |
| 2486 | − | |
| 2487 | − - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE`` | |
| 2488 | − | |
| 2489 | − - Two-dimensional symmetrical non-separable | |
| 1717 | + * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF`` | |
| 1718 | + - No filter | |
| 1719 | + * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR`` | |
| 1720 | + - One-dimensional horizontal | |
| 1721 | + * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT`` | |
| 1722 | + - One-dimensional vertical | |
| 1723 | + * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE`` | |
| 1724 | + - Two-dimensional separable | |
| 1725 | + * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE`` | |
| 1726 | + - Two-dimensional symmetrical non-separable | |
| 2490 | 1727 | |
| 2491 | 1728 | |
| 2492 | 1729 | |
| 2493 | 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 | + | |
| 1735 | +enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type - | |
| 2496 | 1736 | Select the algorithm for the Chroma Spatial Filter (default |
| 2497 | 1737 | ``1D_HOR``). Possible values are: |
| 2498 | 1738 | |
| @@ -2502,24 +1742,19 @@ CX2341x Control IDs · 3 unmodified lines | ||
| 2502 | 1742 | :header-rows: 0 |
| 2503 | 1743 | :stub-columns: 0 |
| 2504 | 1744 | |
| 2505 | − | |
| 2506 | − - .. row 1 | |
| 2507 | − | |
| 2508 | − - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF`` | |
| 2509 | − | |
| 2510 | − - No filter | |
| 2511 | − | |
| 2512 | − - .. row 2 | |
| 2513 | − | |
| 2514 | − - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR`` | |
| 2515 | − | |
| 2516 | − - One-dimensional horizontal | |
| 1745 | + * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF`` | |
| 1746 | + - No filter | |
| 1747 | + * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR`` | |
| 1748 | + - One-dimensional horizontal | |
| 2517 | 1749 | |
| 2518 | 1750 | |
| 2519 | 1751 | |
| 2520 | 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 | + | |
| 1757 | +enum v4l2_mpeg_cx2341x_video_temporal_filter_mode - | |
| 2523 | 1758 | Sets the Temporal Filter mode (default ``MANUAL``). Possible values |
| 2524 | 1759 | are: |
| 2525 | 1760 | |
| @@ -2529,18 +1764,10 @@ CX2341x Control IDs · 3 unmodified lines | ||
| 2529 | 1764 | :header-rows: 0 |
| 2530 | 1765 | :stub-columns: 0 |
| 2531 | 1766 | |
| 2532 | − | |
| 2533 | − - .. row 1 | |
| 2534 | − | |
| 2535 | − - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL`` | |
| 2536 | − | |
| 2537 | − - Choose the filter manually | |
| 2538 | − | |
| 2539 | − - .. row 2 | |
| 2540 | − | |
| 2541 | − - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO`` | |
| 2542 | − | |
| 2543 | − - Choose the filter automatically | |
| 1767 | + * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL`` | |
| 1768 | + - Choose the filter manually | |
| 1769 | + * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO`` | |
| 1770 | + - Choose the filter automatically | |
| 2544 | 1771 | |
| 2545 | 1772 | |
| 2546 | 1773 | |
| @@ -2550,7 +1777,10 @@ CX2341x Control IDs · 3 unmodified lines | ||
| 2550 | 1777 | |
| 2551 | 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 | + | |
| 1783 | +enum v4l2_mpeg_cx2341x_video_median_filter_type - | |
| 2554 | 1784 | Median Filter Type (default ``OFF``). Possible values are: |
| 2555 | 1785 | |
| 2556 | 1786 | |
| @@ -2559,36 +1789,16 @@ CX2341x Control IDs · 2 unmodified lines | ||
| 2559 | 1789 | :header-rows: 0 |
| 2560 | 1790 | :stub-columns: 0 |
| 2561 | 1791 | |
| 2562 | − | |
| 2563 | − - .. row 1 | |
| 2564 | − | |
| 2565 | − - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF`` | |
| 2566 | − | |
| 2567 | − - No filter | |
| 2568 | − | |
| 2569 | − - .. row 2 | |
| 2570 | − | |
| 2571 | − - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR`` | |
| 2572 | − | |
| 2573 | − - Horizontal filter | |
| 2574 | − | |
| 2575 | − - .. row 3 | |
| 2576 | − | |
| 2577 | − - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT`` | |
| 2578 | − | |
| 2579 | − - Vertical filter | |
| 2580 | − | |
| 2581 | − - .. row 4 | |
| 2582 | − | |
| 2583 | − - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT`` | |
| 2584 | − | |
| 2585 | − - Horizontal and vertical filter | |
| 2586 | − | |
| 2587 | − - .. row 5 | |
| 2588 | − | |
| 2589 | − - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG`` | |
| 2590 | − | |
| 2591 | − - Diagonal filter | |
| 1792 | + * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF`` | |
| 1793 | + - No filter | |
| 1794 | + * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR`` | |
| 1795 | + - Horizontal filter | |
| 1796 | + * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT`` | |
| 1797 | + - Vertical filter | |
| 1798 | + * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT`` | |
| 1799 | + - Horizontal and vertical filter | |
| 1800 | + * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG`` | |
| 1801 | + - Diagonal filter | |
| 2592 | 1802 | |
| 2593 | 1803 | |
| 2594 | 1804 | |
| @@ -2631,7 +1841,10 @@ VPX Control IDs · 36 unmodified lines | ||
| 2631 | 1841 | |
| 2632 | 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 | + | |
| 1847 | +enum v4l2_vp8_num_partitions - | |
| 2635 | 1848 | The number of token partitions to use in VP8 encoder. Possible |
| 2636 | 1849 | values are: |
| 2637 | 1850 | |
| @@ -2641,30 +1854,14 @@ VPX Control IDs · 3 unmodified lines | ||
| 2641 | 1854 | :header-rows: 0 |
| 2642 | 1855 | :stub-columns: 0 |
| 2643 | 1856 | |
| 2644 | − | |
| 2645 | − - .. row 1 | |
| 2646 | − | |
| 2647 | − - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION`` | |
| 2648 | − | |
| 2649 | − - 1 coefficient partition | |
| 2650 | − | |
| 2651 | − - .. row 2 | |
| 2652 | − | |
| 2653 | − - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS`` | |
| 2654 | − | |
| 2655 | − - 2 coefficient partitions | |
| 2656 | − | |
| 2657 | − - .. row 3 | |
| 2658 | − | |
| 2659 | − - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS`` | |
| 2660 | − | |
| 2661 | − - 4 coefficient partitions | |
| 2662 | − | |
| 2663 | − - .. row 4 | |
| 2664 | − | |
| 2665 | − - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS`` | |
| 2666 | − | |
| 2667 | − - 8 coefficient partitions | |
| 1857 | + * - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION`` | |
| 1858 | + - 1 coefficient partition | |
| 1859 | + * - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS`` | |
| 1860 | + - 2 coefficient partitions | |
| 1861 | + * - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS`` | |
| 1862 | + - 4 coefficient partitions | |
| 1863 | + * - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS`` | |
| 1864 | + - 8 coefficient partitions | |
| 2668 | 1865 | |
| 2669 | 1866 | |
| 2670 | 1867 | |
| @@ -2673,37 +1870,28 @@ VPX Control IDs · 2 unmodified lines | ||
| 2673 | 1870 | |
| 2674 | 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 | + | |
| 1876 | +enum v4l2_vp8_num_ref_frames - | |
| 2677 | 1877 | The number of reference pictures for encoding P frames. Possible |
| 2678 | 1878 | values are: |
| 2679 | 1879 | |
| 2680 | − | |
| 1880 | +.. tabularcolumns:: |p{7.9cm}|p{9.6cm}| | |
| 2681 | 1881 | |
| 2682 | 1882 | .. flat-table:: |
| 2683 | 1883 | :header-rows: 0 |
| 2684 | 1884 | :stub-columns: 0 |
| 2685 | 1885 | |
| 2686 | − | |
| 2687 | − - .. row 1 | |
| 2688 | − | |
| 2689 | − - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME`` | |
| 2690 | − | |
| 2691 | − - Last encoded frame will be searched | |
| 2692 | − | |
| 2693 | − - .. row 2 | |
| 2694 | − | |
| 2695 | − - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME`` | |
| 2696 | − | |
| 2697 | − - Two frames will be searched among the last encoded frame, the | |
| 2698 | − golden frame and the alternate reference (altref) frame. The | |
| 2699 | − encoder implementation will decide which two are chosen. | |
| 2700 | − | |
| 2701 | − - .. row 3 | |
| 2702 | − | |
| 2703 | − - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME`` | |
| 2704 | − | |
| 2705 | − - The last encoded frame, the golden frame and the altref frame will | |
| 2706 | − be searched. | |
| 1886 | + * - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME`` | |
| 1887 | + - Last encoded frame will be searched | |
| 1888 | + * - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME`` | |
| 1889 | + - Two frames will be searched among the last encoded frame, the | |
| 1890 | + golden frame and the alternate reference (altref) frame. The | |
| 1891 | + encoder implementation will decide which two are chosen. | |
| 1892 | + * - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME`` | |
| 1893 | + - The last encoded frame, the golden frame and the altref frame will | |
| 1894 | + be searched. | |
| 2707 | 1895 | |
| 2708 | 1896 | |
| 2709 | 1897 | |
| @@ -2726,31 +1914,33 @@ VPX Control IDs · 16 unmodified lines | ||
| 2726 | 1914 | |
| 2727 | 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 | + | |
| 1920 | +enum v4l2_vp8_golden_frame_sel - | |
| 2730 | 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 | 1929 | .. flat-table:: |
| 2735 | 1930 | :header-rows: 0 |
| 2736 | 1931 | :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 1 | |
| 2740 | − | |
| 2741 | − - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV`` | |
| 2742 | − | |
| 2743 | − - Use the (n-2)th frame as a golden frame, current frame index being | |
| 2744 | − 'n'. | |
| 2745 | − | |
| 2746 | − - .. row 2 | |
| 2747 | − | |
| 2748 | − - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD`` | |
| 2749 | − | |
| 2750 | − - Use the previous specific frame indicated by | |
| 2751 | − V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD as a | |
| 2752 | − golden frame. | |
| 1941 | +.. raw:: latex | |
| 2753 | 1942 | |
| 1943 | + \end{adjustbox} | |
| 2754 | 1944 | |
| 2755 | 1945 | |
| 2756 | 1946 | ``V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (integer)`` |
| @@ -2791,7 +1981,10 @@ Camera Control IDs · 34 unmodified lines | ||
| 2791 | 1981 | |
| 2792 | 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 | + | |
| 1987 | +enum v4l2_exposure_auto_type - | |
| 2795 | 1988 | Enables automatic adjustments of the exposure time and/or iris |
| 2796 | 1989 | aperture. The effect of manual changes of the exposure time or iris |
| 2797 | 1990 | aperture while these features are enabled is undefined, drivers |
| @@ -2803,30 +1996,14 @@ Camera Control IDs · 5 unmodified lines | ||
| 2803 | 1996 | :header-rows: 0 |
| 2804 | 1997 | :stub-columns: 0 |
| 2805 | 1998 | |
| 2806 | − | |
| 2807 | − - .. row 1 | |
| 2808 | − | |
| 2809 | − - ``V4L2_EXPOSURE_AUTO`` | |
| 2810 | − | |
| 2811 | − - Automatic exposure time, automatic iris aperture. | |
| 2812 | − | |
| 2813 | − - .. row 2 | |
| 2814 | − | |
| 2815 | − - ``V4L2_EXPOSURE_MANUAL`` | |
| 2816 | − | |
| 2817 | − - Manual exposure time, manual iris. | |
| 2818 | − | |
| 2819 | − - .. row 3 | |
| 2820 | − | |
| 2821 | − - ``V4L2_EXPOSURE_SHUTTER_PRIORITY`` | |
| 2822 | − | |
| 2823 | − - Manual exposure time, auto iris. | |
| 2824 | − | |
| 2825 | − - .. row 4 | |
| 2826 | − | |
| 2827 | − - ``V4L2_EXPOSURE_APERTURE_PRIORITY`` | |
| 2828 | − | |
| 2829 | − - Auto exposure time, manual iris. | |
| 1999 | + * - ``V4L2_EXPOSURE_AUTO`` | |
| 2000 | + - Automatic exposure time, automatic iris aperture. | |
| 2001 | + * - ``V4L2_EXPOSURE_MANUAL`` | |
| 2002 | + - Manual exposure time, manual iris. | |
| 2003 | + * - ``V4L2_EXPOSURE_SHUTTER_PRIORITY`` | |
| 2004 | + - Manual exposure time, auto iris. | |
| 2005 | + * - ``V4L2_EXPOSURE_APERTURE_PRIORITY`` | |
| 2006 | + - Auto exposure time, manual iris. | |
| 2830 | 2007 | |
| 2831 | 2008 | |
| 2832 | 2009 | |
| @@ -2856,45 +2033,32 @@ Camera Control IDs · 23 unmodified lines | ||
| 2856 | 2033 | |
| 2857 | 2034 | .. _v4l2-exposure-metering: |
| 2858 | 2035 | |
| 2859 | −``V4L2_CID_EXPOSURE_METERING (enum v4l2_exposure_metering)`` | |
| 2860 | − Determines how the camera measures the amount of light available for | |
| 2861 | − the frame exposure. Possible values are: | |
| 2862 | − | |
| 2863 | − | |
| 2864 | − | |
| 2865 | −.. flat-table:: | |
| 2866 | − :header-rows: 0 | |
| 2867 | − :stub-columns: 0 | |
| 2868 | − | |
| 2869 | − | |
| 2870 | − - .. row 1 | |
| 2871 | − | |
| 2872 | − - ``V4L2_EXPOSURE_METERING_AVERAGE`` | |
| 2873 | − | |
| 2874 | − - Use the light information coming from the entire frame and average | |
| 2875 | − giving no weighting to any particular portion of the metered area. | |
| 2876 | − | |
| 2877 | − - .. row 2 | |
| 2878 | − | |
| 2879 | − - ``V4L2_EXPOSURE_METERING_CENTER_WEIGHTED`` | |
| 2880 | − | |
| 2881 | − - Average the light information coming from the entire frame giving | |
| 2882 | − priority to the center of the metered area. | |
| 2883 | − | |
| 2884 | − - .. row 3 | |
| 2885 | − | |
| 2886 | − - ``V4L2_EXPOSURE_METERING_SPOT`` | |
| 2036 | +``V4L2_CID_EXPOSURE_METERING`` | |
| 2037 | + (enum) | |
| 2887 | 2038 | |
| 2888 | − - Measure only very small area at the center of the frame. | |
| 2039 | +enum v4l2_exposure_metering - | |
| 2040 | + Determines how the camera measures the amount of light available for | |
| 2041 | + the frame exposure. Possible values are: | |
| 2889 | 2042 | |
| 2890 | − - .. row 4 | |
| 2043 | +.. 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 several | |
| 2895 | − points of the frame and the results are combined. The algorithm of | |
| 2896 | − the zones selection and their significance in calculating the | |
| 2897 | − final value is device dependent. | |
| 2049 | + * - ``V4L2_EXPOSURE_METERING_AVERAGE`` | |
| 2050 | + - Use the light information coming from the entire frame and average | |
| 2051 | + giving no weighting to any particular portion of the metered area. | |
| 2052 | + * - ``V4L2_EXPOSURE_METERING_CENTER_WEIGHTED`` | |
| 2053 | + - Average the light information coming from the entire frame giving | |
| 2054 | + priority to the center of the metered area. | |
| 2055 | + * - ``V4L2_EXPOSURE_METERING_SPOT`` | |
| 2056 | + - Measure only very small area at the center of the frame. | |
| 2057 | + * - ``V4L2_EXPOSURE_METERING_MATRIX`` | |
| 2058 | + - A multi-zone metering. The light intensity is measured in several | |
| 2059 | + points of the frame and the results are combined. The algorithm of | |
| 2060 | + the zones selection and their significance in calculating the | |
| 2061 | + final value is device dependent. | |
| 2898 | 2062 | |
| 2899 | 2063 | |
| 2900 | 2064 | |
| @@ -2968,77 +2132,48 @@ Camera Control IDs · 67 unmodified lines | ||
| 2968 | 2132 | control may stop updates of the ``V4L2_CID_AUTO_FOCUS_STATUS`` |
| 2969 | 2133 | control value. |
| 2970 | 2134 | |
| 2971 | − | |
| 2135 | +.. tabularcolumns:: |p{6.5cm}|p{11.0cm}| | |
| 2972 | 2136 | |
| 2973 | 2137 | .. flat-table:: |
| 2974 | 2138 | :header-rows: 0 |
| 2975 | 2139 | :stub-columns: 0 |
| 2976 | 2140 | |
| 2977 | − | |
| 2978 | − - .. row 1 | |
| 2979 | − | |
| 2980 | − - ``V4L2_AUTO_FOCUS_STATUS_IDLE`` | |
| 2981 | − | |
| 2982 | − - Automatic focus is not active. | |
| 2983 | − | |
| 2984 | − - .. row 2 | |
| 2985 | − | |
| 2986 | − - ``V4L2_AUTO_FOCUS_STATUS_BUSY`` | |
| 2987 | − | |
| 2988 | − - Automatic focusing is in progress. | |
| 2989 | − | |
| 2990 | − - .. row 3 | |
| 2991 | − | |
| 2992 | − - ``V4L2_AUTO_FOCUS_STATUS_REACHED`` | |
| 2993 | − | |
| 2994 | − - Focus has been reached. | |
| 2995 | − | |
| 2996 | − - .. row 4 | |
| 2997 | − | |
| 2998 | − - ``V4L2_AUTO_FOCUS_STATUS_FAILED`` | |
| 2999 | − | |
| 3000 | − - Automatic focus has failed, the driver will not transition from | |
| 3001 | − this state until another action is performed by an application. | |
| 2141 | + * - ``V4L2_AUTO_FOCUS_STATUS_IDLE`` | |
| 2142 | + - Automatic focus is not active. | |
| 2143 | + * - ``V4L2_AUTO_FOCUS_STATUS_BUSY`` | |
| 2144 | + - Automatic focusing is in progress. | |
| 2145 | + * - ``V4L2_AUTO_FOCUS_STATUS_REACHED`` | |
| 2146 | + - Focus has been reached. | |
| 2147 | + * - ``V4L2_AUTO_FOCUS_STATUS_FAILED`` | |
| 2148 | + - Automatic focus has failed, the driver will not transition from | |
| 2149 | + this state until another action is performed by an application. | |
| 3002 | 2150 | |
| 3003 | 2151 | |
| 3004 | 2152 | |
| 3005 | 2153 | .. _v4l2-auto-focus-range: |
| 3006 | 2154 | |
| 3007 | −``V4L2_CID_AUTO_FOCUS_RANGE (enum v4l2_auto_focus_range)`` | |
| 3008 | − Determines auto focus distance range for which lens may be adjusted. | |
| 2155 | +``V4L2_CID_AUTO_FOCUS_RANGE`` | |
| 2156 | + (enum) | |
| 3009 | 2157 | |
| 2158 | +enum 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 | 2163 | .. flat-table:: |
| 3013 | 2164 | :header-rows: 0 |
| 3014 | 2165 | :stub-columns: 0 |
| 3015 | 2166 | |
| 3016 | − | |
| 3017 | − - .. row 1 | |
| 3018 | − | |
| 3019 | − - ``V4L2_AUTO_FOCUS_RANGE_AUTO`` | |
| 3020 | − | |
| 3021 | − - The camera automatically selects the focus range. | |
| 3022 | − | |
| 3023 | − - .. row 2 | |
| 3024 | − | |
| 3025 | − - ``V4L2_AUTO_FOCUS_RANGE_NORMAL`` | |
| 3026 | − | |
| 3027 | − - Normal distance range, limited for best automatic focus | |
| 3028 | − performance. | |
| 3029 | − | |
| 3030 | − - .. row 3 | |
| 3031 | − | |
| 3032 | − - ``V4L2_AUTO_FOCUS_RANGE_MACRO`` | |
| 3033 | − | |
| 3034 | − - Macro (close-up) auto focus. The camera will use its minimum | |
| 3035 | − possible distance for auto focus. | |
| 3036 | − | |
| 3037 | − - .. row 4 | |
| 3038 | − | |
| 3039 | − - ``V4L2_AUTO_FOCUS_RANGE_INFINITY`` | |
| 3040 | − | |
| 3041 | − - The lens is set to focus on an object at infinite distance. | |
| 2167 | + * - ``V4L2_AUTO_FOCUS_RANGE_AUTO`` | |
| 2168 | + - The camera automatically selects the focus range. | |
| 2169 | + * - ``V4L2_AUTO_FOCUS_RANGE_NORMAL`` | |
| 2170 | + - Normal distance range, limited for best automatic focus | |
| 2171 | + performance. | |
| 2172 | + * - ``V4L2_AUTO_FOCUS_RANGE_MACRO`` | |
| 2173 | + - Macro (close-up) auto focus. The camera will use its minimum | |
| 2174 | + possible distance for auto focus. | |
| 2175 | + * - ``V4L2_AUTO_FOCUS_RANGE_INFINITY`` | |
| 2176 | + - The lens is set to focus on an object at infinite distance. | |
| 3042 | 2177 | |
| 3043 | 2178 | |
| 3044 | 2179 | |
| @@ -3088,90 +2223,53 @@ Camera Control IDs · 43 unmodified lines | ||
| 3088 | 2223 | |
| 3089 | 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 | + | |
| 2229 | +enum v4l2_auto_n_preset_white_balance - | |
| 3092 | 2230 | Sets white balance to automatic, manual or a preset. The presets |
| 3093 | 2231 | determine color temperature of the light as a hint to the camera for |
| 3094 | 2232 | white balance adjustments resulting in most accurate color |
| 3095 | 2233 | representation. The following white balance presets are listed in |
| 3096 | 2234 | order of increasing color temperature. |
| 3097 | 2235 | |
| 3098 | − | |
| 2236 | +.. tabularcolumns:: |p{7.0 cm}|p{10.5cm}| | |
| 3099 | 2237 | |
| 3100 | 2238 | .. flat-table:: |
| 3101 | 2239 | :header-rows: 0 |
| 3102 | 2240 | :stub-columns: 0 |
| 3103 | 2241 | |
| 3104 | − | |
| 3105 | − - .. row 1 | |
| 3106 | − | |
| 3107 | − - ``V4L2_WHITE_BALANCE_MANUAL`` | |
| 3108 | − | |
| 3109 | − - Manual white balance. | |
| 3110 | − | |
| 3111 | − - .. row 2 | |
| 3112 | − | |
| 3113 | − - ``V4L2_WHITE_BALANCE_AUTO`` | |
| 3114 | − | |
| 3115 | − - Automatic white balance adjustments. | |
| 3116 | − | |
| 3117 | − - .. row 3 | |
| 3118 | − | |
| 3119 | − - ``V4L2_WHITE_BALANCE_INCANDESCENT`` | |
| 3120 | − | |
| 3121 | − - White balance setting for incandescent (tungsten) lighting. It | |
| 3122 | − generally cools down the colors and corresponds approximately to | |
| 3123 | − 2500...3500 K color temperature range. | |
| 3124 | − | |
| 3125 | − - .. row 4 | |
| 3126 | − | |
| 3127 | − - ``V4L2_WHITE_BALANCE_FLUORESCENT`` | |
| 3128 | − | |
| 3129 | − - White balance preset for fluorescent lighting. It corresponds | |
| 3130 | − approximately to 4000...5000 K color temperature. | |
| 3131 | − | |
| 3132 | − - .. row 5 | |
| 3133 | − | |
| 3134 | − - ``V4L2_WHITE_BALANCE_FLUORESCENT_H`` | |
| 3135 | − | |
| 3136 | − - With this setting the camera will compensate for fluorescent H | |
| 3137 | − lighting. | |
| 3138 | − | |
| 3139 | − - .. row 6 | |
| 3140 | − | |
| 3141 | − - ``V4L2_WHITE_BALANCE_HORIZON`` | |
| 3142 | − | |
| 3143 | − - White balance setting for horizon daylight. It corresponds | |
| 3144 | − approximately to 5000 K color temperature. | |
| 3145 | − | |
| 3146 | − - .. row 7 | |
| 3147 | − | |
| 3148 | − - ``V4L2_WHITE_BALANCE_DAYLIGHT`` | |
| 3149 | − | |
| 3150 | − - White balance preset for daylight (with clear sky). It corresponds | |
| 3151 | − approximately to 5000...6500 K color temperature. | |
| 3152 | − | |
| 3153 | − - .. row 8 | |
| 3154 | − | |
| 3155 | − - ``V4L2_WHITE_BALANCE_FLASH`` | |
| 3156 | − | |
| 3157 | − - With this setting the camera will compensate for the flash light. | |
| 3158 | − It slightly warms up the colors and corresponds roughly to | |
| 3159 | − 5000...5500 K color temperature. | |
| 3160 | − | |
| 3161 | − - .. row 9 | |
| 3162 | − | |
| 3163 | − - ``V4L2_WHITE_BALANCE_CLOUDY`` | |
| 3164 | − | |
| 3165 | − - White balance preset for moderately overcast sky. This option | |
| 3166 | − corresponds approximately to 6500...8000 K color temperature | |
| 3167 | − range. | |
| 3168 | − | |
| 3169 | − - .. row 10 | |
| 3170 | − | |
| 3171 | − - ``V4L2_WHITE_BALANCE_SHADE`` | |
| 3172 | − | |
| 3173 | − - White balance preset for shade or heavily overcast sky. It | |
| 3174 | − corresponds approximately to 9000...10000 K color temperature. | |
| 2242 | + * - ``V4L2_WHITE_BALANCE_MANUAL`` | |
| 2243 | + - Manual white balance. | |
| 2244 | + * - ``V4L2_WHITE_BALANCE_AUTO`` | |
| 2245 | + - Automatic white balance adjustments. | |
| 2246 | + * - ``V4L2_WHITE_BALANCE_INCANDESCENT`` | |
| 2247 | + - White balance setting for incandescent (tungsten) lighting. It | |
| 2248 | + generally cools down the colors and corresponds approximately to | |
| 2249 | + 2500...3500 K color temperature range. | |
| 2250 | + * - ``V4L2_WHITE_BALANCE_FLUORESCENT`` | |
| 2251 | + - White balance preset for fluorescent lighting. It corresponds | |
| 2252 | + approximately to 4000...5000 K color temperature. | |
| 2253 | + * - ``V4L2_WHITE_BALANCE_FLUORESCENT_H`` | |
| 2254 | + - With this setting the camera will compensate for fluorescent H | |
| 2255 | + lighting. | |
| 2256 | + * - ``V4L2_WHITE_BALANCE_HORIZON`` | |
| 2257 | + - White balance setting for horizon daylight. It corresponds | |
| 2258 | + approximately to 5000 K color temperature. | |
| 2259 | + * - ``V4L2_WHITE_BALANCE_DAYLIGHT`` | |
| 2260 | + - White balance preset for daylight (with clear sky). It corresponds | |
| 2261 | + approximately to 5000...6500 K color temperature. | |
| 2262 | + * - ``V4L2_WHITE_BALANCE_FLASH`` | |
| 2263 | + - With this setting the camera will compensate for the flash light. | |
| 2264 | + It slightly warms up the colors and corresponds roughly to | |
| 2265 | + 5000...5500 K color temperature. | |
| 2266 | + * - ``V4L2_WHITE_BALANCE_CLOUDY`` | |
| 2267 | + - White balance preset for moderately overcast sky. This option | |
| 2268 | + corresponds approximately to 6500...8000 K color temperature | |
| 2269 | + range. | |
| 2270 | + * - ``V4L2_WHITE_BALANCE_SHADE`` | |
| 2271 | + - White balance preset for shade or heavily overcast sky. It | |
| 2272 | + corresponds approximately to 9000...10000 K color temperature. | |
| 3175 | 2273 | |
| 3176 | 2274 | |
| 3177 | 2275 | |
| @@ -3205,7 +2303,10 @@ Camera Control IDs · 27 unmodified lines | ||
| 3205 | 2303 | |
| 3206 | 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 | + | |
| 2309 | +enum v4l2_iso_sensitivity_type - | |
| 3209 | 2310 | Enables or disables automatic ISO sensitivity adjustments. |
| 3210 | 2311 | |
| 3211 | 2312 | |
| @@ -3214,24 +2315,19 @@ Camera Control IDs · 2 unmodified lines | ||
| 3214 | 2315 | :header-rows: 0 |
| 3215 | 2316 | :stub-columns: 0 |
| 3216 | 2317 | |
| 3217 | − | |
| 3218 | − - .. row 1 | |
| 3219 | − | |
| 3220 | − - ``V4L2_CID_ISO_SENSITIVITY_MANUAL`` | |
| 3221 | − | |
| 3222 | − - Manual ISO sensitivity. | |
| 3223 | − | |
| 3224 | − - .. row 2 | |
| 3225 | − | |
| 3226 | − - ``V4L2_CID_ISO_SENSITIVITY_AUTO`` | |
| 3227 | − | |
| 3228 | − - Automatic ISO sensitivity adjustments. | |
| 2318 | + * - ``V4L2_CID_ISO_SENSITIVITY_MANUAL`` | |
| 2319 | + - Manual ISO sensitivity. | |
| 2320 | + * - ``V4L2_CID_ISO_SENSITIVITY_AUTO`` | |
| 2321 | + - Automatic ISO sensitivity adjustments. | |
| 3229 | 2322 | |
| 3230 | 2323 | |
| 3231 | 2324 | |
| 3232 | 2325 | .. _v4l2-scene-mode: |
| 3233 | 2326 | |
| 3234 | −``V4L2_CID_SCENE_MODE (enum v4l2_scene_mode)`` | |
| 2327 | +``V4L2_CID_SCENE_MODE`` | |
| 2328 | + (enum) | |
| 2329 | + | |
| 2330 | +enum v4l2_scene_mode - | |
| 3235 | 2331 | This control allows to select scene programs as the camera automatic |
| 3236 | 2332 | modes optimized for common shooting scenes. Within these modes the |
| 3237 | 2333 | camera determines best exposure, aperture, focusing, light metering, |
| @@ -3243,133 +2339,77 @@ Camera Control IDs · 5 unmodified lines | ||
| 3243 | 2339 | to ``V4L2_SCENE_MODE_NONE`` to make sure the other possibly related |
| 3244 | 2340 | controls are accessible. The following scene programs are defined: |
| 3245 | 2341 | |
| 3246 | − | |
| 2342 | +.. tabularcolumns:: |p{6.0cm}|p{11.5cm}| | |
| 3247 | 2343 | |
| 3248 | 2344 | .. flat-table:: |
| 3249 | 2345 | :header-rows: 0 |
| 3250 | 2346 | :stub-columns: 0 |
| 3251 | 2347 | |
| 3252 | − | |
| 3253 | − - .. row 1 | |
| 3254 | − | |
| 3255 | − - ``V4L2_SCENE_MODE_NONE`` | |
| 3256 | − | |
| 3257 | − - The scene mode feature is disabled. | |
| 3258 | − | |
| 3259 | − - .. row 2 | |
| 3260 | − | |
| 3261 | − - ``V4L2_SCENE_MODE_BACKLIGHT`` | |
| 3262 | − | |
| 3263 | − - Backlight. Compensates for dark shadows when light is coming from | |
| 3264 | − behind a subject, also by automatically turning on the flash. | |
| 3265 | − | |
| 3266 | − - .. row 3 | |
| 3267 | − | |
| 3268 | − - ``V4L2_SCENE_MODE_BEACH_SNOW`` | |
| 3269 | − | |
| 3270 | − - Beach and snow. This mode compensates for all-white or bright | |
| 3271 | − scenes, which tend to look gray and low contrast, when camera's | |
| 3272 | − automatic exposure is based on an average scene brightness. To | |
| 3273 | − compensate, this mode automatically slightly overexposes the | |
| 3274 | − frames. The white balance may also be adjusted to compensate for | |
| 3275 | − the fact that reflected snow looks bluish rather than white. | |
| 3276 | − | |
| 3277 | − - .. row 4 | |
| 3278 | − | |
| 3279 | − - ``V4L2_SCENE_MODE_CANDLELIGHT`` | |
| 3280 | − | |
| 3281 | − - Candle light. The camera generally raises the ISO sensitivity and | |
| 3282 | − lowers the shutter speed. This mode compensates for relatively | |
| 3283 | − close subject in the scene. The flash is disabled in order to | |
| 3284 | − preserve the ambiance of the light. | |
| 3285 | − | |
| 3286 | − - .. row 5 | |
| 3287 | − | |
| 3288 | − - ``V4L2_SCENE_MODE_DAWN_DUSK`` | |
| 3289 | − | |
| 3290 | − - Dawn and dusk. Preserves the colors seen in low natural light | |
| 3291 | − before dusk and after down. The camera may turn off the flash, and | |
| 3292 | − automatically focus at infinity. It will usually boost saturation | |
| 3293 | − and lower the shutter speed. | |
| 3294 | − | |
| 3295 | − - .. row 6 | |
| 3296 | − | |
| 3297 | − - ``V4L2_SCENE_MODE_FALL_COLORS`` | |
| 3298 | − | |
| 3299 | − - Fall colors. Increases saturation and adjusts white balance for | |
| 3300 | − color enhancement. Pictures of autumn leaves get saturated reds | |
| 3301 | − and yellows. | |
| 3302 | − | |
| 3303 | − - .. row 7 | |
| 3304 | − | |
| 3305 | − - ``V4L2_SCENE_MODE_FIREWORKS`` | |
| 3306 | − | |
| 3307 | − - Fireworks. Long exposure times are used to capture the expanding | |
| 3308 | − burst of light from a firework. The camera may invoke image | |
| 3309 | − stabilization. | |
| 3310 | − | |
| 3311 | − - .. row 8 | |
| 3312 | − | |
| 3313 | − - ``V4L2_SCENE_MODE_LANDSCAPE`` | |
| 3314 | − | |
| 3315 | − - Landscape. The camera may choose a small aperture to provide deep | |
| 3316 | − depth of field and long exposure duration to help capture detail | |
| 3317 | − in dim light conditions. The focus is fixed at infinity. Suitable | |
| 3318 | − for distant and wide scenery. | |
| 3319 | − | |
| 3320 | − - .. row 9 | |
| 3321 | − | |
| 3322 | − - ``V4L2_SCENE_MODE_NIGHT`` | |
| 3323 | − | |
| 3324 | − - Night, also known as Night Landscape. Designed for low light | |
| 3325 | − conditions, it preserves detail in the dark areas without blowing | |
| 3326 | − out bright objects. The camera generally sets itself to a | |
| 3327 | − medium-to-high ISO sensitivity, with a relatively long exposure | |
| 3328 | − time, and turns flash off. As such, there will be increased image | |
| 3329 | − noise and the possibility of blurred image. | |
| 3330 | − | |
| 3331 | − - .. row 10 | |
| 3332 | − | |
| 3333 | − - ``V4L2_SCENE_MODE_PARTY_INDOOR`` | |
| 3334 | − | |
| 3335 | − - Party and indoor. Designed to capture indoor scenes that are lit | |
| 3336 | − by indoor background lighting as well as the flash. The camera | |
| 3337 | − usually increases ISO sensitivity, and adjusts exposure for the | |
| 3338 | − low light conditions. | |
| 3339 | − | |
| 3340 | − - .. row 11 | |
| 3341 | − | |
| 3342 | − - ``V4L2_SCENE_MODE_PORTRAIT`` | |
| 3343 | − | |
| 3344 | − - Portrait. The camera adjusts the aperture so that the depth of | |
| 3345 | − field is reduced, which helps to isolate the subject against a | |
| 3346 | − smooth background. Most cameras recognize the presence of faces in | |
| 3347 | − the scene and focus on them. The color hue is adjusted to enhance | |
| 3348 | − skin tones. The intensity of the flash is often reduced. | |
| 3349 | − | |
| 3350 | − - .. row 12 | |
| 3351 | − | |
| 3352 | − - ``V4L2_SCENE_MODE_SPORTS`` | |
| 3353 | − | |
| 3354 | − - Sports. Significantly increases ISO and uses a fast shutter speed | |
| 3355 | − to freeze motion of rapidly-moving subjects. Increased image noise | |
| 3356 | − may be seen in this mode. | |
| 3357 | − | |
| 3358 | − - .. row 13 | |
| 3359 | − | |
| 3360 | − - ``V4L2_SCENE_MODE_SUNSET`` | |
| 3361 | − | |
| 3362 | − - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps | |
| 3363 | − up the saturation. | |
| 3364 | − | |
| 3365 | − - .. row 14 | |
| 3366 | − | |
| 3367 | − - ``V4L2_SCENE_MODE_TEXT`` | |
| 3368 | − | |
| 3369 | − - Text. It applies extra contrast and sharpness, it is typically a | |
| 3370 | − black-and-white mode optimized for readability. Automatic focus | |
| 3371 | − may be switched to close-up mode and this setting may also involve | |
| 3372 | − some lens-distortion correction. | |
| 2348 | + * - ``V4L2_SCENE_MODE_NONE`` | |
| 2349 | + - The scene mode feature is disabled. | |
| 2350 | + * - ``V4L2_SCENE_MODE_BACKLIGHT`` | |
| 2351 | + - Backlight. Compensates for dark shadows when light is coming from | |
| 2352 | + behind a subject, also by automatically turning on the flash. | |
| 2353 | + * - ``V4L2_SCENE_MODE_BEACH_SNOW`` | |
| 2354 | + - Beach and snow. This mode compensates for all-white or bright | |
| 2355 | + scenes, which tend to look gray and low contrast, when camera's | |
| 2356 | + automatic exposure is based on an average scene brightness. To | |
| 2357 | + compensate, this mode automatically slightly overexposes the | |
| 2358 | + frames. The white balance may also be adjusted to compensate for | |
| 2359 | + the fact that reflected snow looks bluish rather than white. | |
| 2360 | + * - ``V4L2_SCENE_MODE_CANDLELIGHT`` | |
| 2361 | + - Candle light. The camera generally raises the ISO sensitivity and | |
| 2362 | + lowers the shutter speed. This mode compensates for relatively | |
| 2363 | + close subject in the scene. The flash is disabled in order to | |
| 2364 | + preserve the ambiance of the light. | |
| 2365 | + * - ``V4L2_SCENE_MODE_DAWN_DUSK`` | |
| 2366 | + - Dawn and dusk. Preserves the colors seen in low natural light | |
| 2367 | + before dusk and after down. The camera may turn off the flash, and | |
| 2368 | + automatically focus at infinity. It will usually boost saturation | |
| 2369 | + and lower the shutter speed. | |
| 2370 | + * - ``V4L2_SCENE_MODE_FALL_COLORS`` | |
| 2371 | + - Fall colors. Increases saturation and adjusts white balance for | |
| 2372 | + color enhancement. Pictures of autumn leaves get saturated reds | |
| 2373 | + and yellows. | |
| 2374 | + * - ``V4L2_SCENE_MODE_FIREWORKS`` | |
| 2375 | + - Fireworks. Long exposure times are used to capture the expanding | |
| 2376 | + burst of light from a firework. The camera may invoke image | |
| 2377 | + stabilization. | |
| 2378 | + * - ``V4L2_SCENE_MODE_LANDSCAPE`` | |
| 2379 | + - Landscape. The camera may choose a small aperture to provide deep | |
| 2380 | + depth of field and long exposure duration to help capture detail | |
| 2381 | + in dim light conditions. The focus is fixed at infinity. Suitable | |
| 2382 | + for distant and wide scenery. | |
| 2383 | + * - ``V4L2_SCENE_MODE_NIGHT`` | |
| 2384 | + - Night, also known as Night Landscape. Designed for low light | |
| 2385 | + conditions, it preserves detail in the dark areas without blowing | |
| 2386 | + out bright objects. The camera generally sets itself to a | |
| 2387 | + medium-to-high ISO sensitivity, with a relatively long exposure | |
| 2388 | + time, and turns flash off. As such, there will be increased image | |
| 2389 | + noise and the possibility of blurred image. | |
| 2390 | + * - ``V4L2_SCENE_MODE_PARTY_INDOOR`` | |
| 2391 | + - Party and indoor. Designed to capture indoor scenes that are lit | |
| 2392 | + by indoor background lighting as well as the flash. The camera | |
| 2393 | + usually increases ISO sensitivity, and adjusts exposure for the | |
| 2394 | + low light conditions. | |
| 2395 | + * - ``V4L2_SCENE_MODE_PORTRAIT`` | |
| 2396 | + - Portrait. The camera adjusts the aperture so that the depth of | |
| 2397 | + field is reduced, which helps to isolate the subject against a | |
| 2398 | + smooth background. Most cameras recognize the presence of faces in | |
| 2399 | + the scene and focus on them. The color hue is adjusted to enhance | |
| 2400 | + skin tones. The intensity of the flash is often reduced. | |
| 2401 | + * - ``V4L2_SCENE_MODE_SPORTS`` | |
| 2402 | + - Sports. Significantly increases ISO and uses a fast shutter speed | |
| 2403 | + to freeze motion of rapidly-moving subjects. Increased image noise | |
| 2404 | + may be seen in this mode. | |
| 2405 | + * - ``V4L2_SCENE_MODE_SUNSET`` | |
| 2406 | + - Sunset. Preserves deep hues seen in sunsets and sunrises. It bumps | |
| 2407 | + up the saturation. | |
| 2408 | + * - ``V4L2_SCENE_MODE_TEXT`` | |
| 2409 | + - Text. It applies extra contrast and sharpness, it is typically a | |
| 2410 | + black-and-white mode optimized for readability. Automatic focus | |
| 2411 | + may be switched to close-up mode and this setting may also involve | |
| 2412 | + some lens-distortion correction. | |
| 3373 | 2413 | |
| 3374 | 2414 | |
| 3375 | 2415 | |
| @@ -3393,24 +2433,12 @@ Camera Control IDs · 17 unmodified lines | ||
| 3393 | 2433 | :header-rows: 0 |
| 3394 | 2434 | :stub-columns: 0 |
| 3395 | 2435 | |
| 3396 | − | |
| 3397 | − - .. row 1 | |
| 3398 | − | |
| 3399 | − - ``V4L2_LOCK_EXPOSURE`` | |
| 3400 | − | |
| 3401 | − - Automatic exposure adjustments lock. | |
| 3402 | − | |
| 3403 | − - .. row 2 | |
| 3404 | − | |
| 3405 | − - ``V4L2_LOCK_WHITE_BALANCE`` | |
| 3406 | − | |
| 3407 | − - Automatic white balance adjustments lock. | |
| 3408 | − | |
| 3409 | − - .. row 3 | |
| 3410 | − | |
| 3411 | − - ``V4L2_LOCK_FOCUS`` | |
| 3412 | − | |
| 3413 | − - Automatic focus lock. | |
| 2436 | + * - ``V4L2_LOCK_EXPOSURE`` | |
| 2437 | + - Automatic exposure adjustments lock. | |
| 2438 | + * - ``V4L2_LOCK_WHITE_BALANCE`` | |
| 2439 | + - Automatic white balance adjustments lock. | |
| 2440 | + * - ``V4L2_LOCK_FOCUS`` | |
| 2441 | + - Automatic focus lock. | |
| 3414 | 2442 | |
| 3415 | 2443 | |
| 3416 | 2444 | |
| @@ -3570,7 +2598,10 @@ FM_TX Control IDs · 153 unmodified lines | ||
| 3570 | 2598 | Configures pilot tone frequency value. Unit is in Hz. The range and |
| 3571 | 2599 | step are driver-specific. |
| 3572 | 2600 | |
| 3573 | −``V4L2_CID_TUNE_PREEMPHASIS (enum v4l2_preemphasis)`` | |
| 2601 | +``V4L2_CID_TUNE_PREEMPHASIS`` | |
| 2602 | + (enum) | |
| 2603 | + | |
| 2604 | +enum v4l2_preemphasis - | |
| 3574 | 2605 | Configures the pre-emphasis value for broadcasting. A pre-emphasis |
| 3575 | 2606 | filter is applied to the broadcast to accentuate the high audio |
| 3576 | 2607 | frequencies. Depending on the region, a time constant of either 50 |
| @@ -3583,24 +2614,12 @@ FM_TX Control IDs · 6 unmodified lines | ||
| 3583 | 2614 | :header-rows: 0 |
| 3584 | 2615 | :stub-columns: 0 |
| 3585 | 2616 | |
| 3586 | − | |
| 3587 | − - .. row 1 | |
| 3588 | − | |
| 3589 | − - ``V4L2_PREEMPHASIS_DISABLED`` | |
| 3590 | − | |
| 3591 | − - No pre-emphasis is applied. | |
| 3592 | − | |
| 3593 | − - .. row 2 | |
| 3594 | − | |
| 3595 | − - ``V4L2_PREEMPHASIS_50_uS`` | |
| 3596 | − | |
| 3597 | − - A pre-emphasis of 50 uS is used. | |
| 3598 | − | |
| 3599 | − - .. row 3 | |
| 3600 | − | |
| 3601 | − - ``V4L2_PREEMPHASIS_75_uS`` | |
| 3602 | − | |
| 3603 | − - A pre-emphasis of 75 uS is used. | |
| 2617 | + * - ``V4L2_PREEMPHASIS_DISABLED`` | |
| 2618 | + - No pre-emphasis is applied. | |
| 2619 | + * - ``V4L2_PREEMPHASIS_50_uS`` | |
| 2620 | + - A pre-emphasis of 50 uS is used. | |
| 2621 | + * - ``V4L2_PREEMPHASIS_75_uS`` | |
| 2622 | + - A pre-emphasis of 75 uS is used. | |
| 3604 | 2623 | |
| 3605 | 2624 | |
| 3606 | 2625 | |
| @@ -3684,51 +2703,31 @@ Flash Control IDs · 77 unmodified lines | ||
| 3684 | 2703 | :header-rows: 0 |
| 3685 | 2704 | :stub-columns: 0 |
| 3686 | 2705 | |
| 3687 | − | |
| 3688 | − - .. row 1 | |
| 3689 | − | |
| 3690 | − - ``V4L2_FLASH_LED_MODE_NONE`` | |
| 3691 | − | |
| 3692 | − - Off. | |
| 3693 | − | |
| 3694 | − - .. row 2 | |
| 3695 | − | |
| 3696 | − - ``V4L2_FLASH_LED_MODE_FLASH`` | |
| 3697 | − | |
| 3698 | − - Flash mode. | |
| 3699 | − | |
| 3700 | − - .. row 3 | |
| 3701 | − | |
| 3702 | − - ``V4L2_FLASH_LED_MODE_TORCH`` | |
| 3703 | − | |
| 3704 | − - Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY. | |
| 2706 | + * - ``V4L2_FLASH_LED_MODE_NONE`` | |
| 2707 | + - Off. | |
| 2708 | + * - ``V4L2_FLASH_LED_MODE_FLASH`` | |
| 2709 | + - Flash mode. | |
| 2710 | + * - ``V4L2_FLASH_LED_MODE_TORCH`` | |
| 2711 | + - Torch mode. See V4L2_CID_FLASH_TORCH_INTENSITY. | |
| 3705 | 2712 | |
| 3706 | 2713 | |
| 3707 | 2714 | |
| 3708 | 2715 | ``V4L2_CID_FLASH_STROBE_SOURCE (menu)`` |
| 3709 | 2716 | Defines the source of the flash LED strobe. |
| 3710 | 2717 | |
| 3711 | − | |
| 2718 | +.. tabularcolumns:: |p{7.0cm}|p{10.5cm}| | |
| 3712 | 2719 | |
| 3713 | 2720 | .. flat-table:: |
| 3714 | 2721 | :header-rows: 0 |
| 3715 | 2722 | :stub-columns: 0 |
| 3716 | 2723 | |
| 3717 | − | |
| 3718 | − - .. row 1 | |
| 3719 | − | |
| 3720 | − - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE`` | |
| 3721 | − | |
| 3722 | − - The flash strobe is triggered by using the | |
| 3723 | − V4L2_CID_FLASH_STROBE control. | |
| 3724 | − | |
| 3725 | − - .. row 2 | |
| 3726 | − | |
| 3727 | − - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL`` | |
| 3728 | − | |
| 3729 | − - The flash strobe is triggered by an external source. Typically | |
| 3730 | − this is a sensor, which makes it possible to synchronises the | |
| 3731 | − flash strobe start to exposure start. | |
| 2724 | + * - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE`` | |
| 2725 | + - The flash strobe is triggered by using the | |
| 2726 | + V4L2_CID_FLASH_STROBE control. | |
| 2727 | + * - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL`` | |
| 2728 | + - The flash strobe is triggered by an external source. Typically | |
| 2729 | + this is a sensor, which makes it possible to synchronises the | |
| 2730 | + flash strobe start to exposure start. | |
| 3732 | 2731 | |
| 3733 | 2732 | |
| 3734 | 2733 | |
| @@ -3775,75 +2774,39 @@ Flash Control IDs · 40 unmodified lines | ||
| 3775 | 2774 | an effect is chip dependent. Reading the faults resets the control |
| 3776 | 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 | 2779 | .. flat-table:: |
| 3781 | 2780 | :header-rows: 0 |
| 3782 | 2781 | :stub-columns: 0 |
| 3783 | 2782 | |
| 3784 | − | |
| 3785 | − - .. row 1 | |
| 3786 | − | |
| 3787 | − - ``V4L2_FLASH_FAULT_OVER_VOLTAGE`` | |
| 3788 | − | |
| 3789 | − - Flash controller voltage to the flash LED has exceeded the limit | |
| 3790 | − specific to the flash controller. | |
| 3791 | − | |
| 3792 | − - .. row 2 | |
| 3793 | − | |
| 3794 | − - ``V4L2_FLASH_FAULT_TIMEOUT`` | |
| 3795 | − | |
| 3796 | − - The flash strobe was still on when the timeout set by the user --- | |
| 3797 | − V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash | |
| 3798 | − controllers may set this in all such conditions. | |
| 3799 | − | |
| 3800 | − - .. row 3 | |
| 3801 | − | |
| 3802 | − - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE`` | |
| 3803 | − | |
| 3804 | − - The flash controller has overheated. | |
| 3805 | − | |
| 3806 | − - .. row 4 | |
| 3807 | − | |
| 3808 | − - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT`` | |
| 3809 | − | |
| 3810 | − - The short circuit protection of the flash controller has been | |
| 3811 | − triggered. | |
| 3812 | − | |
| 3813 | − - .. row 5 | |
| 3814 | − | |
| 3815 | − - ``V4L2_FLASH_FAULT_OVER_CURRENT`` | |
| 3816 | − | |
| 3817 | − - Current in the LED power supply has exceeded the limit specific to | |
| 3818 | − the flash controller. | |
| 3819 | − | |
| 3820 | − - .. row 6 | |
| 3821 | − | |
| 3822 | − - ``V4L2_FLASH_FAULT_INDICATOR`` | |
| 3823 | − | |
| 3824 | − - The flash controller has detected a short or open circuit | |
| 3825 | − condition on the indicator LED. | |
| 3826 | − | |
| 3827 | − - .. row 7 | |
| 3828 | − | |
| 3829 | − - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE`` | |
| 3830 | − | |
| 3831 | − - Flash controller voltage to the flash LED has been below the | |
| 3832 | − minimum limit specific to the flash controller. | |
| 3833 | − | |
| 3834 | − - .. row 8 | |
| 3835 | − | |
| 3836 | − - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE`` | |
| 3837 | − | |
| 3838 | − - The input voltage of the flash controller is below the limit under | |
| 3839 | − which strobing the flash at full current will not be possible.The | |
| 3840 | − condition persists until this flag is no longer set. | |
| 3841 | − | |
| 3842 | − - .. row 9 | |
| 3843 | − | |
| 3844 | − - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE`` | |
| 3845 | − | |
| 3846 | − - The temperature of the LED has exceeded its allowed upper limit. | |
| 2783 | + * - ``V4L2_FLASH_FAULT_OVER_VOLTAGE`` | |
| 2784 | + - Flash controller voltage to the flash LED has exceeded the limit | |
| 2785 | + specific to the flash controller. | |
| 2786 | + * - ``V4L2_FLASH_FAULT_TIMEOUT`` | |
| 2787 | + - The flash strobe was still on when the timeout set by the user --- | |
| 2788 | + V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash | |
| 2789 | + controllers may set this in all such conditions. | |
| 2790 | + * - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE`` | |
| 2791 | + - The flash controller has overheated. | |
| 2792 | + * - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT`` | |
| 2793 | + - The short circuit protection of the flash controller has been | |
| 2794 | + triggered. | |
| 2795 | + * - ``V4L2_FLASH_FAULT_OVER_CURRENT`` | |
| 2796 | + - Current in the LED power supply has exceeded the limit specific to | |
| 2797 | + the flash controller. | |
| 2798 | + * - ``V4L2_FLASH_FAULT_INDICATOR`` | |
| 2799 | + - The flash controller has detected a short or open circuit | |
| 2800 | + condition on the indicator LED. | |
| 2801 | + * - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE`` | |
| 2802 | + - Flash controller voltage to the flash LED has been below the | |
| 2803 | + minimum limit specific to the flash controller. | |
| 2804 | + * - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE`` | |
| 2805 | + - The input voltage of the flash controller is below the limit under | |
| 2806 | + which strobing the flash at full current will not be possible.The | |
| 2807 | + condition persists until this flag is no longer set. | |
| 2808 | + * - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE`` | |
| 2809 | + - The temperature of the LED has exceeded its allowed upper limit. | |
| 3847 | 2810 | |
| 3848 | 2811 | |
| 3849 | 2812 | |
| @@ -3886,48 +2849,24 @@ JPEG Control IDs · 36 unmodified lines | ||
| 3886 | 2849 | how Cb and Cr components are downsampled after coverting an input |
| 3887 | 2850 | image from RGB to Y'CbCr color space. |
| 3888 | 2851 | |
| 3889 | − | |
| 2852 | +.. tabularcolumns:: |p{7.0cm}|p{10.5cm}| | |
| 3890 | 2853 | |
| 3891 | 2854 | .. flat-table:: |
| 3892 | 2855 | :header-rows: 0 |
| 3893 | 2856 | :stub-columns: 0 |
| 3894 | 2857 | |
| 3895 | − | |
| 3896 | − - .. row 1 | |
| 3897 | − | |
| 3898 | − - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444`` | |
| 3899 | − | |
| 3900 | − - No chroma subsampling, each pixel has Y, Cr and Cb values. | |
| 3901 | − | |
| 3902 | − - .. row 2 | |
| 3903 | − | |
| 3904 | − - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422`` | |
| 3905 | − | |
| 3906 | − - Horizontally subsample Cr, Cb components by a factor of 2. | |
| 3907 | − | |
| 3908 | − - .. row 3 | |
| 3909 | − | |
| 3910 | − - ``V4L2_JPEG_CHROMA_SUBSAMPLING_420`` | |
| 3911 | − | |
| 3912 | − - Subsample Cr, Cb components horizontally and vertically by 2. | |
| 3913 | − | |
| 3914 | − - .. row 4 | |
| 3915 | − | |
| 3916 | − - ``V4L2_JPEG_CHROMA_SUBSAMPLING_411`` | |
| 3917 | − | |
| 3918 | − - Horizontally subsample Cr, Cb components by a factor of 4. | |
| 3919 | − | |
| 3920 | − - .. row 5 | |
| 3921 | − | |
| 3922 | − - ``V4L2_JPEG_CHROMA_SUBSAMPLING_410`` | |
| 3923 | − | |
| 3924 | − - Subsample Cr, Cb components horizontally by 4 and vertically by 2. | |
| 3925 | − | |
| 3926 | − - .. row 6 | |
| 3927 | − | |
| 3928 | − - ``V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY`` | |
| 3929 | − | |
| 3930 | − - Use only luminance component. | |
| 2858 | + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_444`` | |
| 2859 | + - No chroma subsampling, each pixel has Y, Cr and Cb values. | |
| 2860 | + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_422`` | |
| 2861 | + - Horizontally subsample Cr, Cb components by a factor of 2. | |
| 2862 | + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_420`` | |
| 2863 | + - Subsample Cr, Cb components horizontally and vertically by 2. | |
| 2864 | + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_411`` | |
| 2865 | + - Horizontally subsample Cr, Cb components by a factor of 4. | |
| 2866 | + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_410`` | |
| 2867 | + - Subsample Cr, Cb components horizontally by 4 and vertically by 2. | |
| 2868 | + * - ``V4L2_JPEG_CHROMA_SUBSAMPLING_GRAY`` | |
| 2869 | + - Use only luminance component. | |
| 3931 | 2870 | |
| 3932 | 2871 | |
| 3933 | 2872 | |
| @@ -3969,36 +2908,16 @@ JPEG Control IDs · 35 unmodified lines | ||
| 3969 | 2908 | :header-rows: 0 |
| 3970 | 2909 | :stub-columns: 0 |
| 3971 | 2910 | |
| 3972 | − | |
| 3973 | − - .. row 1 | |
| 3974 | − | |
| 3975 | − - ``V4L2_JPEG_ACTIVE_MARKER_APP0`` | |
| 3976 | − | |
| 3977 | − - Application data segment APP\ :sub:`0`. | |
| 3978 | − | |
| 3979 | − - .. row 2 | |
| 3980 | − | |
| 3981 | − - ``V4L2_JPEG_ACTIVE_MARKER_APP1`` | |
| 3982 | − | |
| 3983 | − - Application data segment APP\ :sub:`1`. | |
| 3984 | − | |
| 3985 | − - .. row 3 | |
| 3986 | − | |
| 3987 | − - ``V4L2_JPEG_ACTIVE_MARKER_COM`` | |
| 3988 | − | |
| 3989 | − - Comment segment. | |
| 3990 | − | |
| 3991 | − - .. row 4 | |
| 3992 | − | |
| 3993 | − - ``V4L2_JPEG_ACTIVE_MARKER_DQT`` | |
| 3994 | − | |
| 3995 | − - Quantization tables segment. | |
| 3996 | − | |
| 3997 | − - .. row 5 | |
| 3998 | − | |
| 3999 | − - ``V4L2_JPEG_ACTIVE_MARKER_DHT`` | |
| 4000 | − | |
| 4001 | − - Huffman tables segment. | |
| 2911 | + * - ``V4L2_JPEG_ACTIVE_MARKER_APP0`` | |
| 2912 | + - Application data segment APP\ :sub:`0`. | |
| 2913 | + * - ``V4L2_JPEG_ACTIVE_MARKER_APP1`` | |
| 2914 | + - Application data segment APP\ :sub:`1`. | |
| 2915 | + * - ``V4L2_JPEG_ACTIVE_MARKER_COM`` | |
| 2916 | + - Comment segment. | |
| 2917 | + * - ``V4L2_JPEG_ACTIVE_MARKER_DQT`` | |
| 2918 | + - Quantization tables segment. | |
| 2919 | + * - ``V4L2_JPEG_ACTIVE_MARKER_DHT`` | |
| 2920 | + - Huffman tables segment. | |
| 4002 | 2921 | |
| 4003 | 2922 | |
| 4004 | 2923 | |
| @@ -4162,13 +3081,19 @@ Digital Video Control IDs · 157 unmodified lines | ||
| 4162 | 3081 | EDIDs, then the bit for that pad will be 0. This read-only control |
| 4163 | 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 | + | |
| 3087 | +enum v4l2_dv_tx_mode - | |
| 4166 | 3088 | HDMI transmitters can transmit in DVI-D mode (just video) or in HDMI |
| 4167 | 3089 | mode (video + audio + auxiliary data). This control selects which |
| 4168 | 3090 | mode to use: V4L2_DV_TX_MODE_DVI_D or V4L2_DV_TX_MODE_HDMI. |
| 4169 | 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 | + | |
| 3096 | +enum v4l2_dv_rgb_range - | |
| 4172 | 3097 | Select the quantization range for RGB output. V4L2_DV_RANGE_AUTO |
| 4173 | 3098 | follows the RGB quantization range specified in the standard for the |
| 4174 | 3099 | video interface (ie. :ref:`cea861` for HDMI). |
| @@ -4180,7 +3105,10 @@ Digital Video Control IDs · 5 unmodified lines | ||
| 4180 | 3105 | the number of bits per component. This control is applicable to VGA, |
| 4181 | 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 | + | |
| 3111 | +enum v4l2_dv_it_content_type - | |
| 4184 | 3112 | Configures the IT Content Type of the transmitted video. This |
| 4185 | 3113 | information is sent over HDMI and DisplayPort connectors as part of |
| 4186 | 3114 | the AVI InfoFrame. The term 'IT Content' is used for content that |
| @@ -4188,46 +3116,26 @@ Digital Video Control IDs · 1 unmodified line | ||
| 4188 | 3116 | or an analog source. The enum v4l2_dv_it_content_type defines |
| 4189 | 3117 | the possible content types: |
| 4190 | 3118 | |
| 4191 | − | |
| 3119 | +.. tabularcolumns:: |p{7.0cm}|p{10.5cm}| | |
| 4192 | 3120 | |
| 4193 | 3121 | .. flat-table:: |
| 4194 | 3122 | :header-rows: 0 |
| 4195 | 3123 | :stub-columns: 0 |
| 4196 | 3124 | |
| 4197 | − | |
| 4198 | − - .. row 1 | |
| 4199 | − | |
| 4200 | − - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS`` | |
| 4201 | − | |
| 4202 | − - Graphics content. Pixel data should be passed unfiltered and | |
| 4203 | − without analog reconstruction. | |
| 4204 | − | |
| 4205 | − - .. row 2 | |
| 4206 | − | |
| 4207 | − - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO`` | |
| 4208 | − | |
| 4209 | − - Photo content. The content is derived from digital still pictures. | |
| 4210 | − The content should be passed through with minimal scaling and | |
| 4211 | − picture enhancements. | |
| 4212 | − | |
| 4213 | − - .. row 3 | |
| 4214 | − | |
| 4215 | − - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA`` | |
| 4216 | − | |
| 4217 | − - Cinema content. | |
| 4218 | − | |
| 4219 | − - .. row 4 | |
| 4220 | − | |
| 4221 | − - ``V4L2_DV_IT_CONTENT_TYPE_GAME`` | |
| 4222 | − | |
| 4223 | − - Game content. Audio and video latency should be minimized. | |
| 4224 | − | |
| 4225 | − - .. row 5 | |
| 4226 | − | |
| 4227 | − - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC`` | |
| 4228 | − | |
| 4229 | − - No IT Content information is available and the ITC bit in the AVI | |
| 4230 | − InfoFrame is set to 0. | |
| 3125 | + * - ``V4L2_DV_IT_CONTENT_TYPE_GRAPHICS`` | |
| 3126 | + - Graphics content. Pixel data should be passed unfiltered and | |
| 3127 | + without analog reconstruction. | |
| 3128 | + * - ``V4L2_DV_IT_CONTENT_TYPE_PHOTO`` | |
| 3129 | + - Photo content. The content is derived from digital still pictures. | |
| 3130 | + The content should be passed through with minimal scaling and | |
| 3131 | + picture enhancements. | |
| 3132 | + * - ``V4L2_DV_IT_CONTENT_TYPE_CINEMA`` | |
| 3133 | + - Cinema content. | |
| 3134 | + * - ``V4L2_DV_IT_CONTENT_TYPE_GAME`` | |
| 3135 | + - Game content. Audio and video latency should be minimized. | |
| 3136 | + * - ``V4L2_DV_IT_CONTENT_TYPE_NO_ITC`` | |
| 3137 | + - No IT Content information is available and the ITC bit in the AVI | |
| 3138 | + InfoFrame is set to 0. | |
| 4231 | 3139 | |
| 4232 | 3140 | |
| 4233 | 3141 | |
| @@ -4241,7 +3149,10 @@ Digital Video Control IDs · 7 unmodified lines | ||
| 4241 | 3149 | will be 0. This read-only control is applicable to DVI-D, HDMI and |
| 4242 | 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 | + | |
| 3155 | +enum v4l2_dv_rgb_range - | |
| 4245 | 3156 | Select the quantization range for RGB input. V4L2_DV_RANGE_AUTO |
| 4246 | 3157 | follows the RGB quantization range specified in the standard for the |
| 4247 | 3158 | video interface (ie. :ref:`cea861` for HDMI). |
| @@ -4253,7 +3164,10 @@ Digital Video Control IDs · 5 unmodified lines | ||
| 4253 | 3164 | the number of bits per component. This control is applicable to VGA, |
| 4254 | 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 | + | |
| 3170 | +enum v4l2_dv_it_content_type - | |
| 4257 | 3171 | Reads the IT Content Type of the received video. This information is |
| 4258 | 3172 | sent over HDMI and DisplayPort connectors as part of the AVI |
| 4259 | 3173 | InfoFrame. The term 'IT Content' is used for content that originates |
| @@ -4325,7 +3239,10 @@ FM_RX Control IDs · 65 unmodified lines | ||
| 4325 | 3239 | broadcasts speech. If the transmitter doesn't make this distinction, |
| 4326 | 3240 | then it will be set. |
| 4327 | 3241 | |
| 4328 | −``V4L2_CID_TUNE_DEEMPHASIS (enum v4l2_deemphasis)`` | |
| 3242 | +``V4L2_CID_TUNE_DEEMPHASIS`` | |
| 3243 | + (enum) | |
| 3244 | + | |
| 3245 | +enum v4l2_deemphasis - | |
| 4329 | 3246 | Configures the de-emphasis value for reception. A de-emphasis filter |
| 4330 | 3247 | is applied to the broadcast to accentuate the high audio |
| 4331 | 3248 | frequencies. Depending on the region, a time constant of either 50 |
| @@ -4338,24 +3255,12 @@ FM_RX Control IDs · 6 unmodified lines | ||
| 4338 | 3255 | :header-rows: 0 |
| 4339 | 3256 | :stub-columns: 0 |
| 4340 | 3257 | |
| 4341 | − | |
| 4342 | − - .. row 1 | |
| 4343 | − | |
| 4344 | − - ``V4L2_DEEMPHASIS_DISABLED`` | |
| 4345 | − | |
| 4346 | − - No de-emphasis is applied. | |
| 4347 | − | |
| 4348 | − - .. row 2 | |
| 4349 | − | |
| 4350 | − - ``V4L2_DEEMPHASIS_50_uS`` | |
| 4351 | − | |
| 4352 | − - A de-emphasis of 50 uS is used. | |
| 4353 | − | |
| 4354 | − - .. row 3 | |
| 4355 | − | |
| 4356 | − - ``V4L2_DEEMPHASIS_75_uS`` | |
| 4357 | − | |
| 4358 | − - A de-emphasis of 75 uS is used. | |
| 3258 | + * - ``V4L2_DEEMPHASIS_DISABLED`` | |
| 3259 | + - No de-emphasis is applied. | |
| 3260 | + * - ``V4L2_DEEMPHASIS_50_uS`` | |
| 3261 | + - A de-emphasis of 50 uS is used. | |
| 3262 | + * - ``V4L2_DEEMPHASIS_75_uS`` | |
| 3263 | + - A de-emphasis of 75 uS is used. | |
| 4359 | 3264 | |
| 4360 | 3265 | |
| 4361 | 3266 | |
| @@ -4382,43 +3287,27 @@ Detect Control IDs · 20 unmodified lines | ||
| 4382 | 3287 | ``V4L2_CID_DETECT_MD_MODE (menu)`` |
| 4383 | 3288 | Sets the motion detection mode. |
| 4384 | 3289 | |
| 4385 | − | |
| 3290 | +.. tabularcolumns:: |p{7.5cm}|p{10.0cm}| | |
| 4386 | 3291 | |
| 4387 | 3292 | .. flat-table:: |
| 4388 | 3293 | :header-rows: 0 |
| 4389 | 3294 | :stub-columns: 0 |
| 4390 | 3295 | |
| 4391 | − | |
| 4392 | − - .. row 1 | |
| 4393 | − | |
| 4394 | − - ``V4L2_DETECT_MD_MODE_DISABLED`` | |
| 4395 | − | |
| 4396 | − - Disable motion detection. | |
| 4397 | − | |
| 4398 | − - .. row 2 | |
| 4399 | − | |
| 4400 | − - ``V4L2_DETECT_MD_MODE_GLOBAL`` | |
| 4401 | − | |
| 4402 | − - Use a single motion detection threshold. | |
| 4403 | − | |
| 4404 | − - .. row 3 | |
| 4405 | − | |
| 4406 | − - ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID`` | |
| 4407 | − | |
| 4408 | − - The image is divided into a grid, each cell with its own motion | |
| 4409 | − detection threshold. These thresholds are set through the | |
| 4410 | − ``V4L2_CID_DETECT_MD_THRESHOLD_GRID`` matrix control. | |
| 4411 | − | |
| 4412 | − - .. row 4 | |
| 4413 | − | |
| 4414 | − - ``V4L2_DETECT_MD_MODE_REGION_GRID`` | |
| 4415 | − | |
| 4416 | − - The image is divided into a grid, each cell with its own region | |
| 4417 | − value that specifies which per-region motion detection thresholds | |
| 4418 | − should be used. Each region has its own thresholds. How these | |
| 4419 | − per-region thresholds are set up is driver-specific. The region | |
| 4420 | − values for the grid are set through the | |
| 4421 | − ``V4L2_CID_DETECT_MD_REGION_GRID`` matrix control. | |
| 3296 | + * - ``V4L2_DETECT_MD_MODE_DISABLED`` | |
| 3297 | + - Disable motion detection. | |
| 3298 | + * - ``V4L2_DETECT_MD_MODE_GLOBAL`` | |
| 3299 | + - Use a single motion detection threshold. | |
| 3300 | + * - ``V4L2_DETECT_MD_MODE_THRESHOLD_GRID`` | |
| 3301 | + - The image is divided into a grid, each cell with its own motion | |
| 3302 | + detection threshold. These thresholds are set through the | |
| 3303 | + ``V4L2_CID_DETECT_MD_THRESHOLD_GRID`` matrix control. | |
| 3304 | + * - ``V4L2_DETECT_MD_MODE_REGION_GRID`` | |
| 3305 | + - The image is divided into a grid, each cell with its own region | |
| 3306 | + value that specifies which per-region motion detection thresholds | |
| 3307 | + should be used. Each region has its own thresholds. How these | |
| 3308 | + per-region thresholds are set up is driver-specific. The region | |
| 3309 | + values for the grid are set through the | |
| 3310 | + ``V4L2_CID_DETECT_MD_REGION_GRID`` matrix control. | |
| 4422 | 3311 | |
| 4423 | 3312 | |
| 4424 | 3313 | |
| @@ -47,140 +47,92 @@ clearer. · 46 unmodified lines | ||
| 47 | 47 | All video capture and output devices must report the current field |
| 48 | 48 | order. Some drivers may permit the selection of a different order, to |
| 49 | 49 | this end applications initialize the ``field`` field of struct |
| 50 | −:ref:`v4l2_pix_format <v4l2-pix-format>` before calling the | |
| 50 | +:c:type:`v4l2_pix_format` before calling the | |
| 51 | 51 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl. If this is not desired it |
| 52 | 52 | should have the value ``V4L2_FIELD_ANY`` (0). |
| 53 | 53 | |
| 54 | 54 | |
| 55 | −.. _v4l2-field: | |
| 56 | − | |
| 57 | 55 | enum 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 | 62 | .. flat-table:: |
| 61 | 63 | :header-rows: 0 |
| 62 | 64 | :stub-columns: 0 |
| 63 | 65 | :widths: 3 1 4 |
| 64 | 66 | |
| 65 | − | |
| 66 | − - .. row 1 | |
| 67 | − | |
| 68 | − - ``V4L2_FIELD_ANY`` | |
| 69 | − | |
| 70 | − - 0 | |
| 71 | − | |
| 72 | − - Applications request this field order when any one of the | |
| 73 | − ``V4L2_FIELD_NONE``, ``V4L2_FIELD_TOP``, ``V4L2_FIELD_BOTTOM``, or | |
| 74 | − ``V4L2_FIELD_INTERLACED`` formats is acceptable. Drivers choose | |
| 75 | − depending on hardware capabilities or e. g. the requested image | |
| 76 | − size, and return the actual field order. Drivers must never return | |
| 77 | − ``V4L2_FIELD_ANY``. If multiple field orders are possible the | |
| 78 | − driver must choose one of the possible field orders during | |
| 79 | − :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or | |
| 80 | − :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`. struct | |
| 81 | − :ref:`v4l2_buffer <v4l2-buffer>` ``field`` can never be | |
| 82 | − ``V4L2_FIELD_ANY``. | |
| 83 | − | |
| 84 | − - .. row 2 | |
| 85 | − | |
| 86 | − - ``V4L2_FIELD_NONE`` | |
| 87 | − | |
| 88 | − - 1 | |
| 89 | − | |
| 90 | − - Images are in progressive format, not interlaced. The driver may | |
| 91 | − also indicate this order when it cannot distinguish between | |
| 92 | − ``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM``. | |
| 93 | − | |
| 94 | − - .. row 3 | |
| 95 | − | |
| 96 | − - ``V4L2_FIELD_TOP`` | |
| 97 | − | |
| 98 | − - 2 | |
| 99 | − | |
| 100 | − - Images consist of the top (aka odd) field only. | |
| 101 | − | |
| 102 | − - .. row 4 | |
| 103 | − | |
| 104 | − - ``V4L2_FIELD_BOTTOM`` | |
| 105 | − | |
| 106 | − - 3 | |
| 107 | − | |
| 108 | − - Images consist of the bottom (aka even) field only. Applications | |
| 109 | − may wish to prevent a device from capturing interlaced images | |
| 110 | − because they will have "comb" or "feathering" artefacts around | |
| 111 | − moving objects. | |
| 112 | − | |
| 113 | − - .. row 5 | |
| 114 | − | |
| 115 | − - ``V4L2_FIELD_INTERLACED`` | |
| 116 | − | |
| 117 | − - 4 | |
| 118 | − | |
| 119 | − - Images contain both fields, interleaved line by line. The temporal | |
| 120 | − order of the fields (whether the top or bottom field is first | |
| 121 | − transmitted) depends on the current video standard. M/NTSC | |
| 122 | − transmits the bottom field first, all other standards the top | |
| 123 | − field first. | |
| 124 | − | |
| 125 | − - .. row 6 | |
| 126 | − | |
| 127 | − - ``V4L2_FIELD_SEQ_TB`` | |
| 128 | − | |
| 129 | − - 5 | |
| 130 | − | |
| 131 | − - Images contain both fields, the top field lines are stored first | |
| 132 | − in memory, immediately followed by the bottom field lines. Fields | |
| 133 | − are always stored in temporal order, the older one first in | |
| 134 | − memory. Image sizes refer to the frame, not fields. | |
| 135 | − | |
| 136 | − - .. row 7 | |
| 137 | − | |
| 138 | − - ``V4L2_FIELD_SEQ_BT`` | |
| 139 | − | |
| 140 | − - 6 | |
| 141 | − | |
| 142 | − - Images contain both fields, the bottom field lines are stored | |
| 143 | − first in memory, immediately followed by the top field lines. | |
| 144 | − Fields are always stored in temporal order, the older one first in | |
| 145 | − memory. Image sizes refer to the frame, not fields. | |
| 146 | − | |
| 147 | − - .. row 8 | |
| 148 | − | |
| 149 | − - ``V4L2_FIELD_ALTERNATE`` | |
| 150 | − | |
| 151 | − - 7 | |
| 152 | − | |
| 153 | − - The two fields of a frame are passed in separate buffers, in | |
| 154 | − temporal order, i. e. the older one first. To indicate the field | |
| 155 | − parity (whether the current field is a top or bottom field) the | |
| 156 | − driver or application, depending on data direction, must set | |
| 157 | − struct :ref:`v4l2_buffer <v4l2-buffer>` ``field`` to | |
| 158 | − ``V4L2_FIELD_TOP`` or ``V4L2_FIELD_BOTTOM``. Any two successive | |
| 159 | − fields pair to build a frame. If fields are successive, without | |
| 160 | − any dropped fields between them (fields can drop individually), | |
| 161 | − can be determined from the struct | |
| 162 | − :ref:`v4l2_buffer <v4l2-buffer>` ``sequence`` field. This | |
| 163 | − format cannot be selected when using the read/write I/O method | |
| 164 | − since there is no way to communicate if a field was a top or | |
| 165 | − bottom field. | |
| 166 | − | |
| 167 | − - .. row 9 | |
| 168 | − | |
| 169 | − - ``V4L2_FIELD_INTERLACED_TB`` | |
| 170 | − | |
| 171 | − - 8 | |
| 172 | − | |
| 173 | − - Images contain both fields, interleaved line by line, top field | |
| 174 | − first. The top field is transmitted first. | |
| 175 | − | |
| 176 | − - .. row 10 | |
| 177 | − | |
| 178 | − - ``V4L2_FIELD_INTERLACED_BT`` | |
| 179 | − | |
| 180 | − - 9 | |
| 181 | − | |
| 182 | − - Images contain both fields, interleaved line by line, top field | |
| 183 | − first. The bottom field is transmitted first. | |
| 67 | + * - ``V4L2_FIELD_ANY`` | |
| 68 | + - 0 | |
| 69 | + - Applications request this field order when any one of the | |
| 70 | + ``V4L2_FIELD_NONE``, ``V4L2_FIELD_TOP``, ``V4L2_FIELD_BOTTOM``, or | |
| 71 | + ``V4L2_FIELD_INTERLACED`` formats is acceptable. Drivers choose | |
| 72 | + depending on hardware capabilities or e. g. the requested image | |
| 73 | + size, and return the actual field order. Drivers must never return | |
| 74 | + ``V4L2_FIELD_ANY``. If multiple field orders are possible the | |
| 75 | + driver must choose one of the possible field orders during | |
| 76 | + :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` or | |
| 77 | + :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>`. struct | |
| 78 | + :c:type:`v4l2_buffer` ``field`` can never be | |
| 79 | + ``V4L2_FIELD_ANY``. | |
| 80 | + * - ``V4L2_FIELD_NONE`` | |
| 81 | + - 1 | |
| 82 | + - Images are in progressive format, not interlaced. The driver may | |
| 83 | + also indicate this order when it cannot distinguish between | |
| 84 | + ``V4L2_FIELD_TOP`` and ``V4L2_FIELD_BOTTOM``. | |
| 85 | + * - ``V4L2_FIELD_TOP`` | |
| 86 | + - 2 | |
| 87 | + - Images consist of the top (aka odd) field only. | |
| 88 | + * - ``V4L2_FIELD_BOTTOM`` | |
| 89 | + - 3 | |
| 90 | + - Images consist of the bottom (aka even) field only. Applications | |
| 91 | + may wish to prevent a device from capturing interlaced images | |
| 92 | + because they will have "comb" or "feathering" artefacts around | |
| 93 | + moving objects. | |
| 94 | + * - ``V4L2_FIELD_INTERLACED`` | |
| 95 | + - 4 | |
| 96 | + - Images contain both fields, interleaved line by line. The temporal | |
| 97 | + order of the fields (whether the top or bottom field is first | |
| 98 | + transmitted) depends on the current video standard. M/NTSC | |
| 99 | + transmits the bottom field first, all other standards the top | |
| 100 | + field first. | |
| 101 | + * - ``V4L2_FIELD_SEQ_TB`` | |
| 102 | + - 5 | |
| 103 | + - Images contain both fields, the top field lines are stored first | |
| 104 | + in memory, immediately followed by the bottom field lines. Fields | |
| 105 | + are always stored in temporal order, the older one first in | |
| 106 | + memory. Image sizes refer to the frame, not fields. | |
| 107 | + * - ``V4L2_FIELD_SEQ_BT`` | |
| 108 | + - 6 | |
| 109 | + - Images contain both fields, the bottom field lines are stored | |
| 110 | + first in memory, immediately followed by the top field lines. | |
| 111 | + Fields are always stored in temporal order, the older one first in | |
| 112 | + memory. Image sizes refer to the frame, not fields. | |
| 113 | + * - ``V4L2_FIELD_ALTERNATE`` | |
| 114 | + - 7 | |
| 115 | + - The two fields of a frame are passed in separate buffers, in | |
| 116 | + temporal order, i. e. the older one first. To indicate the field | |
| 117 | + parity (whether the current field is a top or bottom field) the | |
| 118 | + driver or application, depending on data direction, must set | |
| 119 | + struct :c:type:`v4l2_buffer` ``field`` to | |
| 120 | + ``V4L2_FIELD_TOP`` or ``V4L2_FIELD_BOTTOM``. Any two successive | |
| 121 | + fields pair to build a frame. If fields are successive, without | |
| 122 | + any dropped fields between them (fields can drop individually), | |
| 123 | + can be determined from the struct | |
| 124 | + :c:type:`v4l2_buffer` ``sequence`` field. This | |
| 125 | + format cannot be selected when using the read/write I/O method | |
| 126 | + since there is no way to communicate if a field was a top or | |
| 127 | + bottom field. | |
| 128 | + * - ``V4L2_FIELD_INTERLACED_TB`` | |
| 129 | + - 8 | |
| 130 | + - Images contain both fields, interleaved line by line, top field | |
| 131 | + first. The top field is transmitted first. | |
| 132 | + * - ``V4L2_FIELD_INTERLACED_BT`` | |
| 133 | + - 9 | |
| 134 | + - Images contain both fields, interleaved line by line, top field | |
| 135 | + first. The bottom field is transmitted first. | |
| 184 | 136 | |
| 185 | 137 | |
| 186 | 138 | |
| @@ -22,7 +22,7 @@ to satisfy the request. Of course applications can also just query the · 21 unmodified lines | ||
| 22 | 22 | current selection. |
| 23 | 23 | |
| 24 | 24 | A single mechanism exists to negotiate all data formats using the |
| 25 | −aggregate struct :ref:`v4l2_format <v4l2-format>` and the | |
| 25 | +aggregate struct :c:type:`v4l2_format` and the | |
| 26 | 26 | :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and |
| 27 | 27 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctls. Additionally the |
| 28 | 28 | :ref:`VIDIOC_TRY_FMT <VIDIOC_G_FMT>` ioctl can be used to examine |
| @@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: int close( int fd ) | |
| 24 | − | |
| 23 | +.. c:function:: int close( int fd ) | |
| 24 | + :name: v4l2-close | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| @@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <sys/ioctl.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: int ioctl( int fd, int request, void *argp ) | |
| 24 | − | |
| 23 | +.. c:function:: int ioctl( int fd, int request, void *argp ) | |
| 24 | + :name: v4l2-ioctl | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| @@ -21,8 +21,8 @@ Synopsis · 20 unmodified lines | ||
| 21 | 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 ) | |
| 25 | − | |
| 24 | +.. c:function:: void *mmap( void *start, size_t length, int prot, int flags, int fd, off_t offset ) | |
| 25 | + :name: v4l2-mmap | |
| 26 | 26 | |
| 27 | 27 | Arguments |
| 28 | 28 | ========= |
| @@ -37,9 +37,9 @@ Arguments · 8 unmodified lines | ||
| 37 | 37 | ``length`` |
| 38 | 38 | Length of the memory area to map. This must be the same value as |
| 39 | 39 | returned by the driver in the struct |
| 40 | − :ref:`v4l2_buffer <v4l2-buffer>` ``length`` field for the | |
| 40 | + :c:type:`v4l2_buffer` ``length`` field for the | |
| 41 | 41 | single-planar API, and the same value as returned by the driver in |
| 42 | − the struct :ref:`v4l2_plane <v4l2-plane>` ``length`` field for | |
| 42 | + the struct :c:type:`v4l2_plane` ``length`` field for | |
| 43 | 43 | the multi-planar API. |
| 44 | 44 | |
| 45 | 45 | ``prot`` |
| @@ -78,7 +78,9 @@ Arguments · 32 unmodified lines | ||
| 78 | 78 | ``MAP_SHARED`` allows applications to share the mapped memory with |
| 79 | 79 | other (e. g. child-) processes. |
| 80 | 80 | |
| 81 | − .. note:: The Linux ``videobuf`` module which is used by some | |
| 81 | + .. note:: | |
| 82 | + | |
| 83 | + The Linux ``videobuf`` module which is used by some | |
| 82 | 84 | drivers supports only ``MAP_SHARED``. ``MAP_PRIVATE`` requests |
| 83 | 85 | copy-on-write semantics. V4L2 applications should not set the |
| 84 | 86 | ``MAP_PRIVATE``, ``MAP_DENYWRITE``, ``MAP_EXECUTABLE`` or ``MAP_ANON`` |
| @@ -90,9 +92,9 @@ Arguments · 5 unmodified lines | ||
| 90 | 92 | ``offset`` |
| 91 | 93 | Offset of the buffer in device memory. This must be the same value |
| 92 | 94 | as returned by the driver in the struct |
| 93 | − :ref:`v4l2_buffer <v4l2-buffer>` ``m`` union ``offset`` field for | |
| 95 | + :c:type:`v4l2_buffer` ``m`` union ``offset`` field for | |
| 94 | 96 | the single-planar API, and the same value as returned by the driver |
| 95 | − in the struct :ref:`v4l2_plane <v4l2-plane>` ``m`` union | |
| 97 | + in the struct :c:type:`v4l2_plane` ``m`` union | |
| 96 | 98 | ``mem_offset`` field for the multi-planar API. |
| 97 | 99 | |
| 98 | 100 | |
| @@ -21,8 +21,8 @@ Synopsis · 20 unmodified lines | ||
| 21 | 21 | #include <sys/mman.h> |
| 22 | 22 | |
| 23 | 23 | |
| 24 | −.. cpp:function:: int munmap( void *start, size_t length ) | |
| 25 | − | |
| 24 | +.. c:function:: int munmap( void *start, size_t length ) | |
| 25 | + :name: v4l2-munmap | |
| 26 | 26 | |
| 27 | 27 | Arguments |
| 28 | 28 | ========= |
| @@ -34,9 +34,9 @@ Arguments · 5 unmodified lines | ||
| 34 | 34 | ``length`` |
| 35 | 35 | Length of the mapped buffer. This must be the same value as given to |
| 36 | 36 | :ref:`mmap() <func-mmap>` and returned by the driver in the struct |
| 37 | − :ref:`v4l2_buffer <v4l2-buffer>` ``length`` field for the | |
| 37 | + :c:type:`v4l2_buffer` ``length`` field for the | |
| 38 | 38 | single-planar API and in the struct |
| 39 | − :ref:`v4l2_plane <v4l2-plane>` ``length`` field for the | |
| 39 | + :c:type:`v4l2_plane` ``length`` field for the | |
| 40 | 40 | multi-planar API. |
| 41 | 41 | |
| 42 | 42 | |
| @@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <fcntl.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: int open( const char *device_name, int flags ) | |
| 24 | − | |
| 23 | +.. c:function:: int open( const char *device_name, int flags ) | |
| 24 | + :name: v4l2-open | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| @@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <sys/poll.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout ) | |
| 24 | − | |
| 23 | +.. c:function:: int poll( struct pollfd *ufds, unsigned int nfds, int timeout ) | |
| 24 | + :name: v4l2-poll | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| @@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: ssize_t read( int fd, void *buf, size_t count ) | |
| 24 | − | |
| 23 | +.. c:function:: ssize_t read( int fd, void *buf, size_t count ) | |
| 24 | + :name: v4l2-read | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| @@ -30,8 +30,10 @@ Arguments · 2 unmodified lines | ||
| 30 | 30 | File descriptor returned by :ref:`open() <func-open>`. |
| 31 | 31 | |
| 32 | 32 | ``buf`` |
| 33 | −``count`` | |
| 33 | + Buffer to be filled | |
| 34 | 34 | |
| 35 | +``count`` | |
| 36 | + Max number of bytes to read | |
| 35 | 37 | |
| 36 | 38 | Description |
| 37 | 39 | =========== |
| @@ -22,12 +22,26 @@ Synopsis · 21 unmodified lines | ||
| 22 | 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 ) | |
| 26 | − | |
| 25 | +.. c:function:: int select( int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout ) | |
| 26 | + :name: v4l2-select | |
| 27 | 27 | |
| 28 | 28 | Arguments |
| 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 | |
| 33 | 47 | Description |
| @@ -20,8 +20,8 @@ Synopsis · 19 unmodified lines | ||
| 20 | 20 | #include <unistd.h> |
| 21 | 21 | |
| 22 | 22 | |
| 23 | −.. cpp:function:: ssize_t write( int fd, void *buf, size_t count ) | |
| 24 | − | |
| 23 | +.. c:function:: ssize_t write( int fd, void *buf, size_t count ) | |
| 24 | + :name: v4l2-write | |
| 25 | 25 | |
| 26 | 26 | Arguments |
| 27 | 27 | ========= |
| @@ -30,8 +30,10 @@ Arguments · 2 unmodified lines | ||
| 30 | 30 | File descriptor returned by :ref:`open() <func-open>`. |
| 31 | 31 | |
| 32 | 32 | ``buf`` |
| 33 | −``count`` | |
| 33 | + Buffer with data to be written | |
| 34 | 34 | |
| 35 | +``count`` | |
| 36 | + Number of bytes at the buffer | |
| 35 | 37 | |
| 36 | 38 | Description |
| 37 | 39 | =========== |
| @@ -30,14 +30,14 @@ aliases ``O_NONCAP`` and ``O_NOIO`` were defined. Applications can set · 29 unmodified lines | ||
| 30 | 30 | this flag if they intend to access controls only, as opposed to capture |
| 31 | 31 | applications which need exclusive access. The ``VIDEO_STD_XXX`` |
| 32 | 32 | identifiers are now ordinals instead of flags, and the |
| 33 | −:c:func:`video_std_construct()` helper function takes id and | |
| 33 | +``video_std_construct()`` helper function takes id and | |
| 34 | 34 | transmission arguments. |
| 35 | 35 | |
| 36 | 36 | 1998-09-28: Revamped video standard. Made video controls individually |
| 37 | 37 | enumerable. |
| 38 | 38 | |
| 39 | 39 | 1998-10-02: The ``id`` field was removed from struct |
| 40 | −:c:type:`struct video_standard` and the color subcarrier fields were | |
| 40 | +struct ``video_standard`` and the color subcarrier fields were | |
| 41 | 41 | renamed. The :ref:`VIDIOC_QUERYSTD` ioctl was |
| 42 | 42 | renamed to :ref:`VIDIOC_ENUMSTD`, |
| 43 | 43 | :ref:`VIDIOC_G_INPUT <VIDIOC_G_INPUT>` to |
| @@ -45,7 +45,7 @@ renamed to :ref:`VIDIOC_ENUMSTD`, · 1 unmodified line | ||
| 45 | 45 | Codec API was released. |
| 46 | 46 | |
| 47 | 47 | 1998-11-08: Many minor changes. Most symbols have been renamed. Some |
| 48 | −material changes to struct :ref:`v4l2_capability <v4l2-capability>`. | |
| 48 | +material changes to struct :c:type:`v4l2_capability`. | |
| 49 | 49 | |
| 50 | 50 | 1998-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 | ||
| 117 | 117 | common Linux driver API conventions. |
| 118 | 118 | |
| 119 | 119 | 1. Some typos in ``V4L2_FMT_FLAG`` symbols were fixed. struct |
| 120 | − :ref:`v4l2_clip <v4l2-clip>` was changed for compatibility with | |
| 120 | + :c:type:`v4l2_clip` was changed for compatibility with | |
| 121 | 121 | v4l. (1999-08-30) |
| 122 | 122 | |
| 123 | 123 | 2. ``V4L2_TUNER_SUB_LANG1`` was added. (1999-09-05) |
| @@ -151,15 +151,15 @@ common Linux driver API conventions. · 27 unmodified lines | ||
| 151 | 151 | This change obsoletes the following ioctls: ``VIDIOC_S_INFMT``, |
| 152 | 152 | ``VIDIOC_G_INFMT``, ``VIDIOC_S_OUTFMT``, ``VIDIOC_G_OUTFMT``, |
| 153 | 153 | ``VIDIOC_S_VBIFMT`` and ``VIDIOC_G_VBIFMT``. The image format |
| 154 | − structure :c:type:`struct v4l2_format` was renamed to struct | |
| 155 | − :ref:`v4l2_pix_format <v4l2-pix-format>`, while struct | |
| 156 | − :ref:`v4l2_format <v4l2-format>` is now the envelopping structure | |
| 154 | + structure struct :c:type:`v4l2_format` was renamed to struct | |
| 155 | + :c:type:`v4l2_pix_format`, while struct | |
| 156 | + :c:type:`v4l2_format` is now the envelopping structure | |
| 157 | 157 | for all format negotiations. |
| 158 | 158 | |
| 159 | 159 | 5. Similar to the changes above, the ``VIDIOC_G_PARM`` and |
| 160 | 160 | ``VIDIOC_S_PARM`` ioctls were merged with ``VIDIOC_G_OUTPARM`` and |
| 161 | 161 | ``VIDIOC_S_OUTPARM``. A ``type`` field in the new struct |
| 162 | − :ref:`v4l2_streamparm <v4l2-streamparm>` selects the respective | |
| 162 | + :c:type:`v4l2_streamparm` selects the respective | |
| 163 | 163 | union member. |
| 164 | 164 | |
| 165 | 165 | This change obsoletes the ``VIDIOC_G_OUTPARM`` and |
| @@ -178,7 +178,7 @@ common Linux driver API conventions. · 12 unmodified lines | ||
| 178 | 178 | categories might have a greater separation, or may even appear in |
| 179 | 179 | separate windows. |
| 180 | 180 | |
| 181 | −7. The struct :ref:`v4l2_buffer <v4l2-buffer>` ``timestamp`` was | |
| 181 | +7. The struct :c:type:`v4l2_buffer` ``timestamp`` was | |
| 182 | 182 | changed to a 64 bit integer, containing the sampling or output time |
| 183 | 183 | of the frame in nanoseconds. Additionally timestamps will be in |
| 184 | 184 | 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 | 202 | return a 64-bit integer. |
| 203 | 203 | |
| 204 | 204 | 8. A ``sequence`` field was added to struct |
| 205 | − :ref:`v4l2_buffer <v4l2-buffer>`. The ``sequence`` field counts | |
| 205 | + :c:type:`v4l2_buffer`. The ``sequence`` field counts | |
| 206 | 206 | captured frames, it is ignored by output devices. When a capture |
| 207 | 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 | ||
| 210 | 210 | V4L2 Version 0.20 incremental changes |
| 211 | 211 | ===================================== |
| 212 | 212 | |
| 213 | −1999-12-23: In struct :ref:`v4l2_vbi_format <v4l2-vbi-format>` the | |
| 213 | +1999-12-23: In struct :c:type:`v4l2_vbi_format` the | |
| 214 | 214 | ``reserved1`` field became ``offset``. Previously drivers were required |
| 215 | 215 | to clear the ``reserved1`` field. |
| 216 | 216 | |
| @@ -254,9 +254,9 @@ multiple tuners into account.) · 37 unmodified lines | ||
| 254 | 254 | 2000-09-18: ``V4L2_BUF_TYPE_VBI`` was added. This may *break |
| 255 | 255 | compatibility* as the :ref:`VIDIOC_G_FMT <VIDIOC_G_FMT>` and |
| 256 | 256 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctls may fail now if the struct |
| 257 | −:c:type:`struct v4l2_fmt` ``type`` field does not contain | |
| 257 | +struct ``v4l2_fmt`` ``type`` field does not contain | |
| 258 | 258 | ``V4L2_BUF_TYPE_VBI``. In the documentation of the struct |
| 259 | −:ref:`v4l2_vbi_format <v4l2-vbi-format>` ``offset`` field the | |
| 259 | +:c:type:`v4l2_vbi_format` ``offset`` field the | |
| 260 | 260 | ambiguous 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 | 321 | until the application attempts to initiate a data exchange, see |
| 322 | 322 | :ref:`open`. |
| 323 | 323 | |
| 324 | −3. The struct :ref:`v4l2_capability <v4l2-capability>` changed | |
| 324 | +3. The struct :c:type:`v4l2_capability` changed | |
| 325 | 325 | dramatically. Note that also the size of the structure changed, |
| 326 | 326 | which is encoded in the ioctl request code, thus older V4L2 devices |
| 327 | 327 | 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 | 354 | ``V4L2_FLAG_MONOCHROME`` flag was removed, this information is |
| 355 | 355 | available as described in :ref:`format`. |
| 356 | 356 | |
| 357 | −4. In struct :ref:`v4l2_input <v4l2-input>` the ``assoc_audio`` | |
| 357 | +4. In struct :c:type:`v4l2_input` the ``assoc_audio`` | |
| 358 | 358 | field and the ``capability`` field and its only flag |
| 359 | 359 | ``V4L2_INPUT_CAP_AUDIO`` was replaced by the new ``audioset`` field. |
| 360 | 360 | 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 | 363 | New fields are ``tuner`` (reversing the former link from tuners to |
| 364 | 364 | video inputs), ``std`` and ``status``. |
| 365 | 365 | |
| 366 | − Accordingly struct :ref:`v4l2_output <v4l2-output>` lost its | |
| 366 | + Accordingly struct :c:type:`v4l2_output` lost its | |
| 367 | 367 | ``capability`` and ``assoc_audio`` fields. ``audioset``, |
| 368 | 368 | ``modulator`` and ``std`` where added instead. |
| 369 | 369 | |
| 370 | −5. The struct :ref:`v4l2_audio <v4l2-audio>` field ``audio`` was | |
| 370 | +5. The struct :c:type:`v4l2_audio` field ``audio`` was | |
| 371 | 371 | renamed to ``index``, for consistency with other structures. A new |
| 372 | 372 | capability flag ``V4L2_AUDCAP_STEREO`` was added to indicated if the |
| 373 | 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 | 376 | (However the same applies to AVL which is still there.) |
| 377 | 377 | |
| 378 | 378 | Again for consistency the struct |
| 379 | − :ref:`v4l2_audioout <v4l2-audioout>` field ``audio`` was renamed | |
| 379 | + :c:type:`v4l2_audioout` field ``audio`` was renamed | |
| 380 | 380 | to ``index``. |
| 381 | 381 | |
| 382 | −6. The struct :ref:`v4l2_tuner <v4l2-tuner>` ``input`` field was | |
| 382 | +6. The struct :c:type:`v4l2_tuner` ``input`` field was | |
| 383 | 383 | replaced by an ``index`` field, permitting devices with multiple |
| 384 | 384 | tuners. The link between video inputs and tuners is now reversed, |
| 385 | 385 | inputs point to their tuner. The ``std`` substructure became a |
| 386 | 386 | 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>` the | |
| 389 | + Accordingly in struct :c:type:`v4l2_modulator` the | |
| 390 | 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 | 393 | field was replaced by a ``tuner`` field containing the respective |
| 394 | 394 | tuner or modulator index number. A tuner ``type`` field was added |
| 395 | 395 | 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 | 405 | :ref:`VIDIOC_S_STD <VIDIOC_G_STD>` now take a pointer to this |
| 406 | 406 | type as argument. :ref:`VIDIOC_QUERYSTD` was |
| 407 | 407 | added to autodetect the received standard, if the hardware has this |
| 408 | − capability. In struct :ref:`v4l2_standard <v4l2-standard>` an | |
| 408 | + capability. In struct :c:type:`v4l2_standard` an | |
| 409 | 409 | ``index`` field was added for |
| 410 | 410 | :ref:`VIDIOC_ENUMSTD`. A |
| 411 | 411 | :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 | 415 | originally needed to distguish between variations of standards, were |
| 416 | 416 | removed. |
| 417 | 417 | |
| 418 | − Struct :c:type:`struct v4l2_enumstd` ceased to be. | |
| 418 | + Struct ``v4l2_enumstd`` ceased to be. | |
| 419 | 419 | :ref:`VIDIOC_ENUMSTD` now takes a pointer to a |
| 420 | − struct :ref:`v4l2_standard <v4l2-standard>` directly. The | |
| 420 | + struct :c:type:`v4l2_standard` directly. The | |
| 421 | 421 | information which standards are supported by a particular video |
| 422 | − input or output moved into struct :ref:`v4l2_input <v4l2-input>` | |
| 423 | − and struct :ref:`v4l2_output <v4l2-output>` fields named ``std``, | |
| 422 | + input or output moved into struct :c:type:`v4l2_input` | |
| 423 | + and struct :c:type:`v4l2_output` fields named ``std``, | |
| 424 | 424 | respectively. |
| 425 | 425 | |
| 426 | 426 | 8. The struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` fields |
| @@ -432,13 +432,13 @@ This unnamed version was finally merged into Linux 2.5.46. · 5 unmodified lines | ||
| 432 | 432 | :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>`, but without the overhead of |
| 433 | 433 | programming the hardware and regardless of I/O in progress. |
| 434 | 434 | |
| 435 | − In struct :ref:`v4l2_format <v4l2-format>` the ``fmt`` union was | |
| 436 | − extended to contain struct :ref:`v4l2_window <v4l2-window>`. All | |
| 435 | + In struct :c:type:`v4l2_format` the ``fmt`` union was | |
| 436 | + extended to contain struct :c:type:`v4l2_window`. All | |
| 437 | 437 | image format negotiations are now possible with ``VIDIOC_G_FMT``, |
| 438 | 438 | ``VIDIOC_S_FMT`` and ``VIDIOC_TRY_FMT``; ioctl. The ``VIDIOC_G_WIN`` |
| 439 | 439 | and ``VIDIOC_S_WIN`` ioctls to prepare for a video overlay were |
| 440 | 440 | removed. The ``type`` field changed to type enum |
| 441 | − :ref:`v4l2_buf_type <v4l2-buf-type>` and the buffer type names | |
| 441 | + :c:type:`v4l2_buf_type` and the buffer type names | |
| 442 | 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 | 447 | :header-rows: 1 |
| 448 | 448 | :stub-columns: 0 |
| 449 | 449 | |
| 450 | − | |
| 451 | − - .. row 1 | |
| 452 | − | |
| 453 | − - Old defines | |
| 454 | − | |
| 455 | − - enum :ref:`v4l2_buf_type <v4l2-buf-type>` | |
| 456 | − | |
| 457 | − - .. row 2 | |
| 458 | − | |
| 459 | − - ``V4L2_BUF_TYPE_CAPTURE`` | |
| 460 | − | |
| 461 | − - ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` | |
| 462 | − | |
| 463 | − - .. row 3 | |
| 464 | − | |
| 465 | − - ``V4L2_BUF_TYPE_CODECIN`` | |
| 466 | − | |
| 467 | − - Omitted for now | |
| 468 | − | |
| 469 | − - .. row 4 | |
| 470 | − | |
| 471 | − - ``V4L2_BUF_TYPE_CODECOUT`` | |
| 472 | − | |
| 473 | − - Omitted for now | |
| 474 | − | |
| 475 | − - .. row 5 | |
| 476 | − | |
| 477 | − - ``V4L2_BUF_TYPE_EFFECTSIN`` | |
| 478 | − | |
| 479 | − - Omitted for now | |
| 480 | − | |
| 481 | − - .. row 6 | |
| 482 | − | |
| 483 | − - ``V4L2_BUF_TYPE_EFFECTSIN2`` | |
| 484 | − | |
| 485 | − - Omitted for now | |
| 486 | − | |
| 487 | − - .. row 7 | |
| 488 | − | |
| 489 | − - ``V4L2_BUF_TYPE_EFFECTSOUT`` | |
| 490 | − | |
| 491 | − - Omitted for now | |
| 492 | − | |
| 493 | − - .. row 8 | |
| 494 | − | |
| 495 | − - ``V4L2_BUF_TYPE_VIDEOOUT`` | |
| 496 | − | |
| 497 | − - ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` | |
| 498 | − | |
| 499 | − - .. row 9 | |
| 500 | − | |
| 501 | − - ``-`` | |
| 502 | − | |
| 503 | − - ``V4L2_BUF_TYPE_VIDEO_OVERLAY`` | |
| 504 | − | |
| 505 | − - .. row 10 | |
| 506 | − | |
| 507 | − - ``-`` | |
| 508 | − | |
| 509 | − - ``V4L2_BUF_TYPE_VBI_CAPTURE`` | |
| 510 | − | |
| 511 | − - .. row 11 | |
| 512 | − | |
| 513 | − - ``-`` | |
| 514 | − | |
| 515 | − - ``V4L2_BUF_TYPE_VBI_OUTPUT`` | |
| 516 | − | |
| 517 | − - .. row 12 | |
| 518 | − | |
| 519 | − - ``-`` | |
| 520 | − | |
| 521 | − - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` | |
| 522 | − | |
| 523 | − - .. row 13 | |
| 524 | − | |
| 525 | − - ``-`` | |
| 526 | − | |
| 527 | − - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT`` | |
| 528 | − | |
| 529 | − - .. row 14 | |
| 530 | − | |
| 531 | − - ``V4L2_BUF_TYPE_PRIVATE_BASE`` | |
| 532 | − | |
| 533 | − - ``V4L2_BUF_TYPE_PRIVATE`` (but this is deprecated) | |
| 534 | − | |
| 535 | − | |
| 536 | −10. In struct :ref:`v4l2_fmtdesc <v4l2-fmtdesc>` a enum | |
| 537 | − :ref:`v4l2_buf_type <v4l2-buf-type>` field named ``type`` was | |
| 538 | − added as in struct :ref:`v4l2_format <v4l2-format>`. The | |
| 450 | + * - Old defines | |
| 451 | + - enum :c:type:`v4l2_buf_type` | |
| 452 | + * - ``V4L2_BUF_TYPE_CAPTURE`` | |
| 453 | + - ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` | |
| 454 | + * - ``V4L2_BUF_TYPE_CODECIN`` | |
| 455 | + - Omitted for now | |
| 456 | + * - ``V4L2_BUF_TYPE_CODECOUT`` | |
| 457 | + - Omitted for now | |
| 458 | + * - ``V4L2_BUF_TYPE_EFFECTSIN`` | |
| 459 | + - Omitted for now | |
| 460 | + * - ``V4L2_BUF_TYPE_EFFECTSIN2`` | |
| 461 | + - Omitted for now | |
| 462 | + * - ``V4L2_BUF_TYPE_EFFECTSOUT`` | |
| 463 | + - Omitted for now | |
| 464 | + * - ``V4L2_BUF_TYPE_VIDEOOUT`` | |
| 465 | + - ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` | |
| 466 | + * - ``-`` | |
| 467 | + - ``V4L2_BUF_TYPE_VIDEO_OVERLAY`` | |
| 468 | + * - ``-`` | |
| 469 | + - ``V4L2_BUF_TYPE_VBI_CAPTURE`` | |
| 470 | + * - ``-`` | |
| 471 | + - ``V4L2_BUF_TYPE_VBI_OUTPUT`` | |
| 472 | + * - ``-`` | |
| 473 | + - ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` | |
| 474 | + * - ``-`` | |
| 475 | + - ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT`` | |
| 476 | + * - ``V4L2_BUF_TYPE_PRIVATE_BASE`` | |
| 477 | + - ``V4L2_BUF_TYPE_PRIVATE`` (but this is deprecated) | |
| 478 | + | |
| 479 | + | |
| 480 | +10. In struct :c:type:`v4l2_fmtdesc` a enum | |
| 481 | + :c:type:`v4l2_buf_type` field named ``type`` was | |
| 482 | + added as in struct :c:type:`v4l2_format`. The | |
| 539 | 483 | ``VIDIOC_ENUM_FBUFFMT`` ioctl is no longer needed and was removed. |
| 540 | 484 | These calls can be replaced by |
| 541 | 485 | :ref:`VIDIOC_ENUM_FMT` with type |
| 542 | 486 | ``V4L2_BUF_TYPE_VIDEO_OVERLAY``. |
| 543 | 487 | |
| 544 | −11. In struct :ref:`v4l2_pix_format <v4l2-pix-format>` the ``depth`` | |
| 488 | +11. In struct :c:type:`v4l2_pix_format` the ``depth`` | |
| 545 | 489 | field was removed, assuming applications which recognize the format |
| 546 | 490 | by its four-character-code already know the color depth, and others |
| 547 | 491 | 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 | 499 | itself was removed. |
| 556 | 500 | |
| 557 | 501 | 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 | 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 | 508 | :header-rows: 1 |
| 565 | 509 | :stub-columns: 0 |
| 566 | 510 | |
| 567 | − | |
| 568 | − - .. row 1 | |
| 569 | − | |
| 570 | − - Old flag | |
| 571 | − | |
| 572 | − - enum :ref:`v4l2_field <v4l2-field>` | |
| 573 | − | |
| 574 | − - .. row 2 | |
| 575 | − | |
| 576 | − - ``V4L2_FMT_FLAG_NOT_INTERLACED`` | |
| 577 | − | |
| 578 | − - ? | |
| 579 | − | |
| 580 | − - .. row 3 | |
| 581 | − | |
| 582 | − - ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED`` | |
| 583 | − | |
| 584 | − - ``V4L2_FIELD_INTERLACED`` | |
| 585 | − | |
| 586 | − - .. row 4 | |
| 587 | − | |
| 588 | − - ``V4L2_FMT_FLAG_TOPFIELD`` = ``V4L2_FMT_FLAG_ODDFIELD`` | |
| 589 | − | |
| 590 | − - ``V4L2_FIELD_TOP`` | |
| 591 | − | |
| 592 | − - .. row 5 | |
| 593 | − | |
| 594 | − - ``V4L2_FMT_FLAG_BOTFIELD`` = ``V4L2_FMT_FLAG_EVENFIELD`` | |
| 595 | − | |
| 596 | − - ``V4L2_FIELD_BOTTOM`` | |
| 597 | − | |
| 598 | − - .. row 6 | |
| 599 | − | |
| 600 | − - ``-`` | |
| 601 | − | |
| 602 | − - ``V4L2_FIELD_SEQ_TB`` | |
| 603 | − | |
| 604 | − - .. row 7 | |
| 605 | − | |
| 606 | − - ``-`` | |
| 607 | − | |
| 608 | − - ``V4L2_FIELD_SEQ_BT`` | |
| 609 | − | |
| 610 | − - .. row 8 | |
| 611 | − | |
| 612 | − - ``-`` | |
| 613 | − | |
| 614 | − - ``V4L2_FIELD_ALTERNATE`` | |
| 511 | + * - Old flag | |
| 512 | + - enum :c:type:`v4l2_field` | |
| 513 | + * - ``V4L2_FMT_FLAG_NOT_INTERLACED`` | |
| 514 | + - ? | |
| 515 | + * - ``V4L2_FMT_FLAG_INTERLACED`` = ``V4L2_FMT_FLAG_COMBINED`` | |
| 516 | + - ``V4L2_FIELD_INTERLACED`` | |
| 517 | + * - ``V4L2_FMT_FLAG_TOPFIELD`` = ``V4L2_FMT_FLAG_ODDFIELD`` | |
| 518 | + - ``V4L2_FIELD_TOP`` | |
| 519 | + * - ``V4L2_FMT_FLAG_BOTFIELD`` = ``V4L2_FMT_FLAG_EVENFIELD`` | |
| 520 | + - ``V4L2_FIELD_BOTTOM`` | |
| 521 | + * - ``-`` | |
| 522 | + - ``V4L2_FIELD_SEQ_TB`` | |
| 523 | + * - ``-`` | |
| 524 | + - ``V4L2_FIELD_SEQ_BT`` | |
| 525 | + * - ``-`` | |
| 526 | + - ``V4L2_FIELD_ALTERNATE`` | |
| 615 | 527 | |
| 616 | 528 | |
| 617 | 529 | The color space flags were replaced by a enum |
| 618 | − :ref:`v4l2_colorspace <v4l2-colorspace>` value in a newly added | |
| 530 | + :c:type:`v4l2_colorspace` value in a newly added | |
| 619 | 531 | ``colorspace`` field, where one of ``V4L2_COLORSPACE_SMPTE170M``, |
| 620 | 532 | ``V4L2_COLORSPACE_BT878``, ``V4L2_COLORSPACE_470_SYSTEM_M`` or |
| 621 | 533 | ``V4L2_COLORSPACE_470_SYSTEM_BG`` replaces ``V4L2_FMT_CS_601YUV``. |
| 622 | 534 | |
| 623 | −12. In struct :ref:`v4l2_requestbuffers <v4l2-requestbuffers>` the | |
| 535 | +12. In struct :c:type:`v4l2_requestbuffers` the | |
| 624 | 536 | ``type`` field was properly defined as enum |
| 625 | − :ref:`v4l2_buf_type <v4l2-buf-type>`. Buffer types changed as | |
| 537 | + :c:type:`v4l2_buf_type`. Buffer types changed as | |
| 626 | 538 | mentioned above. A new ``memory`` field of type enum |
| 627 | − :ref:`v4l2_memory <v4l2-memory>` was added to distinguish between | |
| 539 | + :c:type:`v4l2_memory` was added to distinguish between | |
| 628 | 540 | I/O methods using buffers allocated by the driver or the |
| 629 | 541 | application. See :ref:`io` for details. |
| 630 | 542 | |
| 631 | −13. In struct :ref:`v4l2_buffer <v4l2-buffer>` the ``type`` field was | |
| 632 | − properly defined as enum :ref:`v4l2_buf_type <v4l2-buf-type>`. | |
| 543 | +13. In struct :c:type:`v4l2_buffer` the ``type`` field was | |
| 544 | + properly defined as enum :c:type:`v4l2_buf_type`. | |
| 633 | 545 | Buffer types changed as mentioned above. A ``field`` field of type |
| 634 | − enum :ref:`v4l2_field <v4l2-field>` was added to indicate if a | |
| 546 | + enum :c:type:`v4l2_field` was added to indicate if a | |
| 635 | 547 | buffer contains a top or bottom field. The old field flags were |
| 636 | 548 | removed. Since no unadjusted system time clock was added to the |
| 637 | 549 | kernel as planned, the ``timestamp`` field changed back from type |
| 638 | 550 | stamp_t, an unsigned 64 bit integer expressing the sample time in |
| 639 | − nanoseconds, to struct :c:type:`struct timeval`. With the addition | |
| 551 | + nanoseconds, to struct :c:type:`timeval`. With the addition | |
| 640 | 552 | of a second memory mapping method the ``offset`` field moved into |
| 641 | 553 | union ``m``, and a new ``memory`` field of type enum |
| 642 | − :ref:`v4l2_memory <v4l2-memory>` was added to distinguish between | |
| 554 | + :c:type:`v4l2_memory` was added to distinguish between | |
| 643 | 555 | I/O methods. See :ref:`io` for details. |
| 644 | 556 | |
| 645 | 557 | 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 | 560 | indeed allocated in device memory rather than DMA-able system |
| 649 | 561 | memory. It was barely useful and so was removed. |
| 650 | 562 | |
| 651 | −14. In struct :ref:`v4l2_framebuffer <v4l2-framebuffer>` the | |
| 563 | +14. In struct :c:type:`v4l2_framebuffer` the | |
| 652 | 564 | ``base[3]`` array anticipating double- and triple-buffering in |
| 653 | 565 | off-screen video memory, however without defining a synchronization |
| 654 | 566 | 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 | 571 | ``V4L2_FBUF_CAP_LIST_CLIPPING`` and |
| 660 | 572 | ``V4L2_FBUF_CAP_BITMAP_CLIPPING``. |
| 661 | 573 | |
| 662 | −15. In struct :ref:`v4l2_clip <v4l2-clip>` the ``x``, ``y``, | |
| 574 | +15. In struct :c:type:`v4l2_clip` the ``x``, ``y``, | |
| 663 | 575 | ``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 | 577 | fields were renamed to ``left`` and ``top``, i. e. offsets to a |
| 666 | 578 | context dependent origin. |
| 667 | 579 | |
| 668 | −16. In struct :ref:`v4l2_window <v4l2-window>` the ``x``, ``y``, | |
| 580 | +16. In struct :c:type:`v4l2_window` the ``x``, ``y``, | |
| 669 | 581 | ``width`` and ``height`` field moved into a ``w`` substructure as |
| 670 | − above. A ``field`` field of type %v4l2-field; was added to | |
| 582 | + above. A ``field`` field of type :c:type:`v4l2_field` was added to | |
| 671 | 583 | distinguish between field and frame (interlaced) overlay. |
| 672 | 584 | |
| 673 | 585 | 17. The digital zoom interface, including struct |
| 674 | − :c:type:`struct v4l2_zoomcap`, struct | |
| 675 | − :c:type:`struct v4l2_zoom`, ``V4L2_ZOOM_NONCAP`` and | |
| 586 | + struct ``v4l2_zoomcap``, struct | |
| 587 | + struct ``v4l2_zoom``, ``V4L2_ZOOM_NONCAP`` and | |
| 676 | 588 | ``V4L2_ZOOM_WHILESTREAMING`` was replaced by a new cropping and |
| 677 | 589 | 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 | 591 | where redefined for this purpose. See :ref:`crop` for details. |
| 680 | 592 | |
| 681 | −18. In struct :ref:`v4l2_vbi_format <v4l2-vbi-format>` the | |
| 593 | +18. In struct :c:type:`v4l2_vbi_format` the | |
| 682 | 594 | ``SAMPLE_FORMAT`` field now contains a four-character-code as used |
| 683 | 595 | to identify video image formats and ``V4L2_PIX_FMT_GREY`` replaces |
| 684 | 596 | the ``V4L2_VBI_SF_UBYTE`` define. The ``reserved`` field was |
| 685 | 597 | extended. |
| 686 | 598 | |
| 687 | −19. In struct :ref:`v4l2_captureparm <v4l2-captureparm>` the type of | |
| 599 | +19. In struct :c:type:`v4l2_captureparm` the type of | |
| 688 | 600 | the ``timeperframe`` field changed from unsigned long to struct |
| 689 | − :ref:`v4l2_fract <v4l2-fract>`. This allows the accurate | |
| 601 | + :c:type:`v4l2_fract`. This allows the accurate | |
| 690 | 602 | expression of multiples of the NTSC-M frame rate 30000 / 1001. A new |
| 691 | 603 | field ``readbuffers`` was added to control the driver behaviour in |
| 692 | 604 | read I/O mode. |
| 693 | 605 | |
| 694 | 606 | Similar changes were made to struct |
| 695 | − :ref:`v4l2_outputparm <v4l2-outputparm>`. | |
| 607 | + :c:type:`v4l2_outputparm`. | |
| 696 | 608 | |
| 697 | −20. The struct :c:type:`struct v4l2_performance` and | |
| 609 | +20. The struct ``v4l2_performance`` and | |
| 698 | 610 | ``VIDIOC_G_PERF`` ioctl were dropped. Except when using the |
| 699 | 611 | :ref:`read/write I/O method <rw>`, which is limited anyway, this |
| 700 | 612 | information is already available to applications. |
| @@ -768,46 +680,21 @@ V4L2 2003-11-05 · 67 unmodified lines | ||
| 768 | 680 | :header-rows: 1 |
| 769 | 681 | :stub-columns: 0 |
| 770 | 682 | |
| 771 | − | |
| 772 | − - .. row 1 | |
| 773 | − | |
| 774 | − - Symbol | |
| 775 | − | |
| 776 | − - In this document prior to revision 0.5 | |
| 777 | − | |
| 778 | − - Corrected | |
| 779 | − | |
| 780 | − - .. row 2 | |
| 781 | − | |
| 782 | − - ``V4L2_PIX_FMT_RGB24`` | |
| 783 | − | |
| 784 | − - B, G, R | |
| 785 | − | |
| 786 | − - R, G, B | |
| 787 | − | |
| 788 | − - .. row 3 | |
| 789 | − | |
| 790 | − - ``V4L2_PIX_FMT_BGR24`` | |
| 791 | − | |
| 792 | − - R, G, B | |
| 793 | − | |
| 794 | − - B, G, R | |
| 795 | − | |
| 796 | − - .. row 4 | |
| 797 | − | |
| 798 | − - ``V4L2_PIX_FMT_RGB32`` | |
| 799 | − | |
| 800 | − - B, G, R, X | |
| 801 | − | |
| 802 | − - R, G, B, X | |
| 803 | − | |
| 804 | − - .. row 5 | |
| 805 | − | |
| 806 | − - ``V4L2_PIX_FMT_BGR32`` | |
| 807 | − | |
| 808 | − - R, G, B, X | |
| 809 | − | |
| 810 | − - B, G, R, X | |
| 683 | + * - Symbol | |
| 684 | + - In this document prior to revision 0.5 | |
| 685 | + - Corrected | |
| 686 | + * - ``V4L2_PIX_FMT_RGB24`` | |
| 687 | + - B, G, R | |
| 688 | + - R, G, B | |
| 689 | + * - ``V4L2_PIX_FMT_BGR24`` | |
| 690 | + - R, G, B | |
| 691 | + - B, G, R | |
| 692 | + * - ``V4L2_PIX_FMT_RGB32`` | |
| 693 | + - B, G, R, X | |
| 694 | + - R, G, B, X | |
| 695 | + * - ``V4L2_PIX_FMT_BGR32`` | |
| 696 | + - R, G, B, X | |
| 697 | + - B, G, R, X | |
| 811 | 698 | |
| 812 | 699 | |
| 813 | 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 | |
| 836 | 723 | 1. A new field ``input`` (former ``reserved[0]``) was added to the |
| 837 | − struct :ref:`v4l2_buffer <v4l2-buffer>` structure. Purpose of this | |
| 724 | + struct :c:type:`v4l2_buffer` structure. Purpose of this | |
| 838 | 725 | field is to alternate between video inputs (e. g. cameras) in step |
| 839 | 726 | with the video capturing process. This function must be enabled with |
| 840 | 727 | 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 | |
| 855 | 742 | 4. The documentation of the :ref:`VIDIOC_QBUF` and |
| 856 | 743 | :ref:`VIDIOC_DQBUF <VIDIOC_QBUF>` ioctls did not mention the |
| 857 | − struct :ref:`v4l2_buffer <v4l2-buffer>` ``memory`` field. It was | |
| 744 | + struct :c:type:`v4l2_buffer` ``memory`` field. It was | |
| 858 | 745 | also missing from examples. Also on the ``VIDIOC_DQBUF`` page the ``EIO`` |
| 859 | 746 | error code was not documented. |
| 860 | 747 | |
| @@ -882,7 +769,7 @@ V4L2 in Linux 2.6.15 · 21 unmodified lines | ||
| 882 | 769 | 3. The ``VIDIOC_G_COMP`` and ``VIDIOC_S_COMP`` ioctl were renamed to |
| 883 | 770 | ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` respectively. Their |
| 884 | 771 | argument was replaced by a struct |
| 885 | − :c:type:`struct v4l2_mpeg_compression` pointer. (The | |
| 772 | + ``v4l2_mpeg_compression`` pointer. (The | |
| 886 | 773 | ``VIDIOC_G_MPEGCOMP`` and ``VIDIOC_S_MPEGCOMP`` ioctls where removed |
| 887 | 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 | |
| 903 | 790 | 1. The ``V4L2_IN_ST_COLOR_KILL`` flag in struct |
| 904 | − :ref:`v4l2_input <v4l2-input>` not only indicates if the color | |
| 791 | + :c:type:`v4l2_input` not only indicates if the color | |
| 905 | 792 | killer is enabled, but also if it is active. (The color killer |
| 906 | 793 | disables color decoding when it detects no color in the video signal |
| 907 | 794 | to improve the image quality.) |
| @@ -914,18 +801,18 @@ V4L2 spec erratum 2006-01-10 · 6 unmodified lines | ||
| 914 | 801 | V4L2 spec erratum 2006-02-03 |
| 915 | 802 | ============================ |
| 916 | 803 | |
| 917 | −1. In struct :ref:`v4l2_captureparm <v4l2-captureparm>` and struct | |
| 918 | − :ref:`v4l2_outputparm <v4l2-outputparm>` the ``timeperframe`` | |
| 804 | +1. In struct :c:type:`v4l2_captureparm` and struct | |
| 805 | + :c:type:`v4l2_outputparm` the ``timeperframe`` | |
| 919 | 806 | field gives the time in seconds, not microseconds. |
| 920 | 807 | |
| 921 | 808 | |
| 922 | 809 | V4L2 spec erratum 2006-02-04 |
| 923 | 810 | ============================ |
| 924 | 811 | |
| 925 | −1. The ``clips`` field in struct :ref:`v4l2_window <v4l2-window>` | |
| 926 | − must point to an array of struct :ref:`v4l2_clip <v4l2-clip>`, not | |
| 812 | +1. The ``clips`` field in struct :c:type:`v4l2_window` | |
| 813 | + must point to an array of struct :c:type:`v4l2_clip`, not | |
| 927 | 814 | 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 | |
| 931 | 818 | V4L2 in Linux 2.6.17 |
| @@ -951,18 +838,18 @@ V4L2 spec erratum 2006-09-23 (Draft 0.15) · 19 unmodified lines | ||
| 951 | 838 | not mentioned along with other buffer types. |
| 952 | 839 | |
| 953 | 840 | 2. In :ref:`VIDIOC_G_AUDIO <VIDIOC_G_AUDIO>` it was clarified that the struct |
| 954 | − :ref:`v4l2_audio <v4l2-audio>` ``mode`` field is a flags field. | |
| 841 | + :c:type:`v4l2_audio` ``mode`` field is a flags field. | |
| 955 | 842 | |
| 956 | 843 | 3. :ref:`VIDIOC_QUERYCAP` did not mention the sliced VBI and radio |
| 957 | 844 | capability flags. |
| 958 | 845 | |
| 959 | 846 | 4. In :ref:`VIDIOC_G_FREQUENCY <VIDIOC_G_FREQUENCY>` it was clarified that applications |
| 960 | 847 | must initialize the tuner ``type`` field of struct |
| 961 | − :ref:`v4l2_frequency <v4l2-frequency>` before calling | |
| 848 | + :c:type:`v4l2_frequency` before calling | |
| 962 | 849 | :ref:`VIDIOC_S_FREQUENCY <VIDIOC_G_FREQUENCY>`. |
| 963 | 850 | |
| 964 | 851 | 5. The ``reserved`` array in struct |
| 965 | − :ref:`v4l2_requestbuffers <v4l2-requestbuffers>` has 2 elements, | |
| 852 | + :c:type:`v4l2_requestbuffers` has 2 elements, | |
| 966 | 853 | not 32. |
| 967 | 854 | |
| 968 | 855 | 6. In :ref:`output` and :ref:`raw-vbi` the device file names |
| @@ -982,7 +869,7 @@ V4L2 in Linux 2.6.18 · 13 unmodified lines | ||
| 982 | 869 | flag to skip unsupported controls with |
| 983 | 870 | :ref:`VIDIOC_QUERYCTRL`, new control types |
| 984 | 871 | ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_TYPE_CTRL_CLASS`` |
| 985 | − (:ref:`v4l2-ctrl-type`), and new control flags | |
| 872 | + (:c:type:`v4l2_ctrl_type`), and new control flags | |
| 986 | 873 | ``V4L2_CTRL_FLAG_READ_ONLY``, ``V4L2_CTRL_FLAG_UPDATE``, |
| 987 | 874 | ``V4L2_CTRL_FLAG_INACTIVE`` and ``V4L2_CTRL_FLAG_SLIDER`` |
| 988 | 875 | (:ref:`control-flags`). See :ref:`extended-controls` for details. |
| @@ -991,7 +878,7 @@ V4L2 in Linux 2.6.18 · 2 unmodified lines | ||
| 991 | 878 | V4L2 in Linux 2.6.19 |
| 992 | 879 | ==================== |
| 993 | 880 | |
| 994 | −1. In struct :ref:`v4l2_sliced_vbi_cap <v4l2-sliced-vbi-cap>` a | |
| 881 | +1. In struct :c:type:`v4l2_sliced_vbi_cap` a | |
| 995 | 882 | buffer type field was added replacing a reserved field. Note on |
| 996 | 883 | architectures where the size of enum types differs from int types the |
| 997 | 884 | size of the structure changed. The |
| @@ -1029,7 +916,7 @@ V4L2 in Linux 2.6.22 · 31 unmodified lines | ||
| 1029 | 916 | ==================== |
| 1030 | 917 | |
| 1031 | 918 | 1. Two new field orders ``V4L2_FIELD_INTERLACED_TB`` and |
| 1032 | − ``V4L2_FIELD_INTERLACED_BT`` were added. See :ref:`v4l2-field` for | |
| 919 | + ``V4L2_FIELD_INTERLACED_BT`` were added. See :c:type:`v4l2_field` for | |
| 1033 | 920 | details. |
| 1034 | 921 | |
| 1035 | 922 | 2. Three new clipping/blending methods with a global or straight or |
| @@ -1038,15 +925,15 @@ V4L2 in Linux 2.6.22 · 2 unmodified lines | ||
| 1038 | 925 | and :ref:`VIDIOC_S_FBUF <VIDIOC_G_FBUF>` ioctls for details. |
| 1039 | 926 | |
| 1040 | 927 | A new ``global_alpha`` field was added to |
| 1041 | − :ref:`v4l2_window <v4l2-window>`, extending the structure. This | |
| 928 | + :c:type:`v4l2_window`, extending the structure. This | |
| 1042 | 929 | may *break compatibility* with applications using a struct |
| 1043 | − :c:type:`struct v4l2_window` directly. However the | |
| 930 | + struct :c:type:`v4l2_window` directly. However the | |
| 1044 | 931 | :ref:`VIDIOC_G/S/TRY_FMT <VIDIOC_G_FMT>` ioctls, which take a |
| 1045 | − pointer to a :ref:`v4l2_format <v4l2-format>` parent structure | |
| 932 | + pointer to a :c:type:`v4l2_format` parent structure | |
| 1046 | 933 | with padding bytes at the end, are not affected. |
| 1047 | 934 | |
| 1048 | 935 | 3. The format of the ``chromakey`` field in struct |
| 1049 | − :ref:`v4l2_window <v4l2-window>` changed from "host order RGB32" | |
| 936 | + :c:type:`v4l2_window` changed from "host order RGB32" | |
| 1050 | 937 | to a pixel value in the same format as the framebuffer. This may |
| 1051 | 938 | *break compatibility* with existing applications. Drivers supporting |
| 1052 | 939 | the "host order RGB32" format are not known. |
| @@ -1127,8 +1014,8 @@ V4L2 in Linux 2.6.29 · 74 unmodified lines | ||
| 1127 | 1014 | 1. The ``VIDIOC_G_CHIP_IDENT`` ioctl was renamed to |
| 1128 | 1015 | ``VIDIOC_G_CHIP_IDENT_OLD`` and ``VIDIOC_DBG_G_CHIP_IDENT`` was |
| 1129 | 1016 | introduced in its place. The old struct |
| 1130 | − :c:type:`struct v4l2_chip_ident` was renamed to | |
| 1131 | − :c:type:`struct v4l2_chip_ident_old`. | |
| 1017 | + struct ``v4l2_chip_ident`` was renamed to | |
| 1018 | + struct ``v4l2_chip_ident_old``. | |
| 1132 | 1019 | |
| 1133 | 1020 | 2. The pixel formats ``V4L2_PIX_FMT_VYUY``, ``V4L2_PIX_FMT_NV16`` and |
| 1134 | 1021 | ``V4L2_PIX_FMT_NV61`` were added. |
| @@ -1279,7 +1166,7 @@ V4L2 in Linux 3.5 · 144 unmodified lines | ||
| 1279 | 1166 | V4L2 in Linux 3.6 |
| 1280 | 1167 | ================= |
| 1281 | 1168 | |
| 1282 | −1. Replaced ``input`` in :c:type:`struct v4l2_buffer` by | |
| 1169 | +1. Replaced ``input`` in struct :c:type:`v4l2_buffer` by | |
| 1283 | 1170 | ``reserved2`` and removed ``V4L2_BUF_FLAG_INPUT``. |
| 1284 | 1171 | |
| 1285 | 1172 | 2. 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 | |
| 1295 | 1182 | 1. Added timestamp types to ``flags`` field in |
| 1296 | − :c:type:`struct v4l2_buffer`. See :ref:`buffer-flags`. | |
| 1183 | + struct :c:type:`v4l2_buffer`. See :ref:`buffer-flags`. | |
| 1297 | 1184 | |
| 1298 | 1185 | 2. Added ``V4L2_EVENT_CTRL_CH_RANGE`` control event changes flag. See |
| 1299 | 1186 | :ref:`ctrl-changes-flags`. |
| @@ -1320,7 +1207,7 @@ V4L2 in Linux 3.11 · 20 unmodified lines | ||
| 1320 | 1207 | V4L2 in Linux 3.14 |
| 1321 | 1208 | ================== |
| 1322 | 1209 | |
| 1323 | −1. In struct :c:type:`struct v4l2_rect`, the type of ``width`` and | |
| 1210 | +1. In struct :c:type:`v4l2_rect`, the type of ``width`` and | |
| 1324 | 1211 | ``height`` fields changed from _s32 to _u32. |
| 1325 | 1212 | |
| 1326 | 1213 | |
| @@ -1339,7 +1226,7 @@ V4L2 in Linux 3.16 · 12 unmodified lines | ||
| 1339 | 1226 | V4L2 in Linux 3.17 |
| 1340 | 1227 | ================== |
| 1341 | 1228 | |
| 1342 | −1. Extended struct :ref:`v4l2_pix_format <v4l2-pix-format>`. Added | |
| 1229 | +1. Extended struct :c:type:`v4l2_pix_format`. Added | |
| 1343 | 1230 | format flags. |
| 1344 | 1231 | |
| 1345 | 1232 | 2. Added compound control types and |
| @@ -1357,11 +1244,11 @@ V4L2 in Linux 3.19 · 11 unmodified lines | ||
| 1357 | 1244 | ================== |
| 1358 | 1245 | |
| 1359 | 1246 | 1. Rewrote Colorspace chapter, added new enum |
| 1360 | − :ref:`v4l2_ycbcr_encoding <v4l2-ycbcr-encoding>` and enum | |
| 1361 | − :ref:`v4l2_quantization <v4l2-quantization>` fields to struct | |
| 1362 | − :ref:`v4l2_pix_format <v4l2-pix-format>`, struct | |
| 1363 | − :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` and | |
| 1364 | − struct :ref:`v4l2_mbus_framefmt <v4l2-mbus-framefmt>`. | |
| 1247 | + :c:type:`v4l2_ycbcr_encoding` and enum | |
| 1248 | + :c:type:`v4l2_quantization` fields to struct | |
| 1249 | + :c:type:`v4l2_pix_format`, struct | |
| 1250 | + :c:type:`v4l2_pix_format_mplane` and | |
| 1251 | + struct :c:type:`v4l2_mbus_framefmt`. | |
| 1365 | 1252 | |
| 1366 | 1253 | |
| 1367 | 1254 | V4L2 in Linux 4.4 |
| @@ -113,56 +113,71 @@ Libv4l device control functions · 112 unmodified lines | ||
| 113 | 113 | |
| 114 | 114 | The common file operation methods are provided by libv4l. |
| 115 | 115 | |
| 116 | −Those functions operate just like glibc | |
| 117 | −open/close/dup/ioctl/read/mmap/munmap: | |
| 116 | +Those functions operate just like the gcc function ``dup()`` and | |
| 117 | +V4L2 functions | |
| 118 | +:c:func:`open() <v4l2-open>`, :c:func:`close() <v4l2-close>`, | |
| 119 | +:c:func:`ioctl() <v4l2-ioctl>`, :c:func:`read() <v4l2-read>`, | |
| 120 | +:c:func:`mmap() <v4l2-mmap>` and :c:func:`munmap() <v4l2-munmap>`: | |
| 118 | 121 | |
| 119 | −- :c:type:`int v4l2_open(const char *file, int oflag, ...)` - operates like the | |
| 120 | − standard :ref:`open() <func-open>` function. | |
| 122 | +.. c:function:: int v4l2_open(const char *file, int oflag, ...) | |
| 121 | 123 | |
| 122 | −- :c:type:`int v4l2_close(int fd)` - operates like the standard | |
| 123 | − :ref:`close() <func-close>` function. | |
| 124 | + operates like the :c:func:`open() <v4l2-open>` function. | |
| 124 | 125 | |
| 125 | −- :c:type:`int v4l2_dup(int fd)` - operates like the standard dup() function, | |
| 126 | − duplicating a file handler. | |
| 126 | +.. c:function:: int v4l2_close(int fd) | |
| 127 | 127 | |
| 128 | −- :c:type:`int v4l2_ioctl (int fd, unsigned long int request, ...)` - operates | |
| 129 | − like the standard :ref:`ioctl() <func-ioctl>` function. | |
| 128 | + operates like the :c:func:`close() <v4l2-close>` function. | |
| 130 | 129 | |
| 131 | −- :c:type:`int v4l2_read (int fd, void* buffer, size_t n)` - operates like the | |
| 132 | − standard :ref:`read() <func-read>` function. | |
| 130 | +.. c:function:: int v4l2_dup(int fd) | |
| 133 | 131 | |
| 134 | −- :c:type:`void v4l2_mmap(void *start, size_t length, int prot, int flags, int | |
| 135 | − fd, int64_t offset);` - operates like the standard | |
| 136 | − :ref:`mmap() <func-mmap>` function. | |
| 132 | + operates like the libc ``dup()`` function, duplicating a file handler. | |
| 137 | 133 | |
| 138 | −- :c:type:`int v4l2_munmap(void *_start, size_t length);` - operates like the | |
| 139 | − standard :ref:`munmap() <func-munmap>` function. | |
| 134 | +.. c:function:: int v4l2_ioctl (int fd, unsigned long int request, ...) | |
| 135 | + | |
| 136 | + operates like the :c:func:`ioctl() <v4l2-ioctl>` function. | |
| 137 | + | |
| 138 | +.. c:function:: int v4l2_read (int fd, void* buffer, size_t n) | |
| 139 | + | |
| 140 | + operates like the :c:func:`read() <v4l2-read>` function. | |
| 141 | + | |
| 142 | +.. c:function:: void v4l2_mmap(void *start, size_t length, int prot, int flags, int fd, int64_t offset); | |
| 143 | + | |
| 144 | + operates like the :c:func:`munmap() <v4l2-munmap>` function. | |
| 145 | + | |
| 146 | +.. c:function:: int v4l2_munmap(void *_start, size_t length); | |
| 147 | + | |
| 148 | + operates like the :c:func:`munmap() <v4l2-munmap>` function. | |
| 140 | 149 | |
| 141 | 150 | Those functions provide additional control: |
| 142 | 151 | |
| 143 | −- :c:type:`int v4l2_fd_open(int fd, int v4l2_flags)` - opens an already opened | |
| 144 | − fd for further use through v4l2lib and possibly modify libv4l2's | |
| 145 | − default behavior through the v4l2_flags argument. Currently, | |
| 146 | − v4l2_flags can be ``V4L2_DISABLE_CONVERSION``, to disable format | |
| 147 | − conversion. | |
| 152 | +.. c:function:: int v4l2_fd_open(int fd, int v4l2_flags) | |
| 153 | + | |
| 154 | + opens an already opened fd for further use through v4l2lib and possibly | |
| 155 | + modify libv4l2's default behavior through the ``v4l2_flags`` argument. | |
| 156 | + Currently, ``v4l2_flags`` can be ``V4L2_DISABLE_CONVERSION``, to disable | |
| 157 | + format conversion. | |
| 148 | 158 | |
| 149 | −- :c:type:`int v4l2_set_control(int fd, int cid, int value)` - This function | |
| 150 | − takes a value of 0 - 65535, and then scales that range to the actual | |
| 151 | − range of the given v4l control id, and then if the cid exists and is | |
| 159 | +.. c:function:: int v4l2_set_control(int fd, int cid, int value) | |
| 160 | + | |
| 161 | + This function takes a value of 0 - 65535, and then scales that range to the | |
| 162 | + actual range of the given v4l control id, and then if the cid exists and is | |
| 152 | 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 a | |
| 155 | − value of 0 - 65535, scaled to from the actual range of the given v4l | |
| 156 | − control id. when the cid does not exist, could not be accessed for | |
| 157 | − some reason, or some error occurred 0 is returned. | |
| 165 | +.. c:function:: int v4l2_get_control(int fd, int cid) | |
| 166 | + | |
| 167 | + This function returns a value of 0 - 65535, scaled to from the actual range | |
| 168 | + of the given v4l control id. when the cid does not exist, could not be | |
| 169 | + accessed for some reason, or some error occurred 0 is returned. | |
| 158 | 170 | |
| 159 | 171 | |
| 160 | 172 | v4l1compat.so wrapper library |
| 161 | 173 | ============================= |
| 162 | 174 | |
| 163 | −This library intercepts calls to open/close/ioctl/mmap/mmunmap | |
| 175 | +This library intercepts calls to | |
| 176 | +:c:func:`open() <v4l2-open>`, :c:func:`close() <v4l2-close>`, | |
| 177 | +:c:func:`ioctl() <v4l2-ioctl>`, :c:func:`mmap() <v4l2-mmap>` and | |
| 178 | +:c:func:`munmap() <v4l2-munmap>` | |
| 164 | 179 | operations and redirects them to the libv4l counterparts, by using |
| 165 | −LD_PRELOAD=/usr/lib/v4l1compat.so. It also emulates V4L1 calls via V4L2 | |
| 180 | +``LD_PRELOAD=/usr/lib/v4l1compat.so``. It also emulates V4L1 calls via V4L2 | |
| 166 | 181 | API. |
| 167 | 182 | |
| 168 | 183 | It allows usage of binary legacy applications that still don't use |
| @@ -8,7 +8,7 @@ Streaming I/O (Memory Mapping) · 7 unmodified lines | ||
| 8 | 8 | |
| 9 | 9 | Input and output devices support this I/O method when the |
| 10 | 10 | ``V4L2_CAP_STREAMING`` flag in the ``capabilities`` field of struct |
| 11 | −:ref:`v4l2_capability <v4l2-capability>` returned by the | |
| 11 | +:c:type:`v4l2_capability` returned by the | |
| 12 | 12 | :ref:`VIDIOC_QUERYCAP` ioctl is set. There are two |
| 13 | 13 | streaming methods, to determine if the memory mapping flavor is |
| 14 | 14 | supported applications must call the :ref:`VIDIOC_REQBUFS` ioctl |
| @@ -39,10 +39,10 @@ address space with the :ref:`mmap() <func-mmap>` function. The · 24 unmodified lines | ||
| 39 | 39 | location of the buffers in device memory can be determined with the |
| 40 | 40 | :ref:`VIDIOC_QUERYBUF` ioctl. In the single-planar |
| 41 | 41 | API case, the ``m.offset`` and ``length`` returned in a struct |
| 42 | −:ref:`v4l2_buffer <v4l2-buffer>` are passed as sixth and second | |
| 42 | +:c:type:`v4l2_buffer` are passed as sixth and second | |
| 43 | 43 | parameter to the :ref:`mmap() <func-mmap>` function. When using the |
| 44 | −multi-planar API, struct :ref:`v4l2_buffer <v4l2-buffer>` contains an | |
| 45 | −array of struct :ref:`v4l2_plane <v4l2-plane>` structures, each | |
| 44 | +multi-planar API, struct :c:type:`v4l2_buffer` contains an | |
| 45 | +array of struct :c:type:`v4l2_plane` structures, each | |
| 46 | 46 | containing its own ``m.offset`` and ``length``. When using the |
| 47 | 47 | multi-planar API, every plane of every buffer has to be mapped |
| 48 | 48 | separately, so the number of calls to :ref:`mmap() <func-mmap>` should |
| @@ -218,7 +218,7 @@ to function, apart of this no limit exists on the number of buffers · 169 unmodified lines | ||
| 218 | 218 | applications can enqueue in advance, or dequeue and process. They can |
| 219 | 219 | also enqueue in a different order than buffers have been dequeued, and |
| 220 | 220 | the driver can *fill* enqueued *empty* buffers in any order. [#f2]_ The |
| 221 | −index number of a buffer (struct :ref:`v4l2_buffer <v4l2-buffer>` | |
| 221 | +index number of a buffer (struct :c:type:`v4l2_buffer` | |
| 222 | 222 | ``index``) plays no role here, it only identifies the buffer. |
| 223 | 223 | |
| 224 | 224 | Initially all mapped buffers are in dequeued state, inaccessible by the |
| @@ -251,7 +251,7 @@ To start and stop capturing or output applications call the · 26 unmodified lines | ||
| 251 | 251 | removes all buffers from both queues as a side effect. Since there is |
| 252 | 252 | no notion of doing anything "now" on a multitasking system, if an |
| 253 | 253 | application needs to synchronize with another event it should examine |
| 254 | − the struct ::ref:`v4l2_buffer <v4l2-buffer>` ``timestamp`` of captured | |
| 254 | + the struct ::c:type:`v4l2_buffer` ``timestamp`` of captured | |
| 255 | 255 | or outputted buffers. |
| 256 | 256 | |
| 257 | 257 | Drivers implementing memory mapping I/O must support the |
| @@ -4,193 +4,130 @@ · 3 unmodified lines | ||
| 4 | 4 | Single-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 | 13 | .. flat-table:: struct v4l2_pix_format |
| 11 | 14 | :header-rows: 0 |
| 12 | 15 | :stub-columns: 0 |
| 13 | 16 | :widths: 1 1 2 |
| 14 | 17 | |
| 15 | − | |
| 16 | − - .. row 1 | |
| 17 | − | |
| 18 | − - __u32 | |
| 19 | − | |
| 20 | − - ``width`` | |
| 21 | − | |
| 22 | − - Image width in pixels. | |
| 23 | − | |
| 24 | − - .. row 2 | |
| 25 | − | |
| 26 | − - __u32 | |
| 27 | − | |
| 28 | − - ``height`` | |
| 29 | − | |
| 30 | − - Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``, | |
| 31 | − ``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height | |
| 32 | − refers to the number of lines in the field, otherwise it refers to | |
| 33 | − the number of lines in the frame (which is twice the field height | |
| 34 | − for interlaced formats). | |
| 35 | − | |
| 36 | − - .. row 3 | |
| 37 | − | |
| 38 | − - :cspan:`2` Applications set these fields to request an image | |
| 39 | − size, drivers return the closest possible values. In case of | |
| 40 | − planar formats the ``width`` and ``height`` applies to the largest | |
| 41 | − plane. To avoid ambiguities drivers must return values rounded up | |
| 42 | − to a multiple of the scale factor of any smaller planes. For | |
| 43 | − example when the image format is YUV 4:2:0, ``width`` and | |
| 44 | − ``height`` must be multiples of two. | |
| 45 | − | |
| 46 | − - .. row 4 | |
| 47 | − | |
| 48 | − - __u32 | |
| 49 | − | |
| 50 | − - ``pixelformat`` | |
| 51 | − | |
| 52 | − - The pixel format or type of compression, set by the application. | |
| 53 | − This is a little endian | |
| 54 | − :ref:`four character code <v4l2-fourcc>`. V4L2 defines standard | |
| 55 | − RGB formats in :ref:`rgb-formats`, YUV formats in | |
| 56 | − :ref:`yuv-formats`, and reserved codes in | |
| 57 | − :ref:`reserved-formats` | |
| 58 | − | |
| 59 | − - .. row 5 | |
| 60 | − | |
| 61 | − - enum :ref:`v4l2_field <v4l2-field>` | |
| 62 | − | |
| 63 | − - ``field`` | |
| 64 | − | |
| 65 | − - Video images are typically interlaced. Applications can request to | |
| 66 | − capture or output only the top or bottom field, or both fields | |
| 67 | − interlaced or sequentially stored in one buffer or alternating in | |
| 68 | − separate buffers. Drivers return the actual field order selected. | |
| 69 | − For more details on fields see :ref:`field-order`. | |
| 70 | − | |
| 71 | − - .. row 6 | |
| 72 | − | |
| 73 | − - __u32 | |
| 74 | − | |
| 75 | − - ``bytesperline`` | |
| 76 | − | |
| 77 | − - Distance in bytes between the leftmost pixels in two adjacent | |
| 78 | − lines. | |
| 79 | − | |
| 80 | − - .. row 7 | |
| 81 | − | |
| 82 | − - :cspan:`2` | |
| 83 | − | |
| 84 | − Both applications and drivers can set this field to request | |
| 85 | − padding bytes at the end of each line. Drivers however may ignore | |
| 86 | − the value requested by the application, returning ``width`` times | |
| 87 | − bytes per pixel or a larger value required by the hardware. That | |
| 88 | − implies applications can just set this field to zero to get a | |
| 89 | − reasonable default. | |
| 90 | − | |
| 91 | − Video hardware may access padding bytes, therefore they must | |
| 92 | − reside in accessible memory. Consider cases where padding bytes | |
| 93 | − after the last line of an image cross a system page boundary. | |
| 94 | − Input devices may write padding bytes, the value is undefined. | |
| 95 | − Output devices ignore the contents of padding bytes. | |
| 96 | − | |
| 97 | − When the image format is planar the ``bytesperline`` value applies | |
| 98 | − to the first plane and is divided by the same factor as the | |
| 99 | − ``width`` field for the other planes. For example the Cb and Cr | |
| 100 | − planes of a YUV 4:2:0 image have half as many padding bytes | |
| 101 | − following each line as the Y plane. To avoid ambiguities drivers | |
| 102 | − must return a ``bytesperline`` value rounded up to a multiple of | |
| 103 | − the scale factor. | |
| 104 | − | |
| 105 | − For compressed formats the ``bytesperline`` value makes no sense. | |
| 106 | − Applications and drivers must set this to 0 in that case. | |
| 107 | − | |
| 108 | − - .. row 8 | |
| 109 | − | |
| 110 | − - __u32 | |
| 111 | − | |
| 112 | − - ``sizeimage`` | |
| 113 | − | |
| 114 | − - Size in bytes of the buffer to hold a complete image, set by the | |
| 115 | − driver. Usually this is ``bytesperline`` times ``height``. When | |
| 116 | − the image consists of variable length compressed data this is the | |
| 117 | − maximum number of bytes required to hold an image. | |
| 118 | − | |
| 119 | − - .. row 9 | |
| 120 | − | |
| 121 | − - enum :ref:`v4l2_colorspace <v4l2-colorspace>` | |
| 122 | − | |
| 123 | − - ``colorspace`` | |
| 124 | − | |
| 125 | − - This information supplements the ``pixelformat`` and must be set | |
| 126 | − by the driver for capture streams and by the application for | |
| 127 | − output streams, see :ref:`colorspaces`. | |
| 128 | − | |
| 129 | − - .. row 10 | |
| 130 | − | |
| 131 | − - __u32 | |
| 132 | − | |
| 133 | − - ``priv`` | |
| 134 | − | |
| 135 | − - This field indicates whether the remaining fields of the | |
| 136 | − :ref:`struct v4l2_pix_format <v4l2-pix-format>` structure, also called the | |
| 137 | − extended fields, are valid. When set to | |
| 138 | − ``V4L2_PIX_FMT_PRIV_MAGIC``, it indicates that the extended fields | |
| 139 | − have been correctly initialized. When set to any other value it | |
| 140 | − indicates that the extended fields contain undefined values. | |
| 141 | − | |
| 142 | − Applications that wish to use the pixel format extended fields | |
| 143 | − must first ensure that the feature is supported by querying the | |
| 144 | − device for the :ref:`V4L2_CAP_EXT_PIX_FORMAT <querycap>` | |
| 145 | − capability. If the capability isn't set the pixel format extended | |
| 146 | − fields are not supported and using the extended fields will lead | |
| 147 | − to undefined results. | |
| 148 | − | |
| 149 | − To use the extended fields, applications must set the ``priv`` | |
| 150 | − field to ``V4L2_PIX_FMT_PRIV_MAGIC``, initialize all the extended | |
| 151 | − fields and zero the unused bytes of the | |
| 152 | − :ref:`struct v4l2_format <v4l2-format>` ``raw_data`` field. | |
| 153 | − | |
| 154 | − When the ``priv`` field isn't set to ``V4L2_PIX_FMT_PRIV_MAGIC`` | |
| 155 | − drivers must act as if all the extended fields were set to zero. | |
| 156 | − On return drivers must set the ``priv`` field to | |
| 157 | − ``V4L2_PIX_FMT_PRIV_MAGIC`` and all the extended fields to | |
| 158 | − applicable values. | |
| 159 | − | |
| 160 | − - .. row 11 | |
| 161 | − | |
| 162 | − - __u32 | |
| 163 | − | |
| 164 | − - ``flags`` | |
| 165 | − | |
| 166 | − - Flags set by the application or driver, see :ref:`format-flags`. | |
| 167 | − | |
| 168 | − - .. row 12 | |
| 169 | − | |
| 170 | − - enum :ref:`v4l2_ycbcr_encoding <v4l2-ycbcr-encoding>` | |
| 171 | − | |
| 172 | − - ``ycbcr_enc`` | |
| 173 | − | |
| 174 | − - This information supplements the ``colorspace`` and must be set by | |
| 175 | − the driver for capture streams and by the application for output | |
| 176 | − streams, see :ref:`colorspaces`. | |
| 177 | − | |
| 178 | − - .. row 13 | |
| 179 | − | |
| 180 | − - enum :ref:`v4l2_quantization <v4l2-quantization>` | |
| 181 | − | |
| 182 | − - ``quantization`` | |
| 183 | − | |
| 184 | − - This information supplements the ``colorspace`` and must be set by | |
| 185 | − the driver for capture streams and by the application for output | |
| 186 | − streams, see :ref:`colorspaces`. | |
| 187 | − | |
| 188 | − - .. row 14 | |
| 189 | − | |
| 190 | − - enum :ref:`v4l2_xfer_func <v4l2-xfer-func>` | |
| 191 | − | |
| 192 | − - ``xfer_func`` | |
| 193 | − | |
| 194 | − - This information supplements the ``colorspace`` and must be set by | |
| 195 | − the driver for capture streams and by the application for output | |
| 196 | − streams, see :ref:`colorspaces`. | |
| 18 | + * - __u32 | |
| 19 | + - ``width`` | |
| 20 | + - Image width in pixels. | |
| 21 | + * - __u32 | |
| 22 | + - ``height`` | |
| 23 | + - Image height in pixels. If ``field`` is one of ``V4L2_FIELD_TOP``, | |
| 24 | + ``V4L2_FIELD_BOTTOM`` or ``V4L2_FIELD_ALTERNATE`` then height | |
| 25 | + refers to the number of lines in the field, otherwise it refers to | |
| 26 | + the number of lines in the frame (which is twice the field height | |
| 27 | + for interlaced formats). | |
| 28 | + * - :cspan:`2` Applications set these fields to request an image | |
| 29 | + size, drivers return the closest possible values. In case of | |
| 30 | + planar formats the ``width`` and ``height`` applies to the largest | |
| 31 | + plane. To avoid ambiguities drivers must return values rounded up | |
| 32 | + to a multiple of the scale factor of any smaller planes. For | |
| 33 | + example when the image format is YUV 4:2:0, ``width`` and | |
| 34 | + ``height`` must be multiples of two. | |
| 35 | + * - __u32 | |
| 36 | + - ``pixelformat`` | |
| 37 | + - The pixel format or type of compression, set by the application. | |
| 38 | + This is a little endian | |
| 39 | + :ref:`four character code <v4l2-fourcc>`. V4L2 defines standard | |
| 40 | + RGB formats in :ref:`rgb-formats`, YUV formats in | |
| 41 | + :ref:`yuv-formats`, and reserved codes in | |
| 42 | + :ref:`reserved-formats` | |
| 43 | + * - enum :c:type::`v4l2_field` | |
| 44 | + - ``field`` | |
| 45 | + - Video images are typically interlaced. Applications can request to | |
| 46 | + capture or output only the top or bottom field, or both fields | |
| 47 | + interlaced or sequentially stored in one buffer or alternating in | |
| 48 | + separate buffers. Drivers return the actual field order selected. | |
| 49 | + For more details on fields see :ref:`field-order`. | |
| 50 | + * - __u32 | |
| 51 | + - ``bytesperline`` | |
| 52 | + - Distance in bytes between the leftmost pixels in two adjacent | |
| 53 | + lines. | |
| 54 | + * - :cspan:`2` | |
| 55 | + | |
| 56 | + Both applications and drivers can set this field to request | |
| 57 | + padding bytes at the end of each line. Drivers however may ignore | |
| 58 | + the value requested by the application, returning ``width`` times | |
| 59 | + bytes per pixel or a larger value required by the hardware. That | |
| 60 | + implies applications can just set this field to zero to get a | |
| 61 | + reasonable default. | |
| 62 | + | |
| 63 | + Video hardware may access padding bytes, therefore they must | |
| 64 | + reside in accessible memory. Consider cases where padding bytes | |
| 65 | + after the last line of an image cross a system page boundary. | |
| 66 | + Input devices may write padding bytes, the value is undefined. | |
| 67 | + Output devices ignore the contents of padding bytes. | |
| 68 | + | |
| 69 | + When the image format is planar the ``bytesperline`` value applies | |
| 70 | + to the first plane and is divided by the same factor as the | |
| 71 | + ``width`` field for the other planes. For example the Cb and Cr | |
| 72 | + planes of a YUV 4:2:0 image have half as many padding bytes | |
| 73 | + following each line as the Y plane. To avoid ambiguities drivers | |
| 74 | + must return a ``bytesperline`` value rounded up to a multiple of | |
| 75 | + the scale factor. | |
| 76 | + | |
| 77 | + For compressed formats the ``bytesperline`` value makes no sense. | |
| 78 | + Applications and drivers must set this to 0 in that case. | |
| 79 | + * - __u32 | |
| 80 | + - ``sizeimage`` | |
| 81 | + - Size in bytes of the buffer to hold a complete image, set by the | |
| 82 | + driver. Usually this is ``bytesperline`` times ``height``. When | |
| 83 | + the image consists of variable length compressed data this is the | |
| 84 | + maximum number of bytes required to hold an image. | |
| 85 | + * - enum :c:type:`v4l2_colorspace` | |
| 86 | + - ``colorspace`` | |
| 87 | + - This information supplements the ``pixelformat`` and must be set | |
| 88 | + by the driver for capture streams and by the application for | |
| 89 | + output streams, see :ref:`colorspaces`. | |
| 90 | + * - __u32 | |
| 91 | + - ``priv`` | |
| 92 | + - This field indicates whether the remaining fields of the | |
| 93 | + struct :c:type:`v4l2_pix_format`, also called the | |
| 94 | + extended fields, are valid. When set to | |
| 95 | + ``V4L2_PIX_FMT_PRIV_MAGIC``, it indicates that the extended fields | |
| 96 | + have been correctly initialized. When set to any other value it | |
| 97 | + indicates that the extended fields contain undefined values. | |
| 98 | + | |
| 99 | + Applications that wish to use the pixel format extended fields | |
| 100 | + must first ensure that the feature is supported by querying the | |
| 101 | + device for the :ref:`V4L2_CAP_EXT_PIX_FORMAT <querycap>` | |
| 102 | + capability. If the capability isn't set the pixel format extended | |
| 103 | + fields are not supported and using the extended fields will lead | |
| 104 | + to undefined results. | |
| 105 | + | |
| 106 | + To use the extended fields, applications must set the ``priv`` | |
| 107 | + field to ``V4L2_PIX_FMT_PRIV_MAGIC``, initialize all the extended | |
| 108 | + fields and zero the unused bytes of the | |
| 109 | + struct :c:type:`v4l2_format` ``raw_data`` field. | |
| 110 | + | |
| 111 | + When the ``priv`` field isn't set to ``V4L2_PIX_FMT_PRIV_MAGIC`` | |
| 112 | + drivers must act as if all the extended fields were set to zero. | |
| 113 | + On return drivers must set the ``priv`` field to | |
| 114 | + ``V4L2_PIX_FMT_PRIV_MAGIC`` and all the extended fields to | |
| 115 | + applicable values. | |
| 116 | + * - __u32 | |
| 117 | + - ``flags`` | |
| 118 | + - Flags set by the application or driver, see :ref:`format-flags`. | |
| 119 | + * - enum :c:type:`v4l2_ycbcr_encoding` | |
| 120 | + - ``ycbcr_enc`` | |
| 121 | + - This information supplements the ``colorspace`` and must be set by | |
| 122 | + the driver for capture streams and by the application for output | |
| 123 | + streams, see :ref:`colorspaces`. | |
| 124 | + * - enum :c:type:`v4l2_quantization` | |
| 125 | + - ``quantization`` | |
| 126 | + - This information supplements the ``colorspace`` and must be set by | |
| 127 | + the driver for capture streams and by the application for output | |
| 128 | + streams, see :ref:`colorspaces`. | |
| 129 | + * - enum :c:type:`v4l2_xfer_func` | |
| 130 | + - ``xfer_func`` | |
| 131 | + - This information supplements the ``colorspace`` and must be set by | |
| 132 | + the driver for capture streams and by the application for output | |
| 133 | + streams, see :ref:`colorspaces`. | |
| @@ -4,163 +4,91 @@ · 3 unmodified lines | ||
| 4 | 4 | Multi-planar format structures |
| 5 | 5 | ****************************** |
| 6 | 6 | |
| 7 | −The :ref:`struct v4l2_plane_pix_format <v4l2-plane-pix-format>` structures define size | |
| 7 | +The struct :c:type:`v4l2_plane_pix_format` structures define size | |
| 8 | 8 | and layout for each of the planes in a multi-planar format. The |
| 9 | −:ref:`struct v4l2_pix_format_mplane <v4l2-pix-format-mplane>` structure contains | |
| 9 | +struct :c:type:`v4l2_pix_format_mplane` structure contains | |
| 10 | 10 | information common to all planes (such as image width and height) and an |
| 11 | −array of :ref:`struct v4l2_plane_pix_format <v4l2-plane-pix-format>` structures, | |
| 11 | +array of struct :c:type:`v4l2_plane_pix_format` structures, | |
| 12 | 12 | describing 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 | 19 | .. flat-table:: struct v4l2_plane_pix_format |
| 18 | 20 | :header-rows: 0 |
| 19 | 21 | :stub-columns: 0 |
| 20 | 22 | :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 3 | |
| 37 | +.. tabularcolumns:: |p{4.4cm}|p{5.6cm}|p{7.5cm}| | |
| 41 | 38 | |
| 42 | − - __u16 | |
| 43 | − | |
| 44 | − - ``reserved[6]`` | |
| 45 | − | |
| 46 | − - Reserved for future extensions. Should be zeroed by drivers and | |
| 47 | − applications. | |
| 48 | − | |
| 49 | − | |
| 50 | − | |
| 51 | −.. _v4l2-pix-format-mplane: | |
| 39 | +.. c:type:: v4l2_pix_format_mplane | |
| 52 | 40 | |
| 53 | 41 | .. flat-table:: struct v4l2_pix_format_mplane |
| 54 | 42 | :header-rows: 0 |
| 55 | 43 | :stub-columns: 0 |
| 56 | 44 | :widths: 1 1 2 |
| 57 | 45 | |
| 58 | − | |
| 59 | − - .. row 1 | |
| 60 | − | |
| 61 | − - __u32 | |
| 62 | − | |
| 63 | − - ``width`` | |
| 64 | − | |
| 65 | − - Image width in pixels. See struct | |
| 66 | − :ref:`v4l2_pix_format <v4l2-pix-format>`. | |
| 67 | − | |
| 68 | − - .. row 2 | |
| 69 | − | |
| 70 | − - __u32 | |
| 71 | − | |
| 72 | − - ``height`` | |
| 73 | − | |
| 74 | − - Image height in pixels. See struct | |
| 75 | − :ref:`v4l2_pix_format <v4l2-pix-format>`. | |
| 76 | − | |
| 77 | − - .. row 3 | |
| 78 | − | |
| 79 | − - __u32 | |
| 80 | − | |
| 81 | − - ``pixelformat`` | |
| 82 | − | |
| 83 | − - The pixel format. Both single- and multi-planar four character | |
| 84 | − codes can be used. | |
| 85 | − | |
| 86 | − - .. row 4 | |
| 87 | − | |
| 88 | − - enum :ref:`v4l2_field <v4l2-field>` | |
| 89 | − | |
| 90 | − - ``field`` | |
| 91 | − | |
| 92 | − - See struct :ref:`v4l2_pix_format <v4l2-pix-format>`. | |
| 93 | − | |
| 94 | − - .. row 5 | |
| 95 | − | |
| 96 | − - enum :ref:`v4l2_colorspace <v4l2-colorspace>` | |
| 97 | − | |
| 98 | − - ``colorspace`` | |
| 99 | − | |
| 100 | − - See struct :ref:`v4l2_pix_format <v4l2-pix-format>`. | |
| 101 | − | |
| 102 | − - .. row 6 | |
| 103 | − | |
| 104 | − - struct :ref:`v4l2_plane_pix_format <v4l2-plane-pix-format>` | |
| 105 | − | |
| 106 | − - ``plane_fmt[VIDEO_MAX_PLANES]`` | |
| 107 | − | |
| 108 | − - An array of structures describing format of each plane this pixel | |
| 109 | − format consists of. The number of valid entries in this array has | |
| 110 | − to be put in the ``num_planes`` field. | |
| 111 | − | |
| 112 | − - .. row 7 | |
| 113 | − | |
| 114 | − - __u8 | |
| 115 | − | |
| 116 | − - ``num_planes`` | |
| 117 | − | |
| 118 | − - Number of planes (i.e. separate memory buffers) for this format | |
| 119 | − and the number of valid entries in the ``plane_fmt`` array. | |
| 120 | − | |
| 121 | − - .. row 8 | |
| 122 | − | |
| 123 | − - __u8 | |
| 124 | − | |
| 125 | − - ``flags`` | |
| 126 | − | |
| 127 | − - Flags set by the application or driver, see :ref:`format-flags`. | |
| 128 | − | |
| 129 | − - .. row 9 | |
| 130 | − | |
| 131 | − - enum :ref:`v4l2_ycbcr_encoding <v4l2-ycbcr-encoding>` | |
| 132 | − | |
| 133 | − - ``ycbcr_enc`` | |
| 134 | − | |
| 135 | − - This information supplements the ``colorspace`` and must be set by | |
| 136 | − the driver for capture streams and by the application for output | |
| 137 | − streams, see :ref:`colorspaces`. | |
| 138 | − | |
| 139 | − - .. row 10 | |
| 140 | − | |
| 141 | − - enum :ref:`v4l2_quantization <v4l2-quantization>` | |
| 142 | − | |
| 143 | − - ``quantization`` | |
| 144 | − | |
| 145 | − - This information supplements the ``colorspace`` and must be set by | |
| 146 | − the driver for capture streams and by the application for output | |
| 147 | − streams, see :ref:`colorspaces`. | |
| 148 | − | |
| 149 | − - .. row 11 | |
| 150 | − | |
| 151 | − - enum :ref:`v4l2_xfer_func <v4l2-xfer-func>` | |
| 152 | − | |
| 153 | − - ``xfer_func`` | |
| 154 | − | |
| 155 | − - This information supplements the ``colorspace`` and must be set by | |
| 156 | − the driver for capture streams and by the application for output | |
| 157 | − streams, see :ref:`colorspaces`. | |
| 158 | − | |
| 159 | − - .. row 12 | |
| 160 | − | |
| 161 | − - __u8 | |
| 162 | − | |
| 163 | − - ``reserved[7]`` | |
| 164 | − | |
| 165 | − - Reserved for future extensions. Should be zeroed by drivers and | |
| 166 | − applications. | |
| 46 | + * - __u32 | |
| 47 | + - ``width`` | |
| 48 | + - Image width in pixels. See struct | |
| 49 | + :c:type:`v4l2_pix_format`. | |
| 50 | + * - __u32 | |
| 51 | + - ``height`` | |
| 52 | + - Image height in pixels. See struct | |
| 53 | + :c:type:`v4l2_pix_format`. | |
| 54 | + * - __u32 | |
| 55 | + - ``pixelformat`` | |
| 56 | + - The pixel format. Both single- and multi-planar four character | |
| 57 | + codes can be used. | |
| 58 | + * - enum :c:type:`v4l2_field` | |
| 59 | + - ``field`` | |
| 60 | + - See struct :c:type:`v4l2_pix_format`. | |
| 61 | + * - enum :c:type:`v4l2_colorspace` | |
| 62 | + - ``colorspace`` | |
| 63 | + - See struct :c:type:`v4l2_pix_format`. | |
| 64 | + * - struct :c:type:`v4l2_plane_pix_format` | |
| 65 | + - ``plane_fmt[VIDEO_MAX_PLANES]`` | |
| 66 | + - An array of structures describing format of each plane this pixel | |
| 67 | + format consists of. The number of valid entries in this array has | |
| 68 | + to be put in the ``num_planes`` field. | |
| 69 | + * - __u8 | |
| 70 | + - ``num_planes`` | |
| 71 | + - Number of planes (i.e. separate memory buffers) for this format | |
| 72 | + and the number of valid entries in the ``plane_fmt`` array. | |
| 73 | + * - __u8 | |
| 74 | + - ``flags`` | |
| 75 | + - Flags set by the application or driver, see :ref:`format-flags`. | |
| 76 | + * - enum :c:type:`v4l2_ycbcr_encoding` | |
| 77 | + - ``ycbcr_enc`` | |
| 78 | + - This information supplements the ``colorspace`` and must be set by | |
| 79 | + the driver for capture streams and by the application for output | |
| 80 | + streams, see :ref:`colorspaces`. | |
| 81 | + * - enum :c:type:`v4l2_quantization` | |
| 82 | + - ``quantization`` | |
| 83 | + - This information supplements the ``colorspace`` and must be set by | |
| 84 | + the driver for capture streams and by the application for output | |
| 85 | + streams, see :ref:`colorspaces`. | |
| 86 | + * - enum :c:type:`v4l2_xfer_func` | |
| 87 | + - ``xfer_func`` | |
| 88 | + - This information supplements the ``colorspace`` and must be set by | |
| 89 | + the driver for capture streams and by the application for output | |
| 90 | + streams, see :ref:`colorspaces`. | |
| 91 | + * - __u8 | |
| 92 | + - ``reserved[7]`` | |
| 93 | + - Reserved for future extensions. Should be zeroed by drivers and | |
| 94 | + applications. | |
| @@ -5,284 +5,145 @@ Defining Colorspaces in V4L2 · 4 unmodified lines | ||
| 5 | 5 | **************************** |
| 6 | 6 | |
| 7 | 7 | In V4L2 colorspaces are defined by four values. The first is the |
| 8 | −colorspace identifier (enum :ref:`v4l2_colorspace <v4l2-colorspace>`) | |
| 8 | +colorspace identifier (enum :c:type:`v4l2_colorspace`) | |
| 9 | 9 | which defines the chromaticities, the default transfer function, the |
| 10 | 10 | default Y'CbCr encoding and the default quantization method. The second |
| 11 | 11 | is the transfer function identifier (enum |
| 12 | −:ref:`v4l2_xfer_func <v4l2-xfer-func>`) to specify non-standard | |
| 12 | +:c:type:`v4l2_xfer_func`) to specify non-standard | |
| 13 | 13 | transfer functions. The third is the Y'CbCr encoding identifier (enum |
| 14 | −:ref:`v4l2_ycbcr_encoding <v4l2-ycbcr-encoding>`) to specify | |
| 14 | +:c:type:`v4l2_ycbcr_encoding`) to specify | |
| 15 | 15 | non-standard Y'CbCr encodings and the fourth is the quantization |
| 16 | −identifier (enum :ref:`v4l2_quantization <v4l2-quantization>`) to | |
| 16 | +identifier (enum :c:type:`v4l2_quantization`) to | |
| 17 | 17 | specify non-standard quantization methods. Most of the time only the |
| 18 | −colorspace field of struct :ref:`v4l2_pix_format <v4l2-pix-format>` | |
| 19 | −or struct :ref:`v4l2_pix_format_mplane <v4l2-pix-format-mplane>` | |
| 18 | +colorspace field of struct :c:type:`v4l2_pix_format` | |
| 19 | +or struct :c:type:`v4l2_pix_format_mplane` | |
| 20 | 20 | needs to be filled in. |
| 21 | 21 | |
| 22 | −.. note:: The default R'G'B' quantization is full range for all | |
| 22 | +.. note:: | |
| 23 | + | |
| 24 | + The default R'G'B' quantization is full range for all | |
| 23 | 25 | colorspaces except for BT.2020 which uses limited range R'G'B' |
| 24 | 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 | 32 | .. flat-table:: V4L2 Colorspaces |
| 30 | 33 | :header-rows: 1 |
| 31 | 34 | :stub-columns: 0 |
| 32 | 35 | |
| 33 | − | |
| 34 | − - .. row 1 | |
| 35 | − | |
| 36 | − - Identifier | |
| 37 | − | |
| 38 | − - Details | |
| 39 | − | |
| 40 | − - .. row 2 | |
| 41 | − | |
| 42 | − - ``V4L2_COLORSPACE_DEFAULT`` | |
| 43 | − | |
| 44 | − - The default colorspace. This can be used by applications to let | |
| 45 | − the driver fill in the colorspace. | |
| 46 | − | |
| 47 | − - .. row 3 | |
| 48 | − | |
| 49 | − - ``V4L2_COLORSPACE_SMPTE170M`` | |
| 50 | − | |
| 51 | − - See :ref:`col-smpte-170m`. | |
| 52 | − | |
| 53 | − - .. row 4 | |
| 54 | − | |
| 55 | − - ``V4L2_COLORSPACE_REC709`` | |
| 56 | − | |
| 57 | − - See :ref:`col-rec709`. | |
| 58 | − | |
| 59 | − - .. row 5 | |
| 60 | − | |
| 61 | − - ``V4L2_COLORSPACE_SRGB`` | |
| 62 | − | |
| 63 | − - See :ref:`col-srgb`. | |
| 64 | − | |
| 65 | − - .. row 6 | |
| 66 | − | |
| 67 | − - ``V4L2_COLORSPACE_ADOBERGB`` | |
| 68 | − | |
| 69 | − - See :ref:`col-adobergb`. | |
| 70 | − | |
| 71 | − - .. row 7 | |
| 72 | − | |
| 73 | − - ``V4L2_COLORSPACE_BT2020`` | |
| 74 | − | |
| 75 | − - See :ref:`col-bt2020`. | |
| 76 | − | |
| 77 | − - .. row 8 | |
| 78 | − | |
| 79 | − - ``V4L2_COLORSPACE_DCI_P3`` | |
| 80 | − | |
| 81 | − - See :ref:`col-dcip3`. | |
| 82 | − | |
| 83 | − - .. row 9 | |
| 84 | − | |
| 85 | − - ``V4L2_COLORSPACE_SMPTE240M`` | |
| 86 | − | |
| 87 | − - See :ref:`col-smpte-240m`. | |
| 88 | − | |
| 89 | − - .. row 10 | |
| 90 | − | |
| 91 | − - ``V4L2_COLORSPACE_470_SYSTEM_M`` | |
| 92 | − | |
| 93 | − - See :ref:`col-sysm`. | |
| 94 | − | |
| 95 | − - .. row 11 | |
| 96 | − | |
| 97 | − - ``V4L2_COLORSPACE_470_SYSTEM_BG`` | |
| 98 | − | |
| 99 | − - See :ref:`col-sysbg`. | |
| 100 | − | |
| 101 | − - .. row 12 | |
| 102 | − | |
| 103 | − - ``V4L2_COLORSPACE_JPEG`` | |
| 104 | − | |
| 105 | − - See :ref:`col-jpeg`. | |
| 106 | − | |
| 107 | − - .. row 13 | |
| 108 | − | |
| 109 | − - ``V4L2_COLORSPACE_RAW`` | |
| 110 | − | |
| 111 | − - The raw colorspace. This is used for raw image capture where the | |
| 112 | − image is minimally processed and is using the internal colorspace | |
| 113 | − of the device. The software that processes an image using this | |
| 114 | − 'colorspace' will have to know the internals of the capture | |
| 115 | − device. | |
| 116 | − | |
| 117 | − | |
| 118 | − | |
| 119 | −.. _v4l2-xfer-func: | |
| 36 | + * - Identifier | |
| 37 | + - Details | |
| 38 | + * - ``V4L2_COLORSPACE_DEFAULT`` | |
| 39 | + - The default colorspace. This can be used by applications to let | |
| 40 | + the driver fill in the colorspace. | |
| 41 | + * - ``V4L2_COLORSPACE_SMPTE170M`` | |
| 42 | + - See :ref:`col-smpte-170m`. | |
| 43 | + * - ``V4L2_COLORSPACE_REC709`` | |
| 44 | + - See :ref:`col-rec709`. | |
| 45 | + * - ``V4L2_COLORSPACE_SRGB`` | |
| 46 | + - See :ref:`col-srgb`. | |
| 47 | + * - ``V4L2_COLORSPACE_ADOBERGB`` | |
| 48 | + - See :ref:`col-adobergb`. | |
| 49 | + * - ``V4L2_COLORSPACE_BT2020`` | |
| 50 | + - See :ref:`col-bt2020`. | |
| 51 | + * - ``V4L2_COLORSPACE_DCI_P3`` | |
| 52 | + - See :ref:`col-dcip3`. | |
| 53 | + * - ``V4L2_COLORSPACE_SMPTE240M`` | |
| 54 | + - See :ref:`col-smpte-240m`. | |
| 55 | + * - ``V4L2_COLORSPACE_470_SYSTEM_M`` | |
| 56 | + - See :ref:`col-sysm`. | |
| 57 | + * - ``V4L2_COLORSPACE_470_SYSTEM_BG`` | |
| 58 | + - See :ref:`col-sysbg`. | |
| 59 | + * - ``V4L2_COLORSPACE_JPEG`` | |
| 60 | + - See :ref:`col-jpeg`. | |
| 61 | + * - ``V4L2_COLORSPACE_RAW`` | |
| 62 | + - The raw colorspace. This is used for raw image capture where the | |
| 63 | + image is minimally processed and is using the internal colorspace | |
| 64 | + of the device. The software that processes an image using this | |
| 65 | + 'colorspace' will have to know the internals of the capture | |
| 66 | + device. | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | +.. c:type:: v4l2_xfer_func | |
| 120 | 71 | |
| 121 | 72 | .. flat-table:: V4L2 Transfer Function |
| 122 | 73 | :header-rows: 1 |
| 123 | 74 | :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 6 | |
| 157 | − | |
| 158 | − - ``V4L2_XFER_FUNC_SMPTE240M`` | |
| 159 | − | |
| 160 | − - Use the SMPTE 240M transfer function. | |
| 161 | − | |
| 162 | − - .. row 7 | |
| 163 | − | |
| 164 | − - ``V4L2_XFER_FUNC_NONE`` | |
| 165 | − | |
| 166 | − - Do not use a transfer function (i.e. use linear RGB values). | |
| 167 | − | |
| 168 | − - .. row 8 | |
| 169 | − | |
| 170 | − - ``V4L2_XFER_FUNC_DCI_P3`` | |
| 171 | − | |
| 172 | − - Use the DCI-P3 transfer function. | |
| 173 | − | |
| 174 | − - .. row 9 | |
| 175 | − | |
| 176 | − - ``V4L2_XFER_FUNC_SMPTE2084`` | |
| 177 | − | |
| 178 | − - Use the SMPTE 2084 transfer function. | |
| 179 | − | |
| 180 | − | |
| 181 | − | |
| 182 | −.. _v4l2-ycbcr-encoding: | |
| 99 | +.. tabularcolumns:: |p{6.5cm}|p{11.0cm}| | |
| 183 | 100 | |
| 184 | 101 | .. flat-table:: V4L2 Y'CbCr Encodings |
| 185 | 102 | :header-rows: 1 |
| 186 | 103 | :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. | |
| 224 | − | |
| 225 | − - .. row 7 | |
| 226 | − | |
| 227 | − - ``V4L2_YCBCR_ENC_SYCC`` | |
| 228 | − | |
| 229 | − - Use the extended gamut sYCC encoding. | |
| 230 | − | |
| 231 | − - .. row 8 | |
| 232 | − | |
| 233 | − - ``V4L2_YCBCR_ENC_BT2020`` | |
| 234 | − | |
| 235 | − - Use the default non-constant luminance BT.2020 Y'CbCr encoding. | |
| 236 | − | |
| 237 | − - .. row 9 | |
| 238 | − | |
| 239 | − - ``V4L2_YCBCR_ENC_BT2020_CONST_LUM`` | |
| 240 | − | |
| 241 | − - Use the constant luminance BT.2020 Yc'CbcCrc encoding. | |
| 242 | − | |
| 243 | − - .. row 10 | |
| 244 | − | |
| 245 | − - ``V4L2_YCBCR_ENC_SMPTE_240M`` | |
| 246 | − | |
| 247 | − - Use the SMPTE 240M Y'CbCr encoding. | |
| 248 | − | |
| 249 | − | |
| 250 | − | |
| 251 | −.. _v4l2-quantization: | |
| 128 | +.. tabularcolumns:: |p{6.5cm}|p{11.0cm}| | |
| 252 | 129 | |
| 253 | 130 | .. flat-table:: V4L2 Quantization Methods |
| 254 | 131 | :header-rows: 1 |
| 255 | 132 | :stub-columns: 0 |
| 256 | 133 | |
| 257 | − | |
| 258 | − - .. row 1 | |
| 259 | − | |
| 260 | − - Identifier | |
| 261 | − | |
| 262 | − - Details | |
| 263 | − | |
| 264 | − - .. row 2 | |
| 265 | − | |
| 266 | − - ``V4L2_QUANTIZATION_DEFAULT`` | |
| 267 | − | |
| 268 | − - Use the default quantization encoding as defined by the | |
| 269 | − colorspace. This is always full range for R'G'B' (except for the | |
| 270 | − BT.2020 colorspace) and usually limited range for Y'CbCr. | |
| 271 | − | |
| 272 | − - .. row 3 | |
| 273 | − | |
| 274 | − - ``V4L2_QUANTIZATION_FULL_RANGE`` | |
| 275 | − | |
| 276 | − - Use the full range quantization encoding. I.e. the range [0…1] is | |
| 277 | − mapped to [0…255] (with possible clipping to [1…254] to avoid the | |
| 278 | − 0x00 and 0xff values). Cb and Cr are mapped from [-0.5…0.5] to | |
| 279 | − [0…255] (with possible clipping to [1…254] to avoid the 0x00 and | |
| 280 | − 0xff values). | |
| 281 | − | |
| 282 | − - .. row 4 | |
| 283 | − | |
| 284 | − - ``V4L2_QUANTIZATION_LIM_RANGE`` | |
| 285 | − | |
| 286 | − - Use the limited range quantization encoding. I.e. the range [0…1] | |
| 287 | − is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to | |
| 288 | − [16…240]. | |
| 134 | + * - Identifier | |
| 135 | + - Details | |
| 136 | + * - ``V4L2_QUANTIZATION_DEFAULT`` | |
| 137 | + - Use the default quantization encoding as defined by the | |
| 138 | + colorspace. This is always full range for R'G'B' (except for the | |
| 139 | + BT.2020 colorspace) and usually limited range for Y'CbCr. | |
| 140 | + * - ``V4L2_QUANTIZATION_FULL_RANGE`` | |
| 141 | + - Use the full range quantization encoding. I.e. the range [0…1] is | |
| 142 | + mapped to [0…255] (with possible clipping to [1…254] to avoid the | |
| 143 | + 0x00 and 0xff values). Cb and Cr are mapped from [-0.5…0.5] to | |
| 144 | + [0…255] (with possible clipping to [1…254] to avoid the 0x00 and | |
| 145 | + 0xff values). | |
| 146 | + * - ``V4L2_QUANTIZATION_LIM_RANGE`` | |
| 147 | + - Use the limited range quantization encoding. I.e. the range [0…1] | |
| 148 | + is mapped to [16…235]. Cb and Cr are mapped from [-0.5…0.5] to | |
| 149 | + [16…240]. | |
| @@ -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 | 24 | .. flat-table:: SMPTE 170M Chromaticities |
| 23 | 25 | :header-rows: 1 |
| 24 | 26 | :stub-columns: 0 |
| 25 | 27 | :widths: 1 1 2 |
| 26 | 28 | |
| 27 | − | |
| 28 | − - .. row 1 | |
| 29 | − | |
| 30 | − - Color | |
| 31 | − | |
| 32 | − - x | |
| 33 | − | |
| 34 | − - y | |
| 35 | − | |
| 36 | − - .. row 2 | |
| 37 | − | |
| 38 | − - Red | |
| 39 | − | |
| 40 | − - 0.630 | |
| 41 | − | |
| 42 | − - 0.340 | |
| 43 | − | |
| 44 | − - .. row 3 | |
| 45 | − | |
| 46 | − - Green | |
| 47 | − | |
| 48 | − - 0.310 | |
| 49 | − | |
| 50 | − - 0.595 | |
| 51 | − | |
| 52 | − - .. row 4 | |
| 53 | − | |
| 54 | − - Blue | |
| 55 | − | |
| 56 | − - 0.155 | |
| 57 | − | |
| 58 | − - 0.070 | |
| 59 | − | |
| 60 | − - .. row 5 | |
| 61 | − | |
| 62 | − - White Reference (D65) | |
| 63 | − | |
| 64 | − - 0.3127 | |
| 65 | − | |
| 66 | − - 0.3290 | |
| 29 | + * - Color | |
| 30 | + - x | |
| 31 | + - y | |
| 32 | + * - Red | |
| 33 | + - 0.630 | |
| 34 | + - 0.340 | |
| 35 | + * - Green | |
| 36 | + - 0.310 | |
| 37 | + - 0.595 | |
| 38 | + * - Blue | |
| 39 | + - 0.155 | |
| 40 | + - 0.070 | |
| 41 | + * - White Reference (D65) | |
| 42 | + - 0.3127 | |
| 43 | + - 0.3290 | |
| 67 | 44 | |
| 68 | 45 | |
| 69 | 46 | The red, green and blue chromaticities are also often referred to as the |
| @@ -72,28 +49,34 @@ SMPTE C set, so this colorspace is sometimes called SMPTE C as well. · 2 unmodified lines | ||
| 72 | 49 | The transfer function defined for SMPTE 170M is the same as the one |
| 73 | 50 | defined in Rec. 709. |
| 74 | 51 | |
| 75 | − L' = -1.099(-L) :sup:`0.45` + 0.099 for L ≤ -0.018 | |
| 52 | +.. math:: | |
| 53 | + | |
| 54 | + L' = -1.099(-L)^{0.45} + 0.099 \text{, for } L \le-0.018 | |
| 76 | 55 | |
| 77 | − L' = 4.5L for -0.018 < L < 0.018 | |
| 56 | + L' = 4.5L \text{, for } -0.018 < L < 0.018 | |
| 78 | 57 | |
| 79 | − L' = 1.099L :sup:`0.45` - 0.099 for L ≥ 0.018 | |
| 58 | + L' = 1.099L^{0.45} - 0.099 \text{, for } L \ge 0.018 | |
| 80 | 59 | |
| 81 | 60 | Inverse Transfer function: |
| 82 | 61 | |
| 83 | − L = -((L' - 0.099) / -1.099) :sup:`1/0.45` for L' ≤ -0.081 | |
| 62 | +.. math:: | |
| 84 | 63 | |
| 85 | − L = L' / 4.5 for -0.081 < L' < 0.081 | |
| 64 | + L = -\left( \frac{L' - 0.099}{-1.099} \right) ^{\frac{1}{0.45}} \text{, for } L' \le -0.081 | |
| 86 | 65 | |
| 87 | − L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081 | |
| 66 | + L = \frac{L'}{4.5} \text{, for } -0.081 < L' < 0.081 | |
| 67 | + | |
| 68 | + L = \left(\frac{L' + 0.099}{1.099}\right)^{\frac{1}{0.45} } \text{, for } L' \ge 0.081 | |
| 88 | 69 | |
| 89 | 70 | The luminance (Y') and color difference (Cb and Cr) are obtained with |
| 90 | 71 | the 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 | |
| 98 | 81 | Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range |
| 99 | 82 | [-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 | 105 | .. flat-table:: Rec. 709 Chromaticities |
| 121 | 106 | :header-rows: 1 |
| 122 | 107 | :stub-columns: 0 |
| 123 | 108 | :widths: 1 1 2 |
| 124 | 109 | |
| 125 | − | |
| 126 | − - .. row 1 | |
| 127 | − | |
| 128 | − - Color | |
| 129 | − | |
| 130 | − - x | |
| 131 | − | |
| 132 | − - y | |
| 133 | − | |
| 134 | − - .. row 2 | |
| 135 | − | |
| 136 | − - Red | |
| 137 | − | |
| 138 | − - 0.640 | |
| 139 | − | |
| 140 | − - 0.330 | |
| 141 | − | |
| 142 | − - .. row 3 | |
| 143 | − | |
| 144 | − - Green | |
| 145 | − | |
| 146 | − - 0.300 | |
| 147 | − | |
| 148 | − - 0.600 | |
| 149 | − | |
| 150 | − - .. row 4 | |
| 151 | − | |
| 152 | − - Blue | |
| 153 | − | |
| 154 | − - 0.150 | |
| 155 | − | |
| 156 | − - 0.060 | |
| 157 | − | |
| 158 | − - .. row 5 | |
| 159 | − | |
| 160 | − - White Reference (D65) | |
| 161 | − | |
| 162 | − - 0.3127 | |
| 163 | − | |
| 164 | − - 0.3290 | |
| 110 | + * - Color | |
| 111 | + - x | |
| 112 | + - y | |
| 113 | + * - Red | |
| 114 | + - 0.640 | |
| 115 | + - 0.330 | |
| 116 | + * - Green | |
| 117 | + - 0.300 | |
| 118 | + - 0.600 | |
| 119 | + * - Blue | |
| 120 | + - 0.150 | |
| 121 | + - 0.060 | |
| 122 | + * - White Reference (D65) | |
| 123 | + - 0.3127 | |
| 124 | + - 0.3290 | |
| 165 | 125 | |
| 166 | 126 | |
| 167 | 127 | The full name of this standard is Rec. ITU-R BT.709-5. |
| @@ -169,23 +129,29 @@ The full name of this standard is Rec. ITU-R BT.709-5. · 1 unmodified line | ||
| 169 | 129 | Transfer function. Normally L is in the range [0…1], but for the |
| 170 | 130 | extended gamut xvYCC encoding values outside that range are allowed. |
| 171 | 131 | |
| 172 | − L' = -1.099(-L) :sup:`0.45` + 0.099 for L ≤ -0.018 | |
| 132 | +.. math:: | |
| 133 | + | |
| 134 | + L' = -1.099(-L)^{0.45} + 0.099 \text{, for } L \le -0.018 | |
| 173 | 135 | |
| 174 | − L' = 4.5L for -0.018 < L < 0.018 | |
| 136 | + L' = 4.5L \text{, for } -0.018 < L < 0.018 | |
| 175 | 137 | |
| 176 | − L' = 1.099L :sup:`0.45` - 0.099 for L ≥ 0.018 | |
| 138 | + L' = 1.099L^{0.45} - 0.099 \text{, for } L \ge 0.018 | |
| 177 | 139 | |
| 178 | 140 | Inverse Transfer function: |
| 179 | 141 | |
| 180 | − L = -((L' - 0.099) / -1.099) :sup:`1/0.45` for L' ≤ -0.081 | |
| 142 | +.. math:: | |
| 181 | 143 | |
| 182 | − L = L' / 4.5 for -0.081 < L' < 0.081 | |
| 144 | + L = -\left( \frac{L' - 0.099}{-1.099} \right)^\frac{1}{0.45} \text{, for } L' \le -0.081 | |
| 183 | 145 | |
| 184 | − L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081 | |
| 146 | + L = \frac{L'}{4.5}\text{, for } -0.081 < L' < 0.081 | |
| 147 | + | |
| 148 | + L = \left(\frac{L' + 0.099}{1.099}\right)^{\frac{1}{0.45} } \text{, for } L' \ge 0.081 | |
| 185 | 149 | |
| 186 | 150 | The luminance (Y') and color difference (Cb and Cr) are obtained with |
| 187 | 151 | the following ``V4L2_YCBCR_ENC_709`` encoding: |
| 188 | 152 | |
| 153 | +.. math:: | |
| 154 | + | |
| 189 | 155 | Y' = 0.2126R' + 0.7152G' + 0.0722B' |
| 190 | 156 | |
| 191 | 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 | ||
| 210 | 176 | that are outside the range [0…1]. The resulting Y', Cb and Cr values are |
| 211 | 177 | scaled 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 | |
| 219 | 187 | The xvYCC 601 encoding (``V4L2_YCBCR_ENC_XV601``, :ref:`xvycc`) is |
| 220 | 188 | similar to the BT.601 encoding, but it allows for R', G' and B' values |
| 221 | 189 | that are outside the range [0…1]. The resulting Y', Cb and Cr values are |
| 222 | 190 | scaled 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 | |
| 230 | 200 | Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range |
| 231 | 201 | [-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 | ||
| 241 | 211 | The :ref:`srgb` standard defines the colorspace used by most webcams |
| 242 | 212 | and computer graphics. The default transfer function is |
| 243 | 213 | ``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. | |
| 245 | 215 | The 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 | 221 | .. flat-table:: sRGB Chromaticities |
| 250 | 222 | :header-rows: 1 |
| 251 | 223 | :stub-columns: 0 |
| 252 | 224 | :widths: 1 1 2 |
| 253 | 225 | |
| 254 | − | |
| 255 | − - .. row 1 | |
| 256 | − | |
| 257 | − - Color | |
| 258 | − | |
| 259 | − - x | |
| 260 | − | |
| 261 | − - y | |
| 262 | − | |
| 263 | − - .. row 2 | |
| 264 | − | |
| 265 | − - Red | |
| 266 | − | |
| 267 | − - 0.640 | |
| 268 | − | |
| 269 | − - 0.330 | |
| 270 | − | |
| 271 | − - .. row 3 | |
| 272 | − | |
| 273 | − - Green | |
| 274 | − | |
| 275 | − - 0.300 | |
| 276 | − | |
| 277 | − - 0.600 | |
| 278 | − | |
| 279 | − - .. row 4 | |
| 280 | − | |
| 281 | − - Blue | |
| 282 | − | |
| 283 | − - 0.150 | |
| 284 | − | |
| 285 | − - 0.060 | |
| 286 | − | |
| 287 | − - .. row 5 | |
| 288 | − | |
| 289 | − - White Reference (D65) | |
| 290 | − | |
| 291 | − - 0.3127 | |
| 292 | − | |
| 293 | − - 0.3290 | |
| 226 | + * - Color | |
| 227 | + - x | |
| 228 | + - y | |
| 229 | + * - Red | |
| 230 | + - 0.640 | |
| 231 | + - 0.330 | |
| 232 | + * - Green | |
| 233 | + - 0.300 | |
| 234 | + - 0.600 | |
| 235 | + * - Blue | |
| 236 | + - 0.150 | |
| 237 | + - 0.060 | |
| 238 | + * - White Reference (D65) | |
| 239 | + - 0.3127 | |
| 240 | + - 0.3290 | |
| 294 | 241 | |
| 295 | 242 | |
| 296 | 243 | These chromaticities are identical to the Rec. 709 colorspace. |
| @@ -298,23 +245,28 @@ These chromaticities are identical to the Rec. 709 colorspace. · 1 unmodified line | ||
| 298 | 245 | Transfer function. Note that negative values for L are only used by the |
| 299 | 246 | Y'CbCr conversion. |
| 300 | 247 | |
| 301 | − L' = -1.055(-L) :sup:`1/2.4` + 0.055 for L < -0.0031308 | |
| 248 | +.. math:: | |
| 302 | 249 | |
| 303 | − L' = 12.92L for -0.0031308 ≤ L ≤ 0.0031308 | |
| 250 | + L' = -1.055(-L)^{\frac{1}{2.4} } + 0.055\text{, for }L < -0.0031308 | |
| 304 | 251 | |
| 305 | − L' = 1.055L :sup:`1/2.4` - 0.055 for 0.0031308 < L ≤ 1 | |
| 252 | + L' = 12.92L\text{, for }-0.0031308 \le L \le 0.0031308 | |
| 253 | + | |
| 254 | + L' = 1.055L ^{\frac{1}{2.4} } - 0.055\text{, for }0.0031308 < L \le 1 | |
| 306 | 255 | |
| 307 | 256 | Inverse Transfer function: |
| 308 | 257 | |
| 309 | − L = -((-L' + 0.055) / 1.055) :sup:`2.4` for L' < -0.04045 | |
| 258 | +.. math:: | |
| 259 | + | |
| 260 | + L = -((-L' + 0.055) / 1.055) ^{2.4}\text{, for }L' < -0.04045 | |
| 310 | 261 | |
| 311 | − L = L' / 12.92 for -0.04045 ≤ L' ≤ 0.04045 | |
| 262 | + L = L' / 12.92\text{, for }-0.04045 \le L' \le 0.04045 | |
| 312 | 263 | |
| 313 | − L = ((L' + 0.055) / 1.055) :sup:`2.4` for L' > 0.04045 | |
| 264 | + L = ((L' + 0.055) / 1.055) ^{2.4}\text{, for }L' > 0.04045 | |
| 314 | 265 | |
| 315 | 266 | The luminance (Y') and color difference (Cb and Cr) are obtained with |
| 316 | −the following ``V4L2_YCBCR_ENC_SYCC`` encoding as defined by | |
| 317 | −:ref:`sycc`: | |
| 267 | +the following ``V4L2_YCBCR_ENC_601`` encoding as defined by :ref:`sycc`: | |
| 268 | + | |
| 269 | +.. math:: | |
| 318 | 270 | |
| 319 | 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 | 275 | Cr = 0.5R' - 0.4187G' - 0.0813B' |
| 324 | 276 | |
| 325 | 277 | Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range |
| 326 | −[-0.5…0.5]. The ``V4L2_YCBCR_ENC_SYCC`` quantization is always full | |
| 327 | −range. Although this Y'CbCr encoding looks very similar to the | |
| 328 | −``V4L2_YCBCR_ENC_XV601`` encoding, it is not. The | |
| 329 | −``V4L2_YCBCR_ENC_XV601`` scales and offsets the Y'CbCr values before | |
| 330 | −quantization, but this encoding does not do that. | |
| 278 | +[-0.5…0.5]. This transform is identical to one defined in SMPTE | |
| 279 | +170M/BT.601. The Y'CbCr quantization is full range. | |
| 331 | 280 | |
| 332 | 281 | |
| 333 | 282 | .. _col-adobergb: |
| @@ -339,80 +288,63 @@ The :ref:`adobergb` standard defines the colorspace used by computer · 5 unmodified lines | ||
| 339 | 288 | graphics that use the AdobeRGB colorspace. This is also known as the |
| 340 | 289 | :ref:`oprgb` standard. The default transfer function is |
| 341 | 290 | ``V4L2_XFER_FUNC_ADOBERGB``. The default Y'CbCr encoding is |
| 342 | −``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited | |
| 291 | +``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is full | |
| 343 | 292 | range. The chromaticities of the primary colors and the white reference |
| 344 | 293 | are: |
| 345 | 294 | |
| 346 | 295 | |
| 347 | 296 | |
| 297 | +.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| | |
| 298 | + | |
| 348 | 299 | .. flat-table:: Adobe RGB Chromaticities |
| 349 | 300 | :header-rows: 1 |
| 350 | 301 | :stub-columns: 0 |
| 351 | 302 | :widths: 1 1 2 |
| 352 | 303 | |
| 353 | − | |
| 354 | − - .. row 1 | |
| 355 | − | |
| 356 | − - Color | |
| 357 | − | |
| 358 | − - x | |
| 359 | − | |
| 360 | − - y | |
| 361 | − | |
| 362 | − - .. row 2 | |
| 363 | − | |
| 364 | − - Red | |
| 365 | − | |
| 366 | − - 0.6400 | |
| 367 | − | |
| 368 | − - 0.3300 | |
| 369 | − | |
| 370 | − - .. row 3 | |
| 371 | − | |
| 372 | − - Green | |
| 373 | − | |
| 374 | − - 0.2100 | |
| 375 | − | |
| 376 | − - 0.7100 | |
| 377 | − | |
| 378 | − - .. row 4 | |
| 379 | − | |
| 380 | − - Blue | |
| 381 | − | |
| 382 | − - 0.1500 | |
| 383 | − | |
| 384 | − - 0.0600 | |
| 385 | − | |
| 386 | − - .. row 5 | |
| 387 | − | |
| 388 | − - White Reference (D65) | |
| 389 | − | |
| 390 | − - 0.3127 | |
| 391 | − | |
| 392 | − - 0.3290 | |
| 304 | + * - Color | |
| 305 | + - x | |
| 306 | + - y | |
| 307 | + * - Red | |
| 308 | + - 0.6400 | |
| 309 | + - 0.3300 | |
| 310 | + * - Green | |
| 311 | + - 0.2100 | |
| 312 | + - 0.7100 | |
| 313 | + * - Blue | |
| 314 | + - 0.1500 | |
| 315 | + - 0.0600 | |
| 316 | + * - White Reference (D65) | |
| 317 | + - 0.3127 | |
| 318 | + - 0.3290 | |
| 393 | 319 | |
| 394 | 320 | |
| 395 | 321 | |
| 396 | 322 | Transfer function: |
| 397 | 323 | |
| 398 | − L' = L :sup:`1/2.19921875` | |
| 324 | +.. math:: | |
| 325 | + | |
| 326 | + L' = L ^{\frac{1}{2.19921875}} | |
| 399 | 327 | |
| 400 | 328 | Inverse Transfer function: |
| 401 | 329 | |
| 402 | − L = L' :sup:`2.19921875` | |
| 330 | +.. math:: | |
| 331 | + | |
| 332 | + L = L'^{(2.19921875)} | |
| 403 | 333 | |
| 404 | 334 | The luminance (Y') and color difference (Cb and Cr) are obtained with |
| 405 | 335 | the 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 | |
| 413 | 345 | Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range |
| 414 | 346 | [-0.5…0.5]. This transform is identical to one defined in SMPTE |
| 415 | −170M/BT.601. The Y'CbCr quantization is limited range. | |
| 347 | +170M/BT.601. The Y'CbCr quantization is full range. | |
| 416 | 348 | |
| 417 | 349 | |
| 418 | 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 | 366 | .. flat-table:: BT.2020 Chromaticities |
| 433 | 367 | :header-rows: 1 |
| 434 | 368 | :stub-columns: 0 |
| 435 | 369 | :widths: 1 1 2 |
| 436 | 370 | |
| 437 | − | |
| 438 | − - .. row 1 | |
| 439 | − | |
| 440 | − - Color | |
| 441 | − | |
| 442 | − - x | |
| 443 | − | |
| 444 | − - y | |
| 445 | − | |
| 446 | − - .. row 2 | |
| 447 | − | |
| 448 | − - Red | |
| 449 | − | |
| 450 | − - 0.708 | |
| 451 | − | |
| 452 | − - 0.292 | |
| 453 | − | |
| 454 | − - .. row 3 | |
| 455 | − | |
| 456 | − - Green | |
| 457 | − | |
| 458 | − - 0.170 | |
| 459 | − | |
| 460 | − - 0.797 | |
| 461 | − | |
| 462 | − - .. row 4 | |
| 463 | − | |
| 464 | − - Blue | |
| 465 | − | |
| 466 | − - 0.131 | |
| 467 | − | |
| 468 | − - 0.046 | |
| 469 | − | |
| 470 | − - .. row 5 | |
| 471 | − | |
| 472 | − - White Reference (D65) | |
| 473 | − | |
| 474 | − - 0.3127 | |
| 475 | − | |
| 476 | − - 0.3290 | |
| 371 | + * - Color | |
| 372 | + - x | |
| 373 | + - y | |
| 374 | + * - Red | |
| 375 | + - 0.708 | |
| 376 | + - 0.292 | |
| 377 | + * - Green | |
| 378 | + - 0.170 | |
| 379 | + - 0.797 | |
| 380 | + * - Blue | |
| 381 | + - 0.131 | |
| 382 | + - 0.046 | |
| 383 | + * - White Reference (D65) | |
| 384 | + - 0.3127 | |
| 385 | + - 0.3290 | |
| 477 | 386 | |
| 478 | 387 | |
| 479 | 388 | |
| 480 | 389 | Transfer function (same as Rec. 709): |
| 481 | 390 | |
| 482 | − L' = 4.5L for 0 ≤ L < 0.018 | |
| 391 | +.. math:: | |
| 483 | 392 | |
| 484 | − L' = 1.099L :sup:`0.45` - 0.099 for 0.018 ≤ L ≤ 1 | |
| 393 | + L' = 4.5L\text{, for }0 \le L < 0.018 | |
| 394 | + | |
| 395 | + L' = 1.099L ^{0.45} - 0.099\text{, for } 0.018 \le L \le 1 | |
| 485 | 396 | |
| 486 | 397 | Inverse Transfer function: |
| 487 | 398 | |
| 488 | − L = L' / 4.5 for L' < 0.081 | |
| 399 | +.. 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.081 | |
| 403 | + L = \left( \frac{L' + 0.099}{1.099}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081 | |
| 491 | 404 | |
| 492 | 405 | The luminance (Y') and color difference (Cb and Cr) are obtained with |
| 493 | 406 | the following ``V4L2_YCBCR_ENC_BT2020`` encoding: |
| 494 | 407 | |
| 408 | +.. math:: | |
| 409 | + | |
| 495 | 410 | Y' = 0.2627R' + 0.6780G' + 0.0593B' |
| 496 | 411 | |
| 497 | 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 | |
| 507 | 422 | Luma: |
| 508 | 423 | |
| 509 | − Yc' = (0.2627R + 0.6780G + 0.0593B)' | |
| 510 | − | |
| 511 | −B' - Yc' ≤ 0: | |
| 512 | − | |
| 513 | − Cbc = (B' - Yc') / 1.9404 | |
| 514 | − | |
| 515 | −B' - Yc' > 0: | |
| 516 | − | |
| 517 | − Cbc = (B' - Yc') / 1.5816 | |
| 518 | − | |
| 519 | −R' - Yc' ≤ 0: | |
| 520 | − | |
| 521 | − Crc = (R' - Y') / 1.7184 | |
| 522 | − | |
| 523 | −R' - Yc' > 0: | |
| 524 | − | |
| 525 | − Crc = (R' - Y') / 0.9936 | |
| 424 | +.. math:: | |
| 425 | + :nowrap: | |
| 426 | + | |
| 427 | + \begin{align*} | |
| 428 | + Yc' = (0.2627R + 0.6780G + 0.0593B)'& \\ | |
| 429 | + B' - Yc' \le 0:& \\ | |
| 430 | + &Cbc = (B' - Yc') / 1.9404 \\ | |
| 431 | + B' - Yc' > 0: & \\ | |
| 432 | + &Cbc = (B' - Yc') / 1.5816 \\ | |
| 433 | + R' - Yc' \le 0:& \\ | |
| 434 | + &Crc = (R' - Y') / 1.7184 \\ | |
| 435 | + R' - Yc' > 0:& \\ | |
| 436 | + &Crc = (R' - Y') / 0.9936 | |
| 437 | + \end{align*} | |
| 526 | 438 | |
| 527 | 439 | Yc' is clamped to the range [0…1] and Cbc and Crc are clamped to the |
| 528 | 440 | range [-0.5…0.5]. The Yc'CbcCrc quantization is limited range. |
| @@ -536,71 +448,54 @@ Colorspace DCI-P3 (V4L2_COLORSPACE_DCI_P3) · 7 unmodified lines | ||
| 536 | 448 | The :ref:`smpte431` standard defines the colorspace used by cinema |
| 537 | 449 | projectors that use the DCI-P3 colorspace. The default transfer function |
| 538 | 450 | is ``V4L2_XFER_FUNC_DCI_P3``. The default Y'CbCr encoding is |
| 539 | −``V4L2_YCBCR_ENC_709``. | |
| 451 | +``V4L2_YCBCR_ENC_709``. The default Y'CbCr quantization is limited range. | |
| 452 | + | |
| 453 | +.. note:: | |
| 540 | 454 | |
| 541 | −.. note:: Note that this colorspace does not specify a | |
| 455 | + Note that this colorspace standard does not specify a | |
| 542 | 456 | Y'CbCr encoding since it is not meant to be encoded to Y'CbCr. So this |
| 543 | − default Y'CbCr encoding was picked because it is the HDTV encoding. The | |
| 544 | − default Y'CbCr quantization is limited range. The chromaticities of the | |
| 545 | − primary colors and the white reference are: | |
| 457 | + default Y'CbCr encoding was picked because it is the HDTV encoding. | |
| 458 | + | |
| 459 | +The chromaticities of the primary colors and the white reference are: | |
| 546 | 460 | |
| 547 | 461 | |
| 548 | 462 | |
| 463 | +.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| | |
| 464 | + | |
| 549 | 465 | .. flat-table:: DCI-P3 Chromaticities |
| 550 | 466 | :header-rows: 1 |
| 551 | 467 | :stub-columns: 0 |
| 552 | 468 | :widths: 1 1 2 |
| 553 | 469 | |
| 554 | − | |
| 555 | − - .. row 1 | |
| 556 | − | |
| 557 | − - Color | |
| 558 | − | |
| 559 | − - x | |
| 560 | − | |
| 561 | − - y | |
| 562 | − | |
| 563 | − - .. row 2 | |
| 564 | − | |
| 565 | − - Red | |
| 566 | − | |
| 567 | − - 0.6800 | |
| 568 | − | |
| 569 | − - 0.3200 | |
| 570 | − | |
| 571 | − - .. row 3 | |
| 572 | − | |
| 573 | − - Green | |
| 574 | − | |
| 575 | − - 0.2650 | |
| 576 | − | |
| 577 | − - 0.6900 | |
| 578 | − | |
| 579 | − - .. row 4 | |
| 580 | − | |
| 581 | − - Blue | |
| 582 | − | |
| 583 | − - 0.1500 | |
| 584 | − | |
| 585 | − - 0.0600 | |
| 586 | − | |
| 587 | − - .. row 5 | |
| 588 | − | |
| 589 | − - White Reference | |
| 590 | − | |
| 591 | − - 0.3140 | |
| 592 | − | |
| 593 | − - 0.3510 | |
| 470 | + * - Color | |
| 471 | + - x | |
| 472 | + - y | |
| 473 | + * - Red | |
| 474 | + - 0.6800 | |
| 475 | + - 0.3200 | |
| 476 | + * - Green | |
| 477 | + - 0.2650 | |
| 478 | + - 0.6900 | |
| 479 | + * - Blue | |
| 480 | + - 0.1500 | |
| 481 | + - 0.0600 | |
| 482 | + * - White Reference | |
| 483 | + - 0.3140 | |
| 484 | + - 0.3510 | |
| 594 | 485 | |
| 595 | 486 | |
| 596 | 487 | |
| 597 | 488 | Transfer function: |
| 598 | 489 | |
| 599 | − L' = L :sup:`1/2.6` | |
| 490 | +.. math:: | |
| 491 | + | |
| 492 | + L' = L^{\frac{1}{2.6}} | |
| 600 | 493 | |
| 601 | 494 | Inverse Transfer function: |
| 602 | 495 | |
| 603 | − L = L' :sup:`2.6` | |
| 496 | +.. math:: | |
| 497 | + | |
| 498 | + L = L'^{(2.6)} | |
| 604 | 499 | |
| 605 | 500 | Y'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 | 519 | .. flat-table:: SMPTE 240M Chromaticities |
| 623 | 520 | :header-rows: 1 |
| 624 | 521 | :stub-columns: 0 |
| 625 | 522 | :widths: 1 1 2 |
| 626 | 523 | |
| 627 | − | |
| 628 | − - .. row 1 | |
| 629 | − | |
| 630 | − - Color | |
| 631 | − | |
| 632 | − - x | |
| 633 | − | |
| 634 | − - y | |
| 635 | − | |
| 636 | − - .. row 2 | |
| 637 | − | |
| 638 | − - Red | |
| 639 | − | |
| 640 | − - 0.630 | |
| 641 | − | |
| 642 | − - 0.340 | |
| 643 | − | |
| 644 | − - .. row 3 | |
| 645 | − | |
| 646 | − - Green | |
| 647 | − | |
| 648 | − - 0.310 | |
| 649 | − | |
| 650 | − - 0.595 | |
| 651 | − | |
| 652 | − - .. row 4 | |
| 653 | − | |
| 654 | − - Blue | |
| 655 | − | |
| 656 | − - 0.155 | |
| 657 | − | |
| 658 | − - 0.070 | |
| 659 | − | |
| 660 | − - .. row 5 | |
| 661 | − | |
| 662 | − - White Reference (D65) | |
| 663 | − | |
| 664 | − - 0.3127 | |
| 665 | − | |
| 666 | − - 0.3290 | |
| 524 | + * - Color | |
| 525 | + - x | |
| 526 | + - y | |
| 527 | + * - Red | |
| 528 | + - 0.630 | |
| 529 | + - 0.340 | |
| 530 | + * - Green | |
| 531 | + - 0.310 | |
| 532 | + - 0.595 | |
| 533 | + * - Blue | |
| 534 | + - 0.155 | |
| 535 | + - 0.070 | |
| 536 | + * - White Reference (D65) | |
| 537 | + - 0.3127 | |
| 538 | + - 0.3290 | |
| 667 | 539 | |
| 668 | 540 | |
| 669 | 541 | These chromaticities are identical to the SMPTE 170M colorspace. |
| 670 | 542 | |
| 671 | 543 | Transfer function: |
| 672 | 544 | |
| 673 | − L' = 4L for 0 ≤ L < 0.0228 | |
| 545 | +.. math:: | |
| 674 | 546 | |
| 675 | − L' = 1.1115L :sup:`0.45` - 0.1115 for 0.0228 ≤ L ≤ 1 | |
| 547 | + L' = 4L\text{, for } 0 \le L < 0.0228 | |
| 548 | + | |
| 549 | + L' = 1.1115L ^{0.45} - 0.1115\text{, for } 0.0228 \le L \le 1 | |
| 676 | 550 | |
| 677 | 551 | Inverse Transfer function: |
| 678 | 552 | |
| 679 | − L = L' / 4 for 0 ≤ L' < 0.0913 | |
| 553 | +.. 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.0913 | |
| 557 | + L = \left( \frac{L' + 0.1115}{1.1115}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.0913 | |
| 682 | 558 | |
| 683 | 559 | The luminance (Y') and color difference (Cb and Cr) are obtained with |
| 684 | 560 | the following ``V4L2_YCBCR_ENC_SMPTE240M`` encoding: |
| 685 | 561 | |
| 562 | +.. math:: | |
| 563 | + | |
| 686 | 564 | Y' = 0.2122R' + 0.7013G' + 0.0865B' |
| 687 | 565 | |
| 688 | 566 | Cb = -0.1161R' - 0.3839G' + 0.5B' |
| 689 | 567 | |
| 690 | 568 | Cr = 0.5R' - 0.4451G' - 0.0549B' |
| 691 | 569 | |
| 692 | −Yc' is clamped to the range [0…1] and Cbc and Crc are clamped to the | |
| 570 | +Y' is clamped to the range [0…1] and Cb and Cr are clamped to the | |
| 693 | 571 | range [-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 | 590 | .. flat-table:: NTSC 1953 Chromaticities |
| 711 | 591 | :header-rows: 1 |
| 712 | 592 | :stub-columns: 0 |
| 713 | 593 | :widths: 1 1 2 |
| 714 | 594 | |
| 715 | − | |
| 716 | − - .. row 1 | |
| 717 | − | |
| 718 | − - Color | |
| 719 | − | |
| 720 | − - x | |
| 721 | − | |
| 722 | − - y | |
| 723 | − | |
| 724 | − - .. row 2 | |
| 725 | − | |
| 726 | − - Red | |
| 727 | − | |
| 728 | − - 0.67 | |
| 729 | − | |
| 730 | − - 0.33 | |
| 731 | − | |
| 732 | − - .. row 3 | |
| 733 | − | |
| 734 | − - Green | |
| 735 | − | |
| 736 | − - 0.21 | |
| 737 | − | |
| 738 | − - 0.71 | |
| 739 | − | |
| 740 | − - .. row 4 | |
| 741 | − | |
| 742 | − - Blue | |
| 743 | − | |
| 744 | − - 0.14 | |
| 745 | − | |
| 746 | − - 0.08 | |
| 747 | − | |
| 748 | − - .. row 5 | |
| 749 | − | |
| 750 | − - White Reference (C) | |
| 751 | − | |
| 752 | − - 0.310 | |
| 753 | − | |
| 754 | − - 0.316 | |
| 755 | − | |
| 756 | − | |
| 757 | −.. note:: This colorspace uses Illuminant C instead of D65 as the white | |
| 595 | + * - Color | |
| 596 | + - x | |
| 597 | + - y | |
| 598 | + * - Red | |
| 599 | + - 0.67 | |
| 600 | + - 0.33 | |
| 601 | + * - Green | |
| 602 | + - 0.21 | |
| 603 | + - 0.71 | |
| 604 | + * - Blue | |
| 605 | + - 0.14 | |
| 606 | + - 0.08 | |
| 607 | + * - White Reference (C) | |
| 608 | + - 0.310 | |
| 609 | + - 0.316 | |
| 610 | + | |
| 611 | + | |
| 612 | +.. note:: | |
| 613 | + | |
| 614 | + This colorspace uses Illuminant C instead of D65 as the white | |
| 758 | 615 | reference. To correctly convert an image in this colorspace to another |
| 759 | 616 | that uses D65 you need to apply a chromatic adaptation algorithm such as |
| 760 | 617 | the Bradford method. |
| @@ -762,24 +619,30 @@ reference are: · 1 unmodified line | ||
| 762 | 619 | The transfer function was never properly defined for NTSC 1953. The Rec. |
| 763 | 620 | 709 transfer function is recommended in the literature: |
| 764 | 621 | |
| 765 | − L' = 4.5L for 0 ≤ L < 0.018 | |
| 622 | +.. 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 ≤ 1 | |
| 626 | + L' = 1.099L ^{0.45} - 0.099\text{, for } 0.018 \le L \le 1 | |
| 768 | 627 | |
| 769 | 628 | Inverse Transfer function: |
| 770 | 629 | |
| 771 | − L = L' / 4.5 for L' < 0.081 | |
| 630 | +.. math:: | |
| 772 | 631 | |
| 773 | − L = ((L' + 0.099) / 1.099) :sup:`1/0.45` for L' ≥ 0.081 | |
| 632 | + L = \frac{L'}{4.5} \text{, for } L' < 0.081 | |
| 633 | + | |
| 634 | + L = \left( \frac{L' + 0.099}{1.099}\right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081 | |
| 774 | 635 | |
| 775 | 636 | The luminance (Y') and color difference (Cb and Cr) are obtained with |
| 776 | 637 | the 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 | |
| 784 | 647 | Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range |
| 785 | 648 | [-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 | 669 | .. flat-table:: EBU Tech. 3213 Chromaticities |
| 805 | 670 | :header-rows: 1 |
| 806 | 671 | :stub-columns: 0 |
| 807 | 672 | :widths: 1 1 2 |
| 808 | 673 | |
| 809 | − | |
| 810 | − - .. row 1 | |
| 811 | − | |
| 812 | − - Color | |
| 813 | − | |
| 814 | − - x | |
| 815 | − | |
| 816 | − - y | |
| 817 | − | |
| 818 | − - .. row 2 | |
| 819 | − | |
| 820 | − - Red | |
| 821 | − | |
| 822 | − - 0.64 | |
| 823 | − | |
| 824 | − - 0.33 | |
| 825 | − | |
| 826 | − - .. row 3 | |
| 827 | − | |
| 828 | − - Green | |
| 829 | − | |
| 830 | − - 0.29 | |
| 831 | − | |
| 832 | − - 0.60 | |
| 833 | − | |
| 834 | − - .. row 4 | |
| 835 | − | |
| 836 | − - Blue | |
| 837 | − | |
| 838 | − - 0.15 | |
| 839 | − | |
| 840 | − - 0.06 | |
| 841 | − | |
| 842 | − - .. row 5 | |
| 843 | − | |
| 844 | − - White Reference (D65) | |
| 845 | − | |
| 846 | − - 0.3127 | |
| 847 | − | |
| 848 | − - 0.3290 | |
| 674 | + * - Color | |
| 675 | + - x | |
| 676 | + - y | |
| 677 | + * - Red | |
| 678 | + - 0.64 | |
| 679 | + - 0.33 | |
| 680 | + * - Green | |
| 681 | + - 0.29 | |
| 682 | + - 0.60 | |
| 683 | + * - Blue | |
| 684 | + - 0.15 | |
| 685 | + - 0.06 | |
| 686 | + * - White Reference (D65) | |
| 687 | + - 0.3127 | |
| 688 | + - 0.3290 | |
| 849 | 689 | |
| 850 | 690 | |
| 851 | 691 | |
| 852 | 692 | The transfer function was never properly defined for this colorspace. |
| 853 | 693 | The Rec. 709 transfer function is recommended in the literature: |
| 854 | 694 | |
| 855 | − L' = 4.5L for 0 ≤ L < 0.018 | |
| 695 | +.. math:: | |
| 856 | 696 | |
| 857 | − L' = 1.099L :sup:`0.45` - 0.099 for 0.018 ≤ L ≤ 1 | |
| 697 | + L' = 4.5L\text{, for } 0 \le L < 0.018 | |
| 698 | + | |
| 699 | + L' = 1.099L ^{0.45} - 0.099\text{, for } 0.018 \le L \le 1 | |
| 858 | 700 | |
| 859 | 701 | Inverse Transfer function: |
| 860 | 702 | |
| 861 | − L = L' / 4.5 for L' < 0.081 | |
| 703 | +.. 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.081 | |
| 707 | + L = \left(\frac{L' + 0.099}{1.099} \right) ^{\frac{1}{0.45} }\text{, for } L' \ge 0.081 | |
| 864 | 708 | |
| 865 | 709 | The luminance (Y') and color difference (Cb and Cr) are obtained with |
| 866 | 710 | the 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 | |
| 874 | 720 | Y' is clamped to the range [0…1] and Cb and Cr are clamped to the range |
| 875 | 721 | [-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 | ||
| 888 | 734 | with full range quantization where Y' is scaled to [0…255] and Cb/Cr are |
| 889 | 735 | scaled to [-128…128] and then clipped to [-128…127]. |
| 890 | 736 | |
| 891 | −.. note:: The JPEG standard does not actually store colorspace | |
| 737 | +.. note:: | |
| 738 | + | |
| 739 | + The JPEG standard does not actually store colorspace | |
| 892 | 740 | information. So if something other than sRGB is used, then the driver |
| 893 | 741 | will have to set that information explicitly. Effectively |
| 894 | 742 | ``V4L2_COLORSPACE_JPEG`` can be considered to be an abbreviation for |
| @@ -7,123 +7,81 @@ Compressed Formats · 6 unmodified lines | ||
| 7 | 7 | |
| 8 | 8 | .. _compressed-formats: |
| 9 | 9 | |
| 10 | +.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}| | |
| 11 | + | |
| 10 | 12 | .. flat-table:: Compressed Image Formats |
| 11 | 13 | :header-rows: 1 |
| 12 | 14 | :stub-columns: 0 |
| 13 | 15 | :widths: 3 1 4 |
| 14 | 16 | |
| 15 | − | |
| 16 | − - .. row 1 | |
| 17 | − | |
| 18 | − - Identifier | |
| 19 | − | |
| 20 | − - Code | |
| 21 | − | |
| 22 | − - Details | |
| 23 | − | |
| 24 | − - .. _V4L2-PIX-FMT-JPEG: | |
| 25 | − | |
| 26 | − - ``V4L2_PIX_FMT_JPEG`` | |
| 27 | − | |
| 28 | − - 'JPEG' | |
| 29 | − | |
| 30 | − - TBD. See also :ref:`VIDIOC_G_JPEGCOMP <VIDIOC_G_JPEGCOMP>`, | |
| 31 | − :ref:`VIDIOC_S_JPEGCOMP <VIDIOC_G_JPEGCOMP>`. | |
| 32 | − | |
| 33 | − - .. _V4L2-PIX-FMT-MPEG: | |
| 34 | − | |
| 35 | − - ``V4L2_PIX_FMT_MPEG`` | |
| 36 | − | |
| 37 | − - 'MPEG' | |
| 38 | − | |
| 39 | − - MPEG multiplexed stream. The actual format is determined by | |
| 40 | − extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see | |
| 41 | − :ref:`mpeg-control-id`. | |
| 42 | − | |
| 43 | − - .. _V4L2-PIX-FMT-H264: | |
| 44 | − | |
| 45 | − - ``V4L2_PIX_FMT_H264`` | |
| 46 | − | |
| 47 | − - 'H264' | |
| 48 | − | |
| 49 | − - H264 video elementary stream with start codes. | |
| 50 | − | |
| 51 | − - .. _V4L2-PIX-FMT-H264-NO-SC: | |
| 52 | − | |
| 53 | − - ``V4L2_PIX_FMT_H264_NO_SC`` | |
| 54 | − | |
| 55 | − - 'AVC1' | |
| 56 | − | |
| 57 | − - H264 video elementary stream without start codes. | |
| 58 | − | |
| 59 | − - .. _V4L2-PIX-FMT-H264-MVC: | |
| 60 | − | |
| 61 | − - ``V4L2_PIX_FMT_H264_MVC`` | |
| 62 | − | |
| 63 | − - 'M264' | |
| 64 | − | |
| 65 | − - H264 MVC video elementary stream. | |
| 66 | − | |
| 67 | − - .. _V4L2-PIX-FMT-H263: | |
| 68 | − | |
| 69 | − - ``V4L2_PIX_FMT_H263`` | |
| 70 | − | |
| 71 | − - 'H263' | |
| 72 | − | |
| 73 | − - H263 video elementary stream. | |
| 74 | − | |
| 75 | − - .. _V4L2-PIX-FMT-MPEG1: | |
| 76 | − | |
| 77 | − - ``V4L2_PIX_FMT_MPEG1`` | |
| 78 | − | |
| 79 | − - 'MPG1' | |
| 80 | − | |
| 81 | − - MPEG1 video elementary stream. | |
| 82 | − | |
| 83 | − - .. _V4L2-PIX-FMT-MPEG2: | |
| 84 | − | |
| 85 | − - ``V4L2_PIX_FMT_MPEG2`` | |
| 86 | − | |
| 87 | − - 'MPG2' | |
| 88 | − | |
| 89 | − - MPEG2 video elementary stream. | |
| 90 | − | |
| 91 | − - .. _V4L2-PIX-FMT-MPEG4: | |
| 92 | − | |
| 93 | − - ``V4L2_PIX_FMT_MPEG4`` | |
| 94 | − | |
| 95 | − - 'MPG4' | |
| 96 | − | |
| 97 | − - MPEG4 video elementary stream. | |
| 98 | − | |
| 99 | − - .. _V4L2-PIX-FMT-XVID: | |
| 100 | − | |
| 101 | − - ``V4L2_PIX_FMT_XVID`` | |
| 102 | − | |
| 103 | − - 'XVID' | |
| 104 | − | |
| 105 | − - Xvid video elementary stream. | |
| 106 | − | |
| 107 | − - .. _V4L2-PIX-FMT-VC1-ANNEX-G: | |
| 108 | − | |
| 109 | − - ``V4L2_PIX_FMT_VC1_ANNEX_G`` | |
| 110 | − | |
| 111 | − - 'VC1G' | |
| 112 | − | |
| 113 | − - VC1, SMPTE 421M Annex G compliant stream. | |
| 114 | − | |
| 115 | − - .. _V4L2-PIX-FMT-VC1-ANNEX-L: | |
| 116 | − | |
| 117 | − - ``V4L2_PIX_FMT_VC1_ANNEX_L`` | |
| 118 | − | |
| 119 | − - 'VC1L' | |
| 120 | − | |
| 121 | − - VC1, SMPTE 421M Annex L compliant stream. | |
| 122 | − | |
| 123 | − - .. _V4L2-PIX-FMT-VP8: | |
| 124 | − | |
| 125 | − - ``V4L2_PIX_FMT_VP8`` | |
| 126 | − | |
| 127 | − - 'VP80' | |
| 128 | − | |
| 129 | − - VP8 video elementary stream. | |
| 17 | + * - Identifier | |
| 18 | + - Code | |
| 19 | + - Details | |
| 20 | + * .. _V4L2-PIX-FMT-JPEG: | |
| 21 | + | |
| 22 | + - ``V4L2_PIX_FMT_JPEG`` | |
| 23 | + - 'JPEG' | |
| 24 | + - TBD. See also :ref:`VIDIOC_G_JPEGCOMP <VIDIOC_G_JPEGCOMP>`, | |
| 25 | + :ref:`VIDIOC_S_JPEGCOMP <VIDIOC_G_JPEGCOMP>`. | |
| 26 | + * .. _V4L2-PIX-FMT-MPEG: | |
| 27 | + | |
| 28 | + - ``V4L2_PIX_FMT_MPEG`` | |
| 29 | + - 'MPEG' | |
| 30 | + - MPEG multiplexed stream. The actual format is determined by | |
| 31 | + extended control ``V4L2_CID_MPEG_STREAM_TYPE``, see | |
| 32 | + :ref:`mpeg-control-id`. | |
| 33 | + * .. _V4L2-PIX-FMT-H264: | |
| 34 | + | |
| 35 | + - ``V4L2_PIX_FMT_H264`` | |
| 36 | + - 'H264' | |
| 37 | + - H264 video elementary stream with start codes. | |
| 38 | + * .. _V4L2-PIX-FMT-H264-NO-SC: | |
| 39 | + | |
| 40 | + - ``V4L2_PIX_FMT_H264_NO_SC`` | |
| 41 | + - 'AVC1' | |
| 42 | + - H264 video elementary stream without start codes. | |
| 43 | + * .. _V4L2-PIX-FMT-H264-MVC: | |
| 44 | + | |
| 45 | + - ``V4L2_PIX_FMT_H264_MVC`` | |
| 46 | + - 'M264' | |
| 47 | + - H264 MVC video elementary stream. | |
| 48 | + * .. _V4L2-PIX-FMT-H263: | |
| 49 | + | |
| 50 | + - ``V4L2_PIX_FMT_H263`` | |
| 51 | + - 'H263' | |
| 52 | + - H263 video elementary stream. | |
| 53 | + * .. _V4L2-PIX-FMT-MPEG1: | |
| 54 | + | |
| 55 | + - ``V4L2_PIX_FMT_MPEG1`` | |
| 56 | + - 'MPG1' | |
| 57 | + - MPEG1 video elementary stream. | |
| 58 | + * .. _V4L2-PIX-FMT-MPEG2: | |
| 59 | + | |
| 60 | + - ``V4L2_PIX_FMT_MPEG2`` | |
| 61 | + - 'MPG2' | |
| 62 | + - MPEG2 video elementary stream. | |
| 63 | + * .. _V4L2-PIX-FMT-MPEG4: | |
| 64 | + | |
| 65 | + - ``V4L2_PIX_FMT_MPEG4`` | |
| 66 | + - 'MPG4' | |
| 67 | + - MPEG4 video elementary stream. | |
| 68 | + * .. _V4L2-PIX-FMT-XVID: | |
| 69 | + | |
| 70 | + - ``V4L2_PIX_FMT_XVID`` | |
| 71 | + - 'XVID' | |
| 72 | + - Xvid video elementary stream. | |
| 73 | + * .. _V4L2-PIX-FMT-VC1-ANNEX-G: | |
| 74 | + | |
| 75 | + - ``V4L2_PIX_FMT_VC1_ANNEX_G`` | |
| 76 | + - 'VC1G' | |
| 77 | + - VC1, SMPTE 421M Annex G compliant stream. | |
| 78 | + * .. _V4L2-PIX-FMT-VC1-ANNEX-L: | |
| 79 | + | |
| 80 | + - ``V4L2_PIX_FMT_VC1_ANNEX_L`` | |
| 81 | + - 'VC1L' | |
| 82 | + - VC1, SMPTE 421M Annex L compliant stream. | |
| 83 | + * .. _V4L2-PIX-FMT-VP8: | |
| 84 | + | |
| 85 | + - ``V4L2_PIX_FMT_VP8`` | |
| 86 | + - 'VP80' | |
| 87 | + - VP8 video elementary stream. | |
| @@ -6,8 +6,6 @@ · 5 unmodified lines | ||
| 6 | 6 | V4L2_PIX_FMT_GREY ('GREY') |
| 7 | 7 | ************************** |
| 8 | 8 | |
| 9 | −*man V4L2_PIX_FMT_GREY(2)* | |
| 10 | − | |
| 11 | 9 | Grey-scale image |
| 12 | 10 | |
| 13 | 11 | |
| @@ -20,58 +18,27 @@ which simply contains no Cb or Cr data. · 6 unmodified lines | ||
| 20 | 18 | **Byte Order.** |
| 21 | 19 | Each cell is one byte. |
| 22 | 20 | |
| 23 | − | |
| 24 | − | |
| 25 | 21 | .. flat-table:: |
| 26 | 22 | :header-rows: 0 |
| 27 | 23 | :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` | |
| @@ -17,57 +17,31 @@ the palette, this must be done with ioctls of the Linux framebuffer API. · 16 unmodified lines | ||
| 17 | 17 | :header-rows: 2 |
| 18 | 18 | :stub-columns: 0 |
| 19 | 19 | |
| 20 | − | |
| 21 | − - .. row 1 | |
| 22 | − | |
| 23 | − - Identifier | |
| 24 | − | |
| 25 | − - Code | |
| 26 | − | |
| 27 | − - | |
| 28 | − - :cspan:`7` Byte 0 | |
| 29 | − | |
| 30 | − - .. row 2 | |
| 31 | − | |
| 32 | − - | |
| 33 | − - | |
| 34 | − - Bit | |
| 35 | − | |
| 36 | − - 7 | |
| 37 | − | |
| 38 | − - 6 | |
| 39 | − | |
| 40 | − - 5 | |
| 41 | − | |
| 42 | − - 4 | |
| 43 | − | |
| 44 | − - 3 | |
| 45 | − | |
| 46 | − - 2 | |
| 47 | − | |
| 48 | − - 1 | |
| 49 | − | |
| 50 | − - 0 | |
| 51 | − | |
| 52 | − - .. _V4L2-PIX-FMT-PAL8: | |
| 53 | − | |
| 54 | − - ``V4L2_PIX_FMT_PAL8`` | |
| 55 | − | |
| 56 | − - 'PAL8' | |
| 57 | − | |
| 58 | − - | |
| 59 | − - i\ :sub:`7` | |
| 60 | − | |
| 61 | − - i\ :sub:`6` | |
| 62 | − | |
| 63 | − - i\ :sub:`5` | |
| 64 | − | |
| 65 | − - i\ :sub:`4` | |
| 66 | − | |
| 67 | − - i\ :sub:`3` | |
| 68 | − | |
| 69 | − - i\ :sub:`2` | |
| 70 | − | |
| 71 | − - i\ :sub:`1` | |
| 72 | − | |
| 73 | − - i\ :sub:`0` | |
| 20 | + * - Identifier | |
| 21 | + - Code | |
| 22 | + - | |
| 23 | + - :cspan:`7` Byte 0 | |
| 24 | + * - | |
| 25 | + - | |
| 26 | + - Bit | |
| 27 | + - 7 | |
| 28 | + - 6 | |
| 29 | + - 5 | |
| 30 | + - 4 | |
| 31 | + - 3 | |
| 32 | + - 2 | |
| 33 | + - 1 | |
| 34 | + - 0 | |
| 35 | + * .. _V4L2-PIX-FMT-PAL8: | |
| 36 | + | |
| 37 | + - ``V4L2_PIX_FMT_PAL8`` | |
| 38 | + - 'PAL8' | |
| 39 | + - | |
| 40 | + - i\ :sub:`7` | |
| 41 | + - i\ :sub:`6` | |
| 42 | + - i\ :sub:`5` | |
| 43 | + - i\ :sub:`4` | |
| 44 | + - i\ :sub:`3` | |
| 45 | + - i\ :sub:`2` | |
| 46 | + - i\ :sub:`1` | |
| 47 | + - i\ :sub:`0` | |
| @@ -6,8 +6,6 @@ · 5 unmodified lines | ||
| 6 | 6 | V4L2_PIX_FMT_M420 ('M420') |
| 7 | 7 | ************************** |
| 8 | 8 | |
| 9 | −*man V4L2_PIX_FMT_M420(2)* | |
| 10 | − | |
| 11 | 9 | Format with ½ horizontal and vertical chroma resolution, also known as |
| 12 | 10 | YUV 4:2:0. Hybrid plane line-interleaved layout. |
| 13 | 11 | |
| @@ -32,84 +30,40 @@ the CbCr lines. · 18 unmodified lines | ||
| 32 | 30 | Each cell is one byte. |
| 33 | 31 | |
| 34 | 32 | |
| 35 | − | |
| 36 | 33 | .. flat-table:: |
| 37 | 34 | :header-rows: 0 |
| 38 | 35 | :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.
This diff is large: its 274 lines aren’t shown here.
This diff is large: its 277 lines aren’t shown here.
This diff is large: its 27 lines aren’t shown here.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This diff is large: its 347 lines aren’t shown here.
This diff is large: its 352 lines aren’t shown here.
This diff is large: its 203 lines aren’t shown here.
This diff is large: its 2227 lines aren’t shown here.
This diff is large: its 485 lines aren’t shown here.
This diff is large: its 565 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 142 lines aren’t shown here.
This diff is large: its 82 lines aren’t shown here.
This diff is large: its 36 lines aren’t shown here.
This diff is large: its 41 lines aren’t shown here.
This diff is large: its 36 lines aren’t shown here.
This diff is large: its 40 lines aren’t shown here.
This diff is large: its 29 lines aren’t shown here.
This diff is large: its 82 lines aren’t shown here.
This diff is large: its 82 lines aren’t shown here.
This diff is large: its 154 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 132 lines aren’t shown here.
This diff is large: its 144 lines aren’t shown here.
This diff is large: its 115 lines aren’t shown here.
This diff is large: its 53 lines aren’t shown here.
This diff is large: its 68 lines aren’t shown here.
This diff is large: its 51 lines aren’t shown here.
This diff is large: its 67 lines aren’t shown here.
This diff is large: its 86 lines aren’t shown here.
This diff is large: its 253 lines aren’t shown here.
This diff is large: its 253 lines aren’t shown here.
This diff is large: its 134 lines aren’t shown here.
This diff is large: its 37 lines aren’t shown here.
This diff is large: its 134 lines aren’t shown here.
This diff is large: its 26 lines aren’t shown here.
This diff is large: its 145 lines aren’t shown here.
This diff is large: its 145 lines aren’t shown here.
This diff is large: its 361 lines aren’t shown here.
This diff is large: its 134 lines aren’t shown here.
This diff is large: its 253 lines aren’t shown here.
This diff is large: its 255 lines aren’t shown here.
This diff is large: its 298 lines aren’t shown here.
This diff is large: its 308 lines aren’t shown here.
This diff is large: its 303 lines aren’t shown here.
This diff is large: its 293 lines aren’t shown here.
This diff is large: its 323 lines aren’t shown here.
This diff is large: its 263 lines aren’t shown here.
This diff is large: its 253 lines aren’t shown here.
This diff is large: its 134 lines aren’t shown here.
This diff is large: its 17 lines aren’t shown here.
This diff is large: its 30 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 25 lines aren’t shown here.
This diff is large: its 33 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 17975 lines aren’t shown here.
This diff is large: its 19 lines aren’t shown here.
This diff is large: its 58 lines aren’t shown here.
This diff is large: its 36 lines aren’t shown here.
This diff is large: its 96 lines aren’t shown here.
This diff is large: its 181 lines aren’t shown here.
This diff is large: its 23 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 127 lines aren’t shown here.
This diff is large: its 187 lines aren’t shown here.
This diff is large: its 190 lines aren’t shown here.
This diff is large: its 187 lines aren’t shown here.
This diff is large: its 364 lines aren’t shown here.
This diff is large: its 820 lines aren’t shown here.
This diff is large: its 321 lines aren’t shown here.
This diff is large: its 205 lines aren’t shown here.
This diff is large: its 124 lines aren’t shown here.
This diff is large: its 212 lines aren’t shown here.
This diff is large: its 262 lines aren’t shown here.
This diff is large: its 306 lines aren’t shown here.
This diff is large: its 242 lines aren’t shown here.
This diff is large: its 37 lines aren’t shown here.
This diff is large: its 43 lines aren’t shown here.
This diff is large: its 500 lines aren’t shown here.
This diff is large: its 284 lines aren’t shown here.
This diff is large: its 395 lines aren’t shown here.
This diff is large: its 144 lines aren’t shown here.
This diff is large: its 182 lines aren’t shown here.
This diff is large: its 129 lines aren’t shown here.
This diff is large: its 94 lines aren’t shown here.
This diff is large: its 91 lines aren’t shown here.
This diff is large: its 549 lines aren’t shown here.
This diff is large: its 132 lines aren’t shown here.
This diff is large: its 238 lines aren’t shown here.
This diff is large: its 674 lines aren’t shown here.
This diff is large: its 679 lines aren’t shown here.
This diff is large: its 205 lines aren’t shown here.
This diff is large: its 132 lines aren’t shown here.
This diff is large: its 32 lines aren’t shown here.
This diff is large: its 197 lines aren’t shown here.
This diff is large: its 334 lines aren’t shown here.
This diff is large: its 32 lines aren’t shown here.
This diff is large: its 479 lines aren’t shown here.
This diff is large: its 114 lines aren’t shown here.
This diff is large: its 180 lines aren’t shown here.
This diff is large: its 381 lines aren’t shown here.
This diff is large: its 36 lines aren’t shown here.
This diff is large: its 1021 lines aren’t shown here.
This diff is large: its 17 lines aren’t shown here.
This diff is large: its 20 lines aren’t shown here.
This diff is large: its 29 lines aren’t shown here.
This diff is large: its 99 lines aren’t shown here.
This diff is large: its 38 lines aren’t shown here.
This diff is large: its 57 lines aren’t shown here.
This diff is large: its 623 lines aren’t shown here.
This diff is large: its 1086 lines aren’t shown here.
This diff is large: its 31 lines aren’t shown here.
This diff is large: its 100 lines aren’t shown here.
This diff is large: its 184 lines aren’t shown here.
This diff is large: its 43 lines aren’t shown here.
This diff is large: its 149 lines aren’t shown here.
This diff is large: its 159 lines aren’t shown here.
This diff is large: its 115 lines aren’t shown here.
This diff is large: its 116 lines aren’t shown here.
This diff is large: its 149 lines aren’t shown here.
This diff is large: its 102 lines aren’t shown here.
This diff is large: its 119 lines aren’t shown here.
This diff is large: its 166 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 5 lines aren’t shown here.
This diff is large: its 6 lines aren’t shown here.
This diff is large: its 178 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 24 lines aren’t shown here.
This diff is large: its 310 lines aren’t shown here.
This diff is large: its 259 lines aren’t shown here.
This diff is large: its 236 lines aren’t shown here.
This diff is large: its 19 lines aren’t shown here.
This diff is large: its 17 lines aren’t shown here.
This diff is large: its 15 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 6 lines aren’t shown here.
This diff is large: its 758 lines aren’t shown here.
This diff is large: its 16 lines aren’t shown here.
This diff is large: its 643 lines aren’t shown here.
This diff is large: its 276 lines aren’t shown here.
This diff is large: its 26 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 37 lines aren’t shown here.
This diff is large: its 88 lines aren’t shown here.
This diff is large: its 42 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 312 lines aren’t shown here.
This diff is large: its 16 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 33 lines aren’t shown here.
This diff is large: its 444 lines aren’t shown here.
This diff is large: its 847 lines aren’t shown here.
This diff is large: its 90 lines aren’t shown here.
This diff is large: its 450 lines aren’t shown here.
This diff is large: its 424 lines aren’t shown here.
This diff is large: its 264 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 42 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 38 lines aren’t shown here.
This diff is large: its 163 lines aren’t shown here.
This diff is large: its 461 lines aren’t shown here.
This diff is large: its 39 lines aren’t shown here.
This diff is large: its 22 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 46 lines aren’t shown here.
This diff is large: its 16 lines aren’t shown here.
This diff is large: its 373 lines aren’t shown here.
This diff is large: its 80 lines aren’t shown here.
This diff is large: its 282 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 53 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 135 lines aren’t shown here.
This diff is large: its 223 lines aren’t shown here.
This diff is large: its 28 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 16 lines aren’t shown here.
This diff is large: its 435 lines aren’t shown here.
This diff is large: its 63 lines aren’t shown here.
This diff is large: its 41 lines aren’t shown here.
This diff is large: its 21 lines aren’t shown here.
This diff is large: its 17 lines aren’t shown here.
This diff is large: its 7 lines aren’t shown here.
This diff is large: its 66 lines aren’t shown here.
This diff is large: its 118 lines aren’t shown here.
This diff is large: its 97 lines aren’t shown here.
This diff is large: its 90 lines aren’t shown here.
This diff is large: its 121 lines aren’t shown here.
This diff is large: its 62 lines aren’t shown here.
This diff is large: its 90 lines aren’t shown here.
This diff is large: its 128 lines aren’t shown here.
This diff is large: its 65 lines aren’t shown here.
This diff is large: its 62 lines aren’t shown here.
This diff is large: its 64 lines aren’t shown here.
This diff is large: its 91 lines aren’t shown here.
This diff is large: its 76 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 17 lines aren’t shown here.
This diff is large: its 157 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 330 lines aren’t shown here.
This diff is large: its 33 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 5 lines aren’t shown here.
This diff is large: its 122 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 63 lines aren’t shown here.
This diff is large: its 22 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 78 lines aren’t shown here.
This diff is large: its 191 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 19 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 35 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 29 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 63 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 19 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 13 lines aren’t shown here.
This diff is large: its 63 lines aren’t shown here.
This diff is large: its 12 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 95 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 36 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 13 lines aren’t shown here.
This diff is large: its 4 lines aren’t shown here.
This diff is large: its 360 lines aren’t shown here.
This diff is large: its 260 lines aren’t shown here.
This diff is large: its 2134 lines aren’t shown here.
This diff is large: its 38 lines aren’t shown here.
This diff is large: its 1511 lines aren’t shown here.
This diff is large: its 206 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 291 lines aren’t shown here.
This diff is large: its 154 lines aren’t shown here.
This diff is large: its 59 lines aren’t shown here.
This diff is large: its 31 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 2 lines aren’t shown here.
This diff is large: its 166 lines aren’t shown here.
This diff is large: its 1521 lines aren’t shown here.
This diff is large: its 126 lines aren’t shown here.
This diff is large: its 97 lines aren’t shown here.
This diff is large: its 23 lines aren’t shown here.
This diff is large: its 17 lines aren’t shown here.
This diff is large: its 44 lines aren’t shown here.
This diff is large: its 87 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 62 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 20 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 106 lines aren’t shown here.
This diff is large: its 20 lines aren’t shown here.
This diff is large: its 20 lines aren’t shown here.
This diff is large: its 11 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 91 lines aren’t shown here.
This diff is large: its 20 lines aren’t shown here.
This diff is large: its 137 lines aren’t shown here.
This diff is large: its 2567 lines aren’t shown here.
This diff is large: its 27 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 376 lines aren’t shown here.
This diff is large: its 164 lines aren’t shown here.
This diff is large: its 505 lines aren’t shown here.
This diff is large: its 90 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 115 lines aren’t shown here.
This diff is large: its 157 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 89 lines aren’t shown here.
This diff is large: its 20 lines aren’t shown here.
This diff is large: its 1060 lines aren’t shown here.
This diff is large: its 325 lines aren’t shown here.
This diff is large: its 365 lines aren’t shown here.
This diff is large: its 528 lines aren’t shown here.
This diff is large: its 271 lines aren’t shown here.
This diff is large: its 552 lines aren’t shown here.
This diff is large: its 1131 lines aren’t shown here.
This diff is large: its 243 lines aren’t shown here.
This diff is large: its 147 lines aren’t shown here.
This diff is large: its 123 lines aren’t shown here.
This diff is large: its 64 lines aren’t shown here.
This diff is large: its 89 lines aren’t shown here.
This diff is large: its 498 lines aren’t shown here.
This diff is large: its 408 lines aren’t shown here.
This diff is large: its 41 lines aren’t shown here.
This diff is large: its 32 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 1971 lines aren’t shown here.
This diff is large: its 463 lines aren’t shown here.
This diff is large: its 401 lines aren’t shown here.
This diff is large: its 186 lines aren’t shown here.
This diff is large: its 68 lines aren’t shown here.
This diff is large: its 206 lines aren’t shown here.
This diff is large: its 20 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 3 lines aren’t shown here.
This diff is large: its 1051 lines aren’t shown here.
This diff is large: its 539 lines aren’t shown here.
This diff is large: its 43 lines aren’t shown here.
This diff is large: its 60 lines aren’t shown here.
This diff is large: its 35 lines aren’t shown here.
This diff is large: its 1416 lines aren’t shown here.
This diff is large: its 316 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 88 lines aren’t shown here.
This diff is large: its 17 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 16 lines aren’t shown here.
This diff is large: its 96 lines aren’t shown here.
This diff is large: its 109 lines aren’t shown here.
This diff is large: its 193 lines aren’t shown here.
This diff is large: its 7 lines aren’t shown here.
This diff is large: its 55 lines aren’t shown here.
This diff is large: its 145 lines aren’t shown here.
This diff is large: its 74 lines aren’t shown here.
This diff is large: its 59 lines aren’t shown here.
This diff is large: its 53 lines aren’t shown here.
This diff is large: its 57 lines aren’t shown here.
This diff is large: its 80 lines aren’t shown here.
This diff is large: its 44 lines aren’t shown here.
This diff is large: its 31 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 149 lines aren’t shown here.
This diff is large: its 161 lines aren’t shown here.
This diff is large: its 26 lines aren’t shown here.
This diff is large: its 110 lines aren’t shown here.
This diff is large: its 143 lines aren’t shown here.
This diff is large: its 274 lines aren’t shown here.
This diff is large: its 187 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 32 lines aren’t shown here.
This diff is large: its 44 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 74 lines aren’t shown here.
This diff is large: its 40 lines aren’t shown here.
This diff is large: its 34 lines aren’t shown here.
This diff is large: its 129 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 15 lines aren’t shown here.
This diff is large: its 2 lines aren’t shown here.
This diff is large: its 479 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 39 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 48 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 12 lines aren’t shown here.
This diff is large: its 24 lines aren’t shown here.
This diff is large: its 164 lines aren’t shown here.
This diff is large: its 139 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 42 lines aren’t shown here.
This diff is large: its 42 lines aren’t shown here.
This diff is large: its 44 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 19 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 38 lines aren’t shown here.
This diff is large: its 66 lines aren’t shown here.
This diff is large: its 28 lines aren’t shown here.
This diff is large: its 28 lines aren’t shown here.
This diff is large: its 165 lines aren’t shown here.
This diff is large: its 169 lines aren’t shown here.
This diff is large: its 23 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 30 lines aren’t shown here.
This diff is large: its 29 lines aren’t shown here.
This diff is large: its 41 lines aren’t shown here.
This diff is large: its 29 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 79 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 125 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 52 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 14 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 56 lines aren’t shown here.
This diff is large: its 14 lines aren’t shown here.
This diff is large: its 28 lines aren’t shown here.
This diff is large: its 157 lines aren’t shown here.
This diff is large: its 281 lines aren’t shown here.
This diff is large: its 456 lines aren’t shown here.
This diff is large: its 30 lines aren’t shown here.
This diff is large: its 58 lines aren’t shown here.
This diff is large: its 218 lines aren’t shown here.
This diff is large: its 50 lines aren’t shown here.
This diff is large: its 14 lines aren’t shown here.
This diff is large: its 6 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 42 lines aren’t shown here.
This diff is large: its 29 lines aren’t shown here.
This diff is large: its 113 lines aren’t shown here.
This diff is large: its 537 lines aren’t shown here.
This diff is large: its 34 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 2 lines aren’t shown here.
This diff is large: its 381 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 4 lines aren’t shown here.
This diff is large: its 7 lines aren’t shown here.
This diff is large: its 141 lines aren’t shown here.
This diff is large: its 104 lines aren’t shown here.
This diff is large: its 814 lines aren’t shown here.
This diff is large: its 118 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 49 lines aren’t shown here.
This diff is large: its 28 lines aren’t shown here.
This diff is large: its 236 lines aren’t shown here.
This diff is large: its 12 lines aren’t shown here.
This diff is large: its 562 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 146 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 19 lines aren’t shown here.
This diff is large: its 127 lines aren’t shown here.
This diff is large: its 69 lines aren’t shown here.
This diff is large: its 202 lines aren’t shown here.
This diff is large: its 11 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 34 lines aren’t shown here.
This diff is large: its 617 lines aren’t shown here.
This diff is large: its 18 lines aren’t shown here.
This diff is large: its 436 lines aren’t shown here.
This diff is large: its 105 lines aren’t shown here.
This diff is large: its 572 lines aren’t shown here.
This diff is large: its 224 lines aren’t shown here.
This diff is large: its 9 lines aren’t shown here.
This diff is large: its 10 lines aren’t shown here.
This diff is large: its 24 lines aren’t shown here.
This diff is large: its 8 lines aren’t shown here.
This diff is large: its 17 lines aren’t shown here.
This diff is large: its 112 lines aren’t shown here.