1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2*4882a593Smuzhiyun.. c:namespace:: V4L 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun.. _VIDIOC_ENUMSTD: 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun******************************************* 7*4882a593Smuzhiyunioctl VIDIOC_ENUMSTD, VIDIOC_SUBDEV_ENUMSTD 8*4882a593Smuzhiyun******************************************* 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunName 11*4882a593Smuzhiyun==== 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunVIDIOC_ENUMSTD - VIDIOC_SUBDEV_ENUMSTD - Enumerate supported video standards 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunSynopsis 16*4882a593Smuzhiyun======== 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun.. c:macro:: VIDIOC_ENUMSTD 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun``int ioctl(int fd, VIDIOC_ENUMSTD, struct v4l2_standard *argp)`` 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun.. c:macro:: VIDIOC_SUBDEV_ENUMSTD 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun``int ioctl(int fd, VIDIOC_SUBDEV_ENUMSTD, struct v4l2_standard *argp)`` 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunArguments 27*4882a593Smuzhiyun========= 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun``fd`` 30*4882a593Smuzhiyun File descriptor returned by :c:func:`open()`. 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun``argp`` 33*4882a593Smuzhiyun Pointer to struct :c:type:`v4l2_standard`. 34*4882a593Smuzhiyun 35*4882a593SmuzhiyunDescription 36*4882a593Smuzhiyun=========== 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunTo query the attributes of a video standard, especially a custom (driver 39*4882a593Smuzhiyundefined) one, applications initialize the ``index`` field of struct 40*4882a593Smuzhiyun:c:type:`v4l2_standard` and call the :ref:`VIDIOC_ENUMSTD` 41*4882a593Smuzhiyunioctl with a pointer to this structure. Drivers fill the rest of the 42*4882a593Smuzhiyunstructure or return an ``EINVAL`` error code when the index is out of 43*4882a593Smuzhiyunbounds. To enumerate all standards applications shall begin at index 44*4882a593Smuzhiyunzero, incrementing by one until the driver returns ``EINVAL``. Drivers may 45*4882a593Smuzhiyunenumerate a different set of standards after switching the video input 46*4882a593Smuzhiyunor output. [#f1]_ 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun.. c:type:: v4l2_standard 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun.. flat-table:: struct v4l2_standard 53*4882a593Smuzhiyun :header-rows: 0 54*4882a593Smuzhiyun :stub-columns: 0 55*4882a593Smuzhiyun :widths: 1 1 2 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun * - __u32 58*4882a593Smuzhiyun - ``index`` 59*4882a593Smuzhiyun - Number of the video standard, set by the application. 60*4882a593Smuzhiyun * - :ref:`v4l2_std_id <v4l2-std-id>` 61*4882a593Smuzhiyun - ``id`` 62*4882a593Smuzhiyun - The bits in this field identify the standard as one of the common 63*4882a593Smuzhiyun standards listed in :ref:`v4l2-std-id`, or if bits 32 to 63 are 64*4882a593Smuzhiyun set as custom standards. Multiple bits can be set if the hardware 65*4882a593Smuzhiyun does not distinguish between these standards, however separate 66*4882a593Smuzhiyun indices do not indicate the opposite. The ``id`` must be unique. 67*4882a593Smuzhiyun No other enumerated struct :c:type:`v4l2_standard` structure, 68*4882a593Smuzhiyun for this input or output anyway, can contain the same set of bits. 69*4882a593Smuzhiyun * - __u8 70*4882a593Smuzhiyun - ``name``\ [24] 71*4882a593Smuzhiyun - Name of the standard, a NUL-terminated ASCII string, for example: 72*4882a593Smuzhiyun "PAL-B/G", "NTSC Japan". This information is intended for the 73*4882a593Smuzhiyun user. 74*4882a593Smuzhiyun * - struct :c:type:`v4l2_fract` 75*4882a593Smuzhiyun - ``frameperiod`` 76*4882a593Smuzhiyun - The frame period (not field period) is numerator / denominator. 77*4882a593Smuzhiyun For example M/NTSC has a frame period of 1001 / 30000 seconds. 78*4882a593Smuzhiyun * - __u32 79*4882a593Smuzhiyun - ``framelines`` 80*4882a593Smuzhiyun - Total lines per frame including blanking, e. g. 625 for B/PAL. 81*4882a593Smuzhiyun * - __u32 82*4882a593Smuzhiyun - ``reserved``\ [4] 83*4882a593Smuzhiyun - Reserved for future extensions. Drivers must set the array to 84*4882a593Smuzhiyun zero. 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun.. c:type:: v4l2_fract 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun.. flat-table:: struct v4l2_fract 92*4882a593Smuzhiyun :header-rows: 0 93*4882a593Smuzhiyun :stub-columns: 0 94*4882a593Smuzhiyun :widths: 1 1 2 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun * - __u32 97*4882a593Smuzhiyun - ``numerator`` 98*4882a593Smuzhiyun - 99*4882a593Smuzhiyun * - __u32 100*4882a593Smuzhiyun - ``denominator`` 101*4882a593Smuzhiyun - 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun.. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun.. _v4l2-std-id: 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun.. flat-table:: typedef v4l2_std_id 108*4882a593Smuzhiyun :header-rows: 0 109*4882a593Smuzhiyun :stub-columns: 0 110*4882a593Smuzhiyun :widths: 1 1 2 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun * - __u64 113*4882a593Smuzhiyun - ``v4l2_std_id`` 114*4882a593Smuzhiyun - This type is a set, each bit representing another video standard 115*4882a593Smuzhiyun as listed below and in :ref:`video-standards`. The 32 most 116*4882a593Smuzhiyun significant bits are reserved for custom (driver defined) video 117*4882a593Smuzhiyun standards. 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun.. code-block:: c 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun #define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001) 123*4882a593Smuzhiyun #define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002) 124*4882a593Smuzhiyun #define V4L2_STD_PAL_G ((v4l2_std_id)0x00000004) 125*4882a593Smuzhiyun #define V4L2_STD_PAL_H ((v4l2_std_id)0x00000008) 126*4882a593Smuzhiyun #define V4L2_STD_PAL_I ((v4l2_std_id)0x00000010) 127*4882a593Smuzhiyun #define V4L2_STD_PAL_D ((v4l2_std_id)0x00000020) 128*4882a593Smuzhiyun #define V4L2_STD_PAL_D1 ((v4l2_std_id)0x00000040) 129*4882a593Smuzhiyun #define V4L2_STD_PAL_K ((v4l2_std_id)0x00000080) 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun #define V4L2_STD_PAL_M ((v4l2_std_id)0x00000100) 132*4882a593Smuzhiyun #define V4L2_STD_PAL_N ((v4l2_std_id)0x00000200) 133*4882a593Smuzhiyun #define V4L2_STD_PAL_Nc ((v4l2_std_id)0x00000400) 134*4882a593Smuzhiyun #define V4L2_STD_PAL_60 ((v4l2_std_id)0x00000800) 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun``V4L2_STD_PAL_60`` is a hybrid standard with 525 lines, 60 Hz refresh 137*4882a593Smuzhiyunrate, and PAL color modulation with a 4.43 MHz color subcarrier. Some 138*4882a593SmuzhiyunPAL video recorders can play back NTSC tapes in this mode for display on 139*4882a593Smuzhiyuna 50/60 Hz agnostic PAL TV. 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun.. code-block:: c 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun #define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) 144*4882a593Smuzhiyun #define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) 145*4882a593Smuzhiyun #define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000) 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun``V4L2_STD_NTSC_443`` is a hybrid standard with 525 lines, 60 Hz refresh 148*4882a593Smuzhiyunrate, and NTSC color modulation with a 4.43 MHz color subcarrier. 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun.. code-block:: c 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun #define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000) 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun #define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000) 155*4882a593Smuzhiyun #define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000) 156*4882a593Smuzhiyun #define V4L2_STD_SECAM_G ((v4l2_std_id)0x00040000) 157*4882a593Smuzhiyun #define V4L2_STD_SECAM_H ((v4l2_std_id)0x00080000) 158*4882a593Smuzhiyun #define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000) 159*4882a593Smuzhiyun #define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000) 160*4882a593Smuzhiyun #define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000) 161*4882a593Smuzhiyun #define V4L2_STD_SECAM_LC ((v4l2_std_id)0x00800000) 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun /* ATSC/HDTV */ 164*4882a593Smuzhiyun #define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000) 165*4882a593Smuzhiyun #define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000) 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun``V4L2_STD_ATSC_8_VSB`` and ``V4L2_STD_ATSC_16_VSB`` are U.S. 168*4882a593Smuzhiyunterrestrial digital TV standards. Presently the V4L2 API does not 169*4882a593Smuzhiyunsupport digital TV. See also the Linux DVB API at 170*4882a593Smuzhiyun`https://linuxtv.org <https://linuxtv.org>`__. 171*4882a593Smuzhiyun 172*4882a593Smuzhiyun.. code-block:: c 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun #define V4L2_STD_PAL_BG (V4L2_STD_PAL_B | 175*4882a593Smuzhiyun V4L2_STD_PAL_B1 | 176*4882a593Smuzhiyun V4L2_STD_PAL_G) 177*4882a593Smuzhiyun #define V4L2_STD_B (V4L2_STD_PAL_B | 178*4882a593Smuzhiyun V4L2_STD_PAL_B1 | 179*4882a593Smuzhiyun V4L2_STD_SECAM_B) 180*4882a593Smuzhiyun #define V4L2_STD_GH (V4L2_STD_PAL_G | 181*4882a593Smuzhiyun V4L2_STD_PAL_H | 182*4882a593Smuzhiyun V4L2_STD_SECAM_G | 183*4882a593Smuzhiyun V4L2_STD_SECAM_H) 184*4882a593Smuzhiyun #define V4L2_STD_PAL_DK (V4L2_STD_PAL_D | 185*4882a593Smuzhiyun V4L2_STD_PAL_D1 | 186*4882a593Smuzhiyun V4L2_STD_PAL_K) 187*4882a593Smuzhiyun #define V4L2_STD_PAL (V4L2_STD_PAL_BG | 188*4882a593Smuzhiyun V4L2_STD_PAL_DK | 189*4882a593Smuzhiyun V4L2_STD_PAL_H | 190*4882a593Smuzhiyun V4L2_STD_PAL_I) 191*4882a593Smuzhiyun #define V4L2_STD_NTSC (V4L2_STD_NTSC_M | 192*4882a593Smuzhiyun V4L2_STD_NTSC_M_JP | 193*4882a593Smuzhiyun V4L2_STD_NTSC_M_KR) 194*4882a593Smuzhiyun #define V4L2_STD_MN (V4L2_STD_PAL_M | 195*4882a593Smuzhiyun V4L2_STD_PAL_N | 196*4882a593Smuzhiyun V4L2_STD_PAL_Nc | 197*4882a593Smuzhiyun V4L2_STD_NTSC) 198*4882a593Smuzhiyun #define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D | 199*4882a593Smuzhiyun V4L2_STD_SECAM_K | 200*4882a593Smuzhiyun V4L2_STD_SECAM_K1) 201*4882a593Smuzhiyun #define V4L2_STD_DK (V4L2_STD_PAL_DK | 202*4882a593Smuzhiyun V4L2_STD_SECAM_DK) 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun #define V4L2_STD_SECAM (V4L2_STD_SECAM_B | 205*4882a593Smuzhiyun V4L2_STD_SECAM_G | 206*4882a593Smuzhiyun V4L2_STD_SECAM_H | 207*4882a593Smuzhiyun V4L2_STD_SECAM_DK | 208*4882a593Smuzhiyun V4L2_STD_SECAM_L | 209*4882a593Smuzhiyun V4L2_STD_SECAM_LC) 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun #define V4L2_STD_525_60 (V4L2_STD_PAL_M | 212*4882a593Smuzhiyun V4L2_STD_PAL_60 | 213*4882a593Smuzhiyun V4L2_STD_NTSC | 214*4882a593Smuzhiyun V4L2_STD_NTSC_443) 215*4882a593Smuzhiyun #define V4L2_STD_625_50 (V4L2_STD_PAL | 216*4882a593Smuzhiyun V4L2_STD_PAL_N | 217*4882a593Smuzhiyun V4L2_STD_PAL_Nc | 218*4882a593Smuzhiyun V4L2_STD_SECAM) 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun #define V4L2_STD_UNKNOWN 0 221*4882a593Smuzhiyun #define V4L2_STD_ALL (V4L2_STD_525_60 | 222*4882a593Smuzhiyun V4L2_STD_625_50) 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun.. raw:: latex 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun \begingroup 227*4882a593Smuzhiyun \tiny 228*4882a593Smuzhiyun \setlength{\tabcolsep}{2pt} 229*4882a593Smuzhiyun 230*4882a593Smuzhiyun.. NTSC/M PAL/M /N /B /D /H /I SECAM/B /D /K1 /L 231*4882a593Smuzhiyun.. tabularcolumns:: |p{1.43cm}|p{1.38cm}|p{1.59cm}|p{1.7cm}|p{1.7cm}|p{1.17cm}|p{0.64cm}|p{1.71cm}|p{1.6cm}|p{1.07cm}|p{1.07cm}|p{1.07cm}| 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun.. _video-standards: 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun.. flat-table:: Video Standards (based on :ref:`itu470`) 236*4882a593Smuzhiyun :header-rows: 1 237*4882a593Smuzhiyun :stub-columns: 0 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun * - Characteristics 240*4882a593Smuzhiyun - M/NTSC [#f2]_ 241*4882a593Smuzhiyun - M/PAL 242*4882a593Smuzhiyun - N/PAL [#f3]_ 243*4882a593Smuzhiyun - B, B1, G/PAL 244*4882a593Smuzhiyun - D, D1, K/PAL 245*4882a593Smuzhiyun - H/PAL 246*4882a593Smuzhiyun - I/PAL 247*4882a593Smuzhiyun - B, G/SECAM 248*4882a593Smuzhiyun - D, K/SECAM 249*4882a593Smuzhiyun - K1/SECAM 250*4882a593Smuzhiyun - L/SECAM 251*4882a593Smuzhiyun * - Frame lines 252*4882a593Smuzhiyun - :cspan:`1` 525 253*4882a593Smuzhiyun - :cspan:`8` 625 254*4882a593Smuzhiyun * - Frame period (s) 255*4882a593Smuzhiyun - :cspan:`1` 1001/30000 256*4882a593Smuzhiyun - :cspan:`8` 1/25 257*4882a593Smuzhiyun * - Chrominance sub-carrier frequency (Hz) 258*4882a593Smuzhiyun - 3579545 ± 10 259*4882a593Smuzhiyun - 3579611.49 ± 10 260*4882a593Smuzhiyun - 4433618.75 ± 5 261*4882a593Smuzhiyun 262*4882a593Smuzhiyun (3582056.25 ± 5) 263*4882a593Smuzhiyun - :cspan:`3` 4433618.75 ± 5 264*4882a593Smuzhiyun - 4433618.75 ± 1 265*4882a593Smuzhiyun - :cspan:`2` f\ :sub:`OR` = 4406250 ± 2000, 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun f\ :sub:`OB` = 4250000 ± 2000 268*4882a593Smuzhiyun * - Nominal radio-frequency channel bandwidth (MHz) 269*4882a593Smuzhiyun - 6 270*4882a593Smuzhiyun - 6 271*4882a593Smuzhiyun - 6 272*4882a593Smuzhiyun - B: 7; B1, G: 8 273*4882a593Smuzhiyun - 8 274*4882a593Smuzhiyun - 8 275*4882a593Smuzhiyun - 8 276*4882a593Smuzhiyun - 8 277*4882a593Smuzhiyun - 8 278*4882a593Smuzhiyun - 8 279*4882a593Smuzhiyun - 8 280*4882a593Smuzhiyun * - Sound carrier relative to vision carrier (MHz) 281*4882a593Smuzhiyun - 4.5 282*4882a593Smuzhiyun - 4.5 283*4882a593Smuzhiyun - 4.5 284*4882a593Smuzhiyun - 5.5 ± 0.001 [#f4]_ [#f5]_ [#f6]_ [#f7]_ 285*4882a593Smuzhiyun - 6.5 ± 0.001 286*4882a593Smuzhiyun - 5.5 287*4882a593Smuzhiyun - 5.9996 ± 0.0005 288*4882a593Smuzhiyun - 5.5 ± 0.001 289*4882a593Smuzhiyun - 6.5 ± 0.001 290*4882a593Smuzhiyun - 6.5 291*4882a593Smuzhiyun - 6.5 [#f8]_ 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun.. raw:: latex 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun \endgroup 296*4882a593Smuzhiyun 297*4882a593Smuzhiyun 298*4882a593SmuzhiyunReturn Value 299*4882a593Smuzhiyun============ 300*4882a593Smuzhiyun 301*4882a593SmuzhiyunOn success 0 is returned, on error -1 and the ``errno`` variable is set 302*4882a593Smuzhiyunappropriately. The generic error codes are described at the 303*4882a593Smuzhiyun:ref:`Generic Error Codes <gen-errors>` chapter. 304*4882a593Smuzhiyun 305*4882a593SmuzhiyunEINVAL 306*4882a593Smuzhiyun The struct :c:type:`v4l2_standard` ``index`` is out 307*4882a593Smuzhiyun of bounds. 308*4882a593Smuzhiyun 309*4882a593SmuzhiyunENODATA 310*4882a593Smuzhiyun Standard video timings are not supported for this input or output. 311*4882a593Smuzhiyun 312*4882a593Smuzhiyun.. [#f1] 313*4882a593Smuzhiyun The supported standards may overlap and we need an unambiguous set to 314*4882a593Smuzhiyun find the current standard returned by :ref:`VIDIOC_G_STD <VIDIOC_G_STD>`. 315*4882a593Smuzhiyun 316*4882a593Smuzhiyun.. [#f2] 317*4882a593Smuzhiyun Japan uses a standard similar to M/NTSC (V4L2_STD_NTSC_M_JP). 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun.. [#f3] 320*4882a593Smuzhiyun The values in brackets apply to the combination N/PAL a.k.a. 321*4882a593Smuzhiyun N\ :sub:`C` used in Argentina (V4L2_STD_PAL_Nc). 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun.. [#f4] 324*4882a593Smuzhiyun In the Federal Republic of Germany, Austria, Italy, the Netherlands, 325*4882a593Smuzhiyun Slovakia and Switzerland a system of two sound carriers is used, the 326*4882a593Smuzhiyun frequency of the second carrier being 242.1875 kHz above the 327*4882a593Smuzhiyun frequency of the first sound carrier. For stereophonic sound 328*4882a593Smuzhiyun transmissions a similar system is used in Australia. 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun.. [#f5] 331*4882a593Smuzhiyun New Zealand uses a sound carrier displaced 5.4996 ± 0.0005 MHz from 332*4882a593Smuzhiyun the vision carrier. 333*4882a593Smuzhiyun 334*4882a593Smuzhiyun.. [#f6] 335*4882a593Smuzhiyun In Denmark, Finland, New Zealand, Sweden and Spain a system of two 336*4882a593Smuzhiyun sound carriers is used. In Iceland, Norway and Poland the same system 337*4882a593Smuzhiyun is being introduced. The second carrier is 5.85 MHz above the vision 338*4882a593Smuzhiyun carrier and is DQPSK modulated with 728 kbit/s sound and data 339*4882a593Smuzhiyun multiplex. (NICAM system) 340*4882a593Smuzhiyun 341*4882a593Smuzhiyun.. [#f7] 342*4882a593Smuzhiyun In the United Kingdom, a system of two sound carriers is used. The 343*4882a593Smuzhiyun second sound carrier is 6.552 MHz above the vision carrier and is 344*4882a593Smuzhiyun DQPSK modulated with a 728 kbit/s sound and data multiplex able to 345*4882a593Smuzhiyun carry two sound channels. (NICAM system) 346*4882a593Smuzhiyun 347*4882a593Smuzhiyun.. [#f8] 348*4882a593Smuzhiyun In France, a digital carrier 5.85 MHz away from the vision carrier 349*4882a593Smuzhiyun may be used in addition to the main sound carrier. It is modulated in 350*4882a593Smuzhiyun differentially encoded QPSK with a 728 kbit/s sound and data 351*4882a593Smuzhiyun multiplexer capable of carrying two sound channels. (NICAM system) 352