L4T Multimedia API Reference

27.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 
60 #define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '4', '4')
61 #define V4L2_PIX_FMT_YUV422M v4l2_fourcc('4', '2', '2', 'M')
62 #define V4L2_PIX_FMT_YUV422RM v4l2_fourcc('4', '2', 'R', 'M')
63 
64 #define V4L2_PIX_FMT_H264_SLICE v4l2_fourcc('S', '2', '6', '4')
65 #define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F')
67 #define V4L2_CTRL_FLAG_CAN_STORE 0x0200
68 
74 #define V4L2_EVENT_RESOLUTION_CHANGE 5
75 
78 /*---------------Below are changes from the v4l2-controls.h----------------------*/
79 
80 #define V4L2_CID_MPEG_VIDEO_H264_SPS (V4L2_CID_MPEG_BASE+383)
81 #define V4L2_CID_MPEG_VIDEO_H264_PPS (V4L2_CID_MPEG_BASE+384)
82 #define V4L2_CID_MPEG_VIDEO_H264_SCALING_MATRIX (V4L2_CID_MPEG_BASE+385)
83 #define V4L2_CID_MPEG_VIDEO_H264_SLICE_PARAM (V4L2_CID_MPEG_BASE+386)
84 #define V4L2_CID_MPEG_VIDEO_H264_DECODE_PARAM (V4L2_CID_MPEG_BASE+387)
85 
86 #define V4L2_CID_MPEG_VIDEO_VP8_FRAME_HDR (V4L2_CID_MPEG_BASE+512)
87 
95 #define V4L2_CID_MPEG_VIDEO_H265_PROFILE (V4L2_CID_MPEG_BASE+513)
96 
107 };
108 
113 #define V4L2_CID_MPEG_VIDEO_IDR_INTERVAL (V4L2_CID_MPEG_BASE+514)
114 
117 /* Complex controls. */
118 
119 #define V4L2_H264_SPS_CONSTRAINT_SET0_FLAG 0x01
120 #define V4L2_H264_SPS_CONSTRAINT_SET1_FLAG 0x02
121 #define V4L2_H264_SPS_CONSTRAINT_SET2_FLAG 0x04
122 #define V4L2_H264_SPS_CONSTRAINT_SET3_FLAG 0x08
123 #define V4L2_H264_SPS_CONSTRAINT_SET4_FLAG 0x10
124 #define V4L2_H264_SPS_CONSTRAINT_SET5_FLAG 0x20
125 
126 #define V4L2_H264_SPS_FLAG_SEPARATE_COLOUR_PLANE 0x01
127 #define V4L2_H264_SPS_FLAG_QPPRIME_Y_ZERO_TRANSFORM_BYPASS 0x02
128 #define V4L2_H264_SPS_FLAG_DELTA_PIC_ORDER_ALWAYS_ZERO 0x04
129 #define V4L2_H264_SPS_FLAG_GAPS_IN_FRAME_NUM_VALUE_ALLOWED 0x08
130 #define V4L2_H264_SPS_FLAG_FRAME_MBS_ONLY 0x10
131 #define V4L2_H264_SPS_FLAG_MB_ADAPTIVE_FRAME_FIELD 0x20
132 #define V4L2_H264_SPS_FLAG_DIRECT_8X8_INFERENCE 0x40
133 struct v4l2_ctrl_h264_sps {
134  __u8 profile_idc;
135  __u8 constraint_set_flags;
136  __u8 level_idc;
137  __u8 seq_parameter_set_id;
138  __u8 chroma_format_idc;
139  __u8 bit_depth_luma_minus8;
140  __u8 bit_depth_chroma_minus8;
141  __u8 log2_max_frame_num_minus4;
142  __u8 pic_order_cnt_type;
143  __u8 log2_max_pic_order_cnt_lsb_minus4;
144  __s32 offset_for_non_ref_pic;
145  __s32 offset_for_top_to_bottom_field;
146  __u8 num_ref_frames_in_pic_order_cnt_cycle;
147  __s32 offset_for_ref_frame[255];
148  __u8 max_num_ref_frames;
149  __u16 pic_width_in_mbs_minus1;
150  __u16 pic_height_in_map_units_minus1;
151  __u8 flags;
152 };
153 
154 #define V4L2_H264_PPS_FLAG_ENTROPY_CODING_MODE 0x0001
155 #define V4L2_H264_PPS_FLAG_BOTTOM_FIELD_PIC_ORDER_IN_FRAME_PRESENT 0x0002
156 #define V4L2_H264_PPS_FLAG_WEIGHTED_PRED 0x0004
157 #define V4L2_H264_PPS_FLAG_DEBLOCKING_FILTER_CONTROL_PRESENT 0x0008
158 #define V4L2_H264_PPS_FLAG_CONSTRAINED_INTRA_PRED 0x0010
159 #define V4L2_H264_PPS_FLAG_REDUNDANT_PIC_CNT_PRESENT 0x0020
160 #define V4L2_H264_PPS_FLAG_TRANSFORM_8X8_MODE 0x0040
161 #define V4L2_H264_PPS_FLAG_PIC_SCALING_MATRIX_PRESENT 0x0080
162 struct v4l2_ctrl_h264_pps {
163  __u8 pic_parameter_set_id;
164  __u8 seq_parameter_set_id;
165  __u8 num_slice_groups_minus1;
166  __u8 num_ref_idx_l0_default_active_minus1;
167  __u8 num_ref_idx_l1_default_active_minus1;
168  __u8 weighted_bipred_idc;
169  __s8 pic_init_qp_minus26;
170  __s8 pic_init_qs_minus26;
171  __s8 chroma_qp_index_offset;
172  __s8 second_chroma_qp_index_offset;
173  __u8 flags;
174 };
175 
176 struct v4l2_ctrl_h264_scaling_matrix {
177  __u8 scaling_list_4x4[6][16];
178  __u8 scaling_list_8x8[6][64];
179 };
180 
181 struct v4l2_h264_weight_factors {
182  __s8 luma_weight[32];
183  __s8 luma_offset[32];
184  __s8 chroma_weight[32][2];
185  __s8 chroma_offset[32][2];
186 };
187 
188 struct v4l2_h264_pred_weight_table {
189  __u8 luma_log2_weight_denom;
190  __u8 chroma_log2_weight_denom;
191  struct v4l2_h264_weight_factors weight_factors[2];
192 };
193 
194 #define V4L2_SLICE_FLAG_FIELD_PIC 0x01
195 #define V4L2_SLICE_FLAG_BOTTOM_FIELD 0x02
196 #define V4L2_SLICE_FLAG_DIRECT_SPATIAL_MV_PRED 0x04
197 #define V4L2_SLICE_FLAG_SP_FOR_SWITCH 0x08
198 struct v4l2_ctrl_h264_slice_param {
199  /* Size in bytes, including header. */
200  __u32 size;
201  /* Offset in bits to slice_data() from the beginning of this slice. */
202  __u32 header_bit_size;
203 
204  __u16 first_mb_in_slice;
205  __u8 slice_type;
206  __u8 pic_parameter_set_id;
207  __u8 colour_plane_id;
208  __u16 frame_num;
209  __u16 idr_pic_id;
210  __u16 pic_order_cnt_lsb;
211  __s32 delta_pic_order_cnt_bottom;
212  __s32 delta_pic_order_cnt0;
213  __s32 delta_pic_order_cnt1;
214  __u8 redundant_pic_cnt;
215 
216  struct v4l2_h264_pred_weight_table pred_weight_table;
217  /* Size in bits of dec_ref_pic_marking() syntax element. */
218  __u32 dec_ref_pic_marking_bit_size;
219  /* Size in bits of pic order count syntax. */
220  __u32 pic_order_cnt_bit_size;
221 
222  __u8 cabac_init_idc;
223  __s8 slice_qp_delta;
224  __s8 slice_qs_delta;
225  __u8 disable_deblocking_filter_idc;
226  __s8 slice_alpha_c0_offset_div2;
227  __s8 slice_beta_offset_div2;
228  __u32 slice_group_change_cycle;
229 
230  __u8 num_ref_idx_l0_active_minus1;
231  __u8 num_ref_idx_l1_active_minus1;
232  /* Entries on each list are indices
233  * into v4l2_ctrl_h264_decode_param.dpb[]. */
234  __u8 ref_pic_list0[32];
235  __u8 ref_pic_list1[32];
236 
237  __u8 flags;
238 };
239 
241 #define V4L2_H264_DPB_ENTRY_FLAG_ACTIVE 0x01
242 #define V4L2_H264_DPB_ENTRY_FLAG_LONG_TERM 0x02
243 struct v4l2_h264_dpb_entry {
244  __u32 buf_index;
245  __u16 frame_num;
246  __u16 pic_num;
248  __s32 top_field_order_cnt;
249  __s32 bottom_field_order_cnt;
250  __u8 flags; /* V4L2_H264_DPB_ENTRY_FLAG_* */
251 };
252 
253 struct v4l2_ctrl_h264_decode_param {
254  __u32 num_slices;
255  __u8 idr_pic_flag;
256  __u8 nal_ref_idc;
257  __s32 top_field_order_cnt;
258  __s32 bottom_field_order_cnt;
259  __u8 ref_pic_list_p0[32];
260  __u8 ref_pic_list_b0[32];
261  __u8 ref_pic_list_b1[32];
262  struct v4l2_h264_dpb_entry dpb[16];
263 };
264 
265 #define V4L2_VP8_SEGMNT_HDR_FLAG_ENABLED 0x01
266 #define V4L2_VP8_SEGMNT_HDR_FLAG_UPDATE_MAP 0x02
267 #define V4L2_VP8_SEGMNT_HDR_FLAG_UPDATE_FEATURE_DATA 0x04
268 struct v4l2_vp8_sgmnt_hdr {
269  __u8 segment_feature_mode;
270 
271  __s8 quant_update[4];
272  __s8 lf_update[4];
273  __u8 segment_probs[3];
274 
275  __u8 flags;
276 };
277 
278 #define V4L2_VP8_LF_HDR_ADJ_ENABLE 0x01
279 #define V4L2_VP8_LF_HDR_DELTA_UPDATE 0x02
280 struct v4l2_vp8_loopfilter_hdr {
281  __u8 type;
282  __u8 level;
283  __u8 sharpness_level;
284  __s8 ref_frm_delta_magnitude[4];
285  __s8 mb_mode_delta_magnitude[4];
286 
287  __u8 flags;
288 };
289 
290 struct v4l2_vp8_quantization_hdr {
291  __u8 y_ac_qi;
292  __s8 y_dc_delta;
293  __s8 y2_dc_delta;
294  __s8 y2_ac_delta;
295  __s8 uv_dc_delta;
296  __s8 uv_ac_delta;
297  __u16 dequant_factors[4][3][2];
298 };
299 
300 struct v4l2_vp8_entropy_hdr {
301  __u8 coeff_probs[4][8][3][11];
302  __u8 y_mode_probs[4];
303  __u8 uv_mode_probs[3];
304  __u8 mv_probs[2][19];
305 };
306 
307 #define V4L2_VP8_FRAME_HDR_FLAG_EXPERIMENTAL 0x01
308 #define V4L2_VP8_FRAME_HDR_FLAG_SHOW_FRAME 0x02
309 #define V4L2_VP8_FRAME_HDR_FLAG_MB_NO_SKIP_COEFF 0x04
310 struct v4l2_ctrl_vp8_frame_hdr {
312  __u8 key_frame;
313  __u8 version;
314 
316  __u16 width;
317  __u8 horizontal_scale;
318  __u16 height;
319  __u8 vertical_scale;
320 
321  struct v4l2_vp8_sgmnt_hdr sgmnt_hdr;
322  struct v4l2_vp8_loopfilter_hdr lf_hdr;
323  struct v4l2_vp8_quantization_hdr quant_hdr;
324  struct v4l2_vp8_entropy_hdr entropy_hdr;
325 
326  __u8 sign_bias_golden;
327  __u8 sign_bias_alternate;
328 
329  __u8 prob_skip_false;
330  __u8 prob_intra;
331  __u8 prob_last;
332  __u8 prob_gf;
333 
334  __u32 first_part_size;
335  __u32 first_part_offset;
340  __u32 macroblock_bit_offset;
341 
342  __u8 num_dct_parts;
343  __u32 dct_part_sizes[8];
344 
345  __u8 bool_dec_range;
346  __u8 bool_dec_value;
347  __u8 bool_dec_count;
348 
350  __u32 last_frame;
351  __u32 golden_frame;
352  __u32 alt_frame;
353 
354  __u8 flags;
355 };
356 
359 /*---------------Add below NVIDIA specific extensions ----------------------*/
360 
436 #define V4L2_CID_MPEG_VIDEO_DISABLE_COMPLETE_FRAME_INPUT (V4L2_CID_MPEG_BASE+515)
437 
448 #define V4L2_CID_MPEG_VIDEO_DISABLE_DPB (V4L2_CID_MPEG_BASE+516)
449 
458 #define V4L2_CID_MPEG_VIDEO_ERROR_REPORTING (V4L2_CID_MPEG_BASE+517)
459 
470 #define V4L2_CID_MPEG_VIDEO_SKIP_FRAMES (V4L2_CID_MPEG_BASE+518)
471 
485 #define V4L2_CID_MPEG_VIDEODEC_METADATA (V4L2_CID_MPEG_BASE+519)
486 
556 #define V4L2_CID_VIDEO_CONVERT_OUTPUT_PLANE_LAYOUT (V4L2_CID_MPEG_BASE+520)
557 
565 #define V4L2_CID_VIDEO_CONVERT_CAPTURE_PLANE_LAYOUT (V4L2_CID_MPEG_BASE+521)
566 
574 #define V4L2_CID_VIDEO_CONVERT_FLIP_METHOD (V4L2_CID_MPEG_BASE+522)
575 
583 #define V4L2_CID_VIDEO_CONVERT_INTERPOLATION_METHOD (V4L2_CID_MPEG_BASE+523)
584 
594 #define V4L2_CID_VIDEO_CONVERT_TNR_ALGORITHM (V4L2_CID_MPEG_BASE+524)
595 
703 #define V4L2_CID_MPEG_VIDEOENC_TEMPORAL_TRADEOFF_LEVEL (V4L2_CID_MPEG_BASE+525)
704 
714 #define V4L2_CID_MPEG_VIDEOENC_SLICE_LENGTH_PARAM (V4L2_CID_MPEG_BASE+526)
715 
726 #define V4L2_CID_MPEG_VIDEOENC_ROI_PARAMS (V4L2_CID_MPEG_BASE+527)
727 
737 #define V4L2_CID_MPEG_VIDEOENC_VIRTUALBUFFER_SIZE (V4L2_CID_MPEG_BASE+528)
738 
747 #define V4L2_CID_MPEG_VIDEOENC_NUM_REFERENCE_FRAMES (V4L2_CID_MPEG_BASE+529)
748 
758 #define V4L2_CID_MPEG_VIDEOENC_SLICE_INTRAREFRESH_PARAM (V4L2_CID_MPEG_BASE+530)
759 
769 #define V4L2_CID_MPEG_VIDEOENC_NUM_BFRAMES (V4L2_CID_MPEG_BASE+531)
770 
779 #define V4L2_CID_MPEG_VIDEOENC_INSERT_SPS_PPS_AT_IDR (V4L2_CID_MPEG_BASE+532)
780 
791 #define V4L2_CID_MPEG_VIDEOENC_METADATA (V4L2_CID_MPEG_BASE+533)
792 
801 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_METADATA_MV (V4L2_CID_MPEG_BASE+534)
802 
813 #define V4L2_CID_MPEG_VIDEOENC_METADATA_MV (V4L2_CID_MPEG_BASE+535)
814 
824 #define V4L2_CID_MPEG_VIDEOENC_QP_RANGE (V4L2_CID_MPEG_BASE+536)
825 
835 #define V4L2_CID_MPEG_VIDEOENC_HW_PRESET_TYPE_PARAM (V4L2_CID_MPEG_BASE+537)
836 
848 #define V4L2_CID_MPEG_VIDEOENC_INPUT_METADATA (V4L2_CID_MPEG_BASE+538)
849 
859 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_EXTERNAL_RPS_CONTROL (V4L2_CID_MPEG_BASE+539)
860 
870 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_EXTERNAL_RATE_CONTROL (V4L2_CID_MPEG_BASE+540)
871 
881 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_ROI_PARAM (V4L2_CID_MPEG_BASE+541)
882 
892 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_RECONCRC_PARAM (V4L2_CID_MPEG_BASE+542)
893 
907 };
908 
913 {
919  __u32 DecodeError;
921  __u32 DecodedMBs;
929 
934 {
936  __u32 bPresent;
938  __u32 bIdrFrame;
940  __u32 bLTRefFrame;
942  __u32 bPredicted;
946  __u32 nFrameNum;
950 
955 {
957  __u32 bRefFrame;
959  __u32 bIdrFrame;
961  __u32 bLTRefFrame;
965  __u32 nFrameNum;
969 
974 {
983 
988 {
995  __u32 FrameType;
999 
1004 {
1011  __u32 FrameType;
1015 
1020 {
1032  union {
1037  }CodecParams;
1058 };
1059 
1072 };
1073 
1080 {
1086 
1095 };
1096 
1111 };
1112 
1118 {
1124 
1130 {
1132  __u32 size;
1134 
1142 {
1144  __u32 frames;
1146 
1152 {
1154  __u32 interval;
1156 
1160 #define V4L2_MAX_ROI_REGIONS 8
1161 
1165 typedef struct v4l2_enc_ROI_param_
1166 {
1168  struct v4l2_rect ROIRect;
1170  __s32 QPdelta;
1172 
1179 {
1189 
1193 typedef struct MVInfo_ {
1195  __s32 mv_x : 16;
1197  __s32 mv_y : 14;
1199  __u32 weight : 2;
1200 } MVInfo;
1201 
1207  __u32 bufSize;
1211 
1215 #define V4L2_MAX_REF_FRAMES 8
1216 
1221 {
1223  __u32 nFrameId;
1231  __u32 nFrameNum;
1235 
1241 {
1243  __u8 KeyFrame;
1247  __u16 AvgQP;
1261  __u32 FrameMinQP;
1263  __u32 FrameMaxQP;
1274 
1282 {
1298 
1299 
1305 typedef struct v4l2_enc_gdr_params_
1306 {
1308  __u32 nGDRFrames;
1310 
1317 {
1327 
1328 
1332 typedef struct _v4l2_enc_frame_prop
1333 {
1335  __u32 nFrameId;
1339 
1346 {
1348  __u32 nFrameId;
1358  __u32 nCurrentRefFrameId;
1362 
1363 
1370 {
1376 
1383 {
1387  __u32 nFrameQP;
1395 
1402 {
1406 
1413 {
1417 
1424 {
1427  struct v4l2_rect ReconCRCRect;
1429 
1436 {
1438  __u32 flag;
1457 
1462 #define QP_RETAIN_VAL -1
1463 
1470 {
1472  __u32 MinQpI;
1474  __u32 MaxQpI;
1476  __u32 MinQpP;
1478  __u32 MaxQpP;
1480  __u32 MinQpB;
1482  __u32 MaxQpB;
1495 };
1496 
1509 };
1510 
1519 };
1520 
1532 };
1534 #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.
__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.
v4l2_ctrl_videoenc_outputbuf_metadata_MV * VideoEncMetadataMV
A pointer to v4l2_ctrl_videoenc_outputbuf_metadata_MV structure.
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.
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.
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
Enum specifying 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.
__u32 nH265PocLsbBits
TODO : Check for field details.
__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
Holds 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.
__u32 nFrameId
unique Id.
__u32 nFrameNumBits
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.
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
Current DPB info 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.
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...
v4l2_ctrl_videodec_outputbuf_metadata * VideoDecMetadata
A pointer to v4l2_ctrl_videodec_outputbuf_metadata structure.
__u32 DecodedMBs
Number of macro blocks decoded without error.
Holds the encoder frame external rate control parameters.
__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.
__u32 nCurrentRefFrameId
Reference frame ID used for Motion Estimation of current frame, ignored for IDR.
Holds the encoder GDR parameters.
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.
__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.
__u32 buffer_index
Index of the buffer whose metadata is required.
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.
struct _v4l2_ctrl_video_metadata v4l2_ctrl_video_metadata
Holds the metadata parameters for video encoder and decoder.
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.
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.
v4l2_ctrl_videoenc_outputbuf_metadata * VideoEncMetadata
A pointer to v4l2_ctrl_videoenc_outputbuf_metadata structure.
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_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.
Holds the metadata parameters for video encoder and decoder.
struct v4l2_enc_hw_preset_type_param_ v4l2_enc_hw_preset_type_param
Holds encoder HW Preset type parameters.
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
Maximum number of ROI regions supported by the encoder.
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
Current DPB info 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.
__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.
__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 MaxQpB
Maximum QP value for B frame.
__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.
__u32 nH264FrameNumBits
TODO : Check for field details.
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
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.
__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.