diff options
author | Vincent Palatin <vpalatin@chromium.org> | 2014-09-03 15:38:39 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2014-09-21 19:23:39 -0400 |
commit | e3d6eb1c16ef174a8fbbdd40770f5cbace0710e4 (patch) | |
tree | 9cda79b716d7098991cd711fe0c43fcac87abefd | |
parent | 7000e325de875fa8a5dd3885c8e8f0f12cf71eaf (diff) |
[media] v4l: Add camera pan/tilt speed controls
The V4L2_CID_PAN_SPEED and V4L2_CID_TILT_SPEED controls allow to move the
camera by setting its rotation speed around its axis.
Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r-- | Documentation/DocBook/media/v4l/compat.xml | 10 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/controls.xml | 21 | ||||
-rw-r--r-- | drivers/media/v4l2-core/v4l2-ctrls.c | 2 | ||||
-rw-r--r-- | include/uapi/linux/v4l2-controls.h | 2 |
4 files changed, 35 insertions, 0 deletions
diff --git a/Documentation/DocBook/media/v4l/compat.xml b/Documentation/DocBook/media/v4l/compat.xml index eee6f0f4aa43..7aa7c5d41e3b 100644 --- a/Documentation/DocBook/media/v4l/compat.xml +++ b/Documentation/DocBook/media/v4l/compat.xml | |||
@@ -2545,6 +2545,16 @@ fields changed from _s32 to _u32. | |||
2545 | </orderedlist> | 2545 | </orderedlist> |
2546 | </section> | 2546 | </section> |
2547 | 2547 | ||
2548 | <section> | ||
2549 | <title>V4L2 in Linux 3.18</title> | ||
2550 | <orderedlist> | ||
2551 | <listitem> | ||
2552 | <para>Added <constant>V4L2_CID_PAN_SPEED</constant> and | ||
2553 | <constant>V4L2_CID_TILT_SPEED</constant> camera controls.</para> | ||
2554 | </listitem> | ||
2555 | </orderedlist> | ||
2556 | </section> | ||
2557 | |||
2548 | <section id="other"> | 2558 | <section id="other"> |
2549 | <title>Relation of V4L2 to other Linux multimedia APIs</title> | 2559 | <title>Relation of V4L2 to other Linux multimedia APIs</title> |
2550 | 2560 | ||
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index a7eb1bde8b92..e013e4bf244c 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml | |||
@@ -3965,6 +3965,27 @@ by exposure, white balance or focus controls.</entry> | |||
3965 | </row> | 3965 | </row> |
3966 | <row><entry></entry></row> | 3966 | <row><entry></entry></row> |
3967 | 3967 | ||
3968 | <row> | ||
3969 | <entry spanname="id"><constant>V4L2_CID_PAN_SPEED</constant> </entry> | ||
3970 | <entry>integer</entry> | ||
3971 | </row><row><entry spanname="descr">This control turns the | ||
3972 | camera horizontally at the specific speed. The unit is undefined. A | ||
3973 | positive value moves the camera to the right (clockwise when viewed | ||
3974 | from above), a negative value to the left. A value of zero stops the motion | ||
3975 | if one is in progress and has no effect otherwise.</entry> | ||
3976 | </row> | ||
3977 | <row><entry></entry></row> | ||
3978 | |||
3979 | <row> | ||
3980 | <entry spanname="id"><constant>V4L2_CID_TILT_SPEED</constant> </entry> | ||
3981 | <entry>integer</entry> | ||
3982 | </row><row><entry spanname="descr">This control turns the | ||
3983 | camera vertically at the specified speed. The unit is undefined. A | ||
3984 | positive value moves the camera up, a negative value down. A value of zero | ||
3985 | stops the motion if one is in progress and has no effect otherwise.</entry> | ||
3986 | </row> | ||
3987 | <row><entry></entry></row> | ||
3988 | |||
3968 | </tbody> | 3989 | </tbody> |
3969 | </tgroup> | 3990 | </tgroup> |
3970 | </table> | 3991 | </table> |
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c index 35d1f3d5045b..86012140923f 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c | |||
@@ -796,6 +796,8 @@ const char *v4l2_ctrl_get_name(u32 id) | |||
796 | case V4L2_CID_AUTO_FOCUS_STOP: return "Auto Focus, Stop"; | 796 | case V4L2_CID_AUTO_FOCUS_STOP: return "Auto Focus, Stop"; |
797 | case V4L2_CID_AUTO_FOCUS_STATUS: return "Auto Focus, Status"; | 797 | case V4L2_CID_AUTO_FOCUS_STATUS: return "Auto Focus, Status"; |
798 | case V4L2_CID_AUTO_FOCUS_RANGE: return "Auto Focus, Range"; | 798 | case V4L2_CID_AUTO_FOCUS_RANGE: return "Auto Focus, Range"; |
799 | case V4L2_CID_PAN_SPEED: return "Pan, Speed"; | ||
800 | case V4L2_CID_TILT_SPEED: return "Tilt, Speed"; | ||
799 | 801 | ||
800 | /* FM Radio Modulator controls */ | 802 | /* FM Radio Modulator controls */ |
801 | /* Keep the order of the 'case's the same as in v4l2-controls.h! */ | 803 | /* Keep the order of the 'case's the same as in v4l2-controls.h! */ |
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h index 8b930210a4b9..661f119a51b8 100644 --- a/include/uapi/linux/v4l2-controls.h +++ b/include/uapi/linux/v4l2-controls.h | |||
@@ -746,6 +746,8 @@ enum v4l2_auto_focus_range { | |||
746 | V4L2_AUTO_FOCUS_RANGE_INFINITY = 3, | 746 | V4L2_AUTO_FOCUS_RANGE_INFINITY = 3, |
747 | }; | 747 | }; |
748 | 748 | ||
749 | #define V4L2_CID_PAN_SPEED (V4L2_CID_CAMERA_CLASS_BASE+32) | ||
750 | #define V4L2_CID_TILT_SPEED (V4L2_CID_CAMERA_CLASS_BASE+33) | ||
749 | 751 | ||
750 | /* FM Modulator class control IDs */ | 752 | /* FM Modulator class control IDs */ |
751 | 753 | ||