2011-05-06 23:32:03 +08:00
|
|
|
<section id="FE_GET_SET_PROPERTY">
|
2009-10-25 08:18:46 +08:00
|
|
|
<title>FE_GET_PROPERTY/FE_SET_PROPERTY</title>
|
|
|
|
|
2011-05-06 23:32:03 +08:00
|
|
|
<programlisting>
|
|
|
|
/* Reserved fields should be set to 0 */
|
|
|
|
struct dtv_property {
|
|
|
|
__u32 cmd;
|
|
|
|
union {
|
|
|
|
__u32 data;
|
|
|
|
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 {
|
|
|
|
__u32 num;
|
|
|
|
struct dtv_property *props;
|
|
|
|
};
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
<section id="FE_GET_PROPERTY">
|
|
|
|
<title>FE_GET_PROPERTY</title>
|
|
|
|
<para>DESCRIPTION
|
|
|
|
</para>
|
|
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
|
|
align="char">
|
|
|
|
<para>This ioctl call returns one or more frontend properties. This call only
|
|
|
|
requires read-only access to the device.</para>
|
|
|
|
</entry>
|
|
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>SYNOPSIS
|
|
|
|
</para>
|
|
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
|
|
align="char">
|
|
|
|
<para>int ioctl(int fd, int request = <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>,
|
|
|
|
dtv_properties ⋆props);</para>
|
|
|
|
</entry>
|
|
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>PARAMETERS
|
|
|
|
</para>
|
|
|
|
<informaltable><tgroup cols="2"><tbody><row><entry align="char">
|
|
|
|
<para>int fd</para>
|
|
|
|
</entry><entry
|
|
|
|
align="char">
|
|
|
|
<para>File descriptor returned by a previous call to open().</para>
|
|
|
|
</entry>
|
|
|
|
</row><row><entry
|
|
|
|
align="char">
|
|
|
|
<para>int num</para>
|
|
|
|
</entry><entry
|
|
|
|
align="char">
|
|
|
|
<para>Equals <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link> for this command.</para>
|
|
|
|
</entry>
|
|
|
|
</row><row><entry
|
|
|
|
align="char">
|
|
|
|
<para>struct dtv_property *props</para>
|
|
|
|
</entry><entry
|
|
|
|
align="char">
|
|
|
|
<para>Points to the location where the front-end property commands are stored.</para>
|
|
|
|
</entry>
|
|
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>ERRORS</para>
|
|
|
|
<informaltable><tgroup cols="2"><tbody><row>
|
|
|
|
<entry align="char"><para>EINVAL</para></entry>
|
|
|
|
<entry align="char"><para>Invalid parameter(s) received or number of parameters out of the range.</para></entry>
|
|
|
|
</row><row>
|
|
|
|
<entry align="char"><para>ENOMEM</para></entry>
|
|
|
|
<entry align="char"><para>Out of memory.</para></entry>
|
|
|
|
</row><row>
|
|
|
|
<entry align="char"><para>EFAULT</para></entry>
|
|
|
|
<entry align="char"><para>Failure while copying data from/to userspace.</para></entry>
|
|
|
|
</row><row>
|
|
|
|
<entry align="char"><para>EOPNOTSUPP</para></entry>
|
|
|
|
<entry align="char"><para>Property type not supported.</para></entry>
|
|
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="FE_SET_PROPERTY">
|
|
|
|
<title>FE_SET_PROPERTY</title>
|
|
|
|
<para>DESCRIPTION
|
|
|
|
</para>
|
|
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
|
|
align="char">
|
|
|
|
<para>This ioctl call sets one or more frontend properties. This call only
|
|
|
|
requires read-only access to the device.</para>
|
|
|
|
</entry>
|
|
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>SYNOPSIS
|
|
|
|
</para>
|
|
|
|
<informaltable><tgroup cols="1"><tbody><row><entry
|
|
|
|
align="char">
|
|
|
|
<para>int ioctl(int fd, int request = <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>,
|
|
|
|
dtv_properties ⋆props);</para>
|
|
|
|
</entry>
|
|
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>PARAMETERS
|
|
|
|
</para>
|
|
|
|
<informaltable><tgroup cols="2"><tbody><row><entry align="char">
|
|
|
|
<para>int fd</para>
|
|
|
|
</entry><entry
|
|
|
|
align="char">
|
|
|
|
<para>File descriptor returned by a previous call to open().</para>
|
|
|
|
</entry>
|
|
|
|
</row><row><entry
|
|
|
|
align="char">
|
|
|
|
<para>int num</para>
|
|
|
|
</entry><entry
|
|
|
|
align="char">
|
|
|
|
<para>Equals <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link> for this command.</para>
|
|
|
|
</entry>
|
|
|
|
</row><row><entry
|
|
|
|
align="char">
|
|
|
|
<para>struct dtv_property *props</para>
|
|
|
|
</entry><entry
|
|
|
|
align="char">
|
|
|
|
<para>Points to the location where the front-end property commands are stored.</para>
|
|
|
|
</entry>
|
|
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
<para>ERRORS
|
|
|
|
</para>
|
|
|
|
<informaltable><tgroup cols="2"><tbody><row>
|
|
|
|
<entry align="char"><para>EINVAL</para></entry>
|
|
|
|
<entry align="char"><para>Invalid parameter(s) received or number of parameters out of the range.</para></entry>
|
|
|
|
</row><row>
|
|
|
|
<entry align="char"><para>ENOMEM</para></entry>
|
|
|
|
<entry align="char"><para>Out of memory.</para></entry>
|
|
|
|
</row><row>
|
|
|
|
<entry align="char"><para>EFAULT</para></entry>
|
|
|
|
<entry align="char"><para>Failure while copying data from/to userspace.</para></entry>
|
|
|
|
</row><row>
|
|
|
|
<entry align="char"><para>EOPNOTSUPP</para></entry>
|
|
|
|
<entry align="char"><para>Property type not supported.</para></entry>
|
|
|
|
</row></tbody></tgroup></informaltable>
|
|
|
|
</section>
|
|
|
|
|
2011-05-23 18:12:27 +08:00
|
|
|
<section>
|
|
|
|
<title>Property types</title>
|
2011-05-06 23:32:03 +08:00
|
|
|
<para>
|
|
|
|
On <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>/<link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>,
|
|
|
|
the actual action is determined by the dtv_property cmd/data pairs. With one single ioctl, is possible to
|
|
|
|
get/set up to 64 properties. The actual meaning of each property is described on the next sections.
|
|
|
|
</para>
|
|
|
|
|
2011-05-23 18:12:27 +08:00
|
|
|
<para>The available frontend property types are:</para>
|
2011-05-06 23:32:03 +08:00
|
|
|
<programlisting>
|
|
|
|
#define DTV_UNDEFINED 0
|
|
|
|
#define DTV_TUNE 1
|
|
|
|
#define DTV_CLEAR 2
|
|
|
|
#define DTV_FREQUENCY 3
|
|
|
|
#define DTV_MODULATION 4
|
|
|
|
#define DTV_BANDWIDTH_HZ 5
|
|
|
|
#define DTV_INVERSION 6
|
|
|
|
#define DTV_DISEQC_MASTER 7
|
|
|
|
#define DTV_SYMBOL_RATE 8
|
|
|
|
#define DTV_INNER_FEC 9
|
|
|
|
#define DTV_VOLTAGE 10
|
|
|
|
#define DTV_TONE 11
|
|
|
|
#define DTV_PILOT 12
|
|
|
|
#define DTV_ROLLOFF 13
|
|
|
|
#define DTV_DISEQC_SLAVE_REPLY 14
|
|
|
|
#define DTV_FE_CAPABILITY_COUNT 15
|
|
|
|
#define DTV_FE_CAPABILITY 16
|
|
|
|
#define DTV_DELIVERY_SYSTEM 17
|
|
|
|
#define DTV_ISDBT_PARTIAL_RECEPTION 18
|
|
|
|
#define DTV_ISDBT_SOUND_BROADCASTING 19
|
|
|
|
#define DTV_ISDBT_SB_SUBCHANNEL_ID 20
|
|
|
|
#define DTV_ISDBT_SB_SEGMENT_IDX 21
|
|
|
|
#define DTV_ISDBT_SB_SEGMENT_COUNT 22
|
|
|
|
#define DTV_ISDBT_LAYERA_FEC 23
|
|
|
|
#define DTV_ISDBT_LAYERA_MODULATION 24
|
|
|
|
#define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25
|
|
|
|
#define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26
|
|
|
|
#define DTV_ISDBT_LAYERB_FEC 27
|
|
|
|
#define DTV_ISDBT_LAYERB_MODULATION 28
|
|
|
|
#define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29
|
|
|
|
#define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30
|
|
|
|
#define DTV_ISDBT_LAYERC_FEC 31
|
|
|
|
#define DTV_ISDBT_LAYERC_MODULATION 32
|
|
|
|
#define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33
|
|
|
|
#define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34
|
|
|
|
#define DTV_API_VERSION 35
|
|
|
|
#define DTV_CODE_RATE_HP 36
|
|
|
|
#define DTV_CODE_RATE_LP 37
|
|
|
|
#define DTV_GUARD_INTERVAL 38
|
|
|
|
#define DTV_TRANSMISSION_MODE 39
|
|
|
|
#define DTV_HIERARCHY 40
|
|
|
|
#define DTV_ISDBT_LAYER_ENABLED 41
|
|
|
|
#define DTV_ISDBS_TS_ID 42
|
|
|
|
</programlisting>
|
2011-05-23 18:12:27 +08:00
|
|
|
</section>
|
2011-05-06 23:32:03 +08:00
|
|
|
|
|
|
|
<section id="fe_property_common">
|
|
|
|
<title>Parameters that are common to all Digital TV standards</title>
|
|
|
|
<section id="DTV_FREQUENCY">
|
|
|
|
<title><constant>DTV_FREQUENCY</constant></title>
|
|
|
|
|
|
|
|
<para>Central frequency of the channel, in HZ.</para>
|
|
|
|
|
|
|
|
<para>Notes:</para>
|
|
|
|
<para>1)For ISDB-T, the channels are usually transmitted with an offset of 143kHz.
|
|
|
|
E.g. a valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of
|
|
|
|
the channel which is 6MHz.</para>
|
|
|
|
|
|
|
|
<para>2)As in ISDB-Tsb the channel consists of only one or three segments the
|
|
|
|
frequency step is 429kHz, 3*429 respectively. As for ISDB-T the
|
|
|
|
central frequency of the channel is expected.</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="DTV_BANDWIDTH_HZ">
|
|
|
|
<title><constant>DTV_BANDWIDTH_HZ</constant></title>
|
|
|
|
|
|
|
|
<para>Bandwidth for the channel, in HZ.</para>
|
|
|
|
|
|
|
|
<para>Possible values:
|
2011-05-09 03:17:20 +08:00
|
|
|
<constant>1712000</constant>,
|
|
|
|
<constant>5000000</constant>,
|
2011-05-06 23:32:03 +08:00
|
|
|
<constant>6000000</constant>,
|
|
|
|
<constant>7000000</constant>,
|
2011-05-09 03:17:20 +08:00
|
|
|
<constant>8000000</constant>,
|
|
|
|
<constant>10000000</constant>.
|
2011-05-06 23:32:03 +08:00
|
|
|
</para>
|
|
|
|
|
|
|
|
<para>Notes:</para>
|
|
|
|
|
|
|
|
<para>1) For ISDB-T it should be always 6000000Hz (6MHz)</para>
|
|
|
|
<para>2) For ISDB-Tsb it can vary depending on the number of connected segments</para>
|
|
|
|
<para>3) Bandwidth doesn't apply for DVB-C transmissions, as the bandwidth
|
|
|
|
for DVB-C depends on the symbol rate</para>
|
|
|
|
<para>4) Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from
|
|
|
|
other parameters (DTV_ISDBT_SB_SEGMENT_IDX,
|
|
|
|
DTV_ISDBT_SB_SEGMENT_COUNT).</para>
|
2011-05-09 03:17:20 +08:00
|
|
|
<para>5) DVB-T supports 6, 7 and 8MHz.</para>
|
|
|
|
<para>6) In addition, DVB-T2 supports 1.172, 5 and 10MHz.</para>
|
2011-05-06 23:32:03 +08:00
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="DTV_DELIVERY_SYSTEM">
|
|
|
|
<title><constant>DTV_DELIVERY_SYSTEM</constant></title>
|
|
|
|
|
|
|
|
<para>Specifies the type of Delivery system</para>
|
|
|
|
|
|
|
|
<para>Possible values: </para>
|
|
|
|
<programlisting>
|
|
|
|
typedef enum fe_delivery_system {
|
|
|
|
SYS_UNDEFINED,
|
|
|
|
SYS_DVBC_ANNEX_AC,
|
|
|
|
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_DMBTH,
|
|
|
|
SYS_CMMB,
|
|
|
|
SYS_DAB,
|
2011-05-09 03:17:20 +08:00
|
|
|
SYS_DVBT2,
|
2011-05-06 23:32:03 +08:00
|
|
|
} fe_delivery_system_t;
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="DTV_TRANSMISSION_MODE">
|
|
|
|
<title><constant>DTV_TRANSMISSION_MODE</constant></title>
|
|
|
|
|
|
|
|
<para>Specifies the number of carriers used by the standard</para>
|
|
|
|
|
|
|
|
<para>Possible values are:</para>
|
|
|
|
<programlisting>
|
|
|
|
typedef enum fe_transmit_mode {
|
|
|
|
TRANSMISSION_MODE_2K,
|
|
|
|
TRANSMISSION_MODE_8K,
|
|
|
|
TRANSMISSION_MODE_AUTO,
|
2011-05-09 03:17:20 +08:00
|
|
|
TRANSMISSION_MODE_4K,
|
|
|
|
TRANSMISSION_MODE_1K,
|
|
|
|
TRANSMISSION_MODE_16K,
|
|
|
|
TRANSMISSION_MODE_32K,
|
2011-05-06 23:32:03 +08:00
|
|
|
} fe_transmit_mode_t;
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
<para>Notes:</para>
|
|
|
|
<para>1) ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called
|
|
|
|
'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K</para>
|
|
|
|
|
|
|
|
<para>2) If <constant>DTV_TRANSMISSION_MODE</constant> is set the <constant>TRANSMISSION_MODE_AUTO</constant> the
|
|
|
|
hardware will try to find the correct FFT-size (if capable) and will
|
|
|
|
use TMCC to fill in the missing parameters.</para>
|
2011-05-09 03:17:20 +08:00
|
|
|
<para>3) DVB-T specifies 2K and 8K as valid sizes.</para>
|
|
|
|
<para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para>
|
2011-05-06 23:32:03 +08:00
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="DTV_GUARD_INTERVAL">
|
|
|
|
<title><constant>DTV_GUARD_INTERVAL</constant></title>
|
|
|
|
|
|
|
|
<para>Possible values are:</para>
|
|
|
|
<programlisting>
|
|
|
|
typedef enum fe_guard_interval {
|
|
|
|
GUARD_INTERVAL_1_32,
|
|
|
|
GUARD_INTERVAL_1_16,
|
|
|
|
GUARD_INTERVAL_1_8,
|
|
|
|
GUARD_INTERVAL_1_4,
|
2011-05-09 03:17:20 +08:00
|
|
|
GUARD_INTERVAL_AUTO,
|
|
|
|
GUARD_INTERVAL_1_128,
|
|
|
|
GUARD_INTERVAL_19_128,
|
|
|
|
GUARD_INTERVAL_19_256,
|
2011-05-06 23:32:03 +08:00
|
|
|
} fe_guard_interval_t;
|
|
|
|
</programlisting>
|
|
|
|
|
|
|
|
<para>Notes:</para>
|
|
|
|
<para>1) If <constant>DTV_GUARD_INTERVAL</constant> is set the <constant>GUARD_INTERVAL_AUTO</constant> the hardware will
|
|
|
|
try to find the correct guard interval (if capable) and will use TMCC to fill
|
|
|
|
in the missing parameters.</para>
|
2011-05-09 03:17:20 +08:00
|
|
|
<para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para>
|
2011-05-06 23:32:03 +08:00
|
|
|
</section>
|
|
|
|
</section>
|
|
|
|
|
2009-09-17 10:22:05 +08:00
|
|
|
<section id="isdbt">
|
|
|
|
<title>ISDB-T frontend</title>
|
|
|
|
<para>This section describes shortly what are the possible parameters in the Linux
|
|
|
|
DVB-API called "S2API" and now DVB API 5 in order to tune an ISDB-T/ISDB-Tsb
|
|
|
|
demodulator:</para>
|
|
|
|
|
|
|
|
<para>This ISDB-T/ISDB-Tsb API extension should reflect all information
|
|
|
|
needed to tune any ISDB-T/ISDB-Tsb hardware. Of course it is possible
|
|
|
|
that some very sophisticated devices won't need certain parameters to
|
|
|
|
tune.</para>
|
|
|
|
|
|
|
|
<para>The information given here should help application writers to know how
|
|
|
|
to handle ISDB-T and ISDB-Tsb hardware using the Linux DVB-API.</para>
|
|
|
|
|
|
|
|
<para>The details given here about ISDB-T and ISDB-Tsb are just enough to
|
|
|
|
basically show the dependencies between the needed parameter values,
|
|
|
|
but surely some information is left out. For more detailed information
|
|
|
|
see the following documents:</para>
|
|
|
|
|
|
|
|
<para>ARIB STD-B31 - "Transmission System for Digital Terrestrial
|
|
|
|
Television Broadcasting" and</para>
|
|
|
|
<para>ARIB TR-B14 - "Operational Guidelines for Digital Terrestrial
|
|
|
|
Television Broadcasting".</para>
|
|
|
|
|
|
|
|
<para>In order to read this document one has to have some knowledge the
|
|
|
|
channel structure in ISDB-T and ISDB-Tsb. I.e. it has to be known to
|
|
|
|
the reader that an ISDB-T channel consists of 13 segments, that it can
|
|
|
|
have up to 3 layer sharing those segments, and things like that.</para>
|
|
|
|
|
|
|
|
<para>Parameters used by ISDB-T and ISDB-Tsb.</para>
|
|
|
|
|
2009-09-17 12:25:41 +08:00
|
|
|
<section id="isdbt-new-parms">
|
|
|
|
<title>ISDB-T only parameters</title>
|
2009-09-17 10:22:05 +08:00
|
|
|
|
|
|
|
<section id="isdbt-part-rec">
|
|
|
|
<title><constant>DTV_ISDBT_PARTIAL_RECEPTION</constant></title>
|
|
|
|
|
|
|
|
<para><constant>If DTV_ISDBT_SOUND_BROADCASTING</constant> is '0' this bit-field represents whether
|
|
|
|
the channel is in partial reception mode or not.</para>
|
|
|
|
|
|
|
|
<para>If '1' <constant>DTV_ISDBT_LAYERA_*</constant> values are assigned to the center segment and
|
|
|
|
<constant>DTV_ISDBT_LAYERA_SEGMENT_COUNT</constant> has to be '1'.</para>
|
|
|
|
|
|
|
|
<para>If in addition <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'
|
|
|
|
<constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> represents whether this ISDB-Tsb channel
|
|
|
|
is consisting of one segment and layer or three segments and two layers.</para>
|
|
|
|
|
|
|
|
<para>Possible values: 0, 1, -1 (AUTO)</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="isdbt-sound-bcast">
|
|
|
|
<title><constant>DTV_ISDBT_SOUND_BROADCASTING</constant></title>
|
|
|
|
|
|
|
|
<para>This field represents whether the other DTV_ISDBT_*-parameters are
|
|
|
|
referring to an ISDB-T and an ISDB-Tsb channel. (See also
|
|
|
|
<constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>).</para>
|
|
|
|
|
2009-09-17 12:25:41 +08:00
|
|
|
<para>Possible values: 0, 1, -1 (AUTO)</para>
|
2009-09-17 10:22:05 +08:00
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="isdbt-sb-ch-id">
|
|
|
|
<title><constant>DTV_ISDBT_SB_SUBCHANNEL_ID</constant></title>
|
|
|
|
|
|
|
|
<para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para>
|
|
|
|
|
|
|
|
<para>(Note of the author: This might not be the correct description of the
|
|
|
|
<constant>SUBCHANNEL-ID</constant> in all details, but it is my understanding of the technical
|
|
|
|
background needed to program a device)</para>
|
|
|
|
|
|
|
|
<para>An ISDB-Tsb channel (1 or 3 segments) can be broadcasted alone or in a
|
|
|
|
set of connected ISDB-Tsb channels. In this set of channels every
|
|
|
|
channel can be received independently. The number of connected
|
|
|
|
ISDB-Tsb segment can vary, e.g. depending on the frequency spectrum
|
|
|
|
bandwidth available.</para>
|
|
|
|
|
|
|
|
<para>Example: Assume 8 ISDB-Tsb connected segments are broadcasted. The
|
|
|
|
broadcaster has several possibilities to put those channels in the
|
|
|
|
air: Assuming a normal 13-segment ISDB-T spectrum he can align the 8
|
|
|
|
segments from position 1-8 to 5-13 or anything in between.</para>
|
|
|
|
|
|
|
|
<para>The underlying layer of segments are subchannels: each segment is
|
|
|
|
consisting of several subchannels with a predefined IDs. A sub-channel
|
|
|
|
is used to help the demodulator to synchronize on the channel.</para>
|
|
|
|
|
|
|
|
<para>An ISDB-T channel is always centered over all sub-channels. As for
|
|
|
|
the example above, in ISDB-Tsb it is no longer as simple as that.</para>
|
|
|
|
|
|
|
|
<para><constant>The DTV_ISDBT_SB_SUBCHANNEL_ID</constant> parameter is used to give the
|
|
|
|
sub-channel ID of the segment to be demodulated.</para>
|
|
|
|
|
|
|
|
<para>Possible values: 0 .. 41, -1 (AUTO)</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="isdbt-sb-seg-idx">
|
|
|
|
|
|
|
|
<title><constant>DTV_ISDBT_SB_SEGMENT_IDX</constant></title>
|
|
|
|
|
|
|
|
<para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para>
|
|
|
|
|
|
|
|
<para><constant>DTV_ISDBT_SB_SEGMENT_IDX</constant> gives the index of the segment to be
|
|
|
|
demodulated for an ISDB-Tsb channel where several of them are
|
|
|
|
transmitted in the connected manner.</para>
|
|
|
|
|
|
|
|
<para>Possible values: 0 .. <constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant> - 1</para>
|
|
|
|
|
|
|
|
<para>Note: This value cannot be determined by an automatic channel search.</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="isdbt-sb-seg-cnt">
|
|
|
|
<title><constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant></title>
|
|
|
|
|
|
|
|
<para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para>
|
|
|
|
|
|
|
|
<para><constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant> gives the total count of connected ISDB-Tsb
|
|
|
|
channels.</para>
|
|
|
|
|
|
|
|
<para>Possible values: 1 .. 13</para>
|
|
|
|
|
|
|
|
<para>Note: This value cannot be determined by an automatic channel search.</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="isdb-hierq-layers">
|
|
|
|
<title>Hierarchical layers</title>
|
|
|
|
|
|
|
|
<para>ISDB-T channels can be coded hierarchically. As opposed to DVB-T in
|
|
|
|
ISDB-T hierarchical layers can be decoded simultaneously. For that
|
|
|
|
reason a ISDB-T demodulator has 3 viterbi and 3 reed-solomon-decoders.</para>
|
|
|
|
|
|
|
|
<para>ISDB-T has 3 hierarchical layers which each can use a part of the
|
|
|
|
available segments. The total number of segments over all layers has
|
|
|
|
to 13 in ISDB-T.</para>
|
|
|
|
|
|
|
|
<section id="isdbt-layer-ena">
|
|
|
|
<title><constant>DTV_ISDBT_LAYER_ENABLED</constant></title>
|
|
|
|
|
|
|
|
<para>Hierarchical reception in ISDB-T is achieved by enabling or disabling
|
|
|
|
layers in the decoding process. Setting all bits of
|
|
|
|
<constant>DTV_ISDBT_LAYER_ENABLED</constant> to '1' forces all layers (if applicable) to be
|
|
|
|
demodulated. This is the default.</para>
|
|
|
|
|
|
|
|
<para>If the channel is in the partial reception mode
|
|
|
|
(<constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> = 1) the central segment can be decoded
|
|
|
|
independently of the other 12 segments. In that mode layer A has to
|
|
|
|
have a <constant>SEGMENT_COUNT</constant> of 1.</para>
|
|
|
|
|
|
|
|
<para>In ISDB-Tsb only layer A is used, it can be 1 or 3 in ISDB-Tsb
|
|
|
|
according to <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>. <constant>SEGMENT_COUNT</constant> must be filled
|
|
|
|
accordingly.</para>
|
|
|
|
|
|
|
|
<para>Possible values: 0x1, 0x2, 0x4 (|-able)</para>
|
|
|
|
|
|
|
|
<para><constant>DTV_ISDBT_LAYER_ENABLED[0:0]</constant> - layer A</para>
|
|
|
|
<para><constant>DTV_ISDBT_LAYER_ENABLED[1:1]</constant> - layer B</para>
|
|
|
|
<para><constant>DTV_ISDBT_LAYER_ENABLED[2:2]</constant> - layer C</para>
|
|
|
|
<para><constant>DTV_ISDBT_LAYER_ENABLED[31:3]</constant> unused</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="isdbt-layer-fec">
|
|
|
|
<title><constant>DTV_ISDBT_LAYER*_FEC</constant></title>
|
|
|
|
|
|
|
|
<para>Possible values: <constant>FEC_AUTO</constant>, <constant>FEC_1_2</constant>, <constant>FEC_2_3</constant>, <constant>FEC_3_4</constant>, <constant>FEC_5_6</constant>, <constant>FEC_7_8</constant></para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="isdbt-layer-mod">
|
|
|
|
<title><constant>DTV_ISDBT_LAYER*_MODULATION</constant></title>
|
|
|
|
|
|
|
|
<para>Possible values: <constant>QAM_AUTO</constant>, QP<constant>SK, QAM_16</constant>, <constant>QAM_64</constant>, <constant>DQPSK</constant></para>
|
|
|
|
|
|
|
|
<para>Note: If layer C is <constant>DQPSK</constant> layer B has to be <constant>DQPSK</constant>. If layer B is <constant>DQPSK</constant>
|
|
|
|
and <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>=0 layer has to be <constant>DQPSK</constant>.</para>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="isdbt-layer-seg-cnt">
|
|
|
|
<title><constant>DTV_ISDBT_LAYER*_SEGMENT_COUNT</constant></title>
|
|
|
|
|
|
|
|
<para>Possible values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1 (AUTO)</para>
|
|
|
|
|
|
|
|
<para>Note: Truth table for <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> and
|
|
|
|
<constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> and <constant>LAYER</constant>*_SEGMENT_COUNT</para>
|
|
|
|
|
|
|
|
<informaltable id="isdbt-layer_seg-cnt-table">
|
|
|
|
<tgroup cols="6">
|
|
|
|
|
|
|
|
<tbody>
|
|
|
|
<row>
|
|
|
|
<entry>PR</entry>
|
|
|
|
<entry>SB</entry>
|
|
|
|
<entry>Layer A width</entry>
|
|
|
|
<entry>Layer B width</entry>
|
|
|
|
<entry>Layer C width</entry>
|
|
|
|
<entry>total width</entry>
|
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>0</entry>
|
|
|
|
<entry>0</entry>
|
|
|
|
<entry>1 .. 13</entry>
|
|
|
|
<entry>1 .. 13</entry>
|
|
|
|
<entry>1 .. 13</entry>
|
|
|
|
<entry>13</entry>
|
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>1</entry>
|
|
|
|
<entry>0</entry>
|
|
|
|
<entry>1</entry>
|
|
|
|
<entry>1 .. 13</entry>
|
|
|
|
<entry>1 .. 13</entry>
|
|
|
|
<entry>13</entry>
|
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>0</entry>
|
|
|
|
<entry>1</entry>
|
|
|
|
<entry>1</entry>
|
|
|
|
<entry>0</entry>
|
|
|
|
<entry>0</entry>
|
|
|
|
<entry>1</entry>
|
|
|
|
</row>
|
|
|
|
|
|
|
|
<row>
|
|
|
|
<entry>1</entry>
|
|
|
|
<entry>1</entry>
|
|
|
|
<entry>1</entry>
|
|
|
|
<entry>2</entry>
|
|
|
|
<entry>0</entry>
|
|
|
|
<entry>13</entry>
|
|
|
|
</row>
|
|
|
|
</tbody>
|
|
|
|
|
|
|
|
</tgroup>
|
|
|
|
</informaltable>
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<section id="isdbt_layer_t_interl">
|
|
|
|
<title><constant>DTV_ISDBT_LAYER*_TIME_INTERLEAVING</constant></title>
|
|
|
|
|
|
|
|
<para>Possible values: 0, 1, 2, 3, -1 (AUTO)</para>
|
|
|
|
|
|
|
|
<para>Note: The real inter-leaver depth-names depend on the mode (fft-size); the values
|
|
|
|
here are referring to what can be found in the TMCC-structure -
|
|
|
|
independent of the mode.</para>
|
|
|
|
</section>
|
|
|
|
</section>
|
|
|
|
</section>
|
2011-05-09 03:17:20 +08:00
|
|
|
<section id="dvbt2-params">
|
|
|
|
<title>DVB-T2 parameters</title>
|
|
|
|
|
|
|
|
<para>This section covers parameters that apply only to the DVB-T2 delivery method. DVB-T2
|
|
|
|
support is currently in the early stages development so expect this section to grow
|
|
|
|
and become more detailed with time.</para>
|
|
|
|
|
|
|
|
<section id="dvbt2-plp-id">
|
|
|
|
<title><constant>DTV_DVBT2_PLP_ID</constant></title>
|
|
|
|
|
|
|
|
<para>DVB-T2 supports Physical Layer Pipes (PLP) to allow transmission of
|
|
|
|
many data types via a single multiplex. The API will soon support this
|
|
|
|
at which point this section will be expanded.</para>
|
|
|
|
</section>
|
|
|
|
</section>
|
2009-09-17 10:22:05 +08:00
|
|
|
</section>
|
2009-10-25 08:18:46 +08:00
|
|
|
</section>
|