Lines Matching +full:hardware +full:- +full:wise
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
3 .. _codec-stateless-controls:
10 stateless decoder and encoders (i.e. hardware accelerators).
18 .. _codec-stateless-control-id:
23 .. _v4l2-codec-stateless-h264:
28 necessary parameters for configuring a stateless hardware decoding
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 -
173 necessary parameters for configuring a stateless hardware decoding
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``
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.
303 * - __u8
304 - ``scaling_list_8x8[6][64]``
305 - Scaling matrix after applying the inverse scanning process.
313 parameters for configuring a stateless hardware decoding pipeline
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.
524 parameters for configuring a stateless hardware decoding pipeline
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,
751 parse the slice(s) header(s) in hardware. When this mode is
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
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:
802 parameters for configuring a stateless hardware decoding pipeline for FWHT.
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:
931 configuring a stateless hardware decoding pipeline for VP8.
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_scale``
975 - Vertical scaling factor.
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.
1598 This includes the necessary parameters for configuring a stateless hardware
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:
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
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 -
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 -
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
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,
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
2998 * - __u16
2999 - ``max_frame_height_minus_1``
3000 - Specifies the maximum frame height minus 1 for the frames represented by
3009 .. flat-table::
3010 :header-rows: 0
3011 :stub-columns: 0
3014 * - ``V4L2_AV1_SEQUENCE_FLAG_STILL_PICTURE``
3015 - 0x00000001
3016 - If set, specifies that the coded video sequence contains only one coded
3019 * - ``V4L2_AV1_SEQUENCE_FLAG_USE_128X128_SUPERBLOCK``
3020 - 0x00000002
3021 - If set, indicates that superblocks contain 128x128 luma samples.
3025 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_FILTER_INTRA``
3026 - 0x00000004
3027 - If set, specifies that the use_filter_intra syntax element may be
3030 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTRA_EDGE_FILTER``
3031 - 0x00000008
3032 - Specifies whether the intra edge filtering process should be enabled.
3033 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_INTERINTRA_COMPOUND``
3034 - 0x00000010
3035 - If set, specifies that the mode info for inter blocks may contain the
3038 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_MASKED_COMPOUND``
3039 - 0x00000020
3040 - If set, specifies that the mode info for inter blocks may contain the
3043 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_WARPED_MOTION``
3044 - 0x00000040
3045 - If set, indicates that the allow_warped_motion syntax element may be
3048 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_DUAL_FILTER``
3049 - 0x00000080
3050 - If set, indicates that the inter prediction filter type may be specified
3054 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_ORDER_HINT``
3055 - 0x00000100
3056 - If set, indicates that tools based on the values of order hints may be
3059 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_JNT_COMP``
3060 - 0x00000200
3061 - If set, indicates that the distance weights process may be used for
3063 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_REF_FRAME_MVS``
3064 - 0x00000400
3065 - If set, indicates that the use_ref_frame_mvs syntax element may be
3068 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_SUPERRES``
3069 - 0x00000800
3070 - If set, specifies that the use_superres syntax element will be present
3074 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_CDEF``
3075 - 0x00001000
3076 - If set, specifies that cdef filtering may be enabled. If not set,
3078 * - ``V4L2_AV1_SEQUENCE_FLAG_ENABLE_RESTORATION``
3079 - 0x00002000
3080 - If set, specifies that loop restoration filtering may be enabled. If not
3082 * - ``V4L2_AV1_SEQUENCE_FLAG_MONO_CHROME``
3083 - 0x00004000
3084 - If set, indicates that the video does not contain U and V color planes.
3086 * - ``V4L2_AV1_SEQUENCE_FLAG_COLOR_RANGE``
3087 - 0x00008000
3088 - If set, signals full swing representation, i.e. "Full Range
3091 * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_X``
3092 - 0x00010000
3093 - Specify the chroma subsampling format.
3094 * - ``V4L2_AV1_SEQUENCE_FLAG_SUBSAMPLING_Y``
3095 - 0x00020000
3096 - Specify the chroma subsampling format.
3097 * - ``V4L2_AV1_SEQUENCE_FLAG_FILM_GRAIN_PARAMS_PRESENT``
3098 - 0x00040000
3099 - Specifies whether film grain parameters are present in the coded video
3101 * - ``V4L2_AV1_SEQUENCE_FLAG_SEPARATE_UV_DELTA_Q``
3102 - 0x00080000
3103 - If set, indicates that the U and V planes may have separate delta
3120 .. flat-table:: struct v4l2_ctrl_av1_tile_group_entry
3121 :header-rows: 0
3122 :stub-columns: 0
3125 * - __u32
3126 - ``tile_offset``
3127 - Offset from the OBU data, i.e. where the coded tile data actually starts.
3128 * - __u32
3129 - ``tile_size``
3130 - Specifies the size in bytes of the coded tile. Equivalent to "TileSize"
3132 * - __u32
3133 - ``tile_row``
3134 - Specifies the row of the current tile. Equivalent to "TileRow" in
3136 * - __u32
3137 - ``tile_col``
3138 - Specifies the column of the current tile. Equivalent to "TileColumn" in
3152 .. flat-table::
3153 :header-rows: 0
3154 :stub-columns: 0
3157 * - ``V4L2_AV1_WARP_MODEL_IDENTITY``
3158 - 0
3159 - Warp model is just an identity transform.
3160 * - ``V4L2_AV1_WARP_MODEL_TRANSLATION``
3161 - 1
3162 - Warp model is a pure translation.
3163 * - ``V4L2_AV1_WARP_MODEL_ROTZOOM``
3164 - 2
3165 - Warp model is a rotation + symmetric zoom + translation.
3166 * - ``V4L2_AV1_WARP_MODEL_AFFINE``
3167 - 3
3168 - Warp model is a general affine transform.
3181 .. flat-table::
3182 :header-rows: 0
3183 :stub-columns: 0
3186 * - ``V4L2_AV1_REF_INTRA_FRAME``
3187 - 0
3188 - Intra Frame Reference.
3189 * - ``V4L2_AV1_REF_LAST_FRAME``
3190 - 1
3191 - Last Frame Reference.
3192 * - ``V4L2_AV1_REF_LAST2_FRAME``
3193 - 2
3194 - Last2 Frame Reference.
3195 * - ``V4L2_AV1_REF_LAST3_FRAME``
3196 - 3
3197 - Last3 Frame Reference.
3198 * - ``V4L2_AV1_REF_GOLDEN_FRAME``
3199 - 4
3200 - Golden Frame Reference.
3201 * - ``V4L2_AV1_REF_BWDREF_FRAME``
3202 - 5
3203 - BWD Frame Reference.
3204 * - ``V4L2_AV1_REF_ALTREF2_FRAME``
3205 - 6
3206 - ALTREF2 Frame Reference.
3207 * - ``V4L2_AV1_REF_ALTREF_FRAME``
3208 - 7
3209 - ALTREF Frame Reference.
3220 .. flat-table:: struct v4l2_av1_global_motion
3221 :header-rows: 0
3222 :stub-columns: 0
3225 * - __u8
3226 - ``flags[V4L2_AV1_TOTAL_REFS_PER_FRAME]``
3227 - A bitfield containing the flags per reference frame. See
3230 * - enum :c:type:`v4l2_av1_warp_model`
3231 - ``type[V4L2_AV1_TOTAL_REFS_PER_FRAME]``
3232 - The type of global motion transform used.
3233 * - __s32
3234 - ``params[V4L2_AV1_TOTAL_REFS_PER_FRAME][6]``
3235 - This field has the same meaning as "gm_params" in :ref:`av1`.
3236 * - __u8
3237 - ``invalid``
3238 - Bitfield indicating whether the global motion params are invalid for a
3242 * - __u8
3243 - ``reserved[3]``
3244 - Applications and drivers must set this to zero.
3252 .. flat-table::
3253 :header-rows: 0
3254 :stub-columns: 0
3257 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_GLOBAL``
3258 - 0x00000001
3259 - Specifies whether global motion parameters are present for a particular
3261 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_ROT_ZOOM``
3262 - 0x00000002
3263 - Specifies whether a particular reference frame uses rotation and zoom
3265 * - ``V4L2_AV1_GLOBAL_MOTION_FLAG_IS_TRANSLATION``
3266 - 0x00000004
3267 - Specifies whether a particular reference frame uses translation global
3280 .. flat-table::
3281 :header-rows: 0
3282 :stub-columns: 0
3285 * - ``V4L2_AV1_FRAME_RESTORE_NONE``
3286 - 0
3287 - No filtering is applied.
3288 * - ``V4L2_AV1_FRAME_RESTORE_WIENER``
3289 - 1
3290 - Wiener filter process is invoked.
3291 * - ``V4L2_AV1_FRAME_RESTORE_SGRPROJ``
3292 - 2
3293 - Self guided filter process is invoked.
3294 * - ``V4L2_AV1_FRAME_RESTORE_SWITCHABLE``
3295 - 3
3296 - Restoration filter is swichtable.
3307 .. flat-table:: struct v4l2_av1_loop_restoration
3308 :header-rows: 0
3309 :stub-columns: 0
3312 * - __u8
3313 - ``flags``
3314 - See :ref:`AV1 Loop Restoration Flags <av1_loop_restoration_flags>`.
3315 * - __u8
3316 - ``lr_unit_shift``
3317 - Specifies if the luma restoration size should be halved.
3318 * - __u8
3319 - ``lr_uv_shift``
3320 - Specifies if the chroma size should be half the luma size.
3321 * - __u8
3322 - ``reserved``
3323 - Applications and drivers must set this to zero.
3324 * - :c:type:`v4l2_av1_frame_restoration_type`
3325 - ``frame_restoration_type[V4L2_AV1_NUM_PLANES_MAX]``
3326 - Specifies the type of restoration used for each plane.
3327 * - __u8
3328 - ``loop_restoration_size[V4L2_AV1_MAX_NUM_PLANES]``
3329 - Specifies the size of loop restoration units in units of samples in the
3338 .. flat-table::
3339 :header-rows: 0
3340 :stub-columns: 0
3343 * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES_LR``
3344 - 0x00000001
3345 - Retains the same meaning as UsesLr in :ref:`av1`.
3346 * - ``V4L2_AV1_LOOP_RESTORATION_FLAG_USES_CHROMA_LR``
3347 - 0x00000002
3348 - Retains the same meaning as UsesChromaLr in :ref:`av1`.
3359 .. flat-table:: struct v4l2_av1_cdef
3360 :header-rows: 0
3361 :stub-columns: 0
3364 * - __u8
3365 - ``damping_minus_3``
3366 - Controls the amount of damping in the deringing filter.
3367 * - __u8
3368 - ``bits``
3369 - Specifies the number of bits needed to specify which CDEF filter to
3371 * - __u8
3372 - ``y_pri_strength[V4L2_AV1_CDEF_MAX]``
3373 - Specifies the strength of the primary filter.
3374 * - __u8
3375 - ``y_sec_strength[V4L2_AV1_CDEF_MAX]``
3376 - Specifies the strength of the secondary filter.
3377 * - __u8
3378 - ``uv_pri_strength[V4L2_AV1_CDEF_MAX]``
3379 - Specifies the strength of the primary filter.
3380 * - __u8
3381 - ``uv_sec_strength[V4L2_AV1_CDEF_MAX]``
3382 - Specifies the strength of the secondary filter.
3395 .. flat-table::
3396 :header-rows: 0
3397 :stub-columns: 0
3400 * - ``V4L2_AV1_SEG_LVL_ALT_Q``
3401 - 0
3402 - Index for quantizer segment feature.
3403 * - ``V4L2_AV1_SEG_LVL_ALT_LF_Y_V``
3404 - 1
3405 - Index for vertical luma loop filter segment feature.
3406 * - ``V4L2_AV1_SEG_LVL_REF_FRAME``
3407 - 5
3408 - Index for reference frame segment feature.
3409 * - ``V4L2_AV1_SEG_LVL_REF_SKIP``
3410 - 6
3411 - Index for skip segment feature.
3412 * - ``V4L2_AV1_SEG_LVL_REF_GLOBALMV``
3413 - 7
3414 - Index for global mv feature.
3415 * - ``V4L2_AV1_SEG_LVL_MAX``
3416 - 8
3417 - Number of segment features.
3428 .. flat-table:: struct v4l2_av1_segmentation
3429 :header-rows: 0
3430 :stub-columns: 0
3433 * - __u8
3434 - ``flags``
3435 - See :ref:`AV1 Segmentation Flags <av1_segmentation_flags>`
3436 * - __u8
3437 - ``last_active_seg_id``
3438 - Indicates the highest numbered segment id that has some
3441 * - __u8
3442 - ``feature_enabled[V4L2_AV1_MAX_SEGMENTS]``
3443 - Bitmask defining which features are enabled in each segment. Use
3445 * - __u16
3446 - ``feature_data[V4L2_AV1_MAX_SEGMENTS][V4L2_AV1_SEG_LVL_MAX]``
3447 - Data attached to each feature. Data entry is only valid if the feature
3456 .. flat-table::
3457 :header-rows: 0
3458 :stub-columns: 0
3461 * - ``V4L2_AV1_SEGMENTATION_FLAG_ENABLED``
3462 - 0x00000001
3463 - If set, indicates that this frame makes use of the segmentation tool. If
3465 * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_MAP``
3466 - 0x00000002
3467 - If set, indicates that the segmentation map are updated during the
3470 * - ``V4L2_AV1_SEGMENTATION_FLAG_TEMPORAL_UPDATE``
3471 - 0x00000004
3472 - If set, indicates that the updates to the segmentation map are coded
3476 * - ``V4L2_AV1_SEGMENTATION_FLAG_UPDATE_DATA``
3477 - 0x00000008
3478 - If set, indicates that the updates to the segmentation map are coded
3482 * - ``V4L2_AV1_SEGMENTATION_FLAG_SEG_ID_PRE_SKIP``
3483 - 0x00000010
3484 - If set, indicates that the segment id will be read before the skip
3497 .. flat-table:: struct v4l2_av1_loop_filter
3498 :header-rows: 0
3499 :stub-columns: 0
3502 * - __u8
3503 - ``flags``
3504 - See
3506 * - __u8
3507 - ``level[4]``
3508 - An array containing loop filter strength values. Different loop
3512 * - __u8
3513 - ``sharpness``
3514 - indicates the sharpness level. The loop_filter_level and
3518 * - __u8
3519 - ``ref_deltas[V4L2_AV1_TOTAL_REFS_PER_FRAME]``
3520 - contains the adjustment needed for the filter level based on the
3523 * - __u8
3524 - ``mode_deltas[2]``
3525 - contains the adjustment needed for the filter level based on
3528 * - __u8
3529 - ``delta_lf_res``
3530 - specifies the left shift which should be applied to decoded loop filter
3539 .. flat-table::
3540 :header-rows: 0
3541 :stub-columns: 0
3544 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_ENABLED``
3545 - 0x00000001
3546 - If set, means that the filter level depends on the mode and reference
3549 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_UPDATE``
3550 - 0x00000002
3551 - If set, means that additional syntax elements are present that specify
3554 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_PRESENT``
3555 - 0x00000004
3556 - Specifies whether loop filter delta values are present
3557 * - ``V4L2_AV1_LOOP_FILTER_FLAG_DELTA_LF_MULTI``
3558 - 0x00000008
3559 - A value equal to 1 specifies that separate loop filter
3573 .. flat-table:: struct v4l2_av1_quantization
3574 :header-rows: 0
3575 :stub-columns: 0
3578 * - __u8
3579 - ``flags``
3580 - See
3582 * - __u8
3583 - ``base_q_idx``
3584 - Indicates the base frame qindex. This is used for Y AC coefficients and
3586 * - __u8
3587 - ``delta_q_y_dc``
3588 - Indicates the Y DC quantizer relative to base_q_idx.
3589 * - __u8
3590 - ``delta_q_u_dc``
3591 - Indicates the U DC quantizer relative to base_q_idx.
3592 * - __u8
3593 - ``delta_q_u_ac``
3594 - Indicates the U AC quantizer relative to base_q_idx.
3595 * - __u8
3596 - ``delta_q_v_dc``
3597 - Indicates the V DC quantizer relative to base_q_idx.
3598 * - __u8
3599 - ``delta_q_v_ac``
3600 - Indicates the V AC quantizer relative to base_q_idx.
3601 * - __u8
3602 - ``qm_y``
3603 - Specifies the level in the quantizer matrix that should be used for
3605 * - __u8
3606 - ``qm_u``
3607 - Specifies the level in the quantizer matrix that should be used for
3609 * - __u8
3610 - ``qm_v``
3611 - Specifies the level in the quantizer matrix that should be used for
3613 * - __u8
3614 - ``delta_q_res``
3615 - Specifies the left shift which should be applied to decoded quantizer
3624 .. flat-table::
3625 :header-rows: 0
3626 :stub-columns: 0
3629 * - ``V4L2_AV1_QUANTIZATION_FLAG_DIFF_UV_DELTA``
3630 - 0x00000001
3631 - If set, indicates that the U and V delta quantizer values are coded
3634 * - ``V4L2_AV1_QUANTIZATION_FLAG_USING_QMATRIX``
3635 - 0x00000002
3636 - If set, specifies that the quantizer matrix will be used to compute
3638 * - ``V4L2_AV1_QUANTIZATION_FLAG_DELTA_Q_PRESENT``
3639 - 0x00000004
3640 - Specifies whether quantizer index delta values are present.
3650 .. flat-table:: struct v4l2_av1_tile_info
3651 :header-rows: 0
3652 :stub-columns: 0
3655 * - __u8
3656 - ``flags``
3657 - See
3659 * - __u8
3660 - ``context_update_tile_id``
3661 - Specifies which tile to use for the CDF update.
3662 * - __u8
3663 - ``tile_cols``
3664 - Specifies the number of tiles across the frame.
3665 * - __u8
3666 - ``tile_rows``
3667 - Specifies the number of tiles down the frame.
3668 * - __u32
3669 - ``mi_col_starts[V4L2_AV1_MAX_TILE_COLS + 1]``
3670 - An array specifying the start column (in units of 4x4 luma
3672 * - __u32
3673 - ``mi_row_starts[V4L2_AV1_MAX_TILE_ROWS + 1]``
3674 - An array specifying the start row (in units of 4x4 luma
3676 * - __u32
3677 - ``width_in_sbs_minus_1[V4L2_AV1_MAX_TILE_COLS]``
3678 - Specifies the width of a tile minus 1 in units of superblocks.
3679 * - __u32
3680 - ``height_in_sbs_minus_1[V4L2_AV1_MAX_TILE_ROWS]``
3681 - Specifies the height of a tile minus 1 in units of superblocks.
3682 * - __u8
3683 - ``tile_size_bytes``
3684 - Specifies the number of bytes needed to code each tile size.
3685 * - __u8
3686 - ``reserved[3]``
3687 - Applications and drivers must set this to zero.
3695 .. flat-table::
3696 :header-rows: 0
3697 :stub-columns: 0
3700 * - ``V4L2_AV1_TILE_INFO_FLAG_UNIFORM_TILE_SPACING``
3701 - 0x00000001
3702 - If set, means that the tiles are uniformly spaced across the frame. (In
3717 .. flat-table::
3718 :header-rows: 0
3719 :stub-columns: 0
3722 * - ``V4L2_AV1_KEY_FRAME``
3723 - 0
3724 - Key frame.
3725 * - ``V4L2_AV1_INTER_FRAME``
3726 - 1
3727 - Inter frame.
3728 * - ``V4L2_AV1_INTRA_ONLY_FRAME``
3729 - 2
3730 - Intra-only frame.
3731 * - ``V4L2_AV1_SWITCH_FRAME``
3732 - 3
3733 - Switch frame.
3745 .. flat-table::
3746 :header-rows: 0
3747 :stub-columns: 0
3750 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP``
3751 - 0
3752 - Eight tap filter.
3753 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH``
3754 - 1
3755 - Eight tap smooth filter.
3756 * - ``V4L2_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP``
3757 - 2
3758 - Eight tap sharp filter.
3759 * - ``V4L2_AV1_INTERPOLATION_FILTER_BILINEAR``
3760 - 3
3761 - Bilinear filter.
3762 * - ``V4L2_AV1_INTERPOLATION_FILTER_SWITCHABLE``
3763 - 4
3764 - Filter selection is signaled at the block level.
3776 .. flat-table::
3777 :header-rows: 0
3778 :stub-columns: 0
3781 * - ``V4L2_AV1_TX_MODE_ONLY_4X4``
3782 - 0
3783 - The inverse transform will use only 4x4 transforms.
3784 * - ``V4L2_AV1_TX_MODE_LARGEST``
3785 - 1
3786 - The inverse transform will use the largest transform size that fits
3788 * - ``V4L2_AV1_TX_MODE_SELECT``
3789 - 2
3790 - The choice of transform size is specified explicitly for each block.
3802 .. flat-table:: struct v4l2_ctrl_av1_frame
3803 :header-rows: 0
3804 :stub-columns: 0
3807 * - struct :c:type:`v4l2_av1_tile_info`
3808 - ``tile_info``
3809 - Tile info
3810 * - struct :c:type:`v4l2_av1_quantization`
3811 - ``quantization``
3812 - Quantization parameters.
3813 * - __u8
3814 - ``superres_denom``
3815 - The denominator for the upscaling ratio.
3816 * - struct :c:type:`v4l2_av1_segmentation`
3817 - ``segmentation``
3818 - Segmentation parameters.
3819 * - struct :c:type:`v4l2_av1_loop_filter`
3820 - ``loop_filter``
3821 - Loop filter params
3822 * - struct :c:type:`v4l2_av1_cdef`
3823 - ``cdef``
3824 - CDEF params
3825 * - __u8
3826 - ``skip_mode_frame[2]``
3827 - Specifies the frames to use for compound prediction when skip_mode is
3829 * - __u8
3830 - ``primary_ref_frame``
3831 - Specifies which reference frame contains the CDF values and other state
3833 * - struct :c:type:`v4l2_av1_loop_restoration`
3834 - ``loop_restoration``
3835 - Loop restoration parameters.
3836 * - struct :c:type:`v4l2_av1_global_motion`
3837 - ``global_motion``
3838 - Global motion parameters.
3839 * - __u32
3840 - ``flags``
3841 - See
3843 * - enum :c:type:`v4l2_av1_frame_type`
3844 - ``frame_type``
3845 - Specifies the AV1 frame type
3846 * - __u32
3847 - ``order_hint``
3848 - Specifies OrderHintBits least significant bits of the expected output
3850 * - __u32
3851 - ``upscaled_width``
3852 - The upscaled width.
3853 * - enum :c:type:`v4l2_av1_interpolation_filter`
3854 - ``interpolation_filter``
3855 - Specifies the filter selection used for performing inter prediction.
3856 * - enum :c:type:`v4l2_av1_tx_mode`
3857 - ``tx_mode``
3858 - Specifies how the transform size is determined.
3859 * - __u32
3860 - ``frame_width_minus_1``
3861 - Add 1 to get the frame's width.
3862 * - __u32
3863 - ``frame_height_minus_1``
3864 - Add 1 to get the frame's height.
3865 * - __u16
3866 - ``render_width_minus_1``
3867 - Add 1 to get the render width of the frame in luma samples.
3868 * - __u16
3869 - ``render_height_minus_1``
3870 - Add 1 to get the render height of the frame in luma samples.
3871 * - __u32
3872 - ``current_frame_id``
3873 - Specifies the frame id number for the current frame. Frame
3877 * - __u8
3878 - ``buffer_removal_time[V4L2_AV1_MAX_OPERATING_POINTS]``
3879 - Specifies the frame removal time in units of DecCT clock ticks counted
3882 * - __u8
3883 - ``reserved[4]``
3884 - Applications and drivers must set this to zero.
3885 * - __u32
3886 - ``order_hints[V4L2_AV1_TOTAL_REFS_PER_FRAME]``
3887 - Specifies the expected output order hint for each reference frame.
3890 used for non-intra frames and ignored otherwise. order_hints[0] is
3892 * - __u64
3893 - ``reference_frame_ts[V4L2_AV1_TOTAL_REFS_PER_FRAME]``
3894 - The V4L2 timestamp for each of the reference frames enumerated in
3902 * - __s8
3903 - ``ref_frame_idx[V4L2_AV1_REFS_PER_FRAME]``
3904 - An index into ``reference_frame_ts`` representing the ordered list of
3905 references used by inter-frame. Matches the bitstream syntax
3907 * - __u8
3908 - ``refresh_frame_flags``
3909 - Contains a bitmask that specifies which reference frame slots will be
3918 .. flat-table::
3919 :header-rows: 0
3920 :stub-columns: 0
3923 * - ``V4L2_AV1_FRAME_FLAG_SHOW_FRAME``
3924 - 0x00000001
3925 - If set, specifies that this frame should be immediately output once
3929 * - ``V4L2_AV1_FRAME_FLAG_SHOWABLE_FRAME``
3930 - 0x00000002
3931 - If set, specifies that the frame may be output using the
3934 * - ``V4L2_AV1_FRAME_FLAG_ERROR_RESILIENT_MODE``
3935 - 0x00000004
3936 - Specifies whether error resilient mode is enabled.
3937 * - ``V4L2_AV1_FRAME_FLAG_DISABLE_CDF_UPDATE``
3938 - 0x00000008
3939 - Specifies whether the CDF update in the symbol decoding process should
3941 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_SCREEN_CONTENT_TOOLS``
3942 - 0x00000010
3943 - If set, indicates that intra blocks may use palette encoding. If not
3945 * - ``V4L2_AV1_FRAME_FLAG_FORCE_INTEGER_MV``
3946 - 0x00000020
3947 - If set, specifies that motion vectors will always be integers. If not
3949 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_INTRABC``
3950 - 0x00000040
3951 - If set, indicates that intra block copy may be used in this frame. If
3953 * - ``V4L2_AV1_FRAME_FLAG_USE_SUPERRES``
3954 - 0x00000080
3955 - If set, indicates that upscaling is needed.
3956 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_HIGH_PRECISION_MV``
3957 - 0x00000100
3958 - If set, specifies that motion vectors are specified to eighth pel
3961 * - ``V4L2_AV1_FRAME_FLAG_IS_MOTION_MODE_SWITCHABLE``
3962 - 0x00000200
3963 - If not set, specifies that only the SIMPLE motion mode will be used.
3964 * - ``V4L2_AV1_FRAME_FLAG_USE_REF_FRAME_MVS``
3965 - 0x00000400
3966 - If set specifies that motion vector information from a previous frame
3969 * - ``V4L2_AV1_FRAME_FLAG_DISABLE_FRAME_END_UPDATE_CDF``
3970 - 0x00000800
3971 - If set indicates that the end of frame CDF update is disabled. If not
3973 * - ``V4L2_AV1_FRAME_FLAG_ALLOW_WARPED_MOTION``
3974 - 0x00001000
3975 - If set, indicates that the syntax element motion_mode may be present, if
3978 * - ``V4L2_AV1_FRAME_FLAG_REFERENCE_SELECT``
3979 - 0x00002000
3980 - If set, specifies that the mode info for inter blocks contains the
3984 * - ``V4L2_AV1_FRAME_FLAG_REDUCED_TX_SET``
3985 - 0x00004000
3986 - If set, specifies that the frame is restricted to a reduced subset of
3988 * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_ALLOWED``
3989 - 0x00008000
3990 - This flag retains the same meaning as SkipModeAllowed in :ref:`av1`.
3991 * - ``V4L2_AV1_FRAME_FLAG_SKIP_MODE_PRESENT``
3992 - 0x00010000
3993 - If set, specifies that the syntax element skip_mode will be present, if
3995 * - ``V4L2_AV1_FRAME_FLAG_FRAME_SIZE_OVERRIDE``
3996 - 0x00020000
3997 - If set, specifies that the frame size will either be specified as the
4002 * - ``V4L2_AV1_FRAME_FLAG_BUFFER_REMOVAL_TIME_PRESENT``
4003 - 0x00040000
4004 - If set, specifies that buffer_removal_time is present. If not set,
4006 * - ``V4L2_AV1_FRAME_FLAG_FRAME_REFS_SHORT_SIGNALING``
4007 - 0x00080000
4008 - If set, indicates that only two reference frames are explicitly
4022 .. flat-table:: struct v4l2_ctrl_av1_film_grain
4023 :header-rows: 0
4024 :stub-columns: 0
4027 * - __u8
4028 - ``flags``
4029 - See :ref:`AV1 Film Grain Flags <av1_film_grain_flags>`.
4030 * - __u8
4031 - ``cr_mult``
4032 - Represents a multiplier for the cr component used in derivation of the
4034 * - __u16
4035 - ``grain_seed``
4036 - Specifies the starting value for the pseudo-random numbers used during
4038 * - __u8
4039 - ``film_grain_params_ref_idx``
4040 - Indicates which reference frame contains the film grain parameters to be
4042 * - __u8
4043 - ``num_y_points``
4044 - Specifies the number of points for the piece-wise linear scaling
4046 * - __u8
4047 - ``point_y_value[V4L2_AV1_MAX_NUM_Y_POINTS]``
4048 - Represents the x (luma value) coordinate for the i-th point
4053 * - __u8
4054 - ``point_y_scaling[V4L2_AV1_MAX_NUM_Y_POINTS]``
4055 - Represents the scaling (output) value for the i-th point
4057 * - __u8
4058 - ``num_cb_points``
4059 - Specifies the number of points for the piece-wise linear scaling
4061 * - __u8
4062 - ``point_cb_value[V4L2_AV1_MAX_NUM_CB_POINTS]``
4063 - Represents the x coordinate for the i-th point of the
4064 piece-wise linear scaling function for cb component. The values are
4066 * - __u8
4067 - ``point_cb_scaling[V4L2_AV1_MAX_NUM_CB_POINTS]``
4068 - Represents the scaling (output) value for the i-th point of the
4070 * - __u8
4071 - ``num_cr_points``
4072 - Represents the number of points for the piece-wise
4074 * - __u8
4075 - ``point_cr_value[V4L2_AV1_MAX_NUM_CR_POINTS]``
4076 - Represents the x coordinate for the i-th point of the
4077 piece-wise linear scaling function for cr component. The values are
4079 * - __u8
4080 - ``point_cr_scaling[V4L2_AV1_MAX_NUM_CR_POINTS]``
4081 - Represents the scaling (output) value for the i-th point of the
4083 * - __u8
4084 - ``grain_scaling_minus_8``
4085 - Represents the shift - 8 applied to the values of the chroma component.
4088 * - __u8
4089 - ``ar_coeff_lag``
4090 - Specifies the number of auto-regressive coefficients for luma and
4092 * - __u8
4093 - ``ar_coeffs_y_plus_128[V4L2_AV1_AR_COEFFS_SIZE]``
4094 - Specifies auto-regressive coefficients used for the Y plane.
4095 * - __u8
4096 - ``ar_coeffs_cb_plus_128[V4L2_AV1_AR_COEFFS_SIZE]``
4097 - Specifies auto-regressive coefficients used for the U plane.
4098 * - __u8
4099 - ``ar_coeffs_cr_plus_128[V4L2_AV1_AR_COEFFS_SIZE]``
4100 - Specifies auto-regressive coefficients used for the V plane.
4101 * - __u8
4102 - ``ar_coeff_shift_minus_6``
4103 - Specifies the range of the auto-regressive coefficients. Values of 0,
4104 1, 2, and 3 correspond to the ranges for auto-regressive coefficients of
4105 [-2, 2), [-1, 1), [-0.5, 0.5) and [-0.25, 0.25) respectively.
4106 * - __u8
4107 - ``grain_scale_shift``
4108 - Specifies how much the Gaussian random numbers should be scaled down
4110 * - __u8
4111 - ``cb_mult``
4112 - Represents a multiplier for the cb component used in derivation of the
4114 * - __u8
4115 - ``cb_luma_mult``
4116 - Represents a multiplier for the average luma component used in
4118 * - __u8
4119 - ``cr_luma_mult``
4120 - Represents a multiplier for the average luma component used in
4122 * - __u16
4123 - ``cb_offset``
4124 - Represents an offset used in derivation of the input index to the
4126 * - __u16
4127 - ``cr_offset``
4128 - Represents an offset used in derivation of the input index to the
4130 * - __u8
4131 - ``reserved[4]``
4132 - Applications and drivers must set this to zero.
4140 .. flat-table::
4141 :header-rows: 0
4142 :stub-columns: 0
4145 * - ``V4L2_AV1_FILM_GRAIN_FLAG_APPLY_GRAIN``
4146 - 0x00000001
4147 - If set, specifies that film grain should be added to this frame. If not
4149 * - ``V4L2_AV1_FILM_GRAIN_FLAG_UPDATE_GRAIN``
4150 - 0x00000002
4151 - If set, means that a new set of parameters should be sent. If not set,
4153 * - ``V4L2_AV1_FILM_GRAIN_FLAG_CHROMA_SCALING_FROM_LUMA``
4154 - 0x00000004
4155 - If set, specifies that the chroma scaling is inferred from the luma
4157 * - ``V4L2_AV1_FILM_GRAIN_FLAG_OVERLAP``
4158 - 0x00000008
4159 - If set, indicates that the overlap between film grain blocks shall be
4162 * - ``V4L2_AV1_FILM_GRAIN_FLAG_CLIP_TO_RESTRICTED_RANGE``
4163 - 0x00000010
4164 - If set, indicates that clipping to the restricted (studio, i.e. limited)