mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-23 10:11:08 +00:00
v4l2: Sync kernel header with linuxtv tree
This notably add HEVC and FWHT support, and VP8/9 profiles are now an enumeration and their control exposed as a menu.
This commit is contained in:
parent
94f8603411
commit
6e1ad47db1
3 changed files with 217 additions and 80 deletions
|
@ -1,3 +1,4 @@
|
|||
/* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/*
|
||||
* include/linux/v4l2-common.h
|
||||
*
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
/* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/*
|
||||
* Video for Linux Two controls header file
|
||||
*
|
||||
|
@ -66,8 +67,8 @@
|
|||
/* User-class control IDs */
|
||||
|
||||
#define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
|
||||
#define V4L2_CID_USER_BASE V4L2_CID_BASE
|
||||
#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
|
||||
#define V4L2_CID_USER_BASE V4L2_CID_BASE
|
||||
#define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
|
||||
#define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0)
|
||||
#define V4L2_CID_CONTRAST (V4L2_CID_BASE+1)
|
||||
#define V4L2_CID_SATURATION (V4L2_CID_BASE+2)
|
||||
|
@ -101,7 +102,7 @@ enum v4l2_power_line_frequency {
|
|||
#define V4L2_CID_HUE_AUTO (V4L2_CID_BASE+25)
|
||||
#define V4L2_CID_WHITE_BALANCE_TEMPERATURE (V4L2_CID_BASE+26)
|
||||
#define V4L2_CID_SHARPNESS (V4L2_CID_BASE+27)
|
||||
#define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28)
|
||||
#define V4L2_CID_BACKLIGHT_COMPENSATION (V4L2_CID_BASE+28)
|
||||
#define V4L2_CID_CHROMA_AGC (V4L2_CID_BASE+29)
|
||||
#define V4L2_CID_COLOR_KILLER (V4L2_CID_BASE+30)
|
||||
#define V4L2_CID_COLORFX (V4L2_CID_BASE+31)
|
||||
|
@ -187,17 +188,17 @@ enum v4l2_colorfx {
|
|||
|
||||
/* The base for the imx driver controls.
|
||||
* We reserve 16 controls for this driver. */
|
||||
#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x1090)
|
||||
#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0)
|
||||
|
||||
/* MPEG-class control IDs */
|
||||
/* The MPEG controls are applicable to all codec controls
|
||||
* and the 'MPEG' part of the define is historical */
|
||||
|
||||
#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
|
||||
#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1)
|
||||
#define V4L2_CID_MPEG_BASE (V4L2_CTRL_CLASS_MPEG | 0x900)
|
||||
#define V4L2_CID_MPEG_CLASS (V4L2_CTRL_CLASS_MPEG | 1)
|
||||
|
||||
/* MPEG streams, specific to multiplexed streams */
|
||||
#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0)
|
||||
#define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_MPEG_BASE+0)
|
||||
enum v4l2_mpeg_stream_type {
|
||||
V4L2_MPEG_STREAM_TYPE_MPEG2_PS = 0, /* MPEG-2 program stream */
|
||||
V4L2_MPEG_STREAM_TYPE_MPEG2_TS = 1, /* MPEG-2 transport stream */
|
||||
|
@ -206,26 +207,26 @@ enum v4l2_mpeg_stream_type {
|
|||
V4L2_MPEG_STREAM_TYPE_MPEG1_VCD = 4, /* MPEG-1 VCD-compatible stream */
|
||||
V4L2_MPEG_STREAM_TYPE_MPEG2_SVCD = 5, /* MPEG-2 SVCD-compatible stream */
|
||||
};
|
||||
#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4)
|
||||
#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5)
|
||||
#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6)
|
||||
#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_PMT (V4L2_CID_MPEG_BASE+1)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_AUDIO (V4L2_CID_MPEG_BASE+2)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_VIDEO (V4L2_CID_MPEG_BASE+3)
|
||||
#define V4L2_CID_MPEG_STREAM_PID_PCR (V4L2_CID_MPEG_BASE+4)
|
||||
#define V4L2_CID_MPEG_STREAM_PES_ID_AUDIO (V4L2_CID_MPEG_BASE+5)
|
||||
#define V4L2_CID_MPEG_STREAM_PES_ID_VIDEO (V4L2_CID_MPEG_BASE+6)
|
||||
#define V4L2_CID_MPEG_STREAM_VBI_FMT (V4L2_CID_MPEG_BASE+7)
|
||||
enum v4l2_mpeg_stream_vbi_fmt {
|
||||
V4L2_MPEG_STREAM_VBI_FMT_NONE = 0, /* No VBI in the MPEG stream */
|
||||
V4L2_MPEG_STREAM_VBI_FMT_IVTV = 1, /* VBI in private packets, IVTV format */
|
||||
};
|
||||
|
||||
/* MPEG audio controls specific to multiplexed streams */
|
||||
#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100)
|
||||
#define V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ (V4L2_CID_MPEG_BASE+100)
|
||||
enum v4l2_mpeg_audio_sampling_freq {
|
||||
V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100 = 0,
|
||||
V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000 = 1,
|
||||
V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000 = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101)
|
||||
#define V4L2_CID_MPEG_AUDIO_ENCODING (V4L2_CID_MPEG_BASE+101)
|
||||
enum v4l2_mpeg_audio_encoding {
|
||||
V4L2_MPEG_AUDIO_ENCODING_LAYER_1 = 0,
|
||||
V4L2_MPEG_AUDIO_ENCODING_LAYER_2 = 1,
|
||||
|
@ -233,7 +234,7 @@ enum v4l2_mpeg_audio_encoding {
|
|||
V4L2_MPEG_AUDIO_ENCODING_AAC = 3,
|
||||
V4L2_MPEG_AUDIO_ENCODING_AC3 = 4,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102)
|
||||
#define V4L2_CID_MPEG_AUDIO_L1_BITRATE (V4L2_CID_MPEG_BASE+102)
|
||||
enum v4l2_mpeg_audio_l1_bitrate {
|
||||
V4L2_MPEG_AUDIO_L1_BITRATE_32K = 0,
|
||||
V4L2_MPEG_AUDIO_L1_BITRATE_64K = 1,
|
||||
|
@ -250,7 +251,7 @@ enum v4l2_mpeg_audio_l1_bitrate {
|
|||
V4L2_MPEG_AUDIO_L1_BITRATE_416K = 12,
|
||||
V4L2_MPEG_AUDIO_L1_BITRATE_448K = 13,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103)
|
||||
#define V4L2_CID_MPEG_AUDIO_L2_BITRATE (V4L2_CID_MPEG_BASE+103)
|
||||
enum v4l2_mpeg_audio_l2_bitrate {
|
||||
V4L2_MPEG_AUDIO_L2_BITRATE_32K = 0,
|
||||
V4L2_MPEG_AUDIO_L2_BITRATE_48K = 1,
|
||||
|
@ -267,7 +268,7 @@ enum v4l2_mpeg_audio_l2_bitrate {
|
|||
V4L2_MPEG_AUDIO_L2_BITRATE_320K = 12,
|
||||
V4L2_MPEG_AUDIO_L2_BITRATE_384K = 13,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104)
|
||||
#define V4L2_CID_MPEG_AUDIO_L3_BITRATE (V4L2_CID_MPEG_BASE+104)
|
||||
enum v4l2_mpeg_audio_l3_bitrate {
|
||||
V4L2_MPEG_AUDIO_L3_BITRATE_32K = 0,
|
||||
V4L2_MPEG_AUDIO_L3_BITRATE_40K = 1,
|
||||
|
@ -284,32 +285,32 @@ enum v4l2_mpeg_audio_l3_bitrate {
|
|||
V4L2_MPEG_AUDIO_L3_BITRATE_256K = 12,
|
||||
V4L2_MPEG_AUDIO_L3_BITRATE_320K = 13,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105)
|
||||
#define V4L2_CID_MPEG_AUDIO_MODE (V4L2_CID_MPEG_BASE+105)
|
||||
enum v4l2_mpeg_audio_mode {
|
||||
V4L2_MPEG_AUDIO_MODE_STEREO = 0,
|
||||
V4L2_MPEG_AUDIO_MODE_JOINT_STEREO = 1,
|
||||
V4L2_MPEG_AUDIO_MODE_DUAL = 2,
|
||||
V4L2_MPEG_AUDIO_MODE_MONO = 3,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106)
|
||||
#define V4L2_CID_MPEG_AUDIO_MODE_EXTENSION (V4L2_CID_MPEG_BASE+106)
|
||||
enum v4l2_mpeg_audio_mode_extension {
|
||||
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_4 = 0,
|
||||
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_8 = 1,
|
||||
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_12 = 2,
|
||||
V4L2_MPEG_AUDIO_MODE_EXTENSION_BOUND_16 = 3,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107)
|
||||
#define V4L2_CID_MPEG_AUDIO_EMPHASIS (V4L2_CID_MPEG_BASE+107)
|
||||
enum v4l2_mpeg_audio_emphasis {
|
||||
V4L2_MPEG_AUDIO_EMPHASIS_NONE = 0,
|
||||
V4L2_MPEG_AUDIO_EMPHASIS_50_DIV_15_uS = 1,
|
||||
V4L2_MPEG_AUDIO_EMPHASIS_CCITT_J17 = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108)
|
||||
#define V4L2_CID_MPEG_AUDIO_CRC (V4L2_CID_MPEG_BASE+108)
|
||||
enum v4l2_mpeg_audio_crc {
|
||||
V4L2_MPEG_AUDIO_CRC_NONE = 0,
|
||||
V4L2_MPEG_AUDIO_CRC_CRC16 = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109)
|
||||
#define V4L2_CID_MPEG_AUDIO_MUTE (V4L2_CID_MPEG_BASE+109)
|
||||
#define V4L2_CID_MPEG_AUDIO_AAC_BITRATE (V4L2_CID_MPEG_BASE+110)
|
||||
#define V4L2_CID_MPEG_AUDIO_AC3_BITRATE (V4L2_CID_MPEG_BASE+111)
|
||||
enum v4l2_mpeg_audio_ac3_bitrate {
|
||||
|
@ -345,33 +346,33 @@ enum v4l2_mpeg_audio_dec_playback {
|
|||
#define V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK (V4L2_CID_MPEG_BASE+113)
|
||||
|
||||
/* MPEG video controls specific to multiplexed streams */
|
||||
#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200)
|
||||
#define V4L2_CID_MPEG_VIDEO_ENCODING (V4L2_CID_MPEG_BASE+200)
|
||||
enum v4l2_mpeg_video_encoding {
|
||||
V4L2_MPEG_VIDEO_ENCODING_MPEG_1 = 0,
|
||||
V4L2_MPEG_VIDEO_ENCODING_MPEG_2 = 1,
|
||||
V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201)
|
||||
#define V4L2_CID_MPEG_VIDEO_ASPECT (V4L2_CID_MPEG_BASE+201)
|
||||
enum v4l2_mpeg_video_aspect {
|
||||
V4L2_MPEG_VIDEO_ASPECT_1x1 = 0,
|
||||
V4L2_MPEG_VIDEO_ASPECT_4x3 = 1,
|
||||
V4L2_MPEG_VIDEO_ASPECT_16x9 = 2,
|
||||
V4L2_MPEG_VIDEO_ASPECT_221x100 = 3,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202)
|
||||
#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203)
|
||||
#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204)
|
||||
#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205)
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206)
|
||||
#define V4L2_CID_MPEG_VIDEO_B_FRAMES (V4L2_CID_MPEG_BASE+202)
|
||||
#define V4L2_CID_MPEG_VIDEO_GOP_SIZE (V4L2_CID_MPEG_BASE+203)
|
||||
#define V4L2_CID_MPEG_VIDEO_GOP_CLOSURE (V4L2_CID_MPEG_BASE+204)
|
||||
#define V4L2_CID_MPEG_VIDEO_PULLDOWN (V4L2_CID_MPEG_BASE+205)
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE_MODE (V4L2_CID_MPEG_BASE+206)
|
||||
enum v4l2_mpeg_video_bitrate_mode {
|
||||
V4L2_MPEG_VIDEO_BITRATE_MODE_VBR = 0,
|
||||
V4L2_MPEG_VIDEO_BITRATE_MODE_CBR = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207)
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208)
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE (V4L2_CID_MPEG_BASE+207)
|
||||
#define V4L2_CID_MPEG_VIDEO_BITRATE_PEAK (V4L2_CID_MPEG_BASE+208)
|
||||
#define V4L2_CID_MPEG_VIDEO_TEMPORAL_DECIMATION (V4L2_CID_MPEG_BASE+209)
|
||||
#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210)
|
||||
#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211)
|
||||
#define V4L2_CID_MPEG_VIDEO_MUTE (V4L2_CID_MPEG_BASE+210)
|
||||
#define V4L2_CID_MPEG_VIDEO_MUTE_YUV (V4L2_CID_MPEG_BASE+211)
|
||||
#define V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE (V4L2_CID_MPEG_BASE+212)
|
||||
#define V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER (V4L2_CID_MPEG_BASE+213)
|
||||
#define V4L2_CID_MPEG_VIDEO_CYCLIC_INTRA_REFRESH_MB (V4L2_CID_MPEG_BASE+214)
|
||||
|
@ -586,17 +587,125 @@ enum v4l2_vp8_golden_frame_sel {
|
|||
#define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508)
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509)
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)
|
||||
|
||||
#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_MPEG_BASE+511)
|
||||
enum v4l2_mpeg_video_vp8_profile {
|
||||
V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0,
|
||||
V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1,
|
||||
V4L2_MPEG_VIDEO_VP8_PROFILE_2 = 2,
|
||||
V4L2_MPEG_VIDEO_VP8_PROFILE_3 = 3,
|
||||
};
|
||||
/* Deprecated alias for compatibility reasons. */
|
||||
#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE
|
||||
#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_MPEG_BASE+512)
|
||||
enum v4l2_mpeg_video_vp9_profile {
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0,
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1,
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2,
|
||||
V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3,
|
||||
};
|
||||
|
||||
/* CIDs for HEVC encoding. */
|
||||
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606)
|
||||
enum v4l2_mpeg_video_hevc_hier_coding_type {
|
||||
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615)
|
||||
enum v4l2_mpeg_video_hevc_profile {
|
||||
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616)
|
||||
enum v4l2_mpeg_video_hevc_level {
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1 = 2,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_3 = 3,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1 = 4,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_4 = 5,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1 = 6,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5 = 7,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1 = 8,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2 = 9,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6 = 10,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11,
|
||||
V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618)
|
||||
enum v4l2_mpeg_video_hevc_tier {
|
||||
V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620)
|
||||
enum v4l2_cid_mpeg_video_hevc_loop_filter_mode {
|
||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623)
|
||||
enum v4l2_cid_mpeg_video_hevc_refresh_type {
|
||||
V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635)
|
||||
enum v4l2_cid_mpeg_video_hevc_size_of_length_field {
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0,
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1,
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2,
|
||||
V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3,
|
||||
};
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641)
|
||||
#define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642)
|
||||
#define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643)
|
||||
#define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644)
|
||||
|
||||
/* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
|
||||
#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
|
||||
#define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0)
|
||||
enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
|
||||
V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_MANUAL = 0,
|
||||
V4L2_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE_AUTO = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+1)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+2)
|
||||
enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type {
|
||||
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_OFF = 0,
|
||||
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
|
||||
|
@ -604,18 +713,18 @@ enum v4l2_mpeg_cx2341x_video_luma_spatial_filter_type {
|
|||
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_HV_SEPARABLE = 3,
|
||||
V4L2_MPEG_CX2341X_VIDEO_LUMA_SPATIAL_FILTER_TYPE_2D_SYM_NON_SEPARABLE = 4,
|
||||
};
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+3)
|
||||
enum v4l2_mpeg_cx2341x_video_chroma_spatial_filter_type {
|
||||
V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_OFF = 0,
|
||||
V4L2_MPEG_CX2341X_VIDEO_CHROMA_SPATIAL_FILTER_TYPE_1D_HOR = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+4)
|
||||
enum v4l2_mpeg_cx2341x_video_temporal_filter_mode {
|
||||
V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_MANUAL = 0,
|
||||
V4L2_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER_MODE_AUTO = 1,
|
||||
};
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_TEMPORAL_FILTER (V4L2_CID_MPEG_CX2341X_BASE+5)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE (V4L2_CID_MPEG_CX2341X_BASE+6)
|
||||
enum v4l2_mpeg_cx2341x_video_median_filter_type {
|
||||
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_OFF = 0,
|
||||
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR = 1,
|
||||
|
@ -623,11 +732,11 @@ enum v4l2_mpeg_cx2341x_video_median_filter_type {
|
|||
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_HOR_VERT = 3,
|
||||
V4L2_MPEG_CX2341X_VIDEO_MEDIAN_FILTER_TYPE_DIAG = 4,
|
||||
};
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+7)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_LUMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+8)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM (V4L2_CID_MPEG_CX2341X_BASE+9)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10)
|
||||
#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11)
|
||||
#define V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_TOP (V4L2_CID_MPEG_CX2341X_BASE+10)
|
||||
#define V4L2_CID_MPEG_CX2341X_STREAM_INSERT_NAV_PACKETS (V4L2_CID_MPEG_CX2341X_BASE+11)
|
||||
|
||||
/* MPEG-class control IDs specific to the Samsung MFC 5.1 driver as defined by V4L2 */
|
||||
#define V4L2_CID_MPEG_MFC51_BASE (V4L2_CTRL_CLASS_MPEG | 0x1100)
|
||||
|
@ -656,11 +765,10 @@ enum v4l2_mpeg_mfc51_video_force_frame_type {
|
|||
#define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53)
|
||||
#define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54)
|
||||
|
||||
|
||||
/* Camera class control IDs */
|
||||
|
||||
#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
|
||||
#define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1)
|
||||
#define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900)
|
||||
#define V4L2_CID_CAMERA_CLASS (V4L2_CTRL_CLASS_CAMERA | 1)
|
||||
|
||||
#define V4L2_CID_EXPOSURE_AUTO (V4L2_CID_CAMERA_CLASS_BASE+1)
|
||||
enum v4l2_exposure_auto_type {
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
/* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR BSD-3-Clause) */
|
||||
/*
|
||||
* Video for Linux Two header file
|
||||
*
|
||||
|
@ -104,14 +105,14 @@ enum v4l2_field {
|
|||
transmitted first */
|
||||
};
|
||||
#define V4L2_FIELD_HAS_TOP(field) \
|
||||
((field) == V4L2_FIELD_TOP ||\
|
||||
((field) == V4L2_FIELD_TOP ||\
|
||||
(field) == V4L2_FIELD_INTERLACED ||\
|
||||
(field) == V4L2_FIELD_INTERLACED_TB ||\
|
||||
(field) == V4L2_FIELD_INTERLACED_BT ||\
|
||||
(field) == V4L2_FIELD_SEQ_TB ||\
|
||||
(field) == V4L2_FIELD_SEQ_BT)
|
||||
#define V4L2_FIELD_HAS_BOTTOM(field) \
|
||||
((field) == V4L2_FIELD_BOTTOM ||\
|
||||
((field) == V4L2_FIELD_BOTTOM ||\
|
||||
(field) == V4L2_FIELD_INTERLACED ||\
|
||||
(field) == V4L2_FIELD_INTERLACED_TB ||\
|
||||
(field) == V4L2_FIELD_INTERLACED_BT ||\
|
||||
|
@ -464,12 +465,12 @@ struct v4l2_capability {
|
|||
* V I D E O I M A G E F O R M A T
|
||||
*/
|
||||
struct v4l2_pix_format {
|
||||
__u32 width;
|
||||
__u32 width;
|
||||
__u32 height;
|
||||
__u32 pixelformat;
|
||||
__u32 field; /* enum v4l2_field */
|
||||
__u32 bytesperline; /* for padding, zero if unused */
|
||||
__u32 sizeimage;
|
||||
__u32 bytesperline; /* for padding, zero if unused */
|
||||
__u32 sizeimage;
|
||||
__u32 colorspace; /* enum v4l2_colorspace */
|
||||
__u32 priv; /* private data, depends on pixelformat */
|
||||
__u32 flags; /* format flags (V4L2_PIX_FMT_FLAG_*) */
|
||||
|
@ -519,6 +520,7 @@ struct v4l2_pix_format {
|
|||
|
||||
/* Grey bit-packed formats */
|
||||
#define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
|
||||
#define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */
|
||||
|
||||
/* Palette formats */
|
||||
#define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */
|
||||
|
@ -601,6 +603,16 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */
|
||||
#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
|
||||
#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */
|
||||
/* 12bit raw bayer packed, 6 bytes for every 4 pixels */
|
||||
#define V4L2_PIX_FMT_SBGGR12P v4l2_fourcc('p', 'B', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
|
||||
#define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C')
|
||||
/* 14bit raw bayer packed, 7 bytes for every 4 pixels */
|
||||
#define V4L2_PIX_FMT_SBGGR14P v4l2_fourcc('p', 'B', 'E', 'E')
|
||||
#define V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E')
|
||||
#define V4L2_PIX_FMT_SGRBG14P v4l2_fourcc('p', 'g', 'E', 'E')
|
||||
#define V4L2_PIX_FMT_SRGGB14P v4l2_fourcc('p', 'R', 'E', 'E')
|
||||
#define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */
|
||||
#define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */
|
||||
#define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR.. BGBG.. */
|
||||
|
@ -627,6 +639,8 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
|
||||
#define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
|
||||
#define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
|
||||
#define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */
|
||||
#define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T') /* Fast Walsh Hadamard Transform (vicodec) */
|
||||
|
||||
/* Vendor-specific formats */
|
||||
#define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
|
||||
|
@ -661,6 +675,12 @@ struct v4l2_pix_format {
|
|||
#define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */
|
||||
#define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */
|
||||
|
||||
/* 10bit raw bayer packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */
|
||||
#define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */
|
||||
#define V4L2_PIX_FMT_IPU3_SGBRG10 v4l2_fourcc('i', 'p', '3', 'g') /* IPU3 packed 10-bit GBRG bayer */
|
||||
#define V4L2_PIX_FMT_IPU3_SGRBG10 v4l2_fourcc('i', 'p', '3', 'G') /* IPU3 packed 10-bit GRBG bayer */
|
||||
#define V4L2_PIX_FMT_IPU3_SRGGB10 v4l2_fourcc('i', 'p', '3', 'r') /* IPU3 packed 10-bit RGGB bayer */
|
||||
|
||||
/* SDR formats - used only for Software Defined Radio devices */
|
||||
#define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */
|
||||
#define V4L2_SDR_FMT_CU16LE v4l2_fourcc('C', 'U', '1', '6') /* IQ u16le */
|
||||
|
@ -680,6 +700,8 @@ struct v4l2_pix_format {
|
|||
/* Meta-data formats */
|
||||
#define V4L2_META_FMT_VSP1_HGO v4l2_fourcc('V', 'S', 'P', 'H') /* R-Car VSP1 1-D Histogram */
|
||||
#define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */
|
||||
#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */
|
||||
#define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */
|
||||
|
||||
/* priv field value to indicates that subsequent fields are valid. */
|
||||
#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
|
||||
|
@ -1158,7 +1180,7 @@ typedef __u64 v4l2_std_id;
|
|||
V4L2_STD_NTSC_M_JP |\
|
||||
V4L2_STD_NTSC_M_KR)
|
||||
/* Secam macros */
|
||||
#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\
|
||||
#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\
|
||||
V4L2_STD_SECAM_K |\
|
||||
V4L2_STD_SECAM_K1)
|
||||
/* All Secam Standards */
|
||||
|
@ -1239,7 +1261,7 @@ struct v4l2_standard {
|
|||
};
|
||||
|
||||
/*
|
||||
* D V B T T I M I N G S
|
||||
* D V B T T I M I N G S
|
||||
*/
|
||||
|
||||
/** struct v4l2_bt_timings - BT.656/BT.1120 timing data
|
||||
|
@ -1377,6 +1399,13 @@ struct v4l2_bt_timings {
|
|||
* InfoFrame).
|
||||
*/
|
||||
#define V4L2_DV_FL_HAS_HDMI_VIC (1 << 8)
|
||||
/*
|
||||
* CEA-861 specific: only valid for video receivers.
|
||||
* If set, then HW can detect the difference between regular FPS and
|
||||
* 1000/1001 FPS. Note: This flag is only valid for HDMI VIC codes with
|
||||
* the V4L2_DV_FL_CAN_REDUCE_FPS flag set.
|
||||
*/
|
||||
#define V4L2_DV_FL_CAN_DETECT_REDUCED_FPS (1 << 9)
|
||||
|
||||
/* A few useful defines to calculate the total blanking and frame sizes */
|
||||
#define V4L2_DV_BT_BLANKING_WIDTH(bt) \
|
||||
|
@ -1580,7 +1609,7 @@ struct v4l2_ext_controls {
|
|||
struct v4l2_ext_control *controls;
|
||||
};
|
||||
|
||||
#define V4L2_CTRL_ID_MASK (0x0fffffff)
|
||||
#define V4L2_CTRL_ID_MASK (0x0fffffff)
|
||||
#ifndef __KERNEL__
|
||||
#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL)
|
||||
#endif
|
||||
|
@ -1652,11 +1681,11 @@ struct v4l2_querymenu {
|
|||
/* Control flags */
|
||||
#define V4L2_CTRL_FLAG_DISABLED 0x0001
|
||||
#define V4L2_CTRL_FLAG_GRABBED 0x0002
|
||||
#define V4L2_CTRL_FLAG_READ_ONLY 0x0004
|
||||
#define V4L2_CTRL_FLAG_UPDATE 0x0008
|
||||
#define V4L2_CTRL_FLAG_INACTIVE 0x0010
|
||||
#define V4L2_CTRL_FLAG_SLIDER 0x0020
|
||||
#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040
|
||||
#define V4L2_CTRL_FLAG_READ_ONLY 0x0004
|
||||
#define V4L2_CTRL_FLAG_UPDATE 0x0008
|
||||
#define V4L2_CTRL_FLAG_INACTIVE 0x0010
|
||||
#define V4L2_CTRL_FLAG_SLIDER 0x0020
|
||||
#define V4L2_CTRL_FLAG_WRITE_ONLY 0x0040
|
||||
#define V4L2_CTRL_FLAG_VOLATILE 0x0080
|
||||
#define V4L2_CTRL_FLAG_HAS_PAYLOAD 0x0100
|
||||
#define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200
|
||||
|
@ -1770,21 +1799,21 @@ struct v4l2_hw_freq_seek {
|
|||
*/
|
||||
|
||||
struct v4l2_rds_data {
|
||||
__u8 lsb;
|
||||
__u8 msb;
|
||||
__u8 block;
|
||||
__u8 lsb;
|
||||
__u8 msb;
|
||||
__u8 block;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
#define V4L2_RDS_BLOCK_MSK 0x7
|
||||
#define V4L2_RDS_BLOCK_A 0
|
||||
#define V4L2_RDS_BLOCK_B 1
|
||||
#define V4L2_RDS_BLOCK_C 2
|
||||
#define V4L2_RDS_BLOCK_D 3
|
||||
#define V4L2_RDS_BLOCK_C_ALT 4
|
||||
#define V4L2_RDS_BLOCK_INVALID 7
|
||||
#define V4L2_RDS_BLOCK_MSK 0x7
|
||||
#define V4L2_RDS_BLOCK_A 0
|
||||
#define V4L2_RDS_BLOCK_B 1
|
||||
#define V4L2_RDS_BLOCK_C 2
|
||||
#define V4L2_RDS_BLOCK_D 3
|
||||
#define V4L2_RDS_BLOCK_C_ALT 4
|
||||
#define V4L2_RDS_BLOCK_INVALID 7
|
||||
|
||||
#define V4L2_RDS_BLOCK_CORRECTED 0x40
|
||||
#define V4L2_RDS_BLOCK_ERROR 0x80
|
||||
#define V4L2_RDS_BLOCK_ERROR 0x80
|
||||
|
||||
/*
|
||||
* A U D I O
|
||||
|
@ -2294,7 +2323,6 @@ struct v4l2_create_buffers {
|
|||
*
|
||||
*/
|
||||
#define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
|
||||
#define VIDIOC_RESERVED _IO('V', 1)
|
||||
#define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
|
||||
#define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format)
|
||||
#define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format)
|
||||
|
@ -2340,8 +2368,8 @@ struct v4l2_create_buffers {
|
|||
#define VIDIOC_S_CROP _IOW('V', 60, struct v4l2_crop)
|
||||
#define VIDIOC_G_JPEGCOMP _IOR('V', 61, struct v4l2_jpegcompression)
|
||||
#define VIDIOC_S_JPEGCOMP _IOW('V', 62, struct v4l2_jpegcompression)
|
||||
#define VIDIOC_QUERYSTD _IOR('V', 63, v4l2_std_id)
|
||||
#define VIDIOC_TRY_FMT _IOWR('V', 64, struct v4l2_format)
|
||||
#define VIDIOC_QUERYSTD _IOR('V', 63, v4l2_std_id)
|
||||
#define VIDIOC_TRY_FMT _IOWR('V', 64, struct v4l2_format)
|
||||
#define VIDIOC_ENUMAUDIO _IOWR('V', 65, struct v4l2_audio)
|
||||
#define VIDIOC_ENUMAUDOUT _IOWR('V', 66, struct v4l2_audioout)
|
||||
#define VIDIOC_G_PRIORITY _IOR('V', 67, __u32) /* enum v4l2_priority */
|
||||
|
@ -2362,8 +2390,8 @@ struct v4l2_create_buffers {
|
|||
* Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.
|
||||
* You must be root to use these ioctls. Never use these in applications!
|
||||
*/
|
||||
#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
|
||||
#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
|
||||
#define VIDIOC_DBG_S_REGISTER _IOW('V', 79, struct v4l2_dbg_register)
|
||||
#define VIDIOC_DBG_G_REGISTER _IOWR('V', 80, struct v4l2_dbg_register)
|
||||
|
||||
#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek)
|
||||
#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
|
||||
|
|
Loading…
Reference in a new issue