L4T Multimedia API Reference

32.1 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
v4l2_nv_extensions.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016-2019, NVIDIA CORPORATION. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in
11  * the documentation and/or other materials provided with the
12  * distribution.
13  * 3. The names of its contributors may not be used to endorse or promote
14  * products derived from this software without specific prior written
15  * permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
23  * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 
30 /* This file contains amendments to the V4L2 headers made after the
31  * supported kernel version and NVIDIA extensions.
32  */
33 
34 #ifndef __V4L2_NV_EXTENSIONS_H__
35 #define __V4L2_NV_EXTENSIONS_H__
36 
56 #define V4L2_PIX_FMT_H265 v4l2_fourcc('H', '2', '6', '5')
57 
61 #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0')
62 
66 #define V4L2_PIX_FMT_P010 v4l2_fourcc('P', '0', '1', '0') /* Y/CbCr 4:2:0, 10 bits per channel */
67 
71 #define V4L2_PIX_FMT_P010M v4l2_fourcc('P', 'M', '1', '0') /* Y/CbCr 4:2:0, 10 bits per channel */
72 
76 #define V4L2_PIX_FMT_P012 v4l2_fourcc('P', '0', '1', '2') /* Y/CbCr 4:2:0, 12 bits per channel */
77 
81 #define V4L2_PIX_FMT_P012M v4l2_fourcc('P', 'M', '1', '2') /* Y/CbCr 4:2:0, 12 bits per channel */
82 
83 
85 /* >> The declarations from here to the next endcond statement are not
86  * >> currently implemented. DO NOT USE. */
87 
88 #define V4L2_PIX_FMT_YUV422RM v4l2_fourcc('4', '2', 'R', 'M')
89 
90 
91 #define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4')
92 #define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F')
94 #define V4L2_CTRL_FLAG_CAN_STORE 0x0200
95 
101 #define V4L2_EVENT_RESOLUTION_CHANGE 5
102 
104 /* >> The declarations from here to the next endcond statement are not
105  * >> currently implemented. DO NOT USE. */
106 
107 /*---------------Below are changes from the v4l2-controls.h----------------------*/
108 
109 #define V4L2_CID_MPEG_VIDEO_H264_SPS (V4L2_CID_MPEG_BASE+383)
110 #define V4L2_CID_MPEG_VIDEO_H264_PPS (V4L2_CID_MPEG_BASE+384)
111 #define V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX (V4L2_CID_MPEG_BASE+385)
112 #define V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAM (V4L2_CID_MPEG_BASE+386)
113 #define V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAM (V4L2_CID_MPEG_BASE+387)
114 
115 #define V4L2_CID_MPEG_VIDEO_VP8_FRAME_HDR (V4L2_CID_MPEG_BASE+512)
116 
124 #define V4L2_CID_MPEG_VIDEO_H265_PROFILE (V4L2_CID_MPEG_BASE+513)
125 
136 };
137 
142 #define V4L2_CID_MPEG_VIDEO_IDR_INTERVAL (V4L2_CID_MPEG_BASE+514)
143 
145 /* >> The declarations from here to the next endcond statement are not
146  * >> currently implemented. DO NOT USE. */
147 
148 /* Complex controls */
149 
150 #define V4L2_H264_SPS_CONSTRAINT_SET0_FLAG 0x01
151 #define V4L2_H264_SPS_CONSTRAINT_SET1_FLAG 0x02
152 #define V4L2_H264_SPS_CONSTRAINT_SET2_FLAG 0x04
153 #define V4L2_H264_SPS_CONSTRAINT_SET3_FLAG 0x08
154 #define V4L2_H264_SPS_CONSTRAINT_SET4_FLAG 0x10
155 #define V4L2_H264_SPS_CONSTRAINT_SET5_FLAG 0x20
156 
157 #define V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE 0x01
158 #define V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS 0x02
159 #define V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO 0x04
160 #define V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED 0x08
161 #define V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY 0x10
162 #define V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD 0x20
163 #define V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE 0x40
164 struct v4l2_ctrl_h264_sps {
165  __u8 profile_idc;
166  __u8 constraint_set_flags;
167  __u8 level_idc;
168  __u8 seq_parameter_set_id;
169  __u8 chroma_format_idc;
170  __u8 bit_depth_luma_minus8;
171  __u8 bit_depth_chroma_minus8;
172  __u8 log2_max_frame_num_minus4;
173  __u8 pic_order_cnt_type;
174  __u8 log2_max_pic_order_cnt_lsb_minus4;
175  __s32 offset_for_non_ref_pic;
176  __s32 offset_for_top_to_bottom_field;
177  __u8 num_ref_frames_in_pic_order_cnt_cycle;
178  __s32 offset_for_ref_frame[255];
179  __u8 max_num_ref_frames;
180  __u16 pic_width_in_mbs_minus1;
181  __u16 pic_height_in_map_units_minus1;
182  __u8 flags;
183 };
184 
185 #define V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE 0x0001
186 #define V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT 0x0002
187 #define V4L2_H264_PPS_FLAG_WEIGHTED_PRED 0x0004
188 #define V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT 0x0008
189 #define V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED 0x0010
190 #define V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT 0x0020
191 #define V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE 0x0040
192 #define V4L2_H264_PPS_FLAG_PIC_SCALING_MATRIX_PRESENT 0x0080
193 struct v4l2_ctrl_h264_pps {
194  __u8 pic_parameter_set_id;
195  __u8 seq_parameter_set_id;
196  __u8 num_slice_groups_minus1;
197  __u8 num_ref_idx_l0_default_active_minus1;
198  __u8 num_ref_idx_l1_default_active_minus1;
199  __u8 weighted_bipred_idc;
200  __s8 pic_init_qp_minus26;
201  __s8 pic_init_qs_minus26;
202  __s8 chroma_qp_index_offset;
203  __s8 second_chroma_qp_index_offset;
204  __u8 flags;
205 };
206 
207 struct v4l2_ctrl_h264_scaling_matrix {
208  __u8 scaling_list_4x4[6][16];
209  __u8 scaling_list_8x8[6][64];
210 };
211 
212 struct v4l2_h264_weight_factors {
213  __s8 luma_weight[32];
214  __s8 luma_offset[32];
215  __s8 chroma_weight[32][2];
216  __s8 chroma_offset[32][2];
217 };
218 
219 struct v4l2_h264_pred_weight_table {
220  __u8 luma_log2_weight_denom;
221  __u8 chroma_log2_weight_denom;
222  struct v4l2_h264_weight_factors weight_factors[2];
223 };
224 
225 #define V4L2_SLICE_FLAG_FIELD_PIC 0x01
226 #define V4L2_SLICE_FLAG_BOTTOM_FIELD 0x02
227 #define V4L2_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x04
228 #define V4L2_SLICE_FLAG_SP_FOR_SWITCH 0x08
229 struct v4l2_ctrl_h264_slice_param {
231  __u32 size;
233  __u32 header_bit_size;
234 
235  __u16 first_mb_in_slice;
236  __u8 slice_type;
237  __u8 pic_parameter_set_id;
238  __u8 colour_plane_id;
239  __u16 frame_num;
240  __u16 idr_pic_id;
241  __u16 pic_order_cnt_lsb;
242  __s32 delta_pic_order_cnt_bottom;
243  __s32 delta_pic_order_cnt0;
244  __s32 delta_pic_order_cnt1;
245  __u8 redundant_pic_cnt;
246 
247  struct v4l2_h264_pred_weight_table pred_weight_table;
248  /* Size in bits of dec_ref_pic_marking() syntax element. */
249  __u32 dec_ref_pic_marking_bit_size;
250  /* Size in bits of pic order count syntax. */
251  __u32 pic_order_cnt_bit_size;
252 
253  __u8 cabac_init_idc;
254  __s8 slice_qp_delta;
255  __s8 slice_qs_delta;
256  __u8 disable_deblocking_filter_idc;
257  __s8 slice_alpha_c0_offset_div2;
258  __s8 slice_beta_offset_div2;
259  __u32 slice_group_change_cycle;
260 
261  __u8 num_ref_idx_l0_active_minus1;
262  __u8 num_ref_idx_l1_active_minus1;
263  /* Entries on each list are indices
264  * into v4l2_ctrl_h264_decode_param.dpb[]. */
265  __u8 ref_pic_list0[32];
266  __u8 ref_pic_list1[32];
267 
268  __u8 flags;
269 };
270 
273 #define V4L2_H264_DPB_ENTRY_FLAG_ACTIVE 0x01
274 #define V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM 0x02
275 struct v4l2_h264_dpb_entry {
276  __u32 buf_index;
277  __u16 frame_num;
278  __u16 pic_num;
280  __s32 top_field_order_cnt;
281  __s32 bottom_field_order_cnt;
282  __u8 flags; /* V4L2_H264_DPB_ENTRY_FLAG_* */
283 };
284 
285 struct v4l2_ctrl_h264_decode_param {
286  __u32 num_slices;
287  __u8 idr_pic_flag;
288  __u8 nal_ref_idc;
289  __s32 top_field_order_cnt;
290  __s32 bottom_field_order_cnt;
291  __u8 ref_pic_list_p0[32];
292  __u8 ref_pic_list_b0[32];
293  __u8 ref_pic_list_b1[32];
294  struct v4l2_h264_dpb_entry dpb[16];
295 };
296 
297 #define V4L2_VP8_SEGMNT_HDR_FLAG_ENABLED 0x01
298 #define V4L2_VP8_SEGMNT_HDR_FLAG_UPDATE_MAP 0x02
299 #define V4L2_VP8_SEGMNT_HDR_FLAG_UPDATE_FEATURE_DATA 0x04
300 struct v4l2_vp8_sgmnt_hdr {
301  __u8 segment_feature_mode;
302 
303  __s8 quant_update[4];
304  __s8 lf_update[4];
305  __u8 segment_probs[3];
306 
307  __u8 flags;
308 };
309 
310 #define V4L2_VP8_LF_HDR_ADJ_ENABLE 0x01
311 #define V4L2_VP8_LF_HDR_DELTA_UPDATE 0x02
312 struct v4l2_vp8_loopfilter_hdr {
313  __u8 type;
314  __u8 level;
315  __u8 sharpness_level;
316  __s8 ref_frm_delta_magnitude[4];
317  __s8 mb_mode_delta_magnitude[4];
318 
319  __u8 flags;
320 };
321 
322 struct v4l2_vp8_quantization_hdr {
323  __u8 y_ac_qi;
324  __s8 y_dc_delta;
325  __s8 y2_dc_delta;
326  __s8 y2_ac_delta;
327  __s8 uv_dc_delta;
328  __s8 uv_ac_delta;
329  __u16 dequant_factors[4][3][2];
330 };
331 
332 struct v4l2_vp8_entropy_hdr {
333  __u8 coeff_probs[4][8][3][11];
334  __u8 y_mode_probs[4];
335  __u8 uv_mode_probs[3];
336  __u8 mv_probs[2][19];
337 };
338 
339 #define V4L2_VP8_FRAME_HDR_FLAG_EXPERIMENTAL 0x01
340 #define V4L2_VP8_FRAME_HDR_FLAG_SHOW_FRAME 0x02
341 #define V4L2_VP8_FRAME_HDR_FLAG_MB_NO_SKIP_COEFF 0x04
342 struct v4l2_ctrl_vp8_frame_hdr {
344  __u8 key_frame;
345  __u8 version;
346 
348  __u16 width;
349  __u8 horizontal_scale;
350  __u16 height;
351  __u8 vertical_scale;
352 
353  struct v4l2_vp8_sgmnt_hdr sgmnt_hdr;
354  struct v4l2_vp8_loopfilter_hdr lf_hdr;
355  struct v4l2_vp8_quantization_hdr quant_hdr;
356  struct v4l2_vp8_entropy_hdr entropy_hdr;
357 
358  __u8 sign_bias_golden;
359  __u8 sign_bias_alternate;
360 
361  __u8 prob_skip_false;
362  __u8 prob_intra;
363  __u8 prob_last;
364  __u8 prob_gf;
365 
366  __u32 first_part_size;
371  __u32 first_part_offset;
372  __u32 macroblock_bit_offset;
373 
374  __u8 num_dct_parts;
375  __u32 dct_part_sizes[8];
376 
377  __u8 bool_dec_range;
378  __u8 bool_dec_value;
379  __u8 bool_dec_count;
380 
382  __u32 last_frame;
384  __u32 golden_frame;
386  __u32 alt_frame;
387 
388  __u8 flags;
389 };
390 
393 /*---------------Add below NVIDIA specific extensions ----------------------*/
394 
477 #define V4L2_CID_MPEG_VIDEO_DISABLE_COMPLETE_FRAME_INPUT (V4L2_CID_MPEG_BASE+515)
478 
489 #define V4L2_CID_MPEG_VIDEO_DISABLE_DPB (V4L2_CID_MPEG_BASE+516)
490 
499 #define V4L2_CID_MPEG_VIDEO_ERROR_REPORTING (V4L2_CID_MPEG_BASE+517)
500 
511 #define V4L2_CID_MPEG_VIDEO_SKIP_FRAMES (V4L2_CID_MPEG_BASE+518)
512 
526 #define V4L2_CID_MPEG_VIDEODEC_METADATA (V4L2_CID_MPEG_BASE+519)
527 
541 #define V4L2_CID_MPEG_VIDEODEC_INPUT_METADATA (V4L2_CID_MPEG_BASE+520)
542 
549 #define V4L2_CID_VIDEODEC_DISPLAYDATA_PRESENT (V4L2_CID_MPEG_BASE+521)
550 
558 #define V4L2_CID_VIDEODEC_HDR_MASTERING_DISPLAY_DATA (V4L2_CID_MPEG_BASE+522)
559 
630 #define V4L2_CID_VIDEO_CONVERT_OUTPUT_PLANE_LAYOUT (V4L2_CID_MPEG_BASE+523)
631 
639 #define V4L2_CID_VIDEO_CONVERT_CAPTURE_PLANE_LAYOUT (V4L2_CID_MPEG_BASE+524)
640 
648 #define V4L2_CID_VIDEO_CONVERT_FLIP_METHOD (V4L2_CID_MPEG_BASE+525)
649 
657 #define V4L2_CID_VIDEO_CONVERT_INTERPOLATION_METHOD (V4L2_CID_MPEG_BASE+526)
658 
668 #define V4L2_CID_VIDEO_CONVERT_TNR_ALGORITHM (V4L2_CID_MPEG_BASE+527)
669 
781 #define V4L2_CID_MPEG_VIDEOENC_TEMPORAL_TRADEOFF_LEVEL (V4L2_CID_MPEG_BASE+528)
782 
792 #define V4L2_CID_MPEG_VIDEOENC_SLICE_LENGTH_PARAM (V4L2_CID_MPEG_BASE+529)
793 
804 #define V4L2_CID_MPEG_VIDEOENC_ROI_PARAMS (V4L2_CID_MPEG_BASE+530)
805 
815 #define V4L2_CID_MPEG_VIDEOENC_VIRTUALBUFFER_SIZE (V4L2_CID_MPEG_BASE+531)
816 
825 #define V4L2_CID_MPEG_VIDEOENC_NUM_REFERENCE_FRAMES (V4L2_CID_MPEG_BASE+532)
826 
836 #define V4L2_CID_MPEG_VIDEOENC_SLICE_INTRAREFRESH_PARAM (V4L2_CID_MPEG_BASE+533)
837 
847 #define V4L2_CID_MPEG_VIDEOENC_NUM_BFRAMES (V4L2_CID_MPEG_BASE+534)
848 
857 #define V4L2_CID_MPEG_VIDEOENC_INSERT_SPS_PPS_AT_IDR (V4L2_CID_MPEG_BASE+535)
858 
869 #define V4L2_CID_MPEG_VIDEOENC_METADATA (V4L2_CID_MPEG_BASE+536)
870 
879 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_METADATA_MV (V4L2_CID_MPEG_BASE+537)
880 
891 #define V4L2_CID_MPEG_VIDEOENC_METADATA_MV (V4L2_CID_MPEG_BASE+538)
892 
902 #define V4L2_CID_MPEG_VIDEOENC_QP_RANGE (V4L2_CID_MPEG_BASE+539)
903 
913 #define V4L2_CID_MPEG_VIDEOENC_HW_PRESET_TYPE_PARAM (V4L2_CID_MPEG_BASE+540)
914 
926 #define V4L2_CID_MPEG_VIDEOENC_INPUT_METADATA (V4L2_CID_MPEG_BASE+541)
927 
937 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_EXTERNAL_RPS_CONTROL (V4L2_CID_MPEG_BASE+542)
938 
948 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_EXTERNAL_RATE_CONTROL (V4L2_CID_MPEG_BASE+543)
949 
959 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_ROI_PARAM (V4L2_CID_MPEG_BASE+544)
960 
970 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_RECONCRC_PARAM (V4L2_CID_MPEG_BASE+545)
971 
980 #define V4L2_CID_MPEG_VIDEOENC_INSERT_VUI (V4L2_CID_MPEG_BASE+546)
981 
990 #define V4L2_CID_MPEG_VIDEOENC_INSERT_AUD (V4L2_CID_MPEG_BASE+547)
991 
1001 #define V4L2_CID_MPEG_VIDEOENC_EXTEDED_COLORFORMAT (V4L2_CID_MPEG_BASE+548)
1002 
1014 #define V4L2_CID_MPEG_VIDEO_DECODE_INSTANCE (V4L2_CID_MPEG_BASE+549)
1015 
1023 #define V4L2_CID_MPEG_VIDEO_DEVICE_POLL (V4L2_CID_MPEG_BASE+550)
1024 
1036 #define V4L2_CID_MPEG_SET_POLL_INTERRUPT (V4L2_CID_MPEG_BASE+551)
1037 
1046 #define V4L2_CID_MPEG_VIDEOENC_TWO_PASS_CBR (V4L2_CID_MPEG_BASE+552)
1047 
1055 #define V4L2_CID_VIDEO_CONVERT_YUV_RESCALE_METHOD (V4L2_CID_MPEG_BASE+553)
1056 
1065 #define V4L2_CID_MPEG_VIDEO_MAX_PERFORMANCE (V4L2_CID_MPEG_BASE+554)
1066 
1075 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_ALLIFRAME_ENCODE (V4L2_CID_MPEG_BASE+555)
1076 
1090 };
1091 
1101 };
1102 
1118 };
1119 
1124 {
1132  __u32 DecodedMBs;
1140 
1145 {
1147  __u32 bPresent;
1149  __u32 bIdrFrame;
1153  __u32 bPredicted;
1157  __u32 nFrameNum;
1161 
1166 {
1168  __u32 bRefFrame;
1170  __u32 bIdrFrame;
1176  __u32 nFrameNum;
1180 
1185 {
1194 
1199 {
1206  __u32 FrameType;
1210 
1215 {
1222  __u32 FrameType;
1226 
1231 {
1236 
1241 {
1253  union {
1258  }CodecParams;
1279 };
1280 
1295 };
1296 
1302 {
1308 
1317 };
1318 
1333 };
1334 
1340 {
1346 
1352 {
1354  __u32 size;
1356 
1364 {
1366  __u32 frames;
1368 
1374 {
1376  __u32 interval;
1378 
1382 #define V4L2_MAX_ROI_REGIONS 8
1383 
1387 typedef struct v4l2_enc_ROI_param_
1388 {
1390  struct v4l2_rect ROIRect;
1392  __s32 QPdelta;
1394 
1400 {
1410 
1414 typedef struct MVInfo_ {
1416  __s32 mv_x : 16;
1418  __s32 mv_y : 14;
1420  __u32 weight : 2;
1421 } MVInfo;
1422 
1428  __u32 bufSize;
1432 
1436 #define V4L2_MAX_REF_FRAMES 8
1437 
1442 {
1444  __u32 nFrameId;
1452  __u32 nFrameNum;
1456 
1462 {
1464  __u8 KeyFrame;
1468  __u16 AvgQP;
1482  __u32 FrameMinQP;
1484  __u32 FrameMaxQP;
1495 
1503 {
1523 
1528 typedef struct v4l2_enc_gdr_params_
1529 {
1531  __u32 nGDRFrames;
1533 
1539 {
1544  /* TODO : Check for field details. */
1546  /* TODO : Check for field details. */
1549 
1550 
1554 typedef struct _v4l2_enc_frame_prop
1555 {
1557  __u32 nFrameId;
1561 
1567 {
1569  __u32 nFrameId;
1579  __u32 nCurrentRefFrameId;
1583 
1584 
1590 {
1596 
1602 {
1606  __u32 nFrameQP;
1614 
1621 {
1625 
1632 {
1636 
1643 {
1646  struct v4l2_rect ReconCRCRect;
1648 
1655 {
1657  __u32 flag;
1676 
1681 #define QP_RETAIN_VAL -1
1682 
1689 {
1691  __u32 MinQpI;
1693  __u32 MaxQpI;
1695  __u32 MinQpP;
1697  __u32 MaxQpP;
1699  __u32 MinQpB;
1701  __u32 MaxQpB;
1714 };
1715 
1728 };
1729 
1740 };
1741 
1753 };
1754 
1765 };
1766 
1768 {
1771 
1777 {
1778  // idx 0 : G, 1 : B, 2 : R
1779  __u16 display_primaries_x[3]; // normalized x chromaticity cordinate. It shall be in the range of 0 to 50000
1780  __u16 display_primaries_y[3]; // normalized y chromaticity cordinate. It shall be in the range of 0 to 50000
1781  __u16 white_point_x; // normalized x chromaticity cordinate of white point of mastering display
1782  __u16 white_point_y; // normalized y chromaticity cordinate of white point of mastering display
1783  __u32 max_display_parameter_luminance; // nominal maximum display luminance in units of 0.0001 candelas per square metre
1784  __u32 min_display_parameter_luminance; // nominal minimum display luminance in units of 0.0001 candelas per square metre
1786 
1787 
1792 {
1793  __u16 req_events; // Requested events, a bitmask of POLLIN, POLLOUT, POLLERR, POLLPRI.
1794  __u16 resp_events; // Returned events a similar bitmask of above events.
1796 
1798 #endif /*__V4L2_NV_EXTENSIONS_H__*/
__u32 FrameDecodeTime
Time required to decode the frame, in microseconds.
__u32 nLTRFrameIdx
Long Term Frame Index of the frame.
__s32 mv_y
Number of pixels the macro block moved in vertical direction.
__u16 AvgQP
Average QP value of the frame.
v4l2_dec_instance_type
Enum v4l2_dec_instanceid, possible methods for decode instances.
__u8 bEnableExternalPictureRC
Boolean value indicating if enabled External Picture RC.
Encoder HWPreset DISABLED.
Holds the motion vector parameters for a single macro block.
struct v4l2_ctrl_videodec_statusmetadata_ v4l2_ctrl_videodec_statusmetadata
Holds the decoder error status metadata for the frame.
Holds the decoder DPB info metadata.
Rotate 180 degrees.
Indoor Low Light TNR algorithm.
Holds the encoder frame ROI parameters to be used with V4L2_CID_MPEG_VIDEOENC_ROI_PARAMS IOCTL...
10-Tap interpolation method
__u32 MaxQpI
Maximum QP value for I frame.
struct v4l2_ctrl_videoenc_input_metadata_ v4l2_ctrl_videoenc_input_metadata
Holds the encoder frame input metadata parameters.
v4l2_nv_buffer_layout
Enum specifying types of buffer layouts.
__u32 nActiveRefFrames
Number of active frames present in the DPB.
__u32 nLTRFrameIdx
LongTermFrameIdx of a picture.
Holds the encoder frame property.
Holds the encoder output metadata for a frame, to be used with V4L2_CID_MPEG_VIDEOENC_METADATA IOCTL...
__u32 MinQpB
Minimum QP value for B frame.
MVInfo * pMVInfo
Pointer to the buffer containing the motion vectors.
__u32 nConcealedFromPOC
POC of the reference frame used for concealment.
Holds encoder HW Preset type parameters to be used with V4L2_CID_MPEG_VIDEOENC_HW_PRESET_TYPE_PARAM I...
struct v4l2_ctrl_videodec_dpbinfometadata_ v4l2_ctrl_videodec_dpbinfometadata
Holds the decoder DPB info metadata.
v4l2_ctrl_videodec_statusmetadata FrameDecStats
Frame decode statistics.
Encoder HWPreset with per frame encode time Medium.
v4l2_ctrl_videodec_outputbuf_metadata * VideoDecMetadata
A pointer to v4l2_ctrl_videodec_outputbuf_metadata structure.
struct v4l2_rect ROIRect
Region of interest rectangle.
__u8 bLTRefFrame
Boolean value indicating if current frame long Term Ref Flag.
__u32 nsessionMaxQP
Max QP per session when external picture RC enabled.
__u8 bEnableROI
Boolean value to indicating ROI param encoding.
v4l2_enc_temporal_tradeoff_level_type
Specifies the types of encoder temporal tradeoff levels.
__u32 nPictureOrderCnt
Picture Order Count.
v4l2_tnr_algorithm
Specifies the types of TNR algorithms.
Slice size is specified in terms of number of macroblocks.
__u32 MinQpI
Minimum QP value for I frame.
struct v4l2_ctrl_videoenc_outputbuf_metadata_ v4l2_ctrl_videoenc_outputbuf_metadata
Holds the encoder output metadata for a frame, to be used with V4L2_CID_MPEG_VIDEOENC_METADATA IOCTL...
__u8 bIdrFrame
Boolean value indicating if current frame is an IDR.
__u8 KeyFrame
Boolean value indicating if current frame is a key frame.
__u8 bValidReconCRC
CRC for Reconstructed frame.
__u8 bIsGoldenOrAlternateFrame
Boolean value indicating if current frame is a golden or alternate frame.
5-Tap interpolation method
Flip across upper left/lower right diagonal.
Holds the RPS List parameters of encoded frame.
Holds the video decoder input header error metadata for a frame.
Select NVDEC 1 IP.
v4l2_mpeg_video_h265_profile
Defines the possible profiles for H.265 encoder.
__u32 weight
Temporal hints used by hardware for Motion Estimation.
struct v4l2_enc_frame_ext_rps_ctrl_params_ v4l2_enc_frame_ext_rps_ctrl_params
Holds the encoder frame external rps control parameters to be used with V4L2_CID_MPEG_VIDEOENC_INPUT_...
__u32 nFrameId
unique Id.
__u32 nFrameNumBits
Holds the number of bits in the frame.
__u32 nMaxQPDeviation
Frame min QP deviation.
struct _v4l2_ctrl_video_device_poll v4l2_ctrl_video_device_poll
Poll device.
struct v4l2_ctrl_videodec_outputbuf_metadata_ v4l2_ctrl_videodec_outputbuf_metadata
Holds the video decoder output metadata for a frame.
v4l2_enc_slice_length_type
Enum specifying the type of slice length.
v4l2_ctrl_videodec_refframe_metadata RPSList[16]
An array of metadatas for the active frames in the DPB.
__u32 bPresent
Boolean value indicating if the frame is present in DPB.
__u32 FrameType
Type of frame: 0 = B 1 = P 2 = I.
v4l2_enc_gdr_params * VideoEncGDRParams
Pointer to the GDR params structure when GDR param is in metadata_flag.
Holds the the frame specific metadata for a reference frame.
Holds encoder virtual buffer size parameters, to be used with V4L2_CID_MPEG_VIDEOENC_VIRTUALBUFFER_SI...
__u32 bLTRefFrame
Boolean value indicating if the frame is a long term reference frame.
Holds the the frame specific metadata for the current frame.
__u32 bPredicted
Boolean value indicating if it is a predicted frame.
__u32 MinQpP
Minimum QP value for P frame.
struct v4l2_enc_enable_roi_param_ v4l2_enc_enable_roi_param
Holds the params to configure encoder for ROI parameters encoding.
struct _v4l2_enc_frame_prop v4l2_enc_frame_prop
Holds the encoder frame property.
__u32 EncodedFrameBits
Number of bits needed to encode the frame.
Holds the params to configure encoder for external rps control to be used with V4L2_CID_MPEG_VIDEOENC...
struct MVInfo_ MVInfo
Holds the motion vector parameters for a single macro block.
struct v4l2_enc_enable_reconcrc_param_ v4l2_enc_enable_reconcrc_param
Holds the params to configure encoder for Reconstructed CRC encoding.
__u32 nFrameId
unique Id of current frame.
v4l2_ctrl_videodec_dpbinfometadata dpbInfo
Holds the current DPB information of the decoder.
v4l2_ctrl_hevcdec_bufmetadata HEVCDecParams
H.265 specific metadata.
__u8 bLTRefFrame
Boolean value indicating if set Long Term Ref Flag.
Holds the params to configure encoder for external rate control mode to be used with V4L2_CID_MPEG_VI...
Identity (no rotation).
Encoder HWPreset with per frame encode time Slow.
__u8 bEnableExternalRPS
Boolean value indicating if enabled External RPS control.
Holds the encoder quality parameters for a single ROI region.
Nicest interpolation method.
Indoor Medium Light TNR algorithm.
v4l2_enc_frame_ReconCRC_params * VideoReconCRCParams
Pointer to the Reconstructed CRC parameter structure when ReconCRC param is in metadata flag...
__u32 DecodedMBs
Number of macro blocks decoded without error.
Holds the encoder frame external rate control parameters to be used with V4L2_CID_MPEG_VIDEOENC_INPUT...
__u32 flag
Flag to indicate which inputbuffer metadata is valid.
__u32 nFrameId
Unique frame ID.
Holds encoder number of reference frame parameters, to be used with V4L2_CID_MPEG_VIDEOENC_NUM_REFERE...
struct v4l2_enc_num_ref_frames_ v4l2_enc_num_ref_frames
Holds encoder number of reference frame parameters, to be used with V4L2_CID_MPEG_VIDEOENC_NUM_REFERE...
struct v4l2_enc_frame_ext_rate_ctrl_params_ v4l2_enc_frame_ext_rate_ctrl_params
Holds the encoder frame external rate control parameters to be used with V4L2_CID_MPEG_VIDEOENC_INPUT...
__u32 nCurrentRefFrameId
Reference frame ID used for Motion Estimation of current frame, ignored for IDR.
Holds the encoder GDR parameters to be used with V4L2_CID_MPEG_VIDEOENC_INPUT_METADATA IOCTL...
Holds the metadata parameters for video encoder and decoder.
struct _v4l2_ctrl_video_qp_range v4l2_ctrl_video_qp_range
Holds the encoder frame min/max QP parameters.
__u32 nPictureOrderCnt
Picture order count of the current frame.
__u32 nPictureOrderCnt
Picture order count of the frame.
struct _v4l2_ctrl_video_hdrmasteringdisplaydata v4l2_ctrl_video_hdrmasteringdisplaydata
HDR Metadata.
Extension(full range [0 255] to standard(limited range [16 235])
Holds the encoder frame external rps control parameters to be used with V4L2_CID_MPEG_VIDEOENC_INPUT_...
__u8 bLTRefFrame
Long Term Ref Flag.
__u32 slice_length
Size of the slice in either number of bytes or number of macro blocks.
v4l2_enc_frame_full_prop RPSList[V4L2_MAX_REF_FRAMES]
RPS List including most recent frame if it is reference frame.
__u32 frames
Number of reference frames.
__u32 nBitStreamError
Bits represent types of error as defined with v4l2_videodec_input_error_type.
v4l2_enc_ROI_param ROI_params[V4L2_MAX_ROI_REGIONS]
Array of indiviudal ROI parameters.
Rotate counter-clockwise 90 degrees.
struct v4l2_rect ReconCRCRect
Rectangle to specify the co-ordinates of the input frame used to calculate reconstructed picture CRC...
__u8 set_max_enc_clock
Boolean value indicating if encoder set to max clock.
__u8 bRefFrame
Boolean value indicating if current frame referenced or non-referenced.
__u32 nCurrentRefFrameId
frame id of reference frame to be used for motion search, ignored for IDR.
Holds H.264 specific decoder metadata for the frame.
Default TNR algorithm.
v4l2_skip_frames_type
Enum v4l2_skip_frames_type, possible methods for decoder skip frames.
Encoder HWPreset with per frame encode time UltraFast.
__u8 ucMatrixCoefficients
Matrix coefficients.
struct v4l2_enc_virtual_buffer_size_ v4l2_enc_virtual_buffer_size
Holds encoder virtual buffer size parameters, to be used with V4L2_CID_MPEG_VIDEOENC_VIRTUALBUFFER_SI...
__u32 FrameMaxQP
Maximum QP value in the frame.
Input metadata structure contains External RC parameters.
struct v4l2_enc_frame_full_prop_ v4l2_enc_frame_full_prop
Holds the RPS List parameters of encoded frame.
v4l2_yuv_rescale_method
Specifies the types of YUV rescale methods.
Holds the params to configure encoder for ROI parameters encoding.
struct v4l2_enc_slice_length_param_ v4l2_enc_slice_length_param
Holds encoder slice length parameters, to be used with V4L2_CID_MPEG_VIDEOENC_SLICE_LENGTH_PARAM IOCT...
__u32 nLTRFrameIdx
Long Term Frame Index of the current frame.
struct v4l2_ctrl_video_displaydata_ v4l2_ctrl_video_displaydata
v4l2_interpolation_method
Specifies the types of interpolation methods.
struct v4l2_ctrl_hevcdec_bufmetadata_ v4l2_ctrl_hevcdec_bufmetadata
Holds H.265 specific decoder metadata for the frame.
enum v4l2_enc_hw_preset_type hw_preset_type
Type in which the encoder hw preset is specified, one of type v4l2_enc_hw_preset_type.
__u32 nActiveRefFrames
Number of active reference frames.
Rotate clockwise 90 degrees.
Holds the motion vector parameters for one complete frame.
__u32 bufSize
Size of the pMVInfo buffer, in bytes.
Input metadata structure contains GDR parameters.
struct v4l2_ctrl_videoenc_outputbuf_metadata_MV_ v4l2_ctrl_videoenc_outputbuf_metadata_MV
Holds the motion vector parameters for one complete frame.
struct v4l2_enc_enable_ext_rate_ctrl_ v4l2_enc_enable_ext_rate_ctr
Holds the params to configure encoder for external rate control mode to be used with V4L2_CID_MPEG_VI...
Smart interpolation method.
Input metadata structure contains ReconCRC parameters.
__u32 bRefFrame
Boolean value indicating if the current frame is a reference frame.
__u32 FrameMinQP
Minumum QP value in the frame.
v4l2_videodec_input_error_type
Enum v4l2_videodec_input_error_type, possible error types for input stream.
__u32 bLTRefFrame
Boolean value indicating if the current frame is a long term reference frame.
Holds the encoder frame Reconstructed CRC parameters.
Holds the video decoder output metadata for a frame.
Nearest interpolation method.
__u8 bGapsInFrameNumAllowed
Boolean value indicating if allowed gap in frame number.
Encoder HWPreset with per frame encode time Fast.
v4l2_enc_hw_preset_type
Specifies the encoder HW Preset type.
Input metadata structure contains ROI parameters.
Outdoor Low Light TNR algorithm.
v4l2_ctrl_videoenc_outputbuf_metadata * VideoEncMetadata
A pointer to v4l2_ctrl_videoenc_outputbuf_metadata structure.
v4l2_enc_frame_ext_rps_ctrl_params * VideoEncRPSParams
Pointer to the External RPL control parameter structure when RPS param is in metadata flag...
Flip across upper right/lower left diagonal.
Bi-Linear interpolation method.
Holds the encoder frame min/max QP parameters.
struct v4l2_enc_hw_preset_type_param_ v4l2_enc_hw_preset_type_param
Holds encoder HW Preset type parameters to be used with V4L2_CID_MPEG_VIDEOENC_HW_PRESET_TYPE_PARAM I...
Skip all non-reference frames.
struct v4l2_ctrl_videodec_refframe_metadata_ v4l2_ctrl_videodec_refframe_metadata
Holds the the frame specific metadata for a reference frame.
#define V4L2_MAX_ROI_REGIONS
Defines the maximum number of ROI regions supported by the encoder.
struct v4l2_ctrl_video_metadata_ v4l2_ctrl_video_metadata
Holds the metadata parameters for video encoder and decoder.
missing reference frame error.
Holds H.265 specific decoder metadata for the frame.
__u32 config_store
Config store integer to which this control is to be applied.
__u32 ConcealedMBs
Number of macro blocks where error was concealed.
__u32 bIdrFrame
Boolean value indicating if the frame is an IDR.
Holds the decoder error status metadata for the frame.
Outdoor High Light TNR algorithm.
v4l2_ctrl_videodec_dpbinfometadata dpbInfo
Holds the current DPB information of the decoder.
__u32 size
Size of the virtual buffer, in bits.
Slice size is specified in terms of number of bytes.
union v4l2_ctrl_videodec_outputbuf_metadata_::@1 CodecParams
Codec specific metadata for the frame.
struct v4l2_enc_enable_ext_rps_ctrl_ v4l2_enc_enable_ext_rps_ctr
Holds the params to configure encoder for external rps control to be used with V4L2_CID_MPEG_VIDEOENC...
__u32 nTargetFrameBits
Target frame bits.
__u32 nGDRFrames
Parameter for GDR (Intra Refresh) for specified number of frames.
struct v4l2_enc_slice_intrarefresh_param_ v4l2_enc_slice_intrarefresh_param
Holds encoder slice intrareferesh parameters, to be used with V4L2_CID_MPEG_VIDEOENC_SLICE_INTRAREFRE...
struct v4l2_enc_gdr_params_ v4l2_enc_gdr_params
Holds the encoder GDR parameters to be used with V4L2_CID_MPEG_VIDEOENC_INPUT_METADATA IOCTL...
__s32 QPdelta
QP delta for the region.
__u32 bValidFrameStatus
Boolean value indicating if FrameDecStats has valid contents.
v4l2_enc_frame_ext_rate_ctrl_params * VideoEncExtRCParams
Pointer to the External Rate control parameter structure when RC param is in metadata flag...
__u32 bIdrFrame
Boolean value indicating if the current frame is an IDR.
__u32 buffer_index
Index of the buffer whose metadata is required.
__u32 MaxQpB
Maximum QP value for B frame.
v4l2_ctrl_videoenc_outputbuf_metadata_MV * VideoEncMetadataMV
A pointer to v4l2_ctrl_videoenc_outputbuf_metadata_MV structure.
__s32 mv_x
Number of pixels the macro block moved in horizontal direction.
v4l2_enc_input_metadata_param
Specifies the input buffer metadata flag.
v4l2_ctrl_h264dec_bufmetadata H264DecParams
H.264 specific metadata.
enum v4l2_enc_slice_length_type slice_length_type
Type in which the slice length is specified, one of type v4l2_enc_slice_length_type.
__u8 ucTransferCharacteristics
Transfer characteristics.
Holds the encoder frame input metadata parameters.
Holds encoder slice length parameters, to be used with V4L2_CID_MPEG_VIDEOENC_SLICE_LENGTH_PARAM IOCT...
Holds encoder slice intrareferesh parameters, to be used with V4L2_CID_MPEG_VIDEOENC_SLICE_INTRAREFRE...
v4l2_enc_frame_prop RPSList[V4L2_MAX_REF_FRAMES]
Array of RPS.
__u32 nActiveRefFrames
of valid entries in RPS, 0 means IDR.
__u32 DecodeError
Error types: bit 0: Fatal bit 1: MB level syntax bit 2: Missing Slice(s) bit 3: PrevFrameLostFlag.
v4l2_flip_method
Specifies the types of rotation/flip algorithms.
v4l2_ctrl_videodec_inputbuf_metadata * VideoDecHeaderErrorMetadata
A pointer to v4l2_ctrl_videodec_inputbuf_metadata structure.
struct v4l2_enc_ROI_param_ v4l2_enc_ROI_param
Holds the encoder quality parameters for a single ROI region.
__u32 interval
Slice intrarefresh interval, in number of slices.
Do not skip any frame.
Outdoor Medium Light TNR algorithm.
struct v4l2_ctrl_h264dec_bufmetadata_ v4l2_ctrl_h264dec_bufmetadata
Holds H.264 specific decoder metadata for the frame.
#define V4L2_MAX_REF_FRAMES
Maximum number of reference frames supported by the encoder.
__u32 MaxQpP
Maximum QP value for P frame.
__u32 config_store
Config store integer to which these parameters are to be applied.
__u8 bEnableReconCRC
Boolean value to indicating Reconstructed CRC encoding.
Input metadata structure contains External RPS parameters.
Select NVDEC 0 IP.
struct v4l2_ctrl_videodec_currentframe_metadata_ v4l2_ctrl_videodec_currentframe_metadata
Holds the the frame specific metadata for the current frame.
Indoor High Light TNR algorithm.
__u32 nPocLsbBits
Holds the number of bits in the frame.
v4l2_ctrl_videodec_currentframe_metadata currentFrame
Metadata for the current decoded frame.
struct v4l2_enc_frame_ROI_params_ v4l2_enc_frame_ROI_params
Holds the encoder frame ROI parameters to be used with V4L2_CID_MPEG_VIDEOENC_ROI_PARAMS IOCTL...
__u8 EndofFrame
Boolean value indicating end of frame in case of multi slice encoding.
Holds the params to configure encoder for Reconstructed CRC encoding.
struct v4l2_enc_frame_ReconCRC_params_ v4l2_enc_frame_ReconCRC_params
Holds the encoder frame Reconstructed CRC parameters.
v4l2_enc_frame_ROI_params * VideoEncROIParams
Pointer to the ROI params structure when ROI param is in metadata_flag.
__u32 nMaxRefFrames
Max Number of reference frames to use for inter-motion search.
__u32 FrameType
Type of frame: 0 = B 1 = P 2 = I.
__u32 num_ROI_regions
Number of regions.
struct v4l2_ctrl_videodec_inputbuf_metadata_ v4l2_ctrl_videodec_inputbuf_metadata
Holds the video decoder input header error metadata for a frame.