2.27. V4L2 常用函式和資料結構¶
-
int v4l2_ctrl_query_fill(struct v4l2_queryctrl *qctrl, s32 min, s32 max, s32 step, s32 def)¶
引數
struct v4l2_queryctrl *qctrl要填充的
struct v4l2_queryctrl的指標s32 min控制元件的最小值
s32 max控制元件的最大值
s32 step控制元件步長
s32 def控制元件的預設值
描述
填充查詢控制元件的 struct v4l2_queryctrl 欄位。
注意
此函式假定已填充 qctrl->id 欄位。
如果 V4L2 核心不知道該控制元件,則返回 -EINVAL,成功則返回 0。
-
enum v4l2_i2c_tuner_type¶
指定在搜尋 I2C 裝置時應使用的調諧器地址範圍。
常量
ADDRS_RADIO無線電調諧器地址。表示以下 I2C 地址:0x10(如果使用 tea5761 支援編譯)和 0x60。
ADDRS_DEMOD解調器調諧器地址。表示以下 I2C 地址:0x42、0x43、0x4a 和 0x4b。
ADDRS_TV電視調諧器地址。表示以下 I2C 地址:0x42、0x43、0x4a、0x4b、0x60、0x61、0x62、0x63 和 0x64。
ADDRS_TV_WITH_DEMOD如果存在解調器,則為電視調諧器地址,這會將解調器使用的地址從候選列表Excluded。表示以下 I2C 地址:0x60、0x61、0x62、0x63 和 0x64。
注意
以上所有 I2C 地址都使用 7 位表示法。
-
struct v4l2_subdev *v4l2_i2c_new_subdev(struct v4l2_device *v4l2_dev, struct i2c_adapter *adapter, const char *client_type, u8 addr, const unsigned short *probe_addrs)¶
載入 i2c 模組並返回初始化的
struct v4l2_subdev。
引數
struct v4l2_device *v4l2_dev指向
struct v4l2_device的指標struct i2c_adapter *adapter指向 struct i2c_adapter 的指標
const char *client_type介面卡上晶片的名稱。
u8 addrI2C 地址。如果為零,它將使用 probe_addrs
const unsigned short *probe_addrs包含地址列表的陣列。此類陣列中的最後一個條目應為
I2C_CLIENT_END。
描述
返回 struct v4l2_subdev 指標。
-
struct v4l2_subdev *v4l2_i2c_new_subdev_board(struct v4l2_device *v4l2_dev, struct i2c_adapter *adapter, struct i2c_board_info *info, const unsigned short *probe_addrs)¶
載入 i2c 模組並返回初始化的
struct v4l2_subdev。
引數
struct v4l2_device *v4l2_dev指向
struct v4l2_device的指標struct i2c_adapter *adapter指向 struct i2c_adapter 的指標
struct i2c_board_info *info指向
struct i2c_board_info的指標,用於替換 irq、platform_data 和 addr 引數。const unsigned short *probe_addrs包含地址列表的陣列。此類陣列中的最後一個條目應為
I2C_CLIENT_END。
描述
返回 struct v4l2_subdev 指標。
-
void v4l2_i2c_subdev_set_name(struct v4l2_subdev *sd, struct i2c_client *client, const char *devname, const char *postfix)¶
為 I²C 子裝置設定名稱
引數
struct v4l2_subdev *sd指向
struct v4l2_subdev的指標struct i2c_client *client指向
struct i2c_client的指標const char *devname裝置名稱;如果為 NULL,將使用 I²C 裝置驅動程式的名稱
const char *postfix子裝置特定字串,放在 I²C 裝置名稱之後;可以為 NULL
-
void v4l2_i2c_subdev_init(struct v4l2_subdev *sd, struct i2c_client *client, const struct v4l2_subdev_ops *ops)¶
使用來自 i2c_client 結構的資料初始化
struct v4l2_subdev。
引數
struct v4l2_subdev *sd指向
struct v4l2_subdev的指標struct i2c_client *client指向
struct i2c_client的指標const struct v4l2_subdev_ops *ops指向
struct v4l2_subdev_ops的指標
-
unsigned short v4l2_i2c_subdev_addr(struct v4l2_subdev *sd)¶
返回
struct v4l2_subdev的 i2c 客戶端地址。
-
const unsigned short *v4l2_i2c_tuner_addrs(enum v4l2_i2c_tuner_type type)¶
返回要探測的 I2C 調諧器地址列表。
-
void v4l2_i2c_subdev_unregister(struct v4l2_subdev *sd)¶
登出 v4l2_subdev
引數
struct v4l2_subdev *sd指向
struct v4l2_subdev的指標
-
struct v4l2_subdev *v4l2_spi_new_subdev(struct v4l2_device *v4l2_dev, struct spi_controller *ctlr, struct spi_board_info *info)¶
載入 spi 模組並返回初始化的
struct v4l2_subdev。
引數
struct v4l2_device *v4l2_dev指向
struct v4l2_device的指標。struct spi_controller *ctlr指向
struct spi_controller的指標。struct spi_board_info *info指向
struct spi_board_info的指標。
描述
返回 struct v4l2_subdev 指標。
-
void v4l2_spi_subdev_init(struct v4l2_subdev *sd, struct spi_device *spi, const struct v4l2_subdev_ops *ops)¶
使用來自 spi_device 結構的資料初始化 v4l2_subdev。
引數
struct v4l2_subdev *sd指向
struct v4l2_subdev的指標struct spi_device *spi指向
struct spi_device的指標。const struct v4l2_subdev_ops *ops指向
struct v4l2_subdev_ops的指標
-
void v4l2_spi_subdev_unregister(struct v4l2_subdev *sd)¶
登出 v4l2_subdev
引數
struct v4l2_subdev *sd指向
struct v4l2_subdev的指標
-
void v4l_bound_align_image(unsigned int *width, unsigned int wmin, unsigned int wmax, unsigned int walign, unsigned int *height, unsigned int hmin, unsigned int hmax, unsigned int halign, unsigned int salign)¶
根據給定的約束調整影片尺寸。
引數
unsigned int *width指向寬度的指標,如果需要,將進行調整。
unsigned int wmin最小寬度。
unsigned int wmax最大寬度。
unsigned int walign寬度上的最低有效位。
unsigned int *height指向高度的指標,如果需要,將進行調整。
unsigned int hmin最小高度。
unsigned int hmax最大高度。
unsigned int halign高度上的最低有效位。
unsigned int salign影像大小的最低有效位(例如,
)。
描述
裁剪影像以使 width 在 wmin 和 wmax 之間,並且 height 在 hmin 和 hmax 之間(含)。
此外,width 將是
的倍數,height 將是
的倍數,並且總大小
將是
的倍數。
注意
可以縮小或放大裁剪矩形以適合對齊約束。
wmax 不得小於 wmin。
hmax 不得小於 hmin。
對齊方式不得太高,以至於允許的範圍內沒有可能的影像大小。
wmin 和 hmin 必須至少為 1(不要使用 0)。
對於 walign、halign 和 salign,如果您不關心某個對齊方式,請指定
0,因為
和一個位元組的對齊方式相當於不對齊。如果您只想向下調整,請指定一個與初始值相同的最大值。
-
v4l2_find_nearest_size_conditional¶
v4l2_find_nearest_size_conditional (array, array_size, width_field, height_field, width, height, func, context)
在驅動程式特定結構的陣列中包含的一組離散解析度中查詢最接近的尺寸,並有條件地排除某些模式
引數
陣列驅動程式特定的影像大小陣列
array_size驅動程式特定的影像大小陣列的長度
width_field驅動程式特定結構中寬度欄位的名稱
height_field驅動程式特定結構中高度欄位的名稱
width所需寬度
height所需高度
func如果返回 false,則忽略模式
context函式的上下文
描述
查詢最接近的解析度,以最大限度地減少請求的解析度和支援的解析度之間的寬度和高度差異。驅動程式特定結構中寬度和高度欄位的大小必須等於 u32 的大小,即四個位元組。對於考慮的每種模式都會呼叫 func,如果 func 對其返回 false,則忽略該模式。
返回最佳匹配,如果陣列的長度為零,則返回 NULL。
-
v4l2_find_nearest_size¶
v4l2_find_nearest_size (array, array_size, width_field, height_field, width, height)
在驅動程式特定結構的陣列中包含的一組離散解析度中查詢最接近的尺寸
引數
陣列驅動程式特定的影像大小陣列
array_size驅動程式特定的影像大小陣列的長度
width_field驅動程式特定結構中寬度欄位的名稱
height_field驅動程式特定結構中高度欄位的名稱
width所需寬度
height所需高度
描述
查詢最接近的解析度,以最大限度地減少請求的解析度和支援的解析度之間的寬度和高度差異。驅動程式特定結構中寬度和高度欄位的大小必須等於 u32 的大小,即四個位元組。
返回最佳匹配,如果陣列的長度為零,則返回 NULL。
-
int v4l2_g_parm_cap(struct video_device *vdev, struct v4l2_subdev *sd, struct v4l2_streamparm *a)¶
vidioc_g_parm 的輔助例程,透過呼叫給定子裝置的 get_frame_interval 操作來填充此資訊。它僅適用於 V4L2_BUF_TYPE_VIDEO_CAPTURE(_MPLANE),因此函式名稱中包含 _cap。
引數
struct video_device *vdevstruct video_device指標。用於確定裝置容量。struct v4l2_subdev *sd子裝置指標。
struct v4l2_streamparm *aVIDIOC_G_PARM 引數。
-
int v4l2_s_parm_cap(struct video_device *vdev, struct v4l2_subdev *sd, struct v4l2_streamparm *a)¶
vidioc_s_parm 的輔助例程,透過呼叫給定子裝置的 set_frame_interval 操作來填充此資訊。它僅適用於 V4L2_BUF_TYPE_VIDEO_CAPTURE(_MPLANE),因此函式名稱中包含 _cap。
引數
struct video_device *vdevstruct video_device指標。用於確定裝置容量。struct v4l2_subdev *sd子裝置指標。
struct v4l2_streamparm *aVIDIOC_S_PARM 引數。
-
enum v4l2_pixel_encoding¶
指定畫素編碼值
常量
V4L2_PIXEL_ENC_UNKNOWN畫素編碼未知/未初始化
V4L2_PIXEL_ENC_YUV畫素編碼為 YUV
V4L2_PIXEL_ENC_RGB畫素編碼為 RGB
V4L2_PIXEL_ENC_BAYER畫素編碼為 Bayer
-
struct v4l2_format_info¶
有關 V4L2 格式的資訊
定義:
struct v4l2_format_info {
u32 format;
u8 pixel_enc;
u8 mem_planes;
u8 comp_planes;
u8 bpp[4];
u8 bpp_div[4];
u8 hdiv;
u8 vdiv;
u8 block_w[4];
u8 block_h[4];
};
成員
格式4CC 格式識別符號 (V4L2_PIX_FMT_*)
pixel_enc畫素編碼(請參閱上面的
enum v4l2_pixel_encoding)mem_planes記憶體平面數量,包括 alpha 平面(1 到 4)。
comp_planes元件平面數量,包括 alpha 平面(1 到 4)。
bpp每個平面的每畫素位元組陣列
bpp_div每個平面的每畫素位元組除數陣列,以支援小數畫素大小。
hdiv水平色度二次取樣因子
vdiv垂直色度二次取樣因子
block_w每個平面的宏塊畫素寬度(可選)
block_h每個平面的宏塊畫素高度(可選)
-
v4l2_get_link_freq¶
v4l2_get_link_freq (pad, mul, div)
從發射器獲取鏈路速率
引數
pad發射器的媒體填充(或非 MC 使用者的控制處理程式或出於相容性原因,請勿在新程式碼中使用)
mul畫素速率和鏈路頻率之間的乘數。D-PHY 上的每畫素位數,並行上的每時鐘取樣數。否則為 0。
div畫素速率和鏈路頻率之間的除數。D-PHY 上的資料通道數量乘以 2,並行上為 1。否則為 0。
描述
此函式旨在從發射器子裝置獲取鏈路頻率。它返回鏈路速率,無論是來自發射器實現的 V4L2_CID_LINK_FREQ 控制元件,還是根據發射器實現的 V4L2_CID_PIXEL_RATE 計算的值。
返回值
>0:鏈路頻率
-ENOENT:未找到鏈路頻率或畫素速率控制元件-EINVAL:鏈路頻率值無效
-
int v4l2_link_freq_to_bitmap(struct device *dev, const u64 *fw_link_freqs, unsigned int num_of_fw_link_freqs, const s64 *driver_link_freqs, unsigned int num_of_driver_link_freqs, unsigned long *bitmap)¶
計算平臺支援的鏈路頻率
引數
struct device *devconst u64 *fw_link_freqs韌體中的鏈路頻率陣列
unsigned int num_of_fw_link_freqsfw_link_freqs 中的條目數
const s64 *driver_link_freqs驅動程式支援的鏈路頻率陣列
unsigned int num_of_driver_link_freqsdriver_link_freqs 中的條目數
unsigned long *bitmap在 fw_link_freqs 中找到的驅動程式支援的鏈路頻率的點陣圖
描述
此函式檢查系統韌體中啟用了哪些驅動程式支援的鏈路頻率,並在 bitmap 中設定相應的位(首先將其清零)。
返回值
0:成功-ENOENT:在驅動程式支援的鏈路頻率和韌體中可用的鏈路頻率之間未找到匹配項。-ENODATA:韌體中未指定鏈路頻率。
-
struct v4l2_ioctl_ops¶
描述每個 V4L2 ioctl 的操作
定義:
struct v4l2_ioctl_ops {
int (*vidioc_querycap)(struct file *file, void *fh, struct v4l2_capability *cap);
int (*vidioc_enum_fmt_vid_cap)(struct file *file, void *fh, struct v4l2_fmtdesc *f);
int (*vidioc_enum_fmt_vid_overlay)(struct file *file, void *fh, struct v4l2_fmtdesc *f);
int (*vidioc_enum_fmt_vid_out)(struct file *file, void *fh, struct v4l2_fmtdesc *f);
int (*vidioc_enum_fmt_sdr_cap)(struct file *file, void *fh, struct v4l2_fmtdesc *f);
int (*vidioc_enum_fmt_sdr_out)(struct file *file, void *fh, struct v4l2_fmtdesc *f);
int (*vidioc_enum_fmt_meta_cap)(struct file *file, void *fh, struct v4l2_fmtdesc *f);
int (*vidioc_enum_fmt_meta_out)(struct file *file, void *fh, struct v4l2_fmtdesc *f);
int (*vidioc_g_fmt_vid_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_vid_overlay)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_vid_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_vid_out_overlay)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_vbi_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_vbi_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_sliced_vbi_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_sliced_vbi_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_vid_cap_mplane)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_vid_out_mplane)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_sdr_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_sdr_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_meta_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_g_fmt_meta_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_vid_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_vid_overlay)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_vid_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_vid_out_overlay)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_vbi_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_vbi_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_sliced_vbi_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_sliced_vbi_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_vid_cap_mplane)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_vid_out_mplane)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_sdr_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_sdr_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_meta_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_s_fmt_meta_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_vid_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_vid_overlay)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_vid_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_vid_out_overlay)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_vbi_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_vbi_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_sliced_vbi_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_sliced_vbi_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_vid_cap_mplane)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_vid_out_mplane)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_sdr_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_sdr_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_meta_cap)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_try_fmt_meta_out)(struct file *file, void *fh, struct v4l2_format *f);
int (*vidioc_reqbufs)(struct file *file, void *fh, struct v4l2_requestbuffers *b);
int (*vidioc_querybuf)(struct file *file, void *fh, struct v4l2_buffer *b);
int (*vidioc_qbuf)(struct file *file, void *fh, struct v4l2_buffer *b);
int (*vidioc_expbuf)(struct file *file, void *fh, struct v4l2_exportbuffer *e);
int (*vidioc_dqbuf)(struct file *file, void *fh, struct v4l2_buffer *b);
int (*vidioc_create_bufs)(struct file *file, void *fh, struct v4l2_create_buffers *b);
int (*vidioc_prepare_buf)(struct file *file, void *fh, struct v4l2_buffer *b);
int (*vidioc_remove_bufs)(struct file *file, void *fh, struct v4l2_remove_buffers *d);
int (*vidioc_overlay)(struct file *file, void *fh, unsigned int i);
int (*vidioc_g_fbuf)(struct file *file, void *fh, struct v4l2_framebuffer *a);
int (*vidioc_s_fbuf)(struct file *file, void *fh, const struct v4l2_framebuffer *a);
int (*vidioc_streamon)(struct file *file, void *fh, enum v4l2_buf_type i);
int (*vidioc_streamoff)(struct file *file, void *fh, enum v4l2_buf_type i);
int (*vidioc_g_std)(struct file *file, void *fh, v4l2_std_id *norm);
int (*vidioc_s_std)(struct file *file, void *fh, v4l2_std_id norm);
int (*vidioc_querystd)(struct file *file, void *fh, v4l2_std_id *a);
int (*vidioc_enum_input)(struct file *file, void *fh, struct v4l2_input *inp);
int (*vidioc_g_input)(struct file *file, void *fh, unsigned int *i);
int (*vidioc_s_input)(struct file *file, void *fh, unsigned int i);
int (*vidioc_enum_output)(struct file *file, void *fh, struct v4l2_output *a);
int (*vidioc_g_output)(struct file *file, void *fh, unsigned int *i);
int (*vidioc_s_output)(struct file *file, void *fh, unsigned int i);
int (*vidioc_query_ext_ctrl)(struct file *file, void *fh, struct v4l2_query_ext_ctrl *a);
int (*vidioc_g_ext_ctrls)(struct file *file, void *fh, struct v4l2_ext_controls *a);
int (*vidioc_s_ext_ctrls)(struct file *file, void *fh, struct v4l2_ext_controls *a);
int (*vidioc_try_ext_ctrls)(struct file *file, void *fh, struct v4l2_ext_controls *a);
int (*vidioc_querymenu)(struct file *file, void *fh, struct v4l2_querymenu *a);
int (*vidioc_enumaudio)(struct file *file, void *fh, struct v4l2_audio *a);
int (*vidioc_g_audio)(struct file *file, void *fh, struct v4l2_audio *a);
int (*vidioc_s_audio)(struct file *file, void *fh, const struct v4l2_audio *a);
int (*vidioc_enumaudout)(struct file *file, void *fh, struct v4l2_audioout *a);
int (*vidioc_g_audout)(struct file *file, void *fh, struct v4l2_audioout *a);
int (*vidioc_s_audout)(struct file *file, void *fh, const struct v4l2_audioout *a);
int (*vidioc_g_modulator)(struct file *file, void *fh, struct v4l2_modulator *a);
int (*vidioc_s_modulator)(struct file *file, void *fh, const struct v4l2_modulator *a);
int (*vidioc_g_pixelaspect)(struct file *file, void *fh, int buf_type, struct v4l2_fract *aspect);
int (*vidioc_g_selection)(struct file *file, void *fh, struct v4l2_selection *s);
int (*vidioc_s_selection)(struct file *file, void *fh, struct v4l2_selection *s);
int (*vidioc_g_jpegcomp)(struct file *file, void *fh, struct v4l2_jpegcompression *a);
int (*vidioc_s_jpegcomp)(struct file *file, void *fh, const struct v4l2_jpegcompression *a);
int (*vidioc_g_enc_index)(struct file *file, void *fh, struct v4l2_enc_idx *a);
int (*vidioc_encoder_cmd)(struct file *file, void *fh, struct v4l2_encoder_cmd *a);
int (*vidioc_try_encoder_cmd)(struct file *file, void *fh, struct v4l2_encoder_cmd *a);
int (*vidioc_decoder_cmd)(struct file *file, void *fh, struct v4l2_decoder_cmd *a);
int (*vidioc_try_decoder_cmd)(struct file *file, void *fh, struct v4l2_decoder_cmd *a);
int (*vidioc_g_parm)(struct file *file, void *fh, struct v4l2_streamparm *a);
int (*vidioc_s_parm)(struct file *file, void *fh, struct v4l2_streamparm *a);
int (*vidioc_g_tuner)(struct file *file, void *fh, struct v4l2_tuner *a);
int (*vidioc_s_tuner)(struct file *file, void *fh, const struct v4l2_tuner *a);
int (*vidioc_g_frequency)(struct file *file, void *fh, struct v4l2_frequency *a);
int (*vidioc_s_frequency)(struct file *file, void *fh, const struct v4l2_frequency *a);
int (*vidioc_enum_freq_bands)(struct file *file, void *fh, struct v4l2_frequency_band *band);
int (*vidioc_g_sliced_vbi_cap)(struct file *file, void *fh, struct v4l2_sliced_vbi_cap *a);
int (*vidioc_log_status)(struct file *file, void *fh);
int (*vidioc_s_hw_freq_seek)(struct file *file, void *fh, const struct v4l2_hw_freq_seek *a);
#ifdef CONFIG_VIDEO_ADV_DEBUG;
int (*vidioc_g_register)(struct file *file, void *fh, struct v4l2_dbg_register *reg);
int (*vidioc_s_register)(struct file *file, void *fh, const struct v4l2_dbg_register *reg);
int (*vidioc_g_chip_info)(struct file *file, void *fh, struct v4l2_dbg_chip_info *chip);
#endif;
int (*vidioc_enum_framesizes)(struct file *file, void *fh, struct v4l2_frmsizeenum *fsize);
int (*vidioc_enum_frameintervals)(struct file *file, void *fh, struct v4l2_frmivalenum *fival);
int (*vidioc_s_dv_timings)(struct file *file, void *fh, struct v4l2_dv_timings *timings);
int (*vidioc_g_dv_timings)(struct file *file, void *fh, struct v4l2_dv_timings *timings);
int (*vidioc_query_dv_timings)(struct file *file, void *fh, struct v4l2_dv_timings *timings);
int (*vidioc_enum_dv_timings)(struct file *file, void *fh, struct v4l2_enum_dv_timings *timings);
int (*vidioc_dv_timings_cap)(struct file *file, void *fh, struct v4l2_dv_timings_cap *cap);
int (*vidioc_g_edid)(struct file *file, void *fh, struct v4l2_edid *edid);
int (*vidioc_s_edid)(struct file *file, void *fh, struct v4l2_edid *edid);
int (*vidioc_subscribe_event)(struct v4l2_fh *fh, const struct v4l2_event_subscription *sub);
int (*vidioc_unsubscribe_event)(struct v4l2_fh *fh, const struct v4l2_event_subscription *sub);
long (*vidioc_default)(struct file *file, void *fh, bool valid_prio, unsigned int cmd, void *arg);
};
成員
vidioc_querycap指向實現 VIDIOC_QUERYCAP ioctl 的函式的指標
vidioc_enum_fmt_vid_cap指向為單平面和多平面模式下的影片捕獲實現 VIDIOC_ENUM_FMT ioctl 邏輯的函式的指標
vidioc_enum_fmt_vid_overlay指向為影片疊加實現 VIDIOC_ENUM_FMT ioctl 邏輯的函式的指標
vidioc_enum_fmt_vid_out指向為單平面和多平面模式下的影片輸出實現 VIDIOC_ENUM_FMT ioctl 邏輯的函式的指標
vidioc_enum_fmt_sdr_cap指向為軟體定義無線電捕獲實現 VIDIOC_ENUM_FMT ioctl 邏輯的函式的指標
vidioc_enum_fmt_sdr_out指向為軟體定義無線電輸出實現 VIDIOC_ENUM_FMT ioctl 邏輯的函式的指標
vidioc_enum_fmt_meta_cap指向為元資料捕獲實現 VIDIOC_ENUM_FMT ioctl 邏輯的函式的指標
vidioc_enum_fmt_meta_out指向為元資料輸出實現 VIDIOC_ENUM_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_vid_cap指向為單平面模式下的影片捕獲實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_vid_overlay指向為影片疊加實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_vid_out指向為單平面模式下的影片輸出實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_vid_out_overlay指向為影片疊加輸出實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_vbi_cap指向為原始 VBI 捕獲實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_vbi_out指向為原始 VBI 輸出實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_sliced_vbi_cap指向為切片 VBI 捕獲實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_sliced_vbi_out指向為切片 VBI 輸出實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_vid_cap_mplane指向為多平面模式下的影片捕獲實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_vid_out_mplane指向為多平面模式下的影片輸出實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_sdr_cap指向為軟體定義無線電捕獲實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_sdr_out指向為軟體定義無線電輸出實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_meta_cap指向為元資料捕獲實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_g_fmt_meta_out指向為元資料輸出實現 VIDIOC_G_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_vid_cap指向為單平面模式下的影片捕獲實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_vid_overlay指向為影片疊加實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_vid_out指向為單平面模式下的影片輸出實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_vid_out_overlay指向為影片疊加輸出實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_vbi_cap指向為原始 VBI 捕獲實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_vbi_out指向為原始 VBI 輸出實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_sliced_vbi_cap指向為切片 VBI 捕獲實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_sliced_vbi_out指向為切片 VBI 輸出實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_vid_cap_mplane指向為多平面模式下的影片捕獲實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_vid_out_mplane指向為多平面模式下的影片輸出實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_sdr_cap指向為軟體定義無線電捕獲實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_sdr_out指向為軟體定義無線電輸出實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_meta_cap指向為元資料捕獲實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_s_fmt_meta_out指向為元資料輸出實現 VIDIOC_S_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_vid_cap指向為單平面模式下的影片捕獲實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_vid_overlay指向為影片疊加實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_vid_out指向為單平面模式下的影片輸出實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_vid_out_overlay指向為影片疊加輸出實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_vbi_cap指向為原始 VBI 捕獲實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_vbi_out指向為原始 VBI 輸出實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_sliced_vbi_cap指向為切片 VBI 捕獲實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_sliced_vbi_out指向為切片 VBI 輸出實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_vid_cap_mplane指向為多平面模式下的影片捕獲實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_vid_out_mplane指向為多平面模式下的影片輸出實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_sdr_cap指向為軟體定義無線電捕獲實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_sdr_out指向為軟體定義無線電輸出實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_meta_cap指向為元資料捕獲實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_try_fmt_meta_out指向為元資料輸出實現 VIDIOC_TRY_FMT ioctl 邏輯的函式的指標
vidioc_reqbufs指向實現 VIDIOC_REQBUFS ioctl 的函式的指標
vidioc_querybuf指向實現 VIDIOC_QUERYBUF ioctl 的函式的指標
vidioc_qbuf指向實現 VIDIOC_QBUF ioctl 的函式的指標
vidioc_expbuf指向實現 VIDIOC_EXPBUF ioctl 的函式的指標
vidioc_dqbuf指向實現 VIDIOC_DQBUF ioctl 的函式的指標
vidioc_create_bufs指向實現 VIDIOC_CREATE_BUFS ioctl 的函式的指標
vidioc_prepare_buf指向實現 VIDIOC_PREPARE_BUF ioctl 的函式的指標
vidioc_remove_bufs指向實現 VIDIOC_REMOVE_BUFS ioctl 的函式的指標
vidioc_overlay指向實現 VIDIOC_OVERLAY ioctl 的函式的指標
vidioc_g_fbuf指向實現 VIDIOC_G_FBUF ioctl 的函式的指標
vidioc_s_fbuf指向實現 VIDIOC_S_FBUF ioctl 的函式的指標
vidioc_streamon指向實現 VIDIOC_STREAMON ioctl 的函式的指標
vidioc_streamoff指向實現 VIDIOC_STREAMOFF ioctl 的函式的指標
vidioc_g_std指向實現 VIDIOC_G_STD ioctl 的函式的指標
vidioc_s_std指向實現 VIDIOC_S_STD ioctl 的函式的指標
vidioc_querystd指向實現 VIDIOC_QUERYSTD ioctl 的函式的指標
vidioc_enum_input指向實現 VIDIOC_ENUM_INPUT ioctl 的函式的指標
vidioc_g_input指向實現 VIDIOC_G_INPUT ioctl 的函式的指標
vidioc_s_input指向實現 VIDIOC_S_INPUT ioctl 的函式的指標
vidioc_enum_output指向實現 VIDIOC_ENUM_OUTPUT ioctl 的函式的指標
vidioc_g_output指向實現 VIDIOC_G_OUTPUT ioctl 的函式的指標
vidioc_s_output指向實現 VIDIOC_S_OUTPUT ioctl 的函式的指標
vidioc_query_ext_ctrl指向實現 VIDIOC_QUERY_EXT_CTRL ioctl 的函式的指標
vidioc_g_ext_ctrls指向實現 VIDIOC_G_EXT_CTRLS ioctl 的函式的指標
vidioc_s_ext_ctrls指向實現 VIDIOC_S_EXT_CTRLS ioctl 的函式的指標
vidioc_try_ext_ctrls指向實現 VIDIOC_TRY_EXT_CTRLS ioctl 的函式的指標
vidioc_querymenu指向實現 VIDIOC_QUERYMENU ioctl 的函式的指標
vidioc_enumaudio指向實現 VIDIOC_ENUMAUDIO ioctl 的函式的指標
vidioc_g_audio指向實現 VIDIOC_G_AUDIO ioctl 的函式的指標
vidioc_s_audio指向實現 VIDIOC_S_AUDIO ioctl 的函式的指標
vidioc_enumaudout指向實現 VIDIOC_ENUMAUDOUT ioctl 的函式的指標
vidioc_g_audout指向實現 VIDIOC_G_AUDOUT ioctl 的函式的指標
vidioc_s_audout指向實現 VIDIOC_S_AUDOUT ioctl 的函式的指標
vidioc_g_modulator指向實現 VIDIOC_G_MODULATOR ioctl 的函式的指標
vidioc_s_modulator指向實現 VIDIOC_S_MODULATOR ioctl 的函式的指標
vidioc_g_pixelaspect指向實現 VIDIOC_CROPCAP ioctl 的 pixelaspect 部分的函式的指標
vidioc_g_selection指向實現 VIDIOC_G_SELECTION ioctl 的函式的指標
vidioc_s_selection指向實現 VIDIOC_S_SELECTION ioctl 的函式的指標
vidioc_g_jpegcomp指向實現 VIDIOC_G_JPEGCOMP ioctl 的函式的指標
vidioc_s_jpegcomp指向實現 VIDIOC_S_JPEGCOMP ioctl 的函式的指標
vidioc_g_enc_index指向實現 VIDIOC_G_ENC_INDEX ioctl 的函式的指標
vidioc_encoder_cmd指向實現 VIDIOC_ENCODER_CMD ioctl 的函式的指標
vidioc_try_encoder_cmd指向實現 VIDIOC_TRY_ENCODER_CMD ioctl 的函式的指標
vidioc_decoder_cmd指向實現 VIDIOC_DECODER_CMD ioctl 的函式的指標
vidioc_try_decoder_cmd指向實現 VIDIOC_TRY_DECODER_CMD ioctl 的函式的指標
vidioc_g_parm指向實現 VIDIOC_G_PARM ioctl 的函式的指標
vidioc_s_parm指向實現 VIDIOC_S_PARM ioctl 的函式的指標
vidioc_g_tuner指向實現 VIDIOC_G_TUNER ioctl 的函式的指標
vidioc_s_tuner指向實現 VIDIOC_S_TUNER ioctl 的函式的指標
vidioc_g_frequency指向實現 VIDIOC_G_FREQUENCY ioctl 的函式的指標
vidioc_s_frequency指向實現 VIDIOC_S_FREQUENCY ioctl 的函式的指標
vidioc_enum_freq_bands指向實現 VIDIOC_ENUM_FREQ_BANDS ioctl 的函式的指標
vidioc_g_sliced_vbi_cap指向實現 VIDIOC_G_SLICED_VBI_CAP ioctl 的函式的指標
vidioc_log_status指向實現 VIDIOC_LOG_STATUS ioctl 的函式的指標
vidioc_s_hw_freq_seek指向實現 VIDIOC_S_HW_FREQ_SEEK ioctl 的函式的指標
vidioc_g_register指向實現 VIDIOC_DBG_G_REGISTER ioctl 的函式的指標
vidioc_s_register指向實現 VIDIOC_DBG_S_REGISTER ioctl 的函式的指標
vidioc_g_chip_info指向實現 VIDIOC_DBG_G_CHIP_INFO ioctl 的函式的指標
vidioc_enum_framesizes指向實現 VIDIOC_ENUM_FRAMESIZES ioctl 的函式的指標
vidioc_enum_frameintervals指向實現 VIDIOC_ENUM_FRAMEINTERVALS ioctl 的函式的指標
vidioc_s_dv_timings指向實現 VIDIOC_S_DV_TIMINGS ioctl 的函式的指標
vidioc_g_dv_timings指向實現 VIDIOC_G_DV_TIMINGS ioctl 的函式的指標
vidioc_query_dv_timings指向實現 VIDIOC_QUERY_DV_TIMINGS ioctl 的函式的指標
vidioc_enum_dv_timings指向實現 VIDIOC_ENUM_DV_TIMINGS ioctl 的函式的指標
vidioc_dv_timings_cap指向實現 VIDIOC_DV_TIMINGS_CAP ioctl 的函式的指標
vidioc_g_edid指向實現 VIDIOC_G_EDID ioctl 的函式的指標
vidioc_s_edid指向實現 VIDIOC_S_EDID ioctl 的函式的指標
vidioc_subscribe_event指向實現 VIDIOC_SUBSCRIBE_EVENT ioctl 的函式的指標
vidioc_unsubscribe_event指向實現 VIDIOC_UNSUBSCRIBE_EVENT ioctl 的函式的指標
vidioc_default用於允許其他 ioctl
-
const char *v4l2_norm_to_name(v4l2_std_id id)¶
從模擬電視標準 ID 獲取輔助例程。
引數
v4l2_std_id id模擬電視標準 ID。
返回值
返回一個包含模擬電視標準名稱的字串。如果找不到該標準,或者如果 id 指向多個標準,則返回“Unknown”。
-
void v4l2_video_std_frame_period(int id, struct v4l2_fract *frameperiod)¶
用預設幀速率分數填充
v4l2_fract結構指標的輔助例程。
引數
int id模擬電視標準 ID。
struct v4l2_fract *frameperiod要填充的 struct
v4l2_fract指標
-
int v4l2_video_std_construct(struct v4l2_standard *vs, int id, const char *name)¶
根據 id 引數填充
v4l2_standard結構的欄位的輔助例程。
引數
struct v4l2_standard *vs要填充的 struct
v4l2_standard指標int id模擬電視標準 ID。
const char *name要使用的標準的名稱
描述
注意
此輔助例程已過時。不應在新驅動程式上使用。
-
int v4l_video_std_enumstd(struct v4l2_standard *vs, v4l2_std_id id)¶
根據 id 和 vs->index 引數填充
v4l2_standard結構的欄位的輔助例程。
引數
struct v4l2_standard *vs要填充的 struct
v4l2_standard指標。v4l2_std_id id模擬電視標準 ID。
-
void v4l_printk_ioctl(const char *prefix, unsigned int cmd)¶
以人類可讀的格式列印 ioctl 的輔助例程。
引數
const char *prefix要新增到 ioctl 列印的字首。
unsigned int cmdioctl 名稱
描述
注意
如果 prefix != NULL,則它將首先發出 printk(KERN_DEBUG "``s: ", prefix)``。
-
long int v4l2_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg)¶
用於 64 位處理器的 32 位相容性層
引數
struct file *file指向 struct
file的指標。unsigned int cmdIoctl 名稱。
unsigned long argIoctl 引數。
-
v4l2_kioctl¶
Typedef:用於傳遞 ioctl 處理程式的 Typedef。
語法
long v4l2_kioctl (struct file *file, unsigned int cmd, void *arg)
引數
struct file *file指向 struct
file的指標。unsigned int cmdIoctl 名稱。
void *argIoctl 引數。
-
long int video_usercopy(struct file *file, unsigned int cmd, unsigned long int arg, v4l2_kioctl func)¶
發出 ioctl 時,將資料從使用者空間記憶體複製到使用者空間記憶體。
引數
struct file *file指向 struct
file的指標。unsigned int cmdIoctl 名稱。
unsigned long int argIoctl 引數。
v4l2_kioctl func將處理 ioctl 的函式
描述
注意
此例程應僅在 V4L2 核心中使用。
引數
struct file *file指向 struct
file的指標。unsigned int cmdIoctl 名稱。
unsigned long int argIoctl 引數。
描述
用於處理 ioctl 的方法。應用於填充所有 V4L2 驅動程式上的 v4l2_ioctl_ops.unlocked_ioctl。