mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 00:36:51 +00:00
v4l2codecs: Sync kernel headers against 5.16.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/965>
This commit is contained in:
parent
ecfbd33dbe
commit
a67e9fb05f
2 changed files with 132 additions and 90 deletions
|
@ -127,6 +127,7 @@ enum v4l2_colorfx {
|
|||
V4L2_COLORFX_SOLARIZATION = 13,
|
||||
V4L2_COLORFX_ANTIQUE = 14,
|
||||
V4L2_COLORFX_SET_CBCR = 15,
|
||||
V4L2_COLORFX_SET_RGB = 16,
|
||||
};
|
||||
#define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE+32)
|
||||
#define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE+33)
|
||||
|
@ -144,9 +145,10 @@ enum v4l2_colorfx {
|
|||
|
||||
#define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE+41)
|
||||
#define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE+42)
|
||||
#define V4L2_CID_COLORFX_RGB (V4L2_CID_BASE+43)
|
||||
|
||||
/* last CID + 1 */
|
||||
#define V4L2_CID_LASTP1 (V4L2_CID_BASE+43)
|
||||
#define V4L2_CID_LASTP1 (V4L2_CID_BASE+44)
|
||||
|
||||
/* USER-class private control IDs */
|
||||
|
||||
|
@ -210,6 +212,11 @@ enum v4l2_colorfx {
|
|||
* We reserve 128 controls for this driver.
|
||||
*/
|
||||
#define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0)
|
||||
/*
|
||||
* The base for Allegro driver controls.
|
||||
* We reserve 16 controls for this driver.
|
||||
*/
|
||||
#define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170)
|
||||
|
||||
/* MPEG-class control IDs */
|
||||
/* The MPEG controls are applicable to all codec controls
|
||||
|
@ -1115,6 +1122,7 @@ enum v4l2_jpeg_chroma_subsampling {
|
|||
#define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
|
||||
#define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
|
||||
#define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
|
||||
#define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9)
|
||||
|
||||
|
||||
/* Image processing controls */
|
||||
|
@ -2009,23 +2017,21 @@ struct v4l2_ctrl_hdr10_mastering_display {
|
|||
|
||||
/* Stateless VP9 controls */
|
||||
|
||||
/**
|
||||
*/
|
||||
#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1
|
||||
#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2
|
||||
|
||||
/**
|
||||
* struct v4l2_vp9_loop_filter - VP9 loop filter parameters
|
||||
*
|
||||
* @ref_deltas: contains the adjustment needed for the filter level based on the chosen
|
||||
* reference frame. If this syntax element is not present in the bitstream, users
|
||||
* should pass its last value.
|
||||
* @mode_deltas: contains the adjustment needed for the filter level based on the chosen mode.
|
||||
* If this syntax element is not present in the bitstream, users
|
||||
* should pass its last value.
|
||||
* @level: indicates the loop filter strength
|
||||
* @sharpness: indicates the sharpness level
|
||||
* @flags: combination of V4L2_VP9_LOOP_FILTER_FLAG_* flags
|
||||
* @ref_deltas: contains the adjustment needed for the filter level based on the
|
||||
* chosen reference frame. If this syntax element is not present in the bitstream,
|
||||
* users should pass its last value.
|
||||
* @mode_deltas: contains the adjustment needed for the filter level based on the
|
||||
* chosen mode. If this syntax element is not present in the bitstream, users should
|
||||
* pass its last value.
|
||||
* @level: indicates the loop filter strength.
|
||||
* @sharpness: indicates the sharpness level.
|
||||
* @flags: combination of V4L2_VP9_LOOP_FILTER_FLAG_{} flags.
|
||||
* @reserved: padding field. Should be zeroed by applications.
|
||||
*
|
||||
* This structure contains all loop filter related parameters. See sections
|
||||
|
@ -2043,10 +2049,10 @@ struct v4l2_vp9_loop_filter {
|
|||
/**
|
||||
* struct v4l2_vp9_quantization - VP9 quantization parameters
|
||||
*
|
||||
* @base_q_idx: indicates the base frame qindex
|
||||
* @delta_q_y_dc: indicates the Y DC quantizer relative to base_q_idx
|
||||
* @delta_q_uv_dc: indicates the UV DC quantizer relative to base_q_idx
|
||||
* @delta_q_uv_ac: indicates the UV AC quantizer relative to base_q_idx
|
||||
* @base_q_idx: indicates the base frame qindex.
|
||||
* @delta_q_y_dc: indicates the Y DC quantizer relative to base_q_idx.
|
||||
* @delta_q_uv_dc: indicates the UV DC quantizer relative to base_q_idx.
|
||||
* @delta_q_uv_ac: indicates the UV AC quantizer relative to base_q_idx.
|
||||
* @reserved: padding field. Should be zeroed by applications.
|
||||
*
|
||||
* Encodes the quantization parameters. See section '7.2.9 Quantization params
|
||||
|
@ -2078,19 +2084,19 @@ struct v4l2_vp9_quantization {
|
|||
/**
|
||||
* struct v4l2_vp9_segmentation - VP9 segmentation parameters
|
||||
*
|
||||
* @feature_data: data attached to each feature. Data entry is only valid if the feature is enabled.
|
||||
* The array shall be indexed with segment number as the first dimension (0..7) and one of
|
||||
* V4L2_VP9_SEG_* as the second dimension.
|
||||
* @feature_enabled: bitmask defining which features are enabled in each segment. The value for
|
||||
* each segment is a combination of V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) values where id is one
|
||||
* of V4L2_VP9_SEG_*
|
||||
* @tree_probs: specifies the probability values to be used when
|
||||
* decoding a Segment-ID. See '5.15. Segmentation map' section of the VP9 specification
|
||||
* for more details.
|
||||
* @feature_data: data attached to each feature. Data entry is only valid if
|
||||
* the feature is enabled. The array shall be indexed with segment number as
|
||||
* the first dimension (0..7) and one of V4L2_VP9_SEG_{} as the second dimension.
|
||||
* @feature_enabled: bitmask defining which features are enabled in each segment.
|
||||
* The value for each segment is a combination of V4L2_VP9_SEGMENT_FEATURE_ENABLED(id)
|
||||
* values where id is one of V4L2_VP9_SEG_LVL_{}.
|
||||
* @tree_probs: specifies the probability values to be used when decoding a
|
||||
* Segment-ID. See '5.15. Segmentation map' section of the VP9 specification
|
||||
* for more details.
|
||||
* @pred_probs: specifies the probability values to be used when decoding a
|
||||
* Predicted-Segment-ID. See '6.4.14. Get segment id syntax' section of :ref:`vp9`
|
||||
* for more details.
|
||||
* @flags: combination of V4L2_VP9_SEGMENTATION_FLAG_* flags
|
||||
* Predicted-Segment-ID. See '6.4.14. Get segment id syntax' section of :ref:`vp9`
|
||||
* for more details.
|
||||
* @flags: combination of V4L2_VP9_SEGMENTATION_FLAG_{} flags.
|
||||
* @reserved: padding field. Should be zeroed by applications.
|
||||
*
|
||||
* Encodes the quantization parameters. See section '7.2.10 Segmentation params syntax' of
|
||||
|
@ -2140,20 +2146,20 @@ struct v4l2_vp9_segmentation {
|
|||
/**
|
||||
* struct v4l2_ctrl_vp9_frame - VP9 frame decoding control
|
||||
*
|
||||
* @lf: loop filter parameters. See &v4l2_vp9_loop_filter for more details
|
||||
* @quant: quantization parameters. See &v4l2_vp9_quantization for more details
|
||||
* @seg: segmentation parameters. See &v4l2_vp9_segmentation for more details
|
||||
* @flags: combination of V4L2_VP9_FRAME_FLAG_* flags
|
||||
* @compressed_header_size: compressed header size in bytes
|
||||
* @uncompressed_header_size: uncompressed header size in bytes
|
||||
* @frame_width_minus_1: add 1 to it and you'll get the frame width expressed in pixels
|
||||
* @frame_height_minus_1: add 1 to it and you'll get the frame height expressed in pixels
|
||||
* @lf: loop filter parameters. See &v4l2_vp9_loop_filter for more details.
|
||||
* @quant: quantization parameters. See &v4l2_vp9_quantization for more details.
|
||||
* @seg: segmentation parameters. See &v4l2_vp9_segmentation for more details.
|
||||
* @flags: combination of V4L2_VP9_FRAME_FLAG_{} flags.
|
||||
* @compressed_header_size: compressed header size in bytes.
|
||||
* @uncompressed_header_size: uncompressed header size in bytes.
|
||||
* @frame_width_minus_1: add 1 to it and you'll get the frame width expressed in pixels.
|
||||
* @frame_height_minus_1: add 1 to it and you'll get the frame height expressed in pixels.
|
||||
* @render_width_minus_1: add 1 to it and you'll get the expected render width expressed in
|
||||
* pixels. This is not used during the decoding process but might be used by HW scalers
|
||||
* to prepare a frame that's ready for scanout
|
||||
* pixels. This is not used during the decoding process but might be used by HW scalers
|
||||
* to prepare a frame that's ready for scanout.
|
||||
* @render_height_minus_1: add 1 to it and you'll get the expected render height expressed in
|
||||
* pixels. This is not used during the decoding process but might be used by HW scalers
|
||||
* to prepare a frame that's ready for scanout
|
||||
* pixels. This is not used during the decoding process but might be used by HW scalers
|
||||
* to prepare a frame that's ready for scanout.
|
||||
* @last_frame_ts: "last" reference buffer timestamp.
|
||||
* The timestamp refers to the timestamp field in struct v4l2_buffer.
|
||||
* Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64.
|
||||
|
@ -2164,21 +2170,21 @@ struct v4l2_vp9_segmentation {
|
|||
* The timestamp refers to the timestamp field in struct v4l2_buffer.
|
||||
* Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64.
|
||||
* @ref_frame_sign_bias: a bitfield specifying whether the sign bias is set for a given
|
||||
* reference frame. Either of V4L2_VP9_SIGN_BIAS_*.
|
||||
* reference frame. Either of V4L2_VP9_SIGN_BIAS_{}.
|
||||
* @reset_frame_context: specifies whether the frame context should be reset to default values.
|
||||
* Either of V4L2_VP9_RESET_FRAME_CTX_*.
|
||||
* @frame_context_idx: frame context that should be used/updated
|
||||
* @profile: VP9 profile. Can be 0, 1, 2 or 3
|
||||
* Either of V4L2_VP9_RESET_FRAME_CTX_{}.
|
||||
* @frame_context_idx: frame context that should be used/updated.
|
||||
* @profile: VP9 profile. Can be 0, 1, 2 or 3.
|
||||
* @bit_depth: bits per components. Can be 8, 10 or 12. Note that not all profiles support
|
||||
* 10 and/or 12 bits depths
|
||||
* 10 and/or 12 bits depths.
|
||||
* @interpolation_filter: specifies the filter selection used for performing inter prediction.
|
||||
* Either of V4L2_VP9_INTERP_FILTER_*
|
||||
* Set to one of V4L2_VP9_INTERP_FILTER_{}.
|
||||
* @tile_cols_log2: specifies the base 2 logarithm of the width of each tile (where the width
|
||||
* is measured in units of 8x8 blocks). Shall be less than or equal to 6
|
||||
* is measured in units of 8x8 blocks). Shall be less than or equal to 6.
|
||||
* @tile_rows_log2: specifies the base 2 logarithm of the height of each tile (where the height
|
||||
* is measured in units of 8x8 blocks)
|
||||
* @reference_mode: specifies the type of inter prediction to be used. See
|
||||
* Either of V4L2_VP9_REFERENCE_MODE_*
|
||||
* is measured in units of 8x8 blocks).
|
||||
* @reference_mode: specifies the type of inter prediction to be used.
|
||||
* Set to one of V4L2_VP9_REFERENCE_MODE_{}.
|
||||
* @reserved: padding field. Should be zeroed by applications.
|
||||
*/
|
||||
struct v4l2_ctrl_vp9_frame {
|
||||
|
@ -2211,15 +2217,15 @@ struct v4l2_ctrl_vp9_frame {
|
|||
|
||||
/**
|
||||
* struct v4l2_vp9_mv_probs - VP9 Motion vector probability updates
|
||||
* @joint: motion vector joint probability updates
|
||||
* @sign: motion vector sign probability updates
|
||||
* @classes: motion vector class probability updates
|
||||
* @class0_bit: motion vector class0 bit probability updates
|
||||
* @bits: motion vector bits probability updates
|
||||
* @class0_fr: motion vector class0 fractional bit probability updates
|
||||
* @fr: motion vector fractional bit probability updates
|
||||
* @class0_hp: motion vector class0 high precision fractional bit probability updates
|
||||
* @hp: motion vector high precision fractional bit probability updates
|
||||
* @joint: motion vector joint probability updates.
|
||||
* @sign: motion vector sign probability updates.
|
||||
* @classes: motion vector class probability updates.
|
||||
* @class0_bit: motion vector class0 bit probability updates.
|
||||
* @bits: motion vector bits probability updates.
|
||||
* @class0_fr: motion vector class0 fractional bit probability updates.
|
||||
* @fr: motion vector fractional bit probability updates.
|
||||
* @class0_hp: motion vector class0 high precision fractional bit probability updates.
|
||||
* @hp: motion vector high precision fractional bit probability updates.
|
||||
*
|
||||
* This structure contains new values of motion vector probabilities.
|
||||
* A value of zero in an array element means there is no update of the relevant probability.
|
||||
|
@ -2247,22 +2253,22 @@ struct v4l2_vp9_mv_probs {
|
|||
|
||||
/**
|
||||
* struct v4l2_ctrl_vp9_compressed_hdr - VP9 probability updates control
|
||||
* @tx_mode: specifies the TX mode. Either of V4L2_VP9_TX_MODE_*.
|
||||
* @tx8: TX 8x8 probability updates
|
||||
* @tx16: TX 16x16 probability updates
|
||||
* @tx32: TX 32x32 probability updates
|
||||
* @coef: coefficient probability updates
|
||||
* @skip: skip probability updates
|
||||
* @inter_mode: inter mode probability updates
|
||||
* @interp_filter: interpolation filter probability updates
|
||||
* @is_inter: is inter-block probability updates
|
||||
* @comp_mode: compound prediction mode probability updates
|
||||
* @single_ref: single ref probability updates
|
||||
* @comp_ref: compound ref probability updates
|
||||
* @y_mode: Y prediction mode probability updates
|
||||
* @uv_mode: UV prediction mode probability updates
|
||||
* @partition: partition probability updates
|
||||
* @mv: motion vector probability updates
|
||||
* @tx_mode: specifies the TX mode. Set to one of V4L2_VP9_TX_MODE_{}.
|
||||
* @tx8: TX 8x8 probability updates.
|
||||
* @tx16: TX 16x16 probability updates.
|
||||
* @tx32: TX 32x32 probability updates.
|
||||
* @coef: coefficient probability updates.
|
||||
* @skip: skip probability updates.
|
||||
* @inter_mode: inter mode probability updates.
|
||||
* @interp_filter: interpolation filter probability updates.
|
||||
* @is_inter: is inter-block probability updates.
|
||||
* @comp_mode: compound prediction mode probability updates.
|
||||
* @single_ref: single ref probability updates.
|
||||
* @comp_ref: compound ref probability updates.
|
||||
* @y_mode: Y prediction mode probability updates.
|
||||
* @uv_mode: UV prediction mode probability updates.
|
||||
* @partition: partition probability updates.
|
||||
* @mv: motion vector probability updates.
|
||||
*
|
||||
* This structure holds the probabilities update as parsed in the compressed
|
||||
* header (Spec 6.3). These values represent the value of probability update after
|
||||
|
|
|
@ -509,7 +509,7 @@ struct v4l2_pix_format {
|
|||
|
||||
/* Pixel format FOURCC depth Description */
|
||||
|
||||
/* RGB formats */
|
||||
/* RGB formats (1 or 2 bytes per pixel) */
|
||||
#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */
|
||||
#define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */
|
||||
#define V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2') /* 16 aaaarrrr ggggbbbb */
|
||||
|
@ -518,12 +518,6 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_RGBX444 v4l2_fourcc('R', 'X', '1', '2') /* 16 rrrrgggg bbbbxxxx */
|
||||
#define V4L2_PIX_FMT_ABGR444 v4l2_fourcc('A', 'B', '1', '2') /* 16 aaaabbbb ggggrrrr */
|
||||
#define V4L2_PIX_FMT_XBGR444 v4l2_fourcc('X', 'B', '1', '2') /* 16 xxxxbbbb ggggrrrr */
|
||||
|
||||
/*
|
||||
* Originally this had 'BA12' as fourcc, but this clashed with the older
|
||||
* V4L2_PIX_FMT_SGRBG12 which inexplicably used that same fourcc.
|
||||
* So use 'GA12' instead for V4L2_PIX_FMT_BGRA444.
|
||||
*/
|
||||
#define V4L2_PIX_FMT_BGRA444 v4l2_fourcc('G', 'A', '1', '2') /* 16 bbbbgggg rrrraaaa */
|
||||
#define V4L2_PIX_FMT_BGRX444 v4l2_fourcc('B', 'X', '1', '2') /* 16 bbbbgggg rrrrxxxx */
|
||||
#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */
|
||||
|
@ -540,6 +534,8 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_ARGB555X v4l2_fourcc_be('A', 'R', '1', '5') /* 16 ARGB-5-5-5 BE */
|
||||
#define V4L2_PIX_FMT_XRGB555X v4l2_fourcc_be('X', 'R', '1', '5') /* 16 XRGB-5-5-5 BE */
|
||||
#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */
|
||||
|
||||
/* RGB formats (3 or 4 bytes per pixel) */
|
||||
#define V4L2_PIX_FMT_BGR666 v4l2_fourcc('B', 'G', 'R', 'H') /* 18 BGR-6-6-6 */
|
||||
#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */
|
||||
#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */
|
||||
|
@ -584,6 +580,7 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */
|
||||
#define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */
|
||||
#define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */
|
||||
#define V4L2_PIX_FMT_YUV24 v4l2_fourcc('Y', 'U', 'V', '3') /* 24 YUV-8-8-8 */
|
||||
#define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */
|
||||
#define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V') /* 32 AYUV-8-8-8-8 */
|
||||
#define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V') /* 32 XYUV-8-8-8-8 */
|
||||
|
@ -598,16 +595,12 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */
|
||||
#define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */
|
||||
#define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */
|
||||
#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */
|
||||
#define V4L2_PIX_FMT_NV12_4L4 v4l2_fourcc('V', 'T', '1', '2') /* 8 YUV 4:2:0 4x4 macroblocks */
|
||||
|
||||
/* two non contiguous planes - one Y, one Cr + Cb interleaved */
|
||||
#define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */
|
||||
#define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1') /* 21 Y/CrCb 4:2:0 */
|
||||
#define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6') /* 16 Y/CbCr 4:2:2 */
|
||||
#define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1') /* 16 Y/CrCb 4:2:2 */
|
||||
#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 macroblocks */
|
||||
#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 macroblocks */
|
||||
|
||||
/* three planes - Y Cb, Cr */
|
||||
#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9') /* 9 YUV 4:1:0 */
|
||||
|
@ -625,6 +618,15 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24 YUV444 planar */
|
||||
#define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24 YVU444 planar */
|
||||
|
||||
/* Tiled YUV formats */
|
||||
#define V4L2_PIX_FMT_NV12_4L4 v4l2_fourcc('V', 'T', '1', '2') /* 12 Y/CbCr 4:2:0 4x4 tiles */
|
||||
#define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 tiles */
|
||||
#define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2') /* 12 Y/CbCr 4:2:0 32x32 tiles */
|
||||
|
||||
/* Tiled YUV formats, non contiguous planes */
|
||||
#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 64x32 tiles */
|
||||
#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 16x16 tiles */
|
||||
|
||||
/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
|
||||
#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */
|
||||
#define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G') /* 8 GBGB.. RGRG.. */
|
||||
|
@ -732,8 +734,8 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */
|
||||
#define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */
|
||||
#define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */
|
||||
#define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1') /* Mediatek 8-bit block mode, two non-contiguous planes */
|
||||
#define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */
|
||||
#define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* Sunxi Tiled NV12 Format */
|
||||
#define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit packed depth confidence information */
|
||||
#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* BTTV 8-bit dithered RGB */
|
||||
|
||||
|
@ -935,9 +937,12 @@ struct v4l2_requestbuffers {
|
|||
__u32 type; /* enum v4l2_buf_type */
|
||||
__u32 memory; /* enum v4l2_memory */
|
||||
__u32 capabilities;
|
||||
__u32 reserved[1];
|
||||
__u8 flags;
|
||||
__u8 reserved[3];
|
||||
};
|
||||
|
||||
#define V4L2_MEMORY_FLAG_NON_COHERENT (1 << 0)
|
||||
|
||||
/* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */
|
||||
#define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
|
||||
#define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
|
||||
|
@ -959,8 +964,10 @@ struct v4l2_requestbuffers {
|
|||
* pointing to this plane
|
||||
* @fd: when memory is V4L2_MEMORY_DMABUF, a userspace file
|
||||
* descriptor associated with this plane
|
||||
* @m: union of @mem_offset, @userptr and @fd
|
||||
* @data_offset: offset in the plane to the start of data; usually 0,
|
||||
* unless there is a header in front of the data
|
||||
* @reserved: drivers and applications must zero this array
|
||||
*
|
||||
* Multi-planar buffers consist of one or more planes, e.g. an YCbCr buffer
|
||||
* with two planes can have one plane for Y, and another for interleaved CbCr
|
||||
|
@ -1002,10 +1009,14 @@ struct v4l2_plane {
|
|||
* a userspace file descriptor associated with this buffer
|
||||
* @planes: for multiplanar buffers; userspace pointer to the array of plane
|
||||
* info structs for this buffer
|
||||
* @m: union of @offset, @userptr, @planes and @fd
|
||||
* @length: size in bytes of the buffer (NOT its payload) for single-plane
|
||||
* buffers (when type != *_MPLANE); number of elements in the
|
||||
* planes array for multi-plane buffers
|
||||
* @reserved2: drivers and applications must zero this field
|
||||
* @request_fd: fd of the request that this buffer should use
|
||||
* @reserved: for backwards compatibility with applications that do not know
|
||||
* about @request_fd
|
||||
*
|
||||
* Contains data exchanged by application and driver using one of the Streaming
|
||||
* I/O methods.
|
||||
|
@ -1038,7 +1049,7 @@ struct v4l2_buffer {
|
|||
|
||||
/**
|
||||
* v4l2_timeval_to_ns - Convert timeval to nanoseconds
|
||||
* @ts: pointer to the timeval variable to be converted
|
||||
* @tv: pointer to the timeval variable to be converted
|
||||
*
|
||||
* Returns the scalar nanosecond representation of the timeval
|
||||
* parameter.
|
||||
|
@ -1098,6 +1109,7 @@ static __inline__ __u64 v4l2_timeval_to_ns(const struct timeval *tv)
|
|||
* @flags: flags for newly created file, currently only O_CLOEXEC is
|
||||
* supported, refer to manual of open syscall for more details
|
||||
* @fd: file descriptor associated with DMABUF (set by driver)
|
||||
* @reserved: drivers and applications must zero this array
|
||||
*
|
||||
* Contains data used for exporting a video buffer as DMABUF file descriptor.
|
||||
* The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF
|
||||
|
@ -1715,6 +1727,7 @@ struct v4l2_ext_control {
|
|||
struct v4l2_ctrl_h264_slice_params *p_h264_slice_params;
|
||||
struct v4l2_ctrl_h264_decode_params *p_h264_decode_params;
|
||||
struct v4l2_ctrl_fwht_params *p_fwht_params;
|
||||
struct v4l2_ctrl_vp8_frame *p_vp8_frame;
|
||||
struct v4l2_ctrl_mpeg2_sequence *p_mpeg2_sequence;
|
||||
struct v4l2_ctrl_mpeg2_picture *p_mpeg2_picture;
|
||||
struct v4l2_ctrl_mpeg2_quantisation *p_mpeg2_quantisation;
|
||||
|
@ -1737,7 +1750,9 @@ struct v4l2_ext_controls {
|
|||
};
|
||||
|
||||
#define V4L2_CTRL_ID_MASK (0x0fffffff)
|
||||
#ifndef __KERNEL__
|
||||
#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL)
|
||||
#endif
|
||||
#define V4L2_CTRL_ID2WHICH(id) ((id) & 0x0fff0000UL)
|
||||
#define V4L2_CTRL_DRIVER_PRIV(id) (((id) & 0xffff) >= 0x1000)
|
||||
#define V4L2_CTRL_MAX_DIMS (4)
|
||||
|
@ -1763,6 +1778,9 @@ enum v4l2_ctrl_type {
|
|||
V4L2_CTRL_TYPE_U32 = 0x0102,
|
||||
V4L2_CTRL_TYPE_AREA = 0x0106,
|
||||
|
||||
V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110,
|
||||
V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111,
|
||||
|
||||
V4L2_CTRL_TYPE_H264_SPS = 0x0200,
|
||||
V4L2_CTRL_TYPE_H264_PPS = 0x0201,
|
||||
V4L2_CTRL_TYPE_H264_SCALING_MATRIX = 0x0202,
|
||||
|
@ -1774,6 +1792,10 @@ enum v4l2_ctrl_type {
|
|||
|
||||
V4L2_CTRL_TYPE_VP8_FRAME = 0x0240,
|
||||
|
||||
V4L2_CTRL_TYPE_MPEG2_QUANTISATION = 0x0250,
|
||||
V4L2_CTRL_TYPE_MPEG2_SEQUENCE = 0x0251,
|
||||
V4L2_CTRL_TYPE_MPEG2_PICTURE = 0x0252,
|
||||
|
||||
V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR = 0x0260,
|
||||
V4L2_CTRL_TYPE_VP9_FRAME = 0x0261,
|
||||
};
|
||||
|
@ -2213,6 +2235,7 @@ struct v4l2_mpeg_vbi_fmt_ivtv {
|
|||
* this plane will be used
|
||||
* @bytesperline: distance in bytes between the leftmost pixels in two
|
||||
* adjacent lines
|
||||
* @reserved: drivers and applications must zero this array
|
||||
*/
|
||||
struct v4l2_plane_pix_format {
|
||||
__u32 sizeimage;
|
||||
|
@ -2231,8 +2254,10 @@ struct v4l2_plane_pix_format {
|
|||
* @num_planes: number of planes for this format
|
||||
* @flags: format flags (V4L2_PIX_FMT_FLAG_*)
|
||||
* @ycbcr_enc: enum v4l2_ycbcr_encoding, Y'CbCr encoding
|
||||
* @hsv_enc: enum v4l2_hsv_encoding, HSV encoding
|
||||
* @quantization: enum v4l2_quantization, colorspace quantization
|
||||
* @xfer_func: enum v4l2_xfer_func, colorspace transfer function
|
||||
* @reserved: drivers and applications must zero this array
|
||||
*/
|
||||
struct v4l2_pix_format_mplane {
|
||||
__u32 width;
|
||||
|
@ -2257,6 +2282,7 @@ struct v4l2_pix_format_mplane {
|
|||
* struct v4l2_sdr_format - SDR format definition
|
||||
* @pixelformat: little endian four character code (fourcc)
|
||||
* @buffersize: maximum size in bytes required for data
|
||||
* @reserved: drivers and applications must zero this array
|
||||
*/
|
||||
struct v4l2_sdr_format {
|
||||
__u32 pixelformat;
|
||||
|
@ -2283,6 +2309,8 @@ struct v4l2_meta_format {
|
|||
* @vbi: raw VBI capture or output parameters
|
||||
* @sliced: sliced VBI capture or output parameters
|
||||
* @raw_data: placeholder for future extensions and custom formats
|
||||
* @fmt: union of @pix, @pix_mp, @win, @vbi, @sliced, @sdr, @meta
|
||||
* and @raw_data
|
||||
*/
|
||||
struct v4l2_format {
|
||||
__u32 type;
|
||||
|
@ -2451,6 +2479,9 @@ struct v4l2_dbg_chip_info {
|
|||
* @memory: enum v4l2_memory; buffer memory type
|
||||
* @format: frame format, for which buffers are requested
|
||||
* @capabilities: capabilities of this buffer type.
|
||||
* @flags: additional buffer management attributes (ignored unless the
|
||||
* queue has V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS capability
|
||||
* and configured for MMAP streaming I/O).
|
||||
* @reserved: future extensions
|
||||
*/
|
||||
struct v4l2_create_buffers {
|
||||
|
@ -2459,7 +2490,8 @@ struct v4l2_create_buffers {
|
|||
__u32 memory;
|
||||
struct v4l2_format format;
|
||||
__u32 capabilities;
|
||||
__u32 reserved[7];
|
||||
__u32 flags;
|
||||
__u32 reserved[6];
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -2567,4 +2599,8 @@ struct v4l2_create_buffers {
|
|||
|
||||
#define BASE_VIDIOC_PRIVATE 192 /* 192-255 are private */
|
||||
|
||||
/* Deprecated definitions kept for backwards compatibility */
|
||||
#define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16
|
||||
#define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32
|
||||
|
||||
#endif /* __LINUX_VIDEODEV2_H */
|
||||
|
|
Loading…
Reference in a new issue