L4T Multimedia API Reference

28.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, 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 
65 #define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '4', '4')
66 #define V4L2_PIX_FMT_YUV422M v4l2_fourcc('4', '2', '2', 'M')
67 #define V4L2_PIX_FMT_YUV422RM v4l2_fourcc('4', '2', 'R', 'M')
68 
69 #define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4')
70 #define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F')
72 #define V4L2_CTRL_FLAG_CAN_STORE 0x0200
73 
79 #define V4L2_EVENT_RESOLUTION_CHANGE 5
80 
83 /*---------------Below are changes from the v4l2-controls.h----------------------*/
84 
85 #define V4L2_CID_MPEG_VIDEO_H264_SPS (V4L2_CID_MPEG_BASE+383)
86 #define V4L2_CID_MPEG_VIDEO_H264_PPS (V4L2_CID_MPEG_BASE+384)
87 #define V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX (V4L2_CID_MPEG_BASE+385)
88 #define V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAM (V4L2_CID_MPEG_BASE+386)
89 #define V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAM (V4L2_CID_MPEG_BASE+387)
90 
91 #define V4L2_CID_MPEG_VIDEO_VP8_FRAME_HDR (V4L2_CID_MPEG_BASE+512)
92 
100 #define V4L2_CID_MPEG_VIDEO_H265_PROFILE (V4L2_CID_MPEG_BASE+513)
101 
112 };
113 
118 #define V4L2_CID_MPEG_VIDEO_IDR_INTERVAL (V4L2_CID_MPEG_BASE+514)
119 
122 /* Complex controls */
123 
124 #define V4L2_H264_SPS_CONSTRAINT_SET0_FLAG 0x01
125 #define V4L2_H264_SPS_CONSTRAINT_SET1_FLAG 0x02
126 #define V4L2_H264_SPS_CONSTRAINT_SET2_FLAG 0x04
127 #define V4L2_H264_SPS_CONSTRAINT_SET3_FLAG 0x08
128 #define V4L2_H264_SPS_CONSTRAINT_SET4_FLAG 0x10
129 #define V4L2_H264_SPS_CONSTRAINT_SET5_FLAG 0x20
130 
131 #define V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE 0x01
132 #define V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS 0x02
133 #define V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO 0x04
134 #define V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED 0x08
135 #define V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY 0x10
136 #define V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD 0x20
137 #define V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE 0x40
138 struct v4l2_ctrl_h264_sps {
139  __u8 profile_idc;
140  __u8 constraint_set_flags;
141  __u8 level_idc;
142  __u8 seq_parameter_set_id;
143  __u8 chroma_format_idc;
144  __u8 bit_depth_luma_minus8;
145  __u8 bit_depth_chroma_minus8;
146  __u8 log2_max_frame_num_minus4;
147  __u8 pic_order_cnt_type;
148  __u8 log2_max_pic_order_cnt_lsb_minus4;
149  __s32 offset_for_non_ref_pic;
150  __s32 offset_for_top_to_bottom_field;
151  __u8 num_ref_frames_in_pic_order_cnt_cycle;
152  __s32 offset_for_ref_frame[255];
153  __u8 max_num_ref_frames;
154  __u16 pic_width_in_mbs_minus1;
155  __u16 pic_height_in_map_units_minus1;
156  __u8 flags;
157 };
158 
159 #define V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE 0x0001
160 #define V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT 0x0002
161 #define V4L2_H264_PPS_FLAG_WEIGHTED_PRED 0x0004
162 #define V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT 0x0008
163 #define V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED 0x0010
164 #define V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT 0x0020
165 #define V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE 0x0040
166 #define V4L2_H264_PPS_FLAG_PIC_SCALING_MATRIX_PRESENT 0x0080
167 struct v4l2_ctrl_h264_pps {
168  __u8 pic_parameter_set_id;
169  __u8 seq_parameter_set_id;
170  __u8 num_slice_groups_minus1;
171  __u8 num_ref_idx_l0_default_active_minus1;
172  __u8 num_ref_idx_l1_default_active_minus1;
173  __u8 weighted_bipred_idc;
174  __s8 pic_init_qp_minus26;
175  __s8 pic_init_qs_minus26;
176  __s8 chroma_qp_index_offset;
177  __s8 second_chroma_qp_index_offset;
178  __u8 flags;
179 };
180 
181 struct v4l2_ctrl_h264_scaling_matrix {
182  __u8 scaling_list_4x4[6][16];
183  __u8 scaling_list_8x8[6][64];
184 };
185 
186 struct v4l2_h264_weight_factors {
187  __s8 luma_weight[32];
188  __s8 luma_offset[32];
189  __s8 chroma_weight[32][2];
190  __s8 chroma_offset[32][2];
191 };
192 
193 struct v4l2_h264_pred_weight_table {
194  __u8 luma_log2_weight_denom;
195  __u8 chroma_log2_weight_denom;
196  struct v4l2_h264_weight_factors weight_factors[2];
197 };
198 
199 #define V4L2_SLICE_FLAG_FIELD_PIC 0x01
200 #define V4L2_SLICE_FLAG_BOTTOM_FIELD 0x02
201 #define V4L2_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x04
202 #define V4L2_SLICE_FLAG_SP_FOR_SWITCH 0x08
203 struct v4l2_ctrl_h264_slice_param {
205  __u32 size;
207  __u32 header_bit_size;
208 
209  __u16 first_mb_in_slice;
210  __u8 slice_type;
211  __u8 pic_parameter_set_id;
212  __u8 colour_plane_id;
213  __u16 frame_num;
214  __u16 idr_pic_id;
215  __u16 pic_order_cnt_lsb;
216  __s32 delta_pic_order_cnt_bottom;
217  __s32 delta_pic_order_cnt0;
218  __s32 delta_pic_order_cnt1;
219  __u8 redundant_pic_cnt;
220 
221  struct v4l2_h264_pred_weight_table pred_weight_table;
222  /* Size in bits of dec_ref_pic_marking() syntax element. */
223  __u32 dec_ref_pic_marking_bit_size;
224  /* Size in bits of pic order count syntax. */
225  __u32 pic_order_cnt_bit_size;
226 
227  __u8 cabac_init_idc;
228  __s8 slice_qp_delta;
229  __s8 slice_qs_delta;
230  __u8 disable_deblocking_filter_idc;
231  __s8 slice_alpha_c0_offset_div2;
232  __s8 slice_beta_offset_div2;
233  __u32 slice_group_change_cycle;
234 
235  __u8 num_ref_idx_l0_active_minus1;
236  __u8 num_ref_idx_l1_active_minus1;
237  /* Entries on each list are indices
238  * into v4l2_ctrl_h264_decode_param.dpb[]. */
239  __u8 ref_pic_list0[32];
240  __u8 ref_pic_list1[32];
241 
242  __u8 flags;
243 };
244 
247 #define V4L2_H264_DPB_ENTRY_FLAG_ACTIVE 0x01
248 #define V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM 0x02
249 struct v4l2_h264_dpb_entry {
250  __u32 buf_index;
251  __u16 frame_num;
252  __u16 pic_num;
254  __s32 top_field_order_cnt;
255  __s32 bottom_field_order_cnt;
256  __u8 flags; /* V4L2_H264_DPB_ENTRY_FLAG_* */
257 };
258 
259 struct v4l2_ctrl_h264_decode_param {
260  __u32 num_slices;
261  __u8 idr_pic_flag;
262  __u8 nal_ref_idc;
263  __s32 top_field_order_cnt;
264  __s32 bottom_field_order_cnt;
265  __u8 ref_pic_list_p0[32];
266  __u8 ref_pic_list_b0[32];
267  __u8 ref_pic_list_b1[32];
268  struct v4l2_h264_dpb_entry dpb[16];
269 };
270 
271 #define V4L2_VP8_SEGMNT_HDR_FLAG_ENABLED 0x01
272 #define V4L2_VP8_SEGMNT_HDR_FLAG_UPDATE_MAP 0x02
273 #define V4L2_VP8_SEGMNT_HDR_FLAG_UPDATE_FEATURE_DATA 0x04
274 struct v4l2_vp8_sgmnt_hdr {
275  __u8 segment_feature_mode;
276 
277  __s8 quant_update[4];
278  __s8 lf_update[4];
279  __u8 segment_probs[3];
280 
281  __u8 flags;
282 };
283 
284 #define V4L2_VP8_LF_HDR_ADJ_ENABLE 0x01
285 #define V4L2_VP8_LF_HDR_DELTA_UPDATE 0x02
286 struct v4l2_vp8_loopfilter_hdr {
287  __u8 type;
288  __u8 level;
289  __u8 sharpness_level;
290  __s8 ref_frm_delta_magnitude[4];
291  __s8 mb_mode_delta_magnitude[4];
292 
293  __u8 flags;
294 };
295 
296 struct v4l2_vp8_quantization_hdr {
297  __u8 y_ac_qi;
298  __s8 y_dc_delta;
299  __s8 y2_dc_delta;
300  __s8 y2_ac_delta;
301  __s8 uv_dc_delta;
302  __s8 uv_ac_delta;
303  __u16 dequant_factors[4][3][2];
304 };
305 
306 struct v4l2_vp8_entropy_hdr {
307  __u8 coeff_probs[4][8][3][11];
308  __u8 y_mode_probs[4];
309  __u8 uv_mode_probs[3];
310  __u8 mv_probs[2][19];
311 };
312 
313 #define V4L2_VP8_FRAME_HDR_FLAG_EXPERIMENTAL 0x01
314 #define V4L2_VP8_FRAME_HDR_FLAG_SHOW_FRAME 0x02
315 #define V4L2_VP8_FRAME_HDR_FLAG_MB_NO_SKIP_COEFF 0x04
316 struct v4l2_ctrl_vp8_frame_hdr {
318  __u8 key_frame;
319  __u8 version;
320 
322  __u16 width;
323  __u8 horizontal_scale;
324  __u16 height;
325  __u8 vertical_scale;
326 
327  struct v4l2_vp8_sgmnt_hdr sgmnt_hdr;
328  struct v4l2_vp8_loopfilter_hdr lf_hdr;
329  struct v4l2_vp8_quantization_hdr quant_hdr;
330  struct v4l2_vp8_entropy_hdr entropy_hdr;
331 
332  __u8 sign_bias_golden;
333  __u8 sign_bias_alternate;
334 
335  __u8 prob_skip_false;
336  __u8 prob_intra;
337  __u8 prob_last;
338  __u8 prob_gf;
339 
340  __u32 first_part_size;
345  __u32 first_part_offset;
346  __u32 macroblock_bit_offset;
347 
348  __u8 num_dct_parts;
349  __u32 dct_part_sizes[8];
350 
351  __u8 bool_dec_range;
352  __u8 bool_dec_value;
353  __u8 bool_dec_count;
354 
356  __u32 last_frame;
358  __u32 golden_frame;
360  __u32 alt_frame;
361 
362  __u8 flags;
363 };
364 
367 /*---------------Add below NVIDIA specific extensions ----------------------*/
368 
446 #define V4L2_CID_MPEG_VIDEO_DISABLE_COMPLETE_FRAME_INPUT (V4L2_CID_MPEG_BASE+515)
447 
458 #define V4L2_CID_MPEG_VIDEO_DISABLE_DPB (V4L2_CID_MPEG_BASE+516)
459 
468 #define V4L2_CID_MPEG_VIDEO_ERROR_REPORTING (V4L2_CID_MPEG_BASE+517)
469 
480 #define V4L2_CID_MPEG_VIDEO_SKIP_FRAMES (V4L2_CID_MPEG_BASE+518)
481 
495 #define V4L2_CID_MPEG_VIDEODEC_METADATA (V4L2_CID_MPEG_BASE+519)
496 
566 #define V4L2_CID_VIDEO_CONVERT_OUTPUT_PLANE_LAYOUT (V4L2_CID_MPEG_BASE+520)
567 
575 #define V4L2_CID_VIDEO_CONVERT_CAPTURE_PLANE_LAYOUT (V4L2_CID_MPEG_BASE+521)
576 
584 #define V4L2_CID_VIDEO_CONVERT_FLIP_METHOD (V4L2_CID_MPEG_BASE+522)
585 
593 #define V4L2_CID_VIDEO_CONVERT_INTERPOLATION_METHOD (V4L2_CID_MPEG_BASE+523)
594 
604 #define V4L2_CID_VIDEO_CONVERT_TNR_ALGORITHM (V4L2_CID_MPEG_BASE+524)
605 
715 #define V4L2_CID_MPEG_VIDEOENC_TEMPORAL_TRADEOFF_LEVEL (V4L2_CID_MPEG_BASE+525)
716 
726 #define V4L2_CID_MPEG_VIDEOENC_SLICE_LENGTH_PARAM (V4L2_CID_MPEG_BASE+526)
727 
738 #define V4L2_CID_MPEG_VIDEOENC_ROI_PARAMS (V4L2_CID_MPEG_BASE+527)
739 
749 #define V4L2_CID_MPEG_VIDEOENC_VIRTUALBUFFER_SIZE (V4L2_CID_MPEG_BASE+528)
750 
759 #define V4L2_CID_MPEG_VIDEOENC_NUM_REFERENCE_FRAMES (V4L2_CID_MPEG_BASE+529)
760 
770 #define V4L2_CID_MPEG_VIDEOENC_SLICE_INTRAREFRESH_PARAM (V4L2_CID_MPEG_BASE+530)
771 
781 #define V4L2_CID_MPEG_VIDEOENC_NUM_BFRAMES (V4L2_CID_MPEG_BASE+531)
782 
791 #define V4L2_CID_MPEG_VIDEOENC_INSERT_SPS_PPS_AT_IDR (V4L2_CID_MPEG_BASE+532)
792 
803 #define V4L2_CID_MPEG_VIDEOENC_METADATA (V4L2_CID_MPEG_BASE+533)
804 
813 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_METADATA_MV (V4L2_CID_MPEG_BASE+534)
814 
825 #define V4L2_CID_MPEG_VIDEOENC_METADATA_MV (V4L2_CID_MPEG_BASE+535)
826 
836 #define V4L2_CID_MPEG_VIDEOENC_QP_RANGE (V4L2_CID_MPEG_BASE+536)
837 
847 #define V4L2_CID_MPEG_VIDEOENC_HW_PRESET_TYPE_PARAM (V4L2_CID_MPEG_BASE+537)
848 
860 #define V4L2_CID_MPEG_VIDEOENC_INPUT_METADATA (V4L2_CID_MPEG_BASE+538)
861 
871 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_EXTERNAL_RPS_CONTROL (V4L2_CID_MPEG_BASE+539)
872 
882 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_EXTERNAL_RATE_CONTROL (V4L2_CID_MPEG_BASE+540)
883 
893 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_ROI_PARAM (V4L2_CID_MPEG_BASE+541)
894 
904 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_RECONCRC_PARAM (V4L2_CID_MPEG_BASE+542)
905 
914 #define V4L2_CID_MPEG_VIDEOENC_INSERT_VUI (V4L2_CID_MPEG_BASE+543)
915 
924 #define V4L2_CID_MPEG_VIDEOENC_INSERT_AUD (V4L2_CID_MPEG_BASE+544)
925 
939 };
940 
945 {
951  __u32 DecodeError;
953  __u32 DecodedMBs;
961 
966 {
968  __u32 bPresent;
970  __u32 bIdrFrame;
972  __u32 bLTRefFrame;
974  __u32 bPredicted;
978  __u32 nFrameNum;
982 
987 {
989  __u32 bRefFrame;
991  __u32 bIdrFrame;
993  __u32 bLTRefFrame;
997  __u32 nFrameNum;
1001 
1006 {
1015 
1020 {
1027  __u32 FrameType;
1031 
1036 {
1043  __u32 FrameType;
1047 
1052 {
1064  union {
1069  }CodecParams;
1090 };
1091 
1104 };
1105 
1111 {
1117 
1126 };
1127 
1142 };
1143 
1149 {
1155 
1161 {
1163  __u32 size;
1165 
1173 {
1175  __u32 frames;
1177 
1183 {
1185  __u32 interval;
1187 
1191 #define V4L2_MAX_ROI_REGIONS 8
1192 
1196 typedef struct v4l2_enc_ROI_param_
1197 {
1199  struct v4l2_rect ROIRect;
1201  __s32 QPdelta;
1203 
1209 {
1219 
1223 typedef struct MVInfo_ {
1225  __s32 mv_x : 16;
1227  __s32 mv_y : 14;
1229  __u32 weight : 2;
1230 } MVInfo;
1231 
1237  __u32 bufSize;
1241 
1245 #define V4L2_MAX_REF_FRAMES 8
1246 
1251 {
1253  __u32 nFrameId;
1261  __u32 nFrameNum;
1265 
1271 {
1273  __u8 KeyFrame;
1277  __u16 AvgQP;
1291  __u32 FrameMinQP;
1293  __u32 FrameMaxQP;
1304 
1312 {
1328 
1329 
1334 typedef struct v4l2_enc_gdr_params_
1335 {
1337  __u32 nGDRFrames;
1339 
1345 {
1350  /* TODO : Check for field details. */
1352  /* TODO : Check for field details. */
1355 
1356 
1360 typedef struct _v4l2_enc_frame_prop
1361 {
1363  __u32 nFrameId;
1367 
1373 {
1375  __u32 nFrameId;
1385  __u32 nCurrentRefFrameId;
1389 
1390 
1396 {
1402 
1408 {
1412  __u32 nFrameQP;
1420 
1427 {
1431 
1438 {
1442 
1449 {
1452  struct v4l2_rect ReconCRCRect;
1454 
1461 {
1463  __u32 flag;
1482 
1487 #define QP_RETAIN_VAL -1
1488 
1495 {
1497  __u32 MinQpI;
1499  __u32 MaxQpI;
1501  __u32 MinQpP;
1503  __u32 MaxQpP;
1505  __u32 MinQpB;
1507  __u32 MaxQpB;
1520 };
1521 
1534 };
1535 
1544 };
1545 
1557 };
1559 #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.
__u8 bEnableExternalPictureRC
Boolean value indicating if enabled External Picture RC.
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...
__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.
Flip across upper left/lower right diagonal.
Holds the RPS List parameters of encoded frame.
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_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.
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.
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.
Linear interpolation method.
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.
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.
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.
__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.
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.
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.
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.
union v4l2_ctrl_videodec_outputbuf_metadata_::@0 CodecParams
Codec specific metadata for the frame.
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.