^sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget3/translations/zh_CN/userspace-api/media/dvb/headersmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/zh_TW/userspace-api/media/dvb/headersmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/it_IT/userspace-api/media/dvb/headersmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ja_JP/userspace-api/media/dvb/headersmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ko_KR/userspace-api/media/dvb/headersmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/sp_SP/userspace-api/media/dvb/headersmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-laterh]h8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhM/var/lib/git/docbuild/linux/Documentation/userspace-api/media/dvb/headers.rsthKubhsection)}(hhh](htitle)}(hDigital TV uAPI header filesh]hDigital TV uAPI header files}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hDigital TV uAPI headersh]hDigital TV uAPI headers}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(h -*- coding: utf-8; mode: rst -*-h]h -*- coding: utf-8; mode: rst -*-}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhh?/var/lib/git/docbuild/linux/Documentation/output/frontend.h.rsthKubh)}(hhh](h)}(h frontend.hh]h frontend.h}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh literal_block)}(hXU\/\* SPDX-License-Identifier\: LGPL-2.1+ WITH Linux-syscall-note \*\/ \/\* \* frontend.h \* \* Copyright (C) 2000 Marcus Metzler \ \* Ralph Metzler \ \* Holger Waechtler \ \* Andre Draszik \ \* for convergence integrated media GmbH \*\/ \#ifndef \_DVBFRONTEND\_H\_ \#define \_DVBFRONTEND\_H\_ \#include \ \/\*\* \* enum :c:type:`fe_caps` - Frontend capabilities \* \* @FE\_IS\_STUPID\: There's something wrong at the \* frontend, and it can't report its \* capabilities. \* @FE\_CAN\_INVERSION\_AUTO\: Can auto-detect frequency spectral \* band inversion \* @FE\_CAN\_FEC\_1\_2\: Supports FEC 1\/2 \* @FE\_CAN\_FEC\_2\_3\: Supports FEC 2\/3 \* @FE\_CAN\_FEC\_3\_4\: Supports FEC 3\/4 \* @FE\_CAN\_FEC\_4\_5\: Supports FEC 4\/5 \* @FE\_CAN\_FEC\_5\_6\: Supports FEC 5\/6 \* @FE\_CAN\_FEC\_6\_7\: Supports FEC 6\/7 \* @FE\_CAN\_FEC\_7\_8\: Supports FEC 7\/8 \* @FE\_CAN\_FEC\_8\_9\: Supports FEC 8\/9 \* @FE\_CAN\_FEC\_AUTO\: Can auto-detect FEC \* @FE\_CAN\_QPSK\: Supports QPSK modulation \* @FE\_CAN\_QAM\_16\: Supports 16-QAM modulation \* @FE\_CAN\_QAM\_32\: Supports 32-QAM modulation \* @FE\_CAN\_QAM\_64\: Supports 64-QAM modulation \* @FE\_CAN\_QAM\_128\: Supports 128-QAM modulation \* @FE\_CAN\_QAM\_256\: Supports 256-QAM modulation \* @FE\_CAN\_QAM\_AUTO\: Can auto-detect QAM modulation \* @FE\_CAN\_TRANSMISSION\_MODE\_AUTO\: Can auto-detect transmission mode \* @FE\_CAN\_BANDWIDTH\_AUTO\: Can auto-detect bandwidth \* @FE\_CAN\_GUARD\_INTERVAL\_AUTO\: Can auto-detect guard interval \* @FE\_CAN\_HIERARCHY\_AUTO\: Can auto-detect hierarchy \* @FE\_CAN\_8VSB\: Supports 8-VSB modulation \* @FE\_CAN\_16VSB\: Supporta 16-VSB modulation \* @FE\_HAS\_EXTENDED\_CAPS\: Unused \* @FE\_CAN\_MULTISTREAM\: Supports multistream filtering \* @FE\_CAN\_TURBO\_FEC\: Supports "turbo FEC" modulation \* @FE\_CAN\_2G\_MODULATION\: Supports "2nd generation" modulation, \* e. g. DVB-S2, DVB-T2, DVB-C2 \* @FE\_NEEDS\_BENDING\: Unused \* @FE\_CAN\_RECOVER\: Can recover from a cable unplug \* automatically \* @FE\_CAN\_MUTE\_TS\: Can stop spurious TS data output \*\/ enum :c:type:`fe_caps` \{ FE\_IS\_STUPID = 0, FE\_CAN\_INVERSION\_AUTO = 0x1, FE\_CAN\_FEC\_1\_2 = 0x2, FE\_CAN\_FEC\_2\_3 = 0x4, FE\_CAN\_FEC\_3\_4 = 0x8, FE\_CAN\_FEC\_4\_5 = 0x10, FE\_CAN\_FEC\_5\_6 = 0x20, FE\_CAN\_FEC\_6\_7 = 0x40, FE\_CAN\_FEC\_7\_8 = 0x80, FE\_CAN\_FEC\_8\_9 = 0x100, FE\_CAN\_FEC\_AUTO = 0x200, FE\_CAN\_QPSK = 0x400, FE\_CAN\_QAM\_16 = 0x800, FE\_CAN\_QAM\_32 = 0x1000, FE\_CAN\_QAM\_64 = 0x2000, FE\_CAN\_QAM\_128 = 0x4000, FE\_CAN\_QAM\_256 = 0x8000, FE\_CAN\_QAM\_AUTO = 0x10000, FE\_CAN\_TRANSMISSION\_MODE\_AUTO = 0x20000, FE\_CAN\_BANDWIDTH\_AUTO = 0x40000, FE\_CAN\_GUARD\_INTERVAL\_AUTO = 0x80000, FE\_CAN\_HIERARCHY\_AUTO = 0x100000, FE\_CAN\_8VSB = 0x200000, FE\_CAN\_16VSB = 0x400000, FE\_HAS\_EXTENDED\_CAPS = 0x800000, FE\_CAN\_MULTISTREAM = 0x4000000, FE\_CAN\_TURBO\_FEC = 0x8000000, FE\_CAN\_2G\_MODULATION = 0x10000000, FE\_NEEDS\_BENDING = 0x20000000, FE\_CAN\_RECOVER = 0x40000000, FE\_CAN\_MUTE\_TS = 0x80000000 \}; \/\* \* **DEPRECATED**\: Should be kept just due to backward compatibility. \*\/ enum :c:type:`fe_type` \{ \ :ref:`FE_QPSK `\ , \ :ref:`FE_QAM `\ , \ :ref:`FE_OFDM `\ , \ :ref:`FE_ATSC ` \}; \/\*\* \* struct dvb_frontend_info - Frontend properties and capabilities \* \* @name\: Name of the frontend \* @type\: \*\***DEPRECATED**\*\*. \* Should not be used on modern programs, \* as a frontend may have more than one type. \* In order to get the support types of a given \* frontend, use \:c\:type\:\`DTV\_ENUM\_DELSYS\` \* instead. \* @frequency\_min\: Minimal frequency supported by the frontend. \* @frequency\_max\: Minimal frequency supported by the frontend. \* @frequency\_stepsize\: All frequencies are multiple of this value. \* @frequency\_tolerance\: Frequency tolerance. \* @symbol\_rate\_min\: Minimal symbol rate, in bauds \* (for Cable\/Satellite systems). \* @symbol\_rate\_max\: Maximal symbol rate, in bauds \* (for Cable\/Satellite systems). \* @symbol\_rate\_tolerance\: Maximal symbol rate tolerance, in ppm \* (for Cable\/Satellite systems). \* @notifier\_delay\: \*\***DEPRECATED**\*\*. Not used by any driver. \* @caps\: Capabilities supported by the frontend, \* as specified in \&enum fe\_caps. \* \* .. note\: \* \* \#. The frequencies are specified in Hz for Terrestrial and Cable \* systems. \* \#. The frequencies are specified in kHz for Satellite systems. \*\/ struct dvb_frontend_info \{ char name[128]; enum :c:type:`fe_type` type; \/\* **DEPRECATED**. Use \ :ref:`DTV_ENUM_DELSYS ` instead \*\/ \_\_u32 frequency\_min; \_\_u32 frequency\_max; \_\_u32 frequency\_stepsize; \_\_u32 frequency\_tolerance; \_\_u32 symbol\_rate\_min; \_\_u32 symbol\_rate\_max; \_\_u32 symbol\_rate\_tolerance; \_\_u32 notifier\_delay; \/\* **DEPRECATED** \*\/ enum :c:type:`fe_caps` caps; \}; \/\*\* \* struct dvb_diseqc_master_cmd - DiSEqC master command \* \* @msg\: \* DiSEqC message to be sent. It contains a 3 bytes header with\: \* framing + address + command, and an optional argument \* of up to 3 bytes of data. \* @msg\_len\: \* Length of the DiSEqC message. Valid values are 3 to 6. \* \* Check out the DiSEqC bus spec available on http\:\/\/www.eutelsat.org\/ for \* the possible messages that can be used. \*\/ struct dvb_diseqc_master_cmd \{ \_\_u8 msg[6]; \_\_u8 msg\_len; \}; \/\*\* \* struct dvb_diseqc_slave_reply - DiSEqC received data \* \* @msg\: \* DiSEqC message buffer to store a message received via DiSEqC. \* It contains one byte header with\: framing and \* an optional argument of up to 3 bytes of data. \* @msg\_len\: \* Length of the DiSEqC message. Valid values are 0 to 4, \* where 0 means no message. \* @timeout\: \* Return from ioctl after timeout ms with errorcode when \* no message was received. \* \* Check out the DiSEqC bus spec available on http\:\/\/www.eutelsat.org\/ for \* the possible messages that can be used. \*\/ struct dvb_diseqc_slave_reply \{ \_\_u8 msg[4]; \_\_u8 msg\_len; int timeout; \}; \/\*\* \* enum :c:type:`fe_sec_voltage` - DC Voltage used to feed the LNBf \* \* @SEC\_VOLTAGE\_13\: Output 13V to the LNBf \* @SEC\_VOLTAGE\_18\: Output 18V to the LNBf \* @SEC\_VOLTAGE\_OFF\: Don't feed the LNBf with a DC voltage \*\/ enum :c:type:`fe_sec_voltage` \{ SEC\_VOLTAGE\_13, SEC\_VOLTAGE\_18, SEC\_VOLTAGE\_OFF \}; \/\*\* \* enum :c:type:`fe_sec_tone_mode` - Type of tone to be send to the LNBf. \* @SEC\_TONE\_ON\: Sends a 22kHz tone burst to the antenna. \* @SEC\_TONE\_OFF\: Don't send a 22kHz tone to the antenna (except \* if the \`\`FE\_DISEQC\_\*\`\` ioctls are called). \*\/ enum :c:type:`fe_sec_tone_mode` \{ SEC\_TONE\_ON, SEC\_TONE\_OFF \}; \/\*\* \* enum :c:type:`fe_sec_mini_cmd` - Type of mini burst to be sent \* \* @SEC\_MINI\_A\: Sends a mini-DiSEqC 22kHz '0' Tone Burst to select \* satellite-A \* @SEC\_MINI\_B\: Sends a mini-DiSEqC 22kHz '1' Data Burst to select \* satellite-B \*\/ enum :c:type:`fe_sec_mini_cmd` \{ SEC\_MINI\_A, SEC\_MINI\_B \}; \/\*\* \* enum :c:type:`fe_status` - Enumerates the possible frontend status. \* @FE\_NONE\: The frontend doesn't have any kind of lock. \* That's the initial frontend status \* @FE\_HAS\_SIGNAL\: Has found something above the noise level. \* @FE\_HAS\_CARRIER\: Has found a signal. \* @FE\_HAS\_VITERBI\: FEC inner coding (Viterbi, LDPC or other inner code). \* is stable. \* @FE\_HAS\_SYNC\: Synchronization bytes was found. \* @FE\_HAS\_LOCK\: Digital TV were locked and everything is working. \* @FE\_TIMEDOUT\: Fo lock within the last about 2 seconds. \* @FE\_REINIT\: Frontend was reinitialized, application is recommended \* to reset DiSEqC, tone and parameters. \*\/ enum :c:type:`fe_status` \{ FE\_NONE = 0x00, FE\_HAS\_SIGNAL = 0x01, FE\_HAS\_CARRIER = 0x02, FE\_HAS\_VITERBI = 0x04, FE\_HAS\_SYNC = 0x08, FE\_HAS\_LOCK = 0x10, FE\_TIMEDOUT = 0x20, FE\_REINIT = 0x40, \}; \/\*\* \* enum :c:type:`fe_spectral_inversion` - Type of inversion band \* \* @INVERSION\_OFF\: Don't do spectral band inversion. \* @INVERSION\_ON\: Do spectral band inversion. \* @INVERSION\_AUTO\: Autodetect spectral band inversion. \* \* This parameter indicates if spectral inversion should be presumed or \* not. In the automatic setting (\`\`INVERSION\_AUTO\`\`) the hardware will try \* to figure out the correct setting by itself. If the hardware doesn't \* support, the \%dvb\_frontend will try to lock at the carrier first with \* inversion off. If it fails, it will try to enable inversion. \*\/ enum :c:type:`fe_spectral_inversion` \{ INVERSION\_OFF, INVERSION\_ON, INVERSION\_AUTO \}; \/\*\* \* enum :c:type:`fe_code_rate` - Type of Forward Error Correction (FEC) \* \* @FEC\_NONE\: No Forward Error Correction Code \* @FEC\_1\_2\: Forward Error Correction Code 1\/2 \* @FEC\_2\_3\: Forward Error Correction Code 2\/3 \* @FEC\_3\_4\: Forward Error Correction Code 3\/4 \* @FEC\_4\_5\: Forward Error Correction Code 4\/5 \* @FEC\_5\_6\: Forward Error Correction Code 5\/6 \* @FEC\_6\_7\: Forward Error Correction Code 6\/7 \* @FEC\_7\_8\: Forward Error Correction Code 7\/8 \* @FEC\_8\_9\: Forward Error Correction Code 8\/9 \* @FEC\_AUTO\: Autodetect Error Correction Code \* @FEC\_3\_5\: Forward Error Correction Code 3\/5 \* @FEC\_9\_10\: Forward Error Correction Code 9\/10 \* @FEC\_2\_5\: Forward Error Correction Code 2\/5 \* @FEC\_1\_3\: Forward Error Correction Code 1\/3 \* @FEC\_1\_4\: Forward Error Correction Code 1\/4 \* @FEC\_5\_9\: Forward Error Correction Code 5\/9 \* @FEC\_7\_9\: Forward Error Correction Code 7\/9 \* @FEC\_8\_15\: Forward Error Correction Code 8\/15 \* @FEC\_11\_15\: Forward Error Correction Code 11\/15 \* @FEC\_13\_18\: Forward Error Correction Code 13\/18 \* @FEC\_9\_20\: Forward Error Correction Code 9\/20 \* @FEC\_11\_20\: Forward Error Correction Code 11\/20 \* @FEC\_23\_36\: Forward Error Correction Code 23\/36 \* @FEC\_25\_36\: Forward Error Correction Code 25\/36 \* @FEC\_13\_45\: Forward Error Correction Code 13\/45 \* @FEC\_26\_45\: Forward Error Correction Code 26\/45 \* @FEC\_28\_45\: Forward Error Correction Code 28\/45 \* @FEC\_32\_45\: Forward Error Correction Code 32\/45 \* @FEC\_77\_90\: Forward Error Correction Code 77\/90 \* @FEC\_11\_45\: Forward Error Correction Code 11\/45 \* @FEC\_4\_15\: Forward Error Correction Code 4\/15 \* @FEC\_14\_45\: Forward Error Correction Code 14\/45 \* @FEC\_7\_15\: Forward Error Correction Code 7\/15 \* \* Please note that not all FEC types are supported by a given standard. \*\/ enum :c:type:`fe_code_rate` \{ FEC\_NONE = 0, FEC\_1\_2, FEC\_2\_3, FEC\_3\_4, FEC\_4\_5, FEC\_5\_6, FEC\_6\_7, FEC\_7\_8, FEC\_8\_9, FEC\_AUTO, FEC\_3\_5, FEC\_9\_10, FEC\_2\_5, FEC\_1\_3, FEC\_1\_4, FEC\_5\_9, FEC\_7\_9, FEC\_8\_15, FEC\_11\_15, FEC\_13\_18, FEC\_9\_20, FEC\_11\_20, FEC\_23\_36, FEC\_25\_36, FEC\_13\_45, FEC\_26\_45, FEC\_28\_45, FEC\_32\_45, FEC\_77\_90, FEC\_11\_45, FEC\_4\_15, FEC\_14\_45, FEC\_7\_15, \}; \/\*\* \* enum :c:type:`fe_modulation` - Type of modulation\/constellation \* @QPSK\: QPSK modulation \* @QAM\_16\: 16-QAM modulation \* @QAM\_32\: 32-QAM modulation \* @QAM\_64\: 64-QAM modulation \* @QAM\_128\: 128-QAM modulation \* @QAM\_256\: 256-QAM modulation \* @QAM\_AUTO\: Autodetect QAM modulation \* @VSB\_8\: 8-VSB modulation \* @VSB\_16\: 16-VSB modulation \* @PSK\_8\: 8-PSK modulation \* @APSK\_16\: 16-APSK modulation \* @APSK\_32\: 32-APSK modulation \* @DQPSK\: DQPSK modulation \* @QAM\_4\_NR\: 4-QAM-NR modulation \* @QAM\_1024\: 1024-QAM modulation \* @QAM\_4096\: 4096-QAM modulation \* @APSK\_8\_L\: 8APSK-L modulation \* @APSK\_16\_L\: 16APSK-L modulation \* @APSK\_32\_L\: 32APSK-L modulation \* @APSK\_64\: 64APSK modulation \* @APSK\_64\_L\: 64APSK-L modulation \* \* Please note that not all modulations are supported by a given standard. \* \*\/ enum :c:type:`fe_modulation` \{ QPSK, QAM\_16, QAM\_32, QAM\_64, QAM\_128, QAM\_256, QAM\_AUTO, VSB\_8, VSB\_16, PSK\_8, APSK\_16, APSK\_32, DQPSK, QAM\_4\_NR, QAM\_1024, QAM\_4096, APSK\_8\_L, APSK\_16\_L, APSK\_32\_L, APSK\_64, APSK\_64\_L, \}; \/\*\* \* enum :c:type:`fe_transmit_mode` - Transmission mode \* \* @TRANSMISSION\_MODE\_AUTO\: \* Autodetect transmission mode. The hardware will try to find the \* correct FFT-size (if capable) to fill in the missing parameters. \* @TRANSMISSION\_MODE\_1K\: \* Transmission mode 1K \* @TRANSMISSION\_MODE\_2K\: \* Transmission mode 2K \* @TRANSMISSION\_MODE\_8K\: \* Transmission mode 8K \* @TRANSMISSION\_MODE\_4K\: \* Transmission mode 4K \* @TRANSMISSION\_MODE\_16K\: \* Transmission mode 16K \* @TRANSMISSION\_MODE\_32K\: \* Transmission mode 32K \* @TRANSMISSION\_MODE\_C1\: \* Single Carrier (C=1) transmission mode (DTMB only) \* @TRANSMISSION\_MODE\_C3780\: \* Multi Carrier (C=3780) transmission mode (DTMB only) \* \* Please note that not all transmission modes are supported by a given \* standard. \*\/ enum :c:type:`fe_transmit_mode` \{ TRANSMISSION\_MODE\_2K, TRANSMISSION\_MODE\_8K, TRANSMISSION\_MODE\_AUTO, TRANSMISSION\_MODE\_4K, TRANSMISSION\_MODE\_1K, TRANSMISSION\_MODE\_16K, TRANSMISSION\_MODE\_32K, TRANSMISSION\_MODE\_C1, TRANSMISSION\_MODE\_C3780, \}; \/\*\* \* enum :c:type:`fe_guard_interval` - Guard interval \* \* @GUARD\_INTERVAL\_AUTO\: Autodetect the guard interval \* @GUARD\_INTERVAL\_1\_128\: Guard interval 1\/128 \* @GUARD\_INTERVAL\_1\_32\: Guard interval 1\/32 \* @GUARD\_INTERVAL\_1\_16\: Guard interval 1\/16 \* @GUARD\_INTERVAL\_1\_8\: Guard interval 1\/8 \* @GUARD\_INTERVAL\_1\_4\: Guard interval 1\/4 \* @GUARD\_INTERVAL\_19\_128\: Guard interval 19\/128 \* @GUARD\_INTERVAL\_19\_256\: Guard interval 19\/256 \* @GUARD\_INTERVAL\_PN420\: PN length 420 (1\/4) \* @GUARD\_INTERVAL\_PN595\: PN length 595 (1\/6) \* @GUARD\_INTERVAL\_PN945\: PN length 945 (1\/9) \* @GUARD\_INTERVAL\_1\_64\: Guard interval 1\/64 \* \* Please note that not all guard intervals are supported by a given standard. \*\/ enum :c:type:`fe_guard_interval` \{ GUARD\_INTERVAL\_1\_32, GUARD\_INTERVAL\_1\_16, GUARD\_INTERVAL\_1\_8, GUARD\_INTERVAL\_1\_4, GUARD\_INTERVAL\_AUTO, GUARD\_INTERVAL\_1\_128, GUARD\_INTERVAL\_19\_128, GUARD\_INTERVAL\_19\_256, GUARD\_INTERVAL\_PN420, GUARD\_INTERVAL\_PN595, GUARD\_INTERVAL\_PN945, GUARD\_INTERVAL\_1\_64, \}; \/\*\* \* enum :c:type:`fe_hierarchy` - Hierarchy \* @HIERARCHY\_NONE\: No hierarchy \* @HIERARCHY\_AUTO\: Autodetect hierarchy (if supported) \* @HIERARCHY\_1\: Hierarchy 1 \* @HIERARCHY\_2\: Hierarchy 2 \* @HIERARCHY\_4\: Hierarchy 4 \* \* Please note that not all hierarchy types are supported by a given standard. \*\/ enum :c:type:`fe_hierarchy` \{ HIERARCHY\_NONE, HIERARCHY\_1, HIERARCHY\_2, HIERARCHY\_4, HIERARCHY\_AUTO \}; \/\*\* \* enum :c:type:`fe_interleaving` - Interleaving \* @INTERLEAVING\_NONE\: No interleaving. \* @INTERLEAVING\_AUTO\: Auto-detect interleaving. \* @INTERLEAVING\_240\: Interleaving of 240 symbols. \* @INTERLEAVING\_720\: Interleaving of 720 symbols. \* \* Please note that, currently, only DTMB uses it. \*\/ enum :c:type:`fe_interleaving` \{ INTERLEAVING\_NONE, INTERLEAVING\_AUTO, INTERLEAVING\_240, INTERLEAVING\_720, \}; \/\* DVBv5 property Commands \*\/ \#define \ :ref:`DTV_UNDEFINED ` 0 \#define \ :ref:`DTV_TUNE ` 1 \#define \ :ref:`DTV_CLEAR ` 2 \#define \ :ref:`DTV_FREQUENCY ` 3 \#define \ :ref:`DTV_MODULATION ` 4 \#define \ :ref:`DTV_BANDWIDTH_HZ ` 5 \#define \ :ref:`DTV_INVERSION ` 6 \#define \ :ref:`DTV_DISEQC_MASTER ` 7 \#define \ :ref:`DTV_SYMBOL_RATE ` 8 \#define \ :ref:`DTV_INNER_FEC ` 9 \#define \ :ref:`DTV_VOLTAGE ` 10 \#define \ :ref:`DTV_TONE ` 11 \#define \ :ref:`DTV_PILOT ` 12 \#define \ :ref:`DTV_ROLLOFF ` 13 \#define \ :ref:`DTV_DISEQC_SLAVE_REPLY ` 14 \/\* Basic enumeration set for querying unlimited capabilities \*\/ \#define \ :ref:`DTV_FE_CAPABILITY_COUNT ` 15 \#define \ :ref:`DTV_FE_CAPABILITY ` 16 \#define \ :ref:`DTV_DELIVERY_SYSTEM ` 17 \/\* ISDB-T and ISDB-Tsb \*\/ \#define \ :ref:`DTV_ISDBT_PARTIAL_RECEPTION ` 18 \#define \ :ref:`DTV_ISDBT_SOUND_BROADCASTING ` 19 \#define \ :ref:`DTV_ISDBT_SB_SUBCHANNEL_ID ` 20 \#define \ :ref:`DTV_ISDBT_SB_SEGMENT_IDX ` 21 \#define \ :ref:`DTV_ISDBT_SB_SEGMENT_COUNT ` 22 \#define :ref:`DTV_ISDBT_LAYERA_FEC ` 23 \#define :ref:`DTV_ISDBT_LAYERA_MODULATION ` 24 \#define :ref:`DTV_ISDBT_LAYERA_SEGMENT_COUNT ` 25 \#define :ref:`DTV_ISDBT_LAYERA_TIME_INTERLEAVING ` 26 \#define :ref:`DTV_ISDBT_LAYERB_FEC ` 27 \#define :ref:`DTV_ISDBT_LAYERB_MODULATION ` 28 \#define :ref:`DTV_ISDBT_LAYERB_SEGMENT_COUNT ` 29 \#define :ref:`DTV_ISDBT_LAYERB_TIME_INTERLEAVING ` 30 \#define :ref:`DTV_ISDBT_LAYERC_FEC ` 31 \#define :ref:`DTV_ISDBT_LAYERC_MODULATION ` 32 \#define :ref:`DTV_ISDBT_LAYERC_SEGMENT_COUNT ` 33 \#define :ref:`DTV_ISDBT_LAYERC_TIME_INTERLEAVING ` 34 \#define \ :ref:`DTV_API_VERSION ` 35 \#define \ :ref:`DTV_CODE_RATE_HP ` 36 \#define \ :ref:`DTV_CODE_RATE_LP ` 37 \#define \ :ref:`DTV_GUARD_INTERVAL ` 38 \#define \ :ref:`DTV_TRANSMISSION_MODE ` 39 \#define \ :ref:`DTV_HIERARCHY ` 40 \#define \ :ref:`DTV_ISDBT_LAYER_ENABLED ` 41 \#define \ :ref:`DTV_STREAM_ID ` 42 \#define DTV\_ISDBS\_TS\_ID\_LEGACY \ :ref:`DTV_STREAM_ID ` \#define \ :ref:`DTV_DVBT2_PLP_ID_LEGACY ` 43 \#define \ :ref:`DTV_ENUM_DELSYS ` 44 \/\* ATSC-MH \*\/ \#define \ :ref:`DTV_ATSCMH_FIC_VER ` 45 \#define \ :ref:`DTV_ATSCMH_PARADE_ID ` 46 \#define \ :ref:`DTV_ATSCMH_NOG ` 47 \#define \ :ref:`DTV_ATSCMH_TNOG ` 48 \#define \ :ref:`DTV_ATSCMH_SGN ` 49 \#define \ :ref:`DTV_ATSCMH_PRC ` 50 \#define \ :ref:`DTV_ATSCMH_RS_FRAME_MODE ` 51 \#define \ :ref:`DTV_ATSCMH_RS_FRAME_ENSEMBLE ` 52 \#define \ :ref:`DTV_ATSCMH_RS_CODE_MODE_PRI ` 53 \#define \ :ref:`DTV_ATSCMH_RS_CODE_MODE_SEC ` 54 \#define \ :ref:`DTV_ATSCMH_SCCC_BLOCK_MODE ` 55 \#define \ :ref:`DTV_ATSCMH_SCCC_CODE_MODE_A ` 56 \#define \ :ref:`DTV_ATSCMH_SCCC_CODE_MODE_B ` 57 \#define \ :ref:`DTV_ATSCMH_SCCC_CODE_MODE_C ` 58 \#define \ :ref:`DTV_ATSCMH_SCCC_CODE_MODE_D ` 59 \#define \ :ref:`DTV_INTERLEAVING ` 60 \#define \ :ref:`DTV_LNA ` 61 \/\* Quality parameters \*\/ \#define \ :ref:`DTV_STAT_SIGNAL_STRENGTH ` 62 \#define \ :ref:`DTV_STAT_CNR ` 63 \#define \ :ref:`DTV_STAT_PRE_ERROR_BIT_COUNT ` 64 \#define \ :ref:`DTV_STAT_PRE_TOTAL_BIT_COUNT ` 65 \#define \ :ref:`DTV_STAT_POST_ERROR_BIT_COUNT ` 66 \#define \ :ref:`DTV_STAT_POST_TOTAL_BIT_COUNT ` 67 \#define \ :ref:`DTV_STAT_ERROR_BLOCK_COUNT ` 68 \#define \ :ref:`DTV_STAT_TOTAL_BLOCK_COUNT ` 69 \/\* Physical layer scrambling \*\/ \#define \ :ref:`DTV_SCRAMBLING_SEQUENCE_INDEX ` 70 \#define DTV\_MAX\_COMMAND \ :ref:`DTV_SCRAMBLING_SEQUENCE_INDEX ` \/\*\* \* enum :c:type:`fe_pilot` - Type of pilot tone \* \* @PILOT\_ON\: Pilot tones enabled \* @PILOT\_OFF\: Pilot tones disabled \* @PILOT\_AUTO\: Autodetect pilot tones \*\/ enum :c:type:`fe_pilot` \{ PILOT\_ON, PILOT\_OFF, PILOT\_AUTO, \}; \/\*\* \* enum :c:type:`fe_rolloff` - Rolloff factor \* @ROLLOFF\_35\: Roloff factor\: α=35\% \* @ROLLOFF\_20\: Roloff factor\: α=20\% \* @ROLLOFF\_25\: Roloff factor\: α=25\% \* @ROLLOFF\_AUTO\: Auto-detect the roloff factor. \* @ROLLOFF\_15\: Rolloff factor\: α=15\% \* @ROLLOFF\_10\: Rolloff factor\: α=10\% \* @ROLLOFF\_5\: Rolloff factor\: α=5\% \* \* .. note\: \* \* Roloff factor of 35\% is implied on DVB-S. On DVB-S2, it is default. \*\/ enum :c:type:`fe_rolloff` \{ ROLLOFF\_35, ROLLOFF\_20, ROLLOFF\_25, ROLLOFF\_AUTO, ROLLOFF\_15, ROLLOFF\_10, ROLLOFF\_5, \}; \/\*\* \* enum :c:type:`fe_delivery_system` - Type of the delivery system \* \* @SYS\_UNDEFINED\: \* Undefined standard. Generally, indicates an error \* @SYS\_DVBC\_ANNEX\_A\: \* Cable TV\: DVB-C following ITU-T J.83 Annex A spec \* @SYS\_DVBC\_ANNEX\_B\: \* Cable TV\: DVB-C following ITU-T J.83 Annex B spec (ClearQAM) \* @SYS\_DVBC\_ANNEX\_C\: \* Cable TV\: DVB-C following ITU-T J.83 Annex C spec \* @SYS\_DVBC2\: \* Cable TV\: DVB-C2 \* @SYS\_ISDBC\: \* Cable TV\: ISDB-C (no drivers yet) \* @SYS\_DVBT\: \* Terrestrial TV\: DVB-T \* @SYS\_DVBT2\: \* Terrestrial TV\: DVB-T2 \* @SYS\_ISDBT\: \* Terrestrial TV\: ISDB-T \* @SYS\_ATSC\: \* Terrestrial TV\: ATSC \* @SYS\_ATSCMH\: \* Terrestrial TV (mobile)\: ATSC-M\/H \* @SYS\_DTMB\: \* Terrestrial TV\: DTMB \* @SYS\_DVBS\: \* Satellite TV\: DVB-S \* @SYS\_DVBS2\: \* Satellite TV\: DVB-S2 and DVB-S2X \* @SYS\_TURBO\: \* Satellite TV\: DVB-S Turbo \* @SYS\_ISDBS\: \* Satellite TV\: ISDB-S \* @SYS\_DAB\: \* Digital audio\: DAB (not fully supported) \* @SYS\_DSS\: \* Satellite TV\: DSS (not fully supported) \* @SYS\_CMMB\: \* Terrestrial TV (mobile)\: CMMB (not fully supported) \* @SYS\_DVBH\: \* Terrestrial TV (mobile)\: DVB-H (standard deprecated) \*\/ enum :c:type:`fe_delivery_system` \{ SYS\_UNDEFINED, SYS\_DVBC\_ANNEX\_A, SYS\_DVBC\_ANNEX\_B, SYS\_DVBT, SYS\_DSS, SYS\_DVBS, SYS\_DVBS2, SYS\_DVBH, SYS\_ISDBT, SYS\_ISDBS, SYS\_ISDBC, SYS\_ATSC, SYS\_ATSCMH, SYS\_DTMB, SYS\_CMMB, SYS\_DAB, SYS\_DVBT2, SYS\_TURBO, SYS\_DVBC\_ANNEX\_C, SYS\_DVBC2, \}; \/\* backward compatibility definitions for delivery systems \*\/ \#define SYS\_DVBC\_ANNEX\_AC SYS\_DVBC\_ANNEX\_A \#define SYS\_DMBTH SYS\_DTMB \/\* DMB-TH is legacy name, use DTMB \*\/ \/\* ATSC-MH specific parameters \*\/ \/\*\* \* enum :c:type:`atscmh_sccc_block_mode` - Type of Series Concatenated Convolutional \* Code Block Mode. \* \* @ATSCMH\_SCCC\_BLK\_SEP\: \* Separate SCCC\: the SCCC outer code mode shall be set independently \* for each Group Region (A, B, C, D) \* @ATSCMH\_SCCC\_BLK\_COMB\: \* Combined SCCC\: all four Regions shall have the same SCCC outer \* code mode. \* @ATSCMH\_SCCC\_BLK\_RES\: \* Reserved. Shouldn't be used. \*\/ enum :c:type:`atscmh_sccc_block_mode` \{ ATSCMH\_SCCC\_BLK\_SEP = 0, ATSCMH\_SCCC\_BLK\_COMB = 1, ATSCMH\_SCCC\_BLK\_RES = 2, \}; \/\*\* \* enum :c:type:`atscmh_sccc_code_mode` - Type of Series Concatenated Convolutional \* Code Rate. \* \* @ATSCMH\_SCCC\_CODE\_HLF\: \* The outer code rate of a SCCC Block is 1\/2 rate. \* @ATSCMH\_SCCC\_CODE\_QTR\: \* The outer code rate of a SCCC Block is 1\/4 rate. \* @ATSCMH\_SCCC\_CODE\_RES\: \* Reserved. Should not be used. \*\/ enum :c:type:`atscmh_sccc_code_mode` \{ ATSCMH\_SCCC\_CODE\_HLF = 0, ATSCMH\_SCCC\_CODE\_QTR = 1, ATSCMH\_SCCC\_CODE\_RES = 2, \}; \/\*\* \* enum :c:type:`atscmh_rs_frame_ensemble` - Reed Solomon(RS) frame ensemble. \* \* @ATSCMH\_RSFRAME\_ENS\_PRI\: Primary Ensemble. \* @ATSCMH\_RSFRAME\_ENS\_SEC\: Secondary Ensemble. \*\/ enum :c:type:`atscmh_rs_frame_ensemble` \{ ATSCMH\_RSFRAME\_ENS\_PRI = 0, ATSCMH\_RSFRAME\_ENS\_SEC = 1, \}; \/\*\* \* enum :c:type:`atscmh_rs_frame_mode` - Reed Solomon (RS) frame mode. \* \* @ATSCMH\_RSFRAME\_PRI\_ONLY\: \* Single Frame\: There is only a primary RS Frame for all Group \* Regions. \* @ATSCMH\_RSFRAME\_PRI\_SEC\: \* Dual Frame\: There are two separate RS Frames\: Primary RS Frame for \* Group Region A and B and Secondary RS Frame for Group Region C and \* D. \* @ATSCMH\_RSFRAME\_RES\: \* Reserved. Shouldn't be used. \*\/ enum :c:type:`atscmh_rs_frame_mode` \{ ATSCMH\_RSFRAME\_PRI\_ONLY = 0, ATSCMH\_RSFRAME\_PRI\_SEC = 1, ATSCMH\_RSFRAME\_RES = 2, \}; \/\*\* \* enum :c:type:`atscmh_rs_code_mode` - ATSC-M\/H Reed Solomon modes \* @ATSCMH\_RSCODE\_211\_187\: Reed Solomon code (211,187). \* @ATSCMH\_RSCODE\_223\_187\: Reed Solomon code (223,187). \* @ATSCMH\_RSCODE\_235\_187\: Reed Solomon code (235,187). \* @ATSCMH\_RSCODE\_RES\: Reserved. Shouldn't be used. \*\/ enum :c:type:`atscmh_rs_code_mode` \{ ATSCMH\_RSCODE\_211\_187 = 0, ATSCMH\_RSCODE\_223\_187 = 1, ATSCMH\_RSCODE\_235\_187 = 2, ATSCMH\_RSCODE\_RES = 3, \}; \#define :ref:`NO_STREAM_ID_FILTER ` (\~0U) \#define :ref:`LNA_AUTO ` (\~0U) \/\*\* \* enum :c:type:`fecap_scale_params` - scale types for the quality parameters. \* \* @FE\_SCALE\_NOT\_AVAILABLE\: That QoS measure is not available. That \* could indicate a temporary or a permanent \* condition. \* @FE\_SCALE\_DECIBEL\: The scale is measured in 0.001 dB steps, typically \* used on signal measures. \* @FE\_SCALE\_RELATIVE\: The scale is a relative percentual measure, \* ranging from 0 (0\%) to 0xffff (100\%). \* @FE\_SCALE\_COUNTER\: The scale counts the occurrence of an event, like \* bit error, block error, lapsed time. \*\/ enum :c:type:`fecap_scale_params` \{ FE\_SCALE\_NOT\_AVAILABLE = 0, FE\_SCALE\_DECIBEL, FE\_SCALE\_RELATIVE, FE\_SCALE\_COUNTER \}; \/\*\* \* struct dtv_stats - Used for reading a DTV status property \* \* @scale\: \* Filled with enum :c:type:`fecap_scale_params` - the scale in usage \* for that parameter \* \* @svalue\: \* integer value of the measure, for \%FE\_SCALE\_DECIBEL, \* used for dB measures. The unit is 0.001 dB. \* \* @uvalue\: \* unsigned integer value of the measure, used when @scale is \* either \%FE\_SCALE\_RELATIVE or \%FE\_SCALE\_COUNTER. \* \* For most delivery systems, this will return a single value for each \* parameter. \* \* It should be noticed, however, that new OFDM delivery systems like \* ISDB can use different modulation types for each group of carriers. \* On such standards, up to 8 groups of statistics can be provided, one \* for each carrier group (called "layer" on ISDB). \* \* In order to be consistent with other delivery systems, the first \* value refers to the entire set of carriers ("global"). \* \* @scale should use the value \%FE\_SCALE\_NOT\_AVAILABLE when \* the value for the entire group of carriers or from one specific layer \* is not provided by the hardware. \* \* @len should be filled with the latest filled status + 1. \* \* In other words, for ISDB, those values should be filled like\:\: \* \* u.st.stat.svalue[0] = global statistics; \* u.st.stat.scale[0] = FE\_SCALE\_DECIBEL; \* u.st.stat.value[1] = layer A statistics; \* u.st.stat.scale[1] = FE\_SCALE\_NOT\_AVAILABLE (if not available); \* u.st.stat.svalue[2] = layer B statistics; \* u.st.stat.scale[2] = FE\_SCALE\_DECIBEL; \* u.st.stat.svalue[3] = layer C statistics; \* u.st.stat.scale[3] = FE\_SCALE\_DECIBEL; \* u.st.len = 4; \*\/ struct dtv_stats \{ \_\_u8 scale; \/\* enum :c:type:`fecap_scale_params` type \*\/ union \{ \_\_u64 uvalue; \/\* for counters and relative scales \*\/ \_\_s64 svalue; \/\* for 0.001 dB measures \*\/ \} \_\_attribute\_\_ ((packed)); \} \_\_attribute\_\_ ((packed)); \#define MAX\_DTV\_STATS 4 \/\*\* \* struct dtv_fe_stats - store Digital TV frontend statistics \* \* @len\: length of the statistics - if zero, stats is disabled. \* @stat\: array with digital TV statistics. \* \* On most standards, @len can either be 0 or 1. However, for ISDB, each \* layer is modulated in separate. So, each layer may have its own set \* of statistics. If so, stat[0] carries on a global value for the property. \* Indexes 1 to 3 means layer A to B. \*\/ struct dtv_fe_stats \{ \_\_u8 len; struct dtv_stats stat[MAX\_DTV\_STATS]; \} \_\_attribute\_\_ ((packed)); \/\*\* \* struct dtv_property - store one of frontend command and its value \* \* @cmd\: Digital TV command. \* @reserved\: Not used. \* @u\: Union with the values for the command. \* @u.data\: A unsigned 32 bits integer with command value. \* @u.buffer\: Struct to store bigger properties. \* Currently unused. \* @u.buffer.data\: an unsigned 32-bits array. \* @u.buffer.len\: number of elements of the buffer. \* @u.buffer.reserved1\: Reserved. \* @u.buffer.reserved2\: Reserved. \* @u.st\: a \&struct dtv_fe_stats array of statistics. \* @result\: Currently unused. \* \*\/ struct dtv_property \{ \_\_u32 cmd; \_\_u32 reserved[3]; union \{ \_\_u32 data; struct dtv_fe_stats st; struct \{ \_\_u8 data[32]; \_\_u32 len; \_\_u32 reserved1[3]; void \*reserved2; \} buffer; \} u; int result; \} \_\_attribute\_\_ ((packed)); \/\* num of properties cannot exceed DTV\_IOCTL\_MAX\_MSGS per ioctl \*\/ \#define DTV\_IOCTL\_MAX\_MSGS 64 \/\*\* \* struct dtv_properties - a set of command\/value pairs. \* \* @num\: amount of commands stored at the struct. \* @props\: a pointer to \&struct dtv\_property. \*\/ struct dtv_properties \{ \_\_u32 num; struct dtv_property \*props; \}; \/\* \* When set, this flag will disable any zigzagging or other "normal" tuning \* behavior. Additionally, there will be no automatic monitoring of the lock \* status, and hence no frontend events will be generated. If a frontend device \* is closed, this flag will be automatically turned off when the device is \* reopened read-write. \*\/ \#define :c:func:`FE_TUNE_MODE_ONESHOT ` 0x01 \/\* Digital TV Frontend API calls \*\/ \#define \ :ref:`FE_GET_INFO ` \_IOR('o', 61, struct dvb_frontend_info\ ) \#define \ :ref:`FE_DISEQC_RESET_OVERLOAD ` \_IO('o', 62) \#define \ :ref:`FE_DISEQC_SEND_MASTER_CMD ` \_IOW('o', 63, struct dvb_diseqc_master_cmd\ ) \#define \ :ref:`FE_DISEQC_RECV_SLAVE_REPLY ` \_IOR('o', 64, struct dvb_diseqc_slave_reply\ ) \#define \ :ref:`FE_DISEQC_SEND_BURST ` \_IO('o', 65) \/\* \ :c:type:`fe_sec_mini_cmd_t ` \*\/ \#define \ :ref:`FE_SET_TONE ` \_IO('o', 66) \/\* \ :c:type:`fe_sec_tone_mode_t ` \*\/ \#define \ :ref:`FE_SET_VOLTAGE ` \_IO('o', 67) \/\* :c:type:`fe_sec_voltage_t ` \*\/ \#define \ :ref:`FE_ENABLE_HIGH_LNB_VOLTAGE ` \_IO('o', 68) \/\* int \*\/ \#define \ :ref:`FE_READ_STATUS ` \_IOR('o', 69, \ :c:type:`fe_status_t `\ ) \#define \ :ref:`FE_READ_BER ` \_IOR('o', 70, \_\_u32) \#define \ :ref:`FE_READ_SIGNAL_STRENGTH ` \_IOR('o', 71, \_\_u16) \#define \ :ref:`FE_READ_SNR ` \_IOR('o', 72, \_\_u16) \#define \ :ref:`FE_READ_UNCORRECTED_BLOCKS ` \_IOR('o', 73, \_\_u32) \#define \ :ref:`FE_SET_FRONTEND_TUNE_MODE ` \_IO('o', 81) \/\* unsigned int \*\/ \#define \ :ref:`FE_GET_EVENT ` \_IOR('o', 78, struct dvb_frontend_event\ ) \#define \ :ref:`FE_DISHNETWORK_SEND_LEGACY_CMD ` \_IO('o', 80) \/\* unsigned int \*\/ \#define :c:type:`FE_SET_PROPERTY ` \_IOW('o', 82, struct dtv_properties\ ) \#define \ :ref:`FE_GET_PROPERTY ` \_IOR('o', 83, struct dtv_properties\ ) \#if defined(\_\_DVB\_CORE\_\_) \|\| !defined(\_\_KERNEL\_\_) \/\* \* **DEPRECATED**\: Everything below is deprecated in favor of DVBv5 API \* \* The DVBv3 only ioctls, structs and enums should not be used on \* newer programs, as it doesn't support the second generation of \* digital TV standards, nor supports newer delivery systems. \* They also don't support modern frontends with usually support multiple \* delivery systems. \* \* Drivers shouldn't use them. \* \* New applications should use DVBv5 delivery system instead \*\/ \/\* \*\/ enum :c:type:`fe_bandwidth` \{ \ :ref:`BANDWIDTH_8_MHZ `\ , \ :ref:`BANDWIDTH_7_MHZ `\ , \ :ref:`BANDWIDTH_6_MHZ `\ , \ :ref:`BANDWIDTH_AUTO `\ , \ :ref:`BANDWIDTH_5_MHZ `\ , \ :ref:`BANDWIDTH_10_MHZ `\ , \ :ref:`BANDWIDTH_1_712_MHZ `\ , \}; \/\* This is kept for legacy userspace support \*\/ typedef enum :c:type:`fe_sec_voltage` :c:type:`fe_sec_voltage_t `; typedef enum :c:type:`fe_caps` \ :c:type:`fe_caps_t `\ ; typedef enum :c:type:`fe_type` \ :c:type:`fe_type_t `\ ; typedef enum :c:type:`fe_sec_tone_mode` \ :c:type:`fe_sec_tone_mode_t `\ ; typedef enum :c:type:`fe_sec_mini_cmd` \ :c:type:`fe_sec_mini_cmd_t `\ ; typedef enum :c:type:`fe_status` \ :c:type:`fe_status_t `\ ; typedef enum :c:type:`fe_spectral_inversion` \ :c:type:`fe_spectral_inversion_t `\ ; typedef enum :c:type:`fe_code_rate` \ :c:type:`fe_code_rate_t `\ ; typedef enum :c:type:`fe_modulation` \ :c:type:`fe_modulation_t `\ ; typedef enum :c:type:`fe_transmit_mode` \ :c:type:`fe_transmit_mode_t `\ ; typedef enum :c:type:`fe_bandwidth` \ :c:type:`fe_bandwidth_t `\ ; typedef enum :c:type:`fe_guard_interval` \ :c:type:`fe_guard_interval_t `\ ; typedef enum :c:type:`fe_hierarchy` \ :c:type:`fe_hierarchy_t `\ ; typedef enum :c:type:`fe_pilot` \ :c:type:`fe_pilot_t `\ ; typedef enum :c:type:`fe_rolloff` \ :c:type:`fe_rolloff_t `\ ; typedef enum :c:type:`fe_delivery_system` \ :c:type:`fe_delivery_system_t `\ ; \/\* DVBv3 structs \*\/ struct dvb_qpsk_parameters \{ \_\_u32 symbol\_rate; \/\* symbol rate in Symbols per second \*\/ \ :c:type:`fe_code_rate_t ` fec\_inner; \/\* forward error correction (see above) \*\/ \}; struct dvb_qam_parameters \{ \_\_u32 symbol\_rate; \/\* symbol rate in Symbols per second \*\/ \ :c:type:`fe_code_rate_t ` fec\_inner; \/\* forward error correction (see above) \*\/ \ :c:type:`fe_modulation_t ` modulation; \/\* modulation type (see above) \*\/ \}; struct dvb_vsb_parameters \{ \ :c:type:`fe_modulation_t ` modulation; \/\* modulation type (see above) \*\/ \}; struct dvb_ofdm_parameters \{ \ :c:type:`fe_bandwidth_t ` bandwidth; \ :c:type:`fe_code_rate_t ` code\_rate\_HP; \/\* high priority stream code rate \*\/ \ :c:type:`fe_code_rate_t ` code\_rate\_LP; \/\* low priority stream code rate \*\/ \ :c:type:`fe_modulation_t ` constellation; \/\* modulation type (see above) \*\/ \ :c:type:`fe_transmit_mode_t ` transmission\_mode; \ :c:type:`fe_guard_interval_t ` guard\_interval; \ :c:type:`fe_hierarchy_t ` hierarchy\_information; \}; struct dvb_frontend_parameters \{ \_\_u32 frequency; \/\* (absolute) frequency in Hz for DVB-C\/DVB-T\/ATSC \*\/ \/\* intermediate frequency in kHz for DVB-S \*\/ \ :c:type:`fe_spectral_inversion_t ` inversion; union \{ struct dvb_qpsk_parameters qpsk; \/\* DVB-S \*\/ struct dvb_qam_parameters qam; \/\* DVB-C \*\/ struct dvb_ofdm_parameters ofdm; \/\* DVB-T \*\/ struct dvb_vsb_parameters vsb; \/\* ATSC \*\/ \} u; \}; struct dvb_frontend_event \{ \ :c:type:`fe_status_t ` status; struct dvb_frontend_parameters parameters; \}; \/\* DVBv3 API calls \*\/ \#define \ :ref:`FE_SET_FRONTEND ` \_IOW('o', 76, struct dvb_frontend_parameters\ ) \#define \ :ref:`FE_GET_FRONTEND ` \_IOR('o', 77, struct dvb_frontend_parameters\ ) \#endif \#endif \/\*\_DVBFRONTEND\_H\_\*\/h](h/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ /* * frontend.h * * Copyright (C) 2000 Marcus Metzler <}hhsbh reference)}(hmarcus@convergence.de\h]hmarcus@convergence.de}hjsbah}(h]h ]h"]h$]h&]refurimailto:marcus@convergence.deuh1jhhubh(> * Ralph Metzler <}hhsbj)}(hralph@convergence.de\h]hralph@convergence.de}hjsbah}(h]h ]h"]h$]h&]refurimailto:ralph@convergence.deuh1jhhubh*> * Holger Waechtler <}hhsbj)}(hholger@convergence.de\h]hholger@convergence.de}hj.sbah}(h]h ]h"]h$]h&]refurimailto:holger@convergence.deuh1jhhubh'> * Andre Draszik <}hhsbj)}(had@convergence.de\h]had@convergence.de}hjBsbah}(h]h ]h"]h$]h&]refurimailto:ad@convergence.deuh1jhhubh> * for convergence integrated media GmbH */ #ifndef _DVBFRONTEND_H_ #define _DVBFRONTEND_H_ #include /** * enum }hhsbh)}(h:c:type:`fe_caps`h]hliteral)}(hjXh]hfe_caps}(hj\hhhNhNubah}(h]h ](xrefcc-typeeh"]h$]h&]uh1jZhjVubah}(h]h ]h"]h$]h&]refdocuserspace-api/media/dvb/headers refdomainjgreftypetype refexplicitrefwarn reftargetfe_capsuh1hhhhKhhubhX - Frontend capabilities * * @FE_IS_STUPID: There's something wrong at the * frontend, and it can't report its * capabilities. * @FE_CAN_INVERSION_AUTO: Can auto-detect frequency spectral * band inversion * @FE_CAN_FEC_1_2: Supports FEC 1/2 * @FE_CAN_FEC_2_3: Supports FEC 2/3 * @FE_CAN_FEC_3_4: Supports FEC 3/4 * @FE_CAN_FEC_4_5: Supports FEC 4/5 * @FE_CAN_FEC_5_6: Supports FEC 5/6 * @FE_CAN_FEC_6_7: Supports FEC 6/7 * @FE_CAN_FEC_7_8: Supports FEC 7/8 * @FE_CAN_FEC_8_9: Supports FEC 8/9 * @FE_CAN_FEC_AUTO: Can auto-detect FEC * @FE_CAN_QPSK: Supports QPSK modulation * @FE_CAN_QAM_16: Supports 16-QAM modulation * @FE_CAN_QAM_32: Supports 32-QAM modulation * @FE_CAN_QAM_64: Supports 64-QAM modulation * @FE_CAN_QAM_128: Supports 128-QAM modulation * @FE_CAN_QAM_256: Supports 256-QAM modulation * @FE_CAN_QAM_AUTO: Can auto-detect QAM modulation * @FE_CAN_TRANSMISSION_MODE_AUTO: Can auto-detect transmission mode * @FE_CAN_BANDWIDTH_AUTO: Can auto-detect bandwidth * @FE_CAN_GUARD_INTERVAL_AUTO: Can auto-detect guard interval * @FE_CAN_HIERARCHY_AUTO: Can auto-detect hierarchy * @FE_CAN_8VSB: Supports 8-VSB modulation * @FE_CAN_16VSB: Supporta 16-VSB modulation * @FE_HAS_EXTENDED_CAPS: Unused * @FE_CAN_MULTISTREAM: Supports multistream filtering * @FE_CAN_TURBO_FEC: Supports "turbo FEC" modulation * @FE_CAN_2G_MODULATION: Supports "2nd generation" modulation, * e. g. DVB-S2, DVB-T2, DVB-C2 * @FE_NEEDS_BENDING: Unused * @FE_CAN_RECOVER: Can recover from a cable unplug * automatically * @FE_CAN_MUTE_TS: Can stop spurious TS data output */ enum }hhsbh)}(h:c:type:`fe_caps`h]j[)}(hjh]hfe_caps}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_capsuh1hhhhKhhubhX { FE_IS_STUPID = 0, FE_CAN_INVERSION_AUTO = 0x1, FE_CAN_FEC_1_2 = 0x2, FE_CAN_FEC_2_3 = 0x4, FE_CAN_FEC_3_4 = 0x8, FE_CAN_FEC_4_5 = 0x10, FE_CAN_FEC_5_6 = 0x20, FE_CAN_FEC_6_7 = 0x40, FE_CAN_FEC_7_8 = 0x80, FE_CAN_FEC_8_9 = 0x100, FE_CAN_FEC_AUTO = 0x200, FE_CAN_QPSK = 0x400, FE_CAN_QAM_16 = 0x800, FE_CAN_QAM_32 = 0x1000, FE_CAN_QAM_64 = 0x2000, FE_CAN_QAM_128 = 0x4000, FE_CAN_QAM_256 = 0x8000, FE_CAN_QAM_AUTO = 0x10000, FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000, FE_CAN_BANDWIDTH_AUTO = 0x40000, FE_CAN_GUARD_INTERVAL_AUTO = 0x80000, FE_CAN_HIERARCHY_AUTO = 0x100000, FE_CAN_8VSB = 0x200000, FE_CAN_16VSB = 0x400000, FE_HAS_EXTENDED_CAPS = 0x800000, FE_CAN_MULTISTREAM = 0x4000000, FE_CAN_TURBO_FEC = 0x8000000, FE_CAN_2G_MODULATION = 0x10000000, FE_NEEDS_BENDING = 0x20000000, FE_CAN_RECOVER = 0x40000000, FE_CAN_MUTE_TS = 0x80000000 }; /* * }hhsbhstrong)}(h**DEPRECATED**h]h DEPRECATED}hjsbah}(h]h ]h"]h$]h&]uh1jhhubhA: Should be kept just due to backward compatibility. */ enum }hhsbh)}(h:c:type:`fe_type`h]j[)}(hjh]hfe_type}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_typeuh1hhhhKhhubh { }hhsbh)}(h:ref:`FE_QPSK `h]hinline)}(hjh]hFE_QPSK}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe-qpskuh1hhhhKhhubh , }hhsbh)}(h:ref:`FE_QAM `h]j)}(hjh]hFE_QAM}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjyfe-qamuh1hhhhKhhubh , }hhsbh)}(h:ref:`FE_OFDM `h]j)}(hj%h]hFE_OFDM}(hj'hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]refdocjs refdomainj1reftyperef refexplicitrefwarnjyfe-ofdmuh1hhhhKhhubh , }hhsbh)}(h:ref:`FE_ATSC `h]j)}(hjIh]hFE_ATSC}(hjKhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]refdocjs refdomainjUreftyperef refexplicitrefwarnjyfe-atscuh1hhhhKhhubhX }; /** * struct dvb_frontend_info - Frontend properties and capabilities * * @name: Name of the frontend * @type: ****DEPRECATED****. * Should not be used on modern programs, * as a frontend may have more than one type. * In order to get the support types of a given * frontend, use :c:type:`DTV_ENUM_DELSYS` * instead. * @frequency_min: Minimal frequency supported by the frontend. * @frequency_max: Minimal frequency supported by the frontend. * @frequency_stepsize: All frequencies are multiple of this value. * @frequency_tolerance: Frequency tolerance. * @symbol_rate_min: Minimal symbol rate, in bauds * (for Cable/Satellite systems). * @symbol_rate_max: Maximal symbol rate, in bauds * (for Cable/Satellite systems). * @symbol_rate_tolerance: Maximal symbol rate tolerance, in ppm * (for Cable/Satellite systems). * @notifier_delay: ****DEPRECATED****. Not used by any driver. * @caps: Capabilities supported by the frontend, * as specified in &enum fe_caps. * * .. note: * * #. The frequencies are specified in Hz for Terrestrial and Cable * systems. * #. The frequencies are specified in kHz for Satellite systems. */ struct dvb_frontend_info { char name[128]; enum }hhsbh)}(h:c:type:`fe_type`h]j[)}(hjmh]hfe_type}(hjohhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjkubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_typeuh1hhhhKhhubh type; /* }hhsbj)}(h**DEPRECATED**h]h DEPRECATED}hjsbah}(h]h ]h"]h$]h&]uh1jhhubh. Use }hhsbh)}(h(:ref:`DTV_ENUM_DELSYS `h]j)}(hjh]hDTV_ENUM_DELSYS}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-enum-delsysuh1hhhhKhhubhXc instead */ __u32 frequency_min; __u32 frequency_max; __u32 frequency_stepsize; __u32 frequency_tolerance; __u32 symbol_rate_min; __u32 symbol_rate_max; __u32 symbol_rate_tolerance; __u32 notifier_delay; /* }hhsbj)}(h**DEPRECATED**h]h DEPRECATED}hjsbah}(h]h ]h"]h$]h&]uh1jhhubh */ enum }hhsbh)}(h:c:type:`fe_caps`h]j[)}(hjh]hfe_caps}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_capsuh1hhhhKhhubhX caps; }; /** * struct dvb_diseqc_master_cmd - DiSEqC master command * * @msg: * DiSEqC message to be sent. It contains a 3 bytes header with: * framing + address + command, and an optional argument * of up to 3 bytes of data. * @msg_len: * Length of the DiSEqC message. Valid values are 3 to 6. * * Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for * the possible messages that can be used. */ struct dvb_diseqc_master_cmd { __u8 msg[6]; __u8 msg_len; }; /** * struct dvb_diseqc_slave_reply - DiSEqC received data * * @msg: * DiSEqC message buffer to store a message received via DiSEqC. * It contains one byte header with: framing and * an optional argument of up to 3 bytes of data. * @msg_len: * Length of the DiSEqC message. Valid values are 0 to 4, * where 0 means no message. * @timeout: * Return from ioctl after timeout ms with errorcode when * no message was received. * * Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for * the possible messages that can be used. */ struct dvb_diseqc_slave_reply { __u8 msg[4]; __u8 msg_len; int timeout; }; /** * enum }hhsbh)}(h:c:type:`fe_sec_voltage`h]j[)}(hjh]hfe_sec_voltage}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_voltageuh1hhhhKhhubh - DC Voltage used to feed the LNBf * * @SEC_VOLTAGE_13: Output 13V to the LNBf * @SEC_VOLTAGE_18: Output 18V to the LNBf * @SEC_VOLTAGE_OFF: Don't feed the LNBf with a DC voltage */ enum }hhsbh)}(h:c:type:`fe_sec_voltage`h]j[)}(hjh]hfe_sec_voltage}(hj hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_voltageuh1hhhhKhhubhg { SEC_VOLTAGE_13, SEC_VOLTAGE_18, SEC_VOLTAGE_OFF }; /** * enum }hhsbh)}(h:c:type:`fe_sec_tone_mode`h]j[)}(hjAh]hfe_sec_tone_mode}(hjChhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj?ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_tone_modeuh1hhhhKhhubhX - Type of tone to be send to the LNBf. * @SEC_TONE_ON: Sends a 22kHz tone burst to the antenna. * @SEC_TONE_OFF: Don't send a 22kHz tone to the antenna (except * if the ``FE_DISEQC_*`` ioctls are called). */ enum }hhsbh)}(h:c:type:`fe_sec_tone_mode`h]j[)}(hjdh]hfe_sec_tone_mode}(hjfhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjbubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_tone_modeuh1hhhhKhhubhG { SEC_TONE_ON, SEC_TONE_OFF }; /** * enum }hhsbh)}(h:c:type:`fe_sec_mini_cmd`h]j[)}(hjh]hfe_sec_mini_cmd}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_mini_cmduh1hhhhKhhubhX - Type of mini burst to be sent * * @SEC_MINI_A: Sends a mini-DiSEqC 22kHz '0' Tone Burst to select * satellite-A * @SEC_MINI_B: Sends a mini-DiSEqC 22kHz '1' Data Burst to select * satellite-B */ enum }hhsbh)}(h:c:type:`fe_sec_mini_cmd`h]j[)}(hjh]hfe_sec_mini_cmd}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_mini_cmduh1hhhhKhhubhD { SEC_MINI_A, SEC_MINI_B }; /** * enum }hhsbh)}(h:c:type:`fe_status`h]j[)}(hjh]h fe_status}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_statusuh1hhhhKhhubhX - Enumerates the possible frontend status. * @FE_NONE: The frontend doesn't have any kind of lock. * That's the initial frontend status * @FE_HAS_SIGNAL: Has found something above the noise level. * @FE_HAS_CARRIER: Has found a signal. * @FE_HAS_VITERBI: FEC inner coding (Viterbi, LDPC or other inner code). * is stable. * @FE_HAS_SYNC: Synchronization bytes was found. * @FE_HAS_LOCK: Digital TV were locked and everything is working. * @FE_TIMEDOUT: Fo lock within the last about 2 seconds. * @FE_REINIT: Frontend was reinitialized, application is recommended * to reset DiSEqC, tone and parameters. */ enum }hhsbh)}(h:c:type:`fe_status`h]j[)}(hjh]h fe_status}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_statusuh1hhhhKhhubhXf { FE_NONE = 0x00, FE_HAS_SIGNAL = 0x01, FE_HAS_CARRIER = 0x02, FE_HAS_VITERBI = 0x04, FE_HAS_SYNC = 0x08, FE_HAS_LOCK = 0x10, FE_TIMEDOUT = 0x20, FE_REINIT = 0x40, }; /** * enum }hhsbh)}(h:c:type:`fe_spectral_inversion`h]j[)}(hjh]hfe_spectral_inversion}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_spectral_inversionuh1hhhhKhhubhXQ - Type of inversion band * * @INVERSION_OFF: Don't do spectral band inversion. * @INVERSION_ON: Do spectral band inversion. * @INVERSION_AUTO: Autodetect spectral band inversion. * * This parameter indicates if spectral inversion should be presumed or * not. In the automatic setting (``INVERSION_AUTO``) the hardware will try * to figure out the correct setting by itself. If the hardware doesn't * support, the %dvb_frontend will try to lock at the carrier first with * inversion off. If it fails, it will try to enable inversion. */ enum }hhsbh)}(h:c:type:`fe_spectral_inversion`h]j[)}(hj6h]hfe_spectral_inversion}(hj8hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj4ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_spectral_inversionuh1hhhhKhhubh` { INVERSION_OFF, INVERSION_ON, INVERSION_AUTO }; /** * enum }hhsbh)}(h:c:type:`fe_code_rate`h]j[)}(hjYh]h fe_code_rate}(hj[hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjWubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_code_rateuh1hhhhKhhubhX - Type of Forward Error Correction (FEC) * * @FEC_NONE: No Forward Error Correction Code * @FEC_1_2: Forward Error Correction Code 1/2 * @FEC_2_3: Forward Error Correction Code 2/3 * @FEC_3_4: Forward Error Correction Code 3/4 * @FEC_4_5: Forward Error Correction Code 4/5 * @FEC_5_6: Forward Error Correction Code 5/6 * @FEC_6_7: Forward Error Correction Code 6/7 * @FEC_7_8: Forward Error Correction Code 7/8 * @FEC_8_9: Forward Error Correction Code 8/9 * @FEC_AUTO: Autodetect Error Correction Code * @FEC_3_5: Forward Error Correction Code 3/5 * @FEC_9_10: Forward Error Correction Code 9/10 * @FEC_2_5: Forward Error Correction Code 2/5 * @FEC_1_3: Forward Error Correction Code 1/3 * @FEC_1_4: Forward Error Correction Code 1/4 * @FEC_5_9: Forward Error Correction Code 5/9 * @FEC_7_9: Forward Error Correction Code 7/9 * @FEC_8_15: Forward Error Correction Code 8/15 * @FEC_11_15: Forward Error Correction Code 11/15 * @FEC_13_18: Forward Error Correction Code 13/18 * @FEC_9_20: Forward Error Correction Code 9/20 * @FEC_11_20: Forward Error Correction Code 11/20 * @FEC_23_36: Forward Error Correction Code 23/36 * @FEC_25_36: Forward Error Correction Code 25/36 * @FEC_13_45: Forward Error Correction Code 13/45 * @FEC_26_45: Forward Error Correction Code 26/45 * @FEC_28_45: Forward Error Correction Code 28/45 * @FEC_32_45: Forward Error Correction Code 32/45 * @FEC_77_90: Forward Error Correction Code 77/90 * @FEC_11_45: Forward Error Correction Code 11/45 * @FEC_4_15: Forward Error Correction Code 4/15 * @FEC_14_45: Forward Error Correction Code 14/45 * @FEC_7_15: Forward Error Correction Code 7/15 * * Please note that not all FEC types are supported by a given standard. */ enum }hhsbh)}(h:c:type:`fe_code_rate`h]j[)}(hj|h]h fe_code_rate}(hj~hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjzubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_code_rateuh1hhhhKhhubhX { FEC_NONE = 0, FEC_1_2, FEC_2_3, FEC_3_4, FEC_4_5, FEC_5_6, FEC_6_7, FEC_7_8, FEC_8_9, FEC_AUTO, FEC_3_5, FEC_9_10, FEC_2_5, FEC_1_3, FEC_1_4, FEC_5_9, FEC_7_9, FEC_8_15, FEC_11_15, FEC_13_18, FEC_9_20, FEC_11_20, FEC_23_36, FEC_25_36, FEC_13_45, FEC_26_45, FEC_28_45, FEC_32_45, FEC_77_90, FEC_11_45, FEC_4_15, FEC_14_45, FEC_7_15, }; /** * enum }hhsbh)}(h:c:type:`fe_modulation`h]j[)}(hjh]h fe_modulation}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_modulationuh1hhhhKhhubhX - Type of modulation/constellation * @QPSK: QPSK modulation * @QAM_16: 16-QAM modulation * @QAM_32: 32-QAM modulation * @QAM_64: 64-QAM modulation * @QAM_128: 128-QAM modulation * @QAM_256: 256-QAM modulation * @QAM_AUTO: Autodetect QAM modulation * @VSB_8: 8-VSB modulation * @VSB_16: 16-VSB modulation * @PSK_8: 8-PSK modulation * @APSK_16: 16-APSK modulation * @APSK_32: 32-APSK modulation * @DQPSK: DQPSK modulation * @QAM_4_NR: 4-QAM-NR modulation * @QAM_1024: 1024-QAM modulation * @QAM_4096: 4096-QAM modulation * @APSK_8_L: 8APSK-L modulation * @APSK_16_L: 16APSK-L modulation * @APSK_32_L: 32APSK-L modulation * @APSK_64: 64APSK modulation * @APSK_64_L: 64APSK-L modulation * * Please note that not all modulations are supported by a given standard. * */ enum }hhsbh)}(h:c:type:`fe_modulation`h]j[)}(hjh]h fe_modulation}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_modulationuh1hhhhKhhubhX { QPSK, QAM_16, QAM_32, QAM_64, QAM_128, QAM_256, QAM_AUTO, VSB_8, VSB_16, PSK_8, APSK_16, APSK_32, DQPSK, QAM_4_NR, QAM_1024, QAM_4096, APSK_8_L, APSK_16_L, APSK_32_L, APSK_64, APSK_64_L, }; /** * enum }hhsbh)}(h:c:type:`fe_transmit_mode`h]j[)}(hjh]hfe_transmit_mode}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_transmit_modeuh1hhhhKhhubhXW - Transmission mode * * @TRANSMISSION_MODE_AUTO: * Autodetect transmission mode. The hardware will try to find the * correct FFT-size (if capable) to fill in the missing parameters. * @TRANSMISSION_MODE_1K: * Transmission mode 1K * @TRANSMISSION_MODE_2K: * Transmission mode 2K * @TRANSMISSION_MODE_8K: * Transmission mode 8K * @TRANSMISSION_MODE_4K: * Transmission mode 4K * @TRANSMISSION_MODE_16K: * Transmission mode 16K * @TRANSMISSION_MODE_32K: * Transmission mode 32K * @TRANSMISSION_MODE_C1: * Single Carrier (C=1) transmission mode (DTMB only) * @TRANSMISSION_MODE_C3780: * Multi Carrier (C=3780) transmission mode (DTMB only) * * Please note that not all transmission modes are supported by a given * standard. */ enum }hhsbh)}(h:c:type:`fe_transmit_mode`h]j[)}(hjh]hfe_transmit_mode}(hj hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_transmit_modeuh1hhhhKhhubhX@ { TRANSMISSION_MODE_2K, TRANSMISSION_MODE_8K, TRANSMISSION_MODE_AUTO, TRANSMISSION_MODE_4K, TRANSMISSION_MODE_1K, TRANSMISSION_MODE_16K, TRANSMISSION_MODE_32K, TRANSMISSION_MODE_C1, TRANSMISSION_MODE_C3780, }; /** * enum }hhsbh)}(h:c:type:`fe_guard_interval`h]j[)}(hj+h]hfe_guard_interval}(hj-hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj)ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_guard_intervaluh1hhhhKhhubhX5 - Guard interval * * @GUARD_INTERVAL_AUTO: Autodetect the guard interval * @GUARD_INTERVAL_1_128: Guard interval 1/128 * @GUARD_INTERVAL_1_32: Guard interval 1/32 * @GUARD_INTERVAL_1_16: Guard interval 1/16 * @GUARD_INTERVAL_1_8: Guard interval 1/8 * @GUARD_INTERVAL_1_4: Guard interval 1/4 * @GUARD_INTERVAL_19_128: Guard interval 19/128 * @GUARD_INTERVAL_19_256: Guard interval 19/256 * @GUARD_INTERVAL_PN420: PN length 420 (1/4) * @GUARD_INTERVAL_PN595: PN length 595 (1/6) * @GUARD_INTERVAL_PN945: PN length 945 (1/9) * @GUARD_INTERVAL_1_64: Guard interval 1/64 * * Please note that not all guard intervals are supported by a given standard. */ enum }hhsbh)}(h:c:type:`fe_guard_interval`h]j[)}(hjNh]hfe_guard_interval}(hjPhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjLubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_guard_intervaluh1hhhhKhhubhX { GUARD_INTERVAL_1_32, GUARD_INTERVAL_1_16, GUARD_INTERVAL_1_8, GUARD_INTERVAL_1_4, GUARD_INTERVAL_AUTO, GUARD_INTERVAL_1_128, GUARD_INTERVAL_19_128, GUARD_INTERVAL_19_256, GUARD_INTERVAL_PN420, GUARD_INTERVAL_PN595, GUARD_INTERVAL_PN945, GUARD_INTERVAL_1_64, }; /** * enum }hhsbh)}(h:c:type:`fe_hierarchy`h]j[)}(hjqh]h fe_hierarchy}(hjshhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjoubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_hierarchyuh1hhhhKhhubhXH - Hierarchy * @HIERARCHY_NONE: No hierarchy * @HIERARCHY_AUTO: Autodetect hierarchy (if supported) * @HIERARCHY_1: Hierarchy 1 * @HIERARCHY_2: Hierarchy 2 * @HIERARCHY_4: Hierarchy 4 * * Please note that not all hierarchy types are supported by a given standard. */ enum }hhsbh)}(h:c:type:`fe_hierarchy`h]j[)}(hjh]h fe_hierarchy}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_hierarchyuh1hhhhKhhubh { HIERARCHY_NONE, HIERARCHY_1, HIERARCHY_2, HIERARCHY_4, HIERARCHY_AUTO }; /** * enum }hhsbh)}(h:c:type:`fe_interleaving`h]j[)}(hjh]hfe_interleaving}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_interleavinguh1hhhhKhhubhX$ - Interleaving * @INTERLEAVING_NONE: No interleaving. * @INTERLEAVING_AUTO: Auto-detect interleaving. * @INTERLEAVING_240: Interleaving of 240 symbols. * @INTERLEAVING_720: Interleaving of 720 symbols. * * Please note that, currently, only DTMB uses it. */ enum }hhsbh)}(h:c:type:`fe_interleaving`h]j[)}(hjh]hfe_interleaving}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_interleavinguh1hhhhKhhubh { INTERLEAVING_NONE, INTERLEAVING_AUTO, INTERLEAVING_240, INTERLEAVING_720, }; /* DVBv5 property Commands */ #define }hhsbh)}(h$:ref:`DTV_UNDEFINED `h]j)}(hjh]h DTV_UNDEFINED}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjy dtv-undefineduh1hhhhKhhubh 0 #define }hhsbh)}(h:ref:`DTV_TUNE `h]j)}(hj!h]hDTV_TUNE}(hj#hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainj-reftyperef refexplicitrefwarnjydtv-tuneuh1hhhhKhhubh 1 #define }hhsbh)}(h:ref:`DTV_CLEAR `h]j)}(hjEh]h DTV_CLEAR}(hjGhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]refdocjs refdomainjQreftyperef refexplicitrefwarnjy dtv-clearuh1hhhhKhhubh 2 #define }hhsbh)}(h$:ref:`DTV_FREQUENCY `h]j)}(hjih]h DTV_FREQUENCY}(hjkhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]refdocjs refdomainjureftyperef refexplicitrefwarnjy dtv-frequencyuh1hhhhKhhubh 3 #define }hhsbh)}(h&:ref:`DTV_MODULATION `h]j)}(hjh]hDTV_MODULATION}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-modulationuh1hhhhKhhubh 4 #define }hhsbh)}(h*:ref:`DTV_BANDWIDTH_HZ `h]j)}(hjh]hDTV_BANDWIDTH_HZ}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-bandwidth-hzuh1hhhhKhhubh 5 #define }hhsbh)}(h$:ref:`DTV_INVERSION `h]j)}(hjh]h DTV_INVERSION}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjy dtv-inversionuh1hhhhKhhubh 6 #define }hhsbh)}(h,:ref:`DTV_DISEQC_MASTER `h]j)}(hjh]hDTV_DISEQC_MASTER}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-diseqc-masteruh1hhhhKhhubh 7 #define }hhsbh)}(h(:ref:`DTV_SYMBOL_RATE `h]j)}(hjh]hDTV_SYMBOL_RATE}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainj)reftyperef refexplicitrefwarnjydtv-symbol-rateuh1hhhhKhhubh 8 #define }hhsbh)}(h$:ref:`DTV_INNER_FEC `h]j)}(hjAh]h DTV_INNER_FEC}(hjChhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]refdocjs refdomainjMreftyperef refexplicitrefwarnjy dtv-inner-fecuh1hhhhKhhubh 9 #define }hhsbh)}(h :ref:`DTV_VOLTAGE `h]j)}(hjeh]h DTV_VOLTAGE}(hjghhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]refdocjs refdomainjqreftyperef refexplicitrefwarnjy dtv-voltageuh1hhhhKhhubh 10 #define }hhsbh)}(h:ref:`DTV_TONE `h]j)}(hjh]hDTV_TONE}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-toneuh1hhhhKhhubh 11 #define }hhsbh)}(h:ref:`DTV_PILOT `h]j)}(hjh]h DTV_PILOT}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjy dtv-pilotuh1hhhhKhhubh 12 #define }hhsbh)}(h :ref:`DTV_ROLLOFF `h]j)}(hjh]h DTV_ROLLOFF}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjy dtv-rolloffuh1hhhhKhhubh 13 #define }hhsbh)}(h6:ref:`DTV_DISEQC_SLAVE_REPLY `h]j)}(hjh]hDTV_DISEQC_SLAVE_REPLY}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-diseqc-slave-replyuh1hhhhKhhubhU 14 /* Basic enumeration set for querying unlimited capabilities */ #define }hhsbh)}(h8:ref:`DTV_FE_CAPABILITY_COUNT `h]j)}(hjh]hDTV_FE_CAPABILITY_COUNT}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainj%reftyperef refexplicitrefwarnjydtv-fe-capability-countuh1hhhhKhhubh 15 #define }hhsbh)}(h,:ref:`DTV_FE_CAPABILITY `h]j)}(hj=h]hDTV_FE_CAPABILITY}(hj?hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]refdocjs refdomainjIreftyperef refexplicitrefwarnjydtv-fe-capabilityuh1hhhhKhhubh 16 #define }hhsbh)}(h0:ref:`DTV_DELIVERY_SYSTEM `h]j)}(hjah]hDTV_DELIVERY_SYSTEM}(hjchhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]refdocjs refdomainjmreftyperef refexplicitrefwarnjydtv-delivery-systemuh1hhhhKhhubh2 17 /* ISDB-T and ISDB-Tsb */ #define }hhsbh)}(h@:ref:`DTV_ISDBT_PARTIAL_RECEPTION `h]j)}(hjh]hDTV_ISDBT_PARTIAL_RECEPTION}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-isdbt-partial-receptionuh1hhhhKhhubh 18 #define }hhsbh)}(hB:ref:`DTV_ISDBT_SOUND_BROADCASTING `h]j)}(hjh]hDTV_ISDBT_SOUND_BROADCASTING}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-isdbt-sound-broadcastinguh1hhhhKhhubh 19 #define }hhsbh)}(h>:ref:`DTV_ISDBT_SB_SUBCHANNEL_ID `h]j)}(hjh]hDTV_ISDBT_SB_SUBCHANNEL_ID}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-isdbt-sb-subchannel-iduh1hhhhKhhubh 20 #define }hhsbh)}(h::ref:`DTV_ISDBT_SB_SEGMENT_IDX `h]j)}(hjh]hDTV_ISDBT_SB_SEGMENT_IDX}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-isdbt-sb-segment-idxuh1hhhhKhhubh 21 #define }hhsbh)}(h>:ref:`DTV_ISDBT_SB_SEGMENT_COUNT `h]j)}(hj h]hDTV_ISDBT_SB_SEGMENT_COUNT}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj! reftyperef refexplicitrefwarnjydtv-isdbt-sb-segment-countuh1hhhhKhhubh 22 #define }hhsbh)}(h1:ref:`DTV_ISDBT_LAYERA_FEC `h]j)}(hj9 h]hDTV_ISDBT_LAYERA_FEC}(hj; hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj7 ubah}(h]h ]h"]h$]h&]refdocjs refdomainjE reftyperef refexplicitrefwarnjydtv-isdbt-layer-fecuh1hhhhKhhubh 23 #define }hhsbh)}(h?:ref:`DTV_ISDBT_LAYERA_MODULATION `h]j)}(hj] h]hDTV_ISDBT_LAYERA_MODULATION}(hj_ hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj[ ubah}(h]h ]h"]h$]h&]refdocjs refdomainji reftyperef refexplicitrefwarnjydtv-isdbt-layer-modulationuh1hhhhKhhubh 24 #define }hhsbh)}(hE:ref:`DTV_ISDBT_LAYERA_SEGMENT_COUNT `h]j)}(hj h]hDTV_ISDBT_LAYERA_SEGMENT_COUNT}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-isdbt-layer-segment-countuh1hhhhKhhubh 25 #define }hhsbh)}(hM:ref:`DTV_ISDBT_LAYERA_TIME_INTERLEAVING `h]j)}(hj h]h"DTV_ISDBT_LAYERA_TIME_INTERLEAVING}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjy!dtv-isdbt-layer-time-interleavinguh1hhhhKhhubh 26 #define }hhsbh)}(h1:ref:`DTV_ISDBT_LAYERB_FEC `h]j)}(hj h]hDTV_ISDBT_LAYERB_FEC}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-isdbt-layer-fecuh1hhhhKhhubh 27 #define }hhsbh)}(h?:ref:`DTV_ISDBT_LAYERB_MODULATION `h]j)}(hj h]hDTV_ISDBT_LAYERB_MODULATION}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-isdbt-layer-modulationuh1hhhhKhhubh 28 #define }hhsbh)}(hE:ref:`DTV_ISDBT_LAYERB_SEGMENT_COUNT `h]j)}(hj h]hDTV_ISDBT_LAYERB_SEGMENT_COUNT}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-isdbt-layer-segment-countuh1hhhhKhhubh 29 #define }hhsbh)}(hM:ref:`DTV_ISDBT_LAYERB_TIME_INTERLEAVING `h]j)}(hj5 h]h"DTV_ISDBT_LAYERB_TIME_INTERLEAVING}(hj7 hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj3 ubah}(h]h ]h"]h$]h&]refdocjs refdomainjA reftyperef refexplicitrefwarnjy!dtv-isdbt-layer-time-interleavinguh1hhhhKhhubh 30 #define }hhsbh)}(h1:ref:`DTV_ISDBT_LAYERC_FEC `h]j)}(hjY h]hDTV_ISDBT_LAYERC_FEC}(hj[ hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjW ubah}(h]h ]h"]h$]h&]refdocjs refdomainje reftyperef refexplicitrefwarnjydtv-isdbt-layer-fecuh1hhhhKhhubh 31 #define }hhsbh)}(h?:ref:`DTV_ISDBT_LAYERC_MODULATION `h]j)}(hj} h]hDTV_ISDBT_LAYERC_MODULATION}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj{ ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-isdbt-layer-modulationuh1hhhhKhhubh 32 #define }hhsbh)}(hE:ref:`DTV_ISDBT_LAYERC_SEGMENT_COUNT `h]j)}(hj h]hDTV_ISDBT_LAYERC_SEGMENT_COUNT}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-isdbt-layer-segment-countuh1hhhhKhhubh 33 #define }hhsbh)}(hM:ref:`DTV_ISDBT_LAYERC_TIME_INTERLEAVING `h]j)}(hj h]h"DTV_ISDBT_LAYERC_TIME_INTERLEAVING}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjy!dtv-isdbt-layer-time-interleavinguh1hhhhKhhubh 34 #define }hhsbh)}(h(:ref:`DTV_API_VERSION `h]j)}(hj h]hDTV_API_VERSION}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-api-versionuh1hhhhKhhubh 35 #define }hhsbh)}(h*:ref:`DTV_CODE_RATE_HP `h]j)}(hj h]hDTV_CODE_RATE_HP}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-code-rate-hpuh1hhhhKhhubh 36 #define }hhsbh)}(h*:ref:`DTV_CODE_RATE_LP `h]j)}(hj1 h]hDTV_CODE_RATE_LP}(hj3 hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj/ ubah}(h]h ]h"]h$]h&]refdocjs refdomainj= reftyperef refexplicitrefwarnjydtv-code-rate-lpuh1hhhhKhhubh 37 #define }hhsbh)}(h.:ref:`DTV_GUARD_INTERVAL `h]j)}(hjU h]hDTV_GUARD_INTERVAL}(hjW hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjS ubah}(h]h ]h"]h$]h&]refdocjs refdomainja reftyperef refexplicitrefwarnjydtv-guard-intervaluh1hhhhKhhubh 38 #define }hhsbh)}(h4:ref:`DTV_TRANSMISSION_MODE `h]j)}(hjy h]hDTV_TRANSMISSION_MODE}(hj{ hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjw ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-transmission-modeuh1hhhhKhhubh 39 #define }hhsbh)}(h$:ref:`DTV_HIERARCHY `h]j)}(hj h]h DTV_HIERARCHY}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjy dtv-hierarchyuh1hhhhKhhubh 40 #define }hhsbh)}(h8:ref:`DTV_ISDBT_LAYER_ENABLED `h]j)}(hj h]hDTV_ISDBT_LAYER_ENABLED}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-isdbt-layer-enableduh1hhhhKhhubh 41 #define }hhsbh)}(h$:ref:`DTV_STREAM_ID `h]j)}(hj h]h DTV_STREAM_ID}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjy dtv-stream-iduh1hhhhKhhubh5 42 #define DTV_ISDBS_TS_ID_LEGACY }hhsbh)}(h$:ref:`DTV_STREAM_ID `h]j)}(hj h]h DTV_STREAM_ID}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjy dtv-stream-iduh1hhhhKhhubh #define }hhsbh)}(h8:ref:`DTV_DVBT2_PLP_ID_LEGACY `h]j)}(hj- h]hDTV_DVBT2_PLP_ID_LEGACY}(hj/ hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj+ ubah}(h]h ]h"]h$]h&]refdocjs refdomainj9 reftyperef refexplicitrefwarnjydtv-dvbt2-plp-id-legacyuh1hhhhKhhubh 43 #define }hhsbh)}(h(:ref:`DTV_ENUM_DELSYS `h]j)}(hjQ h]hDTV_ENUM_DELSYS}(hjS hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjO ubah}(h]h ]h"]h$]h&]refdocjs refdomainj] reftyperef refexplicitrefwarnjydtv-enum-delsysuh1hhhhKhhubh* 44 /* ATSC-MH */ #define }hhsbh)}(h.:ref:`DTV_ATSCMH_FIC_VER `h]j)}(hju h]hDTV_ATSCMH_FIC_VER}(hjw hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjs ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-atscmh-fic-veruh1hhhhKhhubh 45 #define }hhsbh)}(h2:ref:`DTV_ATSCMH_PARADE_ID `h]j)}(hj h]hDTV_ATSCMH_PARADE_ID}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-atscmh-parade-iduh1hhhhKhhubh 46 #define }hhsbh)}(h&:ref:`DTV_ATSCMH_NOG `h]j)}(hj h]hDTV_ATSCMH_NOG}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-atscmh-noguh1hhhhKhhubh 47 #define }hhsbh)}(h(:ref:`DTV_ATSCMH_TNOG `h]j)}(hj h]hDTV_ATSCMH_TNOG}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-atscmh-tnoguh1hhhhKhhubh 48 #define }hhsbh)}(h&:ref:`DTV_ATSCMH_SGN `h]j)}(hj h]hDTV_ATSCMH_SGN}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-atscmh-sgnuh1hhhhKhhubh 49 #define }hhsbh)}(h&:ref:`DTV_ATSCMH_PRC `h]j)}(hj) h]hDTV_ATSCMH_PRC}(hj+ hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj' ubah}(h]h ]h"]h$]h&]refdocjs refdomainj5 reftyperef refexplicitrefwarnjydtv-atscmh-prcuh1hhhhKhhubh 50 #define }hhsbh)}(h::ref:`DTV_ATSCMH_RS_FRAME_MODE `h]j)}(hjM h]hDTV_ATSCMH_RS_FRAME_MODE}(hjO hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjK ubah}(h]h ]h"]h$]h&]refdocjs refdomainjY reftyperef refexplicitrefwarnjydtv-atscmh-rs-frame-modeuh1hhhhKhhubh 51 #define }hhsbh)}(hB:ref:`DTV_ATSCMH_RS_FRAME_ENSEMBLE `h]j)}(hjq h]hDTV_ATSCMH_RS_FRAME_ENSEMBLE}(hjs hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjo ubah}(h]h ]h"]h$]h&]refdocjs refdomainj} reftyperef refexplicitrefwarnjydtv-atscmh-rs-frame-ensembleuh1hhhhKhhubh 52 #define }hhsbh)}(h@:ref:`DTV_ATSCMH_RS_CODE_MODE_PRI `h]j)}(hj h]hDTV_ATSCMH_RS_CODE_MODE_PRI}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-atscmh-rs-code-mode-priuh1hhhhKhhubh 53 #define }hhsbh)}(h@:ref:`DTV_ATSCMH_RS_CODE_MODE_SEC `h]j)}(hj h]hDTV_ATSCMH_RS_CODE_MODE_SEC}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-atscmh-rs-code-mode-secuh1hhhhKhhubh 54 #define }hhsbh)}(h>:ref:`DTV_ATSCMH_SCCC_BLOCK_MODE `h]j)}(hj h]hDTV_ATSCMH_SCCC_BLOCK_MODE}(hj hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-atscmh-sccc-block-modeuh1hhhhKhhubh 55 #define }hhsbh)}(h@:ref:`DTV_ATSCMH_SCCC_CODE_MODE_A `h]j)}(hjh]hDTV_ATSCMH_SCCC_CODE_MODE_A}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjydtv-atscmh-sccc-code-mode-auh1hhhhKhhubh 56 #define }hhsbh)}(h@:ref:`DTV_ATSCMH_SCCC_CODE_MODE_B `h]j)}(hj%h]hDTV_ATSCMH_SCCC_CODE_MODE_B}(hj'hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]refdocjs refdomainj1reftyperef refexplicitrefwarnjydtv-atscmh-sccc-code-mode-buh1hhhhKhhubh 57 #define }hhsbh)}(h@:ref:`DTV_ATSCMH_SCCC_CODE_MODE_C `h]j)}(hjIh]hDTV_ATSCMH_SCCC_CODE_MODE_C}(hjKhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]refdocjs refdomainjUreftyperef refexplicitrefwarnjydtv-atscmh-sccc-code-mode-cuh1hhhhKhhubh 58 #define }hhsbh)}(h@:ref:`DTV_ATSCMH_SCCC_CODE_MODE_D `h]j)}(hjmh]hDTV_ATSCMH_SCCC_CODE_MODE_D}(hjohhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]refdocjs refdomainjyreftyperef refexplicitrefwarnjydtv-atscmh-sccc-code-mode-duh1hhhhKhhubh 59 #define }hhsbh)}(h*:ref:`DTV_INTERLEAVING `h]j)}(hjh]hDTV_INTERLEAVING}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-interleavinguh1hhhhKhhubh& 60 #define }hhsbh)}(h:ref:`DTV_LNA `h]j)}(hjh]hDTV_LNA}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-lnauh1hhhhKhhubhM 61 /* Quality parameters */ #define }hhsbh)}(h::ref:`DTV_STAT_SIGNAL_STRENGTH `h]j)}(hjh]hDTV_STAT_SIGNAL_STRENGTH}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-stat-signal-strengthuh1hhhhKhhubh 62 #define }hhsbh)}(h":ref:`DTV_STAT_CNR `h]j)}(hjh]h DTV_STAT_CNR}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainj reftyperef refexplicitrefwarnjy dtv-stat-cnruh1hhhhKhhubh" 63 #define }hhsbh)}(hB:ref:`DTV_STAT_PRE_ERROR_BIT_COUNT `h]j)}(hj!h]hDTV_STAT_PRE_ERROR_BIT_COUNT}(hj#hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainj-reftyperef refexplicitrefwarnjydtv-stat-pre-error-bit-countuh1hhhhKhhubh 64 #define }hhsbh)}(hB:ref:`DTV_STAT_PRE_TOTAL_BIT_COUNT `h]j)}(hjEh]hDTV_STAT_PRE_TOTAL_BIT_COUNT}(hjGhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]refdocjs refdomainjQreftyperef refexplicitrefwarnjydtv-stat-pre-total-bit-countuh1hhhhKhhubh 65 #define }hhsbh)}(hD:ref:`DTV_STAT_POST_ERROR_BIT_COUNT `h]j)}(hjih]hDTV_STAT_POST_ERROR_BIT_COUNT}(hjkhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]refdocjs refdomainjureftyperef refexplicitrefwarnjydtv-stat-post-error-bit-countuh1hhhhKhhubh 66 #define }hhsbh)}(hD:ref:`DTV_STAT_POST_TOTAL_BIT_COUNT `h]j)}(hjh]hDTV_STAT_POST_TOTAL_BIT_COUNT}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-stat-post-total-bit-countuh1hhhhKhhubh 67 #define }hhsbh)}(h>:ref:`DTV_STAT_ERROR_BLOCK_COUNT `h]j)}(hjh]hDTV_STAT_ERROR_BLOCK_COUNT}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-stat-error-block-countuh1hhhhKhhubh 68 #define }hhsbh)}(h>:ref:`DTV_STAT_TOTAL_BLOCK_COUNT `h]j)}(hjh]hDTV_STAT_TOTAL_BLOCK_COUNT}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-stat-total-block-countuh1hhhhKhhubh9 69 /* Physical layer scrambling */ #define }hhsbh)}(hD:ref:`DTV_SCRAMBLING_SEQUENCE_INDEX `h]j)}(hjh]hDTV_SCRAMBLING_SEQUENCE_INDEX}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-scrambling-sequence-indexuh1hhhhKhhubh, 70 #define DTV_MAX_COMMAND }hhsbh)}(hD:ref:`DTV_SCRAMBLING_SEQUENCE_INDEX `h]j)}(hjh]hDTV_SCRAMBLING_SEQUENCE_INDEX}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainj)reftyperef refexplicitrefwarnjydtv-scrambling-sequence-indexuh1hhhhKhhubh /** * enum }hhsbh)}(h:c:type:`fe_pilot`h]j[)}(hjAh]hfe_pilot}(hjChhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj?ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_pilotuh1hhhhKhhubh - Type of pilot tone * * @PILOT_ON: Pilot tones enabled * @PILOT_OFF: Pilot tones disabled * @PILOT_AUTO: Autodetect pilot tones */ enum }hhsbh)}(h:c:type:`fe_pilot`h]j[)}(hjdh]hfe_pilot}(hjfhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjbubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_pilotuh1hhhhKhhubhU { PILOT_ON, PILOT_OFF, PILOT_AUTO, }; /** * enum }hhsbh)}(h:c:type:`fe_rolloff`h]j[)}(hjh]h fe_rolloff}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_rolloffuh1hhhhKhhubhX - Rolloff factor * @ROLLOFF_35: Roloff factor: α=35% * @ROLLOFF_20: Roloff factor: α=20% * @ROLLOFF_25: Roloff factor: α=25% * @ROLLOFF_AUTO: Auto-detect the roloff factor. * @ROLLOFF_15: Rolloff factor: α=15% * @ROLLOFF_10: Rolloff factor: α=10% * @ROLLOFF_5: Rolloff factor: α=5% * * .. note: * * Roloff factor of 35% is implied on DVB-S. On DVB-S2, it is default. */ enum }hhsbh)}(h:c:type:`fe_rolloff`h]j[)}(hjh]h fe_rolloff}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_rolloffuh1hhhhKhhubh { ROLLOFF_35, ROLLOFF_20, ROLLOFF_25, ROLLOFF_AUTO, ROLLOFF_15, ROLLOFF_10, ROLLOFF_5, }; /** * enum }hhsbh)}(h:c:type:`fe_delivery_system`h]j[)}(hjh]hfe_delivery_system}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_delivery_systemuh1hhhhKhhubhX( - Type of the delivery system * * @SYS_UNDEFINED: * Undefined standard. Generally, indicates an error * @SYS_DVBC_ANNEX_A: * Cable TV: DVB-C following ITU-T J.83 Annex A spec * @SYS_DVBC_ANNEX_B: * Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM) * @SYS_DVBC_ANNEX_C: * Cable TV: DVB-C following ITU-T J.83 Annex C spec * @SYS_DVBC2: * Cable TV: DVB-C2 * @SYS_ISDBC: * Cable TV: ISDB-C (no drivers yet) * @SYS_DVBT: * Terrestrial TV: DVB-T * @SYS_DVBT2: * Terrestrial TV: DVB-T2 * @SYS_ISDBT: * Terrestrial TV: ISDB-T * @SYS_ATSC: * Terrestrial TV: ATSC * @SYS_ATSCMH: * Terrestrial TV (mobile): ATSC-M/H * @SYS_DTMB: * Terrestrial TV: DTMB * @SYS_DVBS: * Satellite TV: DVB-S * @SYS_DVBS2: * Satellite TV: DVB-S2 and DVB-S2X * @SYS_TURBO: * Satellite TV: DVB-S Turbo * @SYS_ISDBS: * Satellite TV: ISDB-S * @SYS_DAB: * Digital audio: DAB (not fully supported) * @SYS_DSS: * Satellite TV: DSS (not fully supported) * @SYS_CMMB: * Terrestrial TV (mobile): CMMB (not fully supported) * @SYS_DVBH: * Terrestrial TV (mobile): DVB-H (standard deprecated) */ enum }hhsbh)}(h:c:type:`fe_delivery_system`h]j[)}(hjh]hfe_delivery_system}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_delivery_systemuh1hhhhKhhubhX { SYS_UNDEFINED, SYS_DVBC_ANNEX_A, SYS_DVBC_ANNEX_B, SYS_DVBT, SYS_DSS, SYS_DVBS, SYS_DVBS2, SYS_DVBH, SYS_ISDBT, SYS_ISDBS, SYS_ISDBC, SYS_ATSC, SYS_ATSCMH, SYS_DTMB, SYS_CMMB, SYS_DAB, SYS_DVBT2, SYS_TURBO, SYS_DVBC_ANNEX_C, SYS_DVBC2, }; /* backward compatibility definitions for delivery systems */ #define SYS_DVBC_ANNEX_AC SYS_DVBC_ANNEX_A #define SYS_DMBTH SYS_DTMB /* DMB-TH is legacy name, use DTMB */ /* ATSC-MH specific parameters */ /** * enum }hhsbh)}(h :c:type:`atscmh_sccc_block_mode`h]j[)}(hjh]hatscmh_sccc_block_mode}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyatscmh_sccc_block_modeuh1hhhhKhhubhX - Type of Series Concatenated Convolutional * Code Block Mode. * * @ATSCMH_SCCC_BLK_SEP: * Separate SCCC: the SCCC outer code mode shall be set independently * for each Group Region (A, B, C, D) * @ATSCMH_SCCC_BLK_COMB: * Combined SCCC: all four Regions shall have the same SCCC outer * code mode. * @ATSCMH_SCCC_BLK_RES: * Reserved. Shouldn't be used. */ enum }hhsbh)}(h :c:type:`atscmh_sccc_block_mode`h]j[)}(hj6h]hatscmh_sccc_block_mode}(hj8hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj4ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyatscmh_sccc_block_modeuh1hhhhKhhubh { ATSCMH_SCCC_BLK_SEP = 0, ATSCMH_SCCC_BLK_COMB = 1, ATSCMH_SCCC_BLK_RES = 2, }; /** * enum }hhsbh)}(h:c:type:`atscmh_sccc_code_mode`h]j[)}(hjYh]hatscmh_sccc_code_mode}(hj[hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjWubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyatscmh_sccc_code_modeuh1hhhhKhhubhXb - Type of Series Concatenated Convolutional * Code Rate. * * @ATSCMH_SCCC_CODE_HLF: * The outer code rate of a SCCC Block is 1/2 rate. * @ATSCMH_SCCC_CODE_QTR: * The outer code rate of a SCCC Block is 1/4 rate. * @ATSCMH_SCCC_CODE_RES: * Reserved. Should not be used. */ enum }hhsbh)}(h:c:type:`atscmh_sccc_code_mode`h]j[)}(hj|h]hatscmh_sccc_code_mode}(hj~hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjzubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyatscmh_sccc_code_modeuh1hhhhKhhubh { ATSCMH_SCCC_CODE_HLF = 0, ATSCMH_SCCC_CODE_QTR = 1, ATSCMH_SCCC_CODE_RES = 2, }; /** * enum }hhsbh)}(h":c:type:`atscmh_rs_frame_ensemble`h]j[)}(hjh]hatscmh_rs_frame_ensemble}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyatscmh_rs_frame_ensembleuh1hhhhKhhubh - Reed Solomon(RS) frame ensemble. * * @ATSCMH_RSFRAME_ENS_PRI: Primary Ensemble. * @ATSCMH_RSFRAME_ENS_SEC: Secondary Ensemble. */ enum }hhsbh)}(h":c:type:`atscmh_rs_frame_ensemble`h]j[)}(hjh]hatscmh_rs_frame_ensemble}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyatscmh_rs_frame_ensembleuh1hhhhKhhubhk { ATSCMH_RSFRAME_ENS_PRI = 0, ATSCMH_RSFRAME_ENS_SEC = 1, }; /** * enum }hhsbh)}(h:c:type:`atscmh_rs_frame_mode`h]j[)}(hjh]hatscmh_rs_frame_mode}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyatscmh_rs_frame_modeuh1hhhhKhhubhX - Reed Solomon (RS) frame mode. * * @ATSCMH_RSFRAME_PRI_ONLY: * Single Frame: There is only a primary RS Frame for all Group * Regions. * @ATSCMH_RSFRAME_PRI_SEC: * Dual Frame: There are two separate RS Frames: Primary RS Frame for * Group Region A and B and Secondary RS Frame for Group Region C and * D. * @ATSCMH_RSFRAME_RES: * Reserved. Shouldn't be used. */ enum }hhsbh)}(h:c:type:`atscmh_rs_frame_mode`h]j[)}(hjh]hatscmh_rs_frame_mode}(hj hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyatscmh_rs_frame_modeuh1hhhhKhhubh { ATSCMH_RSFRAME_PRI_ONLY = 0, ATSCMH_RSFRAME_PRI_SEC = 1, ATSCMH_RSFRAME_RES = 2, }; /** * enum }hhsbh)}(h:c:type:`atscmh_rs_code_mode`h]j[)}(hj+h]hatscmh_rs_code_mode}(hj-hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj)ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyatscmh_rs_code_modeuh1hhhhKhhubhX2 - ATSC-M/H Reed Solomon modes * @ATSCMH_RSCODE_211_187: Reed Solomon code (211,187). * @ATSCMH_RSCODE_223_187: Reed Solomon code (223,187). * @ATSCMH_RSCODE_235_187: Reed Solomon code (235,187). * @ATSCMH_RSCODE_RES: Reserved. Shouldn't be used. */ enum }hhsbh)}(h:c:type:`atscmh_rs_code_mode`h]j[)}(hjNh]hatscmh_rs_code_mode}(hjPhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjLubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyatscmh_rs_code_modeuh1hhhhKhhubh { ATSCMH_RSCODE_211_187 = 0, ATSCMH_RSCODE_223_187 = 1, ATSCMH_RSCODE_235_187 = 2, ATSCMH_RSCODE_RES = 3, }; #define }hhsbh)}(h*:ref:`NO_STREAM_ID_FILTER `h]j)}(hjqh]hNO_STREAM_ID_FILTER}(hjshhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]refdocjs refdomainj}reftyperef refexplicitrefwarnjy dtv-stream-iduh1hhhhKhhubh (~0U) #define }hhsbh)}(h:ref:`LNA_AUTO `h]j)}(hjh]hLNA_AUTO}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjydtv-lnauh1hhhhKhhubh( (~0U) /** * enum }hhsbh)}(h:c:type:`fecap_scale_params`h]j[)}(hjh]hfecap_scale_params}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfecap_scale_paramsuh1hhhhKhhubhX~ - scale types for the quality parameters. * * @FE_SCALE_NOT_AVAILABLE: That QoS measure is not available. That * could indicate a temporary or a permanent * condition. * @FE_SCALE_DECIBEL: The scale is measured in 0.001 dB steps, typically * used on signal measures. * @FE_SCALE_RELATIVE: The scale is a relative percentual measure, * ranging from 0 (0%) to 0xffff (100%). * @FE_SCALE_COUNTER: The scale counts the occurrence of an event, like * bit error, block error, lapsed time. */ enum }hhsbh)}(h:c:type:`fecap_scale_params`h]j[)}(hjh]hfecap_scale_params}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfecap_scale_paramsuh1hhhhKhhubh { FE_SCALE_NOT_AVAILABLE = 0, FE_SCALE_DECIBEL, FE_SCALE_RELATIVE, FE_SCALE_COUNTER }; /** * struct dtv_stats - Used for reading a DTV status property * * @scale: * Filled with enum }hhsbh)}(h:c:type:`fecap_scale_params`h]j[)}(hjh]hfecap_scale_params}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfecap_scale_paramsuh1hhhhKhhubhX - the scale in usage * for that parameter * * @svalue: * integer value of the measure, for %FE_SCALE_DECIBEL, * used for dB measures. The unit is 0.001 dB. * * @uvalue: * unsigned integer value of the measure, used when @scale is * either %FE_SCALE_RELATIVE or %FE_SCALE_COUNTER. * * For most delivery systems, this will return a single value for each * parameter. * * It should be noticed, however, that new OFDM delivery systems like * ISDB can use different modulation types for each group of carriers. * On such standards, up to 8 groups of statistics can be provided, one * for each carrier group (called "layer" on ISDB). * * In order to be consistent with other delivery systems, the first * value refers to the entire set of carriers ("global"). * * @scale should use the value %FE_SCALE_NOT_AVAILABLE when * the value for the entire group of carriers or from one specific layer * is not provided by the hardware. * * @len should be filled with the latest filled status + 1. * * In other words, for ISDB, those values should be filled like:: * * u.st.stat.svalue[0] = global statistics; * u.st.stat.scale[0] = FE_SCALE_DECIBEL; * u.st.stat.value[1] = layer A statistics; * u.st.stat.scale[1] = FE_SCALE_NOT_AVAILABLE (if not available); * u.st.stat.svalue[2] = layer B statistics; * u.st.stat.scale[2] = FE_SCALE_DECIBEL; * u.st.stat.svalue[3] = layer C statistics; * u.st.stat.scale[3] = FE_SCALE_DECIBEL; * u.st.len = 4; */ struct dtv_stats { __u8 scale; /* enum }hhsbh)}(h:c:type:`fecap_scale_params`h]j[)}(hj"h]hfecap_scale_params}(hj$hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfecap_scale_paramsuh1hhhhKhhubhX type */ union { __u64 uvalue; /* for counters and relative scales */ __s64 svalue; /* for 0.001 dB measures */ } __attribute__ ((packed)); } __attribute__ ((packed)); #define MAX_DTV_STATS 4 /** * struct dtv_fe_stats - store Digital TV frontend statistics * * @len: length of the statistics - if zero, stats is disabled. * @stat: array with digital TV statistics. * * On most standards, @len can either be 0 or 1. However, for ISDB, each * layer is modulated in separate. So, each layer may have its own set * of statistics. If so, stat[0] carries on a global value for the property. * Indexes 1 to 3 means layer A to B. */ struct dtv_fe_stats { __u8 len; struct dtv_stats stat[MAX_DTV_STATS]; } __attribute__ ((packed)); /** * struct dtv_property - store one of frontend command and its value * * @cmd: Digital TV command. * @reserved: Not used. * @u: Union with the values for the command. * @u.data: A unsigned 32 bits integer with command value. * @u.buffer: Struct to store bigger properties. * Currently unused. * @u.buffer.data: an unsigned 32-bits array. * @u.buffer.len: number of elements of the buffer. * @u.buffer.reserved1: Reserved. * @u.buffer.reserved2: Reserved. * @u.st: a &struct dtv_fe_stats array of statistics. * @result: Currently unused. * */ struct dtv_property { __u32 cmd; __u32 reserved[3]; union { __u32 data; struct dtv_fe_stats st; struct { __u8 data[32]; __u32 len; __u32 reserved1[3]; void *reserved2; } buffer; } u; int result; } __attribute__ ((packed)); /* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ #define DTV_IOCTL_MAX_MSGS 64 /** * struct dtv_properties - a set of command/value pairs. * * @num: amount of commands stored at the struct. * @props: a pointer to &struct dtv_property. */ struct dtv_properties { __u32 num; struct dtv_property *props; }; /* * When set, this flag will disable any zigzagging or other "normal" tuning * behavior. Additionally, there will be no automatic monitoring of the lock * status, and hence no frontend events will be generated. If a frontend device * is closed, this flag will be automatically turned off when the device is * reopened read-write. */ #define }hhsbh)}(h::c:func:`FE_TUNE_MODE_ONESHOT `h]j[)}(hjEh]hFE_TUNE_MODE_ONESHOT}(hjGhhhNhNubah}(h]h ](jfjgc-funceh"]h$]h&]uh1jZhjCubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypefunc refexplicitrefwarnjyFE_SET_FRONTEND_TUNE_MODEuh1hhhhKhhubh; 0x01 /* Digital TV Frontend API calls */ #define }hhsbh)}(h :ref:`FE_GET_INFO `h]j)}(hjhh]h FE_GET_INFO}(hjjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjfubah}(h]h ]h"]h$]h&]refdocjs refdomainjtreftyperef refexplicitrefwarnjy fe_get_infouh1hhhhKhhubhG _IOR('o', 61, struct dvb_frontend_info ) #define }hhsbh)}(h::ref:`FE_DISEQC_RESET_OVERLOAD `h]j)}(hjh]hFE_DISEQC_RESET_OVERLOAD}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_diseqc_reset_overloaduh1hhhhKhhubh _IO('o', 62) #define }hhsbh)}(h<:ref:`FE_DISEQC_SEND_MASTER_CMD `h]j)}(hjh]hFE_DISEQC_SEND_MASTER_CMD}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_diseqc_send_master_cmduh1hhhhKhhubh< _IOW('o', 63, struct dvb_diseqc_master_cmd ) #define }hhsbh)}(h>:ref:`FE_DISEQC_RECV_SLAVE_REPLY `h]j)}(hjh]hFE_DISEQC_RECV_SLAVE_REPLY}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_diseqc_recv_slave_replyuh1hhhhKhhubh< _IOR('o', 64, struct dvb_diseqc_slave_reply ) #define }hhsbh)}(h2:ref:`FE_DISEQC_SEND_BURST `h]j)}(hjh]hFE_DISEQC_SEND_BURST}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_diseqc_send_burstuh1hhhhKhhubh _IO('o', 65) /* }hhsbh)}(h-:c:type:`fe_sec_mini_cmd_t `h]j[)}(hjh]hfe_sec_mini_cmd_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_mini_cmduh1hhhhKhhubh */ #define }hhsbh)}(h :ref:`FE_SET_TONE `h]j)}(hj?h]h FE_SET_TONE}(hjAhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]refdocjs refdomainjKreftyperef refexplicitrefwarnjy fe_set_toneuh1hhhhKhhubh& _IO('o', 66) /* }hhsbh)}(h/:c:type:`fe_sec_tone_mode_t `h]j[)}(hjch]hfe_sec_tone_mode_t}(hjehhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjaubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_tone_modeuh1hhhhKhhubh */ #define }hhsbh)}(h&:ref:`FE_SET_VOLTAGE `h]j)}(hjh]hFE_SET_VOLTAGE}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_set_voltageuh1hhhhKhhubh! _IO('o', 67) /* }hhsbh)}(h+:c:type:`fe_sec_voltage_t `h]j[)}(hjh]hfe_sec_voltage_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_voltageuh1hhhhKhhubh */ #define }hhsbh)}(h>:ref:`FE_ENABLE_HIGH_LNB_VOLTAGE `h]j)}(hjh]hFE_ENABLE_HIGH_LNB_VOLTAGE}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_enable_high_lnb_voltageuh1hhhhKhhubh* _IO('o', 68) /* int */ #define }hhsbh)}(h&:ref:`FE_READ_STATUS `h]j)}(hjh]hFE_READ_STATUS}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_read_statusuh1hhhhKhhubh _IOR('o', 69, }hhsbh)}(h!:c:type:`fe_status_t `h]j[)}(hjh]h fe_status_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_statusuh1hhhhKhhubh ) #define }hhsbh)}(h :ref:`FE_READ_BER `h]j)}(hj8h]h FE_READ_BER}(hj:hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]refdocjs refdomainjDreftyperef refexplicitrefwarnjy fe_read_beruh1hhhhKhhubh3 _IOR('o', 70, __u32) #define }hhsbh)}(h8:ref:`FE_READ_SIGNAL_STRENGTH `h]j)}(hj\h]hFE_READ_SIGNAL_STRENGTH}(hj^hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]refdocjs refdomainjhreftyperef refexplicitrefwarnjyfe_read_signal_strengthuh1hhhhKhhubh' _IOR('o', 71, __u16) #define }hhsbh)}(h :ref:`FE_READ_SNR `h]j)}(hjh]h FE_READ_SNR}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj~ubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjy fe_read_snruh1hhhhKhhubh3 _IOR('o', 72, __u16) #define }hhsbh)}(h>:ref:`FE_READ_UNCORRECTED_BLOCKS `h]j)}(hjh]hFE_READ_UNCORRECTED_BLOCKS}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_read_uncorrected_blocksuh1hhhhKhhubh% _IOR('o', 73, __u32) #define }hhsbh)}(h<:ref:`FE_SET_FRONTEND_TUNE_MODE `h]j)}(hjh]hFE_SET_FRONTEND_TUNE_MODE}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_set_frontend_tune_modeuh1hhhhKhhubh2 _IO('o', 81) /* unsigned int */ #define }hhsbh)}(h":ref:`FE_GET_EVENT `h]j)}(hjh]h FE_GET_EVENT}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjy fe_get_eventuh1hhhhKhhubhG _IOR('o', 78, struct dvb_frontend_event ) #define }hhsbh)}(hF:ref:`FE_DISHNETWORK_SEND_LEGACY_CMD `h]j)}(hjh]hFE_DISHNETWORK_SEND_LEGACY_CMD}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_dishnetwork_send_legacy_cmduh1hhhhKhhubh0 _IO('o', 80) /* unsigned int */ #define }hhsbh)}(h+:c:type:`FE_SET_PROPERTY `h]j[)}(hj4h]hFE_SET_PROPERTY}(hj6hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj2ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyFE_GET_PROPERTYuh1hhhhKhhubh? _IOW('o', 82, struct dtv_properties ) #define }hhsbh)}(h(:ref:`FE_GET_PROPERTY `h]j)}(hjWh]hFE_GET_PROPERTY}(hjYhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]refdocjs/ refdomainjcreftyperef refexplicitrefwarnjyfe_get_propertyuh1hhhhKhhubh} _IOR('o', 83, struct dtv_properties ) #if defined(__DVB_CORE__) || !defined(__KERNEL__) /* * }hhsbj)}(h**DEPRECATED**h]h DEPRECATED}hjysbah}(h]h ]h"]h$]h&]uh1jhhubhX: Everything below is deprecated in favor of DVBv5 API * * The DVBv3 only ioctls, structs and enums should not be used on * newer programs, as it doesn't support the second generation of * digital TV standards, nor supports newer delivery systems. * They also don't support modern frontends with usually support multiple * delivery systems. * * Drivers shouldn't use them. * * New applications should use DVBv5 delivery system instead */ /* */ enum }hhsbh)}(h:c:type:`fe_bandwidth`h]j[)}(hjh]h fe_bandwidth}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_bandwidthuh1hhhhKhhubh { }hhsbh)}(h(:ref:`BANDWIDTH_8_MHZ `h]j)}(hjh]hBANDWIDTH_8_MHZ}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjybandwidth-8-mhzuh1hhhhKhhubh , }hhsbh)}(h(:ref:`BANDWIDTH_7_MHZ `h]j)}(hjh]hBANDWIDTH_7_MHZ}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjybandwidth-7-mhzuh1hhhhKhhubh , }hhsbh)}(h(:ref:`BANDWIDTH_6_MHZ `h]j)}(hjh]hBANDWIDTH_6_MHZ}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjybandwidth-6-mhzuh1hhhhKhhubh , }hhsbh)}(h&:ref:`BANDWIDTH_AUTO `h]j)}(hjh]hBANDWIDTH_AUTO}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainj(reftyperef refexplicitrefwarnjybandwidth-autouh1hhhhKhhubh , }hhsbh)}(h(:ref:`BANDWIDTH_5_MHZ `h]j)}(hj@h]hBANDWIDTH_5_MHZ}(hjBhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj>ubah}(h]h ]h"]h$]h&]refdocjs refdomainjLreftyperef refexplicitrefwarnjybandwidth-5-mhzuh1hhhhKhhubh , }hhsbh)}(h*:ref:`BANDWIDTH_10_MHZ `h]j)}(hjdh]hBANDWIDTH_10_MHZ}(hjfhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]refdocjs refdomainjpreftyperef refexplicitrefwarnjybandwidth-10-mhzuh1hhhhKhhubh , }hhsbh)}(h0:ref:`BANDWIDTH_1_712_MHZ `h]j)}(hjh]hBANDWIDTH_1_712_MHZ}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjybandwidth-1-712-mhzuh1hhhhKhhubhJ , }; /* This is kept for legacy userspace support */ typedef enum }hhsbh)}(h:c:type:`fe_sec_voltage`h]j[)}(hjh]hfe_sec_voltage}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_voltageuh1hhhhKhhubh }hhsbh)}(h+:c:type:`fe_sec_voltage_t `h]j[)}(hjh]hfe_sec_voltage_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_voltageuh1hhhhKhhubh; typedef enum }hhsbh)}(h:c:type:`fe_caps`h]j[)}(hjh]hfe_caps}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_capsuh1hhhhKhhubh }hhsbh)}(h:c:type:`fe_caps_t `h]j[)}(hjh]h fe_caps_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_capsuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_type`h]j[)}(hj8h]hfe_type}(hj:hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj6ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_typeuh1hhhhKhhubh }hhsbh)}(h:c:type:`fe_type_t `h]j[)}(hj[h]h fe_type_t}(hj]hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjYubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_typeuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_sec_tone_mode`h]j[)}(hj~h]hfe_sec_tone_mode}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj|ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_tone_modeuh1hhhhKhhubh }hhsbh)}(h/:c:type:`fe_sec_tone_mode_t `h]j[)}(hjh]hfe_sec_tone_mode_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_tone_modeuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_sec_mini_cmd`h]j[)}(hjh]hfe_sec_mini_cmd}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_mini_cmduh1hhhhKhhubh }hhsbh)}(h-:c:type:`fe_sec_mini_cmd_t `h]j[)}(hjh]hfe_sec_mini_cmd_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_sec_mini_cmduh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_status`h]j[)}(hj h]h fe_status}(hj hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_statusuh1hhhhKhhubh }hhsbh)}(h!:c:type:`fe_status_t `h]j[)}(hj-h]h fe_status_t}(hj/hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj+ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_statusuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_spectral_inversion`h]j[)}(hjPh]hfe_spectral_inversion}(hjRhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjNubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_spectral_inversionuh1hhhhKhhubh }hhsbh)}(h9:c:type:`fe_spectral_inversion_t `h]j[)}(hjsh]hfe_spectral_inversion_t}(hjuhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjqubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_spectral_inversionuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_code_rate`h]j[)}(hjh]h fe_code_rate}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_code_rateuh1hhhhKhhubh }hhsbh)}(h':c:type:`fe_code_rate_t `h]j[)}(hjh]hfe_code_rate_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_code_rateuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_modulation`h]j[)}(hjh]h fe_modulation}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_modulationuh1hhhhKhhubh }hhsbh)}(h):c:type:`fe_modulation_t `h]j[)}(hjh]hfe_modulation_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_modulationuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_transmit_mode`h]j[)}(hj"h]hfe_transmit_mode}(hj$hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_transmit_modeuh1hhhhKhhubh }hhsbh)}(h/:c:type:`fe_transmit_mode_t `h]j[)}(hjEh]hfe_transmit_mode_t}(hjGhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjCubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_transmit_modeuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_bandwidth`h]j[)}(hjhh]h fe_bandwidth}(hjjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjfubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_bandwidthuh1hhhhKhhubh }hhsbh)}(h':c:type:`fe_bandwidth_t `h]j[)}(hjh]hfe_bandwidth_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_bandwidthuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_guard_interval`h]j[)}(hjh]hfe_guard_interval}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_guard_intervaluh1hhhhKhhubh }hhsbh)}(h1:c:type:`fe_guard_interval_t `h]j[)}(hjh]hfe_guard_interval_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_guard_intervaluh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_hierarchy`h]j[)}(hjh]h fe_hierarchy}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_hierarchyuh1hhhhKhhubh }hhsbh)}(h':c:type:`fe_hierarchy_t `h]j[)}(hjh]hfe_hierarchy_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_hierarchyuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_pilot`h]j[)}(hj:h]hfe_pilot}(hj<hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj8ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_pilotuh1hhhhKhhubh }hhsbh)}(h:c:type:`fe_pilot_t `h]j[)}(hj]h]h fe_pilot_t}(hj_hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj[ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_pilotuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_rolloff`h]j[)}(hjh]h fe_rolloff}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj~ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_rolloffuh1hhhhKhhubh }hhsbh)}(h#:c:type:`fe_rolloff_t `h]j[)}(hjh]h fe_rolloff_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_rolloffuh1hhhhKhhubh ; typedef enum }hhsbh)}(h:c:type:`fe_delivery_system`h]j[)}(hjh]hfe_delivery_system}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_delivery_systemuh1hhhhKhhubh }hhsbh)}(h3:c:type:`fe_delivery_system_t `h]j[)}(hjh]hfe_delivery_system_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_delivery_systemuh1hhhhKhhubh ; /* DVBv3 structs */ struct dvb_qpsk_parameters { __u32 symbol_rate; /* symbol rate in Symbols per second */ }hhsbh)}(h':c:type:`fe_code_rate_t `h]j[)}(hj h]hfe_code_rate_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_code_rateuh1hhhhKhhubh fec_inner; /* forward error correction (see above) */ }; struct dvb_qam_parameters { __u32 symbol_rate; /* symbol rate in Symbols per second */ }hhsbh)}(h':c:type:`fe_code_rate_t `h]j[)}(hj/h]hfe_code_rate_t}(hj1hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj-ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_code_rateuh1hhhhKhhubhI fec_inner; /* forward error correction (see above) */ }hhsbh)}(h):c:type:`fe_modulation_t `h]j[)}(hjRh]hfe_modulation_t}(hjThhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjPubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_modulationuh1hhhhKhhubh` modulation; /* modulation type (see above) */ }; struct dvb_vsb_parameters { }hhsbh)}(h):c:type:`fe_modulation_t `h]j[)}(hjuh]hfe_modulation_t}(hjwhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjsubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_modulationuh1hhhhKhhubha modulation; /* modulation type (see above) */ }; struct dvb_ofdm_parameters { }hhsbh)}(h':c:type:`fe_bandwidth_t `h]j[)}(hjh]hfe_bandwidth_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_bandwidthuh1hhhhKhhubh bandwidth; }hhsbh)}(h':c:type:`fe_code_rate_t `h]j[)}(hjh]hfe_code_rate_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_code_rateuh1hhhhKhhubhJ code_rate_HP; /* high priority stream code rate */ }hhsbh)}(h':c:type:`fe_code_rate_t `h]j[)}(hjh]hfe_code_rate_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_code_rateuh1hhhhKhhubhI code_rate_LP; /* low priority stream code rate */ }hhsbh)}(h):c:type:`fe_modulation_t `h]j[)}(hjh]hfe_modulation_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_modulationuh1hhhhKhhubhD constellation; /* modulation type (see above) */ }hhsbh)}(h/:c:type:`fe_transmit_mode_t `h]j[)}(hj$h]hfe_transmit_mode_t}(hj&hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj"ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_transmit_modeuh1hhhhKhhubh transmission_mode; }hhsbh)}(h1:c:type:`fe_guard_interval_t `h]j[)}(hjGh]hfe_guard_interval_t}(hjIhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjEubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_guard_intervaluh1hhhhKhhubh guard_interval; }hhsbh)}(h':c:type:`fe_hierarchy_t `h]j[)}(hjjh]hfe_hierarchy_t}(hjlhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjhubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_hierarchyuh1hhhhKhhubh hierarchy_information; }; struct dvb_frontend_parameters { __u32 frequency; /* (absolute) frequency in Hz for DVB-C/DVB-T/ATSC */ /* intermediate frequency in kHz for DVB-S */ }hhsbh)}(h9:c:type:`fe_spectral_inversion_t `h]j[)}(hjh]hfe_spectral_inversion_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyfe_spectral_inversionuh1hhhhKhhubhXv inversion; union { struct dvb_qpsk_parameters qpsk; /* DVB-S */ struct dvb_qam_parameters qam; /* DVB-C */ struct dvb_ofdm_parameters ofdm; /* DVB-T */ struct dvb_vsb_parameters vsb; /* ATSC */ } u; }; struct dvb_frontend_event { }hhsbh)}(h!:c:type:`fe_status_t `h]j[)}(hjh]h fe_status_t}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy fe_statusuh1hhhhKhhubhg status; struct dvb_frontend_parameters parameters; }; /* DVBv3 API calls */ #define }hhsbh)}(h(:ref:`FE_SET_FRONTEND `h]j)}(hjh]hFE_SET_FRONTEND}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_set_frontenduh1hhhhKhhubhH _IOW('o', 76, struct dvb_frontend_parameters ) #define }hhsbh)}(h(:ref:`FE_GET_FRONTEND `h]j)}(hjh]hFE_GET_FRONTEND}(hjhhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjreftyperef refexplicitrefwarnjyfe_get_frontenduh1hhhhKhhubhi _IOR('o', 77, struct dvb_frontend_parameters ) #endif #endif /*_DVBFRONTEND_H_*/}hhsbeh}(h]h ]h"]h$]h&]hhuh1hhKhhhhhVinternal padding after /var/lib/git/docbuild/linux/Documentation/output/frontend.h.rstubh)}(h -*- coding: utf-8; mode: rst -*-h]h -*- coding: utf-8; mode: rst -*-}hj sbah}(h]h ]h"]h$]h&]hhuh1hhhhhh:/var/lib/git/docbuild/linux/Documentation/output/dmx.h.rsthKubeh}(h] frontend-hah ]h"] frontend.hah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hdmx.hh]hdmx.h}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7hhhj.hKubh)}(hX4\/\* SPDX-License-Identifier\: LGPL-2.1+ WITH Linux-syscall-note \*\/ \/\* \* dmx.h \* \* Copyright (C) 2000 Marcus Metzler \ \* \& Ralph Metzler \ \* for convergence integrated media GmbH \*\/ \#ifndef \_UAPI\_DVBDMX\_H\_ \#define \_UAPI\_DVBDMX\_H\_ \#include \ \#ifndef \_\_KERNEL\_\_ \#include \ \#endif \#define DMX\_FILTER\_SIZE 16 \/\*\* \* enum :c:type:`dmx_output` - Output for the demux. \* \* @:c:type:`DMX_OUT_DECODER `\: \* Streaming directly to decoder. \* @:c:type:`DMX_OUT_TAP `\: \* Output going to a memory buffer (to be retrieved via the read command). \* Delivers the stream output to the demux device on which the ioctl \* is called. \* @:c:type:`DMX_OUT_TS_TAP `\: \* Output multiplexed into a new TS (to be retrieved by reading from the \* logical DVR device). Routes output to the logical DVR device \* \`\`\/dev\/dvb\/adapter?\/dvr?\`\`, which delivers a TS multiplexed from all \* filters for which @:c:type:`DMX_OUT_TS_TAP ` was specified. \* @:c:type:`DMX_OUT_TSDEMUX_TAP `\: \* Like @:c:type:`DMX_OUT_TS_TAP ` but retrieved from the DMX device. \*\/ enum :c:type:`dmx_output` \{ :c:type:`DMX_OUT_DECODER `, :c:type:`DMX_OUT_TAP `, :c:type:`DMX_OUT_TS_TAP `, :c:type:`DMX_OUT_TSDEMUX_TAP ` \}; \/\*\* \* :c:type:`dmx_input ` - Input from the demux. \* \* @:c:type:`DMX_IN_FRONTEND `\: Input from a front-end device. \* @:c:type:`DMX_IN_DVR `\: Input from the logical DVR device. \*\/ :c:type:`dmx_input ` \{ :c:type:`DMX_IN_FRONTEND `, :c:type:`DMX_IN_DVR ` \}; \/\*\* \* :c:type:`dmx_ts_pes ` - type of the PES filter. \* \* @:c:type:`DMX_PES_AUDIO0 `\: first audio PID. Also referred as @DMX\_PES\_AUDIO. \* @:c:type:`DMX_PES_VIDEO0 `\: first video PID. Also referred as @DMX\_PES\_VIDEO. \* @:c:type:`DMX_PES_TELETEXT0 `\: first teletext PID. Also referred as @DMX\_PES\_TELETEXT. \* @:c:type:`DMX_PES_SUBTITLE0 `\: first subtitle PID. Also referred as @DMX\_PES\_SUBTITLE. \* @:c:type:`DMX_PES_PCR0 `\: first Program Clock Reference PID. \* Also referred as @DMX\_PES\_PCR. \* \* @:c:type:`DMX_PES_AUDIO1 `\: second audio PID. \* @:c:type:`DMX_PES_VIDEO1 `\: second video PID. \* @:c:type:`DMX_PES_TELETEXT1 `\: second teletext PID. \* @:c:type:`DMX_PES_SUBTITLE1 `\: second subtitle PID. \* @:c:type:`DMX_PES_PCR1 `\: second Program Clock Reference PID. \* \* @:c:type:`DMX_PES_AUDIO2 `\: third audio PID. \* @:c:type:`DMX_PES_VIDEO2 `\: third video PID. \* @:c:type:`DMX_PES_TELETEXT2 `\: third teletext PID. \* @:c:type:`DMX_PES_SUBTITLE2 `\: third subtitle PID. \* @:c:type:`DMX_PES_PCR2 `\: third Program Clock Reference PID. \* \* @:c:type:`DMX_PES_AUDIO3 `\: fourth audio PID. \* @:c:type:`DMX_PES_VIDEO3 `\: fourth video PID. \* @:c:type:`DMX_PES_TELETEXT3 `\: fourth teletext PID. \* @:c:type:`DMX_PES_SUBTITLE3 `\: fourth subtitle PID. \* @:c:type:`DMX_PES_PCR3 `\: fourth Program Clock Reference PID. \* \* @:c:type:`DMX_PES_OTHER `\: any other PID. \*\/ :c:type:`dmx_ts_pes ` \{ :c:type:`DMX_PES_AUDIO0 `, :c:type:`DMX_PES_VIDEO0 `, :c:type:`DMX_PES_TELETEXT0 `, :c:type:`DMX_PES_SUBTITLE0 `, :c:type:`DMX_PES_PCR0 `, :c:type:`DMX_PES_AUDIO1 `, :c:type:`DMX_PES_VIDEO1 `, :c:type:`DMX_PES_TELETEXT1 `, :c:type:`DMX_PES_SUBTITLE1 `, :c:type:`DMX_PES_PCR1 `, :c:type:`DMX_PES_AUDIO2 `, :c:type:`DMX_PES_VIDEO2 `, :c:type:`DMX_PES_TELETEXT2 `, :c:type:`DMX_PES_SUBTITLE2 `, :c:type:`DMX_PES_PCR2 `, :c:type:`DMX_PES_AUDIO3 `, :c:type:`DMX_PES_VIDEO3 `, :c:type:`DMX_PES_TELETEXT3 `, :c:type:`DMX_PES_SUBTITLE3 `, :c:type:`DMX_PES_PCR3 `, :c:type:`DMX_PES_OTHER ` \}; \#define DMX\_PES\_AUDIO :c:type:`DMX_PES_AUDIO0 ` \#define DMX\_PES\_VIDEO :c:type:`DMX_PES_VIDEO0 ` \#define DMX\_PES\_TELETEXT :c:type:`DMX_PES_TELETEXT0 ` \#define DMX\_PES\_SUBTITLE :c:type:`DMX_PES_SUBTITLE0 ` \#define DMX\_PES\_PCR :c:type:`DMX_PES_PCR0 ` \/\*\* \* struct dmx_filter - Specifies a section header filter. \* \* @filter\: bit array with bits to be matched at the section header. \* @mask\: bits that are valid at the filter bit array. \* @mode\: mode of match\: if bit is zero, it will match if equal (positive \* match); if bit is one, it will match if the bit is negated. \* \* Note\: All arrays in this struct have a size of DMX\_FILTER\_SIZE (16 bytes). \*\/ struct dmx_filter \{ \_\_u8 filter[DMX\_FILTER\_SIZE]; \_\_u8 mask[DMX\_FILTER\_SIZE]; \_\_u8 mode[DMX\_FILTER\_SIZE]; \}; \/\*\* \* struct dmx_sct_filter_params - Specifies a section filter. \* \* @pid\: PID to be filtered. \* @filter\: section header filter, as defined by \&struct dmx\_filter. \* @timeout\: maximum time to filter, in milliseconds. \* @flags\: extra flags for the section filter. \* \* Carries the configuration for a MPEG-TS section filter. \* \* The @flags can be\: \* \* - \%DMX\_CHECK\_CRC - only deliver sections where the CRC check succeeded; \* - \%DMX\_ONESHOT - disable the section filter after one section \* has been delivered; \* - \%DMX\_IMMEDIATE\_START - Start filter immediately without requiring a \* \:ref\:\`DMX\_START\`. \*\/ struct dmx_sct_filter_params \{ \_\_u16 pid; struct dmx_filter filter; \_\_u32 timeout; \_\_u32 flags; \#define :c:type:`DMX_CHECK_CRC ` 1 \#define :c:type:`DMX_ONESHOT ` 2 \#define :c:type:`DMX_IMMEDIATE_START ` 4 \}; \/\*\* \* struct dmx_pes_filter_params - Specifies Packetized Elementary Stream (PES) \* filter parameters. \* \* @pid\: PID to be filtered. \* @input\: Demux input, as specified by \&enum dmx\_input. \* @output\: Demux output, as specified by \&enum dmx\_output. \* @pes\_type\: Type of the pes filter, as specified by \&enum dmx\_pes\_type. \* @flags\: Demux PES flags. \*\/ struct dmx_pes_filter_params \{ \_\_u16 pid; :c:type:`dmx_input ` input; enum :c:type:`dmx_output` output; :c:type:`dmx_ts_pes ` pes\_type; \_\_u32 flags; \}; \/\*\* \* struct dmx_stc - Stores System Time Counter (STC) information. \* \* @num\: input data\: number of the STC, from 0 to N. \* @base\: output\: divisor for STC to get 90 kHz clock. \* @stc\: output\: stc in @base \* 90 kHz units. \*\/ struct dmx_stc \{ unsigned int num; unsigned int base; \_\_u64 stc; \}; \/\*\* \* enum :c:type:`dmx_buffer_flags` - DMX memory-mapped buffer flags \* \* @:c:type:`DMX_BUFFER_FLAG_HAD_CRC32_DISCARD `\: \* Indicates that the Kernel discarded one or more frames due to wrong \* CRC32 checksum. \* @:c:type:`DMX_BUFFER_FLAG_TEI `\: \* Indicates that the Kernel has detected a Transport Error indicator \* (TEI) on a filtered pid. \* @:c:type:`DMX_BUFFER_PKT_COUNTER_MISMATCH `\: \* Indicates that the Kernel has detected a packet counter mismatch \* on a filtered pid. \* @:c:type:`DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED `\: \* Indicates that the Kernel has detected one or more frame discontinuity. \* @:c:type:`DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR `\: \* Received at least one packet with a frame discontinuity indicator. \*\/ enum :c:type:`dmx_buffer_flags` \{ :c:type:`DMX_BUFFER_FLAG_HAD_CRC32_DISCARD ` = 1 \<\< 0, :c:type:`DMX_BUFFER_FLAG_TEI ` = 1 \<\< 1, :c:type:`DMX_BUFFER_PKT_COUNTER_MISMATCH ` = 1 \<\< 2, :c:type:`DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED ` = 1 \<\< 3, :c:type:`DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR ` = 1 \<\< 4, \}; \/\*\* \* struct dmx_buffer - dmx buffer info \* \* @index\: id number of the buffer \* @bytesused\: number of bytes occupied by data in the buffer (payload); \* @offset\: for buffers with memory == DMX\_MEMORY\_MMAP; \* offset from the start of the device memory for this plane, \* (or a "cookie" that should be passed to mmap() as offset) \* @length\: size in bytes of the buffer \* @flags\: bit array of buffer flags as defined by \&enum dmx\_buffer\_flags. \* Filled only at \&DMX\_DQBUF. \* @count\: monotonic counter for filled buffers. Helps to identify \* data stream loses. Filled only at \&DMX\_DQBUF. \* \* Contains data exchanged by application and driver using one of the streaming \* I\/O methods. \* \* Please notice that, for \&DMX\_QBUF, only @index should be filled. \* On \&DMX\_DQBUF calls, all fields will be filled by the Kernel. \*\/ struct dmx_buffer \{ \_\_u32 index; \_\_u32 bytesused; \_\_u32 offset; \_\_u32 length; \_\_u32 flags; \_\_u32 count; \}; \/\*\* \* struct dmx_requestbuffers - request dmx buffer information \* \* @count\: number of requested buffers, \* @size\: size in bytes of the requested buffer \* \* Contains data used for requesting a dmx buffer. \* All reserved fields must be set to zero. \*\/ struct dmx_requestbuffers \{ \_\_u32 count; \_\_u32 size; \}; \/\*\* \* struct dmx_exportbuffer - export of dmx buffer as DMABUF file descriptor \* \* @index\: id number of the buffer \* @flags\: flags for newly created file, currently only O\_CLOEXEC is \* supported, refer to manual of open syscall for more details \* @fd\: file descriptor associated with DMABUF (set by driver) \* \* Contains data used for exporting a dmx buffer as DMABUF file descriptor. \* The buffer is identified by a 'cookie' returned by \ :ref:`DMX_QUERYBUF ` \* (identical to the cookie used to mmap() the buffer to userspace). All \* reserved fields must be set to zero. The field reserved0 is expected to \* become a structure 'type' allowing an alternative layout of the structure \* content. Therefore this field should not be used for any other extensions. \*\/ struct dmx_exportbuffer \{ \_\_u32 index; \_\_u32 flags; \_\_s32 fd; \}; \#define \ :ref:`DMX_START ` \_IO('o', 41) \#define \ :ref:`DMX_STOP ` \_IO('o', 42) \#define \ :ref:`DMX_SET_FILTER ` \_IOW('o', 43, struct dmx_sct_filter_params\ ) \#define \ :ref:`DMX_SET_PES_FILTER ` \_IOW('o', 44, struct dmx_pes_filter_params\ ) \#define \ :ref:`DMX_SET_BUFFER_SIZE ` \_IO('o', 45) \#define \ :ref:`DMX_GET_PES_PIDS ` \_IOR('o', 47, \_\_u16[5]) \#define \ :ref:`DMX_GET_STC ` \_IOWR('o', 50, struct dmx_stc\ ) \#define \ :ref:`DMX_ADD_PID ` \_IOW('o', 51, \_\_u16) \#define \ :ref:`DMX_REMOVE_PID ` \_IOW('o', 52, \_\_u16) \#if !defined(\_\_KERNEL\_\_) \/\* This is needed for legacy userspace support \*\/ typedef enum :c:type:`dmx_output` \ :c:type:`dmx_output_t `\ ; typedef :c:type:`dmx_input ` :c:type:`dmx_input_t `; typedef :c:type:`dmx_ts_pes ` :c:type:`dmx_pes_type_t `; typedef struct dmx_filter :c:type:`dmx_filter_t `; \#endif \#define \ :ref:`DMX_REQBUFS ` \_IOWR('o', 60, struct dmx_requestbuffers\ ) \#define \ :ref:`DMX_QUERYBUF ` \_IOWR('o', 61, struct dmx_buffer\ ) \#define \ :ref:`DMX_EXPBUF ` \_IOWR('o', 62, struct dmx_exportbuffer\ ) \#define \ :ref:`DMX_QBUF ` \_IOWR('o', 63, struct dmx_buffer\ ) \#define :ref:`DMX_DQBUF ` \_IOWR('o', 64, struct dmx_buffer\ ) \#endif \/\* \_DVBDMX\_H\_ \*\/h](h/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ /* * dmx.h * * Copyright (C) 2000 Marcus Metzler <}hjHsbj)}(hmarcus@convergence.de\h]hmarcus@convergence.de}hjPsbah}(h]h ]h"]h$]h&]refurimailto:marcus@convergence.deuh1jhjHubh+> * & Ralph Metzler <}hjHsbj)}(hralph@convergence.de\h]hralph@convergence.de}hjdsbah}(h]h ]h"]h$]h&]refurimailto:ralph@convergence.deuh1jhjHubhX> * for convergence integrated media GmbH */ #ifndef _UAPI_DVBDMX_H_ #define _UAPI_DVBDMX_H_ #include #ifndef __KERNEL__ #include #endif #define DMX_FILTER_SIZE 16 /** * enum }hjHsbh)}(h:c:type:`dmx_output`h]j[)}(hjzh]h dmx_output}(hj|hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjxubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_outputuh1hhj.hKhjHubh* - Output for the demux. * * @:c:type:}hjHsbhtitle_reference)}(h`DMX_OUT_DECODER `h]hDMX_OUT_DECODER }hjsbah}(h]h ]h"]h$]h&]uh1jhjHubh8: * Streaming directly to decoder. * @:c:type:}hjHsbj)}(h`DMX_OUT_TAP `h]hDMX_OUT_TAP }hjsbah}(h]h ]h"]h$]h&]uh1jhjHubh: * Output going to a memory buffer (to be retrieved via the read command). * Delivers the stream output to the demux device on which the ioctl * is called. * @:c:type:}hjHsbj)}(h`DMX_OUT_TS_TAP `h]hDMX_OUT_TS_TAP }hjsbah}(h]h ]h"]h$]h&]uh1jhjHubhX: * Output multiplexed into a new TS (to be retrieved by reading from the * logical DVR device). Routes output to the logical DVR device * ``/dev/dvb/adapter?/dvr?``, which delivers a TS multiplexed from all * filters for which @:c:type:}hjHsbj)}(h`DMX_OUT_TS_TAP `h]hDMX_OUT_TS_TAP }hjsbah}(h]h ]h"]h$]h&]uh1jhjHubh was specified. * @:c:type:}hjHsbj)}(h"`DMX_OUT_TSDEMUX_TAP `h]h DMX_OUT_TSDEMUX_TAP }hjsbah}(h]h ]h"]h$]h&]uh1jhjHubh: * Like @:c:type:}hjHsbj)}(h`DMX_OUT_TS_TAP `h]hDMX_OUT_TS_TAP }hjsbah}(h]h ]h"]h$]h&]uh1jhjHubh/ but retrieved from the DMX device. */ enum }hjHsbh)}(h:c:type:`dmx_output`h]j[)}(hj h]h dmx_output}(hj hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_outputuh1hhj.hKhjHubh { }hjHsbh)}(h&:c:type:`DMX_OUT_DECODER `h]j[)}(hj.h]hDMX_OUT_DECODER}(hj0hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj,ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_outputuh1hhj.hKhjHubh , }hjHsbh)}(h":c:type:`DMX_OUT_TAP `h]j[)}(hjQh]h DMX_OUT_TAP}(hjShhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjOubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_outputuh1hhj.hKhjHubh , }hjHsbh)}(h%:c:type:`DMX_OUT_TS_TAP `h]j[)}(hjth]hDMX_OUT_TS_TAP}(hjvhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjrubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_outputuh1hhj.hKhjHubh , }hjHsbh)}(h*:c:type:`DMX_OUT_TSDEMUX_TAP `h]j[)}(hjh]hDMX_OUT_TSDEMUX_TAP}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_outputuh1hhj.hKhjHubh }; /** * }hjHsbh)}(h:c:type:`dmx_input `h]j[)}(hjh]h dmx_input}(hjhhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_inputuh1hhj.hKhjHubh* - Input from the demux. * * @:c:type:}hjHsbj)}(h`DMX_IN_FRONTEND `h]hDMX_IN_FRONTEND }hjsbah}(h]h ]h"]h$]h&]uh1jhjHubh2: Input from a front-end device. * @:c:type:}hjHsbj)}(h`DMX_IN_DVR `h]hDMX_IN_DVR }hjsbah}(h]h ]h"]h$]h&]uh1jhjHubh4: Input from the logical DVR device. */ }hjHsbh)}(h:c:type:`dmx_input `h]j[)}(hj h]h dmx_input}(hj hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_inputuh1hhj.hKhjHubh { }hjHsbh)}(h%:c:type:`DMX_IN_FRONTEND `h]j[)}(hj$ h]hDMX_IN_FRONTEND}(hj& hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj" ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_inputuh1hhj.hKhjHubh , }hjHsbh)}(h :c:type:`DMX_IN_DVR `h]j[)}(hjG h]h DMX_IN_DVR}(hjI hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjE ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_inputuh1hhj.hKhjHubh }; /** * }hjHsbh)}(h#:c:type:`dmx_ts_pes `h]j[)}(hjj h]h dmx_ts_pes}(hjl hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjh ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh, - type of the PES filter. * * @:c:type:}hjHsbj)}(h`DMX_PES_AUDIO0 `h]hDMX_PES_AUDIO0 }hj sbah}(h]h ]h"]h$]h&]uh1jhjHubhH: first audio PID. Also referred as @DMX_PES_AUDIO. * @:c:type:}hjHsbj)}(h`DMX_PES_VIDEO0 `h]hDMX_PES_VIDEO0 }hj sbah}(h]h ]h"]h$]h&]uh1jhjHubhH: first video PID. Also referred as @DMX_PES_VIDEO. * @:c:type:}hjHsbj)}(h"`DMX_PES_TELETEXT0 `h]h DMX_PES_TELETEXT0 }hj sbah}(h]h ]h"]h$]h&]uh1jhjHubhK: first teletext PID. Also referred as @DMX_PES_TELETEXT. * @:c:type:}hjHsbj)}(h"`DMX_PES_SUBTITLE0 `h]h DMX_PES_SUBTITLE0 }hj sbah}(h]h ]h"]h$]h&]uh1jhjHubhK: first subtitle PID. Also referred as @DMX_PES_SUBTITLE. * @:c:type:}hjHsbj)}(h`DMX_PES_PCR0 `h]hDMX_PES_PCR0 }hj sbah}(h]h ]h"]h$]h&]uh1jhjHubhw: first Program Clock Reference PID. * Also referred as @DMX_PES_PCR. * * @:c:type:}hjHsbj)}(h`DMX_PES_AUDIO1 `h]hDMX_PES_AUDIO1 }hj sbah}(h]h ]h"]h$]h&]uh1jhjHubh&: second audio PID. * @:c:type:}hjHsbj)}(h`DMX_PES_VIDEO1 `h]hDMX_PES_VIDEO1 }hj sbah}(h]h ]h"]h$]h&]uh1jhjHubh&: second video PID. * @:c:type:}hjHsbj)}(h"`DMX_PES_TELETEXT1 `h]h DMX_PES_TELETEXT1 }hj !sbah}(h]h ]h"]h$]h&]uh1jhjHubh&: second teletext PID. * @:c:type:}hjHsbj)}(h"`DMX_PES_SUBTITLE1 `h]h DMX_PES_SUBTITLE1 }hj!sbah}(h]h ]h"]h$]h&]uh1jhjHubh&: second subtitle PID. * @:c:type:}hjHsbj)}(h`DMX_PES_PCR1 `h]hDMX_PES_PCR1 }hj-!sbah}(h]h ]h"]h$]h&]uh1jhjHubh>: second Program Clock Reference PID. * * @:c:type:}hjHsbj)}(h`DMX_PES_AUDIO2 `h]hDMX_PES_AUDIO2 }hj?!sbah}(h]h ]h"]h$]h&]uh1jhjHubh%: third audio PID. * @:c:type:}hjHsbj)}(h`DMX_PES_VIDEO2 `h]hDMX_PES_VIDEO2 }hjQ!sbah}(h]h ]h"]h$]h&]uh1jhjHubh%: third video PID. * @:c:type:}hjHsbj)}(h"`DMX_PES_TELETEXT2 `h]h DMX_PES_TELETEXT2 }hjc!sbah}(h]h ]h"]h$]h&]uh1jhjHubh%: third teletext PID. * @:c:type:}hjHsbj)}(h"`DMX_PES_SUBTITLE2 `h]h DMX_PES_SUBTITLE2 }hju!sbah}(h]h ]h"]h$]h&]uh1jhjHubh%: third subtitle PID. * @:c:type:}hjHsbj)}(h`DMX_PES_PCR2 `h]hDMX_PES_PCR2 }hj!sbah}(h]h ]h"]h$]h&]uh1jhjHubh=: third Program Clock Reference PID. * * @:c:type:}hjHsbj)}(h`DMX_PES_AUDIO3 `h]hDMX_PES_AUDIO3 }hj!sbah}(h]h ]h"]h$]h&]uh1jhjHubh&: fourth audio PID. * @:c:type:}hjHsbj)}(h`DMX_PES_VIDEO3 `h]hDMX_PES_VIDEO3 }hj!sbah}(h]h ]h"]h$]h&]uh1jhjHubh&: fourth video PID. * @:c:type:}hjHsbj)}(h"`DMX_PES_TELETEXT3 `h]h DMX_PES_TELETEXT3 }hj!sbah}(h]h ]h"]h$]h&]uh1jhjHubh&: fourth teletext PID. * @:c:type:}hjHsbj)}(h"`DMX_PES_SUBTITLE3 `h]h DMX_PES_SUBTITLE3 }hj!sbah}(h]h ]h"]h$]h&]uh1jhjHubh&: fourth subtitle PID. * @:c:type:}hjHsbj)}(h`DMX_PES_PCR3 `h]hDMX_PES_PCR3 }hj!sbah}(h]h ]h"]h$]h&]uh1jhjHubh>: fourth Program Clock Reference PID. * * @:c:type:}hjHsbj)}(h`DMX_PES_OTHER `h]hDMX_PES_OTHER }hj!sbah}(h]h ]h"]h$]h&]uh1jhjHubh: any other PID. */ }hjHsbh)}(h#:c:type:`dmx_ts_pes `h]j[)}(hj"h]h dmx_ts_pes}(hj "hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj"ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh { }hjHsbh)}(h':c:type:`DMX_PES_AUDIO0 `h]j[)}(hj*"h]hDMX_PES_AUDIO0}(hj,"hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj("ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h':c:type:`DMX_PES_VIDEO0 `h]j[)}(hjM"h]hDMX_PES_VIDEO0}(hjO"hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjK"ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h*:c:type:`DMX_PES_TELETEXT0 `h]j[)}(hjp"h]hDMX_PES_TELETEXT0}(hjr"hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjn"ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h*:c:type:`DMX_PES_SUBTITLE0 `h]j[)}(hj"h]hDMX_PES_SUBTITLE0}(hj"hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj"ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h%:c:type:`DMX_PES_PCR0 `h]j[)}(hj"h]h DMX_PES_PCR0}(hj"hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj"ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h':c:type:`DMX_PES_AUDIO1 `h]j[)}(hj"h]hDMX_PES_AUDIO1}(hj"hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj"ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h':c:type:`DMX_PES_VIDEO1 `h]j[)}(hj"h]hDMX_PES_VIDEO1}(hj"hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj"ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h*:c:type:`DMX_PES_TELETEXT1 `h]j[)}(hj#h]hDMX_PES_TELETEXT1}(hj!#hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj#ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h*:c:type:`DMX_PES_SUBTITLE1 `h]j[)}(hjB#h]hDMX_PES_SUBTITLE1}(hjD#hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj@#ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h%:c:type:`DMX_PES_PCR1 `h]j[)}(hje#h]h DMX_PES_PCR1}(hjg#hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjc#ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h':c:type:`DMX_PES_AUDIO2 `h]j[)}(hj#h]hDMX_PES_AUDIO2}(hj#hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj#ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h':c:type:`DMX_PES_VIDEO2 `h]j[)}(hj#h]hDMX_PES_VIDEO2}(hj#hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj#ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h*:c:type:`DMX_PES_TELETEXT2 `h]j[)}(hj#h]hDMX_PES_TELETEXT2}(hj#hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj#ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h*:c:type:`DMX_PES_SUBTITLE2 `h]j[)}(hj#h]hDMX_PES_SUBTITLE2}(hj#hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj#ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h%:c:type:`DMX_PES_PCR2 `h]j[)}(hj$h]h DMX_PES_PCR2}(hj$hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj$ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h':c:type:`DMX_PES_AUDIO3 `h]j[)}(hj7$h]hDMX_PES_AUDIO3}(hj9$hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj5$ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h':c:type:`DMX_PES_VIDEO3 `h]j[)}(hjZ$h]hDMX_PES_VIDEO3}(hj\$hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjX$ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h*:c:type:`DMX_PES_TELETEXT3 `h]j[)}(hj}$h]hDMX_PES_TELETEXT3}(hj$hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj{$ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h*:c:type:`DMX_PES_SUBTITLE3 `h]j[)}(hj$h]hDMX_PES_SUBTITLE3}(hj$hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj$ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h%:c:type:`DMX_PES_PCR3 `h]j[)}(hj$h]h DMX_PES_PCR3}(hj$hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj$ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh , }hjHsbh)}(h&:c:type:`DMX_PES_OTHER `h]j[)}(hj$h]h DMX_PES_OTHER}(hj$hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj$ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh" }; #define DMX_PES_AUDIO }hjHsbh)}(h':c:type:`DMX_PES_AUDIO0 `h]j[)}(hj %h]hDMX_PES_AUDIO0}(hj %hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj%ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh #define DMX_PES_VIDEO }hjHsbh)}(h':c:type:`DMX_PES_VIDEO0 `h]j[)}(hj,%h]hDMX_PES_VIDEO0}(hj.%hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj*%ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh #define DMX_PES_TELETEXT }hjHsbh)}(h*:c:type:`DMX_PES_TELETEXT0 `h]j[)}(hjO%h]hDMX_PES_TELETEXT0}(hjQ%hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjM%ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh #define DMX_PES_SUBTITLE }hjHsbh)}(h*:c:type:`DMX_PES_SUBTITLE0 `h]j[)}(hjr%h]hDMX_PES_SUBTITLE0}(hjt%hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjp%ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh #define DMX_PES_PCR }hjHsbh)}(h%:c:type:`DMX_PES_PCR0 `h]j[)}(hj%h]h DMX_PES_PCR0}(hj%hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj%ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubhX /** * struct dmx_filter - Specifies a section header filter. * * @filter: bit array with bits to be matched at the section header. * @mask: bits that are valid at the filter bit array. * @mode: mode of match: if bit is zero, it will match if equal (positive * match); if bit is one, it will match if the bit is negated. * * Note: All arrays in this struct have a size of DMX_FILTER_SIZE (16 bytes). */ struct dmx_filter { __u8 filter[DMX_FILTER_SIZE]; __u8 mask[DMX_FILTER_SIZE]; __u8 mode[DMX_FILTER_SIZE]; }; /** * struct dmx_sct_filter_params - Specifies a section filter. * * @pid: PID to be filtered. * @filter: section header filter, as defined by &struct dmx_filter. * @timeout: maximum time to filter, in milliseconds. * @flags: extra flags for the section filter. * * Carries the configuration for a MPEG-TS section filter. * * The @flags can be: * * - %DMX_CHECK_CRC - only deliver sections where the CRC check succeeded; * - %DMX_ONESHOT - disable the section filter after one section * has been delivered; * - %DMX_IMMEDIATE_START - Start filter immediately without requiring a * :ref:`DMX_START`. */ struct dmx_sct_filter_params { __u16 pid; struct dmx_filter filter; __u32 timeout; __u32 flags; #define }hjHsbh)}(h/:c:type:`DMX_CHECK_CRC `h]j[)}(hj%h]h DMX_CHECK_CRC}(hj%hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj%ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjydmx_sct_filter_paramsuh1hhj.hKhjHubh 1 #define }hjHsbh)}(h-:c:type:`DMX_ONESHOT `h]j[)}(hj%h]h DMX_ONESHOT}(hj%hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj%ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjydmx_sct_filter_paramsuh1hhj.hKhjHubh 2 #define }hjHsbh)}(h5:c:type:`DMX_IMMEDIATE_START `h]j[)}(hj%h]hDMX_IMMEDIATE_START}(hj&hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj%ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjydmx_sct_filter_paramsuh1hhj.hKhjHubhX 4 }; /** * struct dmx_pes_filter_params - Specifies Packetized Elementary Stream (PES) * filter parameters. * * @pid: PID to be filtered. * @input: Demux input, as specified by &enum dmx_input. * @output: Demux output, as specified by &enum dmx_output. * @pes_type: Type of the pes filter, as specified by &enum dmx_pes_type. * @flags: Demux PES flags. */ struct dmx_pes_filter_params { __u16 pid; }hjHsbh)}(h:c:type:`dmx_input `h]j[)}(hj!&h]h dmx_input}(hj#&hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj&ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_inputuh1hhj.hKhjHubh input; enum }hjHsbh)}(h:c:type:`dmx_output`h]j[)}(hjD&h]h dmx_output}(hjF&hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjB&ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_outputuh1hhj.hKhjHubh output; }hjHsbh)}(h#:c:type:`dmx_ts_pes `h]j[)}(hjg&h]h dmx_ts_pes}(hji&hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhje&ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubhX pes_type; __u32 flags; }; /** * struct dmx_stc - Stores System Time Counter (STC) information. * * @num: input data: number of the STC, from 0 to N. * @base: output: divisor for STC to get 90 kHz clock. * @stc: output: stc in @base * 90 kHz units. */ struct dmx_stc { unsigned int num; unsigned int base; __u64 stc; }; /** * enum }hjHsbh)}(h:c:type:`dmx_buffer_flags`h]j[)}(hj&h]hdmx_buffer_flags}(hj&hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj&ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjydmx_buffer_flagsuh1hhj.hKhjHubh3 - DMX memory-mapped buffer flags * * @:c:type:}hjHsbj)}(h6`DMX_BUFFER_FLAG_HAD_CRC32_DISCARD `h]h4DMX_BUFFER_FLAG_HAD_CRC32_DISCARD }hj&sbah}(h]h ]h"]h$]h&]uh1jhjHubhv: * Indicates that the Kernel discarded one or more frames due to wrong * CRC32 checksum. * @:c:type:}hjHsbj)}(h(`DMX_BUFFER_FLAG_TEI `h]h&DMX_BUFFER_FLAG_TEI }hj&sbah}(h]h ]h"]h$]h&]uh1jhjHubh~: * Indicates that the Kernel has detected a Transport Error indicator * (TEI) on a filtered pid. * @:c:type:}hjHsbj)}(h4`DMX_BUFFER_PKT_COUNTER_MISMATCH `h]h2DMX_BUFFER_PKT_COUNTER_MISMATCH }hj&sbah}(h]h ]h"]h$]h&]uh1jhjHubhv: * Indicates that the Kernel has detected a packet counter mismatch * on a filtered pid. * @:c:type:}hjHsbj)}(h;`DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED `h]h9DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED }hj&sbah}(h]h ]h"]h$]h&]uh1jhjHubha: * Indicates that the Kernel has detected one or more frame discontinuity. * @:c:type:}hjHsbj)}(h<`DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR `h]h:DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR }hj&sbah}(h]h ]h"]h$]h&]uh1jhjHubh[: * Received at least one packet with a frame discontinuity indicator. */ enum }hjHsbh)}(h:c:type:`dmx_buffer_flags`h]j[)}(hj'h]hdmx_buffer_flags}(hj 'hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj'ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjydmx_buffer_flagsuh1hhj.hKhjHubh { }hjHsbh)}(h>:c:type:`DMX_BUFFER_FLAG_HAD_CRC32_DISCARD `h]j[)}(hj*'h]h!DMX_BUFFER_FLAG_HAD_CRC32_DISCARD}(hj,'hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj('ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjydmx_buffer_flagsuh1hhj.hKhjHubh# = 1 << 0, }hjHsbh)}(h0:c:type:`DMX_BUFFER_FLAG_TEI `h]j[)}(hjM'h]hDMX_BUFFER_FLAG_TEI}(hjO'hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjK'ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjydmx_buffer_flagsuh1hhj.hKhjHubh1 = 1 << 1, }hjHsbh)}(h<:c:type:`DMX_BUFFER_PKT_COUNTER_MISMATCH `h]j[)}(hjp'h]hDMX_BUFFER_PKT_COUNTER_MISMATCH}(hjr'hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjn'ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjydmx_buffer_flagsuh1hhj.hKhjHubh% = 1 << 2, }hjHsbh)}(hC:c:type:`DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED `h]j[)}(hj'h]h&DMX_BUFFER_FLAG_DISCONTINUITY_DETECTED}(hj'hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj'ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjydmx_buffer_flagsuh1hhj.hKhjHubh = 1 << 3, }hjHsbh)}(hD:c:type:`DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR `h]j[)}(hj'h]h'DMX_BUFFER_FLAG_DISCONTINUITY_INDICATOR}(hj'hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj'ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjydmx_buffer_flagsuh1hhj.hKhjHubhXf = 1 << 4, }; /** * struct dmx_buffer - dmx buffer info * * @index: id number of the buffer * @bytesused: number of bytes occupied by data in the buffer (payload); * @offset: for buffers with memory == DMX_MEMORY_MMAP; * offset from the start of the device memory for this plane, * (or a "cookie" that should be passed to mmap() as offset) * @length: size in bytes of the buffer * @flags: bit array of buffer flags as defined by &enum dmx_buffer_flags. * Filled only at &DMX_DQBUF. * @count: monotonic counter for filled buffers. Helps to identify * data stream loses. Filled only at &DMX_DQBUF. * * Contains data exchanged by application and driver using one of the streaming * I/O methods. * * Please notice that, for &DMX_QBUF, only @index should be filled. * On &DMX_DQBUF calls, all fields will be filled by the Kernel. */ struct dmx_buffer { __u32 index; __u32 bytesused; __u32 offset; __u32 length; __u32 flags; __u32 count; }; /** * struct dmx_requestbuffers - request dmx buffer information * * @count: number of requested buffers, * @size: size in bytes of the requested buffer * * Contains data used for requesting a dmx buffer. * All reserved fields must be set to zero. */ struct dmx_requestbuffers { __u32 count; __u32 size; }; /** * struct dmx_exportbuffer - export of dmx buffer as DMABUF file descriptor * * @index: id number of the buffer * @flags: flags for newly created file, currently only O_CLOEXEC is * supported, refer to manual of open syscall for more details * @fd: file descriptor associated with DMABUF (set by driver) * * Contains data used for exporting a dmx buffer as DMABUF file descriptor. * The buffer is identified by a 'cookie' returned by }hjHsbh)}(h":ref:`DMX_QUERYBUF `h]j)}(hj'h]h DMX_QUERYBUF}(hj'hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]refdocjs refdomainj'reftyperef refexplicitrefwarnjy dmx_querybufuh1hhj.hKhjHubhX * (identical to the cookie used to mmap() the buffer to userspace). All * reserved fields must be set to zero. The field reserved0 is expected to * become a structure 'type' allowing an alternative layout of the structure * content. Therefore this field should not be used for any other extensions. */ struct dmx_exportbuffer { __u32 index; __u32 flags; __s32 fd; }; #define }hjHsbh)}(h:ref:`DMX_START `h]j)}(hj'h]h DMX_START}(hj'hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]refdocjs refdomainj (reftyperef refexplicitrefwarnjy dmx_startuh1hhj.hKhjHubh) _IO('o', 41) #define }hjHsbh)}(h:ref:`DMX_STOP `h]j)}(hj!(h]hDMX_STOP}(hj#(hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]refdocjs refdomainj-(reftyperef refexplicitrefwarnjydmx_stopuh1hhj.hKhjHubh* _IO('o', 42) #define }hjHsbh)}(h&:ref:`DMX_SET_FILTER `h]j)}(hjE(h]hDMX_SET_FILTER}(hjG(hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjC(ubah}(h]h ]h"]h$]h&]refdocjs refdomainjQ(reftyperef refexplicitrefwarnjydmx_set_filteruh1hhj.hKhjHubhE _IOW('o', 43, struct dmx_sct_filter_params ) #define }hjHsbh)}(h.:ref:`DMX_SET_PES_FILTER `h]j)}(hji(h]hDMX_SET_PES_FILTER}(hjk(hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjg(ubah}(h]h ]h"]h$]h&]refdocjs refdomainju(reftyperef refexplicitrefwarnjydmx_set_pes_filteruh1hhj.hKhjHubhA _IOW('o', 44, struct dmx_pes_filter_params ) #define }hjHsbh)}(h0:ref:`DMX_SET_BUFFER_SIZE `h]j)}(hj(h]hDMX_SET_BUFFER_SIZE}(hj(hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]refdocjs refdomainj(reftyperef refexplicitrefwarnjydmx_set_buffer_sizeuh1hhj.hKhjHubh _IO('o', 45) #define }hjHsbh)}(h*:ref:`DMX_GET_PES_PIDS `h]j)}(hj(h]hDMX_GET_PES_PIDS}(hj(hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]refdocjs refdomainj(reftyperef refexplicitrefwarnjydmx_get_pes_pidsuh1hhj.hKhjHubh/ _IOR('o', 47, __u16[5]) #define }hjHsbh)}(h :ref:`DMX_GET_STC `h]j)}(hj(h]h DMX_GET_STC}(hj(hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]refdocjs refdomainj(reftyperef refexplicitrefwarnjy dmx_get_stcuh1hhj.hKhjHubh; _IOWR('o', 50, struct dmx_stc ) #define }hjHsbh)}(h :ref:`DMX_ADD_PID `h]j)}(hj(h]h DMX_ADD_PID}(hj(hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]refdocjs refdomainj)reftyperef refexplicitrefwarnjy dmx_add_piduh1hhj.hKhjHubh1 _IOW('o', 51, __u16) #define }hjHsbh)}(h&:ref:`DMX_REMOVE_PID `h]j)}(hj)h]hDMX_REMOVE_PID}(hj)hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]refdocjs refdomainj))reftyperef refexplicitrefwarnjydmx_remove_piduh1hhj.hKhjHubh _IOW('o', 52, __u16) #if !defined(__KERNEL__) /* This is needed for legacy userspace support */ typedef enum }hjHsbh)}(h:c:type:`dmx_output`h]j[)}(hjA)h]h dmx_output}(hjC)hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj?)ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_outputuh1hhj.hKhjHubh }hjHsbh)}(h#:c:type:`dmx_output_t `h]j[)}(hjd)h]h dmx_output_t}(hjf)hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjb)ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_outputuh1hhj.hKhjHubh ; typedef }hjHsbh)}(h:c:type:`dmx_input `h]j[)}(hj)h]h dmx_input}(hj)hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj)ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_inputuh1hhj.hKhjHubh }hjHsbh)}(h!:c:type:`dmx_input_t `h]j[)}(hj)h]h dmx_input_t}(hj)hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj)ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_inputuh1hhj.hKhjHubh ; typedef }hjHsbh)}(h#:c:type:`dmx_ts_pes `h]j[)}(hj)h]h dmx_ts_pes}(hj)hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj)ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh }hjHsbh)}(h':c:type:`dmx_pes_type_t `h]j[)}(hj)h]hdmx_pes_type_t}(hj)hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj)ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_pes_typeuh1hhj.hKhjHubh; typedef struct dmx_filter }hjHsbh)}(h#:c:type:`dmx_filter_t `h]j[)}(hj*h]h dmx_filter_t}(hj*hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj*ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dmx_filteruh1hhj.hKhjHubh; #endif #define }hjHsbh)}(h :ref:`DMX_REQBUFS `h]j)}(hj6*h]h DMX_REQBUFS}(hj8*hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj4*ubah}(h]h ]h"]h$]h&]refdocjs refdomainjB*reftyperef refexplicitrefwarnjy dmx_reqbufsuh1hhj.hKhjHubhF _IOWR('o', 60, struct dmx_requestbuffers ) #define }hjHsbh)}(h":ref:`DMX_QUERYBUF `h]j)}(hjZ*h]h DMX_QUERYBUF}(hj\*hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjX*ubah}(h]h ]h"]h$]h&]refdocjs refdomainjf*reftyperef refexplicitrefwarnjy dmx_querybufuh1hhj.hKhjHubh= _IOWR('o', 61, struct dmx_buffer ) #define }hjHsbh)}(h:ref:`DMX_EXPBUF `h]j)}(hj~*h]h DMX_EXPBUF}(hj*hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj|*ubah}(h]h ]h"]h$]h&]refdocjs refdomainj*reftyperef refexplicitrefwarnjy dmx_expbufuh1hhj.hKhjHubhE _IOWR('o', 62, struct dmx_exportbuffer ) #define }hjHsbh)}(h:ref:`DMX_QBUF `h]j)}(hj*h]hDMX_QBUF}(hj*hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]refdocjs refdomainj*reftyperef refexplicitrefwarnjydmx_qbufuh1hhj.hKhjHubh? _IOWR('o', 63, struct dmx_buffer ) #define }hjHsbh)}(h:ref:`DMX_DQBUF `h]j)}(hj*h]h DMX_DQBUF}(hj*hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]refdocjs refdomainj*reftyperef refexplicitrefwarnjydmx_qbufuh1hhj.hKhjHubhU _IOWR('o', 64, struct dmx_buffer ) #endif /* _DVBDMX_H_ */}hjHsbeh}(h]h ]h"]h$]h&]hhuh1hhMBhj7hhhQinternal padding after /var/lib/git/docbuild/linux/Documentation/output/dmx.h.rstubh)}(h -*- coding: utf-8; mode: rst -*-h]h -*- coding: utf-8; mode: rst -*-}hj*sbah}(h]h ]h"]h$]h&]hhuh1hhj7hhh9/var/lib/git/docbuild/linux/Documentation/output/ca.h.rsthKubeh}(h]dmx-hah ]h"]dmx.hah$]h&]uh1hhhhhhj.hKubh)}(hhh](h)}(hca.hh]hca.h}(hj +hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hhhj*hKubh)}(hX\/\* SPDX-License-Identifier\: LGPL-2.1+ WITH Linux-syscall-note \*\/ \/\* \* ca.h \* \* Copyright (C) 2000 Ralph Metzler \ \* \& Marcus Metzler \ \* for convergence integrated media GmbH \*\/ \#ifndef \_DVBCA\_H\_ \#define \_DVBCA\_H\_ \/\*\* \* struct ca_slot_info - CA slot interface types and info. \* \* @num\: slot number. \* @type\: slot type. \* @flags\: flags applicable to the slot. \* \* This struct stores the CA slot information. \* \* @type can be\: \* \* - \%CA\_CI - CI high level interface; \* - \%CA\_CI\_LINK - CI link layer level interface; \* - \%CA\_CI\_PHYS - CI physical layer level interface; \* - \%CA\_DESCR - built-in descrambler; \* - \%CA\_SC -simple smart card interface. \* \* @flags can be\: \* \* - \%CA\_CI\_MODULE\_PRESENT - module (or card) inserted; \* - \%CA\_CI\_MODULE\_READY - module is ready for usage. \*\/ struct ca_slot_info \{ int num; int type; \#define :c:type:`CA_CI ` 1 \#define :c:type:`CA_CI_LINK ` 2 \#define :c:type:`CA_CI_PHYS ` 4 \#define :c:type:`CA_DESCR ` 8 \#define :c:type:`CA_SC ` 128 unsigned int flags; \#define :c:type:`CA_CI_MODULE_PRESENT ` 1 \#define :c:type:`CA_CI_MODULE_READY ` 2 \}; \/\*\* \* struct ca_descr_info - descrambler types and info. \* \* @num\: number of available descramblers (keys). \* @type\: type of supported scrambling system. \* \* Identifies the number of descramblers and their type. \* \* @type can be\: \* \* - \%CA\_ECD - European Common Descrambler (ECD) hardware; \* - \%CA\_NDS - Videoguard (NDS) hardware; \* - \%CA\_DSS - Distributed Sample Scrambling (DSS) hardware. \*\/ struct ca_descr_info \{ unsigned int num; unsigned int type; \#define :c:type:`CA_ECD ` 1 \#define :c:type:`CA_NDS ` 2 \#define :c:type:`CA_DSS ` 4 \}; \/\*\* \* struct ca_caps - CA slot interface capabilities. \* \* @slot\_num\: total number of CA card and module slots. \* @slot\_type\: bitmap with all supported types as defined at \* \&struct ca_slot_info (e. g. \%CA\_CI, \%CA\_CI\_LINK, etc). \* @descr\_num\: total number of descrambler slots (keys) \* @descr\_type\: bitmap with all supported types as defined at \* \&struct ca_descr_info (e. g. \%CA\_ECD, \%CA\_NDS, etc). \*\/ struct ca_caps \{ unsigned int slot\_num; unsigned int slot\_type; unsigned int descr\_num; unsigned int descr\_type; \}; \/\*\* \* struct ca_msg - a message to\/from a CI-CAM \* \* @index\: unused \* @type\: unused \* @length\: length of the message \* @msg\: message \* \* This struct carries a message to be send\/received from a CI CA module. \*\/ struct ca_msg \{ unsigned int index; unsigned int type; unsigned int length; unsigned char msg[256]; \}; \/\*\* \* struct ca_descr - CA descrambler control words info \* \* @index\: CA Descrambler slot \* @parity\: control words parity, where 0 means even and 1 means odd \* @cw\: CA Descrambler control words \*\/ struct ca_descr \{ unsigned int index; unsigned int parity; unsigned char cw[8]; \}; \#define \ :ref:`CA_RESET ` \_IO('o', 128) \#define \ :ref:`CA_GET_CAP ` \_IOR('o', 129, struct ca_caps\ ) \#define \ :ref:`CA_GET_SLOT_INFO ` \_IOR('o', 130, struct ca_slot_info\ ) \#define \ :ref:`CA_GET_DESCR_INFO ` \_IOR('o', 131, struct ca_descr_info\ ) \#define \ :ref:`CA_GET_MSG ` \_IOR('o', 132, struct ca_msg\ ) \#define \ :ref:`CA_SEND_MSG ` \_IOW('o', 133, struct ca_msg\ ) \#define \ :ref:`CA_SET_DESCR ` \_IOW('o', 134, struct ca_descr\ ) \#if !defined(\_\_KERNEL\_\_) \/\* This is needed for legacy userspace support \*\/ typedef struct ca_slot_info :c:type:`ca_slot_info_t `; typedef struct ca_descr_info :c:type:`ca_descr_info_t `; typedef struct ca_caps :c:type:`ca_caps_t `; typedef struct ca_msg :c:type:`ca_msg_t `; typedef struct ca_descr :c:type:`ca_descr_t `; \#endif \#endifh](h/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ /* * ca.h * * Copyright (C) 2000 Ralph Metzler <}hj+sbj)}(hralph@convergence.de\h]hralph@convergence.de}hj+sbah}(h]h ]h"]h$]h&]refurimailto:ralph@convergence.deuh1jhj+ubh+> * & Marcus Metzler <}hj+sbj)}(hmarcus@convergence.de\h]hmarcus@convergence.de}hj3+sbah}(h]h ]h"]h$]h&]refurimailto:marcus@convergence.deuh1jhj+ubhXg> * for convergence integrated media GmbH */ #ifndef _DVBCA_H_ #define _DVBCA_H_ /** * struct ca_slot_info - CA slot interface types and info. * * @num: slot number. * @type: slot type. * @flags: flags applicable to the slot. * * This struct stores the CA slot information. * * @type can be: * * - %CA_CI - CI high level interface; * - %CA_CI_LINK - CI link layer level interface; * - %CA_CI_PHYS - CI physical layer level interface; * - %CA_DESCR - built-in descrambler; * - %CA_SC -simple smart card interface. * * @flags can be: * * - %CA_CI_MODULE_PRESENT - module (or card) inserted; * - %CA_CI_MODULE_READY - module is ready for usage. */ struct ca_slot_info { int num; int type; #define }hj+sbh)}(h:c:type:`CA_CI `h]j[)}(hjI+h]hCA_CI}(hjK+hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjG+ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_slot_infouh1hhj*hKhj+ubh 1 #define }hj+sbh)}(h#:c:type:`CA_CI_LINK `h]j[)}(hjl+h]h CA_CI_LINK}(hjn+hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhjj+ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_slot_infouh1hhj*hKhj+ubh 2 #define }hj+sbh)}(h#:c:type:`CA_CI_PHYS `h]j[)}(hj+h]h CA_CI_PHYS}(hj+hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj+ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_slot_infouh1hhj*hKhj+ubh 4 #define }hj+sbh)}(h!:c:type:`CA_DESCR `h]j[)}(hj+h]hCA_DESCR}(hj+hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj+ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_slot_infouh1hhj*hKhj+ubh 8 #define }hj+sbh)}(h:c:type:`CA_SC `h]j[)}(hj+h]hCA_SC}(hj+hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj+ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_slot_infouh1hhj*hKhj+ubh4 128 unsigned int flags; #define }hj+sbh)}(h-:c:type:`CA_CI_MODULE_PRESENT `h]j[)}(hj+h]hCA_CI_MODULE_PRESENT}(hj+hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj+ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_slot_infouh1hhj*hKhj+ubh 1 #define }hj+sbh)}(h+:c:type:`CA_CI_MODULE_READY `h]j[)}(hj,h]hCA_CI_MODULE_READY}(hj,hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj,ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_slot_infouh1hhj*hKhj+ubhX- 2 }; /** * struct ca_descr_info - descrambler types and info. * * @num: number of available descramblers (keys). * @type: type of supported scrambling system. * * Identifies the number of descramblers and their type. * * @type can be: * * - %CA_ECD - European Common Descrambler (ECD) hardware; * - %CA_NDS - Videoguard (NDS) hardware; * - %CA_DSS - Distributed Sample Scrambling (DSS) hardware. */ struct ca_descr_info { unsigned int num; unsigned int type; #define }hj+sbh)}(h :c:type:`CA_ECD `h]j[)}(hj>,h]hCA_ECD}(hj@,hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj<,ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_descr_infouh1hhj*hKhj+ubh 1 #define }hj+sbh)}(h :c:type:`CA_NDS `h]j[)}(hja,h]hCA_NDS}(hjc,hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj_,ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_descr_infouh1hhj*hKhj+ubh 2 #define }hj+sbh)}(h :c:type:`CA_DSS `h]j[)}(hj,h]hCA_DSS}(hj,hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj,ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_descr_infouh1hhj*hKhj+ubhXg 4 }; /** * struct ca_caps - CA slot interface capabilities. * * @slot_num: total number of CA card and module slots. * @slot_type: bitmap with all supported types as defined at * &struct ca_slot_info (e. g. %CA_CI, %CA_CI_LINK, etc). * @descr_num: total number of descrambler slots (keys) * @descr_type: bitmap with all supported types as defined at * &struct ca_descr_info (e. g. %CA_ECD, %CA_NDS, etc). */ struct ca_caps { unsigned int slot_num; unsigned int slot_type; unsigned int descr_num; unsigned int descr_type; }; /** * struct ca_msg - a message to/from a CI-CAM * * @index: unused * @type: unused * @length: length of the message * @msg: message * * This struct carries a message to be send/received from a CI CA module. */ struct ca_msg { unsigned int index; unsigned int type; unsigned int length; unsigned char msg[256]; }; /** * struct ca_descr - CA descrambler control words info * * @index: CA Descrambler slot * @parity: control words parity, where 0 means even and 1 means odd * @cw: CA Descrambler control words */ struct ca_descr { unsigned int index; unsigned int parity; unsigned char cw[8]; }; #define }hj+sbh)}(h:ref:`CA_RESET `h]j)}(hj,h]hCA_RESET}(hj,hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]refdocjs refdomainj,reftyperef refexplicitrefwarnjyca_resetuh1hhj*hKhj+ubh$ _IO('o', 128) #define }hj+sbh)}(h:ref:`CA_GET_CAP `h]j)}(hj,h]h CA_GET_CAP}(hj,hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]refdocjs refdomainj,reftyperef refexplicitrefwarnjy ca_get_capuh1hhj*hKhj+ubh5 _IOR('o', 129, struct ca_caps ) #define }hj+sbh)}(h*:ref:`CA_GET_SLOT_INFO `h]j)}(hj,h]hCA_GET_SLOT_INFO}(hj,hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]refdocjs refdomainj,reftyperef refexplicitrefwarnjyca_get_slot_infouh1hhj*hKhj+ubh4 _IOR('o', 130, struct ca_slot_info ) #define }hj+sbh)}(h,:ref:`CA_GET_DESCR_INFO `h]j)}(hj-h]hCA_GET_DESCR_INFO}(hj-hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]refdocjs refdomainj-reftyperef refexplicitrefwarnjyca_get_descr_infouh1hhj*hKhj+ubh4 _IOR('o', 131, struct ca_descr_info ) #define }hj+sbh)}(h:ref:`CA_GET_MSG `h]j)}(hj7-h]h CA_GET_MSG}(hj9-hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj5-ubah}(h]h ]h"]h$]h&]refdocjs refdomainjC-reftyperef refexplicitrefwarnjy ca_get_msguh1hhj*hKhj+ubh4 _IOR('o', 132, struct ca_msg ) #define }hj+sbh)}(h :ref:`CA_SEND_MSG `h]j)}(hj[-h]h CA_SEND_MSG}(hj]-hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhjY-ubah}(h]h ]h"]h$]h&]refdocjs refdomainjg-reftyperef refexplicitrefwarnjy ca_send_msguh1hhj*hKhj+ubh3 _IOW('o', 133, struct ca_msg ) #define }hj+sbh)}(h":ref:`CA_SET_DESCR `h]j)}(hj-h]h CA_SET_DESCR}(hj-hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj}-ubah}(h]h ]h"]h$]h&]refdocjs refdomainj-reftyperef refexplicitrefwarnjy ca_set_descruh1hhj*hKhj+ubh _IOW('o', 134, struct ca_descr ) #if !defined(__KERNEL__) /* This is needed for legacy userspace support */ typedef struct ca_slot_info }hj+sbh)}(h':c:type:`ca_slot_info_t `h]j[)}(hj-h]hca_slot_info_t}(hj-hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj-ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_slot_infouh1hhj*hKhj+ubh ; typedef struct ca_descr_info }hj+sbh)}(h):c:type:`ca_descr_info_t `h]j[)}(hj-h]hca_descr_info_t}(hj-hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj-ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy ca_descr_infouh1hhj*hKhj+ubh; typedef struct ca_caps }hj+sbh)}(h:c:type:`ca_caps_t `h]j[)}(hj-h]h ca_caps_t}(hj-hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj-ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyca_capsuh1hhj*hKhj+ubh; typedef struct ca_msg }hj+sbh)}(h:c:type:`ca_msg_t `h]j[)}(hj .h]hca_msg_t}(hj.hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj .ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyca_msguh1hhj*hKhj+ubh; typedef struct ca_descr }hj+sbh)}(h:c:type:`ca_descr_t `h]j[)}(hj/.h]h ca_descr_t}(hj1.hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj-.ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjyca_descruh1hhj*hKhj+ubh; #endif #endif}hj+sbeh}(h]h ]h"]h$]h&]hhuh1hhMhj+hhhPinternal padding after /var/lib/git/docbuild/linux/Documentation/output/ca.h.rstubh)}(h -*- coding: utf-8; mode: rst -*-h]h -*- coding: utf-8; mode: rst -*-}hjW.sbah}(h]h ]h"]h$]h&]hhuh1hhj+hhh:/var/lib/git/docbuild/linux/Documentation/output/net.h.rsthKubeh}(h]ca-hah ]h"]ca.hah$]h&]uh1hhhhhhj*hKubh)}(hhh](h)}(hnet.hh]hnet.h}(hjq.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjn.hhhje.hKubh)}(hX\/\* SPDX-License-Identifier\: LGPL-2.1+ WITH Linux-syscall-note \*\/ \/\* \* net.h \* \* Copyright (C) 2000 Marcus Metzler \ \* \& Ralph Metzler \ \* for convergence integrated media GmbH \*\/ \#ifndef \_DVBNET\_H\_ \#define \_DVBNET\_H\_ \#include \ \/\*\* \* struct dvb_net_if - describes a DVB network interface \* \* @pid\: Packet ID (PID) of the MPEG-TS that contains data \* @if\_num\: number of the Digital TV interface. \* @feedtype\: Encapsulation type of the feed. \* \* A MPEG-TS stream may contain packet IDs with IP packages on it. \* This struct describes it, and the type of encoding. \* \* @feedtype can be\: \* \* - \%DVB\_NET\_FEEDTYPE\_MPE for MPE encoding \* - \%DVB\_NET\_FEEDTYPE\_ULE for ULE encoding. \*\/ struct dvb_net_if \{ \_\_u16 pid; \_\_u16 if\_num; \_\_u8 feedtype; \#define :c:type:`DVB_NET_FEEDTYPE_MPE ` 0 \/\* multi protocol encapsulation \*\/ \#define :c:type:`DVB_NET_FEEDTYPE_ULE ` 1 \/\* ultra lightweight encapsulation \*\/ \}; \#define \ :ref:`NET_ADD_IF ` \_IOWR('o', 52, struct dvb_net_if\ ) \#define \ :ref:`NET_REMOVE_IF ` \_IO('o', 53) \#define \ :ref:`NET_GET_IF ` \_IOWR('o', 54, struct dvb_net_if\ ) \/\* binary compatibility cruft\: \*\/ struct \_\_dvb\_net\_if\_old \{ \_\_u16 pid; \_\_u16 if\_num; \}; \#define \_\_NET\_ADD\_IF\_OLD \_IOWR('o', 52, struct \_\_dvb\_net\_if\_old) \#define \_\_NET\_GET\_IF\_OLD \_IOWR('o', 54, struct \_\_dvb\_net\_if\_old) \#endif \/\*\_DVBNET\_H\_\*\/h](h/* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */ /* * net.h * * Copyright (C) 2000 Marcus Metzler <}hj.sbj)}(hmarcus@convergence.de\h]hmarcus@convergence.de}hj.sbah}(h]h ]h"]h$]h&]refurimailto:marcus@convergence.deuh1jhj.ubh+> * & Ralph Metzler <}hj.sbj)}(hralph@convergence.de\h]hralph@convergence.de}hj.sbah}(h]h ]h"]h$]h&]refurimailto:ralph@convergence.deuh1jhj.ubhX> * for convergence integrated media GmbH */ #ifndef _DVBNET_H_ #define _DVBNET_H_ #include /** * struct dvb_net_if - describes a DVB network interface * * @pid: Packet ID (PID) of the MPEG-TS that contains data * @if_num: number of the Digital TV interface. * @feedtype: Encapsulation type of the feed. * * A MPEG-TS stream may contain packet IDs with IP packages on it. * This struct describes it, and the type of encoding. * * @feedtype can be: * * - %DVB_NET_FEEDTYPE_MPE for MPE encoding * - %DVB_NET_FEEDTYPE_ULE for ULE encoding. */ struct dvb_net_if { __u16 pid; __u16 if_num; __u8 feedtype; #define }hj.sbh)}(h+:c:type:`DVB_NET_FEEDTYPE_MPE `h]j[)}(hj.h]hDVB_NET_FEEDTYPE_MPE}(hj.hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj.ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dvb_net_ifuh1hhje.hKhj.ubh4 0 /* multi protocol encapsulation */ #define }hj.sbh)}(h+:c:type:`DVB_NET_FEEDTYPE_ULE `h]j[)}(hj.h]hDVB_NET_FEEDTYPE_ULE}(hj.hhhNhNubah}(h]h ](jfjgc-typeeh"]h$]h&]uh1jZhj.ubah}(h]h ]h"]h$]h&]refdocjs refdomainjgreftypetype refexplicitrefwarnjy dvb_net_ifuh1hhje.hKhj.ubh> 1 /* ultra lightweight encapsulation */ }; #define }hj.sbh)}(h:ref:`NET_ADD_IF `h]j)}(hj.h]h NET_ADD_IF}(hj.hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]refdocjs refdomainj/reftyperef refexplicitrefwarnjy net_add_ifuh1hhje.hKhj.ubh4 _IOWR('o', 52, struct dvb_net_if ) #define }hj.sbh)}(h$:ref:`NET_REMOVE_IF `h]j)}(hj/h]h NET_REMOVE_IF}(hj/hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]refdocjs refdomainj'/reftyperef refexplicitrefwarnjy net_remove_ifuh1hhje.hKhj.ubh _IO('o', 53) #define }hj.sbh)}(h:ref:`NET_GET_IF `h]j)}(hj?/h]h NET_GET_IF}(hjA/hhhNhNubah}(h]h ](jfstdstd-refeh"]h$]h&]uh1jhj=/ubah}(h]h ]h"]h$]h&]refdocjs refdomainjK/reftyperef refexplicitrefwarnjy net_get_ifuh1hhje.hKhj.ubhX[ _IOWR('o', 54, struct dvb_net_if ) /* binary compatibility cruft: */ struct __dvb_net_if_old { __u16 pid; __u16 if_num; }; #define __NET_ADD_IF_OLD _IOWR('o', 52, struct __dvb_net_if_old) #define __NET_GET_IF_OLD _IOWR('o', 54, struct __dvb_net_if_old) #endif /*_DVBNET_H_*/}hj.sbeh}(h]h ]h"]h$]h&]hhuh1hhMhjn.hhhQinternal padding after /var/lib/git/docbuild/linux/Documentation/output/net.h.rstubeh}(h]net-hah ]h"]net.hah$]h&]uh1hhhhhhje.hKubeh}(h]digital-tv-uapi-headersah ]h"]digital tv uapi headersah$]h&]uh1hhhhhhhhKubeh}(h]digital-tv-uapi-header-filesah ]h"]digital tv uapi header filesah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj/error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j}/jz/ju/jr/j4j1j+j+jk.jh.jm/jj/u nametypes}(j}/ju/j4j+jk.jm/uh}(jz/hjr/hj1hj+j7jh.j+jj/jn.u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.