diff options
author | Hans Verkuil <hans.verkuil@cisco.com> | 2012-05-15 07:04:28 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-05-20 07:18:03 -0400 |
commit | 7dcc606b2a980222d9816d092a5c20b7c98cbd1a (patch) | |
tree | cf1ca07dbab8a0fb9a6e73963367310039e5c3a0 /Documentation | |
parent | 06bba75d2a3e0bf558421b7548a6248ed5c7bfec (diff) |
[media] V4L2 spec: document the new V4L2 DV timings ioctls
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Reviewed-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/DocBook/media/v4l/biblio.xml | 18 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/common.xml | 32 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/compat.xml | 13 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/v4l2.xml | 15 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-create-bufs.xml | 6 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml | 211 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml | 4 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml | 119 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-enuminput.xml | 2 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-enumoutput.xml | 2 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml | 130 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-prepare-buf.xml | 6 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml | 104 |
13 files changed, 633 insertions, 29 deletions
diff --git a/Documentation/DocBook/media/v4l/biblio.xml b/Documentation/DocBook/media/v4l/biblio.xml index 66a0ef251c79..7c49facecd25 100644 --- a/Documentation/DocBook/media/v4l/biblio.xml +++ b/Documentation/DocBook/media/v4l/biblio.xml | |||
@@ -208,4 +208,22 @@ in the frequency range from 87,5 to 108,0 MHz</title> | |||
208 | recommended exposure index</title> | 208 | recommended exposure index</title> |
209 | </biblioentry> | 209 | </biblioentry> |
210 | 210 | ||
211 | <biblioentry id="cea861"> | ||
212 | <abbrev>CEA-861-E</abbrev> | ||
213 | <authorgroup> | ||
214 | <corpauthor>Consumer Electronics Association | ||
215 | (<ulink url="http://www.ce.org">http://www.ce.org</ulink>)</corpauthor> | ||
216 | </authorgroup> | ||
217 | <title>A DTV Profile for Uncompressed High Speed Digital Interfaces</title> | ||
218 | </biblioentry> | ||
219 | |||
220 | <biblioentry id="vesadmt"> | ||
221 | <abbrev>VESA DMT</abbrev> | ||
222 | <authorgroup> | ||
223 | <corpauthor>Video Electronics Standards Association | ||
224 | (<ulink url="http://www.vesa.org">http://www.vesa.org</ulink>)</corpauthor> | ||
225 | </authorgroup> | ||
226 | <title>VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT)</title> | ||
227 | </biblioentry> | ||
228 | |||
211 | </bibliography> | 229 | </bibliography> |
diff --git a/Documentation/DocBook/media/v4l/common.xml b/Documentation/DocBook/media/v4l/common.xml index c79278acfb0e..81b7cf384a39 100644 --- a/Documentation/DocBook/media/v4l/common.xml +++ b/Documentation/DocBook/media/v4l/common.xml | |||
@@ -724,41 +724,47 @@ if (-1 == ioctl (fd, &VIDIOC-S-STD;, &std_id)) { | |||
724 | } | 724 | } |
725 | </programlisting> | 725 | </programlisting> |
726 | </example> | 726 | </example> |
727 | </section> | ||
727 | <section id="dv-timings"> | 728 | <section id="dv-timings"> |
728 | <title>Digital Video (DV) Timings</title> | 729 | <title>Digital Video (DV) Timings</title> |
729 | <para> | 730 | <para> |
730 | The video standards discussed so far has been dealing with Analog TV and the | 731 | The video standards discussed so far have been dealing with Analog TV and the |
731 | corresponding video timings. Today there are many more different hardware interfaces | 732 | corresponding video timings. Today there are many more different hardware interfaces |
732 | such as High Definition TV interfaces (HDMI), VGA, DVI connectors etc., that carry | 733 | such as High Definition TV interfaces (HDMI), VGA, DVI connectors etc., that carry |
733 | video signals and there is a need to extend the API to select the video timings | 734 | video signals and there is a need to extend the API to select the video timings |
734 | for these interfaces. Since it is not possible to extend the &v4l2-std-id; due to | 735 | for these interfaces. Since it is not possible to extend the &v4l2-std-id; due to |
735 | the limited bits available, a new set of IOCTLs is added to set/get video timings at | 736 | the limited bits available, a new set of IOCTLs was added to set/get video timings at |
736 | the input and output: </para><itemizedlist> | 737 | the input and output: </para><itemizedlist> |
737 | <listitem> | 738 | <listitem> |
739 | <para>DV Timings: This will allow applications to define detailed | ||
740 | video timings for the interface. This includes parameters such as width, height, | ||
741 | polarities, frontporch, backporch etc. The <filename>linux/v4l2-dv-timings.h</filename> | ||
742 | header can be used to get the timings of the formats in the <xref linkend="cea861" /> and | ||
743 | <xref linkend="vesadmt" /> standards. | ||
744 | </para> | ||
745 | </listitem> | ||
746 | <listitem> | ||
738 | <para>DV Presets: Digital Video (DV) presets. These are IDs representing a | 747 | <para>DV Presets: Digital Video (DV) presets. These are IDs representing a |
739 | video timing at the input/output. Presets are pre-defined timings implemented | 748 | video timing at the input/output. Presets are pre-defined timings implemented |
740 | by the hardware according to video standards. A __u32 data type is used to represent | 749 | by the hardware according to video standards. A __u32 data type is used to represent |
741 | a preset unlike the bit mask that is used in &v4l2-std-id; allowing future extensions | 750 | a preset unlike the bit mask that is used in &v4l2-std-id; allowing future extensions |
742 | to support as many different presets as needed.</para> | 751 | to support as many different presets as needed.</para> |
743 | </listitem> | 752 | </listitem> |
744 | <listitem> | ||
745 | <para>Custom DV Timings: This will allow applications to define more detailed | ||
746 | custom video timings for the interface. This includes parameters such as width, height, | ||
747 | polarities, frontporch, backporch etc. | ||
748 | </para> | ||
749 | </listitem> | ||
750 | </itemizedlist> | 753 | </itemizedlist> |
754 | <para>To enumerate and query the attributes of the DV timings supported by a device, | ||
755 | applications use the &VIDIOC-ENUM-DV-TIMINGS; and &VIDIOC-DV-TIMINGS-CAP; ioctls. | ||
756 | To set DV timings for the device, applications use the | ||
757 | &VIDIOC-S-DV-TIMINGS; ioctl and to get current DV timings they use the | ||
758 | &VIDIOC-G-DV-TIMINGS; ioctl. To detect the DV timings as seen by the video receiver applications | ||
759 | use the &VIDIOC-QUERY-DV-TIMINGS; ioctl.</para> | ||
751 | <para>To enumerate and query the attributes of DV presets supported by a device, | 760 | <para>To enumerate and query the attributes of DV presets supported by a device, |
752 | applications use the &VIDIOC-ENUM-DV-PRESETS; ioctl. To get the current DV preset, | 761 | applications use the &VIDIOC-ENUM-DV-PRESETS; ioctl. To get the current DV preset, |
753 | applications use the &VIDIOC-G-DV-PRESET; ioctl and to set a preset they use the | 762 | applications use the &VIDIOC-G-DV-PRESET; ioctl and to set a preset they use the |
754 | &VIDIOC-S-DV-PRESET; ioctl.</para> | 763 | &VIDIOC-S-DV-PRESET; ioctl. To detect the preset as seen by the video receiver applications |
755 | <para>To set custom DV timings for the device, applications use the | 764 | use the &VIDIOC-QUERY-DV-PRESET; ioctl.</para> |
756 | &VIDIOC-S-DV-TIMINGS; ioctl and to get current custom DV timings they use the | ||
757 | &VIDIOC-G-DV-TIMINGS; ioctl.</para> | ||
758 | <para>Applications can make use of the <xref linkend="input-capabilities" /> and | 765 | <para>Applications can make use of the <xref linkend="input-capabilities" /> and |
759 | <xref linkend="output-capabilities"/> flags to decide what ioctls are available to set the | 766 | <xref linkend="output-capabilities"/> flags to decide what ioctls are available to set the |
760 | video timings for the device.</para> | 767 | video timings for the device.</para> |
761 | </section> | ||
762 | </section> | 768 | </section> |
763 | 769 | ||
764 | &sub-controls; | 770 | &sub-controls; |
diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml index dc61b013b8a8..cd19d21085db 100644 --- a/Documentation/DocBook/media/v4l/compat.xml +++ b/Documentation/DocBook/media/v4l/compat.xml | |||
@@ -2407,6 +2407,11 @@ details.</para> | |||
2407 | <para>Added <link linkend="jpeg-controls">JPEG compression control | 2407 | <para>Added <link linkend="jpeg-controls">JPEG compression control |
2408 | class</link>.</para> | 2408 | class</link>.</para> |
2409 | </listitem> | 2409 | </listitem> |
2410 | <listitem> | ||
2411 | <para>Extended the DV Timings API: | ||
2412 | &VIDIOC-ENUM-DV-TIMINGS;, &VIDIOC-QUERY-DV-TIMINGS; and | ||
2413 | &VIDIOC-DV-TIMINGS-CAP;.</para> | ||
2414 | </listitem> | ||
2410 | </orderedlist> | 2415 | </orderedlist> |
2411 | </section> | 2416 | </section> |
2412 | 2417 | ||
@@ -2551,6 +2556,10 @@ and may change in the future.</para> | |||
2551 | ioctls.</para> | 2556 | ioctls.</para> |
2552 | </listitem> | 2557 | </listitem> |
2553 | <listitem> | 2558 | <listitem> |
2559 | <para>&VIDIOC-DECODER-CMD; and &VIDIOC-TRY-DECODER-CMD; | ||
2560 | ioctls.</para> | ||
2561 | </listitem> | ||
2562 | <listitem> | ||
2554 | <para>&VIDIOC-DBG-G-REGISTER; and &VIDIOC-DBG-S-REGISTER; | 2563 | <para>&VIDIOC-DBG-G-REGISTER; and &VIDIOC-DBG-S-REGISTER; |
2555 | ioctls.</para> | 2564 | ioctls.</para> |
2556 | </listitem> | 2565 | </listitem> |
@@ -2558,6 +2567,10 @@ ioctls.</para> | |||
2558 | <para>&VIDIOC-DBG-G-CHIP-IDENT; ioctl.</para> | 2567 | <para>&VIDIOC-DBG-G-CHIP-IDENT; ioctl.</para> |
2559 | </listitem> | 2568 | </listitem> |
2560 | <listitem> | 2569 | <listitem> |
2570 | <para>&VIDIOC-ENUM-DV-TIMINGS;, &VIDIOC-QUERY-DV-TIMINGS; and | ||
2571 | &VIDIOC-DV-TIMINGS-CAP; ioctls.</para> | ||
2572 | </listitem> | ||
2573 | <listitem> | ||
2561 | <para>Flash API. <xref linkend="flash-controls" /></para> | 2574 | <para>Flash API. <xref linkend="flash-controls" /></para> |
2562 | </listitem> | 2575 | </listitem> |
2563 | <listitem> | 2576 | <listitem> |
diff --git a/Documentation/DocBook/media/v4l/v4l2.xml b/Documentation/DocBook/media/v4l/v4l2.xml index e6fbbc6c17e1..015c561754b7 100644 --- a/Documentation/DocBook/media/v4l/v4l2.xml +++ b/Documentation/DocBook/media/v4l/v4l2.xml | |||
@@ -28,8 +28,8 @@ documentation.</contrib> | |||
28 | <firstname>Hans</firstname> | 28 | <firstname>Hans</firstname> |
29 | <surname>Verkuil</surname> | 29 | <surname>Verkuil</surname> |
30 | <contrib>Designed and documented the VIDIOC_LOG_STATUS ioctl, | 30 | <contrib>Designed and documented the VIDIOC_LOG_STATUS ioctl, |
31 | the extended control ioctls and major parts of the sliced VBI | 31 | the extended control ioctls, major parts of the sliced VBI API, the |
32 | API.</contrib> | 32 | MPEG encoder and decoder APIs and the DV Timings API.</contrib> |
33 | <affiliation> | 33 | <affiliation> |
34 | <address> | 34 | <address> |
35 | <email>hverkuil@xs4all.nl</email> | 35 | <email>hverkuil@xs4all.nl</email> |
@@ -123,6 +123,7 @@ Remote Controller chapter.</contrib> | |||
123 | <year>2009</year> | 123 | <year>2009</year> |
124 | <year>2010</year> | 124 | <year>2010</year> |
125 | <year>2011</year> | 125 | <year>2011</year> |
126 | <year>2012</year> | ||
126 | <holder>Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin | 127 | <holder>Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin |
127 | Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab, | 128 | Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab, |
128 | Pawel Osciak</holder> | 129 | Pawel Osciak</holder> |
@@ -153,6 +154,11 @@ applications. --> | |||
153 | V4L2_CID_AUTO_FOCUS_STOP, V4L2_CID_AUTO_FOCUS_STATUS | 154 | V4L2_CID_AUTO_FOCUS_STOP, V4L2_CID_AUTO_FOCUS_STATUS |
154 | and V4L2_CID_AUTO_FOCUS_RANGE. | 155 | and V4L2_CID_AUTO_FOCUS_RANGE. |
155 | </revremark> | 156 | </revremark> |
157 | <date>2012-05-01</date> | ||
158 | <authorinitials>hv</authorinitials> | ||
159 | <revremark>Added VIDIOC_ENUM_DV_TIMINGS, VIDIOC_QUERY_DV_TIMINGS and | ||
160 | VIDIOC_DV_TIMINGS_CAP. | ||
161 | </revremark> | ||
156 | </revision> | 162 | </revision> |
157 | 163 | ||
158 | <revision> | 164 | <revision> |
@@ -461,7 +467,7 @@ and discussions on the V4L mailing list.</revremark> | |||
461 | </partinfo> | 467 | </partinfo> |
462 | 468 | ||
463 | <title>Video for Linux Two API Specification</title> | 469 | <title>Video for Linux Two API Specification</title> |
464 | <subtitle>Revision 3.3</subtitle> | 470 | <subtitle>Revision 3.5</subtitle> |
465 | 471 | ||
466 | <chapter id="common"> | 472 | <chapter id="common"> |
467 | &sub-common; | 473 | &sub-common; |
@@ -519,10 +525,12 @@ and discussions on the V4L mailing list.</revremark> | |||
519 | &sub-dbg-g-register; | 525 | &sub-dbg-g-register; |
520 | &sub-decoder-cmd; | 526 | &sub-decoder-cmd; |
521 | &sub-dqevent; | 527 | &sub-dqevent; |
528 | &sub-dv-timings-cap; | ||
522 | &sub-encoder-cmd; | 529 | &sub-encoder-cmd; |
523 | &sub-enumaudio; | 530 | &sub-enumaudio; |
524 | &sub-enumaudioout; | 531 | &sub-enumaudioout; |
525 | &sub-enum-dv-presets; | 532 | &sub-enum-dv-presets; |
533 | &sub-enum-dv-timings; | ||
526 | &sub-enum-fmt; | 534 | &sub-enum-fmt; |
527 | &sub-enum-framesizes; | 535 | &sub-enum-framesizes; |
528 | &sub-enum-frameintervals; | 536 | &sub-enum-frameintervals; |
@@ -557,6 +565,7 @@ and discussions on the V4L mailing list.</revremark> | |||
557 | &sub-querycap; | 565 | &sub-querycap; |
558 | &sub-queryctrl; | 566 | &sub-queryctrl; |
559 | &sub-query-dv-preset; | 567 | &sub-query-dv-preset; |
568 | &sub-query-dv-timings; | ||
560 | &sub-querystd; | 569 | &sub-querystd; |
561 | &sub-prepare-buf; | 570 | &sub-prepare-buf; |
562 | &sub-reqbufs; | 571 | &sub-reqbufs; |
diff --git a/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml b/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml index 184cdfc13081..765549ff8a71 100644 --- a/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml +++ b/Documentation/DocBook/media/v4l/vidioc-create-bufs.xml | |||
@@ -48,6 +48,12 @@ | |||
48 | <refsect1> | 48 | <refsect1> |
49 | <title>Description</title> | 49 | <title>Description</title> |
50 | 50 | ||
51 | <note> | ||
52 | <title>Experimental</title> | ||
53 | <para>This is an <link linkend="experimental"> experimental </link> | ||
54 | interface and may change in the future.</para> | ||
55 | </note> | ||
56 | |||
51 | <para>This ioctl is used to create buffers for <link linkend="mmap">memory | 57 | <para>This ioctl is used to create buffers for <link linkend="mmap">memory |
52 | mapped</link> or <link linkend="userp">user pointer</link> | 58 | mapped</link> or <link linkend="userp">user pointer</link> |
53 | I/O. It can be used as an alternative or in addition to the | 59 | I/O. It can be used as an alternative or in addition to the |
diff --git a/Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml b/Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml new file mode 100644 index 000000000000..6673ce582050 --- /dev/null +++ b/Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml | |||
@@ -0,0 +1,211 @@ | |||
1 | <refentry id="vidioc-dv-timings-cap"> | ||
2 | <refmeta> | ||
3 | <refentrytitle>ioctl VIDIOC_DV_TIMINGS_CAP</refentrytitle> | ||
4 | &manvol; | ||
5 | </refmeta> | ||
6 | |||
7 | <refnamediv> | ||
8 | <refname>VIDIOC_DV_TIMINGS_CAP</refname> | ||
9 | <refpurpose>The capabilities of the Digital Video receiver/transmitter</refpurpose> | ||
10 | </refnamediv> | ||
11 | |||
12 | <refsynopsisdiv> | ||
13 | <funcsynopsis> | ||
14 | <funcprototype> | ||
15 | <funcdef>int <function>ioctl</function></funcdef> | ||
16 | <paramdef>int <parameter>fd</parameter></paramdef> | ||
17 | <paramdef>int <parameter>request</parameter></paramdef> | ||
18 | <paramdef>struct v4l2_dv_timings_cap *<parameter>argp</parameter></paramdef> | ||
19 | </funcprototype> | ||
20 | </funcsynopsis> | ||
21 | </refsynopsisdiv> | ||
22 | |||
23 | <refsect1> | ||
24 | <title>Arguments</title> | ||
25 | |||
26 | <variablelist> | ||
27 | <varlistentry> | ||
28 | <term><parameter>fd</parameter></term> | ||
29 | <listitem> | ||
30 | <para>&fd;</para> | ||
31 | </listitem> | ||
32 | </varlistentry> | ||
33 | <varlistentry> | ||
34 | <term><parameter>request</parameter></term> | ||
35 | <listitem> | ||
36 | <para>VIDIOC_DV_TIMINGS_CAP</para> | ||
37 | </listitem> | ||
38 | </varlistentry> | ||
39 | <varlistentry> | ||
40 | <term><parameter>argp</parameter></term> | ||
41 | <listitem> | ||
42 | <para></para> | ||
43 | </listitem> | ||
44 | </varlistentry> | ||
45 | </variablelist> | ||
46 | </refsect1> | ||
47 | |||
48 | <refsect1> | ||
49 | <title>Description</title> | ||
50 | |||
51 | <note> | ||
52 | <title>Experimental</title> | ||
53 | <para>This is an <link linkend="experimental"> experimental </link> | ||
54 | interface and may change in the future.</para> | ||
55 | </note> | ||
56 | |||
57 | <para>To query the available timings, applications initialize the | ||
58 | <structfield>index</structfield> field and zero the reserved array of &v4l2-dv-timings-cap; | ||
59 | and call the <constant>VIDIOC_DV_TIMINGS_CAP</constant> ioctl with a pointer to this | ||
60 | structure. Drivers fill the rest of the structure or return an | ||
61 | &EINVAL; when the index is out of bounds. To enumerate all supported DV timings, | ||
62 | applications shall begin at index zero, incrementing by one until the | ||
63 | driver returns <errorcode>EINVAL</errorcode>. Note that drivers may enumerate a | ||
64 | different set of DV timings after switching the video input or | ||
65 | output.</para> | ||
66 | |||
67 | <table pgwide="1" frame="none" id="v4l2-bt-timings-cap"> | ||
68 | <title>struct <structname>v4l2_bt_timings_cap</structname></title> | ||
69 | <tgroup cols="3"> | ||
70 | &cs-str; | ||
71 | <tbody valign="top"> | ||
72 | <row> | ||
73 | <entry>__u32</entry> | ||
74 | <entry><structfield>min_width</structfield></entry> | ||
75 | <entry>Minimum width of the active video in pixels.</entry> | ||
76 | </row> | ||
77 | <row> | ||
78 | <entry>__u32</entry> | ||
79 | <entry><structfield>max_width</structfield></entry> | ||
80 | <entry>Maximum width of the active video in pixels.</entry> | ||
81 | </row> | ||
82 | <row> | ||
83 | <entry>__u32</entry> | ||
84 | <entry><structfield>min_height</structfield></entry> | ||
85 | <entry>Minimum height of the active video in lines.</entry> | ||
86 | </row> | ||
87 | <row> | ||
88 | <entry>__u32</entry> | ||
89 | <entry><structfield>max_height</structfield></entry> | ||
90 | <entry>Maximum height of the active video in lines.</entry> | ||
91 | </row> | ||
92 | <row> | ||
93 | <entry>__u64</entry> | ||
94 | <entry><structfield>min_pixelclock</structfield></entry> | ||
95 | <entry>Minimum pixelclock frequency in Hz.</entry> | ||
96 | </row> | ||
97 | <row> | ||
98 | <entry>__u64</entry> | ||
99 | <entry><structfield>max_pixelclock</structfield></entry> | ||
100 | <entry>Maximum pixelclock frequency in Hz.</entry> | ||
101 | </row> | ||
102 | <row> | ||
103 | <entry>__u32</entry> | ||
104 | <entry><structfield>standards</structfield></entry> | ||
105 | <entry>The video standard(s) supported by the hardware. | ||
106 | See <xref linkend="dv-bt-standards"/> for a list of standards.</entry> | ||
107 | </row> | ||
108 | <row> | ||
109 | <entry>__u32</entry> | ||
110 | <entry><structfield>capabilities</structfield></entry> | ||
111 | <entry>Several flags giving more information about the capabilities. | ||
112 | See <xref linkend="dv-bt-cap-capabilities"/> for a description of the flags. | ||
113 | </entry> | ||
114 | </row> | ||
115 | <row> | ||
116 | <entry>__u32</entry> | ||
117 | <entry><structfield>reserved</structfield>[16]</entry> | ||
118 | <entry></entry> | ||
119 | </row> | ||
120 | </tbody> | ||
121 | </tgroup> | ||
122 | </table> | ||
123 | |||
124 | <table pgwide="1" frame="none" id="v4l2-dv-timings-cap"> | ||
125 | <title>struct <structname>v4l2_dv_timings_cap</structname></title> | ||
126 | <tgroup cols="4"> | ||
127 | &cs-str; | ||
128 | <tbody valign="top"> | ||
129 | <row> | ||
130 | <entry>__u32</entry> | ||
131 | <entry><structfield>type</structfield></entry> | ||
132 | <entry>Type of DV timings as listed in <xref linkend="dv-timing-types"/>.</entry> | ||
133 | </row> | ||
134 | <row> | ||
135 | <entry>__u32</entry> | ||
136 | <entry><structfield>reserved</structfield>[3]</entry> | ||
137 | <entry>Reserved for future extensions. Drivers must set the array to zero.</entry> | ||
138 | </row> | ||
139 | <row> | ||
140 | <entry>union</entry> | ||
141 | <entry><structfield></structfield></entry> | ||
142 | <entry></entry> | ||
143 | </row> | ||
144 | <row> | ||
145 | <entry></entry> | ||
146 | <entry>&v4l2-bt-timings-cap;</entry> | ||
147 | <entry><structfield>bt</structfield></entry> | ||
148 | <entry>BT.656/1120 timings capabilities of the hardware.</entry> | ||
149 | </row> | ||
150 | <row> | ||
151 | <entry></entry> | ||
152 | <entry>__u32</entry> | ||
153 | <entry><structfield>raw_data</structfield>[32]</entry> | ||
154 | <entry></entry> | ||
155 | </row> | ||
156 | </tbody> | ||
157 | </tgroup> | ||
158 | </table> | ||
159 | |||
160 | <table pgwide="1" frame="none" id="dv-bt-cap-capabilities"> | ||
161 | <title>DV BT Timing capabilities</title> | ||
162 | <tgroup cols="2"> | ||
163 | &cs-str; | ||
164 | <tbody valign="top"> | ||
165 | <row> | ||
166 | <entry>Flag</entry> | ||
167 | <entry>Description</entry> | ||
168 | </row> | ||
169 | <row> | ||
170 | <entry></entry> | ||
171 | <entry></entry> | ||
172 | </row> | ||
173 | <row> | ||
174 | <entry>V4L2_DV_BT_CAP_INTERLACED</entry> | ||
175 | <entry>Interlaced formats are supported. | ||
176 | </entry> | ||
177 | </row> | ||
178 | <row> | ||
179 | <entry>V4L2_DV_BT_CAP_PROGRESSIVE</entry> | ||
180 | <entry>Progressive formats are supported. | ||
181 | </entry> | ||
182 | </row> | ||
183 | <row> | ||
184 | <entry>V4L2_DV_BT_CAP_REDUCED_BLANKING</entry> | ||
185 | <entry>CVT/GTF specific: the timings can make use of reduced blanking (CVT) | ||
186 | or the 'Secondary GTF' curve (GTF). | ||
187 | </entry> | ||
188 | </row> | ||
189 | <row> | ||
190 | <entry>V4L2_DV_BT_CAP_CUSTOM</entry> | ||
191 | <entry>Can support non-standard timings, i.e. timings not belonging to the | ||
192 | standards set in the <structfield>standards</structfield> field. | ||
193 | </entry> | ||
194 | </row> | ||
195 | </tbody> | ||
196 | </tgroup> | ||
197 | </table> | ||
198 | </refsect1> | ||
199 | |||
200 | <refsect1> | ||
201 | &return-value; | ||
202 | </refsect1> | ||
203 | </refentry> | ||
204 | |||
205 | <!-- | ||
206 | Local Variables: | ||
207 | mode: sgml | ||
208 | sgml-parent-document: "v4l2.sgml" | ||
209 | indent-tabs-mode: nil | ||
210 | End: | ||
211 | --> | ||
diff --git a/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml b/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml index 0be17c232d3a..509f0012d2a6 100644 --- a/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml +++ b/Documentation/DocBook/media/v4l/vidioc-enum-dv-presets.xml | |||
@@ -48,6 +48,10 @@ | |||
48 | <refsect1> | 48 | <refsect1> |
49 | <title>Description</title> | 49 | <title>Description</title> |
50 | 50 | ||
51 | <para>This ioctl is <emphasis role="bold">deprecated</emphasis>. | ||
52 | New drivers and applications should use &VIDIOC-ENUM-DV-TIMINGS; instead. | ||
53 | </para> | ||
54 | |||
51 | <para>To query the attributes of a DV preset, applications initialize the | 55 | <para>To query the attributes of a DV preset, applications initialize the |
52 | <structfield>index</structfield> field and zero the reserved array of &v4l2-dv-enum-preset; | 56 | <structfield>index</structfield> field and zero the reserved array of &v4l2-dv-enum-preset; |
53 | and call the <constant>VIDIOC_ENUM_DV_PRESETS</constant> ioctl with a pointer to this | 57 | and call the <constant>VIDIOC_ENUM_DV_PRESETS</constant> ioctl with a pointer to this |
diff --git a/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml new file mode 100644 index 000000000000..24c3bf4fd29a --- /dev/null +++ b/Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml | |||
@@ -0,0 +1,119 @@ | |||
1 | <refentry id="vidioc-enum-dv-timings"> | ||
2 | <refmeta> | ||
3 | <refentrytitle>ioctl VIDIOC_ENUM_DV_TIMINGS</refentrytitle> | ||
4 | &manvol; | ||
5 | </refmeta> | ||
6 | |||
7 | <refnamediv> | ||
8 | <refname>VIDIOC_ENUM_DV_TIMINGS</refname> | ||
9 | <refpurpose>Enumerate supported Digital Video timings</refpurpose> | ||
10 | </refnamediv> | ||
11 | |||
12 | <refsynopsisdiv> | ||
13 | <funcsynopsis> | ||
14 | <funcprototype> | ||
15 | <funcdef>int <function>ioctl</function></funcdef> | ||
16 | <paramdef>int <parameter>fd</parameter></paramdef> | ||
17 | <paramdef>int <parameter>request</parameter></paramdef> | ||
18 | <paramdef>struct v4l2_enum_dv_timings *<parameter>argp</parameter></paramdef> | ||
19 | </funcprototype> | ||
20 | </funcsynopsis> | ||
21 | </refsynopsisdiv> | ||
22 | |||
23 | <refsect1> | ||
24 | <title>Arguments</title> | ||
25 | |||
26 | <variablelist> | ||
27 | <varlistentry> | ||
28 | <term><parameter>fd</parameter></term> | ||
29 | <listitem> | ||
30 | <para>&fd;</para> | ||
31 | </listitem> | ||
32 | </varlistentry> | ||
33 | <varlistentry> | ||
34 | <term><parameter>request</parameter></term> | ||
35 | <listitem> | ||
36 | <para>VIDIOC_ENUM_DV_TIMINGS</para> | ||
37 | </listitem> | ||
38 | </varlistentry> | ||
39 | <varlistentry> | ||
40 | <term><parameter>argp</parameter></term> | ||
41 | <listitem> | ||
42 | <para></para> | ||
43 | </listitem> | ||
44 | </varlistentry> | ||
45 | </variablelist> | ||
46 | </refsect1> | ||
47 | |||
48 | <refsect1> | ||
49 | <title>Description</title> | ||
50 | |||
51 | <note> | ||
52 | <title>Experimental</title> | ||
53 | <para>This is an <link linkend="experimental"> experimental </link> | ||
54 | interface and may change in the future.</para> | ||
55 | </note> | ||
56 | |||
57 | <para>While some DV receivers or transmitters support a wide range of timings, others | ||
58 | support only a limited number of timings. With this ioctl applications can enumerate a list | ||
59 | of known supported timings. Call &VIDIOC-DV-TIMINGS-CAP; to check if it also supports other | ||
60 | standards or even custom timings that are not in this list.</para> | ||
61 | |||
62 | <para>To query the available timings, applications initialize the | ||
63 | <structfield>index</structfield> field and zero the reserved array of &v4l2-enum-dv-timings; | ||
64 | and call the <constant>VIDIOC_ENUM_DV_TIMINGS</constant> ioctl with a pointer to this | ||
65 | structure. Drivers fill the rest of the structure or return an | ||
66 | &EINVAL; when the index is out of bounds. To enumerate all supported DV timings, | ||
67 | applications shall begin at index zero, incrementing by one until the | ||
68 | driver returns <errorcode>EINVAL</errorcode>. Note that drivers may enumerate a | ||
69 | different set of DV timings after switching the video input or | ||
70 | output.</para> | ||
71 | |||
72 | <table pgwide="1" frame="none" id="v4l2-enum-dv-timings"> | ||
73 | <title>struct <structname>v4l2_enum_dv_timings</structname></title> | ||
74 | <tgroup cols="3"> | ||
75 | &cs-str; | ||
76 | <tbody valign="top"> | ||
77 | <row> | ||
78 | <entry>__u32</entry> | ||
79 | <entry><structfield>index</structfield></entry> | ||
80 | <entry>Number of the DV timings, set by the | ||
81 | application.</entry> | ||
82 | </row> | ||
83 | <row> | ||
84 | <entry>__u32</entry> | ||
85 | <entry><structfield>reserved</structfield>[3]</entry> | ||
86 | <entry>Reserved for future extensions. Drivers must set the array to zero.</entry> | ||
87 | </row> | ||
88 | <row> | ||
89 | <entry>&v4l2-dv-timings;</entry> | ||
90 | <entry><structfield>timings</structfield></entry> | ||
91 | <entry>The timings.</entry> | ||
92 | </row> | ||
93 | </tbody> | ||
94 | </tgroup> | ||
95 | </table> | ||
96 | </refsect1> | ||
97 | |||
98 | <refsect1> | ||
99 | &return-value; | ||
100 | |||
101 | <variablelist> | ||
102 | <varlistentry> | ||
103 | <term><errorcode>EINVAL</errorcode></term> | ||
104 | <listitem> | ||
105 | <para>The &v4l2-enum-dv-timings; <structfield>index</structfield> | ||
106 | is out of bounds.</para> | ||
107 | </listitem> | ||
108 | </varlistentry> | ||
109 | </variablelist> | ||
110 | </refsect1> | ||
111 | </refentry> | ||
112 | |||
113 | <!-- | ||
114 | Local Variables: | ||
115 | mode: sgml | ||
116 | sgml-parent-document: "v4l2.sgml" | ||
117 | indent-tabs-mode: nil | ||
118 | End: | ||
119 | --> | ||
diff --git a/Documentation/DocBook/media/v4l/vidioc-enuminput.xml b/Documentation/DocBook/media/v4l/vidioc-enuminput.xml index 9b8efcd6e947..46d5a044a537 100644 --- a/Documentation/DocBook/media/v4l/vidioc-enuminput.xml +++ b/Documentation/DocBook/media/v4l/vidioc-enuminput.xml | |||
@@ -285,7 +285,7 @@ input/output interface to linux-media@vger.kernel.org on 19 Oct 2009. | |||
285 | <row> | 285 | <row> |
286 | <entry><constant>V4L2_IN_CAP_CUSTOM_TIMINGS</constant></entry> | 286 | <entry><constant>V4L2_IN_CAP_CUSTOM_TIMINGS</constant></entry> |
287 | <entry>0x00000002</entry> | 287 | <entry>0x00000002</entry> |
288 | <entry>This input supports setting custom video timings by using VIDIOC_S_DV_TIMINGS.</entry> | 288 | <entry>This input supports setting video timings by using VIDIOC_S_DV_TIMINGS.</entry> |
289 | </row> | 289 | </row> |
290 | <row> | 290 | <row> |
291 | <entry><constant>V4L2_IN_CAP_STD</constant></entry> | 291 | <entry><constant>V4L2_IN_CAP_STD</constant></entry> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml b/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml index a64d5ef103fa..428020000ef0 100644 --- a/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml +++ b/Documentation/DocBook/media/v4l/vidioc-enumoutput.xml | |||
@@ -170,7 +170,7 @@ input/output interface to linux-media@vger.kernel.org on 19 Oct 2009. | |||
170 | <row> | 170 | <row> |
171 | <entry><constant>V4L2_OUT_CAP_CUSTOM_TIMINGS</constant></entry> | 171 | <entry><constant>V4L2_OUT_CAP_CUSTOM_TIMINGS</constant></entry> |
172 | <entry>0x00000002</entry> | 172 | <entry>0x00000002</entry> |
173 | <entry>This output supports setting custom video timings by using VIDIOC_S_DV_TIMINGS.</entry> | 173 | <entry>This output supports setting video timings by using VIDIOC_S_DV_TIMINGS.</entry> |
174 | </row> | 174 | </row> |
175 | <row> | 175 | <row> |
176 | <entry><constant>V4L2_OUT_CAP_STD</constant></entry> | 176 | <entry><constant>V4L2_OUT_CAP_STD</constant></entry> |
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml index 4a8648ae9a63..eda1a2991bbe 100644 --- a/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml +++ b/Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml | |||
@@ -7,7 +7,7 @@ | |||
7 | <refnamediv> | 7 | <refnamediv> |
8 | <refname>VIDIOC_G_DV_TIMINGS</refname> | 8 | <refname>VIDIOC_G_DV_TIMINGS</refname> |
9 | <refname>VIDIOC_S_DV_TIMINGS</refname> | 9 | <refname>VIDIOC_S_DV_TIMINGS</refname> |
10 | <refpurpose>Get or set custom DV timings for input or output</refpurpose> | 10 | <refpurpose>Get or set DV timings for input or output</refpurpose> |
11 | </refnamediv> | 11 | </refnamediv> |
12 | 12 | ||
13 | <refsynopsisdiv> | 13 | <refsynopsisdiv> |
@@ -48,12 +48,15 @@ | |||
48 | 48 | ||
49 | <refsect1> | 49 | <refsect1> |
50 | <title>Description</title> | 50 | <title>Description</title> |
51 | <para>To set custom DV timings for the input or output, applications use the | 51 | <para>To set DV timings for the input or output, applications use the |
52 | <constant>VIDIOC_S_DV_TIMINGS</constant> ioctl and to get the current custom timings, | 52 | <constant>VIDIOC_S_DV_TIMINGS</constant> ioctl and to get the current timings, |
53 | applications use the <constant>VIDIOC_G_DV_TIMINGS</constant> ioctl. The detailed timing | 53 | applications use the <constant>VIDIOC_G_DV_TIMINGS</constant> ioctl. The detailed timing |
54 | information is filled in using the structure &v4l2-dv-timings;. These ioctls take | 54 | information is filled in using the structure &v4l2-dv-timings;. These ioctls take |
55 | a pointer to the &v4l2-dv-timings; structure as argument. If the ioctl is not supported | 55 | a pointer to the &v4l2-dv-timings; structure as argument. If the ioctl is not supported |
56 | or the timing values are not correct, the driver returns &EINVAL;.</para> | 56 | or the timing values are not correct, the driver returns &EINVAL;.</para> |
57 | <para>The <filename>linux/v4l2-dv-timings.h</filename> header can be used to get the | ||
58 | timings of the formats in the <xref linkend="cea861" /> and <xref linkend="vesadmt" /> | ||
59 | standards.</para> | ||
57 | </refsect1> | 60 | </refsect1> |
58 | 61 | ||
59 | <refsect1> | 62 | <refsect1> |
@@ -83,12 +86,13 @@ or the timing values are not correct, the driver returns &EINVAL;.</para> | |||
83 | <row> | 86 | <row> |
84 | <entry>__u32</entry> | 87 | <entry>__u32</entry> |
85 | <entry><structfield>width</structfield></entry> | 88 | <entry><structfield>width</structfield></entry> |
86 | <entry>Width of the active video in pixels</entry> | 89 | <entry>Width of the active video in pixels.</entry> |
87 | </row> | 90 | </row> |
88 | <row> | 91 | <row> |
89 | <entry>__u32</entry> | 92 | <entry>__u32</entry> |
90 | <entry><structfield>height</structfield></entry> | 93 | <entry><structfield>height</structfield></entry> |
91 | <entry>Height of the active video in lines</entry> | 94 | <entry>Height of the active video frame in lines. So for interlaced formats the |
95 | height of the active video in each field is <structfield>height</structfield>/2.</entry> | ||
92 | </row> | 96 | </row> |
93 | <row> | 97 | <row> |
94 | <entry>__u32</entry> | 98 | <entry>__u32</entry> |
@@ -125,32 +129,52 @@ bit 0 (V4L2_DV_VSYNC_POS_POL) is for vertical sync polarity and bit 1 (V4L2_DV_H | |||
125 | <row> | 129 | <row> |
126 | <entry>__u32</entry> | 130 | <entry>__u32</entry> |
127 | <entry><structfield>vfrontporch</structfield></entry> | 131 | <entry><structfield>vfrontporch</structfield></entry> |
128 | <entry>Vertical front porch in lines</entry> | 132 | <entry>Vertical front porch in lines. For interlaced formats this refers to the |
133 | odd field (aka field 1).</entry> | ||
129 | </row> | 134 | </row> |
130 | <row> | 135 | <row> |
131 | <entry>__u32</entry> | 136 | <entry>__u32</entry> |
132 | <entry><structfield>vsync</structfield></entry> | 137 | <entry><structfield>vsync</structfield></entry> |
133 | <entry>Vertical sync length in lines</entry> | 138 | <entry>Vertical sync length in lines. For interlaced formats this refers to the |
139 | odd field (aka field 1).</entry> | ||
134 | </row> | 140 | </row> |
135 | <row> | 141 | <row> |
136 | <entry>__u32</entry> | 142 | <entry>__u32</entry> |
137 | <entry><structfield>vbackporch</structfield></entry> | 143 | <entry><structfield>vbackporch</structfield></entry> |
138 | <entry>Vertical back porch in lines</entry> | 144 | <entry>Vertical back porch in lines. For interlaced formats this refers to the |
145 | odd field (aka field 1).</entry> | ||
139 | </row> | 146 | </row> |
140 | <row> | 147 | <row> |
141 | <entry>__u32</entry> | 148 | <entry>__u32</entry> |
142 | <entry><structfield>il_vfrontporch</structfield></entry> | 149 | <entry><structfield>il_vfrontporch</structfield></entry> |
143 | <entry>Vertical front porch in lines for bottom field of interlaced field formats</entry> | 150 | <entry>Vertical front porch in lines for the even field (aka field 2) of |
151 | interlaced field formats.</entry> | ||
144 | </row> | 152 | </row> |
145 | <row> | 153 | <row> |
146 | <entry>__u32</entry> | 154 | <entry>__u32</entry> |
147 | <entry><structfield>il_vsync</structfield></entry> | 155 | <entry><structfield>il_vsync</structfield></entry> |
148 | <entry>Vertical sync length in lines for bottom field of interlaced field formats</entry> | 156 | <entry>Vertical sync length in lines for the even field (aka field 2) of |
157 | interlaced field formats.</entry> | ||
149 | </row> | 158 | </row> |
150 | <row> | 159 | <row> |
151 | <entry>__u32</entry> | 160 | <entry>__u32</entry> |
152 | <entry><structfield>il_vbackporch</structfield></entry> | 161 | <entry><structfield>il_vbackporch</structfield></entry> |
153 | <entry>Vertical back porch in lines for bottom field of interlaced field formats</entry> | 162 | <entry>Vertical back porch in lines for the even field (aka field 2) of |
163 | interlaced field formats.</entry> | ||
164 | </row> | ||
165 | <row> | ||
166 | <entry>__u32</entry> | ||
167 | <entry><structfield>standards</structfield></entry> | ||
168 | <entry>The video standard(s) this format belongs to. This will be filled in by | ||
169 | the driver. Applications must set this to 0. See <xref linkend="dv-bt-standards"/> | ||
170 | for a list of standards.</entry> | ||
171 | </row> | ||
172 | <row> | ||
173 | <entry>__u32</entry> | ||
174 | <entry><structfield>flags</structfield></entry> | ||
175 | <entry>Several flags giving more information about the format. | ||
176 | See <xref linkend="dv-bt-flags"/> for a description of the flags. | ||
177 | </entry> | ||
154 | </row> | 178 | </row> |
155 | </tbody> | 179 | </tbody> |
156 | </tgroup> | 180 | </tgroup> |
@@ -211,6 +235,90 @@ bit 0 (V4L2_DV_VSYNC_POS_POL) is for vertical sync polarity and bit 1 (V4L2_DV_H | |||
211 | </tbody> | 235 | </tbody> |
212 | </tgroup> | 236 | </tgroup> |
213 | </table> | 237 | </table> |
238 | <table pgwide="1" frame="none" id="dv-bt-standards"> | ||
239 | <title>DV BT Timing standards</title> | ||
240 | <tgroup cols="2"> | ||
241 | &cs-str; | ||
242 | <tbody valign="top"> | ||
243 | <row> | ||
244 | <entry>Timing standard</entry> | ||
245 | <entry>Description</entry> | ||
246 | </row> | ||
247 | <row> | ||
248 | <entry></entry> | ||
249 | <entry></entry> | ||
250 | </row> | ||
251 | <row> | ||
252 | <entry>V4L2_DV_BT_STD_CEA861</entry> | ||
253 | <entry>The timings follow the CEA-861 Digital TV Profile standard</entry> | ||
254 | </row> | ||
255 | <row> | ||
256 | <entry>V4L2_DV_BT_STD_DMT</entry> | ||
257 | <entry>The timings follow the VESA Discrete Monitor Timings standard</entry> | ||
258 | </row> | ||
259 | <row> | ||
260 | <entry>V4L2_DV_BT_STD_CVT</entry> | ||
261 | <entry>The timings follow the VESA Coordinated Video Timings standard</entry> | ||
262 | </row> | ||
263 | <row> | ||
264 | <entry>V4L2_DV_BT_STD_GTF</entry> | ||
265 | <entry>The timings follow the VESA Generalized Timings Formula standard</entry> | ||
266 | </row> | ||
267 | </tbody> | ||
268 | </tgroup> | ||
269 | </table> | ||
270 | <table pgwide="1" frame="none" id="dv-bt-flags"> | ||
271 | <title>DV BT Timing flags</title> | ||
272 | <tgroup cols="2"> | ||
273 | &cs-str; | ||
274 | <tbody valign="top"> | ||
275 | <row> | ||
276 | <entry>Flag</entry> | ||
277 | <entry>Description</entry> | ||
278 | </row> | ||
279 | <row> | ||
280 | <entry></entry> | ||
281 | <entry></entry> | ||
282 | </row> | ||
283 | <row> | ||
284 | <entry>V4L2_DV_FL_REDUCED_BLANKING</entry> | ||
285 | <entry>CVT/GTF specific: the timings use reduced blanking (CVT) or the 'Secondary | ||
286 | GTF' curve (GTF). In both cases the horizontal and/or vertical blanking | ||
287 | intervals are reduced, allowing a higher resolution over the same | ||
288 | bandwidth. This is a read-only flag, applications must not set this. | ||
289 | </entry> | ||
290 | </row> | ||
291 | <row> | ||
292 | <entry>V4L2_DV_FL_CAN_REDUCE_FPS</entry> | ||
293 | <entry>CEA-861 specific: set for CEA-861 formats with a framerate that is a multiple | ||
294 | of six. These formats can be optionally played at 1 / 1.001 speed to | ||
295 | be compatible with 60 Hz based standards such as NTSC and PAL-M that use a framerate of | ||
296 | 29.97 frames per second. If the transmitter can't generate such frequencies, then the | ||
297 | flag will also be cleared. This is a read-only flag, applications must not set this. | ||
298 | </entry> | ||
299 | </row> | ||
300 | <row> | ||
301 | <entry>V4L2_DV_FL_REDUCED_FPS</entry> | ||
302 | <entry>CEA-861 specific: only valid for video transmitters, the flag is cleared | ||
303 | by receivers. It is also only valid for formats with the V4L2_DV_FL_CAN_REDUCE_FPS flag | ||
304 | set, for other formats the flag will be cleared by the driver. | ||
305 | |||
306 | If the application sets this flag, then the pixelclock used to set up the transmitter is | ||
307 | divided by 1.001 to make it compatible with NTSC framerates. If the transmitter | ||
308 | can't generate such frequencies, then the flag will also be cleared. | ||
309 | </entry> | ||
310 | </row> | ||
311 | <row> | ||
312 | <entry>V4L2_DV_FL_HALF_LINE</entry> | ||
313 | <entry>Specific to interlaced formats: if set, then field 1 (aka the odd field) | ||
314 | is really one half-line longer and field 2 (aka the even field) is really one half-line | ||
315 | shorter, so each field has exactly the same number of half-lines. Whether half-lines can be | ||
316 | detected or used depends on the hardware. | ||
317 | </entry> | ||
318 | </row> | ||
319 | </tbody> | ||
320 | </tgroup> | ||
321 | </table> | ||
214 | </refsect1> | 322 | </refsect1> |
215 | <refsect1> | 323 | <refsect1> |
216 | &return-value; | 324 | &return-value; |
diff --git a/Documentation/DocBook/media/v4l/vidioc-prepare-buf.xml b/Documentation/DocBook/media/v4l/vidioc-prepare-buf.xml index 7bde698760e4..fa7ad7e33228 100644 --- a/Documentation/DocBook/media/v4l/vidioc-prepare-buf.xml +++ b/Documentation/DocBook/media/v4l/vidioc-prepare-buf.xml | |||
@@ -48,6 +48,12 @@ | |||
48 | <refsect1> | 48 | <refsect1> |
49 | <title>Description</title> | 49 | <title>Description</title> |
50 | 50 | ||
51 | <note> | ||
52 | <title>Experimental</title> | ||
53 | <para>This is an <link linkend="experimental"> experimental </link> | ||
54 | interface and may change in the future.</para> | ||
55 | </note> | ||
56 | |||
51 | <para>Applications can optionally call the | 57 | <para>Applications can optionally call the |
52 | <constant>VIDIOC_PREPARE_BUF</constant> ioctl to pass ownership of the buffer | 58 | <constant>VIDIOC_PREPARE_BUF</constant> ioctl to pass ownership of the buffer |
53 | to the driver before actually enqueuing it, using the | 59 | to the driver before actually enqueuing it, using the |
diff --git a/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml b/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml new file mode 100644 index 000000000000..44935a0ffcf0 --- /dev/null +++ b/Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml | |||
@@ -0,0 +1,104 @@ | |||
1 | <refentry id="vidioc-query-dv-timings"> | ||
2 | <refmeta> | ||
3 | <refentrytitle>ioctl VIDIOC_QUERY_DV_TIMINGS</refentrytitle> | ||
4 | &manvol; | ||
5 | </refmeta> | ||
6 | |||
7 | <refnamediv> | ||
8 | <refname>VIDIOC_QUERY_DV_TIMINGS</refname> | ||
9 | <refpurpose>Sense the DV preset received by the current | ||
10 | input</refpurpose> | ||
11 | </refnamediv> | ||
12 | |||
13 | <refsynopsisdiv> | ||
14 | <funcsynopsis> | ||
15 | <funcprototype> | ||
16 | <funcdef>int <function>ioctl</function></funcdef> | ||
17 | <paramdef>int <parameter>fd</parameter></paramdef> | ||
18 | <paramdef>int <parameter>request</parameter></paramdef> | ||
19 | <paramdef>struct v4l2_dv_timings *<parameter>argp</parameter></paramdef> | ||
20 | </funcprototype> | ||
21 | </funcsynopsis> | ||
22 | </refsynopsisdiv> | ||
23 | |||
24 | <refsect1> | ||
25 | <title>Arguments</title> | ||
26 | |||
27 | <variablelist> | ||
28 | <varlistentry> | ||
29 | <term><parameter>fd</parameter></term> | ||
30 | <listitem> | ||
31 | <para>&fd;</para> | ||
32 | </listitem> | ||
33 | </varlistentry> | ||
34 | <varlistentry> | ||
35 | <term><parameter>request</parameter></term> | ||
36 | <listitem> | ||
37 | <para>VIDIOC_QUERY_DV_TIMINGS</para> | ||
38 | </listitem> | ||
39 | </varlistentry> | ||
40 | <varlistentry> | ||
41 | <term><parameter>argp</parameter></term> | ||
42 | <listitem> | ||
43 | <para></para> | ||
44 | </listitem> | ||
45 | </varlistentry> | ||
46 | </variablelist> | ||
47 | </refsect1> | ||
48 | |||
49 | <refsect1> | ||
50 | <title>Description</title> | ||
51 | |||
52 | <note> | ||
53 | <title>Experimental</title> | ||
54 | <para>This is an <link linkend="experimental"> experimental </link> | ||
55 | interface and may change in the future.</para> | ||
56 | </note> | ||
57 | |||
58 | <para>The hardware may be able to detect the current DV timings | ||
59 | automatically, similar to sensing the video standard. To do so, applications | ||
60 | call <constant>VIDIOC_QUERY_DV_TIMINGS</constant> with a pointer to a | ||
61 | &v4l2-dv-timings;. Once the hardware detects the timings, it will fill in the | ||
62 | timings structure. | ||
63 | |||
64 | If the timings could not be detected because there was no signal, then | ||
65 | <errorcode>ENOLINK</errorcode> is returned. If a signal was detected, but | ||
66 | it was unstable and the receiver could not lock to the signal, then | ||
67 | <errorcode>ENOLCK</errorcode> is returned. If the receiver could lock to the signal, | ||
68 | but the format is unsupported (e.g. because the pixelclock is out of range | ||
69 | of the hardware capabilities), then the driver fills in whatever timings it | ||
70 | could find and returns <errorcode>ERANGE</errorcode>. In that case the application | ||
71 | can call &VIDIOC-DV-TIMINGS-CAP; to compare the found timings with the hardware's | ||
72 | capabilities in order to give more precise feedback to the user. | ||
73 | </para> | ||
74 | </refsect1> | ||
75 | |||
76 | <refsect1> | ||
77 | &return-value; | ||
78 | |||
79 | <variablelist> | ||
80 | <varlistentry> | ||
81 | <term><errorcode>ENOLINK</errorcode></term> | ||
82 | <listitem> | ||
83 | <para>No timings could be detected because no signal was found. | ||
84 | </para> | ||
85 | </listitem> | ||
86 | </varlistentry> | ||
87 | <varlistentry> | ||
88 | <term><errorcode>ENOLCK</errorcode></term> | ||
89 | <listitem> | ||
90 | <para>The signal was unstable and the hardware could not lock on to it. | ||
91 | </para> | ||
92 | </listitem> | ||
93 | </varlistentry> | ||
94 | <varlistentry> | ||
95 | <term><errorcode>ERANGE</errorcode></term> | ||
96 | <listitem> | ||
97 | <para>Timings were found, but they are out of range of the hardware | ||
98 | capabilities. | ||
99 | </para> | ||
100 | </listitem> | ||
101 | </varlistentry> | ||
102 | </variablelist> | ||
103 | </refsect1> | ||
104 | </refentry> | ||