Multimedia API Reference

November 16, 2016 | 24.2.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') /* H264 parsed slices */
65 #define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F') /* VP8 parsed frames */
66 
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 
240 /* If not set, this entry is unused for reference. */
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; /* v4l2_buffer index */
245  __u16 frame_num;
246  __u16 pic_num;
247  /* Note that field is indicated by v4l2_buffer.field */
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 {
311  /* 0: keyframe, 1: not a keyframe */
312  __u8 key_frame;
313  __u8 version;
314 
315  /* Populated also if not a key frame */
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;
336  /*
337  * Offset in bits of MB data in first partition,
338  * i.e. bit offset starting from first_part_offset.
339  */
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 
349  /* v4l2_buffer indices of reference frames */
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 
700 #define V4L2_CID_MPEG_VIDEOENC_TEMPORAL_TRADEOFF_LEVEL (V4L2_CID_MPEG_BASE+525)
701 
711 #define V4L2_CID_MPEG_VIDEOENC_SLICE_LENGTH_PARAM (V4L2_CID_MPEG_BASE+526)
712 
723 #define V4L2_CID_MPEG_VIDEOENC_ROI_PARAMS (V4L2_CID_MPEG_BASE+527)
724 
734 #define V4L2_CID_MPEG_VIDEOENC_VIRTUALBUFFER_SIZE (V4L2_CID_MPEG_BASE+528)
735 
744 #define V4L2_CID_MPEG_VIDEOENC_NUM_REFERENCE_FRAMES (V4L2_CID_MPEG_BASE+529)
745 
755 #define V4L2_CID_MPEG_VIDEOENC_SLICE_INTRAREFRESH_PARAM (V4L2_CID_MPEG_BASE+530)
756 
766 #define V4L2_CID_MPEG_VIDEOENC_NUM_BFRAMES (V4L2_CID_MPEG_BASE+531)
767 
776 #define V4L2_CID_MPEG_VIDEOENC_INSERT_SPS_PPS_AT_IDR (V4L2_CID_MPEG_BASE+532)
777 
788 #define V4L2_CID_MPEG_VIDEOENC_METADATA (V4L2_CID_MPEG_BASE+533)
789 
798 #define V4L2_CID_MPEG_VIDEOENC_ENABLE_METADATA_MV (V4L2_CID_MPEG_BASE+534)
799 
810 #define V4L2_CID_MPEG_VIDEOENC_METADATA_MV (V4L2_CID_MPEG_BASE+535)
811 
821 #define V4L2_CID_MPEG_VIDEOENC_QP_RANGE (V4L2_CID_MPEG_BASE+536)
822 
835 };
836 
841 {
847  __u32 DecodeError;
849  __u32 DecodedMBs;
857 
862 {
864  __u32 bPresent;
866  __u32 bIdrFrame;
868  __u32 bLTRefFrame;
870  __u32 bPredicted;
874  __u32 nFrameNum;
878 
883 {
885  __u32 bRefFrame;
887  __u32 bIdrFrame;
889  __u32 bLTRefFrame;
893  __u32 nFrameNum;
897 
902 {
911 
916 {
923  __u32 FrameType;
927 
932 {
934  __u32 nPocLsbBits;
939  __u32 FrameType;
943 
948 {
960  union {
965  }CodecParams;
986 };
987 
996 };
997 
1003 {
1009 
1015 {
1017  __u32 size;
1019 
1027 {
1029  __u32 frames;
1031 
1037 {
1039  __u32 interval;
1041 
1045 #define V4L2_MAX_ROI_REGIONS 8
1046 
1050 typedef struct v4l2_enc_ROI_param_
1051 {
1053  struct v4l2_rect ROIRect;
1055  __s32 QPdelta;
1057 
1064 {
1074 
1078 typedef struct MVInfo_ {
1080  __s32 mv_x : 16;
1082  __s32 mv_y : 14;
1084  __u32 weight : 2;
1085 } MVInfo;
1086 
1092  __u32 bufSize;
1096 
1102 {
1104  __u8 KeyFrame;
1108  __u16 AvgQP;
1114  __u32 FrameMinQP;
1116  __u32 FrameMaxQP;
1123 
1131 {
1147 
1152 #define QP_RETAIN_VAL -1
1153 
1160 {
1162  __u32 MinQpI;
1164  __u32 MaxQpI;
1166  __u32 MinQpP;
1168  __u32 MaxQpP;
1170  __u32 MinQpB;
1172  __u32 MaxQpB;
1185 };
1186 
1199 };
1200 
1209 };
1210 
1222 };
1224 #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.
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.
v4l2_nv_buffer_layout
Enum specifying types of buffer layouts.
__u32 nActiveRefFrames
Number of active frames present in the DPB.
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.
struct v4l2_ctrl_videodec_dpbinfometadata_ v4l2_ctrl_videodec_dpbinfometadata
Holds the decoder DPB info metadata.
v4l2_ctrl_videodec_statusmetadata FrameDecStats
Frame decode statistics.
struct v4l2_rect ROIRect
Region of interest rectangle.
v4l2_enc_temporal_tradeoff_level_type
Enum specifying the types of encoder temporal tradeoff levels.
v4l2_tnr_algorithm
Enum specifying 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 KeyFrame
Boolean value indicating if current frame is a key frame.
__u8 bIsGoldenOrAlternateFrame
Boolean value indicating if current frame is a golden or alternate frame.
Flip across upper left/lower right diagonal.
v4l2_mpeg_video_h265_profile
Holds the possible profiles for H.265 encoder.
__u32 weight
Temporal hints used by hardware for Motion Estimation.
__u32 nFrameNumBits
Number of bits in the frame.
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.
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.
__u32 EncodedFrameBits
Number of bits needed to encode the frame.
struct MVInfo_ MVInfo
Holds the motion vector parameters for a single macro block.
v4l2_ctrl_videodec_dpbinfometadata dpbInfo
Current DPB info of the decoder.
v4l2_ctrl_hevcdec_bufmetadata HEVCDecParams
H.265 specific metadata.
Identity (no rotation).
Holds the encoder quality parameters for a single ROI region.
Indoor Medium Light TNR algorithm.
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 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...
__u32 nCurrentRefFrameId
Reference frame ID used for Motion Estimation of current frame, ignored for IDR.
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.
__u32 slice_length
Size of the slice in either number of bytes or number of macro blocks.
__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.
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.
__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.
struct _v4l2_ctrl_video_metadata v4l2_ctrl_video_metadata
Holds the metadata parameters for video encoder and decoder.
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
Enum specifying types of interpolation methods.
struct v4l2_ctrl_hevcdec_bufmetadata_ v4l2_ctrl_hevcdec_bufmetadata
Holds H.265 specific decoder metadata for the frame.
__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.
struct v4l2_ctrl_videoenc_outputbuf_metadata_MV_ v4l2_ctrl_videoenc_outputbuf_metadata_MV
Holds the motion vector parameters for one complete frame.
Smart interpolation method.
__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.
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.
Outdoor Low Light TNR algorithm.
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.
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.
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...
__s32 QPdelta
QP delta for the region.
__u32 bValidFrameStatus
Boolean value indicating if FrameDecStats has valid contents.
__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_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 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...
__u32 DecodeError
Error types: bit 0: Fatal bit 1: MB level syntax bit 2: Missing Slice(s) bit 3: PrevFrameLostFlag.
v4l2_flip_method
Enum specifying 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.
__u32 MaxQpP
Maximum QP value for P frame.
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
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.
__u32 FrameType
Type of frame: 0 = B 1 = P 2 = I.
__u32 num_ROI_regions
Number of regions.