[PATCH - v1] V4L - Digital Video Timings API documentation

2009-12-02 Thread m-karicheri2
From: Muralidharan Karicheri m-kariche...@ti.com

This patch updates the v4l2-dvb documentation for the new video timings API 
added.
Also updated the document based on comments from Hans Verkuil

Reviewed-by: Hans Verkuil hverk...@xs4all.nl
Signed-off-by: Muralidharan Karicheri m-kariche...@ti.com
---
diff -uNr 
v4l-dvb-e0cd9a337600_master/linux/Documentation/DocBook/v4l/common.xml 
v4l-dvb-patch/linux/Documentation/DocBook/v4l/common.xml
--- v4l-dvb-e0cd9a337600_master/linux/Documentation/DocBook/v4l/common.xml  
2009-12-01 17:02:04.0 -0500
+++ v4l-dvb-patch/linux/Documentation/DocBook/v4l/common.xml2009-12-02 
17:16:24.0 -0500
@@ -716,6 +716,41 @@
 }
   /programlisting
 /example
+  section id=dv-timings
+   titleDigital Video (DV) Timings/title
+   para 
+   The video standards discussed so far has been dealing with Analog TV 
and the
+corresponding video timings. Today there are many more different hardware 
interfaces
+such as High Definition TV interfaces (HDMI), VGA, DVI connectors etc., that 
carry
+video signals and there is a need to extend the API to select the video timings
+ for these interfaces. Since it is not possible to extend the v4l2-std-id due 
to
+the limited bits available, a new set of IOCTLs are added to set/get video 
timings at
+the input and output: /paraitemizedlist
+   listitem
+   para DV Presets: Digital Video (DV) presets. These are IDs 
representing a
+video timing at the input/output. Presets are pre-defined timings implemented
+by the hardware according to video standards. A __u32 data type is used to 
represent
+ a preset unlike the bit mask that is used in v4l2-std-id; allowing future 
extensions
+ to support many different presets as needed./para
+   /listitem
+   listitem
+   para Custom DV Timings: This will allow applications to define more 
detailed
+custom video timings at the interface. This includes parameters such as width, 
height,
+ polarities, frontporch, backporch etc.
+   /para 
+   /listitem
+   /itemizedlist
+   para To enumerate and query the attributes of DV presets supported by 
a device,
+ applications use the VIDIOC-ENUM-DV-PRESETS; ioctl. To get the current DV 
preset,
+ application use the VIDIOC-G-DV-PRESET; ioctl and to set a preset it uses 
the 
+ VIDIOC-S-DV-PRESET; ioctl./para
+   para To set a Custom DV timings at the device, applications use the
+ VIDIOC-S-DV-TIMINGS; ioctl and to get current Custom DV timings, it uses the
+ VIDIOC-G-DV-TIMINGS; ioctl./para
+   para Applications can make use of the xref 
linkend=input-capabilities / and
+xref linkend=output-capabilities/ flags to decide what ioctls are 
available to set the
+video timings for the device./para 
+   /section
   /section
 
   sub-controls;
diff -uNr v4l-dvb-e0cd9a337600_master/linux/Documentation/DocBook/v4l/v4l2.xml 
v4l-dvb-patch/linux/Documentation/DocBook/v4l/v4l2.xml
--- v4l-dvb-e0cd9a337600_master/linux/Documentation/DocBook/v4l/v4l2.xml
2009-12-01 17:02:04.0 -0500
+++ v4l-dvb-patch/linux/Documentation/DocBook/v4l/v4l2.xml  2009-12-02 
17:16:50.0 -0500
@@ -416,6 +416,10 @@
 sub-enum-frameintervals;
 sub-enuminput;
 sub-enumoutput;
+sub-enum-dv-presets;
+sub-g-dv-preset;
+sub-query-dv-preset;
+sub-g-dv-timings;
 sub-enumstd;
 sub-g-audio;
 sub-g-audioout;
diff -uNr 
v4l-dvb-e0cd9a337600_master/linux/Documentation/DocBook/v4l/videodev2.h.xml 
v4l-dvb-patch/linux/Documentation/DocBook/v4l/videodev2.h.xml
--- v4l-dvb-e0cd9a337600_master/linux/Documentation/DocBook/v4l/videodev2.h.xml 
2009-12-01 17:02:04.0 -0500
+++ v4l-dvb-patch/linux/Documentation/DocBook/v4l/videodev2.h.xml   
2009-12-02 17:44:24.0 -0500
@@ -734,6 +734,99 @@
 };
 
 /*
+ *  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-presetv4l2_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-presetv4l2_dv_enum_preset/link {
+__u32   index;
+__u32   preset;
+__u8name[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 

FW: [PATCH - v1] V4L - Digital Video Timings API documentation

2009-12-02 Thread Karicheri, Muralidharan
Hans,

I have updated the API documentation based on your comments and the updated
patch is sent to the list. So could you please send a pull request to Mauro for 
the video timing API patch along with this documentation patch? If there are 
any minor issues, I would prefer to fix it by another patch than re-working 
this again.

Regards,
Murali Karicheri
Software Design Engineer
Texas Instruments Inc.
Germantown, MD 20874
phone: 301-407-9583
email: m-kariche...@ti.com
-Original Message-
From: Karicheri, Muralidharan
Sent: Wednesday, December 02, 2009 5:56 PM
To: linux-media@vger.kernel.org; hverk...@xs4all.nl
Cc: davinci-linux-open-sou...@linux.davincidsp.com; Karicheri, Muralidharan
Subject: [PATCH - v1] V4L - Digital Video Timings API documentation

From: Muralidharan Karicheri m-kariche...@ti.com

This patch updates the v4l2-dvb documentation for the new video timings API
added.
Also updated the document based on comments from Hans Verkuil

Reviewed-by: Hans Verkuil hverk...@xs4all.nl
Signed-off-by: Muralidharan Karicheri m-kariche...@ti.com
---
diff -uNr v4l-dvb-
e0cd9a337600_master/linux/Documentation/DocBook/v4l/common.xml v4l-dvb-
patch/linux/Documentation/DocBook/v4l/common.xml
--- v4l-dvb-e0cd9a337600_master/linux/Documentation/DocBook/v4l/common.xml
   2009-12-01 17:02:04.0 -0500
+++ v4l-dvb-patch/linux/Documentation/DocBook/v4l/common.xml   2009-12-
02 17:16:24.0 -0500
@@ -716,6 +716,41 @@
 }
   /programlisting
 /example
+  section id=dv-timings
+  titleDigital Video (DV) Timings/title
+  para
+  The video standards discussed so far has been dealing with Analog TV
and the
+corresponding video timings. Today there are many more different hardware
interfaces
+such as High Definition TV interfaces (HDMI), VGA, DVI connectors etc.,
that carry
+video signals and there is a need to extend the API to select the video
timings
+ for these interfaces. Since it is not possible to extend the v4l2-std-id
due to
+the limited bits available, a new set of IOCTLs are added to set/get video
timings at
+the input and output: /paraitemizedlist
+  listitem
+  para DV Presets: Digital Video (DV) presets. These are IDs
representing a
+video timing at the input/output. Presets are pre-defined timings
implemented
+by the hardware according to video standards. A __u32 data type is used to
represent
+ a preset unlike the bit mask that is used in v4l2-std-id; allowing
future extensions
+ to support many different presets as needed./para
+  /listitem
+  listitem
+  para Custom DV Timings: This will allow applications to define more
detailed
+custom video timings at the interface. This includes parameters such as
width, height,
+ polarities, frontporch, backporch etc.
+  /para
+  /listitem
+  /itemizedlist
+  para To enumerate and query the attributes of DV presets supported
by a device,
+ applications use the VIDIOC-ENUM-DV-PRESETS; ioctl. To get the current
DV preset,
+ application use the VIDIOC-G-DV-PRESET; ioctl and to set a preset it
uses the
+ VIDIOC-S-DV-PRESET; ioctl./para
+  para To set a Custom DV timings at the device, applications use the
+ VIDIOC-S-DV-TIMINGS; ioctl and to get current Custom DV timings, it uses
the
+ VIDIOC-G-DV-TIMINGS; ioctl./para
+  para Applications can make use of the xref linkend=input-
capabilities / and
+xref linkend=output-capabilities/ flags to decide what ioctls are
available to set the
+video timings for the device./para
+  /section
   /section

   sub-controls;
diff -uNr v4l-dvb-
e0cd9a337600_master/linux/Documentation/DocBook/v4l/v4l2.xml v4l-dvb-
patch/linux/Documentation/DocBook/v4l/v4l2.xml
--- v4l-dvb-e0cd9a337600_master/linux/Documentation/DocBook/v4l/v4l2.xml
   2009-12-01 17:02:04.0 -0500
+++ v4l-dvb-patch/linux/Documentation/DocBook/v4l/v4l2.xml 2009-12-02
17:16:50.0 -0500
@@ -416,6 +416,10 @@
 sub-enum-frameintervals;
 sub-enuminput;
 sub-enumoutput;
+sub-enum-dv-presets;
+sub-g-dv-preset;
+sub-query-dv-preset;
+sub-g-dv-timings;
 sub-enumstd;
 sub-g-audio;
 sub-g-audioout;
diff -uNr v4l-dvb-
e0cd9a337600_master/linux/Documentation/DocBook/v4l/videodev2.h.xml v4l-
dvb-patch/linux/Documentation/DocBook/v4l/videodev2.h.xml
--- v4l-dvb-
e0cd9a337600_master/linux/Documentation/DocBook/v4l/videodev2.h.xml
   2009-12-01 17:02:04.0 -0500
+++ v4l-dvb-patch/linux/Documentation/DocBook/v4l/videodev2.h.xml  2009-12-
02 17:44:24.0 -0500
@@ -734,6 +734,99 @@
 };

 /*
+ *  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-presetv4l2_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-presetv4l2_dv_enum_preset/link {
+__u32   index;
+__u32   preset;
+__u8name[32]; /* Name of the preset timing */
+__u32