1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun.. _mpeg-controls: 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun*********************** 6*4882a593SmuzhiyunCodec Control Reference 7*4882a593Smuzhiyun*********************** 8*4882a593Smuzhiyun 9*4882a593SmuzhiyunBelow all controls within the Codec control class are described. First 10*4882a593Smuzhiyunthe generic controls, then controls specific for certain hardware. 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun.. note:: 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun These controls are applicable to all codecs and not just MPEG. The 15*4882a593Smuzhiyun defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG as the controls 16*4882a593Smuzhiyun were originally made for MPEG codecs and later extended to cover all 17*4882a593Smuzhiyun encoding formats. 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunGeneric Codec Controls 21*4882a593Smuzhiyun====================== 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun.. _mpeg-control-id: 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunCodec Control IDs 27*4882a593Smuzhiyun----------------- 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun``V4L2_CID_MPEG_CLASS (class)`` 30*4882a593Smuzhiyun The Codec class descriptor. Calling 31*4882a593Smuzhiyun :ref:`VIDIOC_QUERYCTRL` for this control will 32*4882a593Smuzhiyun return a description of this control class. This description can be 33*4882a593Smuzhiyun used as the caption of a Tab page in a GUI, for example. 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun.. _v4l2-mpeg-stream-type: 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_TYPE`` 38*4882a593Smuzhiyun (enum) 39*4882a593Smuzhiyun 40*4882a593Smuzhiyunenum v4l2_mpeg_stream_type - 41*4882a593Smuzhiyun The MPEG-1, -2 or -4 output stream type. One cannot assume anything 42*4882a593Smuzhiyun here. Each hardware MPEG encoder tends to support different subsets 43*4882a593Smuzhiyun of the available MPEG stream types. This control is specific to 44*4882a593Smuzhiyun multiplexed MPEG streams. The currently defined stream types are: 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun.. flat-table:: 49*4882a593Smuzhiyun :header-rows: 0 50*4882a593Smuzhiyun :stub-columns: 0 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS`` 53*4882a593Smuzhiyun - MPEG-2 program stream 54*4882a593Smuzhiyun * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS`` 55*4882a593Smuzhiyun - MPEG-2 transport stream 56*4882a593Smuzhiyun * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS`` 57*4882a593Smuzhiyun - MPEG-1 system stream 58*4882a593Smuzhiyun * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD`` 59*4882a593Smuzhiyun - MPEG-2 DVD-compatible stream 60*4882a593Smuzhiyun * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD`` 61*4882a593Smuzhiyun - MPEG-1 VCD-compatible stream 62*4882a593Smuzhiyun * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD`` 63*4882a593Smuzhiyun - MPEG-2 SVCD-compatible stream 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PID_PMT (integer)`` 68*4882a593Smuzhiyun Program Map Table Packet ID for the MPEG transport stream (default 69*4882a593Smuzhiyun 16) 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PID_AUDIO (integer)`` 72*4882a593Smuzhiyun Audio Packet ID for the MPEG transport stream (default 256) 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PID_VIDEO (integer)`` 75*4882a593Smuzhiyun Video Packet ID for the MPEG transport stream (default 260) 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PID_PCR (integer)`` 78*4882a593Smuzhiyun Packet ID for the MPEG transport stream carrying PCR fields (default 79*4882a593Smuzhiyun 259) 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (integer)`` 82*4882a593Smuzhiyun Audio ID for MPEG PES 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (integer)`` 85*4882a593Smuzhiyun Video ID for MPEG PES 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun.. _v4l2-mpeg-stream-vbi-fmt: 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun``V4L2_CID_MPEG_STREAM_VBI_FMT`` 90*4882a593Smuzhiyun (enum) 91*4882a593Smuzhiyun 92*4882a593Smuzhiyunenum v4l2_mpeg_stream_vbi_fmt - 93*4882a593Smuzhiyun Some cards can embed VBI data (e. g. Closed Caption, Teletext) into 94*4882a593Smuzhiyun the MPEG stream. This control selects whether VBI data should be 95*4882a593Smuzhiyun embedded, and if so, what embedding method should be used. The list 96*4882a593Smuzhiyun of possible VBI formats depends on the driver. The currently defined 97*4882a593Smuzhiyun VBI format types are: 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun.. tabularcolumns:: |p{6.6 cm}|p{10.9cm}| 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun.. flat-table:: 104*4882a593Smuzhiyun :header-rows: 0 105*4882a593Smuzhiyun :stub-columns: 0 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun * - ``V4L2_MPEG_STREAM_VBI_FMT_NONE`` 108*4882a593Smuzhiyun - No VBI in the MPEG stream 109*4882a593Smuzhiyun * - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV`` 110*4882a593Smuzhiyun - VBI in private packets, IVTV format (documented in the kernel 111*4882a593Smuzhiyun sources in the file 112*4882a593Smuzhiyun ``Documentation/userspace-api/media/drivers/cx2341x-uapi.rst``) 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun.. _v4l2-mpeg-audio-sampling-freq: 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ`` 119*4882a593Smuzhiyun (enum) 120*4882a593Smuzhiyun 121*4882a593Smuzhiyunenum v4l2_mpeg_audio_sampling_freq - 122*4882a593Smuzhiyun MPEG Audio sampling frequency. Possible values are: 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun 126*4882a593Smuzhiyun.. flat-table:: 127*4882a593Smuzhiyun :header-rows: 0 128*4882a593Smuzhiyun :stub-columns: 0 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100`` 131*4882a593Smuzhiyun - 44.1 kHz 132*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000`` 133*4882a593Smuzhiyun - 48 kHz 134*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000`` 135*4882a593Smuzhiyun - 32 kHz 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun.. _v4l2-mpeg-audio-encoding: 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_ENCODING`` 142*4882a593Smuzhiyun (enum) 143*4882a593Smuzhiyun 144*4882a593Smuzhiyunenum v4l2_mpeg_audio_encoding - 145*4882a593Smuzhiyun MPEG Audio encoding. This control is specific to multiplexed MPEG 146*4882a593Smuzhiyun streams. Possible values are: 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun.. flat-table:: 151*4882a593Smuzhiyun :header-rows: 0 152*4882a593Smuzhiyun :stub-columns: 0 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1`` 155*4882a593Smuzhiyun - MPEG-1/2 Layer I encoding 156*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2`` 157*4882a593Smuzhiyun - MPEG-1/2 Layer II encoding 158*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3`` 159*4882a593Smuzhiyun - MPEG-1/2 Layer III encoding 160*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_ENCODING_AAC`` 161*4882a593Smuzhiyun - MPEG-2/4 AAC (Advanced Audio Coding) 162*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_ENCODING_AC3`` 163*4882a593Smuzhiyun - AC-3 aka ATSC A/52 encoding 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun.. _v4l2-mpeg-audio-l1-bitrate: 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_L1_BITRATE`` 170*4882a593Smuzhiyun (enum) 171*4882a593Smuzhiyun 172*4882a593Smuzhiyunenum v4l2_mpeg_audio_l1_bitrate - 173*4882a593Smuzhiyun MPEG-1/2 Layer I bitrate. Possible values are: 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun.. flat-table:: 178*4882a593Smuzhiyun :header-rows: 0 179*4882a593Smuzhiyun :stub-columns: 0 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_32K`` 182*4882a593Smuzhiyun - 32 kbit/s 183*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_64K`` 184*4882a593Smuzhiyun - 64 kbit/s 185*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_96K`` 186*4882a593Smuzhiyun - 96 kbit/s 187*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K`` 188*4882a593Smuzhiyun - 128 kbit/s 189*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K`` 190*4882a593Smuzhiyun - 160 kbit/s 191*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K`` 192*4882a593Smuzhiyun - 192 kbit/s 193*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K`` 194*4882a593Smuzhiyun - 224 kbit/s 195*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K`` 196*4882a593Smuzhiyun - 256 kbit/s 197*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K`` 198*4882a593Smuzhiyun - 288 kbit/s 199*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K`` 200*4882a593Smuzhiyun - 320 kbit/s 201*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K`` 202*4882a593Smuzhiyun - 352 kbit/s 203*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K`` 204*4882a593Smuzhiyun - 384 kbit/s 205*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K`` 206*4882a593Smuzhiyun - 416 kbit/s 207*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L1_BITRATE_448K`` 208*4882a593Smuzhiyun - 448 kbit/s 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun.. _v4l2-mpeg-audio-l2-bitrate: 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_L2_BITRATE`` 215*4882a593Smuzhiyun (enum) 216*4882a593Smuzhiyun 217*4882a593Smuzhiyunenum v4l2_mpeg_audio_l2_bitrate - 218*4882a593Smuzhiyun MPEG-1/2 Layer II bitrate. Possible values are: 219*4882a593Smuzhiyun 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun.. flat-table:: 223*4882a593Smuzhiyun :header-rows: 0 224*4882a593Smuzhiyun :stub-columns: 0 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K`` 227*4882a593Smuzhiyun - 32 kbit/s 228*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K`` 229*4882a593Smuzhiyun - 48 kbit/s 230*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K`` 231*4882a593Smuzhiyun - 56 kbit/s 232*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K`` 233*4882a593Smuzhiyun - 64 kbit/s 234*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_80K`` 235*4882a593Smuzhiyun - 80 kbit/s 236*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K`` 237*4882a593Smuzhiyun - 96 kbit/s 238*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K`` 239*4882a593Smuzhiyun - 112 kbit/s 240*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_128K`` 241*4882a593Smuzhiyun - 128 kbit/s 242*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K`` 243*4882a593Smuzhiyun - 160 kbit/s 244*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K`` 245*4882a593Smuzhiyun - 192 kbit/s 246*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_224K`` 247*4882a593Smuzhiyun - 224 kbit/s 248*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K`` 249*4882a593Smuzhiyun - 256 kbit/s 250*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K`` 251*4882a593Smuzhiyun - 320 kbit/s 252*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L2_BITRATE_384K`` 253*4882a593Smuzhiyun - 384 kbit/s 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun 257*4882a593Smuzhiyun.. _v4l2-mpeg-audio-l3-bitrate: 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_L3_BITRATE`` 260*4882a593Smuzhiyun (enum) 261*4882a593Smuzhiyun 262*4882a593Smuzhiyunenum v4l2_mpeg_audio_l3_bitrate - 263*4882a593Smuzhiyun MPEG-1/2 Layer III bitrate. Possible values are: 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun.. flat-table:: 268*4882a593Smuzhiyun :header-rows: 0 269*4882a593Smuzhiyun :stub-columns: 0 270*4882a593Smuzhiyun 271*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K`` 272*4882a593Smuzhiyun - 32 kbit/s 273*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K`` 274*4882a593Smuzhiyun - 40 kbit/s 275*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K`` 276*4882a593Smuzhiyun - 48 kbit/s 277*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K`` 278*4882a593Smuzhiyun - 56 kbit/s 279*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K`` 280*4882a593Smuzhiyun - 64 kbit/s 281*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_80K`` 282*4882a593Smuzhiyun - 80 kbit/s 283*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K`` 284*4882a593Smuzhiyun - 96 kbit/s 285*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K`` 286*4882a593Smuzhiyun - 112 kbit/s 287*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K`` 288*4882a593Smuzhiyun - 128 kbit/s 289*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_160K`` 290*4882a593Smuzhiyun - 160 kbit/s 291*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K`` 292*4882a593Smuzhiyun - 192 kbit/s 293*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K`` 294*4882a593Smuzhiyun - 224 kbit/s 295*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_256K`` 296*4882a593Smuzhiyun - 256 kbit/s 297*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K`` 298*4882a593Smuzhiyun - 320 kbit/s 299*4882a593Smuzhiyun 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun 302*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)`` 303*4882a593Smuzhiyun AAC bitrate in bits per second. 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun.. _v4l2-mpeg-audio-ac3-bitrate: 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_AC3_BITRATE`` 308*4882a593Smuzhiyun (enum) 309*4882a593Smuzhiyun 310*4882a593Smuzhiyunenum v4l2_mpeg_audio_ac3_bitrate - 311*4882a593Smuzhiyun AC-3 bitrate. Possible values are: 312*4882a593Smuzhiyun 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun 315*4882a593Smuzhiyun.. flat-table:: 316*4882a593Smuzhiyun :header-rows: 0 317*4882a593Smuzhiyun :stub-columns: 0 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K`` 320*4882a593Smuzhiyun - 32 kbit/s 321*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K`` 322*4882a593Smuzhiyun - 40 kbit/s 323*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K`` 324*4882a593Smuzhiyun - 48 kbit/s 325*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K`` 326*4882a593Smuzhiyun - 56 kbit/s 327*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_64K`` 328*4882a593Smuzhiyun - 64 kbit/s 329*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_80K`` 330*4882a593Smuzhiyun - 80 kbit/s 331*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K`` 332*4882a593Smuzhiyun - 96 kbit/s 333*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K`` 334*4882a593Smuzhiyun - 112 kbit/s 335*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K`` 336*4882a593Smuzhiyun - 128 kbit/s 337*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_160K`` 338*4882a593Smuzhiyun - 160 kbit/s 339*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K`` 340*4882a593Smuzhiyun - 192 kbit/s 341*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K`` 342*4882a593Smuzhiyun - 224 kbit/s 343*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K`` 344*4882a593Smuzhiyun - 256 kbit/s 345*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K`` 346*4882a593Smuzhiyun - 320 kbit/s 347*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K`` 348*4882a593Smuzhiyun - 384 kbit/s 349*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_448K`` 350*4882a593Smuzhiyun - 448 kbit/s 351*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K`` 352*4882a593Smuzhiyun - 512 kbit/s 353*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K`` 354*4882a593Smuzhiyun - 576 kbit/s 355*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_640K`` 356*4882a593Smuzhiyun - 640 kbit/s 357*4882a593Smuzhiyun 358*4882a593Smuzhiyun 359*4882a593Smuzhiyun 360*4882a593Smuzhiyun.. _v4l2-mpeg-audio-mode: 361*4882a593Smuzhiyun 362*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_MODE`` 363*4882a593Smuzhiyun (enum) 364*4882a593Smuzhiyun 365*4882a593Smuzhiyunenum v4l2_mpeg_audio_mode - 366*4882a593Smuzhiyun MPEG Audio mode. Possible values are: 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun 369*4882a593Smuzhiyun 370*4882a593Smuzhiyun.. flat-table:: 371*4882a593Smuzhiyun :header-rows: 0 372*4882a593Smuzhiyun :stub-columns: 0 373*4882a593Smuzhiyun 374*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_MODE_STEREO`` 375*4882a593Smuzhiyun - Stereo 376*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO`` 377*4882a593Smuzhiyun - Joint Stereo 378*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_MODE_DUAL`` 379*4882a593Smuzhiyun - Bilingual 380*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_MODE_MONO`` 381*4882a593Smuzhiyun - Mono 382*4882a593Smuzhiyun 383*4882a593Smuzhiyun 384*4882a593Smuzhiyun 385*4882a593Smuzhiyun.. _v4l2-mpeg-audio-mode-extension: 386*4882a593Smuzhiyun 387*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION`` 388*4882a593Smuzhiyun (enum) 389*4882a593Smuzhiyun 390*4882a593Smuzhiyunenum v4l2_mpeg_audio_mode_extension - 391*4882a593Smuzhiyun Joint Stereo audio mode extension. In Layer I and II they indicate 392*4882a593Smuzhiyun which subbands are in intensity stereo. All other subbands are coded 393*4882a593Smuzhiyun in stereo. Layer III is not (yet) supported. Possible values are: 394*4882a593Smuzhiyun 395*4882a593Smuzhiyun 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun.. flat-table:: 398*4882a593Smuzhiyun :header-rows: 0 399*4882a593Smuzhiyun :stub-columns: 0 400*4882a593Smuzhiyun 401*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4`` 402*4882a593Smuzhiyun - Subbands 4-31 in intensity stereo 403*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8`` 404*4882a593Smuzhiyun - Subbands 8-31 in intensity stereo 405*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12`` 406*4882a593Smuzhiyun - Subbands 12-31 in intensity stereo 407*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16`` 408*4882a593Smuzhiyun - Subbands 16-31 in intensity stereo 409*4882a593Smuzhiyun 410*4882a593Smuzhiyun 411*4882a593Smuzhiyun 412*4882a593Smuzhiyun.. _v4l2-mpeg-audio-emphasis: 413*4882a593Smuzhiyun 414*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_EMPHASIS`` 415*4882a593Smuzhiyun (enum) 416*4882a593Smuzhiyun 417*4882a593Smuzhiyunenum v4l2_mpeg_audio_emphasis - 418*4882a593Smuzhiyun Audio Emphasis. Possible values are: 419*4882a593Smuzhiyun 420*4882a593Smuzhiyun 421*4882a593Smuzhiyun 422*4882a593Smuzhiyun.. flat-table:: 423*4882a593Smuzhiyun :header-rows: 0 424*4882a593Smuzhiyun :stub-columns: 0 425*4882a593Smuzhiyun 426*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE`` 427*4882a593Smuzhiyun - None 428*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS`` 429*4882a593Smuzhiyun - 50/15 microsecond emphasis 430*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17`` 431*4882a593Smuzhiyun - CCITT J.17 432*4882a593Smuzhiyun 433*4882a593Smuzhiyun 434*4882a593Smuzhiyun 435*4882a593Smuzhiyun.. _v4l2-mpeg-audio-crc: 436*4882a593Smuzhiyun 437*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_CRC`` 438*4882a593Smuzhiyun (enum) 439*4882a593Smuzhiyun 440*4882a593Smuzhiyunenum v4l2_mpeg_audio_crc - 441*4882a593Smuzhiyun CRC method. Possible values are: 442*4882a593Smuzhiyun 443*4882a593Smuzhiyun 444*4882a593Smuzhiyun 445*4882a593Smuzhiyun.. flat-table:: 446*4882a593Smuzhiyun :header-rows: 0 447*4882a593Smuzhiyun :stub-columns: 0 448*4882a593Smuzhiyun 449*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_CRC_NONE`` 450*4882a593Smuzhiyun - None 451*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_CRC_CRC16`` 452*4882a593Smuzhiyun - 16 bit parity check 453*4882a593Smuzhiyun 454*4882a593Smuzhiyun 455*4882a593Smuzhiyun 456*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_MUTE (boolean)`` 457*4882a593Smuzhiyun Mutes the audio when capturing. This is not done by muting audio 458*4882a593Smuzhiyun hardware, which can still produce a slight hiss, but in the encoder 459*4882a593Smuzhiyun itself, guaranteeing a fixed and reproducible audio bitstream. 0 = 460*4882a593Smuzhiyun unmuted, 1 = muted. 461*4882a593Smuzhiyun 462*4882a593Smuzhiyun.. _v4l2-mpeg-audio-dec-playback: 463*4882a593Smuzhiyun 464*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK`` 465*4882a593Smuzhiyun (enum) 466*4882a593Smuzhiyun 467*4882a593Smuzhiyunenum v4l2_mpeg_audio_dec_playback - 468*4882a593Smuzhiyun Determines how monolingual audio should be played back. Possible 469*4882a593Smuzhiyun values are: 470*4882a593Smuzhiyun 471*4882a593Smuzhiyun 472*4882a593Smuzhiyun 473*4882a593Smuzhiyun.. tabularcolumns:: |p{9.8cm}|p{7.7cm}| 474*4882a593Smuzhiyun 475*4882a593Smuzhiyun.. flat-table:: 476*4882a593Smuzhiyun :header-rows: 0 477*4882a593Smuzhiyun :stub-columns: 0 478*4882a593Smuzhiyun 479*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO`` 480*4882a593Smuzhiyun - Automatically determines the best playback mode. 481*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO`` 482*4882a593Smuzhiyun - Stereo playback. 483*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT`` 484*4882a593Smuzhiyun - Left channel playback. 485*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT`` 486*4882a593Smuzhiyun - Right channel playback. 487*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO`` 488*4882a593Smuzhiyun - Mono playback. 489*4882a593Smuzhiyun * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO`` 490*4882a593Smuzhiyun - Stereo playback with swapped left and right channels. 491*4882a593Smuzhiyun 492*4882a593Smuzhiyun 493*4882a593Smuzhiyun 494*4882a593Smuzhiyun.. _v4l2-mpeg-audio-dec-multilingual-playback: 495*4882a593Smuzhiyun 496*4882a593Smuzhiyun``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK`` 497*4882a593Smuzhiyun (enum) 498*4882a593Smuzhiyun 499*4882a593Smuzhiyunenum v4l2_mpeg_audio_dec_playback - 500*4882a593Smuzhiyun Determines how multilingual audio should be played back. 501*4882a593Smuzhiyun 502*4882a593Smuzhiyun.. _v4l2-mpeg-video-encoding: 503*4882a593Smuzhiyun 504*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_ENCODING`` 505*4882a593Smuzhiyun (enum) 506*4882a593Smuzhiyun 507*4882a593Smuzhiyunenum v4l2_mpeg_video_encoding - 508*4882a593Smuzhiyun MPEG Video encoding method. This control is specific to multiplexed 509*4882a593Smuzhiyun MPEG streams. Possible values are: 510*4882a593Smuzhiyun 511*4882a593Smuzhiyun 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun.. flat-table:: 514*4882a593Smuzhiyun :header-rows: 0 515*4882a593Smuzhiyun :stub-columns: 0 516*4882a593Smuzhiyun 517*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1`` 518*4882a593Smuzhiyun - MPEG-1 Video encoding 519*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2`` 520*4882a593Smuzhiyun - MPEG-2 Video encoding 521*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC`` 522*4882a593Smuzhiyun - MPEG-4 AVC (H.264) Video encoding 523*4882a593Smuzhiyun 524*4882a593Smuzhiyun 525*4882a593Smuzhiyun 526*4882a593Smuzhiyun.. _v4l2-mpeg-video-aspect: 527*4882a593Smuzhiyun 528*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_ASPECT`` 529*4882a593Smuzhiyun (enum) 530*4882a593Smuzhiyun 531*4882a593Smuzhiyunenum v4l2_mpeg_video_aspect - 532*4882a593Smuzhiyun Video aspect. Possible values are: 533*4882a593Smuzhiyun 534*4882a593Smuzhiyun 535*4882a593Smuzhiyun 536*4882a593Smuzhiyun.. flat-table:: 537*4882a593Smuzhiyun :header-rows: 0 538*4882a593Smuzhiyun :stub-columns: 0 539*4882a593Smuzhiyun 540*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_ASPECT_1x1`` 541*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_ASPECT_4x3`` 542*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_ASPECT_16x9`` 543*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_ASPECT_221x100`` 544*4882a593Smuzhiyun 545*4882a593Smuzhiyun 546*4882a593Smuzhiyun 547*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_B_FRAMES (integer)`` 548*4882a593Smuzhiyun Number of B-Frames (default 2) 549*4882a593Smuzhiyun 550*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_GOP_SIZE (integer)`` 551*4882a593Smuzhiyun GOP size (default 12) 552*4882a593Smuzhiyun 553*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (boolean)`` 554*4882a593Smuzhiyun GOP closure (default 1) 555*4882a593Smuzhiyun 556*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_PULLDOWN (boolean)`` 557*4882a593Smuzhiyun Enable 3:2 pulldown (default 0) 558*4882a593Smuzhiyun 559*4882a593Smuzhiyun.. _v4l2-mpeg-video-bitrate-mode: 560*4882a593Smuzhiyun 561*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_BITRATE_MODE`` 562*4882a593Smuzhiyun (enum) 563*4882a593Smuzhiyun 564*4882a593Smuzhiyunenum v4l2_mpeg_video_bitrate_mode - 565*4882a593Smuzhiyun Video bitrate mode. Possible values are: 566*4882a593Smuzhiyun 567*4882a593Smuzhiyun 568*4882a593Smuzhiyun 569*4882a593Smuzhiyun.. flat-table:: 570*4882a593Smuzhiyun :header-rows: 0 571*4882a593Smuzhiyun :stub-columns: 0 572*4882a593Smuzhiyun 573*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR`` 574*4882a593Smuzhiyun - Variable bitrate 575*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR`` 576*4882a593Smuzhiyun - Constant bitrate 577*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CQ`` 578*4882a593Smuzhiyun - Constant quality 579*4882a593Smuzhiyun 580*4882a593Smuzhiyun 581*4882a593Smuzhiyun 582*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_BITRATE (integer)`` 583*4882a593Smuzhiyun Video bitrate in bits per second. 584*4882a593Smuzhiyun 585*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (integer)`` 586*4882a593Smuzhiyun Peak video bitrate in bits per second. Must be larger or equal to 587*4882a593Smuzhiyun the average video bitrate. It is ignored if the video bitrate mode 588*4882a593Smuzhiyun is set to constant bitrate. 589*4882a593Smuzhiyun 590*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (integer)`` 591*4882a593Smuzhiyun Constant quality level control. This control is applicable when 592*4882a593Smuzhiyun ``V4L2_CID_MPEG_VIDEO_BITRATE_MODE`` value is 593*4882a593Smuzhiyun ``V4L2_MPEG_VIDEO_BITRATE_MODE_CQ``. Valid range is 1 to 100 594*4882a593Smuzhiyun where 1 indicates lowest quality and 100 indicates highest quality. 595*4882a593Smuzhiyun Encoder will decide the appropriate quantization parameter and 596*4882a593Smuzhiyun bitrate to produce requested frame quality. 597*4882a593Smuzhiyun 598*4882a593Smuzhiyun 599*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (enum)`` 600*4882a593Smuzhiyun 601*4882a593Smuzhiyunenum v4l2_mpeg_video_frame_skip_mode - 602*4882a593Smuzhiyun Indicates in what conditions the encoder should skip frames. If 603*4882a593Smuzhiyun encoding a frame would cause the encoded stream to be larger then a 604*4882a593Smuzhiyun chosen data limit then the frame will be skipped. Possible values 605*4882a593Smuzhiyun are: 606*4882a593Smuzhiyun 607*4882a593Smuzhiyun 608*4882a593Smuzhiyun.. tabularcolumns:: |p{9.2cm}|p{8.3cm}| 609*4882a593Smuzhiyun 610*4882a593Smuzhiyun.. raw:: latex 611*4882a593Smuzhiyun 612*4882a593Smuzhiyun \small 613*4882a593Smuzhiyun 614*4882a593Smuzhiyun.. flat-table:: 615*4882a593Smuzhiyun :header-rows: 0 616*4882a593Smuzhiyun :stub-columns: 0 617*4882a593Smuzhiyun 618*4882a593Smuzhiyun * - ``V4L2_MPEG_FRAME_SKIP_MODE_DISABLED`` 619*4882a593Smuzhiyun - Frame skip mode is disabled. 620*4882a593Smuzhiyun * - ``V4L2_MPEG_FRAME_SKIP_MODE_LEVEL_LIMIT`` 621*4882a593Smuzhiyun - Frame skip mode enabled and buffer limit is set by the chosen 622*4882a593Smuzhiyun level and is defined by the standard. 623*4882a593Smuzhiyun * - ``V4L2_MPEG_FRAME_SKIP_MODE_BUF_LIMIT`` 624*4882a593Smuzhiyun - Frame skip mode enabled and buffer limit is set by the 625*4882a593Smuzhiyun :ref:`VBV (MPEG1/2/4) <v4l2-mpeg-video-vbv-size>` or 626*4882a593Smuzhiyun :ref:`CPB (H264) buffer size <v4l2-mpeg-video-h264-cpb-size>` control. 627*4882a593Smuzhiyun 628*4882a593Smuzhiyun.. raw:: latex 629*4882a593Smuzhiyun 630*4882a593Smuzhiyun \normalsize 631*4882a593Smuzhiyun 632*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)`` 633*4882a593Smuzhiyun For every captured frame, skip this many subsequent frames (default 634*4882a593Smuzhiyun 0). 635*4882a593Smuzhiyun 636*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MUTE (boolean)`` 637*4882a593Smuzhiyun "Mutes" the video to a fixed color when capturing. This is useful 638*4882a593Smuzhiyun for testing, to produce a fixed video bitstream. 0 = unmuted, 1 = 639*4882a593Smuzhiyun muted. 640*4882a593Smuzhiyun 641*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MUTE_YUV (integer)`` 642*4882a593Smuzhiyun Sets the "mute" color of the video. The supplied 32-bit integer is 643*4882a593Smuzhiyun interpreted as follows (bit 0 = least significant bit): 644*4882a593Smuzhiyun 645*4882a593Smuzhiyun 646*4882a593Smuzhiyun 647*4882a593Smuzhiyun.. flat-table:: 648*4882a593Smuzhiyun :header-rows: 0 649*4882a593Smuzhiyun :stub-columns: 0 650*4882a593Smuzhiyun 651*4882a593Smuzhiyun * - Bit 0:7 652*4882a593Smuzhiyun - V chrominance information 653*4882a593Smuzhiyun * - Bit 8:15 654*4882a593Smuzhiyun - U chrominance information 655*4882a593Smuzhiyun * - Bit 16:23 656*4882a593Smuzhiyun - Y luminance information 657*4882a593Smuzhiyun * - Bit 24:31 658*4882a593Smuzhiyun - Must be zero. 659*4882a593Smuzhiyun 660*4882a593Smuzhiyun 661*4882a593Smuzhiyun 662*4882a593Smuzhiyun.. _v4l2-mpeg-video-dec-pts: 663*4882a593Smuzhiyun 664*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DEC_PTS (integer64)`` 665*4882a593Smuzhiyun This read-only control returns the 33-bit video Presentation Time 666*4882a593Smuzhiyun Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of the 667*4882a593Smuzhiyun currently displayed frame. This is the same PTS as is used in 668*4882a593Smuzhiyun :ref:`VIDIOC_DECODER_CMD`. 669*4882a593Smuzhiyun 670*4882a593Smuzhiyun.. _v4l2-mpeg-video-dec-frame: 671*4882a593Smuzhiyun 672*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DEC_FRAME (integer64)`` 673*4882a593Smuzhiyun This read-only control returns the frame counter of the frame that 674*4882a593Smuzhiyun is currently displayed (decoded). This value is reset to 0 whenever 675*4882a593Smuzhiyun the decoder is started. 676*4882a593Smuzhiyun 677*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (integer64)`` 678*4882a593Smuzhiyun This control sets the conceal color in YUV color space. It describes 679*4882a593Smuzhiyun the client preference of the error conceal color in case of an error 680*4882a593Smuzhiyun where the reference frame is missing. The decoder should fill the 681*4882a593Smuzhiyun reference buffer with the preferred color and use it for future 682*4882a593Smuzhiyun decoding. The control is using 16 bits per channel. 683*4882a593Smuzhiyun Applicable to decoders. 684*4882a593Smuzhiyun 685*4882a593Smuzhiyun.. flat-table:: 686*4882a593Smuzhiyun :header-rows: 0 687*4882a593Smuzhiyun :stub-columns: 0 688*4882a593Smuzhiyun 689*4882a593Smuzhiyun * - 690*4882a593Smuzhiyun - 8bit format 691*4882a593Smuzhiyun - 10bit format 692*4882a593Smuzhiyun - 12bit format 693*4882a593Smuzhiyun * - Y luminance 694*4882a593Smuzhiyun - Bit 0:7 695*4882a593Smuzhiyun - Bit 0:9 696*4882a593Smuzhiyun - Bit 0:11 697*4882a593Smuzhiyun * - Cb chrominance 698*4882a593Smuzhiyun - Bit 16:23 699*4882a593Smuzhiyun - Bit 16:25 700*4882a593Smuzhiyun - Bit 16:27 701*4882a593Smuzhiyun * - Cr chrominance 702*4882a593Smuzhiyun - Bit 32:39 703*4882a593Smuzhiyun - Bit 32:41 704*4882a593Smuzhiyun - Bit 32:43 705*4882a593Smuzhiyun * - Must be zero 706*4882a593Smuzhiyun - Bit 48:63 707*4882a593Smuzhiyun - Bit 48:63 708*4882a593Smuzhiyun - Bit 48:63 709*4882a593Smuzhiyun 710*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (boolean)`` 711*4882a593Smuzhiyun If enabled the decoder expects to receive a single slice per buffer, 712*4882a593Smuzhiyun otherwise the decoder expects a single frame in per buffer. 713*4882a593Smuzhiyun Applicable to the decoder, all codecs. 714*4882a593Smuzhiyun 715*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (boolean)`` 716*4882a593Smuzhiyun If the display delay is enabled then the decoder is forced to return 717*4882a593Smuzhiyun a CAPTURE buffer (decoded frame) after processing a certain number 718*4882a593Smuzhiyun of OUTPUT buffers. The delay can be set through 719*4882a593Smuzhiyun ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY``. This 720*4882a593Smuzhiyun feature can be used for example for generating thumbnails of videos. 721*4882a593Smuzhiyun Applicable to the decoder. 722*4882a593Smuzhiyun 723*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (integer)`` 724*4882a593Smuzhiyun Display delay value for decoder. The decoder is forced to 725*4882a593Smuzhiyun return a decoded frame after the set 'display delay' number of 726*4882a593Smuzhiyun frames. If this number is low it may result in frames returned out 727*4882a593Smuzhiyun of display order, in addition the hardware may still be using the 728*4882a593Smuzhiyun returned buffer as a reference picture for subsequent frames. 729*4882a593Smuzhiyun 730*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_AU_DELIMITER (boolean)`` 731*4882a593Smuzhiyun If enabled then, AUD (Access Unit Delimiter) NALUs will be generated. 732*4882a593Smuzhiyun That could be useful to find the start of a frame without having to 733*4882a593Smuzhiyun fully parse each NALU. Applicable to the H264 and HEVC encoders. 734*4882a593Smuzhiyun 735*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (boolean)`` 736*4882a593Smuzhiyun Enable writing sample aspect ratio in the Video Usability 737*4882a593Smuzhiyun Information. Applicable to the H264 encoder. 738*4882a593Smuzhiyun 739*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-vui-sar-idc: 740*4882a593Smuzhiyun 741*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC`` 742*4882a593Smuzhiyun (enum) 743*4882a593Smuzhiyun 744*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_vui_sar_idc - 745*4882a593Smuzhiyun VUI sample aspect ratio indicator for H.264 encoding. The value is 746*4882a593Smuzhiyun defined in the table E-1 in the standard. Applicable to the H264 747*4882a593Smuzhiyun encoder. 748*4882a593Smuzhiyun 749*4882a593Smuzhiyun 750*4882a593Smuzhiyun 751*4882a593Smuzhiyun.. flat-table:: 752*4882a593Smuzhiyun :header-rows: 0 753*4882a593Smuzhiyun :stub-columns: 0 754*4882a593Smuzhiyun 755*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED`` 756*4882a593Smuzhiyun - Unspecified 757*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1`` 758*4882a593Smuzhiyun - 1x1 759*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11`` 760*4882a593Smuzhiyun - 12x11 761*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11`` 762*4882a593Smuzhiyun - 10x11 763*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11`` 764*4882a593Smuzhiyun - 16x11 765*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33`` 766*4882a593Smuzhiyun - 40x33 767*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11`` 768*4882a593Smuzhiyun - 24x11 769*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11`` 770*4882a593Smuzhiyun - 20x11 771*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11`` 772*4882a593Smuzhiyun - 32x11 773*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33`` 774*4882a593Smuzhiyun - 80x33 775*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11`` 776*4882a593Smuzhiyun - 18x11 777*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11`` 778*4882a593Smuzhiyun - 15x11 779*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33`` 780*4882a593Smuzhiyun - 64x33 781*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99`` 782*4882a593Smuzhiyun - 160x99 783*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3`` 784*4882a593Smuzhiyun - 4x3 785*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2`` 786*4882a593Smuzhiyun - 3x2 787*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1`` 788*4882a593Smuzhiyun - 2x1 789*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED`` 790*4882a593Smuzhiyun - Extended SAR 791*4882a593Smuzhiyun 792*4882a593Smuzhiyun 793*4882a593Smuzhiyun 794*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (integer)`` 795*4882a593Smuzhiyun Extended sample aspect ratio width for H.264 VUI encoding. 796*4882a593Smuzhiyun Applicable to the H264 encoder. 797*4882a593Smuzhiyun 798*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (integer)`` 799*4882a593Smuzhiyun Extended sample aspect ratio height for H.264 VUI encoding. 800*4882a593Smuzhiyun Applicable to the H264 encoder. 801*4882a593Smuzhiyun 802*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-level: 803*4882a593Smuzhiyun 804*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_LEVEL`` 805*4882a593Smuzhiyun (enum) 806*4882a593Smuzhiyun 807*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_level - 808*4882a593Smuzhiyun The level information for the H264 video elementary stream. 809*4882a593Smuzhiyun Applicable to the H264 encoder. Possible values are: 810*4882a593Smuzhiyun 811*4882a593Smuzhiyun 812*4882a593Smuzhiyun 813*4882a593Smuzhiyun.. flat-table:: 814*4882a593Smuzhiyun :header-rows: 0 815*4882a593Smuzhiyun :stub-columns: 0 816*4882a593Smuzhiyun 817*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0`` 818*4882a593Smuzhiyun - Level 1.0 819*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B`` 820*4882a593Smuzhiyun - Level 1B 821*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1`` 822*4882a593Smuzhiyun - Level 1.1 823*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2`` 824*4882a593Smuzhiyun - Level 1.2 825*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3`` 826*4882a593Smuzhiyun - Level 1.3 827*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0`` 828*4882a593Smuzhiyun - Level 2.0 829*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1`` 830*4882a593Smuzhiyun - Level 2.1 831*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2`` 832*4882a593Smuzhiyun - Level 2.2 833*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0`` 834*4882a593Smuzhiyun - Level 3.0 835*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1`` 836*4882a593Smuzhiyun - Level 3.1 837*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2`` 838*4882a593Smuzhiyun - Level 3.2 839*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0`` 840*4882a593Smuzhiyun - Level 4.0 841*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1`` 842*4882a593Smuzhiyun - Level 4.1 843*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2`` 844*4882a593Smuzhiyun - Level 4.2 845*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0`` 846*4882a593Smuzhiyun - Level 5.0 847*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1`` 848*4882a593Smuzhiyun - Level 5.1 849*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_2`` 850*4882a593Smuzhiyun - Level 5.2 851*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_0`` 852*4882a593Smuzhiyun - Level 6.0 853*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_1`` 854*4882a593Smuzhiyun - Level 6.1 855*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_2`` 856*4882a593Smuzhiyun - Level 6.2 857*4882a593Smuzhiyun 858*4882a593Smuzhiyun 859*4882a593Smuzhiyun 860*4882a593Smuzhiyun.. _v4l2-mpeg-video-mpeg2-level: 861*4882a593Smuzhiyun 862*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL`` 863*4882a593Smuzhiyun (enum) 864*4882a593Smuzhiyun 865*4882a593Smuzhiyunenum v4l2_mpeg_video_mpeg2_level - 866*4882a593Smuzhiyun The level information for the MPEG2 elementary stream. Applicable to 867*4882a593Smuzhiyun MPEG2 codecs. Possible values are: 868*4882a593Smuzhiyun 869*4882a593Smuzhiyun 870*4882a593Smuzhiyun 871*4882a593Smuzhiyun.. flat-table:: 872*4882a593Smuzhiyun :header-rows: 0 873*4882a593Smuzhiyun :stub-columns: 0 874*4882a593Smuzhiyun 875*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW`` 876*4882a593Smuzhiyun - Low Level (LL) 877*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN`` 878*4882a593Smuzhiyun - Main Level (ML) 879*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440`` 880*4882a593Smuzhiyun - High-1440 Level (H-14) 881*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH`` 882*4882a593Smuzhiyun - High Level (HL) 883*4882a593Smuzhiyun 884*4882a593Smuzhiyun 885*4882a593Smuzhiyun 886*4882a593Smuzhiyun.. _v4l2-mpeg-video-mpeg4-level: 887*4882a593Smuzhiyun 888*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL`` 889*4882a593Smuzhiyun (enum) 890*4882a593Smuzhiyun 891*4882a593Smuzhiyunenum v4l2_mpeg_video_mpeg4_level - 892*4882a593Smuzhiyun The level information for the MPEG4 elementary stream. Applicable to 893*4882a593Smuzhiyun the MPEG4 encoder. Possible values are: 894*4882a593Smuzhiyun 895*4882a593Smuzhiyun 896*4882a593Smuzhiyun 897*4882a593Smuzhiyun.. flat-table:: 898*4882a593Smuzhiyun :header-rows: 0 899*4882a593Smuzhiyun :stub-columns: 0 900*4882a593Smuzhiyun 901*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_0`` 902*4882a593Smuzhiyun - Level 0 903*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B`` 904*4882a593Smuzhiyun - Level 0b 905*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_1`` 906*4882a593Smuzhiyun - Level 1 907*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_2`` 908*4882a593Smuzhiyun - Level 2 909*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_3`` 910*4882a593Smuzhiyun - Level 3 911*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B`` 912*4882a593Smuzhiyun - Level 3b 913*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_4`` 914*4882a593Smuzhiyun - Level 4 915*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_5`` 916*4882a593Smuzhiyun - Level 5 917*4882a593Smuzhiyun 918*4882a593Smuzhiyun 919*4882a593Smuzhiyun 920*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-profile: 921*4882a593Smuzhiyun 922*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_PROFILE`` 923*4882a593Smuzhiyun (enum) 924*4882a593Smuzhiyun 925*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_profile - 926*4882a593Smuzhiyun The profile information for H264. Applicable to the H264 encoder. 927*4882a593Smuzhiyun Possible values are: 928*4882a593Smuzhiyun 929*4882a593Smuzhiyun 930*4882a593Smuzhiyun 931*4882a593Smuzhiyun.. flat-table:: 932*4882a593Smuzhiyun :header-rows: 0 933*4882a593Smuzhiyun :stub-columns: 0 934*4882a593Smuzhiyun 935*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE`` 936*4882a593Smuzhiyun - Baseline profile 937*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE`` 938*4882a593Smuzhiyun - Constrained Baseline profile 939*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN`` 940*4882a593Smuzhiyun - Main profile 941*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED`` 942*4882a593Smuzhiyun - Extended profile 943*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH`` 944*4882a593Smuzhiyun - High profile 945*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10`` 946*4882a593Smuzhiyun - High 10 profile 947*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422`` 948*4882a593Smuzhiyun - High 422 profile 949*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE`` 950*4882a593Smuzhiyun - High 444 Predictive profile 951*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA`` 952*4882a593Smuzhiyun - High 10 Intra profile 953*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA`` 954*4882a593Smuzhiyun - High 422 Intra profile 955*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA`` 956*4882a593Smuzhiyun - High 444 Intra profile 957*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA`` 958*4882a593Smuzhiyun - CAVLC 444 Intra profile 959*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE`` 960*4882a593Smuzhiyun - Scalable Baseline profile 961*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH`` 962*4882a593Smuzhiyun - Scalable High profile 963*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA`` 964*4882a593Smuzhiyun - Scalable High Intra profile 965*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH`` 966*4882a593Smuzhiyun - Stereo High profile 967*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH`` 968*4882a593Smuzhiyun - Multiview High profile 969*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH`` 970*4882a593Smuzhiyun - Constrained High profile 971*4882a593Smuzhiyun 972*4882a593Smuzhiyun 973*4882a593Smuzhiyun 974*4882a593Smuzhiyun.. _v4l2-mpeg-video-mpeg2-profile: 975*4882a593Smuzhiyun 976*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE`` 977*4882a593Smuzhiyun (enum) 978*4882a593Smuzhiyun 979*4882a593Smuzhiyunenum v4l2_mpeg_video_mpeg2_profile - 980*4882a593Smuzhiyun The profile information for MPEG2. Applicable to MPEG2 codecs. 981*4882a593Smuzhiyun Possible values are: 982*4882a593Smuzhiyun 983*4882a593Smuzhiyun 984*4882a593Smuzhiyun 985*4882a593Smuzhiyun.. flat-table:: 986*4882a593Smuzhiyun :header-rows: 0 987*4882a593Smuzhiyun :stub-columns: 0 988*4882a593Smuzhiyun 989*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE`` 990*4882a593Smuzhiyun - Simple profile (SP) 991*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN`` 992*4882a593Smuzhiyun - Main profile (MP) 993*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SNR_SCALABLE`` 994*4882a593Smuzhiyun - SNR Scalable profile (SNR) 995*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SPATIALLY_SCALABLE`` 996*4882a593Smuzhiyun - Spatially Scalable profile (Spt) 997*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_HIGH`` 998*4882a593Smuzhiyun - High profile (HP) 999*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_MULTIVIEW`` 1000*4882a593Smuzhiyun - Multi-view profile (MVP) 1001*4882a593Smuzhiyun 1002*4882a593Smuzhiyun 1003*4882a593Smuzhiyun 1004*4882a593Smuzhiyun.. _v4l2-mpeg-video-mpeg4-profile: 1005*4882a593Smuzhiyun 1006*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE`` 1007*4882a593Smuzhiyun (enum) 1008*4882a593Smuzhiyun 1009*4882a593Smuzhiyunenum v4l2_mpeg_video_mpeg4_profile - 1010*4882a593Smuzhiyun The profile information for MPEG4. Applicable to the MPEG4 encoder. 1011*4882a593Smuzhiyun Possible values are: 1012*4882a593Smuzhiyun 1013*4882a593Smuzhiyun 1014*4882a593Smuzhiyun 1015*4882a593Smuzhiyun.. flat-table:: 1016*4882a593Smuzhiyun :header-rows: 0 1017*4882a593Smuzhiyun :stub-columns: 0 1018*4882a593Smuzhiyun 1019*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE`` 1020*4882a593Smuzhiyun - Simple profile 1021*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE`` 1022*4882a593Smuzhiyun - Advanced Simple profile 1023*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE`` 1024*4882a593Smuzhiyun - Core profile 1025*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE`` 1026*4882a593Smuzhiyun - Simple Scalable profile 1027*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY`` 1028*4882a593Smuzhiyun - 1029*4882a593Smuzhiyun 1030*4882a593Smuzhiyun 1031*4882a593Smuzhiyun 1032*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (integer)`` 1033*4882a593Smuzhiyun The maximum number of reference pictures used for encoding. 1034*4882a593Smuzhiyun Applicable to the encoder. 1035*4882a593Smuzhiyun 1036*4882a593Smuzhiyun.. _v4l2-mpeg-video-multi-slice-mode: 1037*4882a593Smuzhiyun 1038*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` 1039*4882a593Smuzhiyun (enum) 1040*4882a593Smuzhiyun 1041*4882a593Smuzhiyunenum v4l2_mpeg_video_multi_slice_mode - 1042*4882a593Smuzhiyun Determines how the encoder should handle division of frame into 1043*4882a593Smuzhiyun slices. Applicable to the encoder. Possible values are: 1044*4882a593Smuzhiyun 1045*4882a593Smuzhiyun 1046*4882a593Smuzhiyun 1047*4882a593Smuzhiyun.. tabularcolumns:: |p{9.6cm}|p{7.9cm}| 1048*4882a593Smuzhiyun 1049*4882a593Smuzhiyun.. flat-table:: 1050*4882a593Smuzhiyun :header-rows: 0 1051*4882a593Smuzhiyun :stub-columns: 0 1052*4882a593Smuzhiyun 1053*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE`` 1054*4882a593Smuzhiyun - Single slice per frame. 1055*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB`` 1056*4882a593Smuzhiyun - Multiple slices with set maximum number of macroblocks per slice. 1057*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES`` 1058*4882a593Smuzhiyun - Multiple slice with set maximum size in bytes per slice. 1059*4882a593Smuzhiyun 1060*4882a593Smuzhiyun 1061*4882a593Smuzhiyun 1062*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (integer)`` 1063*4882a593Smuzhiyun The maximum number of macroblocks in a slice. Used when 1064*4882a593Smuzhiyun ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to 1065*4882a593Smuzhiyun ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``. Applicable to the 1066*4882a593Smuzhiyun encoder. 1067*4882a593Smuzhiyun 1068*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (integer)`` 1069*4882a593Smuzhiyun The maximum size of a slice in bytes. Used when 1070*4882a593Smuzhiyun ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to 1071*4882a593Smuzhiyun ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``. Applicable to the 1072*4882a593Smuzhiyun encoder. 1073*4882a593Smuzhiyun 1074*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-loop-filter-mode: 1075*4882a593Smuzhiyun 1076*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE`` 1077*4882a593Smuzhiyun (enum) 1078*4882a593Smuzhiyun 1079*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_loop_filter_mode - 1080*4882a593Smuzhiyun Loop filter mode for H264 encoder. Possible values are: 1081*4882a593Smuzhiyun 1082*4882a593Smuzhiyun.. raw:: latex 1083*4882a593Smuzhiyun 1084*4882a593Smuzhiyun \small 1085*4882a593Smuzhiyun 1086*4882a593Smuzhiyun.. tabularcolumns:: |p{13.6cm}|p{3.9cm}| 1087*4882a593Smuzhiyun 1088*4882a593Smuzhiyun.. flat-table:: 1089*4882a593Smuzhiyun :header-rows: 0 1090*4882a593Smuzhiyun :stub-columns: 0 1091*4882a593Smuzhiyun 1092*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED`` 1093*4882a593Smuzhiyun - Loop filter is enabled. 1094*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED`` 1095*4882a593Smuzhiyun - Loop filter is disabled. 1096*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY`` 1097*4882a593Smuzhiyun - Loop filter is disabled at the slice boundary. 1098*4882a593Smuzhiyun 1099*4882a593Smuzhiyun.. raw:: latex 1100*4882a593Smuzhiyun 1101*4882a593Smuzhiyun \normalsize 1102*4882a593Smuzhiyun 1103*4882a593Smuzhiyun 1104*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (integer)`` 1105*4882a593Smuzhiyun Loop filter alpha coefficient, defined in the H264 standard. 1106*4882a593Smuzhiyun This value corresponds to the slice_alpha_c0_offset_div2 slice header 1107*4882a593Smuzhiyun field, and should be in the range of -6 to +6, inclusive. The actual alpha 1108*4882a593Smuzhiyun offset FilterOffsetA is twice this value. 1109*4882a593Smuzhiyun Applicable to the H264 encoder. 1110*4882a593Smuzhiyun 1111*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (integer)`` 1112*4882a593Smuzhiyun Loop filter beta coefficient, defined in the H264 standard. 1113*4882a593Smuzhiyun This corresponds to the slice_beta_offset_div2 slice header field, and 1114*4882a593Smuzhiyun should be in the range of -6 to +6, inclusive. The actual beta offset 1115*4882a593Smuzhiyun FilterOffsetB is twice this value. 1116*4882a593Smuzhiyun Applicable to the H264 encoder. 1117*4882a593Smuzhiyun 1118*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-entropy-mode: 1119*4882a593Smuzhiyun 1120*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE`` 1121*4882a593Smuzhiyun (enum) 1122*4882a593Smuzhiyun 1123*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_entropy_mode - 1124*4882a593Smuzhiyun Entropy coding mode for H264 - CABAC/CAVALC. Applicable to the H264 1125*4882a593Smuzhiyun encoder. Possible values are: 1126*4882a593Smuzhiyun 1127*4882a593Smuzhiyun 1128*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.5cm}| 1129*4882a593Smuzhiyun 1130*4882a593Smuzhiyun 1131*4882a593Smuzhiyun.. flat-table:: 1132*4882a593Smuzhiyun :header-rows: 0 1133*4882a593Smuzhiyun :stub-columns: 0 1134*4882a593Smuzhiyun 1135*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC`` 1136*4882a593Smuzhiyun - Use CAVLC entropy coding. 1137*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC`` 1138*4882a593Smuzhiyun - Use CABAC entropy coding. 1139*4882a593Smuzhiyun 1140*4882a593Smuzhiyun 1141*4882a593Smuzhiyun 1142*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (boolean)`` 1143*4882a593Smuzhiyun Enable 8X8 transform for H264. Applicable to the H264 encoder. 1144*4882a593Smuzhiyun 1145*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (boolean)`` 1146*4882a593Smuzhiyun Enable constrained intra prediction for H264. Applicable to the H264 1147*4882a593Smuzhiyun encoder. 1148*4882a593Smuzhiyun 1149*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (integer)`` 1150*4882a593Smuzhiyun Specify the offset that should be added to the luma quantization 1151*4882a593Smuzhiyun parameter to determine the chroma quantization parameter. Applicable 1152*4882a593Smuzhiyun to the H264 encoder. 1153*4882a593Smuzhiyun 1154*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (integer)`` 1155*4882a593Smuzhiyun Cyclic intra macroblock refresh. This is the number of continuous 1156*4882a593Smuzhiyun macroblocks refreshed every frame. Each frame a successive set of 1157*4882a593Smuzhiyun macroblocks is refreshed until the cycle completes and starts from 1158*4882a593Smuzhiyun the top of the frame. Applicable to H264, H263 and MPEG4 encoder. 1159*4882a593Smuzhiyun 1160*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (boolean)`` 1161*4882a593Smuzhiyun Frame level rate control enable. If this control is disabled then 1162*4882a593Smuzhiyun the quantization parameter for each frame type is constant and set 1163*4882a593Smuzhiyun with appropriate controls (e.g. 1164*4882a593Smuzhiyun ``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP``). If frame rate control is 1165*4882a593Smuzhiyun enabled then quantization parameter is adjusted to meet the chosen 1166*4882a593Smuzhiyun bitrate. Minimum and maximum value for the quantization parameter 1167*4882a593Smuzhiyun can be set with appropriate controls (e.g. 1168*4882a593Smuzhiyun ``V4L2_CID_MPEG_VIDEO_H263_MIN_QP``). Applicable to encoders. 1169*4882a593Smuzhiyun 1170*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (boolean)`` 1171*4882a593Smuzhiyun Macroblock level rate control enable. Applicable to the MPEG4 and 1172*4882a593Smuzhiyun H264 encoders. 1173*4882a593Smuzhiyun 1174*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (boolean)`` 1175*4882a593Smuzhiyun Quarter pixel motion estimation for MPEG4. Applicable to the MPEG4 1176*4882a593Smuzhiyun encoder. 1177*4882a593Smuzhiyun 1178*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (integer)`` 1179*4882a593Smuzhiyun Quantization parameter for an I frame for H263. Valid range: from 1 1180*4882a593Smuzhiyun to 31. 1181*4882a593Smuzhiyun 1182*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H263_MIN_QP (integer)`` 1183*4882a593Smuzhiyun Minimum quantization parameter for H263. Valid range: from 1 to 31. 1184*4882a593Smuzhiyun 1185*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H263_MAX_QP (integer)`` 1186*4882a593Smuzhiyun Maximum quantization parameter for H263. Valid range: from 1 to 31. 1187*4882a593Smuzhiyun 1188*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (integer)`` 1189*4882a593Smuzhiyun Quantization parameter for an P frame for H263. Valid range: from 1 1190*4882a593Smuzhiyun to 31. 1191*4882a593Smuzhiyun 1192*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (integer)`` 1193*4882a593Smuzhiyun Quantization parameter for an B frame for H263. Valid range: from 1 1194*4882a593Smuzhiyun to 31. 1195*4882a593Smuzhiyun 1196*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (integer)`` 1197*4882a593Smuzhiyun Quantization parameter for an I frame for H264. Valid range: from 0 1198*4882a593Smuzhiyun to 51. 1199*4882a593Smuzhiyun 1200*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_MIN_QP (integer)`` 1201*4882a593Smuzhiyun Minimum quantization parameter for H264. Valid range: from 0 to 51. 1202*4882a593Smuzhiyun 1203*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_MAX_QP (integer)`` 1204*4882a593Smuzhiyun Maximum quantization parameter for H264. Valid range: from 0 to 51. 1205*4882a593Smuzhiyun 1206*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (integer)`` 1207*4882a593Smuzhiyun Quantization parameter for an P frame for H264. Valid range: from 0 1208*4882a593Smuzhiyun to 51. 1209*4882a593Smuzhiyun 1210*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (integer)`` 1211*4882a593Smuzhiyun Quantization parameter for an B frame for H264. Valid range: from 0 1212*4882a593Smuzhiyun to 51. 1213*4882a593Smuzhiyun 1214*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (integer)`` 1215*4882a593Smuzhiyun Minimum quantization parameter for the H264 I frame to limit I frame 1216*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51. If 1217*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter 1218*4882a593Smuzhiyun should be chosen to meet both requirements. 1219*4882a593Smuzhiyun 1220*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (integer)`` 1221*4882a593Smuzhiyun Maximum quantization parameter for the H264 I frame to limit I frame 1222*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51. If 1223*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter 1224*4882a593Smuzhiyun should be chosen to meet both requirements. 1225*4882a593Smuzhiyun 1226*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (integer)`` 1227*4882a593Smuzhiyun Minimum quantization parameter for the H264 P frame to limit P frame 1228*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51. If 1229*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter 1230*4882a593Smuzhiyun should be chosen to meet both requirements. 1231*4882a593Smuzhiyun 1232*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (integer)`` 1233*4882a593Smuzhiyun Maximum quantization parameter for the H264 P frame to limit P frame 1234*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51. If 1235*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter 1236*4882a593Smuzhiyun should be chosen to meet both requirements. 1237*4882a593Smuzhiyun 1238*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (integer)`` 1239*4882a593Smuzhiyun Minimum quantization parameter for the H264 B frame to limit B frame 1240*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51. If 1241*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter 1242*4882a593Smuzhiyun should be chosen to meet both requirements. 1243*4882a593Smuzhiyun 1244*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (integer)`` 1245*4882a593Smuzhiyun Maximum quantization parameter for the H264 B frame to limit B frame 1246*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51. If 1247*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter 1248*4882a593Smuzhiyun should be chosen to meet both requirements. 1249*4882a593Smuzhiyun 1250*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (integer)`` 1251*4882a593Smuzhiyun Quantization parameter for an I frame for MPEG4. Valid range: from 1 1252*4882a593Smuzhiyun to 31. 1253*4882a593Smuzhiyun 1254*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (integer)`` 1255*4882a593Smuzhiyun Minimum quantization parameter for MPEG4. Valid range: from 1 to 31. 1256*4882a593Smuzhiyun 1257*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (integer)`` 1258*4882a593Smuzhiyun Maximum quantization parameter for MPEG4. Valid range: from 1 to 31. 1259*4882a593Smuzhiyun 1260*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (integer)`` 1261*4882a593Smuzhiyun Quantization parameter for an P frame for MPEG4. Valid range: from 1 1262*4882a593Smuzhiyun to 31. 1263*4882a593Smuzhiyun 1264*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (integer)`` 1265*4882a593Smuzhiyun Quantization parameter for an B frame for MPEG4. Valid range: from 1 1266*4882a593Smuzhiyun to 31. 1267*4882a593Smuzhiyun 1268*4882a593Smuzhiyun.. _v4l2-mpeg-video-vbv-size: 1269*4882a593Smuzhiyun 1270*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VBV_SIZE (integer)`` 1271*4882a593Smuzhiyun The Video Buffer Verifier size in kilobytes, it is used as a 1272*4882a593Smuzhiyun limitation of frame skip. The VBV is defined in the standard as a 1273*4882a593Smuzhiyun mean to verify that the produced stream will be successfully 1274*4882a593Smuzhiyun decoded. The standard describes it as "Part of a hypothetical 1275*4882a593Smuzhiyun decoder that is conceptually connected to the output of the encoder. 1276*4882a593Smuzhiyun Its purpose is to provide a constraint on the variability of the 1277*4882a593Smuzhiyun data rate that an encoder or editing process may produce.". 1278*4882a593Smuzhiyun Applicable to the MPEG1, MPEG2, MPEG4 encoders. 1279*4882a593Smuzhiyun 1280*4882a593Smuzhiyun.. _v4l2-mpeg-video-vbv-delay: 1281*4882a593Smuzhiyun 1282*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VBV_DELAY (integer)`` 1283*4882a593Smuzhiyun Sets the initial delay in milliseconds for VBV buffer control. 1284*4882a593Smuzhiyun 1285*4882a593Smuzhiyun.. _v4l2-mpeg-video-hor-search-range: 1286*4882a593Smuzhiyun 1287*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (integer)`` 1288*4882a593Smuzhiyun Horizontal search range defines maximum horizontal search area in 1289*4882a593Smuzhiyun pixels to search and match for the present Macroblock (MB) in the 1290*4882a593Smuzhiyun reference picture. This V4L2 control macro is used to set horizontal 1291*4882a593Smuzhiyun search range for motion estimation module in video encoder. 1292*4882a593Smuzhiyun 1293*4882a593Smuzhiyun.. _v4l2-mpeg-video-vert-search-range: 1294*4882a593Smuzhiyun 1295*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (integer)`` 1296*4882a593Smuzhiyun Vertical search range defines maximum vertical search area in pixels 1297*4882a593Smuzhiyun to search and match for the present Macroblock (MB) in the reference 1298*4882a593Smuzhiyun picture. This V4L2 control macro is used to set vertical search 1299*4882a593Smuzhiyun range for motion estimation module in video encoder. 1300*4882a593Smuzhiyun 1301*4882a593Smuzhiyun.. _v4l2-mpeg-video-force-key-frame: 1302*4882a593Smuzhiyun 1303*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (button)`` 1304*4882a593Smuzhiyun Force a key frame for the next queued buffer. Applicable to 1305*4882a593Smuzhiyun encoders. This is a general, codec-agnostic keyframe control. 1306*4882a593Smuzhiyun 1307*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-cpb-size: 1308*4882a593Smuzhiyun 1309*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (integer)`` 1310*4882a593Smuzhiyun The Coded Picture Buffer size in kilobytes, it is used as a 1311*4882a593Smuzhiyun limitation of frame skip. The CPB is defined in the H264 standard as 1312*4882a593Smuzhiyun a mean to verify that the produced stream will be successfully 1313*4882a593Smuzhiyun decoded. Applicable to the H264 encoder. 1314*4882a593Smuzhiyun 1315*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (integer)`` 1316*4882a593Smuzhiyun Period between I-frames in the open GOP for H264. In case of an open 1317*4882a593Smuzhiyun GOP this is the period between two I-frames. The period between IDR 1318*4882a593Smuzhiyun (Instantaneous Decoding Refresh) frames is taken from the GOP_SIZE 1319*4882a593Smuzhiyun control. An IDR frame, which stands for Instantaneous Decoding 1320*4882a593Smuzhiyun Refresh is an I-frame after which no prior frames are referenced. 1321*4882a593Smuzhiyun This means that a stream can be restarted from an IDR frame without 1322*4882a593Smuzhiyun the need to store or decode any previous frames. Applicable to the 1323*4882a593Smuzhiyun H264 encoder. 1324*4882a593Smuzhiyun 1325*4882a593Smuzhiyun.. _v4l2-mpeg-video-header-mode: 1326*4882a593Smuzhiyun 1327*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEADER_MODE`` 1328*4882a593Smuzhiyun (enum) 1329*4882a593Smuzhiyun 1330*4882a593Smuzhiyunenum v4l2_mpeg_video_header_mode - 1331*4882a593Smuzhiyun Determines whether the header is returned as the first buffer or is 1332*4882a593Smuzhiyun it returned together with the first frame. Applicable to encoders. 1333*4882a593Smuzhiyun Possible values are: 1334*4882a593Smuzhiyun 1335*4882a593Smuzhiyun.. raw:: latex 1336*4882a593Smuzhiyun 1337*4882a593Smuzhiyun \small 1338*4882a593Smuzhiyun 1339*4882a593Smuzhiyun.. tabularcolumns:: |p{10.3cm}|p{7.2cm}| 1340*4882a593Smuzhiyun 1341*4882a593Smuzhiyun.. flat-table:: 1342*4882a593Smuzhiyun :header-rows: 0 1343*4882a593Smuzhiyun :stub-columns: 0 1344*4882a593Smuzhiyun 1345*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE`` 1346*4882a593Smuzhiyun - The stream header is returned separately in the first buffer. 1347*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME`` 1348*4882a593Smuzhiyun - The stream header is returned together with the first encoded 1349*4882a593Smuzhiyun frame. 1350*4882a593Smuzhiyun 1351*4882a593Smuzhiyun.. raw:: latex 1352*4882a593Smuzhiyun 1353*4882a593Smuzhiyun \normalsize 1354*4882a593Smuzhiyun 1355*4882a593Smuzhiyun 1356*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (boolean)`` 1357*4882a593Smuzhiyun Repeat the video sequence headers. Repeating these headers makes 1358*4882a593Smuzhiyun random access to the video stream easier. Applicable to the MPEG1, 2 1359*4882a593Smuzhiyun and 4 encoder. 1360*4882a593Smuzhiyun 1361*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (boolean)`` 1362*4882a593Smuzhiyun Enabled the deblocking post processing filter for MPEG4 decoder. 1363*4882a593Smuzhiyun Applicable to the MPEG4 decoder. 1364*4882a593Smuzhiyun 1365*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_RES (integer)`` 1366*4882a593Smuzhiyun vop_time_increment_resolution value for MPEG4. Applicable to the 1367*4882a593Smuzhiyun MPEG4 encoder. 1368*4882a593Smuzhiyun 1369*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_INC (integer)`` 1370*4882a593Smuzhiyun vop_time_increment value for MPEG4. Applicable to the MPEG4 1371*4882a593Smuzhiyun encoder. 1372*4882a593Smuzhiyun 1373*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (boolean)`` 1374*4882a593Smuzhiyun Enable generation of frame packing supplemental enhancement 1375*4882a593Smuzhiyun information in the encoded bitstream. The frame packing SEI message 1376*4882a593Smuzhiyun contains the arrangement of L and R planes for 3D viewing. 1377*4882a593Smuzhiyun Applicable to the H264 encoder. 1378*4882a593Smuzhiyun 1379*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (boolean)`` 1380*4882a593Smuzhiyun Sets current frame as frame0 in frame packing SEI. Applicable to the 1381*4882a593Smuzhiyun H264 encoder. 1382*4882a593Smuzhiyun 1383*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-sei-fp-arrangement-type: 1384*4882a593Smuzhiyun 1385*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE`` 1386*4882a593Smuzhiyun (enum) 1387*4882a593Smuzhiyun 1388*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_sei_fp_arrangement_type - 1389*4882a593Smuzhiyun Frame packing arrangement type for H264 SEI. Applicable to the H264 1390*4882a593Smuzhiyun encoder. Possible values are: 1391*4882a593Smuzhiyun 1392*4882a593Smuzhiyun.. raw:: latex 1393*4882a593Smuzhiyun 1394*4882a593Smuzhiyun \small 1395*4882a593Smuzhiyun 1396*4882a593Smuzhiyun.. tabularcolumns:: |p{12cm}|p{5.5cm}| 1397*4882a593Smuzhiyun 1398*4882a593Smuzhiyun.. flat-table:: 1399*4882a593Smuzhiyun :header-rows: 0 1400*4882a593Smuzhiyun :stub-columns: 0 1401*4882a593Smuzhiyun 1402*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD`` 1403*4882a593Smuzhiyun - Pixels are alternatively from L and R. 1404*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN`` 1405*4882a593Smuzhiyun - L and R are interlaced by column. 1406*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW`` 1407*4882a593Smuzhiyun - L and R are interlaced by row. 1408*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE`` 1409*4882a593Smuzhiyun - L is on the left, R on the right. 1410*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM`` 1411*4882a593Smuzhiyun - L is on top, R on bottom. 1412*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL`` 1413*4882a593Smuzhiyun - One view per frame. 1414*4882a593Smuzhiyun 1415*4882a593Smuzhiyun.. raw:: latex 1416*4882a593Smuzhiyun 1417*4882a593Smuzhiyun \normalsize 1418*4882a593Smuzhiyun 1419*4882a593Smuzhiyun 1420*4882a593Smuzhiyun 1421*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO (boolean)`` 1422*4882a593Smuzhiyun Enables flexible macroblock ordering in the encoded bitstream. It is 1423*4882a593Smuzhiyun a technique used for restructuring the ordering of macroblocks in 1424*4882a593Smuzhiyun pictures. Applicable to the H264 encoder. 1425*4882a593Smuzhiyun 1426*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-fmo-map-type: 1427*4882a593Smuzhiyun 1428*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE`` 1429*4882a593Smuzhiyun (enum) 1430*4882a593Smuzhiyun 1431*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_fmo_map_type - 1432*4882a593Smuzhiyun When using FMO, the map type divides the image in different scan 1433*4882a593Smuzhiyun patterns of macroblocks. Applicable to the H264 encoder. Possible 1434*4882a593Smuzhiyun values are: 1435*4882a593Smuzhiyun 1436*4882a593Smuzhiyun.. raw:: latex 1437*4882a593Smuzhiyun 1438*4882a593Smuzhiyun \small 1439*4882a593Smuzhiyun 1440*4882a593Smuzhiyun.. tabularcolumns:: |p{12.5cm}|p{5.0cm}| 1441*4882a593Smuzhiyun 1442*4882a593Smuzhiyun.. flat-table:: 1443*4882a593Smuzhiyun :header-rows: 0 1444*4882a593Smuzhiyun :stub-columns: 0 1445*4882a593Smuzhiyun 1446*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES`` 1447*4882a593Smuzhiyun - Slices are interleaved one after other with macroblocks in run 1448*4882a593Smuzhiyun length order. 1449*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES`` 1450*4882a593Smuzhiyun - Scatters the macroblocks based on a mathematical function known to 1451*4882a593Smuzhiyun both encoder and decoder. 1452*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER`` 1453*4882a593Smuzhiyun - Macroblocks arranged in rectangular areas or regions of interest. 1454*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT`` 1455*4882a593Smuzhiyun - Slice groups grow in a cyclic way from centre to outwards. 1456*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN`` 1457*4882a593Smuzhiyun - Slice groups grow in raster scan pattern from left to right. 1458*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN`` 1459*4882a593Smuzhiyun - Slice groups grow in wipe scan pattern from top to bottom. 1460*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT`` 1461*4882a593Smuzhiyun - User defined map type. 1462*4882a593Smuzhiyun 1463*4882a593Smuzhiyun.. raw:: latex 1464*4882a593Smuzhiyun 1465*4882a593Smuzhiyun \normalsize 1466*4882a593Smuzhiyun 1467*4882a593Smuzhiyun 1468*4882a593Smuzhiyun 1469*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (integer)`` 1470*4882a593Smuzhiyun Number of slice groups in FMO. Applicable to the H264 encoder. 1471*4882a593Smuzhiyun 1472*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-fmo-change-direction: 1473*4882a593Smuzhiyun 1474*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION`` 1475*4882a593Smuzhiyun (enum) 1476*4882a593Smuzhiyun 1477*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_fmo_change_dir - 1478*4882a593Smuzhiyun Specifies a direction of the slice group change for raster and wipe 1479*4882a593Smuzhiyun maps. Applicable to the H264 encoder. Possible values are: 1480*4882a593Smuzhiyun 1481*4882a593Smuzhiyun 1482*4882a593Smuzhiyun 1483*4882a593Smuzhiyun.. flat-table:: 1484*4882a593Smuzhiyun :header-rows: 0 1485*4882a593Smuzhiyun :stub-columns: 0 1486*4882a593Smuzhiyun 1487*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT`` 1488*4882a593Smuzhiyun - Raster scan or wipe right. 1489*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT`` 1490*4882a593Smuzhiyun - Reverse raster scan or wipe left. 1491*4882a593Smuzhiyun 1492*4882a593Smuzhiyun 1493*4882a593Smuzhiyun 1494*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (integer)`` 1495*4882a593Smuzhiyun Specifies the size of the first slice group for raster and wipe map. 1496*4882a593Smuzhiyun Applicable to the H264 encoder. 1497*4882a593Smuzhiyun 1498*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (integer)`` 1499*4882a593Smuzhiyun Specifies the number of consecutive macroblocks for the interleaved 1500*4882a593Smuzhiyun map. Applicable to the H264 encoder. 1501*4882a593Smuzhiyun 1502*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_ASO (boolean)`` 1503*4882a593Smuzhiyun Enables arbitrary slice ordering in encoded bitstream. Applicable to 1504*4882a593Smuzhiyun the H264 encoder. 1505*4882a593Smuzhiyun 1506*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (integer)`` 1507*4882a593Smuzhiyun Specifies the slice order in ASO. Applicable to the H264 encoder. 1508*4882a593Smuzhiyun The supplied 32-bit integer is interpreted as follows (bit 0 = least 1509*4882a593Smuzhiyun significant bit): 1510*4882a593Smuzhiyun 1511*4882a593Smuzhiyun 1512*4882a593Smuzhiyun 1513*4882a593Smuzhiyun.. flat-table:: 1514*4882a593Smuzhiyun :header-rows: 0 1515*4882a593Smuzhiyun :stub-columns: 0 1516*4882a593Smuzhiyun 1517*4882a593Smuzhiyun * - Bit 0:15 1518*4882a593Smuzhiyun - Slice ID 1519*4882a593Smuzhiyun * - Bit 16:32 1520*4882a593Smuzhiyun - Slice position or order 1521*4882a593Smuzhiyun 1522*4882a593Smuzhiyun 1523*4882a593Smuzhiyun 1524*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (boolean)`` 1525*4882a593Smuzhiyun Enables H264 hierarchical coding. Applicable to the H264 encoder. 1526*4882a593Smuzhiyun 1527*4882a593Smuzhiyun.. _v4l2-mpeg-video-h264-hierarchical-coding-type: 1528*4882a593Smuzhiyun 1529*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE`` 1530*4882a593Smuzhiyun (enum) 1531*4882a593Smuzhiyun 1532*4882a593Smuzhiyunenum v4l2_mpeg_video_h264_hierarchical_coding_type - 1533*4882a593Smuzhiyun Specifies the hierarchical coding type. Applicable to the H264 1534*4882a593Smuzhiyun encoder. Possible values are: 1535*4882a593Smuzhiyun 1536*4882a593Smuzhiyun 1537*4882a593Smuzhiyun 1538*4882a593Smuzhiyun.. flat-table:: 1539*4882a593Smuzhiyun :header-rows: 0 1540*4882a593Smuzhiyun :stub-columns: 0 1541*4882a593Smuzhiyun 1542*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B`` 1543*4882a593Smuzhiyun - Hierarchical B coding. 1544*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P`` 1545*4882a593Smuzhiyun - Hierarchical P coding. 1546*4882a593Smuzhiyun 1547*4882a593Smuzhiyun 1548*4882a593Smuzhiyun 1549*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (integer)`` 1550*4882a593Smuzhiyun Specifies the number of hierarchical coding layers. Applicable to 1551*4882a593Smuzhiyun the H264 encoder. 1552*4882a593Smuzhiyun 1553*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (integer)`` 1554*4882a593Smuzhiyun Specifies a user defined QP for each layer. Applicable to the H264 1555*4882a593Smuzhiyun encoder. The supplied 32-bit integer is interpreted as follows (bit 1556*4882a593Smuzhiyun 0 = least significant bit): 1557*4882a593Smuzhiyun 1558*4882a593Smuzhiyun 1559*4882a593Smuzhiyun 1560*4882a593Smuzhiyun.. flat-table:: 1561*4882a593Smuzhiyun :header-rows: 0 1562*4882a593Smuzhiyun :stub-columns: 0 1563*4882a593Smuzhiyun 1564*4882a593Smuzhiyun * - Bit 0:15 1565*4882a593Smuzhiyun - QP value 1566*4882a593Smuzhiyun * - Bit 16:32 1567*4882a593Smuzhiyun - Layer number 1568*4882a593Smuzhiyun 1569*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (integer)`` 1570*4882a593Smuzhiyun Indicates bit rate (bps) for hierarchical coding layer 0 for H264 encoder. 1571*4882a593Smuzhiyun 1572*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (integer)`` 1573*4882a593Smuzhiyun Indicates bit rate (bps) for hierarchical coding layer 1 for H264 encoder. 1574*4882a593Smuzhiyun 1575*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (integer)`` 1576*4882a593Smuzhiyun Indicates bit rate (bps) for hierarchical coding layer 2 for H264 encoder. 1577*4882a593Smuzhiyun 1578*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (integer)`` 1579*4882a593Smuzhiyun Indicates bit rate (bps) for hierarchical coding layer 3 for H264 encoder. 1580*4882a593Smuzhiyun 1581*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (integer)`` 1582*4882a593Smuzhiyun Indicates bit rate (bps) for hierarchical coding layer 4 for H264 encoder. 1583*4882a593Smuzhiyun 1584*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (integer)`` 1585*4882a593Smuzhiyun Indicates bit rate (bps) for hierarchical coding layer 5 for H264 encoder. 1586*4882a593Smuzhiyun 1587*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (integer)`` 1588*4882a593Smuzhiyun Indicates bit rate (bps) for hierarchical coding layer 6 for H264 encoder. 1589*4882a593Smuzhiyun 1590*4882a593Smuzhiyun.. _v4l2-mpeg-h264: 1591*4882a593Smuzhiyun 1592*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SPS (struct)`` 1593*4882a593Smuzhiyun Specifies the sequence parameter set (as extracted from the 1594*4882a593Smuzhiyun bitstream) for the associated H264 slice data. This includes the 1595*4882a593Smuzhiyun necessary parameters for configuring a stateless hardware decoding 1596*4882a593Smuzhiyun pipeline for H264. The bitstream parameters are defined according 1597*4882a593Smuzhiyun to :ref:`h264`, section 7.4.2.1.1 "Sequence Parameter Set Data 1598*4882a593Smuzhiyun Semantics". For further documentation, refer to the above 1599*4882a593Smuzhiyun specification, unless there is an explicit comment stating 1600*4882a593Smuzhiyun otherwise. 1601*4882a593Smuzhiyun 1602*4882a593Smuzhiyun .. note:: 1603*4882a593Smuzhiyun 1604*4882a593Smuzhiyun This compound control is not yet part of the public kernel API and 1605*4882a593Smuzhiyun it is expected to change. 1606*4882a593Smuzhiyun 1607*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_sps 1608*4882a593Smuzhiyun 1609*4882a593Smuzhiyun.. cssclass:: longtable 1610*4882a593Smuzhiyun 1611*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_sps 1612*4882a593Smuzhiyun :header-rows: 0 1613*4882a593Smuzhiyun :stub-columns: 0 1614*4882a593Smuzhiyun :widths: 1 1 2 1615*4882a593Smuzhiyun 1616*4882a593Smuzhiyun * - __u8 1617*4882a593Smuzhiyun - ``profile_idc`` 1618*4882a593Smuzhiyun - 1619*4882a593Smuzhiyun * - __u8 1620*4882a593Smuzhiyun - ``constraint_set_flags`` 1621*4882a593Smuzhiyun - See :ref:`Sequence Parameter Set Constraints Set Flags <h264_sps_constraints_set_flags>` 1622*4882a593Smuzhiyun * - __u8 1623*4882a593Smuzhiyun - ``level_idc`` 1624*4882a593Smuzhiyun - 1625*4882a593Smuzhiyun * - __u8 1626*4882a593Smuzhiyun - ``seq_parameter_set_id`` 1627*4882a593Smuzhiyun - 1628*4882a593Smuzhiyun * - __u8 1629*4882a593Smuzhiyun - ``chroma_format_idc`` 1630*4882a593Smuzhiyun - 1631*4882a593Smuzhiyun * - __u8 1632*4882a593Smuzhiyun - ``bit_depth_luma_minus8`` 1633*4882a593Smuzhiyun - 1634*4882a593Smuzhiyun * - __u8 1635*4882a593Smuzhiyun - ``bit_depth_chroma_minus8`` 1636*4882a593Smuzhiyun - 1637*4882a593Smuzhiyun * - __u8 1638*4882a593Smuzhiyun - ``log2_max_frame_num_minus4`` 1639*4882a593Smuzhiyun - 1640*4882a593Smuzhiyun * - __u8 1641*4882a593Smuzhiyun - ``pic_order_cnt_type`` 1642*4882a593Smuzhiyun - 1643*4882a593Smuzhiyun * - __u8 1644*4882a593Smuzhiyun - ``log2_max_pic_order_cnt_lsb_minus4`` 1645*4882a593Smuzhiyun - 1646*4882a593Smuzhiyun * - __u8 1647*4882a593Smuzhiyun - ``max_num_ref_frames`` 1648*4882a593Smuzhiyun - 1649*4882a593Smuzhiyun * - __u8 1650*4882a593Smuzhiyun - ``num_ref_frames_in_pic_order_cnt_cycle`` 1651*4882a593Smuzhiyun - 1652*4882a593Smuzhiyun * - __s32 1653*4882a593Smuzhiyun - ``offset_for_ref_frame[255]`` 1654*4882a593Smuzhiyun - 1655*4882a593Smuzhiyun * - __s32 1656*4882a593Smuzhiyun - ``offset_for_non_ref_pic`` 1657*4882a593Smuzhiyun - 1658*4882a593Smuzhiyun * - __s32 1659*4882a593Smuzhiyun - ``offset_for_top_to_bottom_field`` 1660*4882a593Smuzhiyun - 1661*4882a593Smuzhiyun * - __u16 1662*4882a593Smuzhiyun - ``pic_width_in_mbs_minus1`` 1663*4882a593Smuzhiyun - 1664*4882a593Smuzhiyun * - __u16 1665*4882a593Smuzhiyun - ``pic_height_in_map_units_minus1`` 1666*4882a593Smuzhiyun - 1667*4882a593Smuzhiyun * - __u32 1668*4882a593Smuzhiyun - ``flags`` 1669*4882a593Smuzhiyun - See :ref:`Sequence Parameter Set Flags <h264_sps_flags>` 1670*4882a593Smuzhiyun 1671*4882a593Smuzhiyun.. _h264_sps_constraints_set_flags: 1672*4882a593Smuzhiyun 1673*4882a593Smuzhiyun``Sequence Parameter Set Constraints Set Flags`` 1674*4882a593Smuzhiyun 1675*4882a593Smuzhiyun.. cssclass:: longtable 1676*4882a593Smuzhiyun 1677*4882a593Smuzhiyun.. flat-table:: 1678*4882a593Smuzhiyun :header-rows: 0 1679*4882a593Smuzhiyun :stub-columns: 0 1680*4882a593Smuzhiyun :widths: 1 1 2 1681*4882a593Smuzhiyun 1682*4882a593Smuzhiyun * - ``V4L2_H264_SPS_CONSTRAINT_SET0_FLAG`` 1683*4882a593Smuzhiyun - 0x00000001 1684*4882a593Smuzhiyun - 1685*4882a593Smuzhiyun * - ``V4L2_H264_SPS_CONSTRAINT_SET1_FLAG`` 1686*4882a593Smuzhiyun - 0x00000002 1687*4882a593Smuzhiyun - 1688*4882a593Smuzhiyun * - ``V4L2_H264_SPS_CONSTRAINT_SET2_FLAG`` 1689*4882a593Smuzhiyun - 0x00000004 1690*4882a593Smuzhiyun - 1691*4882a593Smuzhiyun * - ``V4L2_H264_SPS_CONSTRAINT_SET3_FLAG`` 1692*4882a593Smuzhiyun - 0x00000008 1693*4882a593Smuzhiyun - 1694*4882a593Smuzhiyun * - ``V4L2_H264_SPS_CONSTRAINT_SET4_FLAG`` 1695*4882a593Smuzhiyun - 0x00000010 1696*4882a593Smuzhiyun - 1697*4882a593Smuzhiyun * - ``V4L2_H264_SPS_CONSTRAINT_SET5_FLAG`` 1698*4882a593Smuzhiyun - 0x00000020 1699*4882a593Smuzhiyun - 1700*4882a593Smuzhiyun 1701*4882a593Smuzhiyun.. _h264_sps_flags: 1702*4882a593Smuzhiyun 1703*4882a593Smuzhiyun``Sequence Parameter Set Flags`` 1704*4882a593Smuzhiyun 1705*4882a593Smuzhiyun.. cssclass:: longtable 1706*4882a593Smuzhiyun 1707*4882a593Smuzhiyun.. flat-table:: 1708*4882a593Smuzhiyun :header-rows: 0 1709*4882a593Smuzhiyun :stub-columns: 0 1710*4882a593Smuzhiyun :widths: 1 1 2 1711*4882a593Smuzhiyun 1712*4882a593Smuzhiyun * - ``V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE`` 1713*4882a593Smuzhiyun - 0x00000001 1714*4882a593Smuzhiyun - 1715*4882a593Smuzhiyun * - ``V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS`` 1716*4882a593Smuzhiyun - 0x00000002 1717*4882a593Smuzhiyun - 1718*4882a593Smuzhiyun * - ``V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO`` 1719*4882a593Smuzhiyun - 0x00000004 1720*4882a593Smuzhiyun - 1721*4882a593Smuzhiyun * - ``V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED`` 1722*4882a593Smuzhiyun - 0x00000008 1723*4882a593Smuzhiyun - 1724*4882a593Smuzhiyun * - ``V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY`` 1725*4882a593Smuzhiyun - 0x00000010 1726*4882a593Smuzhiyun - 1727*4882a593Smuzhiyun * - ``V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD`` 1728*4882a593Smuzhiyun - 0x00000020 1729*4882a593Smuzhiyun - 1730*4882a593Smuzhiyun * - ``V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE`` 1731*4882a593Smuzhiyun - 0x00000040 1732*4882a593Smuzhiyun - 1733*4882a593Smuzhiyun 1734*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_PPS (struct)`` 1735*4882a593Smuzhiyun Specifies the picture parameter set (as extracted from the 1736*4882a593Smuzhiyun bitstream) for the associated H264 slice data. This includes the 1737*4882a593Smuzhiyun necessary parameters for configuring a stateless hardware decoding 1738*4882a593Smuzhiyun pipeline for H264. The bitstream parameters are defined according 1739*4882a593Smuzhiyun to :ref:`h264`, section 7.4.2.2 "Picture Parameter Set RBSP 1740*4882a593Smuzhiyun Semantics". For further documentation, refer to the above 1741*4882a593Smuzhiyun specification, unless there is an explicit comment stating 1742*4882a593Smuzhiyun otherwise. 1743*4882a593Smuzhiyun 1744*4882a593Smuzhiyun .. note:: 1745*4882a593Smuzhiyun 1746*4882a593Smuzhiyun This compound control is not yet part of the public kernel API and 1747*4882a593Smuzhiyun it is expected to change. 1748*4882a593Smuzhiyun 1749*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_pps 1750*4882a593Smuzhiyun 1751*4882a593Smuzhiyun.. cssclass:: longtable 1752*4882a593Smuzhiyun 1753*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_pps 1754*4882a593Smuzhiyun :header-rows: 0 1755*4882a593Smuzhiyun :stub-columns: 0 1756*4882a593Smuzhiyun :widths: 1 1 2 1757*4882a593Smuzhiyun 1758*4882a593Smuzhiyun * - __u8 1759*4882a593Smuzhiyun - ``pic_parameter_set_id`` 1760*4882a593Smuzhiyun - 1761*4882a593Smuzhiyun * - __u8 1762*4882a593Smuzhiyun - ``seq_parameter_set_id`` 1763*4882a593Smuzhiyun - 1764*4882a593Smuzhiyun * - __u8 1765*4882a593Smuzhiyun - ``num_slice_groups_minus1`` 1766*4882a593Smuzhiyun - 1767*4882a593Smuzhiyun * - __u8 1768*4882a593Smuzhiyun - ``num_ref_idx_l0_default_active_minus1`` 1769*4882a593Smuzhiyun - 1770*4882a593Smuzhiyun * - __u8 1771*4882a593Smuzhiyun - ``num_ref_idx_l1_default_active_minus1`` 1772*4882a593Smuzhiyun - 1773*4882a593Smuzhiyun * - __u8 1774*4882a593Smuzhiyun - ``weighted_bipred_idc`` 1775*4882a593Smuzhiyun - 1776*4882a593Smuzhiyun * - __s8 1777*4882a593Smuzhiyun - ``pic_init_qp_minus26`` 1778*4882a593Smuzhiyun - 1779*4882a593Smuzhiyun * - __s8 1780*4882a593Smuzhiyun - ``pic_init_qs_minus26`` 1781*4882a593Smuzhiyun - 1782*4882a593Smuzhiyun * - __s8 1783*4882a593Smuzhiyun - ``chroma_qp_index_offset`` 1784*4882a593Smuzhiyun - 1785*4882a593Smuzhiyun * - __s8 1786*4882a593Smuzhiyun - ``second_chroma_qp_index_offset`` 1787*4882a593Smuzhiyun - 1788*4882a593Smuzhiyun * - __u16 1789*4882a593Smuzhiyun - ``flags`` 1790*4882a593Smuzhiyun - See :ref:`Picture Parameter Set Flags <h264_pps_flags>` 1791*4882a593Smuzhiyun 1792*4882a593Smuzhiyun.. _h264_pps_flags: 1793*4882a593Smuzhiyun 1794*4882a593Smuzhiyun``Picture Parameter Set Flags`` 1795*4882a593Smuzhiyun 1796*4882a593Smuzhiyun.. cssclass:: longtable 1797*4882a593Smuzhiyun 1798*4882a593Smuzhiyun.. flat-table:: 1799*4882a593Smuzhiyun :header-rows: 0 1800*4882a593Smuzhiyun :stub-columns: 0 1801*4882a593Smuzhiyun :widths: 1 1 2 1802*4882a593Smuzhiyun 1803*4882a593Smuzhiyun * - ``V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE`` 1804*4882a593Smuzhiyun - 0x00000001 1805*4882a593Smuzhiyun - 1806*4882a593Smuzhiyun * - ``V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT`` 1807*4882a593Smuzhiyun - 0x00000002 1808*4882a593Smuzhiyun - 1809*4882a593Smuzhiyun * - ``V4L2_H264_PPS_FLAG_WEIGHTED_PRED`` 1810*4882a593Smuzhiyun - 0x00000004 1811*4882a593Smuzhiyun - 1812*4882a593Smuzhiyun * - ``V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT`` 1813*4882a593Smuzhiyun - 0x00000008 1814*4882a593Smuzhiyun - 1815*4882a593Smuzhiyun * - ``V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED`` 1816*4882a593Smuzhiyun - 0x00000010 1817*4882a593Smuzhiyun - 1818*4882a593Smuzhiyun * - ``V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT`` 1819*4882a593Smuzhiyun - 0x00000020 1820*4882a593Smuzhiyun - 1821*4882a593Smuzhiyun * - ``V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE`` 1822*4882a593Smuzhiyun - 0x00000040 1823*4882a593Smuzhiyun - 1824*4882a593Smuzhiyun * - ``V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT`` 1825*4882a593Smuzhiyun - 0x00000080 1826*4882a593Smuzhiyun - Indicates that ``V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX`` 1827*4882a593Smuzhiyun must be used for this picture. 1828*4882a593Smuzhiyun 1829*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX (struct)`` 1830*4882a593Smuzhiyun Specifies the scaling matrix (as extracted from the bitstream) for 1831*4882a593Smuzhiyun the associated H264 slice data. The bitstream parameters are 1832*4882a593Smuzhiyun defined according to :ref:`h264`, section 7.4.2.1.1.1 "Scaling 1833*4882a593Smuzhiyun List Semantics". For further documentation, refer to the above 1834*4882a593Smuzhiyun specification, unless there is an explicit comment stating 1835*4882a593Smuzhiyun otherwise. 1836*4882a593Smuzhiyun 1837*4882a593Smuzhiyun .. note:: 1838*4882a593Smuzhiyun 1839*4882a593Smuzhiyun This compound control is not yet part of the public kernel API and 1840*4882a593Smuzhiyun it is expected to change. 1841*4882a593Smuzhiyun 1842*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_scaling_matrix 1843*4882a593Smuzhiyun 1844*4882a593Smuzhiyun.. cssclass:: longtable 1845*4882a593Smuzhiyun 1846*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_scaling_matrix 1847*4882a593Smuzhiyun :header-rows: 0 1848*4882a593Smuzhiyun :stub-columns: 0 1849*4882a593Smuzhiyun :widths: 1 1 2 1850*4882a593Smuzhiyun 1851*4882a593Smuzhiyun * - __u8 1852*4882a593Smuzhiyun - ``scaling_list_4x4[6][16]`` 1853*4882a593Smuzhiyun - Scaling matrix after applying the inverse scanning process. 1854*4882a593Smuzhiyun Expected list order is Intra Y, Intra Cb, Intra Cr, Inter Y, 1855*4882a593Smuzhiyun Inter Cb, Inter Cr. The values on each scaling list are 1856*4882a593Smuzhiyun expected in raster scan order. 1857*4882a593Smuzhiyun * - __u8 1858*4882a593Smuzhiyun - ``scaling_list_8x8[6][64]`` 1859*4882a593Smuzhiyun - Scaling matrix after applying the inverse scanning process. 1860*4882a593Smuzhiyun Expected list order is Intra Y, Inter Y, Intra Cb, Inter Cb, 1861*4882a593Smuzhiyun Intra Cr, Inter Cr. The values on each scaling list are 1862*4882a593Smuzhiyun expected in raster scan order. 1863*4882a593Smuzhiyun 1864*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS (struct)`` 1865*4882a593Smuzhiyun Specifies the slice parameters (as extracted from the bitstream) 1866*4882a593Smuzhiyun for the associated H264 slice data. This includes the necessary 1867*4882a593Smuzhiyun parameters for configuring a stateless hardware decoding pipeline 1868*4882a593Smuzhiyun for H264. The bitstream parameters are defined according to 1869*4882a593Smuzhiyun :ref:`h264`, section 7.4.3 "Slice Header Semantics". For further 1870*4882a593Smuzhiyun documentation, refer to the above specification, unless there is 1871*4882a593Smuzhiyun an explicit comment stating otherwise. 1872*4882a593Smuzhiyun 1873*4882a593Smuzhiyun .. note:: 1874*4882a593Smuzhiyun 1875*4882a593Smuzhiyun This compound control is not yet part of the public kernel API 1876*4882a593Smuzhiyun and it is expected to change. 1877*4882a593Smuzhiyun 1878*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_slice_params 1879*4882a593Smuzhiyun 1880*4882a593Smuzhiyun.. cssclass:: longtable 1881*4882a593Smuzhiyun 1882*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_slice_params 1883*4882a593Smuzhiyun :header-rows: 0 1884*4882a593Smuzhiyun :stub-columns: 0 1885*4882a593Smuzhiyun :widths: 1 1 2 1886*4882a593Smuzhiyun 1887*4882a593Smuzhiyun * - __u32 1888*4882a593Smuzhiyun - ``header_bit_size`` 1889*4882a593Smuzhiyun - Offset in bits to slice_data() from the beginning of this slice. 1890*4882a593Smuzhiyun * - __u32 1891*4882a593Smuzhiyun - ``first_mb_in_slice`` 1892*4882a593Smuzhiyun - 1893*4882a593Smuzhiyun * - __u8 1894*4882a593Smuzhiyun - ``slice_type`` 1895*4882a593Smuzhiyun - 1896*4882a593Smuzhiyun * - __u8 1897*4882a593Smuzhiyun - ``colour_plane_id`` 1898*4882a593Smuzhiyun - 1899*4882a593Smuzhiyun * - __u8 1900*4882a593Smuzhiyun - ``redundant_pic_cnt`` 1901*4882a593Smuzhiyun - 1902*4882a593Smuzhiyun * - __u8 1903*4882a593Smuzhiyun - ``cabac_init_idc`` 1904*4882a593Smuzhiyun - 1905*4882a593Smuzhiyun * - __s8 1906*4882a593Smuzhiyun - ``slice_qp_delta`` 1907*4882a593Smuzhiyun - 1908*4882a593Smuzhiyun * - __s8 1909*4882a593Smuzhiyun - ``slice_qs_delta`` 1910*4882a593Smuzhiyun - 1911*4882a593Smuzhiyun * - __u8 1912*4882a593Smuzhiyun - ``disable_deblocking_filter_idc`` 1913*4882a593Smuzhiyun - 1914*4882a593Smuzhiyun * - __s8 1915*4882a593Smuzhiyun - ``slice_alpha_c0_offset_div2`` 1916*4882a593Smuzhiyun - 1917*4882a593Smuzhiyun * - __s8 1918*4882a593Smuzhiyun - ``slice_beta_offset_div2`` 1919*4882a593Smuzhiyun - 1920*4882a593Smuzhiyun * - __u8 1921*4882a593Smuzhiyun - ``num_ref_idx_l0_active_minus1`` 1922*4882a593Smuzhiyun - If num_ref_idx_active_override_flag is not set, this field must be 1923*4882a593Smuzhiyun set to the value of num_ref_idx_l0_default_active_minus1. 1924*4882a593Smuzhiyun * - __u8 1925*4882a593Smuzhiyun - ``num_ref_idx_l1_active_minus1`` 1926*4882a593Smuzhiyun - If num_ref_idx_active_override_flag is not set, this field must be 1927*4882a593Smuzhiyun set to the value of num_ref_idx_l1_default_active_minus1. 1928*4882a593Smuzhiyun * - __u8 1929*4882a593Smuzhiyun - ``reserved`` 1930*4882a593Smuzhiyun - Applications and drivers must set this to zero. 1931*4882a593Smuzhiyun * - struct :c:type:`v4l2_h264_reference` 1932*4882a593Smuzhiyun - ``ref_pic_list0[32]`` 1933*4882a593Smuzhiyun - Reference picture list after applying the per-slice modifications 1934*4882a593Smuzhiyun * - struct :c:type:`v4l2_h264_reference` 1935*4882a593Smuzhiyun - ``ref_pic_list1[32]`` 1936*4882a593Smuzhiyun - Reference picture list after applying the per-slice modifications 1937*4882a593Smuzhiyun * - __u32 1938*4882a593Smuzhiyun - ``flags`` 1939*4882a593Smuzhiyun - See :ref:`Slice Parameter Flags <h264_slice_flags>` 1940*4882a593Smuzhiyun 1941*4882a593Smuzhiyun.. _h264_slice_flags: 1942*4882a593Smuzhiyun 1943*4882a593Smuzhiyun``Slice Parameter Set Flags`` 1944*4882a593Smuzhiyun 1945*4882a593Smuzhiyun.. cssclass:: longtable 1946*4882a593Smuzhiyun 1947*4882a593Smuzhiyun.. flat-table:: 1948*4882a593Smuzhiyun :header-rows: 0 1949*4882a593Smuzhiyun :stub-columns: 0 1950*4882a593Smuzhiyun :widths: 1 1 2 1951*4882a593Smuzhiyun 1952*4882a593Smuzhiyun * - ``V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED`` 1953*4882a593Smuzhiyun - 0x00000001 1954*4882a593Smuzhiyun - 1955*4882a593Smuzhiyun * - ``V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH`` 1956*4882a593Smuzhiyun - 0x00000002 1957*4882a593Smuzhiyun - 1958*4882a593Smuzhiyun 1959*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_PRED_WEIGHTS (struct)`` 1960*4882a593Smuzhiyun Prediction weight table defined according to :ref:`h264`, 1961*4882a593Smuzhiyun section 7.4.3.2 "Prediction Weight Table Semantics". 1962*4882a593Smuzhiyun The prediction weight table must be passed by applications 1963*4882a593Smuzhiyun under the conditions explained in section 7.3.3 "Slice header 1964*4882a593Smuzhiyun syntax". 1965*4882a593Smuzhiyun 1966*4882a593Smuzhiyun .. note:: 1967*4882a593Smuzhiyun 1968*4882a593Smuzhiyun This compound control is not yet part of the public kernel API and 1969*4882a593Smuzhiyun it is expected to change. 1970*4882a593Smuzhiyun 1971*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_pred_weights 1972*4882a593Smuzhiyun 1973*4882a593Smuzhiyun.. cssclass:: longtable 1974*4882a593Smuzhiyun 1975*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_pred_weights 1976*4882a593Smuzhiyun :header-rows: 0 1977*4882a593Smuzhiyun :stub-columns: 0 1978*4882a593Smuzhiyun :widths: 1 1 2 1979*4882a593Smuzhiyun 1980*4882a593Smuzhiyun * - __u16 1981*4882a593Smuzhiyun - ``luma_log2_weight_denom`` 1982*4882a593Smuzhiyun - 1983*4882a593Smuzhiyun * - __u16 1984*4882a593Smuzhiyun - ``chroma_log2_weight_denom`` 1985*4882a593Smuzhiyun - 1986*4882a593Smuzhiyun * - struct :c:type:`v4l2_h264_weight_factors` 1987*4882a593Smuzhiyun - ``weight_factors[2]`` 1988*4882a593Smuzhiyun - The weight factors at index 0 are the weight factors for the reference 1989*4882a593Smuzhiyun list 0, the one at index 1 for the reference list 1. 1990*4882a593Smuzhiyun 1991*4882a593Smuzhiyun.. c:type:: v4l2_h264_weight_factors 1992*4882a593Smuzhiyun 1993*4882a593Smuzhiyun.. cssclass:: longtable 1994*4882a593Smuzhiyun 1995*4882a593Smuzhiyun.. flat-table:: struct v4l2_h264_weight_factors 1996*4882a593Smuzhiyun :header-rows: 0 1997*4882a593Smuzhiyun :stub-columns: 0 1998*4882a593Smuzhiyun :widths: 1 1 2 1999*4882a593Smuzhiyun 2000*4882a593Smuzhiyun * - __s16 2001*4882a593Smuzhiyun - ``luma_weight[32]`` 2002*4882a593Smuzhiyun - 2003*4882a593Smuzhiyun * - __s16 2004*4882a593Smuzhiyun - ``luma_offset[32]`` 2005*4882a593Smuzhiyun - 2006*4882a593Smuzhiyun * - __s16 2007*4882a593Smuzhiyun - ``chroma_weight[32][2]`` 2008*4882a593Smuzhiyun - 2009*4882a593Smuzhiyun * - __s16 2010*4882a593Smuzhiyun - ``chroma_offset[32][2]`` 2011*4882a593Smuzhiyun - 2012*4882a593Smuzhiyun 2013*4882a593Smuzhiyun``Picture Reference`` 2014*4882a593Smuzhiyun 2015*4882a593Smuzhiyun.. c:type:: v4l2_h264_reference 2016*4882a593Smuzhiyun 2017*4882a593Smuzhiyun.. cssclass:: longtable 2018*4882a593Smuzhiyun 2019*4882a593Smuzhiyun.. flat-table:: struct v4l2_h264_reference 2020*4882a593Smuzhiyun :header-rows: 0 2021*4882a593Smuzhiyun :stub-columns: 0 2022*4882a593Smuzhiyun :widths: 1 1 2 2023*4882a593Smuzhiyun 2024*4882a593Smuzhiyun * - __u8 2025*4882a593Smuzhiyun - ``fields`` 2026*4882a593Smuzhiyun - Specifies how the picture is referenced. See :ref:`Reference Fields <h264_ref_fields>` 2027*4882a593Smuzhiyun * - __u8 2028*4882a593Smuzhiyun - ``index`` 2029*4882a593Smuzhiyun - Index into the :c:type:`v4l2_ctrl_h264_decode_params`.dpb array. 2030*4882a593Smuzhiyun 2031*4882a593Smuzhiyun.. _h264_ref_fields: 2032*4882a593Smuzhiyun 2033*4882a593Smuzhiyun``Reference Fields`` 2034*4882a593Smuzhiyun 2035*4882a593Smuzhiyun.. cssclass:: longtable 2036*4882a593Smuzhiyun 2037*4882a593Smuzhiyun.. flat-table:: 2038*4882a593Smuzhiyun :header-rows: 0 2039*4882a593Smuzhiyun :stub-columns: 0 2040*4882a593Smuzhiyun :widths: 1 1 2 2041*4882a593Smuzhiyun 2042*4882a593Smuzhiyun * - ``V4L2_H264_TOP_FIELD_REF`` 2043*4882a593Smuzhiyun - 0x1 2044*4882a593Smuzhiyun - The top field in field pair is used for short-term reference. 2045*4882a593Smuzhiyun * - ``V4L2_H264_BOTTOM_FIELD_REF`` 2046*4882a593Smuzhiyun - 0x2 2047*4882a593Smuzhiyun - The bottom field in field pair is used for short-term reference. 2048*4882a593Smuzhiyun * - ``V4L2_H264_FRAME_REF`` 2049*4882a593Smuzhiyun - 0x3 2050*4882a593Smuzhiyun - The frame (or the top/bottom fields, if it's a field pair) 2051*4882a593Smuzhiyun is used for short-term reference. 2052*4882a593Smuzhiyun 2053*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAMS (struct)`` 2054*4882a593Smuzhiyun Specifies the decode parameters (as extracted from the bitstream) 2055*4882a593Smuzhiyun for the associated H264 slice data. This includes the necessary 2056*4882a593Smuzhiyun parameters for configuring a stateless hardware decoding pipeline 2057*4882a593Smuzhiyun for H264. The bitstream parameters are defined according to 2058*4882a593Smuzhiyun :ref:`h264`. For further documentation, refer to the above 2059*4882a593Smuzhiyun specification, unless there is an explicit comment stating 2060*4882a593Smuzhiyun otherwise. 2061*4882a593Smuzhiyun 2062*4882a593Smuzhiyun .. note:: 2063*4882a593Smuzhiyun 2064*4882a593Smuzhiyun This compound control is not yet part of the public kernel API and 2065*4882a593Smuzhiyun it is expected to change. 2066*4882a593Smuzhiyun 2067*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_h264_decode_params 2068*4882a593Smuzhiyun 2069*4882a593Smuzhiyun.. cssclass:: longtable 2070*4882a593Smuzhiyun 2071*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_h264_decode_params 2072*4882a593Smuzhiyun :header-rows: 0 2073*4882a593Smuzhiyun :stub-columns: 0 2074*4882a593Smuzhiyun :widths: 1 1 2 2075*4882a593Smuzhiyun 2076*4882a593Smuzhiyun * - struct :c:type:`v4l2_h264_dpb_entry` 2077*4882a593Smuzhiyun - ``dpb[16]`` 2078*4882a593Smuzhiyun - 2079*4882a593Smuzhiyun * - __u16 2080*4882a593Smuzhiyun - ``nal_ref_idc`` 2081*4882a593Smuzhiyun - NAL reference ID value coming from the NAL Unit header 2082*4882a593Smuzhiyun * - __u16 2083*4882a593Smuzhiyun - ``frame_num`` 2084*4882a593Smuzhiyun - 2085*4882a593Smuzhiyun * - __s32 2086*4882a593Smuzhiyun - ``top_field_order_cnt`` 2087*4882a593Smuzhiyun - Picture Order Count for the coded top field 2088*4882a593Smuzhiyun * - __s32 2089*4882a593Smuzhiyun - ``bottom_field_order_cnt`` 2090*4882a593Smuzhiyun - Picture Order Count for the coded bottom field 2091*4882a593Smuzhiyun * - __u16 2092*4882a593Smuzhiyun - ``idr_pic_id`` 2093*4882a593Smuzhiyun - 2094*4882a593Smuzhiyun * - __u16 2095*4882a593Smuzhiyun - ``pic_order_cnt_lsb`` 2096*4882a593Smuzhiyun - 2097*4882a593Smuzhiyun * - __s32 2098*4882a593Smuzhiyun - ``delta_pic_order_cnt_bottom`` 2099*4882a593Smuzhiyun - 2100*4882a593Smuzhiyun * - __s32 2101*4882a593Smuzhiyun - ``delta_pic_order_cnt0`` 2102*4882a593Smuzhiyun - 2103*4882a593Smuzhiyun * - __s32 2104*4882a593Smuzhiyun - ``delta_pic_order_cnt1`` 2105*4882a593Smuzhiyun - 2106*4882a593Smuzhiyun * - __u32 2107*4882a593Smuzhiyun - ``dec_ref_pic_marking_bit_size`` 2108*4882a593Smuzhiyun - Size in bits of the dec_ref_pic_marking() syntax element. 2109*4882a593Smuzhiyun * - __u32 2110*4882a593Smuzhiyun - ``pic_order_cnt_bit_size`` 2111*4882a593Smuzhiyun - Combined size in bits of the picture order count related syntax 2112*4882a593Smuzhiyun elements: pic_order_cnt_lsb, delta_pic_order_cnt_bottom, 2113*4882a593Smuzhiyun delta_pic_order_cnt0, and delta_pic_order_cnt1. 2114*4882a593Smuzhiyun * - __u32 2115*4882a593Smuzhiyun - ``slice_group_change_cycle`` 2116*4882a593Smuzhiyun - 2117*4882a593Smuzhiyun * - __u32 2118*4882a593Smuzhiyun - ``reserved`` 2119*4882a593Smuzhiyun - Applications and drivers must set this to zero. 2120*4882a593Smuzhiyun * - __u32 2121*4882a593Smuzhiyun - ``flags`` 2122*4882a593Smuzhiyun - See :ref:`Decode Parameters Flags <h264_decode_params_flags>` 2123*4882a593Smuzhiyun 2124*4882a593Smuzhiyun.. _h264_decode_params_flags: 2125*4882a593Smuzhiyun 2126*4882a593Smuzhiyun``Decode Parameters Flags`` 2127*4882a593Smuzhiyun 2128*4882a593Smuzhiyun.. cssclass:: longtable 2129*4882a593Smuzhiyun 2130*4882a593Smuzhiyun.. flat-table:: 2131*4882a593Smuzhiyun :header-rows: 0 2132*4882a593Smuzhiyun :stub-columns: 0 2133*4882a593Smuzhiyun :widths: 1 1 2 2134*4882a593Smuzhiyun 2135*4882a593Smuzhiyun * - ``V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC`` 2136*4882a593Smuzhiyun - 0x00000001 2137*4882a593Smuzhiyun - That picture is an IDR picture 2138*4882a593Smuzhiyun * - ``V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC`` 2139*4882a593Smuzhiyun - 0x00000002 2140*4882a593Smuzhiyun - 2141*4882a593Smuzhiyun * - ``V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD`` 2142*4882a593Smuzhiyun - 0x00000004 2143*4882a593Smuzhiyun - 2144*4882a593Smuzhiyun 2145*4882a593Smuzhiyun.. c:type:: v4l2_h264_dpb_entry 2146*4882a593Smuzhiyun 2147*4882a593Smuzhiyun.. cssclass:: longtable 2148*4882a593Smuzhiyun 2149*4882a593Smuzhiyun.. flat-table:: struct v4l2_h264_dpb_entry 2150*4882a593Smuzhiyun :header-rows: 0 2151*4882a593Smuzhiyun :stub-columns: 0 2152*4882a593Smuzhiyun :widths: 1 1 2 2153*4882a593Smuzhiyun 2154*4882a593Smuzhiyun * - __u64 2155*4882a593Smuzhiyun - ``reference_ts`` 2156*4882a593Smuzhiyun - Timestamp of the V4L2 capture buffer to use as reference, used 2157*4882a593Smuzhiyun with B-coded and P-coded frames. The timestamp refers to the 2158*4882a593Smuzhiyun ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 2159*4882a593Smuzhiyun :c:func:`v4l2_timeval_to_ns()` function to convert the struct 2160*4882a593Smuzhiyun :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 2161*4882a593Smuzhiyun * - __u32 2162*4882a593Smuzhiyun - ``pic_num`` 2163*4882a593Smuzhiyun - 2164*4882a593Smuzhiyun * - __u16 2165*4882a593Smuzhiyun - ``frame_num`` 2166*4882a593Smuzhiyun - 2167*4882a593Smuzhiyun * - __u8 2168*4882a593Smuzhiyun - ``fields`` 2169*4882a593Smuzhiyun - Specifies how the DPB entry is referenced. See :ref:`Reference Fields <h264_ref_fields>` 2170*4882a593Smuzhiyun * - __u8 2171*4882a593Smuzhiyun - ``reserved[5]`` 2172*4882a593Smuzhiyun - Applications and drivers must set this to zero. 2173*4882a593Smuzhiyun * - __s32 2174*4882a593Smuzhiyun - ``top_field_order_cnt`` 2175*4882a593Smuzhiyun - 2176*4882a593Smuzhiyun * - __s32 2177*4882a593Smuzhiyun - ``bottom_field_order_cnt`` 2178*4882a593Smuzhiyun - 2179*4882a593Smuzhiyun * - __u32 2180*4882a593Smuzhiyun - ``flags`` 2181*4882a593Smuzhiyun - See :ref:`DPB Entry Flags <h264_dpb_flags>` 2182*4882a593Smuzhiyun 2183*4882a593Smuzhiyun.. _h264_dpb_flags: 2184*4882a593Smuzhiyun 2185*4882a593Smuzhiyun``DPB Entries Flags`` 2186*4882a593Smuzhiyun 2187*4882a593Smuzhiyun.. cssclass:: longtable 2188*4882a593Smuzhiyun 2189*4882a593Smuzhiyun.. flat-table:: 2190*4882a593Smuzhiyun :header-rows: 0 2191*4882a593Smuzhiyun :stub-columns: 0 2192*4882a593Smuzhiyun :widths: 1 1 2 2193*4882a593Smuzhiyun 2194*4882a593Smuzhiyun * - ``V4L2_H264_DPB_ENTRY_FLAG_VALID`` 2195*4882a593Smuzhiyun - 0x00000001 2196*4882a593Smuzhiyun - The DPB entry is valid (non-empty) and should be considered. 2197*4882a593Smuzhiyun * - ``V4L2_H264_DPB_ENTRY_FLAG_ACTIVE`` 2198*4882a593Smuzhiyun - 0x00000002 2199*4882a593Smuzhiyun - The DPB entry is used for reference. 2200*4882a593Smuzhiyun * - ``V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM`` 2201*4882a593Smuzhiyun - 0x00000004 2202*4882a593Smuzhiyun - The DPB entry is used for long-term reference. 2203*4882a593Smuzhiyun * - ``V4L2_H264_DPB_ENTRY_FLAG_FIELD`` 2204*4882a593Smuzhiyun - 0x00000008 2205*4882a593Smuzhiyun - The DPB entry is a single field or a complementary field pair. 2206*4882a593Smuzhiyun 2207*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_DECODE_MODE (enum)`` 2208*4882a593Smuzhiyun Specifies the decoding mode to use. Currently exposes slice-based and 2209*4882a593Smuzhiyun frame-based decoding but new modes might be added later on. 2210*4882a593Smuzhiyun This control is used as a modifier for V4L2_PIX_FMT_H264_SLICE 2211*4882a593Smuzhiyun pixel format. Applications that support V4L2_PIX_FMT_H264_SLICE 2212*4882a593Smuzhiyun are required to set this control in order to specify the decoding mode 2213*4882a593Smuzhiyun that is expected for the buffer. 2214*4882a593Smuzhiyun Drivers may expose a single or multiple decoding modes, depending 2215*4882a593Smuzhiyun on what they can support. 2216*4882a593Smuzhiyun 2217*4882a593Smuzhiyun .. note:: 2218*4882a593Smuzhiyun 2219*4882a593Smuzhiyun This menu control is not yet part of the public kernel API and 2220*4882a593Smuzhiyun it is expected to change. 2221*4882a593Smuzhiyun 2222*4882a593Smuzhiyun.. c:type:: v4l2_mpeg_video_h264_decode_mode 2223*4882a593Smuzhiyun 2224*4882a593Smuzhiyun.. cssclass:: longtable 2225*4882a593Smuzhiyun 2226*4882a593Smuzhiyun.. flat-table:: 2227*4882a593Smuzhiyun :header-rows: 0 2228*4882a593Smuzhiyun :stub-columns: 0 2229*4882a593Smuzhiyun :widths: 1 1 2 2230*4882a593Smuzhiyun 2231*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_DECODE_MODE_SLICE_BASED`` 2232*4882a593Smuzhiyun - 0 2233*4882a593Smuzhiyun - Decoding is done at the slice granularity. 2234*4882a593Smuzhiyun The OUTPUT buffer must contain a single slice. 2235*4882a593Smuzhiyun When this mode is selected, the ``V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS`` 2236*4882a593Smuzhiyun control shall be set. When multiple slices compose a frame, 2237*4882a593Smuzhiyun use of ``V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF`` flag 2238*4882a593Smuzhiyun is required. 2239*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_DECODE_MODE_FRAME_BASED`` 2240*4882a593Smuzhiyun - 1 2241*4882a593Smuzhiyun - Decoding is done at the frame granularity, 2242*4882a593Smuzhiyun The OUTPUT buffer must contain all slices needed to decode the 2243*4882a593Smuzhiyun frame. The OUTPUT buffer must also contain both fields. 2244*4882a593Smuzhiyun This mode will be supported by devices that 2245*4882a593Smuzhiyun parse the slice(s) header(s) in hardware. When this mode is 2246*4882a593Smuzhiyun selected, the ``V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAMS`` 2247*4882a593Smuzhiyun control shall not be set. 2248*4882a593Smuzhiyun 2249*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_H264_START_CODE (enum)`` 2250*4882a593Smuzhiyun Specifies the H264 slice start code expected for each slice. 2251*4882a593Smuzhiyun This control is used as a modifier for V4L2_PIX_FMT_H264_SLICE 2252*4882a593Smuzhiyun pixel format. Applications that support V4L2_PIX_FMT_H264_SLICE 2253*4882a593Smuzhiyun are required to set this control in order to specify the start code 2254*4882a593Smuzhiyun that is expected for the buffer. 2255*4882a593Smuzhiyun Drivers may expose a single or multiple start codes, depending 2256*4882a593Smuzhiyun on what they can support. 2257*4882a593Smuzhiyun 2258*4882a593Smuzhiyun .. note:: 2259*4882a593Smuzhiyun 2260*4882a593Smuzhiyun This menu control is not yet part of the public kernel API and 2261*4882a593Smuzhiyun it is expected to change. 2262*4882a593Smuzhiyun 2263*4882a593Smuzhiyun.. c:type:: v4l2_mpeg_video_h264_start_code 2264*4882a593Smuzhiyun 2265*4882a593Smuzhiyun.. cssclass:: longtable 2266*4882a593Smuzhiyun 2267*4882a593Smuzhiyun.. flat-table:: 2268*4882a593Smuzhiyun :header-rows: 0 2269*4882a593Smuzhiyun :stub-columns: 0 2270*4882a593Smuzhiyun :widths: 1 1 2 2271*4882a593Smuzhiyun 2272*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_START_CODE_NONE`` 2273*4882a593Smuzhiyun - 0 2274*4882a593Smuzhiyun - Selecting this value specifies that H264 slices are passed 2275*4882a593Smuzhiyun to the driver without any start code. 2276*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_H264_START_CODE_ANNEX_B`` 2277*4882a593Smuzhiyun - 1 2278*4882a593Smuzhiyun - Selecting this value specifies that H264 slices are expected 2279*4882a593Smuzhiyun to be prefixed by Annex B start codes. According to :ref:`h264` 2280*4882a593Smuzhiyun valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001. 2281*4882a593Smuzhiyun 2282*4882a593Smuzhiyun.. _v4l2-mpeg-mpeg2: 2283*4882a593Smuzhiyun 2284*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS (struct)`` 2285*4882a593Smuzhiyun Specifies the slice parameters (as extracted from the bitstream) for the 2286*4882a593Smuzhiyun associated MPEG-2 slice data. This includes the necessary parameters for 2287*4882a593Smuzhiyun configuring a stateless hardware decoding pipeline for MPEG-2. 2288*4882a593Smuzhiyun The bitstream parameters are defined according to :ref:`mpeg2part2`. 2289*4882a593Smuzhiyun 2290*4882a593Smuzhiyun .. note:: 2291*4882a593Smuzhiyun 2292*4882a593Smuzhiyun This compound control is not yet part of the public kernel API and 2293*4882a593Smuzhiyun it is expected to change. 2294*4882a593Smuzhiyun 2295*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_mpeg2_slice_params 2296*4882a593Smuzhiyun 2297*4882a593Smuzhiyun.. cssclass:: longtable 2298*4882a593Smuzhiyun 2299*4882a593Smuzhiyun.. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| 2300*4882a593Smuzhiyun 2301*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_mpeg2_slice_params 2302*4882a593Smuzhiyun :header-rows: 0 2303*4882a593Smuzhiyun :stub-columns: 0 2304*4882a593Smuzhiyun :widths: 1 1 2 2305*4882a593Smuzhiyun 2306*4882a593Smuzhiyun * - __u32 2307*4882a593Smuzhiyun - ``bit_size`` 2308*4882a593Smuzhiyun - Size (in bits) of the current slice data. 2309*4882a593Smuzhiyun * - __u32 2310*4882a593Smuzhiyun - ``data_bit_offset`` 2311*4882a593Smuzhiyun - Offset (in bits) to the video data in the current slice data. 2312*4882a593Smuzhiyun * - struct :c:type:`v4l2_mpeg2_sequence` 2313*4882a593Smuzhiyun - ``sequence`` 2314*4882a593Smuzhiyun - Structure with MPEG-2 sequence metadata, merging relevant fields from 2315*4882a593Smuzhiyun the sequence header and sequence extension parts of the bitstream. 2316*4882a593Smuzhiyun * - struct :c:type:`v4l2_mpeg2_picture` 2317*4882a593Smuzhiyun - ``picture`` 2318*4882a593Smuzhiyun - Structure with MPEG-2 picture metadata, merging relevant fields from 2319*4882a593Smuzhiyun the picture header and picture coding extension parts of the bitstream. 2320*4882a593Smuzhiyun * - __u64 2321*4882a593Smuzhiyun - ``backward_ref_ts`` 2322*4882a593Smuzhiyun - Timestamp of the V4L2 capture buffer to use as backward reference, used 2323*4882a593Smuzhiyun with B-coded and P-coded frames. The timestamp refers to the 2324*4882a593Smuzhiyun ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 2325*4882a593Smuzhiyun :c:func:`v4l2_timeval_to_ns()` function to convert the struct 2326*4882a593Smuzhiyun :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 2327*4882a593Smuzhiyun * - __u64 2328*4882a593Smuzhiyun - ``forward_ref_ts`` 2329*4882a593Smuzhiyun - Timestamp for the V4L2 capture buffer to use as forward reference, used 2330*4882a593Smuzhiyun with B-coded frames. The timestamp refers to the ``timestamp`` field in 2331*4882a593Smuzhiyun struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 2332*4882a593Smuzhiyun function to convert the struct :c:type:`timeval` in struct 2333*4882a593Smuzhiyun :c:type:`v4l2_buffer` to a __u64. 2334*4882a593Smuzhiyun * - __u32 2335*4882a593Smuzhiyun - ``quantiser_scale_code`` 2336*4882a593Smuzhiyun - Code used to determine the quantization scale to use for the IDCT. 2337*4882a593Smuzhiyun 2338*4882a593Smuzhiyun.. c:type:: v4l2_mpeg2_sequence 2339*4882a593Smuzhiyun 2340*4882a593Smuzhiyun.. cssclass:: longtable 2341*4882a593Smuzhiyun 2342*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}| 2343*4882a593Smuzhiyun 2344*4882a593Smuzhiyun.. flat-table:: struct v4l2_mpeg2_sequence 2345*4882a593Smuzhiyun :header-rows: 0 2346*4882a593Smuzhiyun :stub-columns: 0 2347*4882a593Smuzhiyun :widths: 1 1 2 2348*4882a593Smuzhiyun 2349*4882a593Smuzhiyun * - __u16 2350*4882a593Smuzhiyun - ``horizontal_size`` 2351*4882a593Smuzhiyun - The width of the displayable part of the frame's luminance component. 2352*4882a593Smuzhiyun * - __u16 2353*4882a593Smuzhiyun - ``vertical_size`` 2354*4882a593Smuzhiyun - The height of the displayable part of the frame's luminance component. 2355*4882a593Smuzhiyun * - __u32 2356*4882a593Smuzhiyun - ``vbv_buffer_size`` 2357*4882a593Smuzhiyun - Used to calculate the required size of the video buffering verifier, 2358*4882a593Smuzhiyun defined (in bits) as: 16 * 1024 * vbv_buffer_size. 2359*4882a593Smuzhiyun * - __u16 2360*4882a593Smuzhiyun - ``profile_and_level_indication`` 2361*4882a593Smuzhiyun - The current profile and level indication as extracted from the 2362*4882a593Smuzhiyun bitstream. 2363*4882a593Smuzhiyun * - __u8 2364*4882a593Smuzhiyun - ``progressive_sequence`` 2365*4882a593Smuzhiyun - Indication that all the frames for the sequence are progressive instead 2366*4882a593Smuzhiyun of interlaced. 2367*4882a593Smuzhiyun * - __u8 2368*4882a593Smuzhiyun - ``chroma_format`` 2369*4882a593Smuzhiyun - The chrominance sub-sampling format (1: 4:2:0, 2: 4:2:2, 3: 4:4:4). 2370*4882a593Smuzhiyun 2371*4882a593Smuzhiyun.. c:type:: v4l2_mpeg2_picture 2372*4882a593Smuzhiyun 2373*4882a593Smuzhiyun.. cssclass:: longtable 2374*4882a593Smuzhiyun 2375*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}| 2376*4882a593Smuzhiyun 2377*4882a593Smuzhiyun.. flat-table:: struct v4l2_mpeg2_picture 2378*4882a593Smuzhiyun :header-rows: 0 2379*4882a593Smuzhiyun :stub-columns: 0 2380*4882a593Smuzhiyun :widths: 1 1 2 2381*4882a593Smuzhiyun 2382*4882a593Smuzhiyun * - __u8 2383*4882a593Smuzhiyun - ``picture_coding_type`` 2384*4882a593Smuzhiyun - Picture coding type for the frame covered by the current slice 2385*4882a593Smuzhiyun (V4L2_MPEG2_PICTURE_CODING_TYPE_I, V4L2_MPEG2_PICTURE_CODING_TYPE_P or 2386*4882a593Smuzhiyun V4L2_MPEG2_PICTURE_CODING_TYPE_B). 2387*4882a593Smuzhiyun * - __u8 2388*4882a593Smuzhiyun - ``f_code[2][2]`` 2389*4882a593Smuzhiyun - Motion vector codes. 2390*4882a593Smuzhiyun * - __u8 2391*4882a593Smuzhiyun - ``intra_dc_precision`` 2392*4882a593Smuzhiyun - Precision of Discrete Cosine transform (0: 8 bits precision, 2393*4882a593Smuzhiyun 1: 9 bits precision, 2: 10 bits precision, 3: 11 bits precision). 2394*4882a593Smuzhiyun * - __u8 2395*4882a593Smuzhiyun - ``picture_structure`` 2396*4882a593Smuzhiyun - Picture structure (1: interlaced top field, 2: interlaced bottom field, 2397*4882a593Smuzhiyun 3: progressive frame). 2398*4882a593Smuzhiyun * - __u8 2399*4882a593Smuzhiyun - ``top_field_first`` 2400*4882a593Smuzhiyun - If set to 1 and interlaced stream, top field is output first. 2401*4882a593Smuzhiyun * - __u8 2402*4882a593Smuzhiyun - ``frame_pred_frame_dct`` 2403*4882a593Smuzhiyun - If set to 1, only frame-DCT and frame prediction are used. 2404*4882a593Smuzhiyun * - __u8 2405*4882a593Smuzhiyun - ``concealment_motion_vectors`` 2406*4882a593Smuzhiyun - If set to 1, motion vectors are coded for intra macroblocks. 2407*4882a593Smuzhiyun * - __u8 2408*4882a593Smuzhiyun - ``q_scale_type`` 2409*4882a593Smuzhiyun - This flag affects the inverse quantization process. 2410*4882a593Smuzhiyun * - __u8 2411*4882a593Smuzhiyun - ``intra_vlc_format`` 2412*4882a593Smuzhiyun - This flag affects the decoding of transform coefficient data. 2413*4882a593Smuzhiyun * - __u8 2414*4882a593Smuzhiyun - ``alternate_scan`` 2415*4882a593Smuzhiyun - This flag affects the decoding of transform coefficient data. 2416*4882a593Smuzhiyun * - __u8 2417*4882a593Smuzhiyun - ``repeat_first_field`` 2418*4882a593Smuzhiyun - This flag affects the decoding process of progressive frames. 2419*4882a593Smuzhiyun * - __u16 2420*4882a593Smuzhiyun - ``progressive_frame`` 2421*4882a593Smuzhiyun - Indicates whether the current frame is progressive. 2422*4882a593Smuzhiyun 2423*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_MPEG2_QUANTIZATION (struct)`` 2424*4882a593Smuzhiyun Specifies quantization matrices (as extracted from the bitstream) for the 2425*4882a593Smuzhiyun associated MPEG-2 slice data. 2426*4882a593Smuzhiyun 2427*4882a593Smuzhiyun .. note:: 2428*4882a593Smuzhiyun 2429*4882a593Smuzhiyun This compound control is not yet part of the public kernel API and 2430*4882a593Smuzhiyun it is expected to change. 2431*4882a593Smuzhiyun 2432*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_mpeg2_quantization 2433*4882a593Smuzhiyun 2434*4882a593Smuzhiyun.. cssclass:: longtable 2435*4882a593Smuzhiyun 2436*4882a593Smuzhiyun.. tabularcolumns:: |p{1.2cm}|p{8.0cm}|p{7.4cm}| 2437*4882a593Smuzhiyun 2438*4882a593Smuzhiyun.. raw:: latex 2439*4882a593Smuzhiyun 2440*4882a593Smuzhiyun \small 2441*4882a593Smuzhiyun 2442*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_mpeg2_quantization 2443*4882a593Smuzhiyun :header-rows: 0 2444*4882a593Smuzhiyun :stub-columns: 0 2445*4882a593Smuzhiyun :widths: 1 1 2 2446*4882a593Smuzhiyun 2447*4882a593Smuzhiyun * - __u8 2448*4882a593Smuzhiyun - ``load_intra_quantiser_matrix`` 2449*4882a593Smuzhiyun - One bit to indicate whether to load the ``intra_quantiser_matrix`` data. 2450*4882a593Smuzhiyun * - __u8 2451*4882a593Smuzhiyun - ``load_non_intra_quantiser_matrix`` 2452*4882a593Smuzhiyun - One bit to indicate whether to load the ``non_intra_quantiser_matrix`` 2453*4882a593Smuzhiyun data. 2454*4882a593Smuzhiyun * - __u8 2455*4882a593Smuzhiyun - ``load_chroma_intra_quantiser_matrix`` 2456*4882a593Smuzhiyun - One bit to indicate whether to load the 2457*4882a593Smuzhiyun ``chroma_intra_quantiser_matrix`` data, only relevant for non-4:2:0 YUV 2458*4882a593Smuzhiyun formats. 2459*4882a593Smuzhiyun * - __u8 2460*4882a593Smuzhiyun - ``load_chroma_non_intra_quantiser_matrix`` 2461*4882a593Smuzhiyun - One bit to indicate whether to load the 2462*4882a593Smuzhiyun ``chroma_non_intra_quantiser_matrix`` data, only relevant for non-4:2:0 2463*4882a593Smuzhiyun YUV formats. 2464*4882a593Smuzhiyun * - __u8 2465*4882a593Smuzhiyun - ``intra_quantiser_matrix[64]`` 2466*4882a593Smuzhiyun - The quantization matrix coefficients for intra-coded frames, in zigzag 2467*4882a593Smuzhiyun scanning order. It is relevant for both luma and chroma components, 2468*4882a593Smuzhiyun although it can be superseded by the chroma-specific matrix for 2469*4882a593Smuzhiyun non-4:2:0 YUV formats. 2470*4882a593Smuzhiyun * - __u8 2471*4882a593Smuzhiyun - ``non_intra_quantiser_matrix[64]`` 2472*4882a593Smuzhiyun - The quantization matrix coefficients for non-intra-coded frames, in 2473*4882a593Smuzhiyun zigzag scanning order. It is relevant for both luma and chroma 2474*4882a593Smuzhiyun components, although it can be superseded by the chroma-specific matrix 2475*4882a593Smuzhiyun for non-4:2:0 YUV formats. 2476*4882a593Smuzhiyun * - __u8 2477*4882a593Smuzhiyun - ``chroma_intra_quantiser_matrix[64]`` 2478*4882a593Smuzhiyun - The quantization matrix coefficients for the chominance component of 2479*4882a593Smuzhiyun intra-coded frames, in zigzag scanning order. Only relevant for 2480*4882a593Smuzhiyun non-4:2:0 YUV formats. 2481*4882a593Smuzhiyun * - __u8 2482*4882a593Smuzhiyun - ``chroma_non_intra_quantiser_matrix[64]`` 2483*4882a593Smuzhiyun - The quantization matrix coefficients for the chrominance component of 2484*4882a593Smuzhiyun non-intra-coded frames, in zigzag scanning order. Only relevant for 2485*4882a593Smuzhiyun non-4:2:0 YUV formats. 2486*4882a593Smuzhiyun 2487*4882a593Smuzhiyun``V4L2_CID_FWHT_I_FRAME_QP (integer)`` 2488*4882a593Smuzhiyun Quantization parameter for an I frame for FWHT. Valid range: from 1 2489*4882a593Smuzhiyun to 31. 2490*4882a593Smuzhiyun 2491*4882a593Smuzhiyun``V4L2_CID_FWHT_P_FRAME_QP (integer)`` 2492*4882a593Smuzhiyun Quantization parameter for a P frame for FWHT. Valid range: from 1 2493*4882a593Smuzhiyun to 31. 2494*4882a593Smuzhiyun 2495*4882a593Smuzhiyun.. _v4l2-mpeg-vp8: 2496*4882a593Smuzhiyun 2497*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VP8_FRAME_HEADER (struct)`` 2498*4882a593Smuzhiyun Specifies the frame parameters for the associated VP8 parsed frame data. 2499*4882a593Smuzhiyun This includes the necessary parameters for 2500*4882a593Smuzhiyun configuring a stateless hardware decoding pipeline for VP8. 2501*4882a593Smuzhiyun The bitstream parameters are defined according to :ref:`vp8`. 2502*4882a593Smuzhiyun 2503*4882a593Smuzhiyun .. note:: 2504*4882a593Smuzhiyun 2505*4882a593Smuzhiyun This compound control is not yet part of the public kernel API and 2506*4882a593Smuzhiyun it is expected to change. 2507*4882a593Smuzhiyun 2508*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_vp8_frame_header 2509*4882a593Smuzhiyun 2510*4882a593Smuzhiyun.. cssclass:: longtable 2511*4882a593Smuzhiyun 2512*4882a593Smuzhiyun.. tabularcolumns:: |p{5.8cm}|p{4.8cm}|p{6.6cm}| 2513*4882a593Smuzhiyun 2514*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_vp8_frame_header 2515*4882a593Smuzhiyun :header-rows: 0 2516*4882a593Smuzhiyun :stub-columns: 0 2517*4882a593Smuzhiyun :widths: 1 1 2 2518*4882a593Smuzhiyun 2519*4882a593Smuzhiyun * - struct :c:type:`v4l2_vp8_segment_header` 2520*4882a593Smuzhiyun - ``segment_header`` 2521*4882a593Smuzhiyun - Structure with segment-based adjustments metadata. 2522*4882a593Smuzhiyun * - struct :c:type:`v4l2_vp8_loopfilter_header` 2523*4882a593Smuzhiyun - ``loopfilter_header`` 2524*4882a593Smuzhiyun - Structure with loop filter level adjustments metadata. 2525*4882a593Smuzhiyun * - struct :c:type:`v4l2_vp8_quantization_header` 2526*4882a593Smuzhiyun - ``quant_header`` 2527*4882a593Smuzhiyun - Structure with VP8 dequantization indices metadata. 2528*4882a593Smuzhiyun * - struct :c:type:`v4l2_vp8_entropy_header` 2529*4882a593Smuzhiyun - ``entropy_header`` 2530*4882a593Smuzhiyun - Structure with VP8 entropy coder probabilities metadata. 2531*4882a593Smuzhiyun * - struct :c:type:`v4l2_vp8_entropy_coder_state` 2532*4882a593Smuzhiyun - ``coder_state`` 2533*4882a593Smuzhiyun - Structure with VP8 entropy coder state. 2534*4882a593Smuzhiyun * - __u16 2535*4882a593Smuzhiyun - ``width`` 2536*4882a593Smuzhiyun - The width of the frame. Must be set for all frames. 2537*4882a593Smuzhiyun * - __u16 2538*4882a593Smuzhiyun - ``height`` 2539*4882a593Smuzhiyun - The height of the frame. Must be set for all frames. 2540*4882a593Smuzhiyun * - __u8 2541*4882a593Smuzhiyun - ``horizontal_scale`` 2542*4882a593Smuzhiyun - Horizontal scaling factor. 2543*4882a593Smuzhiyun * - __u8 2544*4882a593Smuzhiyun - ``vertical_scaling factor`` 2545*4882a593Smuzhiyun - Vertical scale. 2546*4882a593Smuzhiyun * - __u8 2547*4882a593Smuzhiyun - ``version`` 2548*4882a593Smuzhiyun - Bitstream version. 2549*4882a593Smuzhiyun * - __u8 2550*4882a593Smuzhiyun - ``prob_skip_false`` 2551*4882a593Smuzhiyun - Indicates the probability that the macroblock is not skipped. 2552*4882a593Smuzhiyun * - __u8 2553*4882a593Smuzhiyun - ``prob_intra`` 2554*4882a593Smuzhiyun - Indicates the probability that a macroblock is intra-predicted. 2555*4882a593Smuzhiyun * - __u8 2556*4882a593Smuzhiyun - ``prob_last`` 2557*4882a593Smuzhiyun - Indicates the probability that the last reference frame is used 2558*4882a593Smuzhiyun for inter-prediction 2559*4882a593Smuzhiyun * - __u8 2560*4882a593Smuzhiyun - ``prob_gf`` 2561*4882a593Smuzhiyun - Indicates the probability that the golden reference frame is used 2562*4882a593Smuzhiyun for inter-prediction 2563*4882a593Smuzhiyun * - __u8 2564*4882a593Smuzhiyun - ``num_dct_parts`` 2565*4882a593Smuzhiyun - Number of DCT coefficients partitions. Must be one of: 1, 2, 4, or 8. 2566*4882a593Smuzhiyun * - __u32 2567*4882a593Smuzhiyun - ``first_part_size`` 2568*4882a593Smuzhiyun - Size of the first partition, i.e. the control partition. 2569*4882a593Smuzhiyun * - __u32 2570*4882a593Smuzhiyun - ``first_part_header_bits`` 2571*4882a593Smuzhiyun - Size in bits of the first partition header portion. 2572*4882a593Smuzhiyun * - __u32 2573*4882a593Smuzhiyun - ``dct_part_sizes[8]`` 2574*4882a593Smuzhiyun - DCT coefficients sizes. 2575*4882a593Smuzhiyun * - __u64 2576*4882a593Smuzhiyun - ``last_frame_ts`` 2577*4882a593Smuzhiyun - Timestamp for the V4L2 capture buffer to use as last reference frame, used 2578*4882a593Smuzhiyun with inter-coded frames. The timestamp refers to the ``timestamp`` field in 2579*4882a593Smuzhiyun struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 2580*4882a593Smuzhiyun function to convert the struct :c:type:`timeval` in struct 2581*4882a593Smuzhiyun :c:type:`v4l2_buffer` to a __u64. 2582*4882a593Smuzhiyun * - __u64 2583*4882a593Smuzhiyun - ``golden_frame_ts`` 2584*4882a593Smuzhiyun - Timestamp for the V4L2 capture buffer to use as last reference frame, used 2585*4882a593Smuzhiyun with inter-coded frames. The timestamp refers to the ``timestamp`` field in 2586*4882a593Smuzhiyun struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 2587*4882a593Smuzhiyun function to convert the struct :c:type:`timeval` in struct 2588*4882a593Smuzhiyun :c:type:`v4l2_buffer` to a __u64. 2589*4882a593Smuzhiyun * - __u64 2590*4882a593Smuzhiyun - ``alt_frame_ts`` 2591*4882a593Smuzhiyun - Timestamp for the V4L2 capture buffer to use as alternate reference frame, used 2592*4882a593Smuzhiyun with inter-coded frames. The timestamp refers to the ``timestamp`` field in 2593*4882a593Smuzhiyun struct :c:type:`v4l2_buffer`. Use the :c:func:`v4l2_timeval_to_ns()` 2594*4882a593Smuzhiyun function to convert the struct :c:type:`timeval` in struct 2595*4882a593Smuzhiyun :c:type:`v4l2_buffer` to a __u64. 2596*4882a593Smuzhiyun * - __u64 2597*4882a593Smuzhiyun - ``flags`` 2598*4882a593Smuzhiyun - See :ref:`Frame Header Flags <vp8_frame_header_flags>` 2599*4882a593Smuzhiyun 2600*4882a593Smuzhiyun.. _vp8_frame_header_flags: 2601*4882a593Smuzhiyun 2602*4882a593Smuzhiyun``Frame Header Flags`` 2603*4882a593Smuzhiyun 2604*4882a593Smuzhiyun.. cssclass:: longtable 2605*4882a593Smuzhiyun 2606*4882a593Smuzhiyun.. flat-table:: 2607*4882a593Smuzhiyun :header-rows: 0 2608*4882a593Smuzhiyun :stub-columns: 0 2609*4882a593Smuzhiyun :widths: 1 1 2 2610*4882a593Smuzhiyun 2611*4882a593Smuzhiyun * - ``V4L2_VP8_FRAME_HEADER_FLAG_KEY_FRAME`` 2612*4882a593Smuzhiyun - 0x01 2613*4882a593Smuzhiyun - Indicates if the frame is a key frame. 2614*4882a593Smuzhiyun * - ``V4L2_VP8_FRAME_HEADER_FLAG_EXPERIMENTAL`` 2615*4882a593Smuzhiyun - 0x02 2616*4882a593Smuzhiyun - Experimental bitstream. 2617*4882a593Smuzhiyun * - ``V4L2_VP8_FRAME_HEADER_FLAG_SHOW_FRAME`` 2618*4882a593Smuzhiyun - 0x04 2619*4882a593Smuzhiyun - Show frame flag, indicates if the frame is for display. 2620*4882a593Smuzhiyun * - ``V4L2_VP8_FRAME_HEADER_FLAG_MB_NO_SKIP_COEFF`` 2621*4882a593Smuzhiyun - 0x08 2622*4882a593Smuzhiyun - Enable/disable skipping of macroblocks with no non-zero coefficients. 2623*4882a593Smuzhiyun * - ``V4L2_VP8_FRAME_HEADER_FLAG_SIGN_BIAS_GOLDEN`` 2624*4882a593Smuzhiyun - 0x10 2625*4882a593Smuzhiyun - Sign of motion vectors when the golden frame is referenced. 2626*4882a593Smuzhiyun * - ``V4L2_VP8_FRAME_HEADER_FLAG_SIGN_BIAS_ALT`` 2627*4882a593Smuzhiyun - 0x20 2628*4882a593Smuzhiyun - Sign of motion vectors when the alt frame is referenced. 2629*4882a593Smuzhiyun 2630*4882a593Smuzhiyun.. c:type:: v4l2_vp8_entropy_coder_state 2631*4882a593Smuzhiyun 2632*4882a593Smuzhiyun.. cssclass:: longtable 2633*4882a593Smuzhiyun 2634*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}| 2635*4882a593Smuzhiyun 2636*4882a593Smuzhiyun.. flat-table:: struct v4l2_vp8_entropy_coder_state 2637*4882a593Smuzhiyun :header-rows: 0 2638*4882a593Smuzhiyun :stub-columns: 0 2639*4882a593Smuzhiyun :widths: 1 1 2 2640*4882a593Smuzhiyun 2641*4882a593Smuzhiyun * - __u8 2642*4882a593Smuzhiyun - ``range`` 2643*4882a593Smuzhiyun - 2644*4882a593Smuzhiyun * - __u8 2645*4882a593Smuzhiyun - ``value`` 2646*4882a593Smuzhiyun - 2647*4882a593Smuzhiyun * - __u8 2648*4882a593Smuzhiyun - ``bit_count`` 2649*4882a593Smuzhiyun - 2650*4882a593Smuzhiyun * - __u8 2651*4882a593Smuzhiyun - ``padding`` 2652*4882a593Smuzhiyun - Applications and drivers must set this to zero. 2653*4882a593Smuzhiyun 2654*4882a593Smuzhiyun.. c:type:: v4l2_vp8_segment_header 2655*4882a593Smuzhiyun 2656*4882a593Smuzhiyun.. cssclass:: longtable 2657*4882a593Smuzhiyun 2658*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}| 2659*4882a593Smuzhiyun 2660*4882a593Smuzhiyun.. flat-table:: struct v4l2_vp8_segment_header 2661*4882a593Smuzhiyun :header-rows: 0 2662*4882a593Smuzhiyun :stub-columns: 0 2663*4882a593Smuzhiyun :widths: 1 1 2 2664*4882a593Smuzhiyun 2665*4882a593Smuzhiyun * - __s8 2666*4882a593Smuzhiyun - ``quant_update[4]`` 2667*4882a593Smuzhiyun - Signed quantizer value update. 2668*4882a593Smuzhiyun * - __s8 2669*4882a593Smuzhiyun - ``lf_update[4]`` 2670*4882a593Smuzhiyun - Signed loop filter level value update. 2671*4882a593Smuzhiyun * - __u8 2672*4882a593Smuzhiyun - ``segment_probs[3]`` 2673*4882a593Smuzhiyun - Segment probabilities. 2674*4882a593Smuzhiyun * - __u8 2675*4882a593Smuzhiyun - ``padding`` 2676*4882a593Smuzhiyun - Applications and drivers must set this to zero. 2677*4882a593Smuzhiyun * - __u32 2678*4882a593Smuzhiyun - ``flags`` 2679*4882a593Smuzhiyun - See :ref:`Segment Header Flags <vp8_segment_header_flags>` 2680*4882a593Smuzhiyun 2681*4882a593Smuzhiyun.. _vp8_segment_header_flags: 2682*4882a593Smuzhiyun 2683*4882a593Smuzhiyun``Segment Header Flags`` 2684*4882a593Smuzhiyun 2685*4882a593Smuzhiyun.. cssclass:: longtable 2686*4882a593Smuzhiyun 2687*4882a593Smuzhiyun.. flat-table:: 2688*4882a593Smuzhiyun :header-rows: 0 2689*4882a593Smuzhiyun :stub-columns: 0 2690*4882a593Smuzhiyun :widths: 1 1 2 2691*4882a593Smuzhiyun 2692*4882a593Smuzhiyun * - ``V4L2_VP8_SEGMENT_HEADER_FLAG_ENABLED`` 2693*4882a593Smuzhiyun - 0x01 2694*4882a593Smuzhiyun - Enable/disable segment-based adjustments. 2695*4882a593Smuzhiyun * - ``V4L2_VP8_SEGMENT_HEADER_FLAG_UPDATE_MAP`` 2696*4882a593Smuzhiyun - 0x02 2697*4882a593Smuzhiyun - Indicates if the macroblock segmentation map is updated in this frame. 2698*4882a593Smuzhiyun * - ``V4L2_VP8_SEGMENT_HEADER_FLAG_UPDATE_FEATURE_DATA`` 2699*4882a593Smuzhiyun - 0x04 2700*4882a593Smuzhiyun - Indicates if the segment feature data is updated in this frame. 2701*4882a593Smuzhiyun * - ``V4L2_VP8_SEGMENT_HEADER_FLAG_DELTA_VALUE_MODE`` 2702*4882a593Smuzhiyun - 0x08 2703*4882a593Smuzhiyun - If is set, the segment feature data mode is delta-value. 2704*4882a593Smuzhiyun If cleared, it's absolute-value. 2705*4882a593Smuzhiyun 2706*4882a593Smuzhiyun.. c:type:: v4l2_vp8_loopfilter_header 2707*4882a593Smuzhiyun 2708*4882a593Smuzhiyun.. cssclass:: longtable 2709*4882a593Smuzhiyun 2710*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}| 2711*4882a593Smuzhiyun 2712*4882a593Smuzhiyun.. flat-table:: struct v4l2_vp8_loopfilter_header 2713*4882a593Smuzhiyun :header-rows: 0 2714*4882a593Smuzhiyun :stub-columns: 0 2715*4882a593Smuzhiyun :widths: 1 1 2 2716*4882a593Smuzhiyun 2717*4882a593Smuzhiyun * - __s8 2718*4882a593Smuzhiyun - ``ref_frm_delta[4]`` 2719*4882a593Smuzhiyun - Reference adjustment (signed) delta value. 2720*4882a593Smuzhiyun * - __s8 2721*4882a593Smuzhiyun - ``mb_mode_delta[4]`` 2722*4882a593Smuzhiyun - Macroblock prediction mode adjustment (signed) delta value. 2723*4882a593Smuzhiyun * - __u8 2724*4882a593Smuzhiyun - ``sharpness_level`` 2725*4882a593Smuzhiyun - Sharpness level 2726*4882a593Smuzhiyun * - __u8 2727*4882a593Smuzhiyun - ``level`` 2728*4882a593Smuzhiyun - Filter level 2729*4882a593Smuzhiyun * - __u16 2730*4882a593Smuzhiyun - ``padding`` 2731*4882a593Smuzhiyun - Applications and drivers must set this to zero. 2732*4882a593Smuzhiyun * - __u32 2733*4882a593Smuzhiyun - ``flags`` 2734*4882a593Smuzhiyun - See :ref:`Loopfilter Header Flags <vp8_loopfilter_header_flags>` 2735*4882a593Smuzhiyun 2736*4882a593Smuzhiyun.. _vp8_loopfilter_header_flags: 2737*4882a593Smuzhiyun 2738*4882a593Smuzhiyun``Loopfilter Header Flags`` 2739*4882a593Smuzhiyun 2740*4882a593Smuzhiyun.. cssclass:: longtable 2741*4882a593Smuzhiyun 2742*4882a593Smuzhiyun.. flat-table:: 2743*4882a593Smuzhiyun :header-rows: 0 2744*4882a593Smuzhiyun :stub-columns: 0 2745*4882a593Smuzhiyun :widths: 1 1 2 2746*4882a593Smuzhiyun 2747*4882a593Smuzhiyun * - ``V4L2_VP8_LF_HEADER_ADJ_ENABLE`` 2748*4882a593Smuzhiyun - 0x01 2749*4882a593Smuzhiyun - Enable/disable macroblock-level loop filter adjustment. 2750*4882a593Smuzhiyun * - ``V4L2_VP8_LF_HEADER_DELTA_UPDATE`` 2751*4882a593Smuzhiyun - 0x02 2752*4882a593Smuzhiyun - Indicates if the delta values used in an adjustment are updated. 2753*4882a593Smuzhiyun * - ``V4L2_VP8_LF_FILTER_TYPE_SIMPLE`` 2754*4882a593Smuzhiyun - 0x04 2755*4882a593Smuzhiyun - If set, indicates the filter type is simple. 2756*4882a593Smuzhiyun If cleared, the filter type is normal. 2757*4882a593Smuzhiyun 2758*4882a593Smuzhiyun.. c:type:: v4l2_vp8_quantization_header 2759*4882a593Smuzhiyun 2760*4882a593Smuzhiyun.. cssclass:: longtable 2761*4882a593Smuzhiyun 2762*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}| 2763*4882a593Smuzhiyun 2764*4882a593Smuzhiyun.. flat-table:: struct v4l2_vp8_quantization_header 2765*4882a593Smuzhiyun :header-rows: 0 2766*4882a593Smuzhiyun :stub-columns: 0 2767*4882a593Smuzhiyun :widths: 1 1 2 2768*4882a593Smuzhiyun 2769*4882a593Smuzhiyun * - __u8 2770*4882a593Smuzhiyun - ``y_ac_qi`` 2771*4882a593Smuzhiyun - Luma AC coefficient table index. 2772*4882a593Smuzhiyun * - __s8 2773*4882a593Smuzhiyun - ``y_dc_delta`` 2774*4882a593Smuzhiyun - Luma DC delta vaue. 2775*4882a593Smuzhiyun * - __s8 2776*4882a593Smuzhiyun - ``y2_dc_delta`` 2777*4882a593Smuzhiyun - Y2 block DC delta value. 2778*4882a593Smuzhiyun * - __s8 2779*4882a593Smuzhiyun - ``y2_ac_delta`` 2780*4882a593Smuzhiyun - Y2 block AC delta value. 2781*4882a593Smuzhiyun * - __s8 2782*4882a593Smuzhiyun - ``uv_dc_delta`` 2783*4882a593Smuzhiyun - Chroma DC delta value. 2784*4882a593Smuzhiyun * - __s8 2785*4882a593Smuzhiyun - ``uv_ac_delta`` 2786*4882a593Smuzhiyun - Chroma AC delta value. 2787*4882a593Smuzhiyun * - __u16 2788*4882a593Smuzhiyun - ``padding`` 2789*4882a593Smuzhiyun - Applications and drivers must set this to zero. 2790*4882a593Smuzhiyun 2791*4882a593Smuzhiyun.. c:type:: v4l2_vp8_entropy_header 2792*4882a593Smuzhiyun 2793*4882a593Smuzhiyun.. cssclass:: longtable 2794*4882a593Smuzhiyun 2795*4882a593Smuzhiyun.. tabularcolumns:: |p{1.5cm}|p{6.3cm}|p{9.4cm}| 2796*4882a593Smuzhiyun 2797*4882a593Smuzhiyun.. flat-table:: struct v4l2_vp8_entropy_header 2798*4882a593Smuzhiyun :header-rows: 0 2799*4882a593Smuzhiyun :stub-columns: 0 2800*4882a593Smuzhiyun :widths: 1 1 2 2801*4882a593Smuzhiyun 2802*4882a593Smuzhiyun * - __u8 2803*4882a593Smuzhiyun - ``coeff_probs[4][8][3][11]`` 2804*4882a593Smuzhiyun - Coefficient update probabilities. 2805*4882a593Smuzhiyun * - __u8 2806*4882a593Smuzhiyun - ``y_mode_probs[4]`` 2807*4882a593Smuzhiyun - Luma mode update probabilities. 2808*4882a593Smuzhiyun * - __u8 2809*4882a593Smuzhiyun - ``uv_mode_probs[3]`` 2810*4882a593Smuzhiyun - Chroma mode update probabilities. 2811*4882a593Smuzhiyun * - __u8 2812*4882a593Smuzhiyun - ``mv_probs[2][19]`` 2813*4882a593Smuzhiyun - MV decoding update probabilities. 2814*4882a593Smuzhiyun * - __u8 2815*4882a593Smuzhiyun - ``padding[3]`` 2816*4882a593Smuzhiyun - Applications and drivers must set this to zero. 2817*4882a593Smuzhiyun 2818*4882a593Smuzhiyun.. raw:: latex 2819*4882a593Smuzhiyun 2820*4882a593Smuzhiyun \normalsize 2821*4882a593Smuzhiyun 2822*4882a593Smuzhiyun 2823*4882a593SmuzhiyunMFC 5.1 MPEG Controls 2824*4882a593Smuzhiyun===================== 2825*4882a593Smuzhiyun 2826*4882a593SmuzhiyunThe following MPEG class controls deal with MPEG decoding and encoding 2827*4882a593Smuzhiyunsettings that are specific to the Multi Format Codec 5.1 device present 2828*4882a593Smuzhiyunin the S5P family of SoCs by Samsung. 2829*4882a593Smuzhiyun 2830*4882a593Smuzhiyun 2831*4882a593Smuzhiyun.. _mfc51-control-id: 2832*4882a593Smuzhiyun 2833*4882a593SmuzhiyunMFC 5.1 Control IDs 2834*4882a593Smuzhiyun------------------- 2835*4882a593Smuzhiyun 2836*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (boolean)`` 2837*4882a593Smuzhiyun If the display delay is enabled then the decoder is forced to return 2838*4882a593Smuzhiyun a CAPTURE buffer (decoded frame) after processing a certain number 2839*4882a593Smuzhiyun of OUTPUT buffers. The delay can be set through 2840*4882a593Smuzhiyun ``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY``. This 2841*4882a593Smuzhiyun feature can be used for example for generating thumbnails of videos. 2842*4882a593Smuzhiyun Applicable to the H264 decoder. 2843*4882a593Smuzhiyun 2844*4882a593Smuzhiyun .. note:: 2845*4882a593Smuzhiyun 2846*4882a593Smuzhiyun This control is deprecated. Use the standard 2847*4882a593Smuzhiyun ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE`` control instead. 2848*4882a593Smuzhiyun 2849*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (integer)`` 2850*4882a593Smuzhiyun Display delay value for H264 decoder. The decoder is forced to 2851*4882a593Smuzhiyun return a decoded frame after the set 'display delay' number of 2852*4882a593Smuzhiyun frames. If this number is low it may result in frames returned out 2853*4882a593Smuzhiyun of display order, in addition the hardware may still be using the 2854*4882a593Smuzhiyun returned buffer as a reference picture for subsequent frames. 2855*4882a593Smuzhiyun 2856*4882a593Smuzhiyun .. note:: 2857*4882a593Smuzhiyun 2858*4882a593Smuzhiyun This control is deprecated. Use the standard 2859*4882a593Smuzhiyun ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY`` control instead. 2860*4882a593Smuzhiyun 2861*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (integer)`` 2862*4882a593Smuzhiyun The number of reference pictures used for encoding a P picture. 2863*4882a593Smuzhiyun Applicable to the H264 encoder. 2864*4882a593Smuzhiyun 2865*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_PADDING (boolean)`` 2866*4882a593Smuzhiyun Padding enable in the encoder - use a color instead of repeating 2867*4882a593Smuzhiyun border pixels. Applicable to encoders. 2868*4882a593Smuzhiyun 2869*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (integer)`` 2870*4882a593Smuzhiyun Padding color in the encoder. Applicable to encoders. The supplied 2871*4882a593Smuzhiyun 32-bit integer is interpreted as follows (bit 0 = least significant 2872*4882a593Smuzhiyun bit): 2873*4882a593Smuzhiyun 2874*4882a593Smuzhiyun 2875*4882a593Smuzhiyun 2876*4882a593Smuzhiyun.. flat-table:: 2877*4882a593Smuzhiyun :header-rows: 0 2878*4882a593Smuzhiyun :stub-columns: 0 2879*4882a593Smuzhiyun 2880*4882a593Smuzhiyun * - Bit 0:7 2881*4882a593Smuzhiyun - V chrominance information 2882*4882a593Smuzhiyun * - Bit 8:15 2883*4882a593Smuzhiyun - U chrominance information 2884*4882a593Smuzhiyun * - Bit 16:23 2885*4882a593Smuzhiyun - Y luminance information 2886*4882a593Smuzhiyun * - Bit 24:31 2887*4882a593Smuzhiyun - Must be zero. 2888*4882a593Smuzhiyun 2889*4882a593Smuzhiyun 2890*4882a593Smuzhiyun 2891*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (integer)`` 2892*4882a593Smuzhiyun Reaction coefficient for MFC rate control. Applicable to encoders. 2893*4882a593Smuzhiyun 2894*4882a593Smuzhiyun .. note:: 2895*4882a593Smuzhiyun 2896*4882a593Smuzhiyun #. Valid only when the frame level RC is enabled. 2897*4882a593Smuzhiyun 2898*4882a593Smuzhiyun #. For tight CBR, this field must be small (ex. 2 ~ 10). For 2899*4882a593Smuzhiyun VBR, this field must be large (ex. 100 ~ 1000). 2900*4882a593Smuzhiyun 2901*4882a593Smuzhiyun #. It is not recommended to use the greater number than 2902*4882a593Smuzhiyun FRAME_RATE * (10^9 / BIT_RATE). 2903*4882a593Smuzhiyun 2904*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (boolean)`` 2905*4882a593Smuzhiyun Adaptive rate control for dark region. Valid only when H.264 and 2906*4882a593Smuzhiyun macroblock level RC is enabled 2907*4882a593Smuzhiyun (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264 2908*4882a593Smuzhiyun encoder. 2909*4882a593Smuzhiyun 2910*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (boolean)`` 2911*4882a593Smuzhiyun Adaptive rate control for smooth region. Valid only when H.264 and 2912*4882a593Smuzhiyun macroblock level RC is enabled 2913*4882a593Smuzhiyun (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264 2914*4882a593Smuzhiyun encoder. 2915*4882a593Smuzhiyun 2916*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (boolean)`` 2917*4882a593Smuzhiyun Adaptive rate control for static region. Valid only when H.264 and 2918*4882a593Smuzhiyun macroblock level RC is enabled 2919*4882a593Smuzhiyun (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264 2920*4882a593Smuzhiyun encoder. 2921*4882a593Smuzhiyun 2922*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (boolean)`` 2923*4882a593Smuzhiyun Adaptive rate control for activity region. Valid only when H.264 and 2924*4882a593Smuzhiyun macroblock level RC is enabled 2925*4882a593Smuzhiyun (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264 2926*4882a593Smuzhiyun encoder. 2927*4882a593Smuzhiyun 2928*4882a593Smuzhiyun.. _v4l2-mpeg-mfc51-video-frame-skip-mode: 2929*4882a593Smuzhiyun 2930*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE`` 2931*4882a593Smuzhiyun (enum) 2932*4882a593Smuzhiyun 2933*4882a593Smuzhiyun .. note:: 2934*4882a593Smuzhiyun 2935*4882a593Smuzhiyun This control is deprecated. Use the standard 2936*4882a593Smuzhiyun ``V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE`` control instead. 2937*4882a593Smuzhiyun 2938*4882a593Smuzhiyunenum v4l2_mpeg_mfc51_video_frame_skip_mode - 2939*4882a593Smuzhiyun Indicates in what conditions the encoder should skip frames. If 2940*4882a593Smuzhiyun encoding a frame would cause the encoded stream to be larger then a 2941*4882a593Smuzhiyun chosen data limit then the frame will be skipped. Possible values 2942*4882a593Smuzhiyun are: 2943*4882a593Smuzhiyun 2944*4882a593Smuzhiyun 2945*4882a593Smuzhiyun.. tabularcolumns:: |p{9.2cm}|p{8.3cm}| 2946*4882a593Smuzhiyun 2947*4882a593Smuzhiyun.. raw:: latex 2948*4882a593Smuzhiyun 2949*4882a593Smuzhiyun \small 2950*4882a593Smuzhiyun 2951*4882a593Smuzhiyun.. flat-table:: 2952*4882a593Smuzhiyun :header-rows: 0 2953*4882a593Smuzhiyun :stub-columns: 0 2954*4882a593Smuzhiyun 2955*4882a593Smuzhiyun * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_DISABLED`` 2956*4882a593Smuzhiyun - Frame skip mode is disabled. 2957*4882a593Smuzhiyun * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_LEVEL_LIMIT`` 2958*4882a593Smuzhiyun - Frame skip mode enabled and buffer limit is set by the chosen 2959*4882a593Smuzhiyun level and is defined by the standard. 2960*4882a593Smuzhiyun * - ``V4L2_MPEG_MFC51_FRAME_SKIP_MODE_BUF_LIMIT`` 2961*4882a593Smuzhiyun - Frame skip mode enabled and buffer limit is set by the VBV 2962*4882a593Smuzhiyun (MPEG1/2/4) or CPB (H264) buffer size control. 2963*4882a593Smuzhiyun 2964*4882a593Smuzhiyun.. raw:: latex 2965*4882a593Smuzhiyun 2966*4882a593Smuzhiyun \normalsize 2967*4882a593Smuzhiyun 2968*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (integer)`` 2969*4882a593Smuzhiyun Enable rate-control with fixed target bit. If this setting is 2970*4882a593Smuzhiyun enabled, then the rate control logic of the encoder will calculate 2971*4882a593Smuzhiyun the average bitrate for a GOP and keep it below or equal the set 2972*4882a593Smuzhiyun bitrate target. Otherwise the rate control logic calculates the 2973*4882a593Smuzhiyun overall average bitrate for the stream and keeps it below or equal 2974*4882a593Smuzhiyun to the set bitrate. In the first case the average bitrate for the 2975*4882a593Smuzhiyun whole stream will be smaller then the set bitrate. This is caused 2976*4882a593Smuzhiyun because the average is calculated for smaller number of frames, on 2977*4882a593Smuzhiyun the other hand enabling this setting will ensure that the stream 2978*4882a593Smuzhiyun will meet tight bandwidth constraints. Applicable to encoders. 2979*4882a593Smuzhiyun 2980*4882a593Smuzhiyun.. _v4l2-mpeg-mfc51-video-force-frame-type: 2981*4882a593Smuzhiyun 2982*4882a593Smuzhiyun``V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE`` 2983*4882a593Smuzhiyun (enum) 2984*4882a593Smuzhiyun 2985*4882a593Smuzhiyunenum v4l2_mpeg_mfc51_video_force_frame_type - 2986*4882a593Smuzhiyun Force a frame type for the next queued buffer. Applicable to 2987*4882a593Smuzhiyun encoders. Possible values are: 2988*4882a593Smuzhiyun 2989*4882a593Smuzhiyun.. tabularcolumns:: |p{9.5cm}|p{8.0cm}| 2990*4882a593Smuzhiyun 2991*4882a593Smuzhiyun.. flat-table:: 2992*4882a593Smuzhiyun :header-rows: 0 2993*4882a593Smuzhiyun :stub-columns: 0 2994*4882a593Smuzhiyun 2995*4882a593Smuzhiyun * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED`` 2996*4882a593Smuzhiyun - Forcing a specific frame type disabled. 2997*4882a593Smuzhiyun * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME`` 2998*4882a593Smuzhiyun - Force an I-frame. 2999*4882a593Smuzhiyun * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED`` 3000*4882a593Smuzhiyun - Force a non-coded frame. 3001*4882a593Smuzhiyun 3002*4882a593Smuzhiyun 3003*4882a593Smuzhiyun.. _v4l2-mpeg-fwht: 3004*4882a593Smuzhiyun 3005*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_FWHT_PARAMS (struct)`` 3006*4882a593Smuzhiyun Specifies the fwht parameters (as extracted from the bitstream) for the 3007*4882a593Smuzhiyun associated FWHT data. This includes the necessary parameters for 3008*4882a593Smuzhiyun configuring a stateless hardware decoding pipeline for FWHT. 3009*4882a593Smuzhiyun 3010*4882a593Smuzhiyun .. note:: 3011*4882a593Smuzhiyun 3012*4882a593Smuzhiyun This compound control is not yet part of the public kernel API and 3013*4882a593Smuzhiyun it is expected to change. 3014*4882a593Smuzhiyun 3015*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_fwht_params 3016*4882a593Smuzhiyun 3017*4882a593Smuzhiyun.. cssclass:: longtable 3018*4882a593Smuzhiyun 3019*4882a593Smuzhiyun.. tabularcolumns:: |p{1.4cm}|p{4.3cm}|p{11.8cm}| 3020*4882a593Smuzhiyun 3021*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_fwht_params 3022*4882a593Smuzhiyun :header-rows: 0 3023*4882a593Smuzhiyun :stub-columns: 0 3024*4882a593Smuzhiyun :widths: 1 1 2 3025*4882a593Smuzhiyun 3026*4882a593Smuzhiyun * - __u64 3027*4882a593Smuzhiyun - ``backward_ref_ts`` 3028*4882a593Smuzhiyun - Timestamp of the V4L2 capture buffer to use as backward reference, used 3029*4882a593Smuzhiyun with P-coded frames. The timestamp refers to the 3030*4882a593Smuzhiyun ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 3031*4882a593Smuzhiyun :c:func:`v4l2_timeval_to_ns()` function to convert the struct 3032*4882a593Smuzhiyun :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 3033*4882a593Smuzhiyun * - __u32 3034*4882a593Smuzhiyun - ``version`` 3035*4882a593Smuzhiyun - The version of the codec 3036*4882a593Smuzhiyun * - __u32 3037*4882a593Smuzhiyun - ``width`` 3038*4882a593Smuzhiyun - The width of the frame 3039*4882a593Smuzhiyun * - __u32 3040*4882a593Smuzhiyun - ``height`` 3041*4882a593Smuzhiyun - The height of the frame 3042*4882a593Smuzhiyun * - __u32 3043*4882a593Smuzhiyun - ``flags`` 3044*4882a593Smuzhiyun - The flags of the frame, see :ref:`fwht-flags`. 3045*4882a593Smuzhiyun * - __u32 3046*4882a593Smuzhiyun - ``colorspace`` 3047*4882a593Smuzhiyun - The colorspace of the frame, from enum :c:type:`v4l2_colorspace`. 3048*4882a593Smuzhiyun * - __u32 3049*4882a593Smuzhiyun - ``xfer_func`` 3050*4882a593Smuzhiyun - The transfer function, from enum :c:type:`v4l2_xfer_func`. 3051*4882a593Smuzhiyun * - __u32 3052*4882a593Smuzhiyun - ``ycbcr_enc`` 3053*4882a593Smuzhiyun - The Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`. 3054*4882a593Smuzhiyun * - __u32 3055*4882a593Smuzhiyun - ``quantization`` 3056*4882a593Smuzhiyun - The quantization range, from enum :c:type:`v4l2_quantization`. 3057*4882a593Smuzhiyun 3058*4882a593Smuzhiyun 3059*4882a593Smuzhiyun 3060*4882a593Smuzhiyun.. _fwht-flags: 3061*4882a593Smuzhiyun 3062*4882a593SmuzhiyunFWHT Flags 3063*4882a593Smuzhiyun============ 3064*4882a593Smuzhiyun 3065*4882a593Smuzhiyun.. cssclass:: longtable 3066*4882a593Smuzhiyun 3067*4882a593Smuzhiyun.. tabularcolumns:: |p{6.8cm}|p{2.4cm}|p{8.3cm}| 3068*4882a593Smuzhiyun 3069*4882a593Smuzhiyun.. flat-table:: 3070*4882a593Smuzhiyun :header-rows: 0 3071*4882a593Smuzhiyun :stub-columns: 0 3072*4882a593Smuzhiyun :widths: 3 1 4 3073*4882a593Smuzhiyun 3074*4882a593Smuzhiyun * - ``FWHT_FL_IS_INTERLACED`` 3075*4882a593Smuzhiyun - 0x00000001 3076*4882a593Smuzhiyun - Set if this is an interlaced format 3077*4882a593Smuzhiyun * - ``FWHT_FL_IS_BOTTOM_FIRST`` 3078*4882a593Smuzhiyun - 0x00000002 3079*4882a593Smuzhiyun - Set if this is a bottom-first (NTSC) interlaced format 3080*4882a593Smuzhiyun * - ``FWHT_FL_IS_ALTERNATE`` 3081*4882a593Smuzhiyun - 0x00000004 3082*4882a593Smuzhiyun - Set if each 'frame' contains just one field 3083*4882a593Smuzhiyun * - ``FWHT_FL_IS_BOTTOM_FIELD`` 3084*4882a593Smuzhiyun - 0x00000008 3085*4882a593Smuzhiyun - If FWHT_FL_IS_ALTERNATE was set, then this is set if this 'frame' is the 3086*4882a593Smuzhiyun bottom field, else it is the top field. 3087*4882a593Smuzhiyun * - ``FWHT_FL_LUMA_IS_UNCOMPRESSED`` 3088*4882a593Smuzhiyun - 0x00000010 3089*4882a593Smuzhiyun - Set if the luma plane is uncompressed 3090*4882a593Smuzhiyun * - ``FWHT_FL_CB_IS_UNCOMPRESSED`` 3091*4882a593Smuzhiyun - 0x00000020 3092*4882a593Smuzhiyun - Set if the cb plane is uncompressed 3093*4882a593Smuzhiyun * - ``FWHT_FL_CR_IS_UNCOMPRESSED`` 3094*4882a593Smuzhiyun - 0x00000040 3095*4882a593Smuzhiyun - Set if the cr plane is uncompressed 3096*4882a593Smuzhiyun * - ``FWHT_FL_CHROMA_FULL_HEIGHT`` 3097*4882a593Smuzhiyun - 0x00000080 3098*4882a593Smuzhiyun - Set if the chroma plane has the same height as the luma plane, 3099*4882a593Smuzhiyun else the chroma plane is half the height of the luma plane 3100*4882a593Smuzhiyun * - ``FWHT_FL_CHROMA_FULL_WIDTH`` 3101*4882a593Smuzhiyun - 0x00000100 3102*4882a593Smuzhiyun - Set if the chroma plane has the same width as the luma plane, 3103*4882a593Smuzhiyun else the chroma plane is half the width of the luma plane 3104*4882a593Smuzhiyun * - ``FWHT_FL_ALPHA_IS_UNCOMPRESSED`` 3105*4882a593Smuzhiyun - 0x00000200 3106*4882a593Smuzhiyun - Set if the alpha plane is uncompressed 3107*4882a593Smuzhiyun * - ``FWHT_FL_I_FRAME`` 3108*4882a593Smuzhiyun - 0x00000400 3109*4882a593Smuzhiyun - Set if this is an I-frame 3110*4882a593Smuzhiyun * - ``FWHT_FL_COMPONENTS_NUM_MSK`` 3111*4882a593Smuzhiyun - 0x00070000 3112*4882a593Smuzhiyun - A 4-values flag - the number of components - 1 3113*4882a593Smuzhiyun * - ``FWHT_FL_PIXENC_YUV`` 3114*4882a593Smuzhiyun - 0x00080000 3115*4882a593Smuzhiyun - Set if the pixel encoding is YUV 3116*4882a593Smuzhiyun * - ``FWHT_FL_PIXENC_RGB`` 3117*4882a593Smuzhiyun - 0x00100000 3118*4882a593Smuzhiyun - Set if the pixel encoding is RGB 3119*4882a593Smuzhiyun * - ``FWHT_FL_PIXENC_HSV`` 3120*4882a593Smuzhiyun - 0x00180000 3121*4882a593Smuzhiyun - Set if the pixel encoding is HSV 3122*4882a593Smuzhiyun 3123*4882a593Smuzhiyun 3124*4882a593SmuzhiyunCX2341x MPEG Controls 3125*4882a593Smuzhiyun===================== 3126*4882a593Smuzhiyun 3127*4882a593SmuzhiyunThe following MPEG class controls deal with MPEG encoding settings that 3128*4882a593Smuzhiyunare specific to the Conexant CX23415 and CX23416 MPEG encoding chips. 3129*4882a593Smuzhiyun 3130*4882a593Smuzhiyun 3131*4882a593Smuzhiyun.. _cx2341x-control-id: 3132*4882a593Smuzhiyun 3133*4882a593SmuzhiyunCX2341x Control IDs 3134*4882a593Smuzhiyun------------------- 3135*4882a593Smuzhiyun 3136*4882a593Smuzhiyun.. _v4l2-mpeg-cx2341x-video-spatial-filter-mode: 3137*4882a593Smuzhiyun 3138*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE`` 3139*4882a593Smuzhiyun (enum) 3140*4882a593Smuzhiyun 3141*4882a593Smuzhiyunenum v4l2_mpeg_cx2341x_video_spatial_filter_mode - 3142*4882a593Smuzhiyun Sets the Spatial Filter mode (default ``MANUAL``). Possible values 3143*4882a593Smuzhiyun are: 3144*4882a593Smuzhiyun 3145*4882a593Smuzhiyun 3146*4882a593Smuzhiyun 3147*4882a593Smuzhiyun.. flat-table:: 3148*4882a593Smuzhiyun :header-rows: 0 3149*4882a593Smuzhiyun :stub-columns: 0 3150*4882a593Smuzhiyun 3151*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL`` 3152*4882a593Smuzhiyun - Choose the filter manually 3153*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO`` 3154*4882a593Smuzhiyun - Choose the filter automatically 3155*4882a593Smuzhiyun 3156*4882a593Smuzhiyun 3157*4882a593Smuzhiyun 3158*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (integer (0-15))`` 3159*4882a593Smuzhiyun The setting for the Spatial Filter. 0 = off, 15 = maximum. (Default 3160*4882a593Smuzhiyun is 0.) 3161*4882a593Smuzhiyun 3162*4882a593Smuzhiyun.. _luma-spatial-filter-type: 3163*4882a593Smuzhiyun 3164*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE`` 3165*4882a593Smuzhiyun (enum) 3166*4882a593Smuzhiyun 3167*4882a593Smuzhiyunenum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type - 3168*4882a593Smuzhiyun Select the algorithm to use for the Luma Spatial Filter (default 3169*4882a593Smuzhiyun ``1D_HOR``). Possible values: 3170*4882a593Smuzhiyun 3171*4882a593Smuzhiyun.. tabularcolumns:: |p{14.5cm}|p{3.0cm}| 3172*4882a593Smuzhiyun 3173*4882a593Smuzhiyun.. raw:: latex 3174*4882a593Smuzhiyun 3175*4882a593Smuzhiyun \small 3176*4882a593Smuzhiyun 3177*4882a593Smuzhiyun.. flat-table:: 3178*4882a593Smuzhiyun :header-rows: 0 3179*4882a593Smuzhiyun :stub-columns: 0 3180*4882a593Smuzhiyun 3181*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF`` 3182*4882a593Smuzhiyun - No filter 3183*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR`` 3184*4882a593Smuzhiyun - One-dimensional horizontal 3185*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT`` 3186*4882a593Smuzhiyun - One-dimensional vertical 3187*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE`` 3188*4882a593Smuzhiyun - Two-dimensional separable 3189*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE`` 3190*4882a593Smuzhiyun - Two-dimensional symmetrical non-separable 3191*4882a593Smuzhiyun 3192*4882a593Smuzhiyun.. raw:: latex 3193*4882a593Smuzhiyun 3194*4882a593Smuzhiyun \normalsize 3195*4882a593Smuzhiyun 3196*4882a593Smuzhiyun 3197*4882a593Smuzhiyun 3198*4882a593Smuzhiyun.. _chroma-spatial-filter-type: 3199*4882a593Smuzhiyun 3200*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE`` 3201*4882a593Smuzhiyun (enum) 3202*4882a593Smuzhiyun 3203*4882a593Smuzhiyunenum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type - 3204*4882a593Smuzhiyun Select the algorithm for the Chroma Spatial Filter (default 3205*4882a593Smuzhiyun ``1D_HOR``). Possible values are: 3206*4882a593Smuzhiyun 3207*4882a593Smuzhiyun 3208*4882a593Smuzhiyun.. tabularcolumns:: |p{14.0cm}|p{3.5cm}| 3209*4882a593Smuzhiyun 3210*4882a593Smuzhiyun.. flat-table:: 3211*4882a593Smuzhiyun :header-rows: 0 3212*4882a593Smuzhiyun :stub-columns: 0 3213*4882a593Smuzhiyun 3214*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF`` 3215*4882a593Smuzhiyun - No filter 3216*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR`` 3217*4882a593Smuzhiyun - One-dimensional horizontal 3218*4882a593Smuzhiyun 3219*4882a593Smuzhiyun 3220*4882a593Smuzhiyun 3221*4882a593Smuzhiyun.. _v4l2-mpeg-cx2341x-video-temporal-filter-mode: 3222*4882a593Smuzhiyun 3223*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE`` 3224*4882a593Smuzhiyun (enum) 3225*4882a593Smuzhiyun 3226*4882a593Smuzhiyunenum v4l2_mpeg_cx2341x_video_temporal_filter_mode - 3227*4882a593Smuzhiyun Sets the Temporal Filter mode (default ``MANUAL``). Possible values 3228*4882a593Smuzhiyun are: 3229*4882a593Smuzhiyun 3230*4882a593Smuzhiyun 3231*4882a593Smuzhiyun 3232*4882a593Smuzhiyun.. flat-table:: 3233*4882a593Smuzhiyun :header-rows: 0 3234*4882a593Smuzhiyun :stub-columns: 0 3235*4882a593Smuzhiyun 3236*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL`` 3237*4882a593Smuzhiyun - Choose the filter manually 3238*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO`` 3239*4882a593Smuzhiyun - Choose the filter automatically 3240*4882a593Smuzhiyun 3241*4882a593Smuzhiyun 3242*4882a593Smuzhiyun 3243*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (integer (0-31))`` 3244*4882a593Smuzhiyun The setting for the Temporal Filter. 0 = off, 31 = maximum. (Default 3245*4882a593Smuzhiyun is 8 for full-scale capturing and 0 for scaled capturing.) 3246*4882a593Smuzhiyun 3247*4882a593Smuzhiyun.. _v4l2-mpeg-cx2341x-video-median-filter-type: 3248*4882a593Smuzhiyun 3249*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE`` 3250*4882a593Smuzhiyun (enum) 3251*4882a593Smuzhiyun 3252*4882a593Smuzhiyunenum v4l2_mpeg_cx2341x_video_median_filter_type - 3253*4882a593Smuzhiyun Median Filter Type (default ``OFF``). Possible values are: 3254*4882a593Smuzhiyun 3255*4882a593Smuzhiyun 3256*4882a593Smuzhiyun 3257*4882a593Smuzhiyun.. flat-table:: 3258*4882a593Smuzhiyun :header-rows: 0 3259*4882a593Smuzhiyun :stub-columns: 0 3260*4882a593Smuzhiyun 3261*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF`` 3262*4882a593Smuzhiyun - No filter 3263*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR`` 3264*4882a593Smuzhiyun - Horizontal filter 3265*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT`` 3266*4882a593Smuzhiyun - Vertical filter 3267*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT`` 3268*4882a593Smuzhiyun - Horizontal and vertical filter 3269*4882a593Smuzhiyun * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG`` 3270*4882a593Smuzhiyun - Diagonal filter 3271*4882a593Smuzhiyun 3272*4882a593Smuzhiyun 3273*4882a593Smuzhiyun 3274*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (integer (0-255))`` 3275*4882a593Smuzhiyun Threshold above which the luminance median filter is enabled 3276*4882a593Smuzhiyun (default 0) 3277*4882a593Smuzhiyun 3278*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (integer (0-255))`` 3279*4882a593Smuzhiyun Threshold below which the luminance median filter is enabled 3280*4882a593Smuzhiyun (default 255) 3281*4882a593Smuzhiyun 3282*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (integer (0-255))`` 3283*4882a593Smuzhiyun Threshold above which the chroma median filter is enabled (default 3284*4882a593Smuzhiyun 0) 3285*4882a593Smuzhiyun 3286*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (integer (0-255))`` 3287*4882a593Smuzhiyun Threshold below which the chroma median filter is enabled (default 3288*4882a593Smuzhiyun 255) 3289*4882a593Smuzhiyun 3290*4882a593Smuzhiyun``V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (boolean)`` 3291*4882a593Smuzhiyun The CX2341X MPEG encoder can insert one empty MPEG-2 PES packet into 3292*4882a593Smuzhiyun the stream between every four video frames. The packet size is 2048 3293*4882a593Smuzhiyun bytes, including the packet_start_code_prefix and stream_id 3294*4882a593Smuzhiyun fields. The stream_id is 0xBF (private stream 2). The payload 3295*4882a593Smuzhiyun consists of 0x00 bytes, to be filled in by the application. 0 = do 3296*4882a593Smuzhiyun not insert, 1 = insert packets. 3297*4882a593Smuzhiyun 3298*4882a593Smuzhiyun 3299*4882a593SmuzhiyunVPX Control Reference 3300*4882a593Smuzhiyun===================== 3301*4882a593Smuzhiyun 3302*4882a593SmuzhiyunThe VPX controls include controls for encoding parameters of VPx video 3303*4882a593Smuzhiyuncodec. 3304*4882a593Smuzhiyun 3305*4882a593Smuzhiyun 3306*4882a593Smuzhiyun.. _vpx-control-id: 3307*4882a593Smuzhiyun 3308*4882a593SmuzhiyunVPX Control IDs 3309*4882a593Smuzhiyun--------------- 3310*4882a593Smuzhiyun 3311*4882a593Smuzhiyun.. _v4l2-vpx-num-partitions: 3312*4882a593Smuzhiyun 3313*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS`` 3314*4882a593Smuzhiyun (enum) 3315*4882a593Smuzhiyun 3316*4882a593Smuzhiyunenum v4l2_vp8_num_partitions - 3317*4882a593Smuzhiyun The number of token partitions to use in VP8 encoder. Possible 3318*4882a593Smuzhiyun values are: 3319*4882a593Smuzhiyun 3320*4882a593Smuzhiyun 3321*4882a593Smuzhiyun 3322*4882a593Smuzhiyun.. flat-table:: 3323*4882a593Smuzhiyun :header-rows: 0 3324*4882a593Smuzhiyun :stub-columns: 0 3325*4882a593Smuzhiyun 3326*4882a593Smuzhiyun * - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION`` 3327*4882a593Smuzhiyun - 1 coefficient partition 3328*4882a593Smuzhiyun * - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS`` 3329*4882a593Smuzhiyun - 2 coefficient partitions 3330*4882a593Smuzhiyun * - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS`` 3331*4882a593Smuzhiyun - 4 coefficient partitions 3332*4882a593Smuzhiyun * - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS`` 3333*4882a593Smuzhiyun - 8 coefficient partitions 3334*4882a593Smuzhiyun 3335*4882a593Smuzhiyun 3336*4882a593Smuzhiyun 3337*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (boolean)`` 3338*4882a593Smuzhiyun Setting this prevents intra 4x4 mode in the intra mode decision. 3339*4882a593Smuzhiyun 3340*4882a593Smuzhiyun.. _v4l2-vpx-num-ref-frames: 3341*4882a593Smuzhiyun 3342*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES`` 3343*4882a593Smuzhiyun (enum) 3344*4882a593Smuzhiyun 3345*4882a593Smuzhiyunenum v4l2_vp8_num_ref_frames - 3346*4882a593Smuzhiyun The number of reference pictures for encoding P frames. Possible 3347*4882a593Smuzhiyun values are: 3348*4882a593Smuzhiyun 3349*4882a593Smuzhiyun.. tabularcolumns:: |p{7.9cm}|p{9.6cm}| 3350*4882a593Smuzhiyun 3351*4882a593Smuzhiyun.. raw:: latex 3352*4882a593Smuzhiyun 3353*4882a593Smuzhiyun \small 3354*4882a593Smuzhiyun 3355*4882a593Smuzhiyun.. flat-table:: 3356*4882a593Smuzhiyun :header-rows: 0 3357*4882a593Smuzhiyun :stub-columns: 0 3358*4882a593Smuzhiyun 3359*4882a593Smuzhiyun * - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME`` 3360*4882a593Smuzhiyun - Last encoded frame will be searched 3361*4882a593Smuzhiyun * - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME`` 3362*4882a593Smuzhiyun - Two frames will be searched among the last encoded frame, the 3363*4882a593Smuzhiyun golden frame and the alternate reference (altref) frame. The 3364*4882a593Smuzhiyun encoder implementation will decide which two are chosen. 3365*4882a593Smuzhiyun * - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME`` 3366*4882a593Smuzhiyun - The last encoded frame, the golden frame and the altref frame will 3367*4882a593Smuzhiyun be searched. 3368*4882a593Smuzhiyun 3369*4882a593Smuzhiyun.. raw:: latex 3370*4882a593Smuzhiyun 3371*4882a593Smuzhiyun \normalsize 3372*4882a593Smuzhiyun 3373*4882a593Smuzhiyun 3374*4882a593Smuzhiyun 3375*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (integer)`` 3376*4882a593Smuzhiyun Indicates the loop filter level. The adjustment of the loop filter 3377*4882a593Smuzhiyun level is done via a delta value against a baseline loop filter 3378*4882a593Smuzhiyun value. 3379*4882a593Smuzhiyun 3380*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (integer)`` 3381*4882a593Smuzhiyun This parameter affects the loop filter. Anything above zero weakens 3382*4882a593Smuzhiyun the deblocking effect on the loop filter. 3383*4882a593Smuzhiyun 3384*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (integer)`` 3385*4882a593Smuzhiyun Sets the refresh period for the golden frame. The period is defined 3386*4882a593Smuzhiyun in number of frames. For a value of 'n', every nth frame starting 3387*4882a593Smuzhiyun from the first key frame will be taken as a golden frame. For eg. 3388*4882a593Smuzhiyun for encoding sequence of 0, 1, 2, 3, 4, 5, 6, 7 where the golden 3389*4882a593Smuzhiyun frame refresh period is set as 4, the frames 0, 4, 8 etc will be 3390*4882a593Smuzhiyun taken as the golden frames as frame 0 is always a key frame. 3391*4882a593Smuzhiyun 3392*4882a593Smuzhiyun.. _v4l2-vpx-golden-frame-sel: 3393*4882a593Smuzhiyun 3394*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL`` 3395*4882a593Smuzhiyun (enum) 3396*4882a593Smuzhiyun 3397*4882a593Smuzhiyunenum v4l2_vp8_golden_frame_sel - 3398*4882a593Smuzhiyun Selects the golden frame for encoding. Possible values are: 3399*4882a593Smuzhiyun 3400*4882a593Smuzhiyun.. raw:: latex 3401*4882a593Smuzhiyun 3402*4882a593Smuzhiyun \scriptsize 3403*4882a593Smuzhiyun 3404*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.0cm}| 3405*4882a593Smuzhiyun 3406*4882a593Smuzhiyun.. flat-table:: 3407*4882a593Smuzhiyun :header-rows: 0 3408*4882a593Smuzhiyun :stub-columns: 0 3409*4882a593Smuzhiyun 3410*4882a593Smuzhiyun * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV`` 3411*4882a593Smuzhiyun - Use the (n-2)th frame as a golden frame, current frame index being 3412*4882a593Smuzhiyun 'n'. 3413*4882a593Smuzhiyun * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD`` 3414*4882a593Smuzhiyun - Use the previous specific frame indicated by 3415*4882a593Smuzhiyun ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD`` as a 3416*4882a593Smuzhiyun golden frame. 3417*4882a593Smuzhiyun 3418*4882a593Smuzhiyun.. raw:: latex 3419*4882a593Smuzhiyun 3420*4882a593Smuzhiyun \normalsize 3421*4882a593Smuzhiyun 3422*4882a593Smuzhiyun 3423*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (integer)`` 3424*4882a593Smuzhiyun Minimum quantization parameter for VP8. 3425*4882a593Smuzhiyun 3426*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (integer)`` 3427*4882a593Smuzhiyun Maximum quantization parameter for VP8. 3428*4882a593Smuzhiyun 3429*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (integer)`` 3430*4882a593Smuzhiyun Quantization parameter for an I frame for VP8. 3431*4882a593Smuzhiyun 3432*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (integer)`` 3433*4882a593Smuzhiyun Quantization parameter for a P frame for VP8. 3434*4882a593Smuzhiyun 3435*4882a593Smuzhiyun.. _v4l2-mpeg-video-vp8-profile: 3436*4882a593Smuzhiyun 3437*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VP8_PROFILE`` 3438*4882a593Smuzhiyun (enum) 3439*4882a593Smuzhiyun 3440*4882a593Smuzhiyunenum v4l2_mpeg_video_vp8_profile - 3441*4882a593Smuzhiyun This control allows selecting the profile for VP8 encoder. 3442*4882a593Smuzhiyun This is also used to enumerate supported profiles by VP8 encoder or decoder. 3443*4882a593Smuzhiyun Possible values are: 3444*4882a593Smuzhiyun 3445*4882a593Smuzhiyun.. flat-table:: 3446*4882a593Smuzhiyun :header-rows: 0 3447*4882a593Smuzhiyun :stub-columns: 0 3448*4882a593Smuzhiyun 3449*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_0`` 3450*4882a593Smuzhiyun - Profile 0 3451*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_1`` 3452*4882a593Smuzhiyun - Profile 1 3453*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_2`` 3454*4882a593Smuzhiyun - Profile 2 3455*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_3`` 3456*4882a593Smuzhiyun - Profile 3 3457*4882a593Smuzhiyun 3458*4882a593Smuzhiyun.. _v4l2-mpeg-video-vp9-profile: 3459*4882a593Smuzhiyun 3460*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VP9_PROFILE`` 3461*4882a593Smuzhiyun (enum) 3462*4882a593Smuzhiyun 3463*4882a593Smuzhiyunenum v4l2_mpeg_video_vp9_profile - 3464*4882a593Smuzhiyun This control allows selecting the profile for VP9 encoder. 3465*4882a593Smuzhiyun This is also used to enumerate supported profiles by VP9 encoder or decoder. 3466*4882a593Smuzhiyun Possible values are: 3467*4882a593Smuzhiyun 3468*4882a593Smuzhiyun.. flat-table:: 3469*4882a593Smuzhiyun :header-rows: 0 3470*4882a593Smuzhiyun :stub-columns: 0 3471*4882a593Smuzhiyun 3472*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_0`` 3473*4882a593Smuzhiyun - Profile 0 3474*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_1`` 3475*4882a593Smuzhiyun - Profile 1 3476*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_2`` 3477*4882a593Smuzhiyun - Profile 2 3478*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_3`` 3479*4882a593Smuzhiyun - Profile 3 3480*4882a593Smuzhiyun 3481*4882a593Smuzhiyun.. _v4l2-mpeg-video-vp9-level: 3482*4882a593Smuzhiyun 3483*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_VP9_LEVEL (enum)`` 3484*4882a593Smuzhiyun 3485*4882a593Smuzhiyunenum v4l2_mpeg_video_vp9_level - 3486*4882a593Smuzhiyun This control allows selecting the level for VP9 encoder. 3487*4882a593Smuzhiyun This is also used to enumerate supported levels by VP9 encoder or decoder. 3488*4882a593Smuzhiyun More information can be found at 3489*4882a593Smuzhiyun `webmproject <https://www.webmproject.org/vp9/levels/>`__. Possible values are: 3490*4882a593Smuzhiyun 3491*4882a593Smuzhiyun.. flat-table:: 3492*4882a593Smuzhiyun :header-rows: 0 3493*4882a593Smuzhiyun :stub-columns: 0 3494*4882a593Smuzhiyun 3495*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_1_0`` 3496*4882a593Smuzhiyun - Level 1 3497*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_1_1`` 3498*4882a593Smuzhiyun - Level 1.1 3499*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_2_0`` 3500*4882a593Smuzhiyun - Level 2 3501*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_2_1`` 3502*4882a593Smuzhiyun - Level 2.1 3503*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_3_0`` 3504*4882a593Smuzhiyun - Level 3 3505*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_3_1`` 3506*4882a593Smuzhiyun - Level 3.1 3507*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_4_0`` 3508*4882a593Smuzhiyun - Level 4 3509*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_4_1`` 3510*4882a593Smuzhiyun - Level 4.1 3511*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_0`` 3512*4882a593Smuzhiyun - Level 5 3513*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_1`` 3514*4882a593Smuzhiyun - Level 5.1 3515*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_2`` 3516*4882a593Smuzhiyun - Level 5.2 3517*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_0`` 3518*4882a593Smuzhiyun - Level 6 3519*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_1`` 3520*4882a593Smuzhiyun - Level 6.1 3521*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_2`` 3522*4882a593Smuzhiyun - Level 6.2 3523*4882a593Smuzhiyun 3524*4882a593Smuzhiyun 3525*4882a593SmuzhiyunHigh Efficiency Video Coding (HEVC/H.265) Control Reference 3526*4882a593Smuzhiyun=========================================================== 3527*4882a593Smuzhiyun 3528*4882a593SmuzhiyunThe HEVC/H.265 controls include controls for encoding parameters of HEVC/H.265 3529*4882a593Smuzhiyunvideo codec. 3530*4882a593Smuzhiyun 3531*4882a593Smuzhiyun 3532*4882a593Smuzhiyun.. _hevc-control-id: 3533*4882a593Smuzhiyun 3534*4882a593SmuzhiyunHEVC/H.265 Control IDs 3535*4882a593Smuzhiyun---------------------- 3536*4882a593Smuzhiyun 3537*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (integer)`` 3538*4882a593Smuzhiyun Minimum quantization parameter for HEVC. 3539*4882a593Smuzhiyun Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 3540*4882a593Smuzhiyun 3541*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (integer)`` 3542*4882a593Smuzhiyun Maximum quantization parameter for HEVC. 3543*4882a593Smuzhiyun Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 3544*4882a593Smuzhiyun 3545*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (integer)`` 3546*4882a593Smuzhiyun Quantization parameter for an I frame for HEVC. 3547*4882a593Smuzhiyun Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 3548*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 3549*4882a593Smuzhiyun 3550*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (integer)`` 3551*4882a593Smuzhiyun Quantization parameter for a P frame for HEVC. 3552*4882a593Smuzhiyun Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 3553*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 3554*4882a593Smuzhiyun 3555*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (integer)`` 3556*4882a593Smuzhiyun Quantization parameter for a B frame for HEVC. 3557*4882a593Smuzhiyun Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 3558*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 3559*4882a593Smuzhiyun 3560*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (integer)`` 3561*4882a593Smuzhiyun Minimum quantization parameter for the HEVC I frame to limit I frame 3562*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 3563*4882a593Smuzhiyun If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter 3564*4882a593Smuzhiyun should be chosen to meet both requirements. 3565*4882a593Smuzhiyun 3566*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (integer)`` 3567*4882a593Smuzhiyun Maximum quantization parameter for the HEVC I frame to limit I frame 3568*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 3569*4882a593Smuzhiyun If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter 3570*4882a593Smuzhiyun should be chosen to meet both requirements. 3571*4882a593Smuzhiyun 3572*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (integer)`` 3573*4882a593Smuzhiyun Minimum quantization parameter for the HEVC P frame to limit P frame 3574*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 3575*4882a593Smuzhiyun If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter 3576*4882a593Smuzhiyun should be chosen to meet both requirements. 3577*4882a593Smuzhiyun 3578*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (integer)`` 3579*4882a593Smuzhiyun Maximum quantization parameter for the HEVC P frame to limit P frame 3580*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 3581*4882a593Smuzhiyun If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter 3582*4882a593Smuzhiyun should be chosen to meet both requirements. 3583*4882a593Smuzhiyun 3584*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (integer)`` 3585*4882a593Smuzhiyun Minimum quantization parameter for the HEVC B frame to limit B frame 3586*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 3587*4882a593Smuzhiyun If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter 3588*4882a593Smuzhiyun should be chosen to meet both requirements. 3589*4882a593Smuzhiyun 3590*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (integer)`` 3591*4882a593Smuzhiyun Maximum quantization parameter for the HEVC B frame to limit B frame 3592*4882a593Smuzhiyun quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 3593*4882a593Smuzhiyun If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter 3594*4882a593Smuzhiyun should be chosen to meet both requirements. 3595*4882a593Smuzhiyun 3596*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (boolean)`` 3597*4882a593Smuzhiyun HIERARCHICAL_QP allows the host to specify the quantization parameter 3598*4882a593Smuzhiyun values for each temporal layer through HIERARCHICAL_QP_LAYER. This is 3599*4882a593Smuzhiyun valid only if HIERARCHICAL_CODING_LAYER is greater than 1. Setting the 3600*4882a593Smuzhiyun control value to 1 enables setting of the QP values for the layers. 3601*4882a593Smuzhiyun 3602*4882a593Smuzhiyun.. _v4l2-hevc-hier-coding-type: 3603*4882a593Smuzhiyun 3604*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE`` 3605*4882a593Smuzhiyun (enum) 3606*4882a593Smuzhiyun 3607*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_hier_coding_type - 3608*4882a593Smuzhiyun Selects the hierarchical coding type for encoding. Possible values are: 3609*4882a593Smuzhiyun 3610*4882a593Smuzhiyun.. raw:: latex 3611*4882a593Smuzhiyun 3612*4882a593Smuzhiyun \footnotesize 3613*4882a593Smuzhiyun 3614*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.0cm}| 3615*4882a593Smuzhiyun 3616*4882a593Smuzhiyun.. flat-table:: 3617*4882a593Smuzhiyun :header-rows: 0 3618*4882a593Smuzhiyun :stub-columns: 0 3619*4882a593Smuzhiyun 3620*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B`` 3621*4882a593Smuzhiyun - Use the B frame for hierarchical coding. 3622*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P`` 3623*4882a593Smuzhiyun - Use the P frame for hierarchical coding. 3624*4882a593Smuzhiyun 3625*4882a593Smuzhiyun.. raw:: latex 3626*4882a593Smuzhiyun 3627*4882a593Smuzhiyun \normalsize 3628*4882a593Smuzhiyun 3629*4882a593Smuzhiyun 3630*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (integer)`` 3631*4882a593Smuzhiyun Selects the hierarchical coding layer. In normal encoding 3632*4882a593Smuzhiyun (non-hierarchial coding), it should be zero. Possible values are [0, 6]. 3633*4882a593Smuzhiyun 0 indicates HIERARCHICAL CODING LAYER 0, 1 indicates HIERARCHICAL CODING 3634*4882a593Smuzhiyun LAYER 1 and so on. 3635*4882a593Smuzhiyun 3636*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (integer)`` 3637*4882a593Smuzhiyun Indicates quantization parameter for hierarchical coding layer 0. 3638*4882a593Smuzhiyun Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 3639*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 3640*4882a593Smuzhiyun 3641*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (integer)`` 3642*4882a593Smuzhiyun Indicates quantization parameter for hierarchical coding layer 1. 3643*4882a593Smuzhiyun Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 3644*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 3645*4882a593Smuzhiyun 3646*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (integer)`` 3647*4882a593Smuzhiyun Indicates quantization parameter for hierarchical coding layer 2. 3648*4882a593Smuzhiyun Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 3649*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 3650*4882a593Smuzhiyun 3651*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (integer)`` 3652*4882a593Smuzhiyun Indicates quantization parameter for hierarchical coding layer 3. 3653*4882a593Smuzhiyun Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 3654*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 3655*4882a593Smuzhiyun 3656*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (integer)`` 3657*4882a593Smuzhiyun Indicates quantization parameter for hierarchical coding layer 4. 3658*4882a593Smuzhiyun Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 3659*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 3660*4882a593Smuzhiyun 3661*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (integer)`` 3662*4882a593Smuzhiyun Indicates quantization parameter for hierarchical coding layer 5. 3663*4882a593Smuzhiyun Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 3664*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 3665*4882a593Smuzhiyun 3666*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (integer)`` 3667*4882a593Smuzhiyun Indicates quantization parameter for hierarchical coding layer 6. 3668*4882a593Smuzhiyun Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 3669*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 3670*4882a593Smuzhiyun 3671*4882a593Smuzhiyun.. _v4l2-hevc-profile: 3672*4882a593Smuzhiyun 3673*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_PROFILE`` 3674*4882a593Smuzhiyun (enum) 3675*4882a593Smuzhiyun 3676*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_profile - 3677*4882a593Smuzhiyun Select the desired profile for HEVC encoder. 3678*4882a593Smuzhiyun 3679*4882a593Smuzhiyun.. raw:: latex 3680*4882a593Smuzhiyun 3681*4882a593Smuzhiyun \footnotesize 3682*4882a593Smuzhiyun 3683*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.0cm}| 3684*4882a593Smuzhiyun 3685*4882a593Smuzhiyun.. flat-table:: 3686*4882a593Smuzhiyun :header-rows: 0 3687*4882a593Smuzhiyun :stub-columns: 0 3688*4882a593Smuzhiyun 3689*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN`` 3690*4882a593Smuzhiyun - Main profile. 3691*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE`` 3692*4882a593Smuzhiyun - Main still picture profile. 3693*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10`` 3694*4882a593Smuzhiyun - Main 10 profile. 3695*4882a593Smuzhiyun 3696*4882a593Smuzhiyun.. raw:: latex 3697*4882a593Smuzhiyun 3698*4882a593Smuzhiyun \normalsize 3699*4882a593Smuzhiyun 3700*4882a593Smuzhiyun 3701*4882a593Smuzhiyun.. _v4l2-hevc-level: 3702*4882a593Smuzhiyun 3703*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_LEVEL`` 3704*4882a593Smuzhiyun (enum) 3705*4882a593Smuzhiyun 3706*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_level - 3707*4882a593Smuzhiyun Selects the desired level for HEVC encoder. 3708*4882a593Smuzhiyun 3709*4882a593Smuzhiyun.. raw:: latex 3710*4882a593Smuzhiyun 3711*4882a593Smuzhiyun \footnotesize 3712*4882a593Smuzhiyun 3713*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.0cm}| 3714*4882a593Smuzhiyun 3715*4882a593Smuzhiyun.. flat-table:: 3716*4882a593Smuzhiyun :header-rows: 0 3717*4882a593Smuzhiyun :stub-columns: 0 3718*4882a593Smuzhiyun 3719*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_1`` 3720*4882a593Smuzhiyun - Level 1.0 3721*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_2`` 3722*4882a593Smuzhiyun - Level 2.0 3723*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1`` 3724*4882a593Smuzhiyun - Level 2.1 3725*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_3`` 3726*4882a593Smuzhiyun - Level 3.0 3727*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1`` 3728*4882a593Smuzhiyun - Level 3.1 3729*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_4`` 3730*4882a593Smuzhiyun - Level 4.0 3731*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1`` 3732*4882a593Smuzhiyun - Level 4.1 3733*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_5`` 3734*4882a593Smuzhiyun - Level 5.0 3735*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1`` 3736*4882a593Smuzhiyun - Level 5.1 3737*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2`` 3738*4882a593Smuzhiyun - Level 5.2 3739*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_6`` 3740*4882a593Smuzhiyun - Level 6.0 3741*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1`` 3742*4882a593Smuzhiyun - Level 6.1 3743*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2`` 3744*4882a593Smuzhiyun - Level 6.2 3745*4882a593Smuzhiyun 3746*4882a593Smuzhiyun.. raw:: latex 3747*4882a593Smuzhiyun 3748*4882a593Smuzhiyun \normalsize 3749*4882a593Smuzhiyun 3750*4882a593Smuzhiyun 3751*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (integer)`` 3752*4882a593Smuzhiyun Indicates the number of evenly spaced subintervals, called ticks, within 3753*4882a593Smuzhiyun one second. This is a 16 bit unsigned integer and has a maximum value up to 3754*4882a593Smuzhiyun 0xffff and a minimum value of 1. 3755*4882a593Smuzhiyun 3756*4882a593Smuzhiyun.. _v4l2-hevc-tier: 3757*4882a593Smuzhiyun 3758*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_TIER`` 3759*4882a593Smuzhiyun (enum) 3760*4882a593Smuzhiyun 3761*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_tier - 3762*4882a593Smuzhiyun TIER_FLAG specifies tiers information of the HEVC encoded picture. Tier 3763*4882a593Smuzhiyun were made to deal with applications that differ in terms of maximum bit 3764*4882a593Smuzhiyun rate. Setting the flag to 0 selects HEVC tier as Main tier and setting 3765*4882a593Smuzhiyun this flag to 1 indicates High tier. High tier is for applications requiring 3766*4882a593Smuzhiyun high bit rates. 3767*4882a593Smuzhiyun 3768*4882a593Smuzhiyun.. raw:: latex 3769*4882a593Smuzhiyun 3770*4882a593Smuzhiyun \footnotesize 3771*4882a593Smuzhiyun 3772*4882a593Smuzhiyun.. tabularcolumns:: |p{9.0cm}|p{8.0cm}| 3773*4882a593Smuzhiyun 3774*4882a593Smuzhiyun.. flat-table:: 3775*4882a593Smuzhiyun :header-rows: 0 3776*4882a593Smuzhiyun :stub-columns: 0 3777*4882a593Smuzhiyun 3778*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_TIER_MAIN`` 3779*4882a593Smuzhiyun - Main tier. 3780*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_TIER_HIGH`` 3781*4882a593Smuzhiyun - High tier. 3782*4882a593Smuzhiyun 3783*4882a593Smuzhiyun.. raw:: latex 3784*4882a593Smuzhiyun 3785*4882a593Smuzhiyun \normalsize 3786*4882a593Smuzhiyun 3787*4882a593Smuzhiyun 3788*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (integer)`` 3789*4882a593Smuzhiyun Selects HEVC maximum coding unit depth. 3790*4882a593Smuzhiyun 3791*4882a593Smuzhiyun.. _v4l2-hevc-loop-filter-mode: 3792*4882a593Smuzhiyun 3793*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE`` 3794*4882a593Smuzhiyun (enum) 3795*4882a593Smuzhiyun 3796*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_loop_filter_mode - 3797*4882a593Smuzhiyun Loop filter mode for HEVC encoder. Possible values are: 3798*4882a593Smuzhiyun 3799*4882a593Smuzhiyun.. raw:: latex 3800*4882a593Smuzhiyun 3801*4882a593Smuzhiyun \footnotesize 3802*4882a593Smuzhiyun 3803*4882a593Smuzhiyun.. tabularcolumns:: |p{12.1cm}|p{5.4cm}| 3804*4882a593Smuzhiyun 3805*4882a593Smuzhiyun.. flat-table:: 3806*4882a593Smuzhiyun :header-rows: 0 3807*4882a593Smuzhiyun :stub-columns: 0 3808*4882a593Smuzhiyun 3809*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED`` 3810*4882a593Smuzhiyun - Loop filter is disabled. 3811*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED`` 3812*4882a593Smuzhiyun - Loop filter is enabled. 3813*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY`` 3814*4882a593Smuzhiyun - Loop filter is disabled at the slice boundary. 3815*4882a593Smuzhiyun 3816*4882a593Smuzhiyun.. raw:: latex 3817*4882a593Smuzhiyun 3818*4882a593Smuzhiyun \normalsize 3819*4882a593Smuzhiyun 3820*4882a593Smuzhiyun 3821*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (integer)`` 3822*4882a593Smuzhiyun Selects HEVC loop filter beta offset. The valid range is [-6, +6]. 3823*4882a593Smuzhiyun 3824*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (integer)`` 3825*4882a593Smuzhiyun Selects HEVC loop filter tc offset. The valid range is [-6, +6]. 3826*4882a593Smuzhiyun 3827*4882a593Smuzhiyun.. _v4l2-hevc-refresh-type: 3828*4882a593Smuzhiyun 3829*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE`` 3830*4882a593Smuzhiyun (enum) 3831*4882a593Smuzhiyun 3832*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_hier_refresh_type - 3833*4882a593Smuzhiyun Selects refresh type for HEVC encoder. 3834*4882a593Smuzhiyun Host has to specify the period into 3835*4882a593Smuzhiyun V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD. 3836*4882a593Smuzhiyun 3837*4882a593Smuzhiyun.. raw:: latex 3838*4882a593Smuzhiyun 3839*4882a593Smuzhiyun \footnotesize 3840*4882a593Smuzhiyun 3841*4882a593Smuzhiyun.. tabularcolumns:: |p{8.0cm}|p{9.0cm}| 3842*4882a593Smuzhiyun 3843*4882a593Smuzhiyun.. flat-table:: 3844*4882a593Smuzhiyun :header-rows: 0 3845*4882a593Smuzhiyun :stub-columns: 0 3846*4882a593Smuzhiyun 3847*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE`` 3848*4882a593Smuzhiyun - Use the B frame for hierarchical coding. 3849*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA`` 3850*4882a593Smuzhiyun - Use CRA (Clean Random Access Unit) picture encoding. 3851*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR`` 3852*4882a593Smuzhiyun - Use IDR (Instantaneous Decoding Refresh) picture encoding. 3853*4882a593Smuzhiyun 3854*4882a593Smuzhiyun.. raw:: latex 3855*4882a593Smuzhiyun 3856*4882a593Smuzhiyun \normalsize 3857*4882a593Smuzhiyun 3858*4882a593Smuzhiyun 3859*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (integer)`` 3860*4882a593Smuzhiyun Selects the refresh period for HEVC encoder. 3861*4882a593Smuzhiyun This specifies the number of I pictures between two CRA/IDR pictures. 3862*4882a593Smuzhiyun This is valid only if REFRESH_TYPE is not 0. 3863*4882a593Smuzhiyun 3864*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (boolean)`` 3865*4882a593Smuzhiyun Indicates HEVC lossless encoding. Setting it to 0 disables lossless 3866*4882a593Smuzhiyun encoding. Setting it to 1 enables lossless encoding. 3867*4882a593Smuzhiyun 3868*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (boolean)`` 3869*4882a593Smuzhiyun Indicates constant intra prediction for HEVC encoder. Specifies the 3870*4882a593Smuzhiyun constrained intra prediction in which intra largest coding unit (LCU) 3871*4882a593Smuzhiyun prediction is performed by using residual data and decoded samples of 3872*4882a593Smuzhiyun neighboring intra LCU only. Setting the value to 1 enables constant intra 3873*4882a593Smuzhiyun prediction and setting the value to 0 disables constant intra prediction. 3874*4882a593Smuzhiyun 3875*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (boolean)`` 3876*4882a593Smuzhiyun Indicates wavefront parallel processing for HEVC encoder. Setting it to 0 3877*4882a593Smuzhiyun disables the feature and setting it to 1 enables the wavefront parallel 3878*4882a593Smuzhiyun processing. 3879*4882a593Smuzhiyun 3880*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (boolean)`` 3881*4882a593Smuzhiyun Setting the value to 1 enables combination of P and B frame for HEVC 3882*4882a593Smuzhiyun encoder. 3883*4882a593Smuzhiyun 3884*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (boolean)`` 3885*4882a593Smuzhiyun Indicates temporal identifier for HEVC encoder which is enabled by 3886*4882a593Smuzhiyun setting the value to 1. 3887*4882a593Smuzhiyun 3888*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (boolean)`` 3889*4882a593Smuzhiyun Indicates bi-linear interpolation is conditionally used in the intra 3890*4882a593Smuzhiyun prediction filtering process in the CVS when set to 1. Indicates bi-linear 3891*4882a593Smuzhiyun interpolation is not used in the CVS when set to 0. 3892*4882a593Smuzhiyun 3893*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (integer)`` 3894*4882a593Smuzhiyun Indicates maximum number of merge candidate motion vectors. 3895*4882a593Smuzhiyun Values are from 0 to 4. 3896*4882a593Smuzhiyun 3897*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (boolean)`` 3898*4882a593Smuzhiyun Indicates temporal motion vector prediction for HEVC encoder. Setting it to 3899*4882a593Smuzhiyun 1 enables the prediction. Setting it to 0 disables the prediction. 3900*4882a593Smuzhiyun 3901*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (boolean)`` 3902*4882a593Smuzhiyun Specifies if HEVC generates a stream with a size of the length field 3903*4882a593Smuzhiyun instead of start code pattern. The size of the length field is configurable 3904*4882a593Smuzhiyun through the V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD control. Setting 3905*4882a593Smuzhiyun the value to 0 disables encoding without startcode pattern. Setting the 3906*4882a593Smuzhiyun value to 1 will enables encoding without startcode pattern. 3907*4882a593Smuzhiyun 3908*4882a593Smuzhiyun.. _v4l2-hevc-size-of-length-field: 3909*4882a593Smuzhiyun 3910*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD`` 3911*4882a593Smuzhiyun(enum) 3912*4882a593Smuzhiyun 3913*4882a593Smuzhiyunenum v4l2_mpeg_video_hevc_size_of_length_field - 3914*4882a593Smuzhiyun Indicates the size of length field. 3915*4882a593Smuzhiyun This is valid when encoding WITHOUT_STARTCODE_ENABLE is enabled. 3916*4882a593Smuzhiyun 3917*4882a593Smuzhiyun.. raw:: latex 3918*4882a593Smuzhiyun 3919*4882a593Smuzhiyun \footnotesize 3920*4882a593Smuzhiyun 3921*4882a593Smuzhiyun.. tabularcolumns:: |p{6.0cm}|p{11.0cm}| 3922*4882a593Smuzhiyun 3923*4882a593Smuzhiyun.. flat-table:: 3924*4882a593Smuzhiyun :header-rows: 0 3925*4882a593Smuzhiyun :stub-columns: 0 3926*4882a593Smuzhiyun 3927*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_0`` 3928*4882a593Smuzhiyun - Generate start code pattern (Normal). 3929*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_1`` 3930*4882a593Smuzhiyun - Generate size of length field instead of start code pattern and length is 1. 3931*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_2`` 3932*4882a593Smuzhiyun - Generate size of length field instead of start code pattern and length is 2. 3933*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_4`` 3934*4882a593Smuzhiyun - Generate size of length field instead of start code pattern and length is 4. 3935*4882a593Smuzhiyun 3936*4882a593Smuzhiyun.. raw:: latex 3937*4882a593Smuzhiyun 3938*4882a593Smuzhiyun \normalsize 3939*4882a593Smuzhiyun 3940*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (integer)`` 3941*4882a593Smuzhiyun Indicates bit rate for hierarchical coding layer 0 for HEVC encoder. 3942*4882a593Smuzhiyun 3943*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (integer)`` 3944*4882a593Smuzhiyun Indicates bit rate for hierarchical coding layer 1 for HEVC encoder. 3945*4882a593Smuzhiyun 3946*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (integer)`` 3947*4882a593Smuzhiyun Indicates bit rate for hierarchical coding layer 2 for HEVC encoder. 3948*4882a593Smuzhiyun 3949*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (integer)`` 3950*4882a593Smuzhiyun Indicates bit rate for hierarchical coding layer 3 for HEVC encoder. 3951*4882a593Smuzhiyun 3952*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (integer)`` 3953*4882a593Smuzhiyun Indicates bit rate for hierarchical coding layer 4 for HEVC encoder. 3954*4882a593Smuzhiyun 3955*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (integer)`` 3956*4882a593Smuzhiyun Indicates bit rate for hierarchical coding layer 5 for HEVC encoder. 3957*4882a593Smuzhiyun 3958*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (integer)`` 3959*4882a593Smuzhiyun Indicates bit rate for hierarchical coding layer 6 for HEVC encoder. 3960*4882a593Smuzhiyun 3961*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (integer)`` 3962*4882a593Smuzhiyun Selects number of P reference pictures required for HEVC encoder. 3963*4882a593Smuzhiyun P-Frame can use 1 or 2 frames for reference. 3964*4882a593Smuzhiyun 3965*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (integer)`` 3966*4882a593Smuzhiyun Indicates whether to generate SPS and PPS at every IDR. Setting it to 0 3967*4882a593Smuzhiyun disables generating SPS and PPS at every IDR. Setting it to one enables 3968*4882a593Smuzhiyun generating SPS and PPS at every IDR. 3969*4882a593Smuzhiyun 3970*4882a593Smuzhiyun.. _v4l2-mpeg-hevc: 3971*4882a593Smuzhiyun 3972*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_SPS (struct)`` 3973*4882a593Smuzhiyun Specifies the Sequence Parameter Set fields (as extracted from the 3974*4882a593Smuzhiyun bitstream) for the associated HEVC slice data. 3975*4882a593Smuzhiyun These bitstream parameters are defined according to :ref:`hevc`. 3976*4882a593Smuzhiyun They are described in section 7.4.3.2 "Sequence parameter set RBSP 3977*4882a593Smuzhiyun semantics" of the specification. 3978*4882a593Smuzhiyun 3979*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_hevc_sps 3980*4882a593Smuzhiyun 3981*4882a593Smuzhiyun.. cssclass:: longtable 3982*4882a593Smuzhiyun 3983*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_hevc_sps 3984*4882a593Smuzhiyun :header-rows: 0 3985*4882a593Smuzhiyun :stub-columns: 0 3986*4882a593Smuzhiyun :widths: 1 1 2 3987*4882a593Smuzhiyun 3988*4882a593Smuzhiyun * - __u16 3989*4882a593Smuzhiyun - ``pic_width_in_luma_samples`` 3990*4882a593Smuzhiyun - 3991*4882a593Smuzhiyun * - __u16 3992*4882a593Smuzhiyun - ``pic_height_in_luma_samples`` 3993*4882a593Smuzhiyun - 3994*4882a593Smuzhiyun * - __u8 3995*4882a593Smuzhiyun - ``bit_depth_luma_minus8`` 3996*4882a593Smuzhiyun - 3997*4882a593Smuzhiyun * - __u8 3998*4882a593Smuzhiyun - ``bit_depth_chroma_minus8`` 3999*4882a593Smuzhiyun - 4000*4882a593Smuzhiyun * - __u8 4001*4882a593Smuzhiyun - ``log2_max_pic_order_cnt_lsb_minus4`` 4002*4882a593Smuzhiyun - 4003*4882a593Smuzhiyun * - __u8 4004*4882a593Smuzhiyun - ``sps_max_dec_pic_buffering_minus1`` 4005*4882a593Smuzhiyun - 4006*4882a593Smuzhiyun * - __u8 4007*4882a593Smuzhiyun - ``sps_max_num_reorder_pics`` 4008*4882a593Smuzhiyun - 4009*4882a593Smuzhiyun * - __u8 4010*4882a593Smuzhiyun - ``sps_max_latency_increase_plus1`` 4011*4882a593Smuzhiyun - 4012*4882a593Smuzhiyun * - __u8 4013*4882a593Smuzhiyun - ``log2_min_luma_coding_block_size_minus3`` 4014*4882a593Smuzhiyun - 4015*4882a593Smuzhiyun * - __u8 4016*4882a593Smuzhiyun - ``log2_diff_max_min_luma_coding_block_size`` 4017*4882a593Smuzhiyun - 4018*4882a593Smuzhiyun * - __u8 4019*4882a593Smuzhiyun - ``log2_min_luma_transform_block_size_minus2`` 4020*4882a593Smuzhiyun - 4021*4882a593Smuzhiyun * - __u8 4022*4882a593Smuzhiyun - ``log2_diff_max_min_luma_transform_block_size`` 4023*4882a593Smuzhiyun - 4024*4882a593Smuzhiyun * - __u8 4025*4882a593Smuzhiyun - ``max_transform_hierarchy_depth_inter`` 4026*4882a593Smuzhiyun - 4027*4882a593Smuzhiyun * - __u8 4028*4882a593Smuzhiyun - ``max_transform_hierarchy_depth_intra`` 4029*4882a593Smuzhiyun - 4030*4882a593Smuzhiyun * - __u8 4031*4882a593Smuzhiyun - ``pcm_sample_bit_depth_luma_minus1`` 4032*4882a593Smuzhiyun - 4033*4882a593Smuzhiyun * - __u8 4034*4882a593Smuzhiyun - ``pcm_sample_bit_depth_chroma_minus1`` 4035*4882a593Smuzhiyun - 4036*4882a593Smuzhiyun * - __u8 4037*4882a593Smuzhiyun - ``log2_min_pcm_luma_coding_block_size_minus3`` 4038*4882a593Smuzhiyun - 4039*4882a593Smuzhiyun * - __u8 4040*4882a593Smuzhiyun - ``log2_diff_max_min_pcm_luma_coding_block_size`` 4041*4882a593Smuzhiyun - 4042*4882a593Smuzhiyun * - __u8 4043*4882a593Smuzhiyun - ``num_short_term_ref_pic_sets`` 4044*4882a593Smuzhiyun - 4045*4882a593Smuzhiyun * - __u8 4046*4882a593Smuzhiyun - ``num_long_term_ref_pics_sps`` 4047*4882a593Smuzhiyun - 4048*4882a593Smuzhiyun * - __u8 4049*4882a593Smuzhiyun - ``chroma_format_idc`` 4050*4882a593Smuzhiyun - 4051*4882a593Smuzhiyun * - __u64 4052*4882a593Smuzhiyun - ``flags`` 4053*4882a593Smuzhiyun - See :ref:`Sequence Parameter Set Flags <hevc_sps_flags>` 4054*4882a593Smuzhiyun 4055*4882a593Smuzhiyun.. _hevc_sps_flags: 4056*4882a593Smuzhiyun 4057*4882a593Smuzhiyun``Sequence Parameter Set Flags`` 4058*4882a593Smuzhiyun 4059*4882a593Smuzhiyun.. cssclass:: longtable 4060*4882a593Smuzhiyun 4061*4882a593Smuzhiyun.. flat-table:: 4062*4882a593Smuzhiyun :header-rows: 0 4063*4882a593Smuzhiyun :stub-columns: 0 4064*4882a593Smuzhiyun :widths: 1 1 2 4065*4882a593Smuzhiyun 4066*4882a593Smuzhiyun * - ``V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE`` 4067*4882a593Smuzhiyun - 0x00000001 4068*4882a593Smuzhiyun - 4069*4882a593Smuzhiyun * - ``V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED`` 4070*4882a593Smuzhiyun - 0x00000002 4071*4882a593Smuzhiyun - 4072*4882a593Smuzhiyun * - ``V4L2_HEVC_SPS_FLAG_AMP_ENABLED`` 4073*4882a593Smuzhiyun - 0x00000004 4074*4882a593Smuzhiyun - 4075*4882a593Smuzhiyun * - ``V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET`` 4076*4882a593Smuzhiyun - 0x00000008 4077*4882a593Smuzhiyun - 4078*4882a593Smuzhiyun * - ``V4L2_HEVC_SPS_FLAG_PCM_ENABLED`` 4079*4882a593Smuzhiyun - 0x00000010 4080*4882a593Smuzhiyun - 4081*4882a593Smuzhiyun * - ``V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED`` 4082*4882a593Smuzhiyun - 0x00000020 4083*4882a593Smuzhiyun - 4084*4882a593Smuzhiyun * - ``V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PICS_PRESENT`` 4085*4882a593Smuzhiyun - 0x00000040 4086*4882a593Smuzhiyun - 4087*4882a593Smuzhiyun * - ``V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED`` 4088*4882a593Smuzhiyun - 0x00000080 4089*4882a593Smuzhiyun - 4090*4882a593Smuzhiyun * - ``V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED`` 4091*4882a593Smuzhiyun - 0x00000100 4092*4882a593Smuzhiyun - 4093*4882a593Smuzhiyun 4094*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_PPS (struct)`` 4095*4882a593Smuzhiyun Specifies the Picture Parameter Set fields (as extracted from the 4096*4882a593Smuzhiyun bitstream) for the associated HEVC slice data. 4097*4882a593Smuzhiyun These bitstream parameters are defined according to :ref:`hevc`. 4098*4882a593Smuzhiyun They are described in section 7.4.3.3 "Picture parameter set RBSP 4099*4882a593Smuzhiyun semantics" of the specification. 4100*4882a593Smuzhiyun 4101*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_hevc_pps 4102*4882a593Smuzhiyun 4103*4882a593Smuzhiyun.. cssclass:: longtable 4104*4882a593Smuzhiyun 4105*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_hevc_pps 4106*4882a593Smuzhiyun :header-rows: 0 4107*4882a593Smuzhiyun :stub-columns: 0 4108*4882a593Smuzhiyun :widths: 1 1 2 4109*4882a593Smuzhiyun 4110*4882a593Smuzhiyun * - __u8 4111*4882a593Smuzhiyun - ``num_extra_slice_header_bits`` 4112*4882a593Smuzhiyun - 4113*4882a593Smuzhiyun * - __s8 4114*4882a593Smuzhiyun - ``init_qp_minus26`` 4115*4882a593Smuzhiyun - 4116*4882a593Smuzhiyun * - __u8 4117*4882a593Smuzhiyun - ``diff_cu_qp_delta_depth`` 4118*4882a593Smuzhiyun - 4119*4882a593Smuzhiyun * - __s8 4120*4882a593Smuzhiyun - ``pps_cb_qp_offset`` 4121*4882a593Smuzhiyun - 4122*4882a593Smuzhiyun * - __s8 4123*4882a593Smuzhiyun - ``pps_cr_qp_offset`` 4124*4882a593Smuzhiyun - 4125*4882a593Smuzhiyun * - __u8 4126*4882a593Smuzhiyun - ``num_tile_columns_minus1`` 4127*4882a593Smuzhiyun - 4128*4882a593Smuzhiyun * - __u8 4129*4882a593Smuzhiyun - ``num_tile_rows_minus1`` 4130*4882a593Smuzhiyun - 4131*4882a593Smuzhiyun * - __u8 4132*4882a593Smuzhiyun - ``column_width_minus1[20]`` 4133*4882a593Smuzhiyun - 4134*4882a593Smuzhiyun * - __u8 4135*4882a593Smuzhiyun - ``row_height_minus1[22]`` 4136*4882a593Smuzhiyun - 4137*4882a593Smuzhiyun * - __s8 4138*4882a593Smuzhiyun - ``pps_beta_offset_div2`` 4139*4882a593Smuzhiyun - 4140*4882a593Smuzhiyun * - __s8 4141*4882a593Smuzhiyun - ``pps_tc_offset_div2`` 4142*4882a593Smuzhiyun - 4143*4882a593Smuzhiyun * - __u8 4144*4882a593Smuzhiyun - ``log2_parallel_merge_level_minus2`` 4145*4882a593Smuzhiyun - 4146*4882a593Smuzhiyun * - __u8 4147*4882a593Smuzhiyun - ``padding[4]`` 4148*4882a593Smuzhiyun - Applications and drivers must set this to zero. 4149*4882a593Smuzhiyun * - __u64 4150*4882a593Smuzhiyun - ``flags`` 4151*4882a593Smuzhiyun - See :ref:`Picture Parameter Set Flags <hevc_pps_flags>` 4152*4882a593Smuzhiyun 4153*4882a593Smuzhiyun.. _hevc_pps_flags: 4154*4882a593Smuzhiyun 4155*4882a593Smuzhiyun``Picture Parameter Set Flags`` 4156*4882a593Smuzhiyun 4157*4882a593Smuzhiyun.. cssclass:: longtable 4158*4882a593Smuzhiyun 4159*4882a593Smuzhiyun.. flat-table:: 4160*4882a593Smuzhiyun :header-rows: 0 4161*4882a593Smuzhiyun :stub-columns: 0 4162*4882a593Smuzhiyun :widths: 1 1 2 4163*4882a593Smuzhiyun 4164*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED`` 4165*4882a593Smuzhiyun - 0x00000001 4166*4882a593Smuzhiyun - 4167*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRESENT`` 4168*4882a593Smuzhiyun - 0x00000002 4169*4882a593Smuzhiyun - 4170*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED`` 4171*4882a593Smuzhiyun - 0x00000004 4172*4882a593Smuzhiyun - 4173*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESENT`` 4174*4882a593Smuzhiyun - 0x00000008 4175*4882a593Smuzhiyun - 4176*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED`` 4177*4882a593Smuzhiyun - 0x00000010 4178*4882a593Smuzhiyun - 4179*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_TRANSFORM_SKIP_ENABLED`` 4180*4882a593Smuzhiyun - 0x00000020 4181*4882a593Smuzhiyun - 4182*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED`` 4183*4882a593Smuzhiyun - 0x00000040 4184*4882a593Smuzhiyun - 4185*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT`` 4186*4882a593Smuzhiyun - 0x00000080 4187*4882a593Smuzhiyun - 4188*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED`` 4189*4882a593Smuzhiyun - 0x00000100 4190*4882a593Smuzhiyun - 4191*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED`` 4192*4882a593Smuzhiyun - 0x00000200 4193*4882a593Smuzhiyun - 4194*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED`` 4195*4882a593Smuzhiyun - 0x00000400 4196*4882a593Smuzhiyun - 4197*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_TILES_ENABLED`` 4198*4882a593Smuzhiyun - 0x00000800 4199*4882a593Smuzhiyun - 4200*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED`` 4201*4882a593Smuzhiyun - 0x00001000 4202*4882a593Smuzhiyun - 4203*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED`` 4204*4882a593Smuzhiyun - 0x00002000 4205*4882a593Smuzhiyun - 4206*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED`` 4207*4882a593Smuzhiyun - 0x00004000 4208*4882a593Smuzhiyun - 4209*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_OVERRIDE_ENABLED`` 4210*4882a593Smuzhiyun - 0x00008000 4211*4882a593Smuzhiyun - 4212*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER`` 4213*4882a593Smuzhiyun - 0x00010000 4214*4882a593Smuzhiyun - 4215*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT`` 4216*4882a593Smuzhiyun - 0x00020000 4217*4882a593Smuzhiyun - 4218*4882a593Smuzhiyun * - ``V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT`` 4219*4882a593Smuzhiyun - 0x00040000 4220*4882a593Smuzhiyun - 4221*4882a593Smuzhiyun 4222*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS (struct)`` 4223*4882a593Smuzhiyun Specifies various slice-specific parameters, especially from the NAL unit 4224*4882a593Smuzhiyun header, general slice segment header and weighted prediction parameter 4225*4882a593Smuzhiyun parts of the bitstream. 4226*4882a593Smuzhiyun These bitstream parameters are defined according to :ref:`hevc`. 4227*4882a593Smuzhiyun They are described in section 7.4.7 "General slice segment header 4228*4882a593Smuzhiyun semantics" of the specification. 4229*4882a593Smuzhiyun 4230*4882a593Smuzhiyun.. c:type:: v4l2_ctrl_hevc_slice_params 4231*4882a593Smuzhiyun 4232*4882a593Smuzhiyun.. cssclass:: longtable 4233*4882a593Smuzhiyun 4234*4882a593Smuzhiyun.. flat-table:: struct v4l2_ctrl_hevc_slice_params 4235*4882a593Smuzhiyun :header-rows: 0 4236*4882a593Smuzhiyun :stub-columns: 0 4237*4882a593Smuzhiyun :widths: 1 1 2 4238*4882a593Smuzhiyun 4239*4882a593Smuzhiyun * - __u32 4240*4882a593Smuzhiyun - ``bit_size`` 4241*4882a593Smuzhiyun - Size (in bits) of the current slice data. 4242*4882a593Smuzhiyun * - __u32 4243*4882a593Smuzhiyun - ``data_bit_offset`` 4244*4882a593Smuzhiyun - Offset (in bits) to the video data in the current slice data. 4245*4882a593Smuzhiyun * - __u8 4246*4882a593Smuzhiyun - ``nal_unit_type`` 4247*4882a593Smuzhiyun - 4248*4882a593Smuzhiyun * - __u8 4249*4882a593Smuzhiyun - ``nuh_temporal_id_plus1`` 4250*4882a593Smuzhiyun - 4251*4882a593Smuzhiyun * - __u8 4252*4882a593Smuzhiyun - ``slice_type`` 4253*4882a593Smuzhiyun - 4254*4882a593Smuzhiyun (V4L2_HEVC_SLICE_TYPE_I, V4L2_HEVC_SLICE_TYPE_P or 4255*4882a593Smuzhiyun V4L2_HEVC_SLICE_TYPE_B). 4256*4882a593Smuzhiyun * - __u8 4257*4882a593Smuzhiyun - ``colour_plane_id`` 4258*4882a593Smuzhiyun - 4259*4882a593Smuzhiyun * - __u16 4260*4882a593Smuzhiyun - ``slice_pic_order_cnt`` 4261*4882a593Smuzhiyun - 4262*4882a593Smuzhiyun * - __u8 4263*4882a593Smuzhiyun - ``num_ref_idx_l0_active_minus1`` 4264*4882a593Smuzhiyun - 4265*4882a593Smuzhiyun * - __u8 4266*4882a593Smuzhiyun - ``num_ref_idx_l1_active_minus1`` 4267*4882a593Smuzhiyun - 4268*4882a593Smuzhiyun * - __u8 4269*4882a593Smuzhiyun - ``collocated_ref_idx`` 4270*4882a593Smuzhiyun - 4271*4882a593Smuzhiyun * - __u8 4272*4882a593Smuzhiyun - ``five_minus_max_num_merge_cand`` 4273*4882a593Smuzhiyun - 4274*4882a593Smuzhiyun * - __s8 4275*4882a593Smuzhiyun - ``slice_qp_delta`` 4276*4882a593Smuzhiyun - 4277*4882a593Smuzhiyun * - __s8 4278*4882a593Smuzhiyun - ``slice_cb_qp_offset`` 4279*4882a593Smuzhiyun - 4280*4882a593Smuzhiyun * - __s8 4281*4882a593Smuzhiyun - ``slice_cr_qp_offset`` 4282*4882a593Smuzhiyun - 4283*4882a593Smuzhiyun * - __s8 4284*4882a593Smuzhiyun - ``slice_act_y_qp_offset`` 4285*4882a593Smuzhiyun - 4286*4882a593Smuzhiyun * - __s8 4287*4882a593Smuzhiyun - ``slice_act_cb_qp_offset`` 4288*4882a593Smuzhiyun - 4289*4882a593Smuzhiyun * - __s8 4290*4882a593Smuzhiyun - ``slice_act_cr_qp_offset`` 4291*4882a593Smuzhiyun - 4292*4882a593Smuzhiyun * - __s8 4293*4882a593Smuzhiyun - ``slice_beta_offset_div2`` 4294*4882a593Smuzhiyun - 4295*4882a593Smuzhiyun * - __s8 4296*4882a593Smuzhiyun - ``slice_tc_offset_div2`` 4297*4882a593Smuzhiyun - 4298*4882a593Smuzhiyun * - __u8 4299*4882a593Smuzhiyun - ``pic_struct`` 4300*4882a593Smuzhiyun - 4301*4882a593Smuzhiyun * - __u8 4302*4882a593Smuzhiyun - ``num_active_dpb_entries`` 4303*4882a593Smuzhiyun - The number of entries in ``dpb``. 4304*4882a593Smuzhiyun * - __u8 4305*4882a593Smuzhiyun - ``ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 4306*4882a593Smuzhiyun - The list of L0 reference elements as indices in the DPB. 4307*4882a593Smuzhiyun * - __u8 4308*4882a593Smuzhiyun - ``ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 4309*4882a593Smuzhiyun - The list of L1 reference elements as indices in the DPB. 4310*4882a593Smuzhiyun * - __u8 4311*4882a593Smuzhiyun - ``num_rps_poc_st_curr_before`` 4312*4882a593Smuzhiyun - The number of reference pictures in the short-term set that come before 4313*4882a593Smuzhiyun the current frame. 4314*4882a593Smuzhiyun * - __u8 4315*4882a593Smuzhiyun - ``num_rps_poc_st_curr_after`` 4316*4882a593Smuzhiyun - The number of reference pictures in the short-term set that come after 4317*4882a593Smuzhiyun the current frame. 4318*4882a593Smuzhiyun * - __u8 4319*4882a593Smuzhiyun - ``num_rps_poc_lt_curr`` 4320*4882a593Smuzhiyun - The number of reference pictures in the long-term set. 4321*4882a593Smuzhiyun * - __u8 4322*4882a593Smuzhiyun - ``padding[7]`` 4323*4882a593Smuzhiyun - Applications and drivers must set this to zero. 4324*4882a593Smuzhiyun * - struct :c:type:`v4l2_hevc_dpb_entry` 4325*4882a593Smuzhiyun - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 4326*4882a593Smuzhiyun - The decoded picture buffer, for meta-data about reference frames. 4327*4882a593Smuzhiyun * - struct :c:type:`v4l2_hevc_pred_weight_table` 4328*4882a593Smuzhiyun - ``pred_weight_table`` 4329*4882a593Smuzhiyun - The prediction weight coefficients for inter-picture prediction. 4330*4882a593Smuzhiyun * - __u64 4331*4882a593Smuzhiyun - ``flags`` 4332*4882a593Smuzhiyun - See :ref:`Slice Parameters Flags <hevc_slice_params_flags>` 4333*4882a593Smuzhiyun 4334*4882a593Smuzhiyun.. _hevc_slice_params_flags: 4335*4882a593Smuzhiyun 4336*4882a593Smuzhiyun``Slice Parameters Flags`` 4337*4882a593Smuzhiyun 4338*4882a593Smuzhiyun.. cssclass:: longtable 4339*4882a593Smuzhiyun 4340*4882a593Smuzhiyun.. flat-table:: 4341*4882a593Smuzhiyun :header-rows: 0 4342*4882a593Smuzhiyun :stub-columns: 0 4343*4882a593Smuzhiyun :widths: 1 1 2 4344*4882a593Smuzhiyun 4345*4882a593Smuzhiyun * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA`` 4346*4882a593Smuzhiyun - 0x00000001 4347*4882a593Smuzhiyun - 4348*4882a593Smuzhiyun * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA`` 4349*4882a593Smuzhiyun - 0x00000002 4350*4882a593Smuzhiyun - 4351*4882a593Smuzhiyun * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED`` 4352*4882a593Smuzhiyun - 0x00000004 4353*4882a593Smuzhiyun - 4354*4882a593Smuzhiyun * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO`` 4355*4882a593Smuzhiyun - 0x00000008 4356*4882a593Smuzhiyun - 4357*4882a593Smuzhiyun * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT`` 4358*4882a593Smuzhiyun - 0x00000010 4359*4882a593Smuzhiyun - 4360*4882a593Smuzhiyun * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0`` 4361*4882a593Smuzhiyun - 0x00000020 4362*4882a593Smuzhiyun - 4363*4882a593Smuzhiyun * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INTEGER_MV`` 4364*4882a593Smuzhiyun - 0x00000040 4365*4882a593Smuzhiyun - 4366*4882a593Smuzhiyun * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED`` 4367*4882a593Smuzhiyun - 0x00000080 4368*4882a593Smuzhiyun - 4369*4882a593Smuzhiyun * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED`` 4370*4882a593Smuzhiyun - 0x00000100 4371*4882a593Smuzhiyun - 4372*4882a593Smuzhiyun * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT`` 4373*4882a593Smuzhiyun - 0x00000200 4374*4882a593Smuzhiyun - 4375*4882a593Smuzhiyun 4376*4882a593Smuzhiyun.. c:type:: v4l2_hevc_dpb_entry 4377*4882a593Smuzhiyun 4378*4882a593Smuzhiyun.. cssclass:: longtable 4379*4882a593Smuzhiyun 4380*4882a593Smuzhiyun.. flat-table:: struct v4l2_hevc_dpb_entry 4381*4882a593Smuzhiyun :header-rows: 0 4382*4882a593Smuzhiyun :stub-columns: 0 4383*4882a593Smuzhiyun :widths: 1 1 2 4384*4882a593Smuzhiyun 4385*4882a593Smuzhiyun * - __u64 4386*4882a593Smuzhiyun - ``timestamp`` 4387*4882a593Smuzhiyun - Timestamp of the V4L2 capture buffer to use as reference, used 4388*4882a593Smuzhiyun with B-coded and P-coded frames. The timestamp refers to the 4389*4882a593Smuzhiyun ``timestamp`` field in struct :c:type:`v4l2_buffer`. Use the 4390*4882a593Smuzhiyun :c:func:`v4l2_timeval_to_ns()` function to convert the struct 4391*4882a593Smuzhiyun :c:type:`timeval` in struct :c:type:`v4l2_buffer` to a __u64. 4392*4882a593Smuzhiyun * - __u8 4393*4882a593Smuzhiyun - ``rps`` 4394*4882a593Smuzhiyun - The reference set for the reference frame 4395*4882a593Smuzhiyun (V4L2_HEVC_DPB_ENTRY_RPS_ST_CURR_BEFORE, 4396*4882a593Smuzhiyun V4L2_HEVC_DPB_ENTRY_RPS_ST_CURR_AFTER or 4397*4882a593Smuzhiyun V4L2_HEVC_DPB_ENTRY_RPS_LT_CURR) 4398*4882a593Smuzhiyun * - __u8 4399*4882a593Smuzhiyun - ``field_pic`` 4400*4882a593Smuzhiyun - Whether the reference is a field picture or a frame. 4401*4882a593Smuzhiyun * - __u16 4402*4882a593Smuzhiyun - ``pic_order_cnt[2]`` 4403*4882a593Smuzhiyun - The picture order count of the reference. Only the first element of the 4404*4882a593Smuzhiyun array is used for frame pictures, while the first element identifies the 4405*4882a593Smuzhiyun top field and the second the bottom field in field-coded pictures. 4406*4882a593Smuzhiyun * - __u8 4407*4882a593Smuzhiyun - ``padding[2]`` 4408*4882a593Smuzhiyun - Applications and drivers must set this to zero. 4409*4882a593Smuzhiyun 4410*4882a593Smuzhiyun.. c:type:: v4l2_hevc_pred_weight_table 4411*4882a593Smuzhiyun 4412*4882a593Smuzhiyun.. cssclass:: longtable 4413*4882a593Smuzhiyun 4414*4882a593Smuzhiyun.. flat-table:: struct v4l2_hevc_pred_weight_table 4415*4882a593Smuzhiyun :header-rows: 0 4416*4882a593Smuzhiyun :stub-columns: 0 4417*4882a593Smuzhiyun :widths: 1 1 2 4418*4882a593Smuzhiyun 4419*4882a593Smuzhiyun * - __u8 4420*4882a593Smuzhiyun - ``luma_log2_weight_denom`` 4421*4882a593Smuzhiyun - 4422*4882a593Smuzhiyun * - __s8 4423*4882a593Smuzhiyun - ``delta_chroma_log2_weight_denom`` 4424*4882a593Smuzhiyun - 4425*4882a593Smuzhiyun * - __s8 4426*4882a593Smuzhiyun - ``delta_luma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 4427*4882a593Smuzhiyun - 4428*4882a593Smuzhiyun * - __s8 4429*4882a593Smuzhiyun - ``luma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 4430*4882a593Smuzhiyun - 4431*4882a593Smuzhiyun * - __s8 4432*4882a593Smuzhiyun - ``delta_chroma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 4433*4882a593Smuzhiyun - 4434*4882a593Smuzhiyun * - __s8 4435*4882a593Smuzhiyun - ``chroma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 4436*4882a593Smuzhiyun - 4437*4882a593Smuzhiyun * - __s8 4438*4882a593Smuzhiyun - ``delta_luma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 4439*4882a593Smuzhiyun - 4440*4882a593Smuzhiyun * - __s8 4441*4882a593Smuzhiyun - ``luma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]`` 4442*4882a593Smuzhiyun - 4443*4882a593Smuzhiyun * - __s8 4444*4882a593Smuzhiyun - ``delta_chroma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 4445*4882a593Smuzhiyun - 4446*4882a593Smuzhiyun * - __s8 4447*4882a593Smuzhiyun - ``chroma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]`` 4448*4882a593Smuzhiyun - 4449*4882a593Smuzhiyun * - __u8 4450*4882a593Smuzhiyun - ``padding[6]`` 4451*4882a593Smuzhiyun - Applications and drivers must set this to zero. 4452*4882a593Smuzhiyun 4453*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_DECODE_MODE (enum)`` 4454*4882a593Smuzhiyun Specifies the decoding mode to use. Currently exposes slice-based and 4455*4882a593Smuzhiyun frame-based decoding but new modes might be added later on. 4456*4882a593Smuzhiyun This control is used as a modifier for V4L2_PIX_FMT_HEVC_SLICE 4457*4882a593Smuzhiyun pixel format. Applications that support V4L2_PIX_FMT_HEVC_SLICE 4458*4882a593Smuzhiyun are required to set this control in order to specify the decoding mode 4459*4882a593Smuzhiyun that is expected for the buffer. 4460*4882a593Smuzhiyun Drivers may expose a single or multiple decoding modes, depending 4461*4882a593Smuzhiyun on what they can support. 4462*4882a593Smuzhiyun 4463*4882a593Smuzhiyun .. note:: 4464*4882a593Smuzhiyun 4465*4882a593Smuzhiyun This menu control is not yet part of the public kernel API and 4466*4882a593Smuzhiyun it is expected to change. 4467*4882a593Smuzhiyun 4468*4882a593Smuzhiyun.. c:type:: v4l2_mpeg_video_hevc_decode_mode 4469*4882a593Smuzhiyun 4470*4882a593Smuzhiyun.. cssclass:: longtable 4471*4882a593Smuzhiyun 4472*4882a593Smuzhiyun.. flat-table:: 4473*4882a593Smuzhiyun :header-rows: 0 4474*4882a593Smuzhiyun :stub-columns: 0 4475*4882a593Smuzhiyun :widths: 1 1 2 4476*4882a593Smuzhiyun 4477*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_DECODE_MODE_SLICE_BASED`` 4478*4882a593Smuzhiyun - 0 4479*4882a593Smuzhiyun - Decoding is done at the slice granularity. 4480*4882a593Smuzhiyun The OUTPUT buffer must contain a single slice. 4481*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_DECODE_MODE_FRAME_BASED`` 4482*4882a593Smuzhiyun - 1 4483*4882a593Smuzhiyun - Decoding is done at the frame granularity. 4484*4882a593Smuzhiyun The OUTPUT buffer must contain all slices needed to decode the 4485*4882a593Smuzhiyun frame. The OUTPUT buffer must also contain both fields. 4486*4882a593Smuzhiyun 4487*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_HEVC_START_CODE (enum)`` 4488*4882a593Smuzhiyun Specifies the HEVC slice start code expected for each slice. 4489*4882a593Smuzhiyun This control is used as a modifier for V4L2_PIX_FMT_HEVC_SLICE 4490*4882a593Smuzhiyun pixel format. Applications that support V4L2_PIX_FMT_HEVC_SLICE 4491*4882a593Smuzhiyun are required to set this control in order to specify the start code 4492*4882a593Smuzhiyun that is expected for the buffer. 4493*4882a593Smuzhiyun Drivers may expose a single or multiple start codes, depending 4494*4882a593Smuzhiyun on what they can support. 4495*4882a593Smuzhiyun 4496*4882a593Smuzhiyun .. note:: 4497*4882a593Smuzhiyun 4498*4882a593Smuzhiyun This menu control is not yet part of the public kernel API and 4499*4882a593Smuzhiyun it is expected to change. 4500*4882a593Smuzhiyun 4501*4882a593Smuzhiyun.. c:type:: v4l2_mpeg_video_hevc_start_code 4502*4882a593Smuzhiyun 4503*4882a593Smuzhiyun.. cssclass:: longtable 4504*4882a593Smuzhiyun 4505*4882a593Smuzhiyun.. flat-table:: 4506*4882a593Smuzhiyun :header-rows: 0 4507*4882a593Smuzhiyun :stub-columns: 0 4508*4882a593Smuzhiyun :widths: 1 1 2 4509*4882a593Smuzhiyun 4510*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_START_CODE_NONE`` 4511*4882a593Smuzhiyun - 0 4512*4882a593Smuzhiyun - Selecting this value specifies that HEVC slices are passed 4513*4882a593Smuzhiyun to the driver without any start code. 4514*4882a593Smuzhiyun * - ``V4L2_MPEG_VIDEO_HEVC_START_CODE_ANNEX_B`` 4515*4882a593Smuzhiyun - 1 4516*4882a593Smuzhiyun - Selecting this value specifies that HEVC slices are expected 4517*4882a593Smuzhiyun to be prefixed by Annex B start codes. According to :ref:`hevc` 4518*4882a593Smuzhiyun valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001. 4519*4882a593Smuzhiyun 4520*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (integer)`` 4521*4882a593Smuzhiyun Specifies a priority identifier for the NAL unit, which will be applied to 4522*4882a593Smuzhiyun the base layer. By default this value is set to 0 for the base layer, 4523*4882a593Smuzhiyun and the next layer will have the priority ID assigned as 1, 2, 3 and so on. 4524*4882a593Smuzhiyun The video encoder can't decide the priority id to be applied to a layer, 4525*4882a593Smuzhiyun so this has to come from client. 4526*4882a593Smuzhiyun This is applicable to H264 and valid Range is from 0 to 63. 4527*4882a593Smuzhiyun Source Rec. ITU-T H.264 (06/2019); G.7.4.1.1, G.8.8.1. 4528*4882a593Smuzhiyun 4529*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_LTR_COUNT (integer)`` 4530*4882a593Smuzhiyun Specifies the maximum number of Long Term Reference (LTR) frames at any 4531*4882a593Smuzhiyun given time that the encoder can keep. 4532*4882a593Smuzhiyun This is applicable to the H264 and HEVC encoders. 4533*4882a593Smuzhiyun 4534*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (integer)`` 4535*4882a593Smuzhiyun After setting this control the frame that will be queued next 4536*4882a593Smuzhiyun will be marked as a Long Term Reference (LTR) frame 4537*4882a593Smuzhiyun and given this LTR index which ranges from 0 to LTR_COUNT-1. 4538*4882a593Smuzhiyun This is applicable to the H264 and HEVC encoders. 4539*4882a593Smuzhiyun Source Rec. ITU-T H.264 (06/2019); Table 7.9 4540*4882a593Smuzhiyun 4541*4882a593Smuzhiyun``V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (bitmask)`` 4542*4882a593Smuzhiyun Specifies the Long Term Reference (LTR) frame(s) to be used for 4543*4882a593Smuzhiyun encoding the next frame queued after setting this control. 4544*4882a593Smuzhiyun This provides a bitmask which consists of bits [0, LTR_COUNT-1]. 4545*4882a593Smuzhiyun This is applicable to the H264 and HEVC encoders. 4546