Lines Matching +full:inter +full:- +full:data
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
3 .. _codec-stateless-controls:
18 .. _codec-stateless-control-id:
23 .. _v4l2-codec-stateless-h264:
27 bitstream) for the associated H264 slice data. This includes the
30 to :ref:`h264`, section 7.4.2.1.1 "Sequence Parameter Set Data
43 .. flat-table:: struct v4l2_ctrl_h264_sps
44 :header-rows: 0
45 :stub-columns: 0
48 * - __u8
49 - ``profile_idc``
50 -
51 * - __u8
52 - ``constraint_set_flags``
53 - See :ref:`Sequence Parameter Set Constraints Set Flags <h264_sps_constraints_set_flags>`
54 * - __u8
55 - ``level_idc``
56 -
57 * - __u8
58 - ``seq_parameter_set_id``
59 -
60 * - __u8
61 - ``chroma_format_idc``
62 -
63 * - __u8
64 - ``bit_depth_luma_minus8``
65 -
66 * - __u8
67 - ``bit_depth_chroma_minus8``
68 -
69 * - __u8
70 - ``log2_max_frame_num_minus4``
71 -
72 * - __u8
73 - ``pic_order_cnt_type``
74 -
75 * - __u8
76 - ``log2_max_pic_order_cnt_lsb_minus4``
77 -
78 * - __u8
79 - ``max_num_ref_frames``
80 -
81 * - __u8
82 - ``num_ref_frames_in_pic_order_cnt_cycle``
83 -
84 * - __s32
85 - ``offset_for_ref_frame[255]``
86 -
87 * - __s32
88 - ``offset_for_non_ref_pic``
89 -
90 * - __s32
91 - ``offset_for_top_to_bottom_field``
92 -
93 * - __u16
94 - ``pic_width_in_mbs_minus1``
95 -
96 * - __u16
97 - ``pic_height_in_map_units_minus1``
98 -
99 * - __u32
100 - ``flags``
101 - See :ref:`Sequence Parameter Set Flags <h264_sps_flags>`
113 .. flat-table::
114 :header-rows: 0
115 :stub-columns: 0
118 * - ``V4L2_H264_SPS_CONSTRAINT_SET0_FLAG``
119 - 0x00000001
120 -
121 * - ``V4L2_H264_SPS_CONSTRAINT_SET1_FLAG``
122 - 0x00000002
123 -
124 * - ``V4L2_H264_SPS_CONSTRAINT_SET2_FLAG``
125 - 0x00000004
126 -
127 * - ``V4L2_H264_SPS_CONSTRAINT_SET3_FLAG``
128 - 0x00000008
129 -
130 * - ``V4L2_H264_SPS_CONSTRAINT_SET4_FLAG``
131 - 0x00000010
132 -
133 * - ``V4L2_H264_SPS_CONSTRAINT_SET5_FLAG``
134 - 0x00000020
135 -
143 .. flat-table::
144 :header-rows: 0
145 :stub-columns: 0
148 * - ``V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE``
149 - 0x00000001
150 -
151 * - ``V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS``
152 - 0x00000002
153 -
154 * - ``V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO``
155 - 0x00000004
156 -
157 * - ``V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED``
158 - 0x00000008
159 -
160 * - ``V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY``
161 - 0x00000010
162 -
163 * - ``V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD``
164 - 0x00000020
165 -
166 * - ``V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE``
167 - 0x00000040
168 -
172 bitstream) for the associated H264 slice data. This includes the
186 .. flat-table:: struct v4l2_ctrl_h264_pps
187 :header-rows: 0
188 :stub-columns: 0
191 * - __u8
192 - ``pic_parameter_set_id``
193 -
194 * - __u8
195 - ``seq_parameter_set_id``
196 -
197 * - __u8
198 - ``num_slice_groups_minus1``
199 -
200 * - __u8
201 - ``num_ref_idx_l0_default_active_minus1``
202 -
203 * - __u8
204 - ``num_ref_idx_l1_default_active_minus1``
205 -
206 * - __u8
207 - ``weighted_bipred_idc``
208 -
209 * - __s8
210 - ``pic_init_qp_minus26``
211 -
212 * - __s8
213 - ``pic_init_qs_minus26``
214 -
215 * - __s8
216 - ``chroma_qp_index_offset``
217 -
218 * - __s8
219 - ``second_chroma_qp_index_offset``
220 -
221 * - __u16
222 - ``flags``
223 - See :ref:`Picture Parameter Set Flags <h264_pps_flags>`
241 .. flat-table::
242 :header-rows: 0
243 :stub-columns: 0
246 * - ``V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE``
247 - 0x0001
248 -
249 * - ``V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT``
250 - 0x0002
251 -
252 * - ``V4L2_H264_PPS_FLAG_WEIGHTED_PRED``
253 - 0x0004
254 -
255 * - ``V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT``
256 - 0x0008
257 -
258 * - ``V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED``
259 - 0x0010
260 -
261 * - ``V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT``
262 - 0x0020
263 -
264 * - ``V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE``
265 - 0x0040
266 -
267 * - ``V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT``
268 - 0x0080
269 - ``V4L2_CID_STATELESS_H264_SCALING_MATRIX``
278 the associated H264 slice data. The bitstream parameters are
292 .. flat-table:: struct v4l2_ctrl_h264_scaling_matrix
293 :header-rows: 0
294 :stub-columns: 0
297 * - __u8
298 - ``scaling_list_4x4[6][16]``
299 - Scaling matrix after applying the inverse scanning process.
300 Expected list order is Intra Y, Intra Cb, Intra Cr, Inter Y,
301 Inter Cb, Inter Cr. The values on each scaling list are
303 * - __u8
304 - ``scaling_list_8x8[6][64]``
305 - Scaling matrix after applying the inverse scanning process.
306 Expected list order is Intra Y, Inter Y, Intra Cb, Inter Cb,
307 Intra Cr, Inter Cr. The values on each scaling list are
312 for the associated H264 slice data. This includes the necessary
327 .. flat-table:: struct v4l2_ctrl_h264_slice_params
328 :header-rows: 0
329 :stub-columns: 0
332 * - __u32
333 - ``header_bit_size``
334 - Offset in bits to slice_data() from the beginning of this slice.
335 * - __u32
336 - ``first_mb_in_slice``
337 -
338 * - __u8
339 - ``slice_type``
340 -
341 * - __u8
342 - ``colour_plane_id``
343 -
344 * - __u8
345 - ``redundant_pic_cnt``
346 -
347 * - __u8
348 - ``cabac_init_idc``
349 -
350 * - __s8
351 - ``slice_qp_delta``
352 -
353 * - __s8
354 - ``slice_qs_delta``
355 -
356 * - __u8
357 - ``disable_deblocking_filter_idc``
358 -
359 * - __s8
360 - ``slice_alpha_c0_offset_div2``
361 -
362 * - __s8
363 - ``slice_beta_offset_div2``
364 -
365 * - __u8
366 - ``num_ref_idx_l0_active_minus1``
367 - If num_ref_idx_active_override_flag is not set, this field must be
369 * - __u8
370 - ``num_ref_idx_l1_active_minus1``
371 - If num_ref_idx_active_override_flag is not set, this field must be
373 * - __u8
374 - ``reserved``
375 - Applications and drivers must set this to zero.
376 * - struct :c:type:`v4l2_h264_reference`
377 - ``ref_pic_list0[32]``
378 - Reference picture list after applying the per-slice modifications
379 * - struct :c:type:`v4l2_h264_reference`
380 - ``ref_pic_list1[32]``
381 - Reference picture list after applying the per-slice modifications
382 * - __u32
383 - ``flags``
384 - See :ref:`Slice Parameter Flags <h264_slice_flags>`
396 .. flat-table::
397 :header-rows: 0
398 :stub-columns: 0
401 * - ``V4L2_H264_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED``
402 - 0x00000001
403 -
404 * - ``V4L2_H264_SLICE_FLAG_SP_FOR_SWITCH``
405 - 0x00000002
406 -
423 .. flat-table:: struct v4l2_ctrl_h264_pred_weights
424 :header-rows: 0
425 :stub-columns: 0
428 * - __u16
429 - ``luma_log2_weight_denom``
430 -
431 * - __u16
432 - ``chroma_log2_weight_denom``
433 -
434 * - struct :c:type:`v4l2_h264_weight_factors`
435 - ``weight_factors[2]``
436 - The weight factors at index 0 are the weight factors for the reference
451 .. flat-table:: struct v4l2_h264_weight_factors
452 :header-rows: 0
453 :stub-columns: 0
456 * - __s16
457 - ``luma_weight[32]``
458 -
459 * - __s16
460 - ``luma_offset[32]``
461 -
462 * - __s16
463 - ``chroma_weight[32][2]``
464 -
465 * - __s16
466 - ``chroma_offset[32][2]``
467 -
479 .. flat-table:: struct v4l2_h264_reference
480 :header-rows: 0
481 :stub-columns: 0
484 * - __u8
485 - ``fields``
486 - Specifies how the picture is referenced. See :ref:`Reference Fields <h264_ref_fields>`
487 * - __u8
488 - ``index``
489 - Index into the :c:type:`v4l2_ctrl_h264_decode_params`.dpb array.
501 .. flat-table::
502 :header-rows: 0
503 :stub-columns: 0
506 * - ``V4L2_H264_TOP_FIELD_REF``
507 - 0x1
508 - The top field in field pair is used for short-term reference.
509 * - ``V4L2_H264_BOTTOM_FIELD_REF``
510 - 0x2
511 - The bottom field in field pair is used for short-term reference.
512 * - ``V4L2_H264_FRAME_REF``
513 - 0x3
514 - The frame (or the top/bottom fields, if it's a field pair)
515 is used for short-term reference.
523 for the associated H264 slice data. This includes the necessary
538 .. flat-table:: struct v4l2_ctrl_h264_decode_params
539 :header-rows: 0
540 :stub-columns: 0
543 * - struct :c:type:`v4l2_h264_dpb_entry`
544 - ``dpb[16]``
545 -
546 * - __u16
547 - ``nal_ref_idc``
548 - NAL reference ID value coming from the NAL Unit header
549 * - __u16
550 - ``frame_num``
551 -
552 * - __s32
553 - ``top_field_order_cnt``
554 - Picture Order Count for the coded top field
555 * - __s32
556 - ``bottom_field_order_cnt``
557 - Picture Order Count for the coded bottom field
558 * - __u16
559 - ``idr_pic_id``
560 -
561 * - __u16
562 - ``pic_order_cnt_lsb``
563 -
564 * - __s32
565 - ``delta_pic_order_cnt_bottom``
566 -
567 * - __s32
568 - ``delta_pic_order_cnt0``
569 -
570 * - __s32
571 - ``delta_pic_order_cnt1``
572 -
573 * - __u32
574 - ``dec_ref_pic_marking_bit_size``
575 - Size in bits of the dec_ref_pic_marking() syntax element.
576 * - __u32
577 - ``pic_order_cnt_bit_size``
578 - Combined size in bits of the picture order count related syntax
581 * - __u32
582 - ``slice_group_change_cycle``
583 -
584 * - __u32
585 - ``reserved``
586 - Applications and drivers must set this to zero.
587 * - __u32
588 - ``flags``
589 - See :ref:`Decode Parameters Flags <h264_decode_params_flags>`
605 .. flat-table::
606 :header-rows: 0
607 :stub-columns: 0
610 * - ``V4L2_H264_DECODE_PARAM_FLAG_IDR_PIC``
611 - 0x00000001
612 - That picture is an IDR picture
613 * - ``V4L2_H264_DECODE_PARAM_FLAG_FIELD_PIC``
614 - 0x00000002
615 -
616 * - ``V4L2_H264_DECODE_PARAM_FLAG_BOTTOM_FIELD``
617 - 0x00000004
618 -
619 * - ``V4L2_H264_DECODE_PARAM_FLAG_PFRAME``
620 - 0x00000008
621 -
622 * - ``V4L2_H264_DECODE_PARAM_FLAG_BFRAME``
623 - 0x00000010
624 -
638 .. flat-table:: struct v4l2_h264_dpb_entry
639 :header-rows: 0
640 :stub-columns: 0
643 * - __u64
644 - ``reference_ts``
645 - Timestamp of the V4L2 capture buffer to use as reference, used
646 with B-coded and P-coded frames. The timestamp refers to the
650 * - __u32
651 - ``pic_num``
652 - For short term references, this must match the derived value PicNum
653 (8-28) and for long term references it must match the derived value
654 LongTermPicNum (8-29). When decoding frames (as opposed to fields)
656 * - __u16
657 - ``frame_num``
658 - For short term references, this must match the frame_num value from
662 * - __u8
663 - ``fields``
664 - Specifies how the DPB entry is referenced. See :ref:`Reference Fields <h264_ref_fields>`
665 * - __u8
666 - ``reserved[5]``
667 - Applications and drivers must set this to zero.
668 * - __s32
669 - ``top_field_order_cnt``
670 -
671 * - __s32
672 - ``bottom_field_order_cnt``
673 -
674 * - __u32
675 - ``flags``
676 - See :ref:`DPB Entry Flags <h264_dpb_flags>`
692 .. flat-table::
693 :header-rows: 0
694 :stub-columns: 0
697 * - ``V4L2_H264_DPB_ENTRY_FLAG_VALID``
698 - 0x00000001
699 - The DPB entry is valid (non-empty) and should be considered.
700 * - ``V4L2_H264_DPB_ENTRY_FLAG_ACTIVE``
701 - 0x00000002
702 - The DPB entry is used for reference.
703 * - ``V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM``
704 - 0x00000004
705 - The DPB entry is used for long-term reference.
706 * - ``V4L2_H264_DPB_ENTRY_FLAG_FIELD``
707 - 0x00000008
708 - The DPB entry is a single field or a complementary field pair.
715 Specifies the decoding mode to use. Currently exposes slice-based and
716 frame-based decoding but new modes might be added later on.
732 .. flat-table::
733 :header-rows: 0
734 :stub-columns: 0
737 * - ``V4L2_STATELESS_H264_DECODE_MODE_SLICE_BASED``
738 - 0
739 - Decoding is done at the slice granularity.
745 * - ``V4L2_STATELESS_H264_DECODE_MODE_FRAME_BASED``
746 - 1
747 - Decoding is done at the frame granularity,
776 .. flat-table::
777 :header-rows: 0
778 :stub-columns: 0
781 * - ``V4L2_STATELESS_H264_START_CODE_NONE``
782 - 0
783 - Selecting this value specifies that H264 slices are passed
784 to the driver without any start code. The bitstream data should be
787 * - ``V4L2_STATELESS_H264_START_CODE_ANNEX_B``
788 - 1
789 - Selecting this value specifies that H264 slices are expected
791 valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001.
797 .. _codec-stateless-fwht:
801 from the bitstream) for the associated FWHT data. This includes the necessary
813 .. flat-table:: struct v4l2_ctrl_fwht_params
814 :header-rows: 0
815 :stub-columns: 0
818 * - __u64
819 - ``backward_ref_ts``
820 - Timestamp of the V4L2 capture buffer to use as backward reference, used
821 with P-coded frames. The timestamp refers to the
825 * - __u32
826 - ``version``
827 - The version of the codec. Set to ``V4L2_FWHT_VERSION``.
828 * - __u32
829 - ``width``
830 - The width of the frame.
831 * - __u32
832 - ``height``
833 - The height of the frame.
834 * - __u32
835 - ``flags``
836 - The flags of the frame, see :ref:`fwht-flags`.
837 * - __u32
838 - ``colorspace``
839 - The colorspace of the frame, from enum :c:type:`v4l2_colorspace`.
840 * - __u32
841 - ``xfer_func``
842 - The transfer function, from enum :c:type:`v4l2_xfer_func`.
843 * - __u32
844 - ``ycbcr_enc``
845 - The Y'CbCr encoding, from enum :c:type:`v4l2_ycbcr_encoding`.
846 * - __u32
847 - ``quantization``
848 - The quantization range, from enum :c:type:`v4l2_quantization`.
854 .. _fwht-flags:
865 .. flat-table::
866 :header-rows: 0
867 :stub-columns: 0
870 * - ``V4L2_FWHT_FL_IS_INTERLACED``
871 - 0x00000001
872 - Set if this is an interlaced format.
873 * - ``V4L2_FWHT_FL_IS_BOTTOM_FIRST``
874 - 0x00000002
875 - Set if this is a bottom-first (NTSC) interlaced format.
876 * - ``V4L2_FWHT_FL_IS_ALTERNATE``
877 - 0x00000004
878 - Set if each 'frame' contains just one field.
879 * - ``V4L2_FWHT_FL_IS_BOTTOM_FIELD``
880 - 0x00000008
881 - If V4L2_FWHT_FL_IS_ALTERNATE was set, then this is set if this 'frame' is the
883 * - ``V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED``
884 - 0x00000010
885 - Set if the Y' (luma) plane is uncompressed.
886 * - ``V4L2_FWHT_FL_CB_IS_UNCOMPRESSED``
887 - 0x00000020
888 - Set if the Cb plane is uncompressed.
889 * - ``V4L2_FWHT_FL_CR_IS_UNCOMPRESSED``
890 - 0x00000040
891 - Set if the Cr plane is uncompressed.
892 * - ``V4L2_FWHT_FL_CHROMA_FULL_HEIGHT``
893 - 0x00000080
894 - Set if the chroma plane has the same height as the luma plane,
896 * - ``V4L2_FWHT_FL_CHROMA_FULL_WIDTH``
897 - 0x00000100
898 - Set if the chroma plane has the same width as the luma plane,
900 * - ``V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED``
901 - 0x00000200
902 - Set if the alpha plane is uncompressed.
903 * - ``V4L2_FWHT_FL_I_FRAME``
904 - 0x00000400
905 - Set if this is an I-frame.
906 * - ``V4L2_FWHT_FL_COMPONENTS_NUM_MSK``
907 - 0x00070000
908 - The number of color components minus one.
909 * - ``V4L2_FWHT_FL_PIXENC_MSK``
910 - 0x00180000
911 - The mask for the pixel encoding.
912 * - ``V4L2_FWHT_FL_PIXENC_YUV``
913 - 0x00080000
914 - Set if the pixel encoding is YUV.
915 * - ``V4L2_FWHT_FL_PIXENC_RGB``
916 - 0x00100000
917 - Set if the pixel encoding is RGB.
918 * - ``V4L2_FWHT_FL_PIXENC_HSV``
919 - 0x00180000
920 - Set if the pixel encoding is HSV.
926 .. _v4l2-codec-stateless-vp8:
929 Specifies the frame parameters for the associated VP8 parsed frame data.
944 .. flat-table:: struct v4l2_ctrl_vp8_frame
945 :header-rows: 0
946 :stub-columns: 0
949 * - struct :c:type:`v4l2_vp8_segment`
950 - ``segment``
951 - Structure with segment-based adjustments metadata.
952 * - struct :c:type:`v4l2_vp8_loop_filter`
953 - ``lf``
954 - Structure with loop filter level adjustments metadata.
955 * - struct :c:type:`v4l2_vp8_quantization`
956 - ``quant``
957 - Structure with VP8 dequantization indices metadata.
958 * - struct :c:type:`v4l2_vp8_entropy`
959 - ``entropy``
960 - Structure with VP8 entropy coder probabilities metadata.
961 * - struct :c:type:`v4l2_vp8_entropy_coder_state`
962 - ``coder_state``
963 - Structure with VP8 entropy coder state.
964 * - __u16
965 - ``width``
966 - The width of the frame. Must be set for all frames.
967 * - __u16
968 - ``height``
969 - The height of the frame. Must be set for all frames.
970 * - __u8
971 - ``horizontal_scale``
972 - Horizontal scaling factor.
973 * - __u8
974 - ``vertical_scaling factor``
975 - Vertical scale.
976 * - __u8
977 - ``version``
978 - Bitstream version.
979 * - __u8
980 - ``prob_skip_false``
981 - Indicates the probability that the macroblock is not skipped.
982 * - __u8
983 - ``prob_intra``
984 - Indicates the probability that a macroblock is intra-predicted.
985 * - __u8
986 - ``prob_last``
987 - Indicates the probability that the last reference frame is used
988 for inter-prediction
989 * - __u8
990 - ``prob_gf``
991 - Indicates the probability that the golden reference frame is used
992 for inter-prediction
993 * - __u8
994 - ``num_dct_parts``
995 - Number of DCT coefficients partitions. Must be one of: 1, 2, 4, or 8.
996 * - __u32
997 - ``first_part_size``
998 - Size of the first partition, i.e. the control partition.
999 * - __u32
1000 - ``first_part_header_bits``
1001 - Size in bits of the first partition header portion.
1002 * - __u32
1003 - ``dct_part_sizes[8]``
1004 - DCT coefficients sizes.
1005 * - __u64
1006 - ``last_frame_ts``
1007 - Timestamp for the V4L2 capture buffer to use as last reference frame, used
1008 with inter-coded frames. The timestamp refers to the ``timestamp`` field in
1012 * - __u64
1013 - ``golden_frame_ts``
1014 - Timestamp for the V4L2 capture buffer to use as last reference frame, used
1015 with inter-coded frames. The timestamp refers to the ``timestamp`` field in
1019 * - __u64
1020 - ``alt_frame_ts``
1021 - Timestamp for the V4L2 capture buffer to use as alternate reference frame, used
1022 with inter-coded frames. The timestamp refers to the ``timestamp`` field in
1026 * - __u64
1027 - ``flags``
1028 - See :ref:`Frame Flags <vp8_frame_flags>`
1042 .. flat-table::
1043 :header-rows: 0
1044 :stub-columns: 0
1047 * - ``V4L2_VP8_FRAME_FLAG_KEY_FRAME``
1048 - 0x01
1049 - Indicates if the frame is a key frame.
1050 * - ``V4L2_VP8_FRAME_FLAG_EXPERIMENTAL``
1051 - 0x02
1052 - Experimental bitstream.
1053 * - ``V4L2_VP8_FRAME_FLAG_SHOW_FRAME``
1054 - 0x04
1055 - Show frame flag, indicates if the frame is for display.
1056 * - ``V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF``
1057 - 0x08
1058 - Enable/disable skipping of macroblocks with no non-zero coefficients.
1059 * - ``V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN``
1060 - 0x10
1061 - Sign of motion vectors when the golden frame is referenced.
1062 * - ``V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT``
1063 - 0x20
1064 - Sign of motion vectors when the alt frame is referenced.
1072 .. flat-table:: struct v4l2_vp8_entropy_coder_state
1073 :header-rows: 0
1074 :stub-columns: 0
1077 * - __u8
1078 - ``range``
1079 - coder state value for "Range"
1080 * - __u8
1081 - ``value``
1082 - coder state value for "Value"-
1083 * - __u8
1084 - ``bit_count``
1085 - number of bits left.
1086 * - __u8
1087 - ``padding``
1088 - Applications and drivers must set this to zero.
1096 .. flat-table:: struct v4l2_vp8_segment
1097 :header-rows: 0
1098 :stub-columns: 0
1101 * - __s8
1102 - ``quant_update[4]``
1103 - Signed quantizer value update.
1104 * - __s8
1105 - ``lf_update[4]``
1106 - Signed loop filter level value update.
1107 * - __u8
1108 - ``segment_probs[3]``
1109 - Segment probabilities.
1110 * - __u8
1111 - ``padding``
1112 - Applications and drivers must set this to zero.
1113 * - __u32
1114 - ``flags``
1115 - See :ref:`Segment Flags <vp8_segment_flags>`
1127 .. flat-table::
1128 :header-rows: 0
1129 :stub-columns: 0
1132 * - ``V4L2_VP8_SEGMENT_FLAG_ENABLED``
1133 - 0x01
1134 - Enable/disable segment-based adjustments.
1135 * - ``V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP``
1136 - 0x02
1137 - Indicates if the macroblock segmentation map is updated in this frame.
1138 * - ``V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA``
1139 - 0x04
1140 - Indicates if the segment feature data is updated in this frame.
1141 * - ``V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE``
1142 - 0x08
1143 - If is set, the segment feature data mode is delta-value.
1144 If cleared, it's absolute-value.
1156 .. flat-table:: struct v4l2_vp8_loop_filter
1157 :header-rows: 0
1158 :stub-columns: 0
1161 * - __s8
1162 - ``ref_frm_delta[4]``
1163 - Reference adjustment (signed) delta value.
1164 * - __s8
1165 - ``mb_mode_delta[4]``
1166 - Macroblock prediction mode adjustment (signed) delta value.
1167 * - __u8
1168 - ``sharpness_level``
1169 - Sharpness level
1170 * - __u8
1171 - ``level``
1172 - Filter level
1173 * - __u16
1174 - ``padding``
1175 - Applications and drivers must set this to zero.
1176 * - __u32
1177 - ``flags``
1178 - See :ref:`Loop Filter Flags <vp8_loop_filter_flags>`
1186 .. flat-table::
1187 :header-rows: 0
1188 :stub-columns: 0
1191 * - ``V4L2_VP8_LF_ADJ_ENABLE``
1192 - 0x01
1193 - Enable/disable macroblock-level loop filter adjustment.
1194 * - ``V4L2_VP8_LF_DELTA_UPDATE``
1195 - 0x02
1196 - Indicates if the delta values used in an adjustment are updated.
1197 * - ``V4L2_VP8_LF_FILTER_TYPE_SIMPLE``
1198 - 0x04
1199 - If set, indicates the filter type is simple.
1206 .. flat-table:: struct v4l2_vp8_quantization
1207 :header-rows: 0
1208 :stub-columns: 0
1211 * - __u8
1212 - ``y_ac_qi``
1213 - Luma AC coefficient table index.
1214 * - __s8
1215 - ``y_dc_delta``
1216 - Luma DC delta value.
1217 * - __s8
1218 - ``y2_dc_delta``
1219 - Y2 block DC delta value.
1220 * - __s8
1221 - ``y2_ac_delta``
1222 - Y2 block AC delta value.
1223 * - __s8
1224 - ``uv_dc_delta``
1225 - Chroma DC delta value.
1226 * - __s8
1227 - ``uv_ac_delta``
1228 - Chroma AC delta value.
1229 * - __u16
1230 - ``padding``
1231 - Applications and drivers must set this to zero.
1239 .. flat-table:: struct v4l2_vp8_entropy
1240 :header-rows: 0
1241 :stub-columns: 0
1244 * - __u8
1245 - ``coeff_probs[4][8][3][11]``
1246 - Coefficient update probabilities.
1247 * - __u8
1248 - ``y_mode_probs[4]``
1249 - Luma mode update probabilities.
1250 * - __u8
1251 - ``uv_mode_probs[3]``
1252 - Chroma mode update probabilities.
1253 * - __u8
1254 - ``mv_probs[2][19]``
1255 - MV decoding update probabilities.
1256 * - __u8
1257 - ``padding[3]``
1258 - Applications and drivers must set this to zero.
1260 .. _v4l2-codec-stateless-mpeg2:
1264 associated MPEG-2 slice data. This includes fields matching the syntax
1278 .. flat-table:: struct v4l2_ctrl_mpeg2_sequence
1279 :header-rows: 0
1280 :stub-columns: 0
1283 * - __u16
1284 - ``horizontal_size``
1285 - The width of the displayable part of the frame's luminance component.
1286 * - __u16
1287 - ``vertical_size``
1288 - The height of the displayable part of the frame's luminance component.
1289 * - __u32
1290 - ``vbv_buffer_size``
1291 - Used to calculate the required size of the video buffering verifier,
1293 * - __u16
1294 - ``profile_and_level_indication``
1295 - The current profile and level indication as extracted from the
1297 * - __u8
1298 - ``chroma_format``
1299 - The chrominance sub-sampling format (1: 4:2:0, 2: 4:2:2, 3: 4:4:4).
1300 * - __u8
1301 - ``flags``
1302 - See :ref:`MPEG-2 Sequence Flags <mpeg2_sequence_flags>`.
1306 ``MPEG-2 Sequence Flags``
1310 .. flat-table::
1311 :header-rows: 0
1312 :stub-columns: 0
1315 * - ``V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE``
1316 - 0x01
1317 - Indication that all the frames for the sequence are progressive instead
1326 associated MPEG-2 slice data. This includes fields matching the syntax
1340 .. flat-table:: struct v4l2_ctrl_mpeg2_picture
1341 :header-rows: 0
1342 :stub-columns: 0
1345 * - __u64
1346 - ``backward_ref_ts``
1347 - Timestamp of the V4L2 capture buffer to use as backward reference, used
1348 with B-coded and P-coded frames. The timestamp refers to the
1352 * - __u64
1353 - ``forward_ref_ts``
1354 - Timestamp for the V4L2 capture buffer to use as forward reference, used
1355 with B-coded frames. The timestamp refers to the ``timestamp`` field in
1359 * - __u32
1360 - ``flags``
1361 - See :ref:`MPEG-2 Picture Flags <mpeg2_picture_flags>`.
1362 * - __u8
1363 - ``f_code[2][2]``
1364 - Motion vector codes.
1365 * - __u8
1366 - ``picture_coding_type``
1367 - Picture coding type for the frame covered by the current slice
1370 * - __u8
1371 - ``picture_structure``
1372 - Picture structure (1: interlaced top field, 2: interlaced bottom field,
1374 * - __u8
1375 - ``intra_dc_precision``
1376 - Precision of Discrete Cosine transform (0: 8 bits precision,
1378 * - __u8
1379 - ``reserved[5]``
1380 - Applications and drivers must set this to zero.
1384 ``MPEG-2 Picture Flags``
1388 .. flat-table::
1389 :header-rows: 0
1390 :stub-columns: 0
1393 * - ``V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST``
1394 - 0x00000001
1395 - If set and it's an interlaced stream, top field is output first.
1396 * - ``V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT``
1397 - 0x00000002
1398 - If set only frame-DCT and frame prediction are used.
1399 * - ``V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV``
1400 - 0x00000004
1401 - If set motion vectors are coded for intra macroblocks.
1402 * - ``V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE``
1403 - 0x00000008
1404 - This flag affects the inverse quantization process.
1405 * - ``V4L2_MPEG2_PIC_FLAG_INTRA_VLC``
1406 - 0x00000010
1407 - This flag affects the decoding of transform coefficient data.
1408 * - ``V4L2_MPEG2_PIC_FLAG_ALT_SCAN``
1409 - 0x00000020
1410 - This flag affects the decoding of transform coefficient data.
1411 * - ``V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST``
1412 - 0x00000040
1413 - This flag affects the decoding process of progressive frames.
1414 * - ``V4L2_MPEG2_PIC_FLAG_PROGRESSIVE``
1415 - 0x00000080
1416 - Indicates whether the current frame is progressive.
1424 associated MPEG-2 slice data. This control is initialized by the kernel
1425 to the matrices default values. If a bitstream transmits a user-defined
1442 .. flat-table:: struct v4l2_ctrl_mpeg2_quantisation
1443 :header-rows: 0
1444 :stub-columns: 0
1447 * - __u8
1448 - ``intra_quantiser_matrix[64]``
1449 - The quantisation matrix coefficients for intra-coded frames, in zigzag
1451 although it can be superseded by the chroma-specific matrix for
1452 non-4:2:0 YUV formats.
1453 * - __u8
1454 - ``non_intra_quantiser_matrix[64]``
1455 - The quantisation matrix coefficients for non-intra-coded frames, in
1457 components, although it can be superseded by the chroma-specific matrix
1458 for non-4:2:0 YUV formats.
1459 * - __u8
1460 - ``chroma_intra_quantiser_matrix[64]``
1461 - The quantisation matrix coefficients for the chominance component of
1462 intra-coded frames, in zigzag scanning order. Only relevant for
1463 non-4:2:0 YUV formats.
1464 * - __u8
1465 - ``chroma_non_intra_quantiser_matrix[64]``
1466 - The quantisation matrix coefficients for the chrominance component of
1467 non-intra-coded frames, in zigzag scanning order. Only relevant for
1468 non-4:2:0 YUV formats.
1474 .. _v4l2-codec-stateless-vp9:
1479 probability. Motion vector-related updates contain a new value or zero. All
1489 .. flat-table:: struct v4l2_ctrl_vp9_compressed_hdr
1490 :header-rows: 0
1491 :stub-columns: 0
1494 * - __u8
1495 - ``tx_mode``
1496 - Specifies the TX mode. See :ref:`TX Mode <vp9_tx_mode>` for more details.
1497 * - __u8
1498 - ``tx8[2][1]``
1499 - TX 8x8 probabilities delta.
1500 * - __u8
1501 - ``tx16[2][2]``
1502 - TX 16x16 probabilities delta.
1503 * - __u8
1504 - ``tx32[2][3]``
1505 - TX 32x32 probabilities delta.
1506 * - __u8
1507 - ``coef[4][2][2][6][6][3]``
1508 - Coefficient probabilities delta.
1509 * - __u8
1510 - ``skip[3]``
1511 - Skip probabilities delta.
1512 * - __u8
1513 - ``inter_mode[7][3]``
1514 - Inter prediction mode probabilities delta.
1515 * - __u8
1516 - ``interp_filter[4][2]``
1517 - Interpolation filter probabilities delta.
1518 * - __u8
1519 - ``is_inter[4]``
1520 - Is inter-block probabilities delta.
1521 * - __u8
1522 - ``comp_mode[5]``
1523 - Compound prediction mode probabilities delta.
1524 * - __u8
1525 - ``single_ref[5][2]``
1526 - Single reference probabilities delta.
1527 * - __u8
1528 - ``comp_ref[5]``
1529 - Compound reference probabilities delta.
1530 * - __u8
1531 - ``y_mode[4][9]``
1532 - Y prediction mode probabilities delta.
1533 * - __u8
1534 - ``uv_mode[10][9]``
1535 - UV prediction mode probabilities delta.
1536 * - __u8
1537 - ``partition[16][3]``
1538 - Partition probabilities delta.
1539 * - __u8
1540 - ``mv.joint[3]``
1541 - Motion vector joint probabilities delta.
1542 * - __u8
1543 - ``mv.sign[2]``
1544 - Motion vector sign probabilities delta.
1545 * - __u8
1546 - ``mv.classes[2][10]``
1547 - Motion vector class probabilities delta.
1548 * - __u8
1549 - ``mv.class0_bit[2]``
1550 - Motion vector class0 bit probabilities delta.
1551 * - __u8
1552 - ``mv.bits[2][10]``
1553 - Motion vector bits probabilities delta.
1554 * - __u8
1555 - ``mv.class0_fr[2][2][3]``
1556 - Motion vector class0 fractional bit probabilities delta.
1557 * - __u8
1558 - ``mv.fr[2][3]``
1559 - Motion vector fractional bit probabilities delta.
1560 * - __u8
1561 - ``mv.class0_hp[2]``
1562 - Motion vector class0 high precision fractional bit probabilities delta.
1563 * - __u8
1564 - ``mv.hp[2]``
1565 - Motion vector high precision fractional bit probabilities delta.
1573 .. flat-table::
1574 :header-rows: 0
1575 :stub-columns: 0
1578 * - ``V4L2_VP9_TX_MODE_ONLY_4X4``
1579 - 0
1580 - Transform size is 4x4.
1581 * - ``V4L2_VP9_TX_MODE_ALLOW_8X8``
1582 - 1
1583 - Transform size can be up to 8x8.
1584 * - ``V4L2_VP9_TX_MODE_ALLOW_16X16``
1585 - 2
1586 - Transform size can be up to 16x16.
1587 * - ``V4L2_VP9_TX_MODE_ALLOW_32X32``
1588 - 3
1589 - transform size can be up to 32x32.
1590 * - ``V4L2_VP9_TX_MODE_SELECT``
1591 - 4
1592 - Bitstream contains the transform size for each block.
1612 .. flat-table:: struct v4l2_ctrl_vp9_frame
1613 :header-rows: 0
1614 :stub-columns: 0
1617 * - struct :c:type:`v4l2_vp9_loop_filter`
1618 - ``lf``
1619 - Loop filter parameters. See struct :c:type:`v4l2_vp9_loop_filter` for more details.
1620 * - struct :c:type:`v4l2_vp9_quantization`
1621 - ``quant``
1622 - Quantization parameters. See :c:type:`v4l2_vp9_quantization` for more details.
1623 * - struct :c:type:`v4l2_vp9_segmentation`
1624 - ``seg``
1625 - Segmentation parameters. See :c:type:`v4l2_vp9_segmentation` for more details.
1626 * - __u32
1627 - ``flags``
1628 - Combination of V4L2_VP9_FRAME_FLAG_* flags. See :ref:`Frame Flags<vp9_frame_flags>`.
1629 * - __u16
1630 - ``compressed_header_size``
1631 - Compressed header size in bytes.
1632 * - __u16
1633 - ``uncompressed_header_size``
1634 - Uncompressed header size in bytes.
1635 * - __u16
1636 - ``frame_width_minus_1``
1637 - Add 1 to get the frame width expressed in pixels. See section 7.2.3 in :ref:`vp9`.
1638 * - __u16
1639 - ``frame_height_minus_1``
1640 - Add 1 to get the frame height expressed in pixels. See section 7.2.3 in :ref:`vp9`.
1641 * - __u16
1642 - ``render_width_minus_1``
1643 - Add 1 to get the expected render width expressed in pixels. This is
1646 * - __u16
1647 - render_height_minus_1
1648 - Add 1 to get the expected render height expressed in pixels. This is
1651 * - __u64
1652 - ``last_frame_ts``
1653 - "last" reference buffer timestamp.
1658 * - __u64
1659 - ``golden_frame_ts``
1660 - "golden" reference buffer timestamp.
1665 * - __u64
1666 - ``alt_frame_ts``
1667 - "alt" reference buffer timestamp.
1672 * - __u8
1673 - ``ref_frame_sign_bias``
1674 - a bitfield specifying whether the sign bias is set for a given
1677 * - __u8
1678 - ``reset_frame_context``
1679 - specifies whether the frame context should be reset to default values. See
1681 * - __u8
1682 - ``frame_context_idx``
1683 - Frame context that should be used/updated.
1684 * - __u8
1685 - ``profile``
1686 - VP9 profile. Can be 0, 1, 2 or 3.
1687 * - __u8
1688 - ``bit_depth``
1689 - Component depth in bits. Can be 8, 10 or 12. Note that not all profiles
1691 * - __u8
1692 - ``interpolation_filter``
1693 - Specifies the filter selection used for performing inter prediction. See
1695 * - __u8
1696 - ``tile_cols_log2``
1697 - Specifies the base 2 logarithm of the width of each tile (where the
1700 * - __u8
1701 - ``tile_rows_log2``
1702 - Specifies the base 2 logarithm of the height of each tile (where the
1704 * - __u8
1705 - ``reference_mode``
1706 - Specifies the type of inter prediction to be used. See
1713 * - __u8
1714 - ``reserved[7]``
1715 - Applications and drivers must set this to zero.
1727 .. flat-table::
1728 :header-rows: 0
1729 :stub-columns: 0
1732 * - ``V4L2_VP9_FRAME_FLAG_KEY_FRAME``
1733 - 0x001
1734 - The frame is a key frame.
1735 * - ``V4L2_VP9_FRAME_FLAG_SHOW_FRAME``
1736 - 0x002
1737 - The frame should be displayed.
1738 * - ``V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT``
1739 - 0x004
1740 - The decoding should be error resilient.
1741 * - ``V4L2_VP9_FRAME_FLAG_INTRA_ONLY``
1742 - 0x008
1743 - The frame does not reference other frames.
1744 * - ``V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV``
1745 - 0x010
1746 - The frame can use high precision motion vectors.
1747 * - ``V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX``
1748 - 0x020
1749 - Frame context should be updated after decoding.
1750 * - ``V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE``
1751 - 0x040
1752 - Parallel decoding is used.
1753 * - ``V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING``
1754 - 0x080
1755 - Vertical subsampling is enabled.
1756 * - ``V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING``
1757 - 0x100
1758 - Horizontal subsampling is enabled.
1759 * - ``V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING``
1760 - 0x200
1761 - The full UV range is used.
1769 .. flat-table::
1770 :header-rows: 0
1771 :stub-columns: 0
1774 * - ``V4L2_VP9_SIGN_BIAS_LAST``
1775 - 0x1
1776 - Sign bias is set for the last reference frame.
1777 * - ``V4L2_VP9_SIGN_BIAS_GOLDEN``
1778 - 0x2
1779 - Sign bias is set for the golden reference frame.
1780 * - ``V4L2_VP9_SIGN_BIAS_ALT``
1781 - 0x2
1782 - Sign bias is set for the alt reference frame.
1790 .. flat-table::
1791 :header-rows: 0
1792 :stub-columns: 0
1795 * - ``V4L2_VP9_RESET_FRAME_CTX_NONE``
1796 - 0
1797 - Do not reset any frame context.
1798 * - ``V4L2_VP9_RESET_FRAME_CTX_SPEC``
1799 - 1
1800 - Reset the frame context pointed to by
1802 * - ``V4L2_VP9_RESET_FRAME_CTX_ALL``
1803 - 2
1804 - Reset all frame contexts.
1815 .. flat-table::
1816 :header-rows: 0
1817 :stub-columns: 0
1820 * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP``
1821 - 0
1822 - Eight tap filter.
1823 * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH``
1824 - 1
1825 - Eight tap smooth filter.
1826 * - ``V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP``
1827 - 2
1828 - Eeight tap sharp filter.
1829 * - ``V4L2_VP9_INTERP_FILTER_BILINEAR``
1830 - 3
1831 - Bilinear filter.
1832 * - ``V4L2_VP9_INTERP_FILTER_SWITCHABLE``
1833 - 4
1834 - Filter selection is signaled at the block level.
1845 .. flat-table::
1846 :header-rows: 0
1847 :stub-columns: 0
1850 * - ``V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE``
1851 - 0
1852 - Indicates that all the inter blocks use only a single reference frame
1854 * - ``V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE``
1855 - 1
1856 - Requires all the inter blocks to use compound mode. Single reference
1858 * - ``V4L2_VP9_REFERENCE_MODE_SELECT``
1859 - 2
1860 - Allows each individual inter block to select between single and
1874 .. flat-table:: struct v4l2_vp9_segmentation
1875 :header-rows: 0
1876 :stub-columns: 0
1879 * - __u8
1880 - ``feature_data[8][4]``
1881 - Data attached to each feature. Data entry is only valid if the feature
1885 * - __u8
1886 - ``feature_enabled[8]``
1887 - Bitmask defining which features are enabled in each segment. The value for each
1890 * - __u8
1891 - ``tree_probs[7]``
1892 - Specifies the probability values to be used when decoding a Segment-ID.
1894 * - __u8
1895 - ``pred_probs[3]``
1896 - Specifies the probability values to be used when decoding a
1897 Predicted-Segment-ID. See '6.4.14 Get segment id syntax'
1899 * - __u8
1900 - ``flags``
1901 - Combination of V4L2_VP9_SEGMENTATION_FLAG_* flags. See
1903 * - __u8
1904 - ``reserved[5]``
1905 - Applications and drivers must set this to zero.
1913 .. flat-table::
1914 :header-rows: 0
1915 :stub-columns: 0
1918 * - ``V4L2_VP9_SEG_LVL_ALT_Q``
1919 - 0
1920 - Quantizer segment feature.
1921 * - ``V4L2_VP9_SEG_LVL_ALT_L``
1922 - 1
1923 - Loop filter segment feature.
1924 * - ``V4L2_VP9_SEG_LVL_REF_FRAME``
1925 - 2
1926 - Reference frame segment feature.
1927 * - ``V4L2_VP9_SEG_LVL_SKIP``
1928 - 3
1929 - Skip segment feature.
1930 * - ``V4L2_VP9_SEG_LVL_MAX``
1931 - 4
1932 - Number of segment features.
1940 .. flat-table::
1941 :header-rows: 0
1942 :stub-columns: 0
1945 * - ``V4L2_VP9_SEGMENTATION_FLAG_ENABLED``
1946 - 0x01
1947 - Indicates that this frame makes use of the segmentation tool.
1948 * - ``V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP``
1949 - 0x02
1950 - Indicates that the segmentation map should be updated during the
1952 * - ``V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE``
1953 - 0x04
1954 - Indicates that the updates to the segmentation map are coded
1956 * - ``V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA``
1957 - 0x08
1958 - Indicates that new parameters are about to be specified for each
1960 * - ``V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE``
1961 - 0x10
1962 - Indicates that the segmentation parameters represent the actual values
1974 .. flat-table:: struct v4l2_vp9_quantization
1975 :header-rows: 0
1976 :stub-columns: 0
1979 * - __u8
1980 - ``base_q_idx``
1981 - Indicates the base frame qindex.
1982 * - __s8
1983 - ``delta_q_y_dc``
1984 - Indicates the Y DC quantizer relative to base_q_idx.
1985 * - __s8
1986 - ``delta_q_uv_dc``
1987 - Indicates the UV DC quantizer relative to base_q_idx.
1988 * - __s8
1989 - ``delta_q_uv_ac``
1990 - Indicates the UV AC quantizer relative to base_q_idx.
1991 * - __u8
1992 - ``reserved[4]``
1993 - Applications and drivers must set this to zero.
2004 .. flat-table:: struct v4l2_vp9_loop_filter
2005 :header-rows: 0
2006 :stub-columns: 0
2009 * - __s8
2010 - ``ref_deltas[4]``
2011 - Contains the adjustment needed for the filter level based on the chosen
2013 * - __s8
2014 - ``mode_deltas[2]``
2015 - Contains the adjustment needed for the filter level based on the chosen
2017 * - __u8
2018 - ``level``
2019 - Indicates the loop filter strength.
2020 * - __u8
2021 - ``sharpness``
2022 - Indicates the sharpness level.
2023 * - __u8
2024 - ``flags``
2025 - Combination of V4L2_VP9_LOOP_FILTER_FLAG_* flags.
2027 * - __u8
2028 - ``reserved[7]``
2029 - Applications and drivers must set this to zero.
2038 .. flat-table::
2039 :header-rows: 0
2040 :stub-columns: 0
2043 * - ``V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED``
2044 - 0x1
2045 - When set, the filter level depends on the mode and reference frame used
2047 * - ``V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE``
2048 - 0x2
2049 - When set, the bitstream contains additional syntax elements that
2052 .. _v4l2-codec-stateless-hevc:
2056 bitstream) for the associated HEVC slice data.
2071 .. flat-table:: struct v4l2_ctrl_hevc_sps
2072 :header-rows: 0
2073 :stub-columns: 0
2076 * - __u8
2077 - ``video_parameter_set_id``
2078 - Specifies the value of the vps_video_parameter_set_id of the active VPS
2081 * - __u8
2082 - ``seq_parameter_set_id``
2083 - Provides an identifier for the SPS for reference by other syntax elements
2086 * - __u16
2087 - ``pic_width_in_luma_samples``
2088 - Specifies the width of each decoded picture in units of luma samples.
2089 * - __u16
2090 - ``pic_height_in_luma_samples``
2091 - Specifies the height of each decoded picture in units of luma samples.
2092 * - __u8
2093 - ``bit_depth_luma_minus8``
2094 - This value plus 8 specifies the bit depth of the samples of the luma array.
2095 * - __u8
2096 - ``bit_depth_chroma_minus8``
2097 - This value plus 8 specifies the bit depth of the samples of the chroma arrays.
2098 * - __u8
2099 - ``log2_max_pic_order_cnt_lsb_minus4``
2100 - Specifies the value of the variable MaxPicOrderCntLsb.
2101 * - __u8
2102 - ``sps_max_dec_pic_buffering_minus1``
2103 - This value plus 1 specifies the maximum required size of the decoded picture buffer for
2105 * - __u8
2106 - ``sps_max_num_reorder_pics``
2107 - Indicates the maximum allowed number of pictures.
2108 * - __u8
2109 - ``sps_max_latency_increase_plus1``
2110 - Used to signal MaxLatencyPictures, which indicates the maximum number of
2113 * - __u8
2114 - ``log2_min_luma_coding_block_size_minus3``
2115 - This value plus 3 specifies the minimum luma coding block size.
2116 * - __u8
2117 - ``log2_diff_max_min_luma_coding_block_size``
2118 - Specifies the difference between the maximum and minimum luma coding block size.
2119 * - __u8
2120 - ``log2_min_luma_transform_block_size_minus2``
2121 - This value plus 2 specifies the minimum luma transform block size.
2122 * - __u8
2123 - ``log2_diff_max_min_luma_transform_block_size``
2124 - Specifies the difference between the maximum and minimum luma transform block size.
2125 * - __u8
2126 - ``max_transform_hierarchy_depth_inter``
2127 - Specifies the maximum hierarchy depth for transform units of coding units coded
2128 in inter prediction mode.
2129 * - __u8
2130 - ``max_transform_hierarchy_depth_intra``
2131 - Specifies the maximum hierarchy depth for transform units of coding units coded in
2133 * - __u8
2134 - ``pcm_sample_bit_depth_luma_minus1``
2135 …- This value plus 1 specifies the number of bits used to represent each of PCM sample values of the
2137 * - __u8
2138 - ``pcm_sample_bit_depth_chroma_minus1``
2139 - Specifies the number of bits used to represent each of PCM sample values of
2141 * - __u8
2142 - ``log2_min_pcm_luma_coding_block_size_minus3``
2143 - Plus 3 specifies the minimum size of coding blocks.
2144 * - __u8
2145 - ``log2_diff_max_min_pcm_luma_coding_block_size``
2146 - Specifies the difference between the maximum and minimum size of coding blocks.
2147 * - __u8
2148 - ``num_short_term_ref_pic_sets``
2149 - Specifies the number of st_ref_pic_set() syntax structures included in the SPS.
2150 * - __u8
2151 - ``num_long_term_ref_pics_sps``
2152 - Specifies the number of candidate long-term reference pictures that are
2154 * - __u8
2155 - ``chroma_format_idc``
2156 - Specifies the chroma sampling.
2157 * - __u8
2158 - ``sps_max_sub_layers_minus1``
2159 - This value plus 1 specifies the maximum number of temporal sub-layers.
2160 * - __u64
2161 - ``flags``
2162 - See :ref:`Sequence Parameter Set Flags <hevc_sps_flags>`
2178 .. flat-table::
2179 :header-rows: 0
2180 :stub-columns: 0
2183 * - ``V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE``
2184 - 0x00000001
2185 -
2186 * - ``V4L2_HEVC_SPS_FLAG_SCALING_LIST_ENABLED``
2187 - 0x00000002
2188 -
2189 * - ``V4L2_HEVC_SPS_FLAG_AMP_ENABLED``
2190 - 0x00000004
2191 -
2192 * - ``V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET``
2193 - 0x00000008
2194 -
2195 * - ``V4L2_HEVC_SPS_FLAG_PCM_ENABLED``
2196 - 0x00000010
2197 -
2198 * - ``V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED``
2199 - 0x00000020
2200 -
2201 * - ``V4L2_HEVC_SPS_FLAG_LONG_TERM_REF_PICS_PRESENT``
2202 - 0x00000040
2203 -
2204 * - ``V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED``
2205 - 0x00000080
2206 -
2207 * - ``V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED``
2208 - 0x00000100
2209 -
2217 bitstream) for the associated HEVC slice data.
2228 .. flat-table:: struct v4l2_ctrl_hevc_pps
2229 :header-rows: 0
2230 :stub-columns: 0
2233 * - __u8
2234 - ``pic_parameter_set_id``
2235 - Identifies the PPS for reference by other syntax elements.
2236 * - __u8
2237 - ``num_extra_slice_header_bits``
2238 - Specifies the number of extra slice header bits that are present
2240 * - __u8
2241 - ``num_ref_idx_l0_default_active_minus1``
2242 - This value plus 1 specifies the inferred value of num_ref_idx_l0_active_minus1.
2243 * - __u8
2244 - ``num_ref_idx_l1_default_active_minus1``
2245 - This value plus 1 specifies the inferred value of num_ref_idx_l1_active_minus1.
2246 * - __s8
2247 - ``init_qp_minus26``
2248 - This value plus 26 specifies the initial value of SliceQp Y for each slice
2250 * - __u8
2251 - ``diff_cu_qp_delta_depth``
2252 - Specifies the difference between the luma coding tree block size
2255 * - __s8
2256 - ``pps_cb_qp_offset``
2257 - Specifies the offsets to the luma quantization parameter Cb.
2258 * - __s8
2259 - ``pps_cr_qp_offset``
2260 - Specifies the offsets to the luma quantization parameter Cr.
2261 * - __u8
2262 - ``num_tile_columns_minus1``
2263 - This value plus 1 specifies the number of tile columns partitioning the picture.
2264 * - __u8
2265 - ``num_tile_rows_minus1``
2266 - This value plus 1 specifies the number of tile rows partitioning the picture.
2267 * - __u8
2268 - ``column_width_minus1[20]``
2269 - This value plus 1 specifies the width of the i-th tile column in units of
2271 * - __u8
2272 - ``row_height_minus1[22]``
2273 - This value plus 1 specifies the height of the i-th tile row in units of coding
2275 * - __s8
2276 - ``pps_beta_offset_div2``
2277 - Specifies the default deblocking parameter offsets for beta divided by 2.
2278 * - __s8
2279 - ``pps_tc_offset_div2``
2280 - Specifies the default deblocking parameter offsets for tC divided by 2.
2281 * - __u8
2282 - ``log2_parallel_merge_level_minus2``
2283 - This value plus 2 specifies the value of the variable Log2ParMrgLevel.
2284 * - __u8
2285 - ``padding[4]``
2286 - Applications and drivers must set this to zero.
2287 * - __u64
2288 - ``flags``
2289 - See :ref:`Picture Parameter Set Flags <hevc_pps_flags>`
2299 .. flat-table::
2300 :header-rows: 0
2301 :stub-columns: 0
2304 * - ``V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT_ENABLED``
2305 - 0x00000001
2306 -
2307 * - ``V4L2_HEVC_PPS_FLAG_OUTPUT_FLAG_PRESENT``
2308 - 0x00000002
2309 -
2310 * - ``V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED``
2311 - 0x00000004
2312 -
2313 * - ``V4L2_HEVC_PPS_FLAG_CABAC_INIT_PRESENT``
2314 - 0x00000008
2315 -
2316 * - ``V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED``
2317 - 0x00000010
2318 -
2319 * - ``V4L2_HEVC_PPS_FLAG_TRANSFORM_SKIP_ENABLED``
2320 - 0x00000020
2321 -
2322 * - ``V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED``
2323 - 0x00000040
2324 -
2325 * - ``V4L2_HEVC_PPS_FLAG_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT``
2326 - 0x00000080
2327 -
2328 * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED``
2329 - 0x00000100
2330 -
2331 * - ``V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED``
2332 - 0x00000200
2333 -
2334 * - ``V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED``
2335 - 0x00000400
2336 -
2337 * - ``V4L2_HEVC_PPS_FLAG_TILES_ENABLED``
2338 - 0x00000800
2339 -
2340 * - ``V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED``
2341 - 0x00001000
2342 -
2343 * - ``V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED``
2344 - 0x00002000
2345 -
2346 * - ``V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED``
2347 - 0x00004000
2348 -
2349 * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_OVERRIDE_ENABLED``
2350 - 0x00008000
2351 -
2352 * - ``V4L2_HEVC_PPS_FLAG_PPS_DISABLE_DEBLOCKING_FILTER``
2353 - 0x00010000
2354 -
2355 * - ``V4L2_HEVC_PPS_FLAG_LISTS_MODIFICATION_PRESENT``
2356 - 0x00020000
2357 -
2358 * - ``V4L2_HEVC_PPS_FLAG_SLICE_SEGMENT_HEADER_EXTENSION_PRESENT``
2359 - 0x00040000
2360 -
2361 * - ``V4L2_HEVC_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT``
2362 - 0x00080000
2363 - Specifies the presence of deblocking filter control syntax elements in
2365 * - ``V4L2_HEVC_PPS_FLAG_UNIFORM_SPACING``
2366 - 0x00100000
2367 - Specifies that tile column boundaries and likewise tile row boundaries
2375 Specifies various slice-specific parameters, especially from the NAL unit
2381 This control is a dynamically sized 1-dimensional array,
2394 .. flat-table:: struct v4l2_ctrl_hevc_slice_params
2395 :header-rows: 0
2396 :stub-columns: 0
2399 * - __u32
2400 - ``bit_size``
2401 - Size (in bits) of the current slice data.
2402 * - __u32
2403 - ``data_byte_offset``
2404 - Offset (in byte) to the video data in the current slice data.
2405 * - __u32
2406 - ``num_entry_point_offsets``
2407 - Specifies the number of entry point offset syntax elements in the slice header.
2410 * - __u8
2411 - ``nal_unit_type``
2412 - Specifies the coding type of the slice (B, P or I).
2413 * - __u8
2414 - ``nuh_temporal_id_plus1``
2415 - Minus 1 specifies a temporal identifier for the NAL unit.
2416 * - __u8
2417 - ``slice_type``
2418 -
2421 * - __u8
2422 - ``colour_plane_id``
2423 - Specifies the colour plane associated with the current slice.
2424 * - __s32
2425 - ``slice_pic_order_cnt``
2426 - Specifies the picture order count.
2427 * - __u8
2428 - ``num_ref_idx_l0_active_minus1``
2429 - This value plus 1 specifies the maximum reference index for reference picture list 0
2431 * - __u8
2432 - ``num_ref_idx_l1_active_minus1``
2433 - This value plus 1 specifies the maximum reference index for reference picture list 1
2435 * - __u8
2436 - ``collocated_ref_idx``
2437 - Specifies the reference index of the collocated picture used for
2439 * - __u8
2440 - ``five_minus_max_num_merge_cand``
2441 - Specifies the maximum number of merging motion vector prediction
2443 * - __s8
2444 - ``slice_qp_delta``
2445 - Specifies the initial value of QpY to be used for the coding blocks in the slice.
2446 * - __s8
2447 - ``slice_cb_qp_offset``
2448 - Specifies a difference to be added to the value of pps_cb_qp_offset.
2449 * - __s8
2450 - ``slice_cr_qp_offset``
2451 - Specifies a difference to be added to the value of pps_cr_qp_offset.
2452 * - __s8
2453 - ``slice_act_y_qp_offset``
2454 - Specifies the offset to the luma of quantization parameter qP derived in section 8.6.2
2455 * - __s8
2456 - ``slice_act_cb_qp_offset``
2457 - Specifies the offset to the cb of quantization parameter qP derived in section 8.6.2
2458 * - __s8
2459 - ``slice_act_cr_qp_offset``
2460 - Specifies the offset to the cr of quantization parameter qP derived in section 8.6.2
2461 * - __s8
2462 - ``slice_beta_offset_div2``
2463 - Specifies the deblocking parameter offsets for beta divided by 2.
2464 * - __s8
2465 - ``slice_tc_offset_div2``
2466 - Specifies the deblocking parameter offsets for tC divided by 2.
2467 * - __u8
2468 - ``pic_struct``
2469 - Indicates whether a picture should be displayed as a frame or as one or more fields.
2470 * - __u32
2471 - ``slice_segment_addr``
2472 - Specifies the address of the first coding tree block in the slice segment.
2473 * - __u8
2474 - ``ref_idx_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
2475 - The list of L0 reference elements as indices in the DPB.
2476 * - __u8
2477 - ``ref_idx_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
2478 - The list of L1 reference elements as indices in the DPB.
2479 * - __u16
2480 - ``short_term_ref_pic_set_size``
2481 …- Specifies the size, in bits, of the short-term reference picture set, described as st_ref_pic_se…
2483 * - __u16
2484 - ``long_term_ref_pic_set_size``
2485 … - Specifies the size, in bits, of the long-term reference picture set include in the slice header
2488 * - __u8
2489 - ``padding``
2490 - Applications and drivers must set this to zero.
2491 * - struct :c:type:`v4l2_hevc_pred_weight_table`
2492 - ``pred_weight_table``
2493 - The prediction weight coefficients for inter-picture prediction.
2494 * - __u64
2495 - ``flags``
2496 - See :ref:`Slice Parameters Flags <hevc_slice_params_flags>`
2510 .. flat-table::
2511 :header-rows: 0
2512 :stub-columns: 0
2515 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA``
2516 - 0x00000001
2517 -
2518 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA``
2519 - 0x00000002
2520 -
2521 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED``
2522 - 0x00000004
2523 -
2524 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO``
2525 - 0x00000008
2526 -
2527 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT``
2528 - 0x00000010
2529 -
2530 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0``
2531 - 0x00000020
2532 -
2533 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_USE_INTEGER_MV``
2534 - 0x00000040
2535 -
2536 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED``
2537 - 0x00000080
2538 -
2539 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED``
2540 - 0x00000100
2541 -
2542 * - ``V4L2_HEVC_SLICE_PARAMS_FLAG_DEPENDENT_SLICE_SEGMENT``
2543 - 0x00000200
2544 -
2565 They are described in section 7.4.5 "Scaling list data semantics" of
2578 .. flat-table:: struct v4l2_ctrl_hevc_scaling_matrix
2579 :header-rows: 0
2580 :stub-columns: 0
2583 * - __u8
2584 - ``scaling_list_4x4[6][16]``
2585 - Scaling list is used for the scaling process for transform
2588 * - __u8
2589 - ``scaling_list_8x8[6][64]``
2590 - Scaling list is used for the scaling process for transform
2593 * - __u8
2594 - ``scaling_list_16x16[6][64]``
2595 - Scaling list is used for the scaling process for transform
2598 * - __u8
2599 - ``scaling_list_32x32[2][64]``
2600 - Scaling list is used for the scaling process for transform
2603 * - __u8
2604 - ``scaling_list_dc_coef_16x16[6]``
2605 - Scaling list is used for the scaling process for transform
2608 * - __u8
2609 - ``scaling_list_dc_coef_32x32[2]``
2610 - Scaling list is used for the scaling process for transform
2626 .. flat-table:: struct v4l2_hevc_dpb_entry
2627 :header-rows: 0
2628 :stub-columns: 0
2631 * - __u64
2632 - ``timestamp``
2633 - Timestamp of the V4L2 capture buffer to use as reference, used
2634 with B-coded and P-coded frames. The timestamp refers to the
2638 * - __u8
2639 - ``flags``
2640 - Long term flag for the reference frame
2644 * - __u8
2645 - ``field_pic``
2646 - Whether the reference is a field picture or a frame.
2648 * - __s32
2649 - ``pic_order_cnt_val``
2650 - The picture order count of the current picture.
2651 * - __u8
2652 - ``padding[2]``
2653 - Applications and drivers must set this to zero.
2667 .. flat-table::
2668 :header-rows: 0
2669 :stub-columns: 0
2672 * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME``
2673 - 0
2674 - (progressive) Frame
2675 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_FIELD``
2676 - 1
2677 - Top field
2678 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_FIELD``
2679 - 2
2680 - Bottom field
2681 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM``
2682 - 3
2683 - Top field, bottom field, in that order
2684 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP``
2685 - 4
2686 - Bottom field, top field, in that order
2687 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_BOTTOM_TOP``
2688 - 5
2689 - Top field, bottom field, top field repeated, in that order
2690 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_TOP_BOTTOM``
2691 - 6
2692 - Bottom field, top field, bottom field repeated, in that order
2693 * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME_DOUBLING``
2694 - 7
2695 - Frame doubling
2696 * - ``V4L2_HEVC_SEI_PIC_STRUCT_FRAME_TRIPLING``
2697 - 8
2698 - Frame tripling
2699 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_PREVIOUS_BOTTOM``
2700 - 9
2701 - Top field paired with previous bottom field in output order
2702 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_PREVIOUS_TOP``
2703 - 10
2704 - Bottom field paired with previous top field in output order
2705 * - ``V4L2_HEVC_SEI_PIC_STRUCT_TOP_PAIRED_NEXT_BOTTOM``
2706 - 11
2707 - Top field paired with next bottom field in output order
2708 * - ``V4L2_HEVC_SEI_PIC_STRUCT_BOTTOM_PAIRED_NEXT_TOP``
2709 - 12
2710 - Bottom field paired with next top field in output order
2720 .. flat-table:: struct v4l2_hevc_pred_weight_table
2721 :header-rows: 0
2722 :stub-columns: 0
2725 * - __s8
2726 - ``delta_luma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
2727 - The difference of the weighting factor applied to the luma
2729 * - __s8
2730 - ``luma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
2731 - The additive offset applied to the luma prediction value for list 0.
2732 * - __s8
2733 - ``delta_chroma_weight_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]``
2734 - The difference of the weighting factor applied to the chroma
2736 * - __s8
2737 - ``chroma_offset_l0[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]``
2738 - The difference of the additive offset applied to the chroma
2740 * - __s8
2741 - ``delta_luma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
2742 - The difference of the weighting factor applied to the luma
2744 * - __s8
2745 - ``luma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
2746 - The additive offset applied to the luma prediction value for list 1.
2747 * - __s8
2748 - ``delta_chroma_weight_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]``
2749 - The difference of the weighting factor applied to the chroma
2751 * - __s8
2752 - ``chroma_offset_l1[V4L2_HEVC_DPB_ENTRIES_NUM_MAX][2]``
2753 - The difference of the additive offset applied to the chroma
2755 * - __u8
2756 - ``luma_log2_weight_denom``
2757 - The base 2 logarithm of the denominator for all luma weighting
2759 * - __s8
2760 - ``delta_chroma_log2_weight_denom``
2761 - The difference of the base 2 logarithm of the denominator for
2763 * - __u8
2764 - ``padding[6]``
2765 - Applications and drivers must set this to zero.
2772 Specifies the decoding mode to use. Currently exposes slice-based and
2773 frame-based decoding but new modes might be added later on.
2789 .. flat-table::
2790 :header-rows: 0
2791 :stub-columns: 0
2794 * - ``V4L2_STATELESS_HEVC_DECODE_MODE_SLICE_BASED``
2795 - 0
2796 - Decoding is done at the slice granularity.
2798 * - ``V4L2_STATELESS_HEVC_DECODE_MODE_FRAME_BASED``
2799 - 1
2800 - Decoding is done at the frame granularity.
2821 .. flat-table::
2822 :header-rows: 0
2823 :stub-columns: 0
2826 * - ``V4L2_STATELESS_HEVC_START_CODE_NONE``
2827 - 0
2828 - Selecting this value specifies that HEVC slices are passed
2829 to the driver without any start code. The bitstream data should be
2832 * - ``V4L2_STATELESS_HEVC_START_CODE_ANNEX_B``
2833 - 1
2834 - Selecting this value specifies that HEVC slices are expected
2836 valid start codes can be 3-bytes 0x000001 or 4-bytes 0x00000001.
2849 Source Rec. ITU-T H.264 (06/2019); G.7.4.1.1, G.8.8.1.
2859 and given this LTR index which ranges from 0 to LTR_COUNT-1.
2861 Source Rec. ITU-T H.264 (06/2019); Table 7.9
2866 This provides a bitmask which consists of bits [0, LTR_COUNT-1].
2881 .. flat-table:: struct v4l2_ctrl_hevc_decode_params
2882 :header-rows: 0
2883 :stub-columns: 0
2886 * - __s32
2887 - ``pic_order_cnt_val``
2888 - PicOrderCntVal as described in section 8.3.1 "Decoding process
2890 * - __u16
2891 - ``short_term_ref_pic_set_size``
2892 - Specifies the size, in bits, of the short-term reference picture set, of the first slice
2895 * - __u16
2896 - ``long_term_ref_pic_set_size``
2897 - Specifies the size, in bits, of the long-term reference picture set, of the first slice
2900 * - __u8
2901 - ``num_active_dpb_entries``
2902 - The number of entries in ``dpb``.
2903 * - __u8
2904 - ``num_poc_st_curr_before``
2905 - The number of reference pictures in the short-term set that come before
2907 * - __u8
2908 - ``num_poc_st_curr_after``
2909 - The number of reference pictures in the short-term set that come after
2911 * - __u8
2912 - ``num_poc_lt_curr``
2913 - The number of reference pictures in the long-term set.
2914 * - __u8
2915 - ``poc_st_curr_before[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
2916 - PocStCurrBefore as described in section 8.3.2 "Decoding process for reference
2918 * - __u8
2919 - ``poc_st_curr_after[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
2920 - PocStCurrAfter as described in section 8.3.2 "Decoding process for reference
2922 * - __u8
2923 - ``poc_lt_curr[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
2924 - PocLtCurr as described in section 8.3.2 "Decoding process for reference
2926 * - __u8
2927 - ``num_delta_pocs_of_ref_rps_idx``
2928 - When the short_term_ref_pic_set_sps_flag in the slice header is equal to 0,
2930 the RPS data in slice headers instead of skipping it with @short_term_ref_pic_set_size.
2933 * - struct :c:type:`v4l2_hevc_dpb_entry`
2934 - ``dpb[V4L2_HEVC_DPB_ENTRIES_NUM_MAX]``
2935 - The decoded picture buffer, for meta-data about reference frames.
2936 * - __u64
2937 - ``flags``
2938 - See :ref:`Decode Parameters Flags <hevc_decode_params_flags>`
2946 .. flat-table::
2947 :header-rows: 0
2948 :stub-columns: 0
2951 * - ``V4L2_HEVC_DECODE_PARAM_FLAG_IRAP_PIC``
2952 - 0x00000001
2953 -
2954 * - ``V4L2_HEVC_DECODE_PARAM_FLAG_IDR_PIC``
2955 - 0x00000002
2956 -
2957 * - ``V4L2_HEVC_DECODE_PARAM_FLAG_NO_OUTPUT_OF_PRIOR``
2958 - 0x00000004
2959 -
2961 .. _v4l2-codec-stateless-av1:
2973 .. flat-table:: struct v4l2_ctrl_av1_sequence
2974 :header-rows: 0
2975 :stub-columns: 0
2978 * - __u32
2979 - ``flags``
2980 - See :ref:`AV1 Sequence Flags <av1_sequence_flags>`.
2981 * - __u8
2982 - ``seq_profile``
2983 - Specifies the features that can be used in the coded video sequence.
2984 * - __u8
2985 - ``order_hint_bits``
2986 - Specifies the number of bits used for the order_hint field at each frame.
2987 * - __u8
2988 - ``bit_depth``
2989 - the bit depth to use for the sequence as described in section 5.5.2
2991 * - __u8
2992 - ``reserved``
2993 - Applications and drivers must set this to zero.
2994 * - __u16
2995 - ``max_frame_width_minus_1``
2996 - specifies the maximum frame width minus 1 for the frames represented by
3005 .. flat-table::
3006 :header-rows: 0
3007 :stub-columns: 0
3010 * - ``V4L2_AV1_SEQUENCE_FLAG_STILL_PICTURE``
3011 - 0x00000001
3012 - If set, specifies that the coded video sequence contains only one coded
3015 * - ``V4L2_AV1_SEQUENCE_FLAG_USE_128X128_SUPERBLOCK``
3016 - 0x00000002
3017 - If set, indicates that superblocks contain 128x128 luma samples.
3021 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTER_INTRA``
3022 - 0x00000004
3023 - If set, specifies that the use_filter_intra syntax element may be
3026 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA_EDGE_FILTER``
3027 - 0x00000008
3028 - Specifies whether the intra edge filtering process should be enabled.
3029 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTERINTRA_COMPOUND``
3030 - 0x00000010
3031 - If set, specifies that the mode info for inter blocks may contain the
3034 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKED_COMPOUND``
3035 - 0x00000020
3036 - If set, specifies that the mode info for inter blocks may contain the
3039 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_WARPED_MOTION``
3040 - 0x00000040
3041 - If set, indicates that the allow_warped_motion syntax element may be
3044 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_DUAL_FILTER``
3045 - 0x00000080
3046 - If set, indicates that the inter prediction filter type may be specified
3050 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_ORDER_HINT``
3051 - 0x00000100
3052 - If set, indicates that tools based on the values of order hints may be
3055 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_JNT_COMP``
3056 - 0x00000200
3057 - If set, indicates that the distance weights process may be used for
3058 inter prediction.
3059 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_REF_FRAME_MVS``
3060 - 0x00000400
3061 - If set, indicates that the use_ref_frame_mvs syntax element may be
3064 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_SUPERRES``
3065 - 0x00000800
3066 - If set, specifies that the use_superres syntax element will be present
3070 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_CDEF``
3071 - 0x00001000
3072 - If set, specifies that cdef filtering may be enabled. If not set,
3074 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_RESTORATION``
3075 - 0x00002000
3076 - If set, specifies that loop restoration filtering may be enabled. If not
3078 * - ``V4L2_AV1_SEQUENCE_FLAG_MONO_CHROME``
3079 - 0x00004000
3080 - If set, indicates that the video does not contain U and V color planes.
3082 * - ``V4L2_AV1_SEQUENCE_FLAG_COLOR_RANGE``
3083 - 0x00008000
3084 - If set, signals full swing representation, i.e. "Full Range
3087 * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_X``
3088 - 0x00010000
3089 - Specify the chroma subsampling format.
3090 * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_Y``
3091 - 0x00020000
3092 - Specify the chroma subsampling format.
3093 * - ``V4L2_AV1_SEQUENCE_FLAG_FILM_GRAIN_PARAMS_PRESENT``
3094 - 0x00040000
3095 - Specifies whether film grain parameters are present in the coded video
3097 * - ``V4L2_AV1_SEQUENCE_FLAG_SEPARATE_UV_DELTA_Q``
3098 - 0x00080000
3099 - If set, indicates that the U and V planes may have separate delta
3116 .. flat-table:: struct v4l2_ctrl_av1_tile_group_entry
3117 :header-rows: 0
3118 :stub-columns: 0
3121 * - __u32
3122 - ``tile_offset``
3123 - Offset from the OBU data, i.e. where the coded tile data actually starts.
3124 * - __u32
3125 - ``tile_size``
3126 - Specifies the size in bytes of the coded tile. Equivalent to "TileSize"
3128 * - __u32
3129 - ``tile_row``
3130 - Specifies the row of the current tile. Equivalent to "TileRow" in
3132 * - __u32
3133 - ``tile_col``
3134 - Specifies the column of the current tile. Equivalent to "TileColumn" in
3148 .. flat-table::
3149 :header-rows: 0
3150 :stub-columns: 0
3153 * - ``V4L2_AV1_WARP_MODEL_IDENTITY``
3154 - 0
3155 - Warp model is just an identity transform.
3156 * - ``V4L2_AV1_WARP_MODEL_TRANSLATION``
3157 - 1
3158 - Warp model is a pure translation.
3159 * - ``V4L2_AV1_WARP_MODEL_ROTZOOM``
3160 - 2
3161 - Warp model is a rotation + symmetric zoom + translation.
3162 * - ``V4L2_AV1_WARP_MODEL_AFFINE``
3163 - 3
3164 - Warp model is a general affine transform.
3177 .. flat-table::
3178 :header-rows: 0
3179 :stub-columns: 0
3182 * - ``V4L2_AV1_REF_INTRA_FRAME``
3183 - 0
3184 - Intra Frame Reference.
3185 * - ``V4L2_AV1_REF_LAST_FRAME``
3186 - 1
3187 - Last Frame Reference.
3188 * - ``V4L2_AV1_REF_LAST2_FRAME``
3189 - 2
3190 - Last2 Frame Reference.
3191 * - ``V4L2_AV1_REF_LAST3_FRAME``
3192 - 3
3193 - Last3 Frame Reference.
3194 * - ``V4L2_AV1_REF_GOLDEN_FRAME``
3195 - 4
3196 - Golden Frame Reference.
3197 * - ``V4L2_AV1_REF_BWDREF_FRAME``
3198 - 5
3199 - BWD Frame Reference.
3200 * - ``V4L2_AV1_REF_ALTREF2_FRAME``
3201 - 6
3202 - ALTREF2 Frame Reference.
3203 * - ``V4L2_AV1_REF_ALTREF_FRAME``
3204 - 7
3205 - ALTREF Frame Reference.
3216 .. flat-table:: struct v4l2_av1_global_motion
3217 :header-rows: 0
3218 :stub-columns: 0
3221 * - __u8
3222 - ``flags[V4L2_AV1_TOTAL_REFS_PER_FRAME]``
3223 - A bitfield containing the flags per reference frame. See
3226 * - enum :c:type:`v4l2_av1_warp_model`
3227 - ``type[V4L2_AV1_TOTAL_REFS_PER_FRAME]``
3228 - The type of global motion transform used.
3229 * - __s32
3230 - ``params[V4L2_AV1_TOTAL_REFS_PER_FRAME][6]``
3231 - This field has the same meaning as "gm_params" in :ref:`av1`.
3232 * - __u8
3233 - ``invalid``
3234 - Bitfield indicating whether the global motion params are invalid for a
3238 * - __u8
3239 - ``reserved[3]``
3240 - Applications and drivers must set this to zero.
3248 .. flat-table::
3249 :header-rows: 0
3250 :stub-columns: 0
3253 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_GLOBAL``
3254 - 0x00000001
3255 - Specifies whether global motion parameters are present for a particular
3257 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_ROT_ZOOM``
3258 - 0x00000002
3259 - Specifies whether a particular reference frame uses rotation and zoom
3261 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_TRANSLATION``
3262 - 0x00000004
3263 - Specifies whether a particular reference frame uses translation global
3276 .. flat-table::
3277 :header-rows: 0
3278 :stub-columns: 0
3281 * - ``V4L2_AV1_FRAME_RESTORE_NONE``
3282 - 0
3283 - No filtering is applied.
3284 * - ``V4L2_AV1_FRAME_RESTORE_WIENER``
3285 - 1
3286 - Wiener filter process is invoked.
3287 * - ``V4L2_AV1_FRAME_RESTORE_SGRPROJ``
3288 - 2
3289 - Self guided filter process is invoked.
3290 * - ``V4L2_AV1_FRAME_RESTORE_SWITCHABLE``
3291 - 3
3292 - Restoration filter is swichtable.
3303 .. flat-table:: struct v4l2_av1_loop_restoration
3304 :header-rows: 0
3305 :stub-columns: 0
3308 * - __u8
3309 - ``flags``
3310 - See :ref:`AV1 Loop Restoration Flags <av1_loop_restoration_flags>`.
3311 * - __u8
3312 - ``lr_unit_shift``
3313 - Specifies if the luma restoration size should be halved.
3314 * - __u8
3315 - ``lr_uv_shift``
3316 - Specifies if the chroma size should be half the luma size.
3317 * - __u8
3318 - ``reserved``
3319 - Applications and drivers must set this to zero.
3320 * - :c:type:`v4l2_av1_frame_restoration_type`
3321 - ``frame_restoration_type[V4L2_AV1_NUM_PLANES_MAX]``
3322 - Specifies the type of restoration used for each plane.
3323 * - __u8
3324 - ``loop_restoration_size[V4L2_AV1_MAX_NUM_PLANES]``
3325 - Specifies the size of loop restoration units in units of samples in the
3334 .. flat-table::
3335 :header-rows: 0
3336 :stub-columns: 0
3339 * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES_LR``
3340 - 0x00000001
3341 - Retains the same meaning as UsesLr in :ref:`av1`.
3342 * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES_CHROMA_LR``
3343 - 0x00000002
3344 - Retains the same meaning as UsesChromaLr in :ref:`av1`.
3355 .. flat-table:: struct v4l2_av1_cdef
3356 :header-rows: 0
3357 :stub-columns: 0
3360 * - __u8
3361 - ``damping_minus_3``
3362 - Controls the amount of damping in the deringing filter.
3363 * - __u8
3364 - ``bits``
3365 - Specifies the number of bits needed to specify which CDEF filter to
3367 * - __u8
3368 - ``y_pri_strength[V4L2_AV1_CDEF_MAX]``
3369 - Specifies the strength of the primary filter.
3370 * - __u8
3371 - ``y_sec_strength[V4L2_AV1_CDEF_MAX]``
3372 - Specifies the strength of the secondary filter.
3373 * - __u8
3374 - ``uv_pri_strength[V4L2_AV1_CDEF_MAX]``
3375 - Specifies the strength of the primary filter.
3376 * - __u8
3377 - ``uv_secondary_strength[V4L2_AV1_CDEF_MAX]``
3378 - Specifies the strength of the secondary filter.
3391 .. flat-table::
3392 :header-rows: 0
3393 :stub-columns: 0
3396 * - ``V4L2_AV1_SEG_LVL_ALT_Q``
3397 - 0
3398 - Index for quantizer segment feature.
3399 * - ``V4L2_AV1_SEG_LVL_ALT_LF_Y_V``
3400 - 1
3401 - Index for vertical luma loop filter segment feature.
3402 * - ``V4L2_AV1_SEG_LVL_REF_FRAME``
3403 - 5
3404 - Index for reference frame segment feature.
3405 * - ``V4L2_AV1_SEG_LVL_REF_SKIP``
3406 - 6
3407 - Index for skip segment feature.
3408 * - ``V4L2_AV1_SEG_LVL_REF_GLOBALMV``
3409 - 7
3410 - Index for global mv feature.
3411 * - ``V4L2_AV1_SEG_LVL_MAX``
3412 - 8
3413 - Number of segment features.
3424 .. flat-table:: struct v4l2_av1_segmentation
3425 :header-rows: 0
3426 :stub-columns: 0
3429 * - __u8
3430 - ``flags``
3431 - See :ref:`AV1 Segmentation Flags <av1_segmentation_flags>`
3432 * - __u8
3433 - ``last_active_seg_id``
3434 - Indicates the highest numbered segment id that has some
3437 * - __u8
3438 - ``feature_enabled[V4L2_AV1_MAX_SEGMENTS]``
3439 - Bitmask defining which features are enabled in each segment. Use
3441 * - __u16
3442 - `feature_data[V4L2_AV1_MAX_SEGMENTS][V4L2_AV1_SEG_LVL_MAX]``
3443 - Data attached to each feature. Data entry is only valid if the feature
3452 .. flat-table::
3453 :header-rows: 0
3454 :stub-columns: 0
3457 * - ``V4L2_AV1_SEGMENTATION_FLAG_ENABLED``
3458 - 0x00000001
3459 - If set, indicates that this frame makes use of the segmentation tool. If
3461 * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_MAP``
3462 - 0x00000002
3463 - If set, indicates that the segmentation map are updated during the
3466 * - ``V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL_UPDATE``
3467 - 0x00000004
3468 - If set, indicates that the updates to the segmentation map are coded
3472 * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_DATA``
3473 - 0x00000008
3474 - If set, indicates that the updates to the segmentation map are coded
3478 * - ``V4L2_AV1_SEGMENTATION_FLAG_SEG_ID_PRE_SKIP``
3479 - 0x00000010
3480 - If set, indicates that the segment id will be read before the skip
3493 .. flat-table:: struct v4l2_av1_global_motion
3494 :header-rows: 0
3495 :stub-columns: 0
3498 * - __u8
3499 - ``flags``
3500 - See
3502 * - __u8
3503 - ``level[4]``
3504 - An array containing loop filter strength values. Different loop
3508 * - __u8
3509 - ``sharpness``
3510 - indicates the sharpness level. The loop_filter_level and
3514 * - __u8
3515 - ``ref_deltas[V4L2_AV1_TOTAL_REFS_PER_FRAME]``
3516 - contains the adjustment needed for the filter level based on the
3519 * - __u8
3520 - ``mode_deltas[2]``
3521 - contains the adjustment needed for the filter level based on
3524 * - __u8
3525 - ``delta_lf_res``
3526 - specifies the left shift which should be applied to decoded loop filter
3535 .. flat-table::
3536 :header-rows: 0
3537 :stub-columns: 0
3540 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENABLED``
3541 - 0x00000001
3542 - If set, means that the filter level depends on the mode and reference
3545 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPDATE``
3546 - 0x00000002
3547 - If set, means that additional syntax elements are present that specify
3550 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_PRESENT``
3551 - 0x00000004
3552 - Specifies whether loop filter delta values are present
3553 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_MULTI``
3554 - 0x00000008
3555 - A value equal to 1 specifies that separate loop filter
3569 .. flat-table:: struct v4l2_av1_quantization
3570 :header-rows: 0
3571 :stub-columns: 0
3574 * - __u8
3575 - ``flags``
3576 - See
3578 * - __u8
3579 - ``base_q_idx``
3580 - Indicates the base frame qindex. This is used for Y AC coefficients and
3582 * - __u8
3583 - ``delta_q_y_dc``
3584 - Indicates the Y DC quantizer relative to base_q_idx.
3585 * - __u8
3586 - ``delta_q_u_dc``
3587 - Indicates the U DC quantizer relative to base_q_idx.
3588 * - __u8
3589 - ``delta_q_u_ac``
3590 - Indicates the U AC quantizer relative to base_q_idx.
3591 * - __u8
3592 - ``delta_q_v_dc``
3593 - Indicates the V DC quantizer relative to base_q_idx.
3594 * - __u8
3595 - ``delta_q_v_ac``
3596 - Indicates the V AC quantizer relative to base_q_idx.
3597 * - __u8
3598 - ``qm_y``
3599 - Specifies the level in the quantizer matrix that should be used for
3601 * - __u8
3602 - ``qm_u``
3603 - Specifies the level in the quantizer matrix that should be used for
3605 * - __u8
3606 - ``qm_v``
3607 - Specifies the level in the quantizer matrix that should be used for
3609 * - __u8
3610 - ``delta_q_res``
3611 - Specifies the left shift which should be applied to decoded quantizer
3620 .. flat-table::
3621 :header-rows: 0
3622 :stub-columns: 0
3625 * - ``V4L2_AV1_QUANTIZATION_FLAG_DIFF_UV_DELTA``
3626 - 0x00000001
3627 - If set, indicates that the U and V delta quantizer values are coded
3630 * - ``V4L2_AV1_QUANTIZATION_FLAG_USING_QMATRIX``
3631 - 0x00000002
3632 - If set, specifies that the quantizer matrix will be used to compute
3634 * - ``V4L2_AV1_QUANTIZATION_FLAG_DELTA_Q_PRESENT``
3635 - 0x00000004
3636 - Specifies whether quantizer index delta values are present.
3646 .. flat-table:: struct v4l2_av1_tile_info
3647 :header-rows: 0
3648 :stub-columns: 0
3651 * - __u8
3652 - ``flags``
3653 - See
3655 * - __u8
3656 - ``context_update_tile_id``
3657 - Specifies which tile to use for the CDF update.
3658 * - __u8
3659 - ``tile_cols``
3660 - Specifies the number of tiles across the frame.
3661 * - __u8
3662 - ``tile_rows``
3663 - Specifies the number of tiles down the frame.
3664 * - __u32
3665 - ``mi_col_starts[V4L2_AV1_MAX_TILE_COLS + 1]``
3666 - An array specifying the start column (in units of 4x4 luma
3668 * - __u32
3669 - ``mi_row_starts[V4L2_AV1_MAX_TILE_ROWS + 1]``
3670 - An array specifying the start row (in units of 4x4 luma
3672 * - __u32
3673 - ``width_in_sbs_minus_1[V4L2_AV1_MAX_TILE_COLS]``
3674 - Specifies the width of a tile minus 1 in units of superblocks.
3675 * - __u32
3676 - ``height_in_sbs_minus_1[V4L2_AV1_MAX_TILE_ROWS]``
3677 - Specifies the height of a tile minus 1 in units of superblocks.
3678 * - __u8
3679 - ``tile_size_bytes``
3680 - Specifies the number of bytes needed to code each tile size.
3681 * - __u8
3682 - ``reserved[3]``
3683 - Applications and drivers must set this to zero.
3691 .. flat-table::
3692 :header-rows: 0
3693 :stub-columns: 0
3696 * - ``V4L2_AV1_TILE_INFO_FLAG_UNIFORM_TILE_SPACING``
3697 - 0x00000001
3698 - If set, means that the tiles are uniformly spaced across the frame. (In
3713 .. flat-table::
3714 :header-rows: 0
3715 :stub-columns: 0
3718 * - ``V4L2_AV1_KEY_FRAME``
3719 - 0
3720 - Key frame.
3721 * - ``V4L2_AV1_INTER_FRAME``
3722 - 1
3723 - Inter frame.
3724 * - ``V4L2_AV1_INTRA_ONLY_FRAME``
3725 - 2
3726 - Intra-only frame.
3727 * - ``V4L2_AV1_SWITCH_FRAME``
3728 - 3
3729 - Switch frame.
3741 .. flat-table::
3742 :header-rows: 0
3743 :stub-columns: 0
3746 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP``
3747 - 0
3748 - Eight tap filter.
3749 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH``
3750 - 1
3751 - Eight tap smooth filter.
3752 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP``
3753 - 2
3754 - Eight tap sharp filter.
3755 * - ``V4L2_AV1_INTERPOLATION_FILTER_BILINEAR``
3756 - 3
3757 - Bilinear filter.
3758 * - ``V4L2_AV1_INTERPOLATION_FILTER_SWITCHABLE``
3759 - 4
3760 - Filter selection is signaled at the block level.
3772 .. flat-table::
3773 :header-rows: 0
3774 :stub-columns: 0
3777 * - ``V4L2_AV1_TX_MODE_ONLY_4X4``
3778 - 0
3779 - The inverse transform will use only 4x4 transforms.
3780 * - ``V4L2_AV1_TX_MODE_LARGEST``
3781 - 1
3782 - The inverse transform will use the largest transform size that fits
3784 * - ``V4L2_AV1_TX_MODE_SELECT``
3785 - 2
3786 - The choice of transform size is specified explicitly for each block.
3798 .. flat-table:: struct v4l2_ctrl_av1_frame
3799 :header-rows: 0
3800 :stub-columns: 0
3803 * - struct :c:type:`v4l2_av1_tile_info`
3804 - ``tile_info``
3805 - Tile info
3806 * - struct :c:type:`v4l2_av1_quantization`
3807 - ``quantization``
3808 - Quantization parameters.
3809 * - struct :c:type:`v4l2_av1_segmentation`
3810 - ``segmentation``
3811 - Segmentation parameters.
3812 * - __u8
3813 - ``superres_denom``
3814 - The denominator for the upscaling ratio.
3815 * - struct :c:type:`v4l2_av1_loop_filter`
3816 - ``loop_filter``
3817 - Loop filter params
3818 * - struct :c:type:`v4l2_av1_cdef`
3819 - ``cdef``
3820 - CDEF params
3821 * - __u8
3822 - ``skip_mode_frame[2]``
3823 - Specifies the frames to use for compound prediction when skip_mode is
3825 * - __u8
3826 - ``primary_ref_frame``
3827 - Specifies which reference frame contains the CDF values and other state
3829 * - struct :c:type:`v4l2_av1_loop_restoration`
3830 - ``loop_restoration``
3831 - Loop restoration parameters.
3832 * - struct :c:type:`v4l2_av1_loop_global_motion`
3833 - ``global_motion``
3834 - Global motion parameters.
3835 * - __u32
3836 - ``flags``
3837 - See
3839 * - enum :c:type:`v4l2_av1_frame_type`
3840 - ``frame_type``
3841 - Specifies the AV1 frame type
3842 * - __u32
3843 - ``order_hint``
3844 - Specifies OrderHintBits least significant bits of the expected output
3846 * - __u32
3847 - ``upscaled_width``
3848 - The upscaled width.
3849 * - enum :c:type:`v4l2_av1_interpolation_filter`
3850 - ``interpolation_filter``
3851 - Specifies the filter selection used for performing inter prediction.
3852 * - enum :c:type:`v4l2_av1_tx_mode`
3853 - ``tx_mode``
3854 - Specifies how the transform size is determined.
3855 * - __u32
3856 - ``frame_width_minus_1``
3857 - Add 1 to get the frame's width.
3858 * - __u32
3859 - ``frame_height_minus_1``
3860 - Add 1 to get the frame's height.
3861 * - __u16
3862 - ``render_width_minus_1``
3863 - Add 1 to get the render width of the frame in luma samples.
3864 * - __u16
3865 - ``render_height_minus_1``
3866 - Add 1 to get the render height of the frame in luma samples.
3867 * - __u32
3868 - ``current_frame_id``
3869 - Specifies the frame id number for the current frame. Frame
3873 * - __u8
3874 - ``buffer_removal_time[V4L2_AV1_MAX_OPERATING_POINTS]``
3875 - Specifies the frame removal time in units of DecCT clock ticks counted
3878 * - __u8
3879 - ``reserved[4]``
3880 - Applications and drivers must set this to zero.
3881 * - __u32
3882 - ``order_hints[V4L2_AV1_TOTAL_REFS_PER_FRAME]``
3883 - Specifies the expected output order hint for each reference frame.
3886 used for non-intra frames and ignored otherwise. order_hints[0] is
3888 * - __u64
3889 - ``reference_frame_ts[V4L2_AV1_TOTAL_REFS_PER_FRAME]``
3890 - The V4L2 timestamp for each of the reference frames enumerated in
3898 * - __s8
3899 - ``ref_frame_idx[V4L2_AV1_REFS_PER_FRAME]``
3900 - An index into ``reference_frame_ts`` representing the ordered list of
3901 references used by inter-frame. Matches the bitstream syntax
3903 * - __u8
3904 - ``refresh_frame_flags``
3905 - Contains a bitmask that specifies which reference frame slots will be
3914 .. flat-table::
3915 :header-rows: 0
3916 :stub-columns: 0
3919 * - ``V4L2_AV1_FRAME_FLAG_SHOW_FRAME``
3920 - 0x00000001
3921 - If set, specifies that this frame should be immediately output once
3925 * - ``V4L2_AV1_FRAME_FLAG_SHOWABLE_FRAME``
3926 - 0x00000002
3927 - If set, specifies that the frame may be output using the
3930 * - ``V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE``
3931 - 0x00000004
3932 - Specifies whether error resilient mode is enabled.
3933 * - ``V4L2_AV1_FRAME_FLAG_DISABLE_CDF_UPDATE``
3934 - 0x00000008
3935 - Specifies whether the CDF update in the symbol decoding process should
3937 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_SCREEN_CONTENT_TOOLS``
3938 - 0x00000010
3939 - If set, indicates that intra blocks may use palette encoding. If not
3941 * - ``V4L2_AV1_FRAME_FLAG_FORCE_INTEGER_MV``
3942 - 0x00000020
3943 - If set, specifies that motion vectors will always be integers. If not
3945 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_INTRABC``
3946 - 0x00000040
3947 - If set, indicates that intra block copy may be used in this frame. If
3949 * - ``V4L2_AV1_FRAME_FLAG_USE_SUPERRES``
3950 - 0x00000080
3951 - If set, indicates that upscaling is needed.
3952 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_HIGH_PRECISION_MV``
3953 - 0x00000100
3954 - If set, specifies that motion vectors are specified to eighth pel
3957 * - ``V4L2_AV1_FRAME_FLAG_IS_MOTION_MODE_SWITCHABLE``
3958 - 0x00000200
3959 - If not set, specifies that only the SIMPLE motion mode will be used.
3960 * - ``V4L2_AV1_FRAME_FLAG_USE_REF_FRAME_MVS``
3961 - 0x00000400
3962 - If set specifies that motion vector information from a previous frame
3965 * - ``V4L2_AV1_FRAME_FLAG_DISABLE_FRAME_END_UPDATE_CDF``
3966 - 0x00000800
3967 - If set indicates that the end of frame CDF update is disabled. If not
3969 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_WARPED_MOTION``
3970 - 0x00001000
3971 - If set, indicates that the syntax element motion_mode may be present, if
3974 * - ``V4L2_AV1_FRAME_FLAG_REFERENCE_SELECT``
3975 - 0x00002000
3976 - If set, specifies that the mode info for inter blocks contains the
3978 compound reference prediction. If not set, specifies that all inter
3980 * - ``V4L2_AV1_FRAME_FLAG_REDUCED_TX_SET``
3981 - 0x00004000
3982 - If set, specifies that the frame is restricted to a reduced subset of
3984 * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_ALLOWED``
3985 - 0x00008000
3986 - This flag retains the same meaning as SkipModeAllowed in :ref:`av1`.
3987 * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_PRESENT``
3988 - 0x00010000
3989 - If set, specifies that the syntax element skip_mode will be present, if
3991 * - ``V4L2_AV1_FRAME_FLAG_FRAME_SIZE_OVERRIDE``
3992 - 0x00020000
3993 - If set, specifies that the frame size will either be specified as the
3998 * - ``V4L2_AV1_FRAME_FLAG_BUFFER_REMOVAL_TIME_PRESENT``
3999 - 0x00040000
4000 - If set, specifies that buffer_removal_time is present. If not set,
4002 * - ``V4L2_AV1_FRAME_FLAG_FRAME_REFS_SHORT_SIGNALING``
4003 - 0x00080000
4004 - If set, indicates that only two reference frames are explicitly
4018 .. flat-table:: struct v4l2_ctrl_av1_film_grain
4019 :header-rows: 0
4020 :stub-columns: 0
4023 * - __u8
4024 - ``flags``
4025 - See :ref:`AV1 Film Grain Flags <av1_film_grain_flags>`.
4026 * - __u8
4027 - ``cr_mult``
4028 - Represents a multiplier for the cr component used in derivation of the
4030 * - __u16
4031 - ``grain_seed``
4032 - Specifies the starting value for the pseudo-random numbers used during
4034 * - __u8
4035 - ``film_grain_params_ref_idx``
4036 - Indicates which reference frame contains the film grain parameters to be
4038 * - __u8
4039 - ``num_y_points``
4040 - Specifies the number of points for the piece-wise linear scaling
4042 * - __u8
4043 - ``point_y_value[V4L2_AV1_MAX_NUM_Y_POINTS]``
4044 - Represents the x (luma value) coordinate for the i-th point
4049 * - __u8
4050 - ``point_y_scaling[V4L2_AV1_MAX_NUM_Y_POINTS]``
4051 - Represents the scaling (output) value for the i-th point
4053 * - __u8
4054 - ``num_cb_points``
4055 - Specifies the number of points for the piece-wise linear scaling
4057 * - __u8
4058 - ``point_cb_value[V4L2_AV1_MAX_NUM_CB_POINTS]``
4059 - Represents the x coordinate for the i-th point of the
4060 piece-wise linear scaling function for cb component. The values are
4062 * - __u8
4063 - ``point_cb_scaling[V4L2_AV1_MAX_NUM_CB_POINTS]``
4064 - Represents the scaling (output) value for the i-th point of the
4066 * - __u8
4067 - ``num_cr_points``
4068 - Represents the number of points for the piece-wise
4070 * - __u8
4071 - ``point_cr_value[V4L2_AV1_MAX_NUM_CR_POINTS]``
4072 - Represents the x coordinate for the i-th point of the
4073 piece-wise linear scaling function for cr component. The values are
4075 * - __u8
4076 - ``point_cr_scaling[V4L2_AV1_MAX_NUM_CR_POINTS]``
4077 - Represents the scaling (output) value for the i-th point of the
4079 * - __u8
4080 - ``grain_scaling_minus_8``
4081 - Represents the shift - 8 applied to the values of the chroma component.
4084 * - __u8
4085 - ``ar_coeff_lag``
4086 - Specifies the number of auto-regressive coefficients for luma and
4088 * - __u8
4089 - ``ar_coeffs_y_plus_128[V4L2_AV1_AR_COEFFS_SIZE]``
4090 - Specifies auto-regressive coefficients used for the Y plane.
4091 * - __u8
4092 - ``ar_coeffs_cb_plus_128[V4L2_AV1_AR_COEFFS_SIZE]``
4093 - Specifies auto-regressive coefficients used for the U plane.
4094 * - __u8
4095 - ``ar_coeffs_cr_plus_128[V4L2_AV1_AR_COEFFS_SIZE]``
4096 - Specifies auto-regressive coefficients used for the V plane.
4097 * - __u8
4098 - ``ar_coeff_shift_minus_6``
4099 - Specifies the range of the auto-regressive coefficients. Values of 0,
4100 1, 2, and 3 correspond to the ranges for auto-regressive coefficients of
4101 [-2, 2), [-1, 1), [-0.5, 0.5) and [-0.25, 0.25) respectively.
4102 * - __u8
4103 - ``grain_scale_shift``
4104 - Specifies how much the Gaussian random numbers should be scaled down
4106 * - __u8
4107 - ``cb_mult``
4108 - Represents a multiplier for the cb component used in derivation of the
4110 * - __u8
4111 - ``cb_luma_mult``
4112 - Represents a multiplier for the average luma component used in
4114 * - __u8
4115 - ``cr_luma_mult``
4116 - Represents a multiplier for the average luma component used in
4118 * - __u16
4119 - ``cb_offset``
4120 - Represents an offset used in derivation of the input index to the
4122 * - __u16
4123 - ``cr_offset``
4124 - Represents an offset used in derivation of the input index to the
4126 * - __u8
4127 - ``reserved[4]``
4128 - Applications and drivers must set this to zero.
4136 .. flat-table::
4137 :header-rows: 0
4138 :stub-columns: 0
4141 * - ``V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN``
4142 - 0x00000001
4143 - If set, specifies that film grain should be added to this frame. If not
4145 * - ``V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN``
4146 - 0x00000002
4147 - If set, means that a new set of parameters should be sent. If not set,
4149 * - ``V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCALING_FROM_LUMA``
4150 - 0x00000004
4151 - If set, specifies that the chroma scaling is inferred from the luma
4153 * - ``V4L2_AV1_FILM_GRAIN_FLAG_OVERLAP``
4154 - 0x00000008
4155 - If set, indicates that the overlap between film grain blocks shall be
4158 * - ``V4L2_AV1_FILM_GRAIN_FLAG_CLIP_TO_RESTRICTED_RANGE``
4159 - 0x00000010
4160 - If set, indicates that clipping to the restricted (studio, i.e. limited)