diff options
author | Hans Verkuil <hans.verkuil@cisco.com> | 2012-01-11 05:30:55 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-01-16 06:37:53 -0500 |
commit | 6055b12ae0f433314cba98f423fb8c5fc211ca8d (patch) | |
tree | 0298a0437a2c51b3543ae788260ff98dbd8c82c9 /Documentation | |
parent | 047a01fdc807ffa461db87e2d30d6d28f95c091a (diff) |
[media] V4L2 Spec: fix extended control documentation
Update the spec to the behavior implemented by the control framework.
This should have been documented long ago but for some reason it was
never done.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml | 18 | ||||
-rw-r--r-- | Documentation/video4linux/v4l2-controls.txt | 21 |
2 files changed, 13 insertions, 26 deletions
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml index 6f1f9a629dc3..b17a7aac6997 100644 --- a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml +++ b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml | |||
@@ -183,7 +183,12 @@ applications must set the array to zero.</entry> | |||
183 | <entry>__u32</entry> | 183 | <entry>__u32</entry> |
184 | <entry><structfield>ctrl_class</structfield></entry> | 184 | <entry><structfield>ctrl_class</structfield></entry> |
185 | <entry>The control class to which all controls belong, see | 185 | <entry>The control class to which all controls belong, see |
186 | <xref linkend="ctrl-class" />.</entry> | 186 | <xref linkend="ctrl-class" />. Drivers that use a kernel framework for handling |
187 | controls will also accept a value of 0 here, meaning that the controls can | ||
188 | belong to any control class. Whether drivers support this can be tested by setting | ||
189 | <structfield>ctrl_class</structfield> to 0 and calling <constant>VIDIOC_TRY_EXT_CTRLS</constant> | ||
190 | with a <structfield>count</structfield> of 0. If that succeeds, then the driver | ||
191 | supports this feature.</entry> | ||
187 | </row> | 192 | </row> |
188 | <row> | 193 | <row> |
189 | <entry>__u32</entry> | 194 | <entry>__u32</entry> |
@@ -194,10 +199,13 @@ also be zero.</entry> | |||
194 | <row> | 199 | <row> |
195 | <entry>__u32</entry> | 200 | <entry>__u32</entry> |
196 | <entry><structfield>error_idx</structfield></entry> | 201 | <entry><structfield>error_idx</structfield></entry> |
197 | <entry>Set by the driver in case of an error. It is the | 202 | <entry>Set by the driver in case of an error. If it is equal |
198 | index of the control causing the error or equal to 'count' when the | 203 | to <structfield>count</structfield>, then no actual changes were made to |
199 | error is not associated with a particular control. Undefined when the | 204 | controls. In other words, the error was not associated with setting a particular |
200 | ioctl returns 0 (success).</entry> | 205 | control. If it is another value, then only the controls up to <structfield>error_idx-1</structfield> |
206 | were modified and control <structfield>error_idx</structfield> is the one that | ||
207 | caused the error. The <structfield>error_idx</structfield> value is undefined | ||
208 | if the ioctl returned 0 (success).</entry> | ||
201 | </row> | 209 | </row> |
202 | <row> | 210 | <row> |
203 | <entry>__u32</entry> | 211 | <entry>__u32</entry> |
diff --git a/Documentation/video4linux/v4l2-controls.txt b/Documentation/video4linux/v4l2-controls.txt index 26aa0573933e..e2492a9d1027 100644 --- a/Documentation/video4linux/v4l2-controls.txt +++ b/Documentation/video4linux/v4l2-controls.txt | |||
@@ -666,27 +666,6 @@ a control of this type whenever the first control belonging to a new control | |||
666 | class is added. | 666 | class is added. |
667 | 667 | ||
668 | 668 | ||
669 | Differences from the Spec | ||
670 | ========================= | ||
671 | |||
672 | There are a few places where the framework acts slightly differently from the | ||
673 | V4L2 Specification. Those differences are described in this section. We will | ||
674 | have to see whether we need to adjust the spec or not. | ||
675 | |||
676 | 1) It is no longer required to have all controls contained in a | ||
677 | v4l2_ext_control array be from the same control class. The framework will be | ||
678 | able to handle any type of control in the array. You need to set ctrl_class | ||
679 | to 0 in order to enable this. If ctrl_class is non-zero, then it will still | ||
680 | check that all controls belong to that control class. | ||
681 | |||
682 | If you set ctrl_class to 0 and count to 0, then it will only return an error | ||
683 | if there are no controls at all. | ||
684 | |||
685 | 2) Clarified the way error_idx works. For get and set it will be equal to | ||
686 | count if nothing was done yet. If it is less than count then only the controls | ||
687 | up to error_idx-1 were successfully applied. | ||
688 | |||
689 | |||
690 | Proposals for Extensions | 669 | Proposals for Extensions |
691 | ======================== | 670 | ======================== |
692 | 671 | ||