1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2.. c:namespace:: V4L 3 4.. _codec-controls: 5 6*********************** 7Codec Control Reference 8*********************** 9 10Below all controls within the Codec control class are described. First 11the generic controls, then controls specific for certain hardware. 12 13.. note:: 14 15 These controls are applicable to all codecs and not just MPEG. The 16 defines are prefixed with V4L2_CID_MPEG/V4L2_MPEG as the controls 17 were originally made for MPEG codecs and later extended to cover all 18 encoding formats. 19 20 21Generic Codec Controls 22====================== 23 24 25.. _mpeg-control-id: 26 27Codec Control IDs 28----------------- 29 30``V4L2_CID_CODEC_CLASS (class)`` 31 The Codec class descriptor. Calling 32 :ref:`VIDIOC_QUERYCTRL` for this control will 33 return a description of this control class. This description can be 34 used as the caption of a Tab page in a GUI, for example. 35 36.. _v4l2-mpeg-stream-type: 37 38``V4L2_CID_MPEG_STREAM_TYPE`` 39 (enum) 40 41enum v4l2_mpeg_stream_type - 42 The MPEG-1, -2 or -4 output stream type. One cannot assume anything 43 here. Each hardware MPEG encoder tends to support different subsets 44 of the available MPEG stream types. This control is specific to 45 multiplexed MPEG streams. The currently defined stream types are: 46 47 48 49.. flat-table:: 50 :header-rows: 0 51 :stub-columns: 0 52 53 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_PS`` 54 - MPEG-2 program stream 55 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_TS`` 56 - MPEG-2 transport stream 57 * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_SS`` 58 - MPEG-1 system stream 59 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_DVD`` 60 - MPEG-2 DVD-compatible stream 61 * - ``V4L2_MPEG_STREAM_TYPE_MPEG1_VCD`` 62 - MPEG-1 VCD-compatible stream 63 * - ``V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD`` 64 - MPEG-2 SVCD-compatible stream 65 66 67 68``V4L2_CID_MPEG_STREAM_PID_PMT (integer)`` 69 Program Map Table Packet ID for the MPEG transport stream (default 70 16) 71 72``V4L2_CID_MPEG_STREAM_PID_AUDIO (integer)`` 73 Audio Packet ID for the MPEG transport stream (default 256) 74 75``V4L2_CID_MPEG_STREAM_PID_VIDEO (integer)`` 76 Video Packet ID for the MPEG transport stream (default 260) 77 78``V4L2_CID_MPEG_STREAM_PID_PCR (integer)`` 79 Packet ID for the MPEG transport stream carrying PCR fields (default 80 259) 81 82``V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (integer)`` 83 Audio ID for MPEG PES 84 85``V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (integer)`` 86 Video ID for MPEG PES 87 88.. _v4l2-mpeg-stream-vbi-fmt: 89 90``V4L2_CID_MPEG_STREAM_VBI_FMT`` 91 (enum) 92 93enum v4l2_mpeg_stream_vbi_fmt - 94 Some cards can embed VBI data (e. g. Closed Caption, Teletext) into 95 the MPEG stream. This control selects whether VBI data should be 96 embedded, and if so, what embedding method should be used. The list 97 of possible VBI formats depends on the driver. The currently defined 98 VBI format types are: 99 100 101 102.. tabularcolumns:: |p{6.6 cm}|p{10.9cm}| 103 104.. flat-table:: 105 :header-rows: 0 106 :stub-columns: 0 107 108 * - ``V4L2_MPEG_STREAM_VBI_FMT_NONE`` 109 - No VBI in the MPEG stream 110 * - ``V4L2_MPEG_STREAM_VBI_FMT_IVTV`` 111 - VBI in private packets, IVTV format (documented in the kernel 112 sources in the file 113 ``Documentation/userspace-api/media/drivers/cx2341x-uapi.rst``) 114 115 116 117.. _v4l2-mpeg-audio-sampling-freq: 118 119``V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ`` 120 (enum) 121 122enum v4l2_mpeg_audio_sampling_freq - 123 MPEG Audio sampling frequency. Possible values are: 124 125 126 127.. flat-table:: 128 :header-rows: 0 129 :stub-columns: 0 130 131 * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100`` 132 - 44.1 kHz 133 * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000`` 134 - 48 kHz 135 * - ``V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000`` 136 - 32 kHz 137 138 139 140.. _v4l2-mpeg-audio-encoding: 141 142``V4L2_CID_MPEG_AUDIO_ENCODING`` 143 (enum) 144 145enum v4l2_mpeg_audio_encoding - 146 MPEG Audio encoding. This control is specific to multiplexed MPEG 147 streams. Possible values are: 148 149 150 151.. flat-table:: 152 :header-rows: 0 153 :stub-columns: 0 154 155 * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_1`` 156 - MPEG-1/2 Layer I encoding 157 * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_2`` 158 - MPEG-1/2 Layer II encoding 159 * - ``V4L2_MPEG_AUDIO_ENCODING_LAYER_3`` 160 - MPEG-1/2 Layer III encoding 161 * - ``V4L2_MPEG_AUDIO_ENCODING_AAC`` 162 - MPEG-2/4 AAC (Advanced Audio Coding) 163 * - ``V4L2_MPEG_AUDIO_ENCODING_AC3`` 164 - AC-3 aka ATSC A/52 encoding 165 166 167 168.. _v4l2-mpeg-audio-l1-bitrate: 169 170``V4L2_CID_MPEG_AUDIO_L1_BITRATE`` 171 (enum) 172 173enum v4l2_mpeg_audio_l1_bitrate - 174 MPEG-1/2 Layer I bitrate. Possible values are: 175 176 177 178.. flat-table:: 179 :header-rows: 0 180 :stub-columns: 0 181 182 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_32K`` 183 - 32 kbit/s 184 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_64K`` 185 - 64 kbit/s 186 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_96K`` 187 - 96 kbit/s 188 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_128K`` 189 - 128 kbit/s 190 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_160K`` 191 - 160 kbit/s 192 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_192K`` 193 - 192 kbit/s 194 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_224K`` 195 - 224 kbit/s 196 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_256K`` 197 - 256 kbit/s 198 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_288K`` 199 - 288 kbit/s 200 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_320K`` 201 - 320 kbit/s 202 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_352K`` 203 - 352 kbit/s 204 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_384K`` 205 - 384 kbit/s 206 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_416K`` 207 - 416 kbit/s 208 * - ``V4L2_MPEG_AUDIO_L1_BITRATE_448K`` 209 - 448 kbit/s 210 211 212 213.. _v4l2-mpeg-audio-l2-bitrate: 214 215``V4L2_CID_MPEG_AUDIO_L2_BITRATE`` 216 (enum) 217 218enum v4l2_mpeg_audio_l2_bitrate - 219 MPEG-1/2 Layer II bitrate. Possible values are: 220 221 222 223.. flat-table:: 224 :header-rows: 0 225 :stub-columns: 0 226 227 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_32K`` 228 - 32 kbit/s 229 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_48K`` 230 - 48 kbit/s 231 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_56K`` 232 - 56 kbit/s 233 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_64K`` 234 - 64 kbit/s 235 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_80K`` 236 - 80 kbit/s 237 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_96K`` 238 - 96 kbit/s 239 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_112K`` 240 - 112 kbit/s 241 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_128K`` 242 - 128 kbit/s 243 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_160K`` 244 - 160 kbit/s 245 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_192K`` 246 - 192 kbit/s 247 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_224K`` 248 - 224 kbit/s 249 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_256K`` 250 - 256 kbit/s 251 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_320K`` 252 - 320 kbit/s 253 * - ``V4L2_MPEG_AUDIO_L2_BITRATE_384K`` 254 - 384 kbit/s 255 256 257 258.. _v4l2-mpeg-audio-l3-bitrate: 259 260``V4L2_CID_MPEG_AUDIO_L3_BITRATE`` 261 (enum) 262 263enum v4l2_mpeg_audio_l3_bitrate - 264 MPEG-1/2 Layer III bitrate. Possible values are: 265 266 267 268.. flat-table:: 269 :header-rows: 0 270 :stub-columns: 0 271 272 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_32K`` 273 - 32 kbit/s 274 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_40K`` 275 - 40 kbit/s 276 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_48K`` 277 - 48 kbit/s 278 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_56K`` 279 - 56 kbit/s 280 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_64K`` 281 - 64 kbit/s 282 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_80K`` 283 - 80 kbit/s 284 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_96K`` 285 - 96 kbit/s 286 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_112K`` 287 - 112 kbit/s 288 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_128K`` 289 - 128 kbit/s 290 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_160K`` 291 - 160 kbit/s 292 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_192K`` 293 - 192 kbit/s 294 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_224K`` 295 - 224 kbit/s 296 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_256K`` 297 - 256 kbit/s 298 * - ``V4L2_MPEG_AUDIO_L3_BITRATE_320K`` 299 - 320 kbit/s 300 301 302 303``V4L2_CID_MPEG_AUDIO_AAC_BITRATE (integer)`` 304 AAC bitrate in bits per second. 305 306.. _v4l2-mpeg-audio-ac3-bitrate: 307 308``V4L2_CID_MPEG_AUDIO_AC3_BITRATE`` 309 (enum) 310 311enum v4l2_mpeg_audio_ac3_bitrate - 312 AC-3 bitrate. Possible values are: 313 314 315 316.. flat-table:: 317 :header-rows: 0 318 :stub-columns: 0 319 320 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_32K`` 321 - 32 kbit/s 322 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_40K`` 323 - 40 kbit/s 324 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_48K`` 325 - 48 kbit/s 326 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_56K`` 327 - 56 kbit/s 328 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_64K`` 329 - 64 kbit/s 330 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_80K`` 331 - 80 kbit/s 332 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_96K`` 333 - 96 kbit/s 334 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_112K`` 335 - 112 kbit/s 336 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_128K`` 337 - 128 kbit/s 338 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_160K`` 339 - 160 kbit/s 340 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_192K`` 341 - 192 kbit/s 342 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_224K`` 343 - 224 kbit/s 344 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_256K`` 345 - 256 kbit/s 346 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_320K`` 347 - 320 kbit/s 348 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_384K`` 349 - 384 kbit/s 350 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_448K`` 351 - 448 kbit/s 352 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_512K`` 353 - 512 kbit/s 354 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_576K`` 355 - 576 kbit/s 356 * - ``V4L2_MPEG_AUDIO_AC3_BITRATE_640K`` 357 - 640 kbit/s 358 359 360 361.. _v4l2-mpeg-audio-mode: 362 363``V4L2_CID_MPEG_AUDIO_MODE`` 364 (enum) 365 366enum v4l2_mpeg_audio_mode - 367 MPEG Audio mode. Possible values are: 368 369 370 371.. flat-table:: 372 :header-rows: 0 373 :stub-columns: 0 374 375 * - ``V4L2_MPEG_AUDIO_MODE_STEREO`` 376 - Stereo 377 * - ``V4L2_MPEG_AUDIO_MODE_JOINT_STEREO`` 378 - Joint Stereo 379 * - ``V4L2_MPEG_AUDIO_MODE_DUAL`` 380 - Bilingual 381 * - ``V4L2_MPEG_AUDIO_MODE_MONO`` 382 - Mono 383 384 385 386.. _v4l2-mpeg-audio-mode-extension: 387 388``V4L2_CID_MPEG_AUDIO_MODE_EXTENSION`` 389 (enum) 390 391enum v4l2_mpeg_audio_mode_extension - 392 Joint Stereo audio mode extension. In Layer I and II they indicate 393 which subbands are in intensity stereo. All other subbands are coded 394 in stereo. Layer III is not (yet) supported. Possible values are: 395 396.. tabularcolumns:: |p{9.1cm}|p{8.4cm}| 397 398.. flat-table:: 399 :header-rows: 0 400 :stub-columns: 0 401 402 * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4`` 403 - Subbands 4-31 in intensity stereo 404 * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8`` 405 - Subbands 8-31 in intensity stereo 406 * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12`` 407 - Subbands 12-31 in intensity stereo 408 * - ``V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16`` 409 - Subbands 16-31 in intensity stereo 410 411 412 413.. _v4l2-mpeg-audio-emphasis: 414 415``V4L2_CID_MPEG_AUDIO_EMPHASIS`` 416 (enum) 417 418enum v4l2_mpeg_audio_emphasis - 419 Audio Emphasis. Possible values are: 420 421 422 423.. flat-table:: 424 :header-rows: 0 425 :stub-columns: 0 426 427 * - ``V4L2_MPEG_AUDIO_EMPHASIS_NONE`` 428 - None 429 * - ``V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS`` 430 - 50/15 microsecond emphasis 431 * - ``V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17`` 432 - CCITT J.17 433 434 435 436.. _v4l2-mpeg-audio-crc: 437 438``V4L2_CID_MPEG_AUDIO_CRC`` 439 (enum) 440 441enum v4l2_mpeg_audio_crc - 442 CRC method. Possible values are: 443 444 445 446.. flat-table:: 447 :header-rows: 0 448 :stub-columns: 0 449 450 * - ``V4L2_MPEG_AUDIO_CRC_NONE`` 451 - None 452 * - ``V4L2_MPEG_AUDIO_CRC_CRC16`` 453 - 16 bit parity check 454 455 456 457``V4L2_CID_MPEG_AUDIO_MUTE (boolean)`` 458 Mutes the audio when capturing. This is not done by muting audio 459 hardware, which can still produce a slight hiss, but in the encoder 460 itself, guaranteeing a fixed and reproducible audio bitstream. 0 = 461 unmuted, 1 = muted. 462 463.. _v4l2-mpeg-audio-dec-playback: 464 465``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK`` 466 (enum) 467 468enum v4l2_mpeg_audio_dec_playback - 469 Determines how monolingual audio should be played back. Possible 470 values are: 471 472 473 474.. tabularcolumns:: |p{9.8cm}|p{7.7cm}| 475 476.. flat-table:: 477 :header-rows: 0 478 :stub-columns: 0 479 480 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_AUTO`` 481 - Automatically determines the best playback mode. 482 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_STEREO`` 483 - Stereo playback. 484 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_LEFT`` 485 - Left channel playback. 486 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_RIGHT`` 487 - Right channel playback. 488 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_MONO`` 489 - Mono playback. 490 * - ``V4L2_MPEG_AUDIO_DEC_PLAYBACK_SWAPPED_STEREO`` 491 - Stereo playback with swapped left and right channels. 492 493 494 495.. _v4l2-mpeg-audio-dec-multilingual-playback: 496 497``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK`` 498 (enum) 499 500enum v4l2_mpeg_audio_dec_playback - 501 Determines how multilingual audio should be played back. 502 503.. _v4l2-mpeg-video-encoding: 504 505``V4L2_CID_MPEG_VIDEO_ENCODING`` 506 (enum) 507 508enum v4l2_mpeg_video_encoding - 509 MPEG Video encoding method. This control is specific to multiplexed 510 MPEG streams. Possible values are: 511 512 513 514.. flat-table:: 515 :header-rows: 0 516 :stub-columns: 0 517 518 * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_1`` 519 - MPEG-1 Video encoding 520 * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_2`` 521 - MPEG-2 Video encoding 522 * - ``V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC`` 523 - MPEG-4 AVC (H.264) Video encoding 524 525 526 527.. _v4l2-mpeg-video-aspect: 528 529``V4L2_CID_MPEG_VIDEO_ASPECT`` 530 (enum) 531 532enum v4l2_mpeg_video_aspect - 533 Video aspect. Possible values are: 534 535 536 537.. flat-table:: 538 :header-rows: 0 539 :stub-columns: 0 540 541 * - ``V4L2_MPEG_VIDEO_ASPECT_1x1`` 542 * - ``V4L2_MPEG_VIDEO_ASPECT_4x3`` 543 * - ``V4L2_MPEG_VIDEO_ASPECT_16x9`` 544 * - ``V4L2_MPEG_VIDEO_ASPECT_221x100`` 545 546 547 548``V4L2_CID_MPEG_VIDEO_B_FRAMES (integer)`` 549 Number of B-Frames (default 2) 550 551``V4L2_CID_MPEG_VIDEO_GOP_SIZE (integer)`` 552 GOP size (default 12) 553 554``V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (boolean)`` 555 GOP closure (default 1) 556 557``V4L2_CID_MPEG_VIDEO_PULLDOWN (boolean)`` 558 Enable 3:2 pulldown (default 0) 559 560.. _v4l2-mpeg-video-bitrate-mode: 561 562``V4L2_CID_MPEG_VIDEO_BITRATE_MODE`` 563 (enum) 564 565enum v4l2_mpeg_video_bitrate_mode - 566 Video bitrate mode. Possible values are: 567 568 569 570.. flat-table:: 571 :header-rows: 0 572 :stub-columns: 0 573 574 * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_VBR`` 575 - Variable bitrate 576 * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CBR`` 577 - Constant bitrate 578 * - ``V4L2_MPEG_VIDEO_BITRATE_MODE_CQ`` 579 - Constant quality 580 581 582 583``V4L2_CID_MPEG_VIDEO_BITRATE (integer)`` 584 Average video bitrate in bits per second. 585 586``V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (integer)`` 587 Peak video bitrate in bits per second. Must be larger or equal to 588 the average video bitrate. It is ignored if the video bitrate mode 589 is set to constant bitrate. 590 591``V4L2_CID_MPEG_VIDEO_CONSTANT_QUALITY (integer)`` 592 Constant quality level control. This control is applicable when 593 ``V4L2_CID_MPEG_VIDEO_BITRATE_MODE`` value is 594 ``V4L2_MPEG_VIDEO_BITRATE_MODE_CQ``. Valid range is 1 to 100 595 where 1 indicates lowest quality and 100 indicates highest quality. 596 Encoder will decide the appropriate quantization parameter and 597 bitrate to produce requested frame quality. 598 599 600``V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE (enum)`` 601 602enum v4l2_mpeg_video_frame_skip_mode - 603 Indicates in what conditions the encoder should skip frames. If 604 encoding a frame would cause the encoded stream to be larger then a 605 chosen data limit then the frame will be skipped. Possible values 606 are: 607 608 609.. tabularcolumns:: |p{8.2cm}|p{9.3cm}| 610 611.. raw:: latex 612 613 \small 614 615.. flat-table:: 616 :header-rows: 0 617 :stub-columns: 0 618 619 * - ``V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_DISABLED`` 620 - Frame skip mode is disabled. 621 * - ``V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT`` 622 - Frame skip mode enabled and buffer limit is set by the chosen 623 level and is defined by the standard. 624 * - ``V4L2_MPEG_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT`` 625 - Frame skip mode enabled and buffer limit is set by the 626 :ref:`VBV (MPEG1/2/4) <v4l2-mpeg-video-vbv-size>` or 627 :ref:`CPB (H264) buffer size <v4l2-mpeg-video-h264-cpb-size>` control. 628 629.. raw:: latex 630 631 \normalsize 632 633``V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (integer)`` 634 For every captured frame, skip this many subsequent frames (default 635 0). 636 637``V4L2_CID_MPEG_VIDEO_MUTE (boolean)`` 638 "Mutes" the video to a fixed color when capturing. This is useful 639 for testing, to produce a fixed video bitstream. 0 = unmuted, 1 = 640 muted. 641 642``V4L2_CID_MPEG_VIDEO_MUTE_YUV (integer)`` 643 Sets the "mute" color of the video. The supplied 32-bit integer is 644 interpreted as follows (bit 0 = least significant bit): 645 646 647 648.. flat-table:: 649 :header-rows: 0 650 :stub-columns: 0 651 652 * - Bit 0:7 653 - V chrominance information 654 * - Bit 8:15 655 - U chrominance information 656 * - Bit 16:23 657 - Y luminance information 658 * - Bit 24:31 659 - Must be zero. 660 661 662 663.. _v4l2-mpeg-video-dec-pts: 664 665``V4L2_CID_MPEG_VIDEO_DEC_PTS (integer64)`` 666 This read-only control returns the 33-bit video Presentation Time 667 Stamp as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1 of the 668 currently displayed frame. This is the same PTS as is used in 669 :ref:`VIDIOC_DECODER_CMD`. 670 671.. _v4l2-mpeg-video-dec-frame: 672 673``V4L2_CID_MPEG_VIDEO_DEC_FRAME (integer64)`` 674 This read-only control returns the frame counter of the frame that 675 is currently displayed (decoded). This value is reset to 0 whenever 676 the decoder is started. 677 678``V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (integer64)`` 679 This control sets the conceal color in YUV color space. It describes 680 the client preference of the error conceal color in case of an error 681 where the reference frame is missing. The decoder should fill the 682 reference buffer with the preferred color and use it for future 683 decoding. The control is using 16 bits per channel. 684 Applicable to decoders. 685 686.. flat-table:: 687 :header-rows: 0 688 :stub-columns: 0 689 690 * - 691 - 8bit format 692 - 10bit format 693 - 12bit format 694 * - Y luminance 695 - Bit 0:7 696 - Bit 0:9 697 - Bit 0:11 698 * - Cb chrominance 699 - Bit 16:23 700 - Bit 16:25 701 - Bit 16:27 702 * - Cr chrominance 703 - Bit 32:39 704 - Bit 32:41 705 - Bit 32:43 706 * - Must be zero 707 - Bit 48:63 708 - Bit 48:63 709 - Bit 48:63 710 711``V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (boolean)`` 712 If enabled the decoder expects to receive a single slice per buffer, 713 otherwise the decoder expects a single frame in per buffer. 714 Applicable to the decoder, all codecs. 715 716``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (boolean)`` 717 If the display delay is enabled then the decoder is forced to return 718 a CAPTURE buffer (decoded frame) after processing a certain number 719 of OUTPUT buffers. The delay can be set through 720 ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY``. This 721 feature can be used for example for generating thumbnails of videos. 722 Applicable to the decoder. 723 724``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (integer)`` 725 Display delay value for decoder. The decoder is forced to 726 return a decoded frame after the set 'display delay' number of 727 frames. If this number is low it may result in frames returned out 728 of display order, in addition the hardware may still be using the 729 returned buffer as a reference picture for subsequent frames. 730 731``V4L2_CID_MPEG_VIDEO_AU_DELIMITER (boolean)`` 732 If enabled then, AUD (Access Unit Delimiter) NALUs will be generated. 733 That could be useful to find the start of a frame without having to 734 fully parse each NALU. Applicable to the H264 and HEVC encoders. 735 736``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE (boolean)`` 737 Enable writing sample aspect ratio in the Video Usability 738 Information. Applicable to the H264 encoder. 739 740.. _v4l2-mpeg-video-h264-vui-sar-idc: 741 742``V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_IDC`` 743 (enum) 744 745enum v4l2_mpeg_video_h264_vui_sar_idc - 746 VUI sample aspect ratio indicator for H.264 encoding. The value is 747 defined in the table E-1 in the standard. Applicable to the H264 748 encoder. 749 750 751 752.. flat-table:: 753 :header-rows: 0 754 :stub-columns: 0 755 756 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_UNSPECIFIED`` 757 - Unspecified 758 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_1x1`` 759 - 1x1 760 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_12x11`` 761 - 12x11 762 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_10x11`` 763 - 10x11 764 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_16x11`` 765 - 16x11 766 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_40x33`` 767 - 40x33 768 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_24x11`` 769 - 24x11 770 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_20x11`` 771 - 20x11 772 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_32x11`` 773 - 32x11 774 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_80x33`` 775 - 80x33 776 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_18x11`` 777 - 18x11 778 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_15x11`` 779 - 15x11 780 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_64x33`` 781 - 64x33 782 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_160x99`` 783 - 160x99 784 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_4x3`` 785 - 4x3 786 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_3x2`` 787 - 3x2 788 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_2x1`` 789 - 2x1 790 * - ``V4L2_MPEG_VIDEO_H264_VUI_SAR_IDC_EXTENDED`` 791 - Extended SAR 792 793 794 795``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (integer)`` 796 Extended sample aspect ratio width for H.264 VUI encoding. 797 Applicable to the H264 encoder. 798 799``V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (integer)`` 800 Extended sample aspect ratio height for H.264 VUI encoding. 801 Applicable to the H264 encoder. 802 803.. _v4l2-mpeg-video-h264-level: 804 805``V4L2_CID_MPEG_VIDEO_H264_LEVEL`` 806 (enum) 807 808enum v4l2_mpeg_video_h264_level - 809 The level information for the H264 video elementary stream. 810 Applicable to the H264 encoder. Possible values are: 811 812 813 814.. flat-table:: 815 :header-rows: 0 816 :stub-columns: 0 817 818 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_0`` 819 - Level 1.0 820 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1B`` 821 - Level 1B 822 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_1`` 823 - Level 1.1 824 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_2`` 825 - Level 1.2 826 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_1_3`` 827 - Level 1.3 828 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_0`` 829 - Level 2.0 830 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_1`` 831 - Level 2.1 832 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_2_2`` 833 - Level 2.2 834 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_0`` 835 - Level 3.0 836 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_1`` 837 - Level 3.1 838 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_3_2`` 839 - Level 3.2 840 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_0`` 841 - Level 4.0 842 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_1`` 843 - Level 4.1 844 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_4_2`` 845 - Level 4.2 846 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_0`` 847 - Level 5.0 848 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_1`` 849 - Level 5.1 850 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_5_2`` 851 - Level 5.2 852 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_0`` 853 - Level 6.0 854 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_1`` 855 - Level 6.1 856 * - ``V4L2_MPEG_VIDEO_H264_LEVEL_6_2`` 857 - Level 6.2 858 859 860 861.. _v4l2-mpeg-video-mpeg2-level: 862 863``V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL`` 864 (enum) 865 866enum v4l2_mpeg_video_mpeg2_level - 867 The level information for the MPEG2 elementary stream. Applicable to 868 MPEG2 codecs. Possible values are: 869 870 871 872.. flat-table:: 873 :header-rows: 0 874 :stub-columns: 0 875 876 * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW`` 877 - Low Level (LL) 878 * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_MAIN`` 879 - Main Level (ML) 880 * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH_1440`` 881 - High-1440 Level (H-14) 882 * - ``V4L2_MPEG_VIDEO_MPEG2_LEVEL_HIGH`` 883 - High Level (HL) 884 885 886 887.. _v4l2-mpeg-video-mpeg4-level: 888 889``V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL`` 890 (enum) 891 892enum v4l2_mpeg_video_mpeg4_level - 893 The level information for the MPEG4 elementary stream. Applicable to 894 the MPEG4 encoder. Possible values are: 895 896 897 898.. flat-table:: 899 :header-rows: 0 900 :stub-columns: 0 901 902 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_0`` 903 - Level 0 904 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_0B`` 905 - Level 0b 906 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_1`` 907 - Level 1 908 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_2`` 909 - Level 2 910 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_3`` 911 - Level 3 912 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_3B`` 913 - Level 3b 914 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_4`` 915 - Level 4 916 * - ``V4L2_MPEG_VIDEO_MPEG4_LEVEL_5`` 917 - Level 5 918 919 920 921.. _v4l2-mpeg-video-h264-profile: 922 923``V4L2_CID_MPEG_VIDEO_H264_PROFILE`` 924 (enum) 925 926enum v4l2_mpeg_video_h264_profile - 927 The profile information for H264. Applicable to the H264 encoder. 928 Possible values are: 929 930.. raw:: latex 931 932 \small 933 934.. tabularcolumns:: |p{10.2cm}|p{7.3cm}| 935 936.. flat-table:: 937 :header-rows: 0 938 :stub-columns: 0 939 940 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE`` 941 - Baseline profile 942 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_BASELINE`` 943 - Constrained Baseline profile 944 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MAIN`` 945 - Main profile 946 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_EXTENDED`` 947 - Extended profile 948 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH`` 949 - High profile 950 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10`` 951 - High 10 profile 952 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422`` 953 - High 422 profile 954 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_PREDICTIVE`` 955 - High 444 Predictive profile 956 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_10_INTRA`` 957 - High 10 Intra profile 958 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_422_INTRA`` 959 - High 422 Intra profile 960 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_HIGH_444_INTRA`` 961 - High 444 Intra profile 962 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CAVLC_444_INTRA`` 963 - CAVLC 444 Intra profile 964 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_BASELINE`` 965 - Scalable Baseline profile 966 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH`` 967 - Scalable High profile 968 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_SCALABLE_HIGH_INTRA`` 969 - Scalable High Intra profile 970 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_STEREO_HIGH`` 971 - Stereo High profile 972 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_MULTIVIEW_HIGH`` 973 - Multiview High profile 974 * - ``V4L2_MPEG_VIDEO_H264_PROFILE_CONSTRAINED_HIGH`` 975 - Constrained High profile 976 977.. raw:: latex 978 979 \normalsize 980 981.. _v4l2-mpeg-video-mpeg2-profile: 982 983``V4L2_CID_MPEG_VIDEO_MPEG2_PROFILE`` 984 (enum) 985 986enum v4l2_mpeg_video_mpeg2_profile - 987 The profile information for MPEG2. Applicable to MPEG2 codecs. 988 Possible values are: 989 990.. raw:: latex 991 992 \small 993 994.. tabularcolumns:: |p{10.2cm}|p{7.3cm}| 995 996.. flat-table:: 997 :header-rows: 0 998 :stub-columns: 0 999 1000 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SIMPLE`` 1001 - Simple profile (SP) 1002 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_MAIN`` 1003 - Main profile (MP) 1004 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SNR_SCALABLE`` 1005 - SNR Scalable profile (SNR) 1006 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_SPATIALLY_SCALABLE`` 1007 - Spatially Scalable profile (Spt) 1008 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_HIGH`` 1009 - High profile (HP) 1010 * - ``V4L2_MPEG_VIDEO_MPEG2_PROFILE_MULTIVIEW`` 1011 - Multi-view profile (MVP) 1012 1013 1014.. raw:: latex 1015 1016 \normalsize 1017 1018.. _v4l2-mpeg-video-mpeg4-profile: 1019 1020``V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE`` 1021 (enum) 1022 1023enum v4l2_mpeg_video_mpeg4_profile - 1024 The profile information for MPEG4. Applicable to the MPEG4 encoder. 1025 Possible values are: 1026 1027.. raw:: latex 1028 1029 \small 1030 1031.. tabularcolumns:: |p{11.8cm}|p{5.7cm}| 1032 1033.. flat-table:: 1034 :header-rows: 0 1035 :stub-columns: 0 1036 1037 * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE`` 1038 - Simple profile 1039 * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_SIMPLE`` 1040 - Advanced Simple profile 1041 * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_CORE`` 1042 - Core profile 1043 * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_SIMPLE_SCALABLE`` 1044 - Simple Scalable profile 1045 * - ``V4L2_MPEG_VIDEO_MPEG4_PROFILE_ADVANCED_CODING_EFFICIENCY`` 1046 - Advanced Coding Efficiency profile 1047 1048.. raw:: latex 1049 1050 \normalsize 1051 1052``V4L2_CID_MPEG_VIDEO_MAX_REF_PIC (integer)`` 1053 The maximum number of reference pictures used for encoding. 1054 Applicable to the encoder. 1055 1056.. _v4l2-mpeg-video-multi-slice-mode: 1057 1058``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` 1059 (enum) 1060 1061enum v4l2_mpeg_video_multi_slice_mode - 1062 Determines how the encoder should handle division of frame into 1063 slices. Applicable to the encoder. Possible values are: 1064 1065 1066 1067.. tabularcolumns:: |p{9.6cm}|p{7.9cm}| 1068 1069.. flat-table:: 1070 :header-rows: 0 1071 :stub-columns: 0 1072 1073 * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_SINGLE`` 1074 - Single slice per frame. 1075 * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB`` 1076 - Multiple slices with set maximum number of macroblocks per slice. 1077 * - ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES`` 1078 - Multiple slice with set maximum size in bytes per slice. 1079 1080 1081 1082``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_MB (integer)`` 1083 The maximum number of macroblocks in a slice. Used when 1084 ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to 1085 ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_MB``. Applicable to the 1086 encoder. 1087 1088``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MAX_BYTES (integer)`` 1089 The maximum size of a slice in bytes. Used when 1090 ``V4L2_CID_MPEG_VIDEO_MULTI_SLICE_MODE`` is set to 1091 ``V4L2_MPEG_VIDEO_MULTI_SLICE_MODE_MAX_BYTES``. Applicable to the 1092 encoder. 1093 1094.. _v4l2-mpeg-video-h264-loop-filter-mode: 1095 1096``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_MODE`` 1097 (enum) 1098 1099enum v4l2_mpeg_video_h264_loop_filter_mode - 1100 Loop filter mode for H264 encoder. Possible values are: 1101 1102.. raw:: latex 1103 1104 \small 1105 1106.. tabularcolumns:: |p{13.5cm}|p{4.0cm}| 1107 1108.. flat-table:: 1109 :header-rows: 0 1110 :stub-columns: 0 1111 1112 * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_ENABLED`` 1113 - Loop filter is enabled. 1114 * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED`` 1115 - Loop filter is disabled. 1116 * - ``V4L2_MPEG_VIDEO_H264_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY`` 1117 - Loop filter is disabled at the slice boundary. 1118 1119.. raw:: latex 1120 1121 \normalsize 1122 1123 1124``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_ALPHA (integer)`` 1125 Loop filter alpha coefficient, defined in the H264 standard. 1126 This value corresponds to the slice_alpha_c0_offset_div2 slice header 1127 field, and should be in the range of -6 to +6, inclusive. The actual alpha 1128 offset FilterOffsetA is twice this value. 1129 Applicable to the H264 encoder. 1130 1131``V4L2_CID_MPEG_VIDEO_H264_LOOP_FILTER_BETA (integer)`` 1132 Loop filter beta coefficient, defined in the H264 standard. 1133 This corresponds to the slice_beta_offset_div2 slice header field, and 1134 should be in the range of -6 to +6, inclusive. The actual beta offset 1135 FilterOffsetB is twice this value. 1136 Applicable to the H264 encoder. 1137 1138.. _v4l2-mpeg-video-h264-entropy-mode: 1139 1140``V4L2_CID_MPEG_VIDEO_H264_ENTROPY_MODE`` 1141 (enum) 1142 1143enum v4l2_mpeg_video_h264_entropy_mode - 1144 Entropy coding mode for H264 - CABAC/CAVALC. Applicable to the H264 1145 encoder. Possible values are: 1146 1147 1148.. tabularcolumns:: |p{9.0cm}|p{8.5cm}| 1149 1150 1151.. flat-table:: 1152 :header-rows: 0 1153 :stub-columns: 0 1154 1155 * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC`` 1156 - Use CAVLC entropy coding. 1157 * - ``V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CABAC`` 1158 - Use CABAC entropy coding. 1159 1160 1161 1162``V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM (boolean)`` 1163 Enable 8X8 transform for H264. Applicable to the H264 encoder. 1164 1165``V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (boolean)`` 1166 Enable constrained intra prediction for H264. Applicable to the H264 1167 encoder. 1168 1169``V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (integer)`` 1170 Specify the offset that should be added to the luma quantization 1171 parameter to determine the chroma quantization parameter. Applicable 1172 to the H264 encoder. 1173 1174``V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (integer)`` 1175 Cyclic intra macroblock refresh. This is the number of continuous 1176 macroblocks refreshed every frame. Each frame a successive set of 1177 macroblocks is refreshed until the cycle completes and starts from 1178 the top of the frame. Setting this control to zero means that 1179 macroblocks will not be refreshed. Note that this control will not 1180 take effect when ``V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD`` control 1181 is set to non zero value. 1182 Applicable to H264, H263 and MPEG4 encoder. 1183 1184``V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE (enum)`` 1185 1186enum v4l2_mpeg_video_intra_refresh_period_type - 1187 Sets the type of intra refresh. The period to refresh 1188 the whole frame is specified by V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD. 1189 Note that if this control is not present, then it is undefined what 1190 refresh type is used and it is up to the driver to decide. 1191 Applicable to H264 and HEVC encoders. Possible values are: 1192 1193.. tabularcolumns:: |p{9.6cm}|p{7.9cm}| 1194 1195.. flat-table:: 1196 :header-rows: 0 1197 :stub-columns: 0 1198 1199 * - ``V4L2_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_RANDOM`` 1200 - The whole frame is completely refreshed randomly 1201 after the specified period. 1202 * - ``V4L2_MPEG_VIDEO_INTRA_REFRESH_PERIOD_TYPE_CYCLIC`` 1203 - The whole frame MBs are completely refreshed in cyclic order 1204 after the specified period. 1205 1206``V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (integer)`` 1207 Intra macroblock refresh period. This sets the period to refresh 1208 the whole frame. In other words, this defines the number of frames 1209 for which the whole frame will be intra-refreshed. An example: 1210 setting period to 1 means that the whole frame will be refreshed, 1211 setting period to 2 means that the half of macroblocks will be 1212 intra-refreshed on frameX and the other half of macroblocks 1213 will be refreshed in frameX + 1 and so on. Setting the period to 1214 zero means no period is specified. 1215 Note that if the client sets this control to non zero value the 1216 ``V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB`` control shall be 1217 ignored. Applicable to H264 and HEVC encoders. 1218 1219``V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE (boolean)`` 1220 Frame level rate control enable. If this control is disabled then 1221 the quantization parameter for each frame type is constant and set 1222 with appropriate controls (e.g. 1223 ``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP``). If frame rate control is 1224 enabled then quantization parameter is adjusted to meet the chosen 1225 bitrate. Minimum and maximum value for the quantization parameter 1226 can be set with appropriate controls (e.g. 1227 ``V4L2_CID_MPEG_VIDEO_H263_MIN_QP``). Applicable to encoders. 1228 1229``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE (boolean)`` 1230 Macroblock level rate control enable. Applicable to the MPEG4 and 1231 H264 encoders. 1232 1233``V4L2_CID_MPEG_VIDEO_MPEG4_QPEL (boolean)`` 1234 Quarter pixel motion estimation for MPEG4. Applicable to the MPEG4 1235 encoder. 1236 1237``V4L2_CID_MPEG_VIDEO_H263_I_FRAME_QP (integer)`` 1238 Quantization parameter for an I frame for H263. Valid range: from 1 1239 to 31. 1240 1241``V4L2_CID_MPEG_VIDEO_H263_MIN_QP (integer)`` 1242 Minimum quantization parameter for H263. Valid range: from 1 to 31. 1243 1244``V4L2_CID_MPEG_VIDEO_H263_MAX_QP (integer)`` 1245 Maximum quantization parameter for H263. Valid range: from 1 to 31. 1246 1247``V4L2_CID_MPEG_VIDEO_H263_P_FRAME_QP (integer)`` 1248 Quantization parameter for an P frame for H263. Valid range: from 1 1249 to 31. 1250 1251``V4L2_CID_MPEG_VIDEO_H263_B_FRAME_QP (integer)`` 1252 Quantization parameter for an B frame for H263. Valid range: from 1 1253 to 31. 1254 1255``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_QP (integer)`` 1256 Quantization parameter for an I frame for H264. Valid range: from 0 1257 to 51. 1258 1259``V4L2_CID_MPEG_VIDEO_H264_MIN_QP (integer)`` 1260 Minimum quantization parameter for H264. Valid range: from 0 to 51. 1261 1262``V4L2_CID_MPEG_VIDEO_H264_MAX_QP (integer)`` 1263 Maximum quantization parameter for H264. Valid range: from 0 to 51. 1264 1265``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP (integer)`` 1266 Quantization parameter for an P frame for H264. Valid range: from 0 1267 to 51. 1268 1269``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_QP (integer)`` 1270 Quantization parameter for an B frame for H264. Valid range: from 0 1271 to 51. 1272 1273``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (integer)`` 1274 Minimum quantization parameter for the H264 I frame to limit I frame 1275 quality to a range. Valid range: from 0 to 51. If 1276 V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter 1277 should be chosen to meet both requirements. 1278 1279``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (integer)`` 1280 Maximum quantization parameter for the H264 I frame to limit I frame 1281 quality to a range. Valid range: from 0 to 51. If 1282 V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter 1283 should be chosen to meet both requirements. 1284 1285``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (integer)`` 1286 Minimum quantization parameter for the H264 P frame to limit P frame 1287 quality to a range. Valid range: from 0 to 51. If 1288 V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter 1289 should be chosen to meet both requirements. 1290 1291``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (integer)`` 1292 Maximum quantization parameter for the H264 P frame to limit P frame 1293 quality to a range. Valid range: from 0 to 51. If 1294 V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter 1295 should be chosen to meet both requirements. 1296 1297``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MIN_QP (integer)`` 1298 Minimum quantization parameter for the H264 B frame to limit B frame 1299 quality to a range. Valid range: from 0 to 51. If 1300 V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter 1301 should be chosen to meet both requirements. 1302 1303``V4L2_CID_MPEG_VIDEO_H264_B_FRAME_MAX_QP (integer)`` 1304 Maximum quantization parameter for the H264 B frame to limit B frame 1305 quality to a range. Valid range: from 0 to 51. If 1306 V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter 1307 should be chosen to meet both requirements. 1308 1309``V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (integer)`` 1310 Quantization parameter for an I frame for MPEG4. Valid range: from 1 1311 to 31. 1312 1313``V4L2_CID_MPEG_VIDEO_MPEG4_MIN_QP (integer)`` 1314 Minimum quantization parameter for MPEG4. Valid range: from 1 to 31. 1315 1316``V4L2_CID_MPEG_VIDEO_MPEG4_MAX_QP (integer)`` 1317 Maximum quantization parameter for MPEG4. Valid range: from 1 to 31. 1318 1319``V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (integer)`` 1320 Quantization parameter for an P frame for MPEG4. Valid range: from 1 1321 to 31. 1322 1323``V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (integer)`` 1324 Quantization parameter for an B frame for MPEG4. Valid range: from 1 1325 to 31. 1326 1327.. _v4l2-mpeg-video-vbv-size: 1328 1329``V4L2_CID_MPEG_VIDEO_VBV_SIZE (integer)`` 1330 The Video Buffer Verifier size in kilobytes, it is used as a 1331 limitation of frame skip. The VBV is defined in the standard as a 1332 mean to verify that the produced stream will be successfully 1333 decoded. The standard describes it as "Part of a hypothetical 1334 decoder that is conceptually connected to the output of the encoder. 1335 Its purpose is to provide a constraint on the variability of the 1336 data rate that an encoder or editing process may produce.". 1337 Applicable to the MPEG1, MPEG2, MPEG4 encoders. 1338 1339.. _v4l2-mpeg-video-vbv-delay: 1340 1341``V4L2_CID_MPEG_VIDEO_VBV_DELAY (integer)`` 1342 Sets the initial delay in milliseconds for VBV buffer control. 1343 1344.. _v4l2-mpeg-video-hor-search-range: 1345 1346``V4L2_CID_MPEG_VIDEO_MV_H_SEARCH_RANGE (integer)`` 1347 Horizontal search range defines maximum horizontal search area in 1348 pixels to search and match for the present Macroblock (MB) in the 1349 reference picture. This V4L2 control macro is used to set horizontal 1350 search range for motion estimation module in video encoder. 1351 1352.. _v4l2-mpeg-video-vert-search-range: 1353 1354``V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (integer)`` 1355 Vertical search range defines maximum vertical search area in pixels 1356 to search and match for the present Macroblock (MB) in the reference 1357 picture. This V4L2 control macro is used to set vertical search 1358 range for motion estimation module in video encoder. 1359 1360.. _v4l2-mpeg-video-force-key-frame: 1361 1362``V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (button)`` 1363 Force a key frame for the next queued buffer. Applicable to 1364 encoders. This is a general, codec-agnostic keyframe control. 1365 1366.. _v4l2-mpeg-video-h264-cpb-size: 1367 1368``V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE (integer)`` 1369 The Coded Picture Buffer size in kilobytes, it is used as a 1370 limitation of frame skip. The CPB is defined in the H264 standard as 1371 a mean to verify that the produced stream will be successfully 1372 decoded. Applicable to the H264 encoder. 1373 1374``V4L2_CID_MPEG_VIDEO_H264_I_PERIOD (integer)`` 1375 Period between I-frames in the open GOP for H264. In case of an open 1376 GOP this is the period between two I-frames. The period between IDR 1377 (Instantaneous Decoding Refresh) frames is taken from the GOP_SIZE 1378 control. An IDR frame, which stands for Instantaneous Decoding 1379 Refresh is an I-frame after which no prior frames are referenced. 1380 This means that a stream can be restarted from an IDR frame without 1381 the need to store or decode any previous frames. Applicable to the 1382 H264 encoder. 1383 1384.. _v4l2-mpeg-video-header-mode: 1385 1386``V4L2_CID_MPEG_VIDEO_HEADER_MODE`` 1387 (enum) 1388 1389enum v4l2_mpeg_video_header_mode - 1390 Determines whether the header is returned as the first buffer or is 1391 it returned together with the first frame. Applicable to encoders. 1392 Possible values are: 1393 1394.. raw:: latex 1395 1396 \small 1397 1398.. tabularcolumns:: |p{10.3cm}|p{7.2cm}| 1399 1400.. flat-table:: 1401 :header-rows: 0 1402 :stub-columns: 0 1403 1404 * - ``V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE`` 1405 - The stream header is returned separately in the first buffer. 1406 * - ``V4L2_MPEG_VIDEO_HEADER_MODE_JOINED_WITH_1ST_FRAME`` 1407 - The stream header is returned together with the first encoded 1408 frame. 1409 1410.. raw:: latex 1411 1412 \normalsize 1413 1414 1415``V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER (boolean)`` 1416 Repeat the video sequence headers. Repeating these headers makes 1417 random access to the video stream easier. Applicable to the MPEG1, 2 1418 and 4 encoder. 1419 1420``V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (boolean)`` 1421 Enabled the deblocking post processing filter for MPEG4 decoder. 1422 Applicable to the MPEG4 decoder. 1423 1424``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_RES (integer)`` 1425 vop_time_increment_resolution value for MPEG4. Applicable to the 1426 MPEG4 encoder. 1427 1428``V4L2_CID_MPEG_VIDEO_MPEG4_VOP_TIME_INC (integer)`` 1429 vop_time_increment value for MPEG4. Applicable to the MPEG4 1430 encoder. 1431 1432``V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING (boolean)`` 1433 Enable generation of frame packing supplemental enhancement 1434 information in the encoded bitstream. The frame packing SEI message 1435 contains the arrangement of L and R planes for 3D viewing. 1436 Applicable to the H264 encoder. 1437 1438``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0 (boolean)`` 1439 Sets current frame as frame0 in frame packing SEI. Applicable to the 1440 H264 encoder. 1441 1442.. _v4l2-mpeg-video-h264-sei-fp-arrangement-type: 1443 1444``V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE`` 1445 (enum) 1446 1447enum v4l2_mpeg_video_h264_sei_fp_arrangement_type - 1448 Frame packing arrangement type for H264 SEI. Applicable to the H264 1449 encoder. Possible values are: 1450 1451.. raw:: latex 1452 1453 \small 1454 1455.. tabularcolumns:: |p{12cm}|p{5.5cm}| 1456 1457.. flat-table:: 1458 :header-rows: 0 1459 :stub-columns: 0 1460 1461 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD`` 1462 - Pixels are alternatively from L and R. 1463 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN`` 1464 - L and R are interlaced by column. 1465 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW`` 1466 - L and R are interlaced by row. 1467 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE`` 1468 - L is on the left, R on the right. 1469 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM`` 1470 - L is on top, R on bottom. 1471 * - ``V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL`` 1472 - One view per frame. 1473 1474.. raw:: latex 1475 1476 \normalsize 1477 1478 1479 1480``V4L2_CID_MPEG_VIDEO_H264_FMO (boolean)`` 1481 Enables flexible macroblock ordering in the encoded bitstream. It is 1482 a technique used for restructuring the ordering of macroblocks in 1483 pictures. Applicable to the H264 encoder. 1484 1485.. _v4l2-mpeg-video-h264-fmo-map-type: 1486 1487``V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE`` 1488 (enum) 1489 1490enum v4l2_mpeg_video_h264_fmo_map_type - 1491 When using FMO, the map type divides the image in different scan 1492 patterns of macroblocks. Applicable to the H264 encoder. Possible 1493 values are: 1494 1495.. raw:: latex 1496 1497 \small 1498 1499.. tabularcolumns:: |p{12.5cm}|p{5.0cm}| 1500 1501.. flat-table:: 1502 :header-rows: 0 1503 :stub-columns: 0 1504 1505 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES`` 1506 - Slices are interleaved one after other with macroblocks in run 1507 length order. 1508 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES`` 1509 - Scatters the macroblocks based on a mathematical function known to 1510 both encoder and decoder. 1511 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER`` 1512 - Macroblocks arranged in rectangular areas or regions of interest. 1513 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT`` 1514 - Slice groups grow in a cyclic way from centre to outwards. 1515 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN`` 1516 - Slice groups grow in raster scan pattern from left to right. 1517 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN`` 1518 - Slice groups grow in wipe scan pattern from top to bottom. 1519 * - ``V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT`` 1520 - User defined map type. 1521 1522.. raw:: latex 1523 1524 \normalsize 1525 1526 1527 1528``V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP (integer)`` 1529 Number of slice groups in FMO. Applicable to the H264 encoder. 1530 1531.. _v4l2-mpeg-video-h264-fmo-change-direction: 1532 1533``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION`` 1534 (enum) 1535 1536enum v4l2_mpeg_video_h264_fmo_change_dir - 1537 Specifies a direction of the slice group change for raster and wipe 1538 maps. Applicable to the H264 encoder. Possible values are: 1539 1540.. tabularcolumns:: |p{9.6cm}|p{7.9cm}| 1541 1542.. flat-table:: 1543 :header-rows: 0 1544 :stub-columns: 0 1545 1546 * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT`` 1547 - Raster scan or wipe right. 1548 * - ``V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT`` 1549 - Reverse raster scan or wipe left. 1550 1551 1552 1553``V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE (integer)`` 1554 Specifies the size of the first slice group for raster and wipe map. 1555 Applicable to the H264 encoder. 1556 1557``V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH (integer)`` 1558 Specifies the number of consecutive macroblocks for the interleaved 1559 map. Applicable to the H264 encoder. 1560 1561``V4L2_CID_MPEG_VIDEO_H264_ASO (boolean)`` 1562 Enables arbitrary slice ordering in encoded bitstream. Applicable to 1563 the H264 encoder. 1564 1565``V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER (integer)`` 1566 Specifies the slice order in ASO. Applicable to the H264 encoder. 1567 The supplied 32-bit integer is interpreted as follows (bit 0 = least 1568 significant bit): 1569 1570 1571 1572.. flat-table:: 1573 :header-rows: 0 1574 :stub-columns: 0 1575 1576 * - Bit 0:15 1577 - Slice ID 1578 * - Bit 16:32 1579 - Slice position or order 1580 1581 1582 1583``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING (boolean)`` 1584 Enables H264 hierarchical coding. Applicable to the H264 encoder. 1585 1586.. _v4l2-mpeg-video-h264-hierarchical-coding-type: 1587 1588``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE`` 1589 (enum) 1590 1591enum v4l2_mpeg_video_h264_hierarchical_coding_type - 1592 Specifies the hierarchical coding type. Applicable to the H264 1593 encoder. Possible values are: 1594 1595 1596 1597.. flat-table:: 1598 :header-rows: 0 1599 :stub-columns: 0 1600 1601 * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B`` 1602 - Hierarchical B coding. 1603 * - ``V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P`` 1604 - Hierarchical P coding. 1605 1606 1607 1608``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (integer)`` 1609 Specifies the number of hierarchical coding layers. Applicable to 1610 the H264 encoder. 1611 1612``V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (integer)`` 1613 Specifies a user defined QP for each layer. Applicable to the H264 1614 encoder. The supplied 32-bit integer is interpreted as follows (bit 1615 0 = least significant bit): 1616 1617 1618 1619.. flat-table:: 1620 :header-rows: 0 1621 :stub-columns: 0 1622 1623 * - Bit 0:15 1624 - QP value 1625 * - Bit 16:32 1626 - Layer number 1627 1628``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L0_BR (integer)`` 1629 Indicates bit rate (bps) for hierarchical coding layer 0 for H264 encoder. 1630 1631``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L1_BR (integer)`` 1632 Indicates bit rate (bps) for hierarchical coding layer 1 for H264 encoder. 1633 1634``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L2_BR (integer)`` 1635 Indicates bit rate (bps) for hierarchical coding layer 2 for H264 encoder. 1636 1637``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L3_BR (integer)`` 1638 Indicates bit rate (bps) for hierarchical coding layer 3 for H264 encoder. 1639 1640``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L4_BR (integer)`` 1641 Indicates bit rate (bps) for hierarchical coding layer 4 for H264 encoder. 1642 1643``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L5_BR (integer)`` 1644 Indicates bit rate (bps) for hierarchical coding layer 5 for H264 encoder. 1645 1646``V4L2_CID_MPEG_VIDEO_H264_HIER_CODING_L6_BR (integer)`` 1647 Indicates bit rate (bps) for hierarchical coding layer 6 for H264 encoder. 1648 1649``V4L2_CID_FWHT_I_FRAME_QP (integer)`` 1650 Quantization parameter for an I frame for FWHT. Valid range: from 1 1651 to 31. 1652 1653``V4L2_CID_FWHT_P_FRAME_QP (integer)`` 1654 Quantization parameter for a P frame for FWHT. Valid range: from 1 1655 to 31. 1656 1657``V4L2_CID_MPEG_VIDEO_AVERAGE_QP (integer)`` 1658 This read-only control returns the average QP value of the currently 1659 encoded frame. The value applies to the last dequeued capture buffer 1660 (VIDIOC_DQBUF). Its valid range depends on the encoding format and parameters. 1661 For H264, its valid range is from 0 to 51. 1662 For HEVC, its valid range is from 0 to 51 for 8 bit and 1663 from 0 to 63 for 10 bit. 1664 For H263 and MPEG4, its valid range is from 1 to 31. 1665 For VP8, its valid range is from 0 to 127. 1666 For VP9, its valid range is from 0 to 255. 1667 If the codec's MIN_QP and MAX_QP are set, then the QP will meet both requirements. 1668 Codecs need to always use the specified range, rather then a HW custom range. 1669 Applicable to encoders 1670 1671.. raw:: latex 1672 1673 \normalsize 1674 1675 1676MFC 5.1 MPEG Controls 1677===================== 1678 1679The following MPEG class controls deal with MPEG decoding and encoding 1680settings that are specific to the Multi Format Codec 5.1 device present 1681in the S5P family of SoCs by Samsung. 1682 1683 1684.. _mfc51-control-id: 1685 1686MFC 5.1 Control IDs 1687------------------- 1688 1689``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY_ENABLE (boolean)`` 1690 If the display delay is enabled then the decoder is forced to return 1691 a CAPTURE buffer (decoded frame) after processing a certain number 1692 of OUTPUT buffers. The delay can be set through 1693 ``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY``. This 1694 feature can be used for example for generating thumbnails of videos. 1695 Applicable to the H264 decoder. 1696 1697 .. note:: 1698 1699 This control is deprecated. Use the standard 1700 ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE`` control instead. 1701 1702``V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY (integer)`` 1703 Display delay value for H264 decoder. The decoder is forced to 1704 return a decoded frame after the set 'display delay' number of 1705 frames. If this number is low it may result in frames returned out 1706 of display order, in addition the hardware may still be using the 1707 returned buffer as a reference picture for subsequent frames. 1708 1709 .. note:: 1710 1711 This control is deprecated. Use the standard 1712 ``V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY`` control instead. 1713 1714``V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (integer)`` 1715 The number of reference pictures used for encoding a P picture. 1716 Applicable to the H264 encoder. 1717 1718``V4L2_CID_MPEG_MFC51_VIDEO_PADDING (boolean)`` 1719 Padding enable in the encoder - use a color instead of repeating 1720 border pixels. Applicable to encoders. 1721 1722``V4L2_CID_MPEG_MFC51_VIDEO_PADDING_YUV (integer)`` 1723 Padding color in the encoder. Applicable to encoders. The supplied 1724 32-bit integer is interpreted as follows (bit 0 = least significant 1725 bit): 1726 1727 1728 1729.. flat-table:: 1730 :header-rows: 0 1731 :stub-columns: 0 1732 1733 * - Bit 0:7 1734 - V chrominance information 1735 * - Bit 8:15 1736 - U chrominance information 1737 * - Bit 16:23 1738 - Y luminance information 1739 * - Bit 24:31 1740 - Must be zero. 1741 1742 1743 1744``V4L2_CID_MPEG_MFC51_VIDEO_RC_REACTION_COEFF (integer)`` 1745 Reaction coefficient for MFC rate control. Applicable to encoders. 1746 1747 .. note:: 1748 1749 #. Valid only when the frame level RC is enabled. 1750 1751 #. For tight CBR, this field must be small (ex. 2 ~ 10). For 1752 VBR, this field must be large (ex. 100 ~ 1000). 1753 1754 #. It is not recommended to use the greater number than 1755 FRAME_RATE * (10^9 / BIT_RATE). 1756 1757``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_DARK (boolean)`` 1758 Adaptive rate control for dark region. Valid only when H.264 and 1759 macroblock level RC is enabled 1760 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264 1761 encoder. 1762 1763``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_SMOOTH (boolean)`` 1764 Adaptive rate control for smooth region. Valid only when H.264 and 1765 macroblock level RC is enabled 1766 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264 1767 encoder. 1768 1769``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (boolean)`` 1770 Adaptive rate control for static region. Valid only when H.264 and 1771 macroblock level RC is enabled 1772 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264 1773 encoder. 1774 1775``V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_ACTIVITY (boolean)`` 1776 Adaptive rate control for activity region. Valid only when H.264 and 1777 macroblock level RC is enabled 1778 (``V4L2_CID_MPEG_VIDEO_MB_RC_ENABLE``). Applicable to the H264 1779 encoder. 1780 1781.. _v4l2-mpeg-mfc51-video-frame-skip-mode: 1782 1783``V4L2_CID_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE`` 1784 (enum) 1785 1786 .. note:: 1787 1788 This control is deprecated. Use the standard 1789 ``V4L2_CID_MPEG_VIDEO_FRAME_SKIP_MODE`` control instead. 1790 1791enum v4l2_mpeg_mfc51_video_frame_skip_mode - 1792 Indicates in what conditions the encoder should skip frames. If 1793 encoding a frame would cause the encoded stream to be larger then a 1794 chosen data limit then the frame will be skipped. Possible values 1795 are: 1796 1797 1798.. tabularcolumns:: |p{9.4cm}|p{8.1cm}| 1799 1800.. raw:: latex 1801 1802 \small 1803 1804.. flat-table:: 1805 :header-rows: 0 1806 :stub-columns: 0 1807 1808 * - ``V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_DISABLED`` 1809 - Frame skip mode is disabled. 1810 * - ``V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_LEVEL_LIMIT`` 1811 - Frame skip mode enabled and buffer limit is set by the chosen 1812 level and is defined by the standard. 1813 * - ``V4L2_MPEG_MFC51_VIDEO_FRAME_SKIP_MODE_BUF_LIMIT`` 1814 - Frame skip mode enabled and buffer limit is set by the VBV 1815 (MPEG1/2/4) or CPB (H264) buffer size control. 1816 1817.. raw:: latex 1818 1819 \normalsize 1820 1821``V4L2_CID_MPEG_MFC51_VIDEO_RC_FIXED_TARGET_BIT (integer)`` 1822 Enable rate-control with fixed target bit. If this setting is 1823 enabled, then the rate control logic of the encoder will calculate 1824 the average bitrate for a GOP and keep it below or equal the set 1825 bitrate target. Otherwise the rate control logic calculates the 1826 overall average bitrate for the stream and keeps it below or equal 1827 to the set bitrate. In the first case the average bitrate for the 1828 whole stream will be smaller then the set bitrate. This is caused 1829 because the average is calculated for smaller number of frames, on 1830 the other hand enabling this setting will ensure that the stream 1831 will meet tight bandwidth constraints. Applicable to encoders. 1832 1833.. _v4l2-mpeg-mfc51-video-force-frame-type: 1834 1835``V4L2_CID_MPEG_MFC51_VIDEO_FORCE_FRAME_TYPE`` 1836 (enum) 1837 1838enum v4l2_mpeg_mfc51_video_force_frame_type - 1839 Force a frame type for the next queued buffer. Applicable to 1840 encoders. Possible values are: 1841 1842.. tabularcolumns:: |p{9.9cm}|p{7.6cm}| 1843 1844.. flat-table:: 1845 :header-rows: 0 1846 :stub-columns: 0 1847 1848 * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_DISABLED`` 1849 - Forcing a specific frame type disabled. 1850 * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_I_FRAME`` 1851 - Force an I-frame. 1852 * - ``V4L2_MPEG_MFC51_FORCE_FRAME_TYPE_NOT_CODED`` 1853 - Force a non-coded frame. 1854 1855 1856CX2341x MPEG Controls 1857===================== 1858 1859The following MPEG class controls deal with MPEG encoding settings that 1860are specific to the Conexant CX23415 and CX23416 MPEG encoding chips. 1861 1862 1863.. _cx2341x-control-id: 1864 1865CX2341x Control IDs 1866------------------- 1867 1868.. _v4l2-mpeg-cx2341x-video-spatial-filter-mode: 1869 1870``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE`` 1871 (enum) 1872 1873enum v4l2_mpeg_cx2341x_video_spatial_filter_mode - 1874 Sets the Spatial Filter mode (default ``MANUAL``). Possible values 1875 are: 1876 1877 1878.. tabularcolumns:: |p{11.5cm}|p{6.0cm}| 1879 1880.. flat-table:: 1881 :header-rows: 0 1882 :stub-columns: 0 1883 1884 * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL`` 1885 - Choose the filter manually 1886 * - ``V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO`` 1887 - Choose the filter automatically 1888 1889 1890 1891``V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (integer (0-15))`` 1892 The setting for the Spatial Filter. 0 = off, 15 = maximum. (Default 1893 is 0.) 1894 1895.. _luma-spatial-filter-type: 1896 1897``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE`` 1898 (enum) 1899 1900enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type - 1901 Select the algorithm to use for the Luma Spatial Filter (default 1902 ``1D_HOR``). Possible values: 1903 1904.. tabularcolumns:: |p{13.1cm}|p{4.4cm}| 1905 1906.. raw:: latex 1907 1908 \footnotesize 1909 1910.. flat-table:: 1911 :header-rows: 0 1912 :stub-columns: 0 1913 1914 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF`` 1915 - No filter 1916 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR`` 1917 - One-dimensional horizontal 1918 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_VERT`` 1919 - One-dimensional vertical 1920 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE`` 1921 - Two-dimensional separable 1922 * - ``V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE`` 1923 - Two-dimensional symmetrical non-separable 1924 1925.. raw:: latex 1926 1927 \normalsize 1928 1929.. _chroma-spatial-filter-type: 1930 1931``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE`` 1932 (enum) 1933 1934enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type - 1935 Select the algorithm for the Chroma Spatial Filter (default 1936 ``1D_HOR``). Possible values are: 1937 1938.. raw:: latex 1939 1940 \footnotesize 1941 1942.. tabularcolumns:: |p{11.0cm}|p{6.5cm}| 1943 1944.. flat-table:: 1945 :header-rows: 0 1946 :stub-columns: 0 1947 1948 * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF`` 1949 - No filter 1950 * - ``V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR`` 1951 - One-dimensional horizontal 1952 1953.. raw:: latex 1954 1955 \normalsize 1956 1957.. _v4l2-mpeg-cx2341x-video-temporal-filter-mode: 1958 1959``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE`` 1960 (enum) 1961 1962enum v4l2_mpeg_cx2341x_video_temporal_filter_mode - 1963 Sets the Temporal Filter mode (default ``MANUAL``). Possible values 1964 are: 1965 1966.. raw:: latex 1967 1968 \footnotesize 1969 1970.. flat-table:: 1971 :header-rows: 0 1972 :stub-columns: 0 1973 1974 * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL`` 1975 - Choose the filter manually 1976 * - ``V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO`` 1977 - Choose the filter automatically 1978 1979.. raw:: latex 1980 1981 \normalsize 1982 1983``V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (integer (0-31))`` 1984 The setting for the Temporal Filter. 0 = off, 31 = maximum. (Default 1985 is 8 for full-scale capturing and 0 for scaled capturing.) 1986 1987.. _v4l2-mpeg-cx2341x-video-median-filter-type: 1988 1989``V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE`` 1990 (enum) 1991 1992enum v4l2_mpeg_cx2341x_video_median_filter_type - 1993 Median Filter Type (default ``OFF``). Possible values are: 1994 1995 1996.. raw:: latex 1997 1998 \small 1999 2000.. tabularcolumns:: |p{11.0cm}|p{6.5cm}| 2001 2002.. flat-table:: 2003 :header-rows: 0 2004 :stub-columns: 0 2005 2006 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF`` 2007 - No filter 2008 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR`` 2009 - Horizontal filter 2010 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_VERT`` 2011 - Vertical filter 2012 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT`` 2013 - Horizontal and vertical filter 2014 * - ``V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG`` 2015 - Diagonal filter 2016 2017.. raw:: latex 2018 2019 \normalsize 2020 2021``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (integer (0-255))`` 2022 Threshold above which the luminance median filter is enabled 2023 (default 0) 2024 2025``V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (integer (0-255))`` 2026 Threshold below which the luminance median filter is enabled 2027 (default 255) 2028 2029``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (integer (0-255))`` 2030 Threshold above which the chroma median filter is enabled (default 2031 0) 2032 2033``V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (integer (0-255))`` 2034 Threshold below which the chroma median filter is enabled (default 2035 255) 2036 2037``V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (boolean)`` 2038 The CX2341X MPEG encoder can insert one empty MPEG-2 PES packet into 2039 the stream between every four video frames. The packet size is 2048 2040 bytes, including the packet_start_code_prefix and stream_id 2041 fields. The stream_id is 0xBF (private stream 2). The payload 2042 consists of 0x00 bytes, to be filled in by the application. 0 = do 2043 not insert, 1 = insert packets. 2044 2045 2046VPX Control Reference 2047===================== 2048 2049The VPX controls include controls for encoding parameters of VPx video 2050codec. 2051 2052 2053.. _vpx-control-id: 2054 2055VPX Control IDs 2056--------------- 2057 2058.. _v4l2-vpx-num-partitions: 2059 2060``V4L2_CID_MPEG_VIDEO_VPX_NUM_PARTITIONS`` 2061 (enum) 2062 2063enum v4l2_vp8_num_partitions - 2064 The number of token partitions to use in VP8 encoder. Possible 2065 values are: 2066 2067 2068 2069.. flat-table:: 2070 :header-rows: 0 2071 :stub-columns: 0 2072 2073 * - ``V4L2_CID_MPEG_VIDEO_VPX_1_PARTITION`` 2074 - 1 coefficient partition 2075 * - ``V4L2_CID_MPEG_VIDEO_VPX_2_PARTITIONS`` 2076 - 2 coefficient partitions 2077 * - ``V4L2_CID_MPEG_VIDEO_VPX_4_PARTITIONS`` 2078 - 4 coefficient partitions 2079 * - ``V4L2_CID_MPEG_VIDEO_VPX_8_PARTITIONS`` 2080 - 8 coefficient partitions 2081 2082 2083 2084``V4L2_CID_MPEG_VIDEO_VPX_IMD_DISABLE_4X4 (boolean)`` 2085 Setting this prevents intra 4x4 mode in the intra mode decision. 2086 2087.. _v4l2-vpx-num-ref-frames: 2088 2089``V4L2_CID_MPEG_VIDEO_VPX_NUM_REF_FRAMES`` 2090 (enum) 2091 2092enum v4l2_vp8_num_ref_frames - 2093 The number of reference pictures for encoding P frames. Possible 2094 values are: 2095 2096.. tabularcolumns:: |p{7.5cm}|p{7.5cm}| 2097 2098.. raw:: latex 2099 2100 \small 2101 2102.. flat-table:: 2103 :header-rows: 0 2104 :stub-columns: 0 2105 2106 * - ``V4L2_CID_MPEG_VIDEO_VPX_1_REF_FRAME`` 2107 - Last encoded frame will be searched 2108 * - ``V4L2_CID_MPEG_VIDEO_VPX_2_REF_FRAME`` 2109 - Two frames will be searched among the last encoded frame, the 2110 golden frame and the alternate reference (altref) frame. The 2111 encoder implementation will decide which two are chosen. 2112 * - ``V4L2_CID_MPEG_VIDEO_VPX_3_REF_FRAME`` 2113 - The last encoded frame, the golden frame and the altref frame will 2114 be searched. 2115 2116.. raw:: latex 2117 2118 \normalsize 2119 2120 2121 2122``V4L2_CID_MPEG_VIDEO_VPX_FILTER_LEVEL (integer)`` 2123 Indicates the loop filter level. The adjustment of the loop filter 2124 level is done via a delta value against a baseline loop filter 2125 value. 2126 2127``V4L2_CID_MPEG_VIDEO_VPX_FILTER_SHARPNESS (integer)`` 2128 This parameter affects the loop filter. Anything above zero weakens 2129 the deblocking effect on the loop filter. 2130 2131``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD (integer)`` 2132 Sets the refresh period for the golden frame. The period is defined 2133 in number of frames. For a value of 'n', every nth frame starting 2134 from the first key frame will be taken as a golden frame. For eg. 2135 for encoding sequence of 0, 1, 2, 3, 4, 5, 6, 7 where the golden 2136 frame refresh period is set as 4, the frames 0, 4, 8 etc will be 2137 taken as the golden frames as frame 0 is always a key frame. 2138 2139.. _v4l2-vpx-golden-frame-sel: 2140 2141``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL`` 2142 (enum) 2143 2144enum v4l2_vp8_golden_frame_sel - 2145 Selects the golden frame for encoding. Possible values are: 2146 2147.. raw:: latex 2148 2149 \scriptsize 2150 2151.. tabularcolumns:: |p{8.6cm}|p{8.9cm}| 2152 2153.. flat-table:: 2154 :header-rows: 0 2155 :stub-columns: 0 2156 2157 * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_PREV`` 2158 - Use the (n-2)th frame as a golden frame, current frame index being 2159 'n'. 2160 * - ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_USE_REF_PERIOD`` 2161 - Use the previous specific frame indicated by 2162 ``V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_REF_PERIOD`` as a 2163 golden frame. 2164 2165.. raw:: latex 2166 2167 \normalsize 2168 2169 2170``V4L2_CID_MPEG_VIDEO_VPX_MIN_QP (integer)`` 2171 Minimum quantization parameter for VP8. 2172 2173``V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (integer)`` 2174 Maximum quantization parameter for VP8. 2175 2176``V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (integer)`` 2177 Quantization parameter for an I frame for VP8. 2178 2179``V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (integer)`` 2180 Quantization parameter for a P frame for VP8. 2181 2182.. _v4l2-mpeg-video-vp8-profile: 2183 2184``V4L2_CID_MPEG_VIDEO_VP8_PROFILE`` 2185 (enum) 2186 2187enum v4l2_mpeg_video_vp8_profile - 2188 This control allows selecting the profile for VP8 encoder. 2189 This is also used to enumerate supported profiles by VP8 encoder or decoder. 2190 Possible values are: 2191 2192.. flat-table:: 2193 :header-rows: 0 2194 :stub-columns: 0 2195 2196 * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_0`` 2197 - Profile 0 2198 * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_1`` 2199 - Profile 1 2200 * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_2`` 2201 - Profile 2 2202 * - ``V4L2_MPEG_VIDEO_VP8_PROFILE_3`` 2203 - Profile 3 2204 2205.. _v4l2-mpeg-video-vp9-profile: 2206 2207``V4L2_CID_MPEG_VIDEO_VP9_PROFILE`` 2208 (enum) 2209 2210enum v4l2_mpeg_video_vp9_profile - 2211 This control allows selecting the profile for VP9 encoder. 2212 This is also used to enumerate supported profiles by VP9 encoder or decoder. 2213 Possible values are: 2214 2215.. flat-table:: 2216 :header-rows: 0 2217 :stub-columns: 0 2218 2219 * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_0`` 2220 - Profile 0 2221 * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_1`` 2222 - Profile 1 2223 * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_2`` 2224 - Profile 2 2225 * - ``V4L2_MPEG_VIDEO_VP9_PROFILE_3`` 2226 - Profile 3 2227 2228.. _v4l2-mpeg-video-vp9-level: 2229 2230``V4L2_CID_MPEG_VIDEO_VP9_LEVEL (enum)`` 2231 2232enum v4l2_mpeg_video_vp9_level - 2233 This control allows selecting the level for VP9 encoder. 2234 This is also used to enumerate supported levels by VP9 encoder or decoder. 2235 More information can be found at 2236 `webmproject <https://www.webmproject.org/vp9/levels/>`__. Possible values are: 2237 2238.. flat-table:: 2239 :header-rows: 0 2240 :stub-columns: 0 2241 2242 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_1_0`` 2243 - Level 1 2244 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_1_1`` 2245 - Level 1.1 2246 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_2_0`` 2247 - Level 2 2248 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_2_1`` 2249 - Level 2.1 2250 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_3_0`` 2251 - Level 3 2252 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_3_1`` 2253 - Level 3.1 2254 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_4_0`` 2255 - Level 4 2256 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_4_1`` 2257 - Level 4.1 2258 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_0`` 2259 - Level 5 2260 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_1`` 2261 - Level 5.1 2262 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_5_2`` 2263 - Level 5.2 2264 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_0`` 2265 - Level 6 2266 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_1`` 2267 - Level 6.1 2268 * - ``V4L2_MPEG_VIDEO_VP9_LEVEL_6_2`` 2269 - Level 6.2 2270 2271 2272High Efficiency Video Coding (HEVC/H.265) Control Reference 2273=========================================================== 2274 2275The HEVC/H.265 controls include controls for encoding parameters of HEVC/H.265 2276video codec. 2277 2278 2279.. _hevc-control-id: 2280 2281HEVC/H.265 Control IDs 2282---------------------- 2283 2284``V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (integer)`` 2285 Minimum quantization parameter for HEVC. 2286 Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 2287 2288``V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (integer)`` 2289 Maximum quantization parameter for HEVC. 2290 Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 2291 2292``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (integer)`` 2293 Quantization parameter for an I frame for HEVC. 2294 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 2295 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 2296 2297``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (integer)`` 2298 Quantization parameter for a P frame for HEVC. 2299 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 2300 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 2301 2302``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (integer)`` 2303 Quantization parameter for a B frame for HEVC. 2304 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 2305 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 2306 2307``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MIN_QP (integer)`` 2308 Minimum quantization parameter for the HEVC I frame to limit I frame 2309 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 2310 If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter 2311 should be chosen to meet both requirements. 2312 2313``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_MAX_QP (integer)`` 2314 Maximum quantization parameter for the HEVC I frame to limit I frame 2315 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 2316 If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter 2317 should be chosen to meet both requirements. 2318 2319``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MIN_QP (integer)`` 2320 Minimum quantization parameter for the HEVC P frame to limit P frame 2321 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 2322 If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter 2323 should be chosen to meet both requirements. 2324 2325``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (integer)`` 2326 Maximum quantization parameter for the HEVC P frame to limit P frame 2327 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 2328 If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter 2329 should be chosen to meet both requirements. 2330 2331``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (integer)`` 2332 Minimum quantization parameter for the HEVC B frame to limit B frame 2333 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 2334 If V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP is also set, the quantization parameter 2335 should be chosen to meet both requirements. 2336 2337``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (integer)`` 2338 Maximum quantization parameter for the HEVC B frame to limit B frame 2339 quality to a range. Valid range: from 0 to 51 for 8 bit and from 0 to 63 for 10 bit. 2340 If V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP is also set, the quantization parameter 2341 should be chosen to meet both requirements. 2342 2343``V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (boolean)`` 2344 HIERARCHICAL_QP allows the host to specify the quantization parameter 2345 values for each temporal layer through HIERARCHICAL_QP_LAYER. This is 2346 valid only if HIERARCHICAL_CODING_LAYER is greater than 1. Setting the 2347 control value to 1 enables setting of the QP values for the layers. 2348 2349.. _v4l2-hevc-hier-coding-type: 2350 2351``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE`` 2352 (enum) 2353 2354enum v4l2_mpeg_video_hevc_hier_coding_type - 2355 Selects the hierarchical coding type for encoding. Possible values are: 2356 2357.. raw:: latex 2358 2359 \footnotesize 2360 2361.. tabularcolumns:: |p{8.2cm}|p{9.3cm}| 2362 2363.. flat-table:: 2364 :header-rows: 0 2365 :stub-columns: 0 2366 2367 * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B`` 2368 - Use the B frame for hierarchical coding. 2369 * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P`` 2370 - Use the P frame for hierarchical coding. 2371 2372.. raw:: latex 2373 2374 \normalsize 2375 2376 2377``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (integer)`` 2378 Selects the hierarchical coding layer. In normal encoding 2379 (non-hierarchial coding), it should be zero. Possible values are [0, 6]. 2380 0 indicates HIERARCHICAL CODING LAYER 0, 1 indicates HIERARCHICAL CODING 2381 LAYER 1 and so on. 2382 2383``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (integer)`` 2384 Indicates quantization parameter for hierarchical coding layer 0. 2385 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 2386 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 2387 2388``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (integer)`` 2389 Indicates quantization parameter for hierarchical coding layer 1. 2390 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 2391 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 2392 2393``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (integer)`` 2394 Indicates quantization parameter for hierarchical coding layer 2. 2395 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 2396 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 2397 2398``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (integer)`` 2399 Indicates quantization parameter for hierarchical coding layer 3. 2400 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 2401 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 2402 2403``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (integer)`` 2404 Indicates quantization parameter for hierarchical coding layer 4. 2405 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 2406 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 2407 2408``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (integer)`` 2409 Indicates quantization parameter for hierarchical coding layer 5. 2410 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 2411 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 2412 2413``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (integer)`` 2414 Indicates quantization parameter for hierarchical coding layer 6. 2415 Valid range: [V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP, 2416 V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP]. 2417 2418.. _v4l2-hevc-profile: 2419 2420``V4L2_CID_MPEG_VIDEO_HEVC_PROFILE`` 2421 (enum) 2422 2423enum v4l2_mpeg_video_hevc_profile - 2424 Select the desired profile for HEVC encoder. 2425 2426.. raw:: latex 2427 2428 \footnotesize 2429 2430.. tabularcolumns:: |p{9.0cm}|p{8.5cm}| 2431 2432.. flat-table:: 2433 :header-rows: 0 2434 :stub-columns: 0 2435 2436 * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN`` 2437 - Main profile. 2438 * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE`` 2439 - Main still picture profile. 2440 * - ``V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10`` 2441 - Main 10 profile. 2442 2443.. raw:: latex 2444 2445 \normalsize 2446 2447 2448.. _v4l2-hevc-level: 2449 2450``V4L2_CID_MPEG_VIDEO_HEVC_LEVEL`` 2451 (enum) 2452 2453enum v4l2_mpeg_video_hevc_level - 2454 Selects the desired level for HEVC encoder. 2455 2456================================== ========= 2457``V4L2_MPEG_VIDEO_HEVC_LEVEL_1`` Level 1.0 2458``V4L2_MPEG_VIDEO_HEVC_LEVEL_2`` Level 2.0 2459``V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1`` Level 2.1 2460``V4L2_MPEG_VIDEO_HEVC_LEVEL_3`` Level 3.0 2461``V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1`` Level 3.1 2462``V4L2_MPEG_VIDEO_HEVC_LEVEL_4`` Level 4.0 2463``V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1`` Level 4.1 2464``V4L2_MPEG_VIDEO_HEVC_LEVEL_5`` Level 5.0 2465``V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1`` Level 5.1 2466``V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2`` Level 5.2 2467``V4L2_MPEG_VIDEO_HEVC_LEVEL_6`` Level 6.0 2468``V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1`` Level 6.1 2469``V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2`` Level 6.2 2470================================== ========= 2471 2472``V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (integer)`` 2473 Indicates the number of evenly spaced subintervals, called ticks, within 2474 one second. This is a 16 bit unsigned integer and has a maximum value up to 2475 0xffff and a minimum value of 1. 2476 2477.. _v4l2-hevc-tier: 2478 2479``V4L2_CID_MPEG_VIDEO_HEVC_TIER`` 2480 (enum) 2481 2482enum v4l2_mpeg_video_hevc_tier - 2483 TIER_FLAG specifies tiers information of the HEVC encoded picture. Tier 2484 were made to deal with applications that differ in terms of maximum bit 2485 rate. Setting the flag to 0 selects HEVC tier as Main tier and setting 2486 this flag to 1 indicates High tier. High tier is for applications requiring 2487 high bit rates. 2488 2489================================== ========== 2490``V4L2_MPEG_VIDEO_HEVC_TIER_MAIN`` Main tier. 2491``V4L2_MPEG_VIDEO_HEVC_TIER_HIGH`` High tier. 2492================================== ========== 2493 2494 2495``V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (integer)`` 2496 Selects HEVC maximum coding unit depth. 2497 2498.. _v4l2-hevc-loop-filter-mode: 2499 2500``V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE`` 2501 (enum) 2502 2503enum v4l2_mpeg_video_hevc_loop_filter_mode - 2504 Loop filter mode for HEVC encoder. Possible values are: 2505 2506.. raw:: latex 2507 2508 \footnotesize 2509 2510.. tabularcolumns:: |p{12.1cm}|p{5.4cm}| 2511 2512.. flat-table:: 2513 :header-rows: 0 2514 :stub-columns: 0 2515 2516 * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED`` 2517 - Loop filter is disabled. 2518 * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED`` 2519 - Loop filter is enabled. 2520 * - ``V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY`` 2521 - Loop filter is disabled at the slice boundary. 2522 2523.. raw:: latex 2524 2525 \normalsize 2526 2527 2528``V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (integer)`` 2529 Selects HEVC loop filter beta offset. The valid range is [-6, +6]. 2530 2531``V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (integer)`` 2532 Selects HEVC loop filter tc offset. The valid range is [-6, +6]. 2533 2534.. _v4l2-hevc-refresh-type: 2535 2536``V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE`` 2537 (enum) 2538 2539enum v4l2_mpeg_video_hevc_hier_refresh_type - 2540 Selects refresh type for HEVC encoder. 2541 Host has to specify the period into 2542 V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD. 2543 2544.. raw:: latex 2545 2546 \footnotesize 2547 2548.. tabularcolumns:: |p{6.2cm}|p{11.3cm}| 2549 2550.. flat-table:: 2551 :header-rows: 0 2552 :stub-columns: 0 2553 2554 * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE`` 2555 - Use the B frame for hierarchical coding. 2556 * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA`` 2557 - Use CRA (Clean Random Access Unit) picture encoding. 2558 * - ``V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR`` 2559 - Use IDR (Instantaneous Decoding Refresh) picture encoding. 2560 2561.. raw:: latex 2562 2563 \normalsize 2564 2565 2566``V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (integer)`` 2567 Selects the refresh period for HEVC encoder. 2568 This specifies the number of I pictures between two CRA/IDR pictures. 2569 This is valid only if REFRESH_TYPE is not 0. 2570 2571``V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (boolean)`` 2572 Indicates HEVC lossless encoding. Setting it to 0 disables lossless 2573 encoding. Setting it to 1 enables lossless encoding. 2574 2575``V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (boolean)`` 2576 Indicates constant intra prediction for HEVC encoder. Specifies the 2577 constrained intra prediction in which intra largest coding unit (LCU) 2578 prediction is performed by using residual data and decoded samples of 2579 neighboring intra LCU only. Setting the value to 1 enables constant intra 2580 prediction and setting the value to 0 disables constant intra prediction. 2581 2582``V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (boolean)`` 2583 Indicates wavefront parallel processing for HEVC encoder. Setting it to 0 2584 disables the feature and setting it to 1 enables the wavefront parallel 2585 processing. 2586 2587``V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (boolean)`` 2588 Setting the value to 1 enables combination of P and B frame for HEVC 2589 encoder. 2590 2591``V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (boolean)`` 2592 Indicates temporal identifier for HEVC encoder which is enabled by 2593 setting the value to 1. 2594 2595``V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (boolean)`` 2596 Indicates bi-linear interpolation is conditionally used in the intra 2597 prediction filtering process in the CVS when set to 1. Indicates bi-linear 2598 interpolation is not used in the CVS when set to 0. 2599 2600``V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (integer)`` 2601 Indicates maximum number of merge candidate motion vectors. 2602 Values are from 0 to 4. 2603 2604``V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (boolean)`` 2605 Indicates temporal motion vector prediction for HEVC encoder. Setting it to 2606 1 enables the prediction. Setting it to 0 disables the prediction. 2607 2608``V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (boolean)`` 2609 Specifies if HEVC generates a stream with a size of the length field 2610 instead of start code pattern. The size of the length field is configurable 2611 through the V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD control. Setting 2612 the value to 0 disables encoding without startcode pattern. Setting the 2613 value to 1 will enables encoding without startcode pattern. 2614 2615.. _v4l2-hevc-size-of-length-field: 2616 2617``V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD`` 2618(enum) 2619 2620enum v4l2_mpeg_video_hevc_size_of_length_field - 2621 Indicates the size of length field. 2622 This is valid when encoding WITHOUT_STARTCODE_ENABLE is enabled. 2623 2624.. raw:: latex 2625 2626 \footnotesize 2627 2628.. tabularcolumns:: |p{5.5cm}|p{12.0cm}| 2629 2630.. flat-table:: 2631 :header-rows: 0 2632 :stub-columns: 0 2633 2634 * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_0`` 2635 - Generate start code pattern (Normal). 2636 * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_1`` 2637 - Generate size of length field instead of start code pattern and length is 1. 2638 * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_2`` 2639 - Generate size of length field instead of start code pattern and length is 2. 2640 * - ``V4L2_MPEG_VIDEO_HEVC_SIZE_4`` 2641 - Generate size of length field instead of start code pattern and length is 4. 2642 2643.. raw:: latex 2644 2645 \normalsize 2646 2647``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (integer)`` 2648 Indicates bit rate for hierarchical coding layer 0 for HEVC encoder. 2649 2650``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (integer)`` 2651 Indicates bit rate for hierarchical coding layer 1 for HEVC encoder. 2652 2653``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (integer)`` 2654 Indicates bit rate for hierarchical coding layer 2 for HEVC encoder. 2655 2656``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (integer)`` 2657 Indicates bit rate for hierarchical coding layer 3 for HEVC encoder. 2658 2659``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (integer)`` 2660 Indicates bit rate for hierarchical coding layer 4 for HEVC encoder. 2661 2662``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (integer)`` 2663 Indicates bit rate for hierarchical coding layer 5 for HEVC encoder. 2664 2665``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (integer)`` 2666 Indicates bit rate for hierarchical coding layer 6 for HEVC encoder. 2667 2668``V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (integer)`` 2669 Selects number of P reference pictures required for HEVC encoder. 2670 P-Frame can use 1 or 2 frames for reference. 2671 2672``V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (integer)`` 2673 Indicates whether to generate SPS and PPS at every IDR. Setting it to 0 2674 disables generating SPS and PPS at every IDR. Setting it to one enables 2675 generating SPS and PPS at every IDR. 2676