|
@@ -733,6 +733,99 @@ struct <link linkend="v4l2-standard">v4l2_standard</link> {
|
|
|
__u32 reserved[4];
|
|
|
};
|
|
|
|
|
|
+/*
|
|
|
+ * V I D E O T I M I N G S D V P R E S E T
|
|
|
+ */
|
|
|
+struct <link linkend="v4l2-dv-preset">v4l2_dv_preset</link> {
|
|
|
+ __u32 preset;
|
|
|
+ __u32 reserved[4];
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * D V P R E S E T S E N U M E R A T I O N
|
|
|
+ */
|
|
|
+struct <link linkend="v4l2-dv-enum-preset">v4l2_dv_enum_preset</link> {
|
|
|
+ __u32 index;
|
|
|
+ __u32 preset;
|
|
|
+ __u8 name[32]; /* Name of the preset timing */
|
|
|
+ __u32 width;
|
|
|
+ __u32 height;
|
|
|
+ __u32 reserved[4];
|
|
|
+};
|
|
|
+
|
|
|
+/*
|
|
|
+ * D V P R E S E T V A L U E S
|
|
|
+ */
|
|
|
+#define V4L2_DV_INVALID 0
|
|
|
+#define V4L2_DV_480P59_94 1 /* BT.1362 */
|
|
|
+#define V4L2_DV_576P50 2 /* BT.1362 */
|
|
|
+#define V4L2_DV_720P24 3 /* SMPTE 296M */
|
|
|
+#define V4L2_DV_720P25 4 /* SMPTE 296M */
|
|
|
+#define V4L2_DV_720P30 5 /* SMPTE 296M */
|
|
|
+#define V4L2_DV_720P50 6 /* SMPTE 296M */
|
|
|
+#define V4L2_DV_720P59_94 7 /* SMPTE 274M */
|
|
|
+#define V4L2_DV_720P60 8 /* SMPTE 274M/296M */
|
|
|
+#define V4L2_DV_1080I29_97 9 /* BT.1120/ SMPTE 274M */
|
|
|
+#define V4L2_DV_1080I30 10 /* BT.1120/ SMPTE 274M */
|
|
|
+#define V4L2_DV_1080I25 11 /* BT.1120 */
|
|
|
+#define V4L2_DV_1080I50 12 /* SMPTE 296M */
|
|
|
+#define V4L2_DV_1080I60 13 /* SMPTE 296M */
|
|
|
+#define V4L2_DV_1080P24 14 /* SMPTE 296M */
|
|
|
+#define V4L2_DV_1080P25 15 /* SMPTE 296M */
|
|
|
+#define V4L2_DV_1080P30 16 /* SMPTE 296M */
|
|
|
+#define V4L2_DV_1080P50 17 /* BT.1120 */
|
|
|
+#define V4L2_DV_1080P60 18 /* BT.1120 */
|
|
|
+
|
|
|
+/*
|
|
|
+ * D V B T T I M I N G S
|
|
|
+ */
|
|
|
+
|
|
|
+/* BT.656/BT.1120 timing data */
|
|
|
+struct <link linkend="v4l2-bt-timings">v4l2_bt_timings</link> {
|
|
|
+ __u32 width; /* width in pixels */
|
|
|
+ __u32 height; /* height in lines */
|
|
|
+ __u32 interlaced; /* Interlaced or progressive */
|
|
|
+ __u32 polarities; /* Positive or negative polarity */
|
|
|
+ __u64 pixelclock; /* Pixel clock in HZ. Ex. 74.25MHz->74250000 */
|
|
|
+ __u32 hfrontporch; /* Horizpontal front porch in pixels */
|
|
|
+ __u32 hsync; /* Horizontal Sync length in pixels */
|
|
|
+ __u32 hbackporch; /* Horizontal back porch in pixels */
|
|
|
+ __u32 vfrontporch; /* Vertical front porch in pixels */
|
|
|
+ __u32 vsync; /* Vertical Sync length in lines */
|
|
|
+ __u32 vbackporch; /* Vertical back porch in lines */
|
|
|
+ __u32 il_vfrontporch; /* Vertical front porch for bottom field of
|
|
|
+ * interlaced field formats
|
|
|
+ */
|
|
|
+ __u32 il_vsync; /* Vertical sync length for bottom field of
|
|
|
+ * interlaced field formats
|
|
|
+ */
|
|
|
+ __u32 il_vbackporch; /* Vertical back porch for bottom field of
|
|
|
+ * interlaced field formats
|
|
|
+ */
|
|
|
+ __u32 reserved[16];
|
|
|
+} __attribute__ ((packed));
|
|
|
+
|
|
|
+/* Interlaced or progressive format */
|
|
|
+#define V4L2_DV_PROGRESSIVE 0
|
|
|
+#define V4L2_DV_INTERLACED 1
|
|
|
+
|
|
|
+/* Polarities. If bit is not set, it is assumed to be negative polarity */
|
|
|
+#define V4L2_DV_VSYNC_POS_POL 0x00000001
|
|
|
+#define V4L2_DV_HSYNC_POS_POL 0x00000002
|
|
|
+
|
|
|
+
|
|
|
+/* DV timings */
|
|
|
+struct <link linkend="v4l2-dv-timings">v4l2_dv_timings</link> {
|
|
|
+ __u32 type;
|
|
|
+ union {
|
|
|
+ struct <link linkend="v4l2-bt-timings">v4l2_bt_timings</link> bt;
|
|
|
+ __u32 reserved[32];
|
|
|
+ };
|
|
|
+} __attribute__ ((packed));
|
|
|
+
|
|
|
+/* Values for the type field */
|
|
|
+#define V4L2_DV_BT_656_1120 0 /* BT.656/1120 timing type */
|
|
|
+
|
|
|
/*
|
|
|
* V I D E O I N P U T S
|
|
|
*/
|
|
@@ -744,7 +837,8 @@ struct <link linkend="v4l2-input">v4l2_input</link> {
|
|
|
__u32 tuner; /* Associated tuner */
|
|
|
v4l2_std_id std;
|
|
|
__u32 status;
|
|
|
- __u32 reserved[4];
|
|
|
+ __u32 capabilities;
|
|
|
+ __u32 reserved[3];
|
|
|
};
|
|
|
|
|
|
/* Values for the 'type' field */
|
|
@@ -775,6 +869,11 @@ struct <link linkend="v4l2-input">v4l2_input</link> {
|
|
|
#define V4L2_IN_ST_NO_ACCESS 0x02000000 /* Conditional access denied */
|
|
|
#define V4L2_IN_ST_VTR 0x04000000 /* VTR time constant */
|
|
|
|
|
|
+/* capabilities flags */
|
|
|
+#define V4L2_IN_CAP_PRESETS 0x00000001 /* Supports S_DV_PRESET */
|
|
|
+#define V4L2_IN_CAP_CUSTOM_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */
|
|
|
+#define V4L2_IN_CAP_STD 0x00000004 /* Supports S_STD */
|
|
|
+
|
|
|
/*
|
|
|
* V I D E O O U T P U T S
|
|
|
*/
|
|
@@ -785,13 +884,19 @@ struct <link linkend="v4l2-output">v4l2_output</link> {
|
|
|
__u32 audioset; /* Associated audios (bitfield) */
|
|
|
__u32 modulator; /* Associated modulator */
|
|
|
v4l2_std_id std;
|
|
|
- __u32 reserved[4];
|
|
|
+ __u32 capabilities;
|
|
|
+ __u32 reserved[3];
|
|
|
};
|
|
|
/* Values for the 'type' field */
|
|
|
#define V4L2_OUTPUT_TYPE_MODULATOR 1
|
|
|
#define V4L2_OUTPUT_TYPE_ANALOG 2
|
|
|
#define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3
|
|
|
|
|
|
+/* capabilities flags */
|
|
|
+#define V4L2_OUT_CAP_PRESETS 0x00000001 /* Supports S_DV_PRESET */
|
|
|
+#define V4L2_OUT_CAP_CUSTOM_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */
|
|
|
+#define V4L2_OUT_CAP_STD 0x00000004 /* Supports S_STD */
|
|
|
+
|
|
|
/*
|
|
|
* C O N T R O L S
|
|
|
*/
|
|
@@ -1626,6 +1731,13 @@ struct <link linkend="v4l2-dbg-chip-ident">v4l2_dbg_chip_ident</link> {
|
|
|
#endif
|
|
|
|
|
|
#define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct <link linkend="v4l2-hw-freq-seek">v4l2_hw_freq_seek</link>)
|
|
|
+#define VIDIOC_ENUM_DV_PRESETS _IOWR('V', 83, struct <link linkend="v4l2-dv-enum-preset">v4l2_dv_enum_preset</link>)
|
|
|
+#define VIDIOC_S_DV_PRESET _IOWR('V', 84, struct <link linkend="v4l2-dv-preset">v4l2_dv_preset</link>)
|
|
|
+#define VIDIOC_G_DV_PRESET _IOWR('V', 85, struct <link linkend="v4l2-dv-preset">v4l2_dv_preset</link>)
|
|
|
+#define VIDIOC_QUERY_DV_PRESET _IOR('V', 86, struct <link linkend="v4l2-dv-preset">v4l2_dv_preset</link>)
|
|
|
+#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct <link linkend="v4l2-dv-timings">v4l2_dv_timings</link>)
|
|
|
+#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct <link linkend="v4l2-dv-timings">v4l2_dv_timings</link>)
|
|
|
+
|
|
|
/* Reminder: when adding new ioctls please add support for them to
|
|
|
drivers/media/video/v4l2-compat-ioctl32.c as well! */
|
|
|
|