diff options
-rw-r--r-- | Documentation/DocBook/media/v4l/biblio.xml | 11 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/controls.xml | 38 | ||||
-rw-r--r-- | drivers/media/video/v4l2-ctrls.c | 11 | ||||
-rw-r--r-- | include/linux/videodev2.h | 7 |
4 files changed, 67 insertions, 0 deletions
diff --git a/Documentation/DocBook/media/v4l/biblio.xml b/Documentation/DocBook/media/v4l/biblio.xml index 7dc65c5..66a0ef2 100644 --- a/Documentation/DocBook/media/v4l/biblio.xml +++ b/Documentation/DocBook/media/v4l/biblio.xml @@ -197,4 +197,15 @@ in the frequency range from 87,5 to 108,0 MHz</title> <title>NTSC-4: United States RBDS Standard</title> </biblioentry> + <biblioentry id="iso12232"> + <abbrev>ISO 12232:2006</abbrev> + <authorgroup> + <corpauthor>International Organization for Standardization +(<ulink url="http://www.iso.org">http://www.iso.org</ulink>)</corpauthor> + </authorgroup> + <title>Photography — Digital still cameras — Determination + of exposure index, ISO speed ratings, standard output sensitivity, and + recommended exposure index</title> + </biblioentry> + </bibliography> diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index 74876b4..8fccfe1 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml @@ -3117,6 +3117,44 @@ control in the future, if more options are required.</para></footnote></entry> </row> <row><entry></entry></row> + <row> + <entry spanname="id"><constant>V4L2_CID_ISO_SENSITIVITY</constant> </entry> + <entry>integer menu</entry> + </row><row><entry spanname="descr">Determines ISO equivalent of an +image sensor indicating the sensor's sensitivity to light. The numbers are +expressed in arithmetic scale, as per <xref linkend="iso12232" /> standard, +where doubling the sensor sensitivity is represented by doubling the numerical +ISO value. Applications should interpret the values as standard ISO values +multiplied by 1000, e.g. control value 800 stands for ISO 0.8. Drivers will +usually support only a subset of standard ISO values. The effect of setting +this control while the <constant>V4L2_CID_ISO_SENSITIVITY_AUTO</constant> +control is set to a value other than <constant>V4L2_CID_ISO_SENSITIVITY_MANUAL +</constant> is undefined, drivers should ignore such requests.</entry> + </row> + <row><entry></entry></row> + + <row id="v4l2-iso-sensitivity-auto-type"> + <entry spanname="id"><constant>V4L2_CID_ISO_SENSITIVITY_AUTO</constant> </entry> + <entry>enum v4l2_iso_sensitivity_type</entry> + </row><row><entry spanname="descr">Enables or disables automatic ISO +sensitivity adjustments.</entry> + </row> + <row> + <entrytbl spanname="descr" cols="2"> + <tbody valign="top"> + <row> + <entry><constant>V4L2_CID_ISO_SENSITIVITY_MANUAL</constant> </entry> + <entry>Manual ISO sensitivity.</entry> + </row> + <row> + <entry><constant>V4L2_CID_ISO_SENSITIVITY_AUTO</constant> </entry> + <entry>Automatic ISO sensitivity adjustments.</entry> + </row> + </tbody> + </entrytbl> + </row> + <row><entry></entry></row> + </tbody> </tgroup> </table> diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c index 2da8b98..debaf9f 100644 --- a/drivers/media/video/v4l2-ctrls.c +++ b/drivers/media/video/v4l2-ctrls.c @@ -262,6 +262,11 @@ const char * const *v4l2_ctrl_get_menu(u32 id) "Shade", NULL, }; + static const char * const camera_iso_sensitivity_auto[] = { + "Manual", + "Auto", + NULL + }; static const char * const tune_preemphasis[] = { "No Preemphasis", "50 Microseconds", @@ -433,6 +438,8 @@ const char * const *v4l2_ctrl_get_menu(u32 id) return colorfx; case V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE: return auto_n_preset_white_balance; + case V4L2_CID_ISO_SENSITIVITY_AUTO: + return camera_iso_sensitivity_auto; case V4L2_CID_TUNE_PREEMPHASIS: return tune_preemphasis; case V4L2_CID_FLASH_LED_MODE: @@ -623,6 +630,8 @@ const char *v4l2_ctrl_get_name(u32 id) case V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE: return "White Balance, Auto & Preset"; case V4L2_CID_WIDE_DYNAMIC_RANGE: return "Wide Dynamic Range"; case V4L2_CID_IMAGE_STABILIZATION: return "Image Stabilization"; + case V4L2_CID_ISO_SENSITIVITY: return "ISO Sensitivity"; + case V4L2_CID_ISO_SENSITIVITY_AUTO: return "ISO Sensitivity, Auto"; /* FM Radio Modulator control */ /* Keep the order of the 'case's the same as in videodev2.h! */ @@ -773,6 +782,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, case V4L2_CID_MPEG_VIDEO_MPEG4_LEVEL: case V4L2_CID_MPEG_VIDEO_MPEG4_PROFILE: case V4L2_CID_JPEG_CHROMA_SUBSAMPLING: + case V4L2_CID_ISO_SENSITIVITY_AUTO: *type = V4L2_CTRL_TYPE_MENU; break; case V4L2_CID_LINK_FREQ: @@ -782,6 +792,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, case V4L2_CID_RDS_TX_RADIO_TEXT: *type = V4L2_CTRL_TYPE_STRING; break; + case V4L2_CID_ISO_SENSITIVITY: case V4L2_CID_AUTO_EXPOSURE_BIAS: *type = V4L2_CTRL_TYPE_INTEGER_MENU; break; diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index e94601a..593a1bd3 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h @@ -1726,6 +1726,13 @@ enum v4l2_auto_n_preset_white_balance { #define V4L2_CID_WIDE_DYNAMIC_RANGE (V4L2_CID_CAMERA_CLASS_BASE+21) #define V4L2_CID_IMAGE_STABILIZATION (V4L2_CID_CAMERA_CLASS_BASE+22) +#define V4L2_CID_ISO_SENSITIVITY (V4L2_CID_CAMERA_CLASS_BASE+23) +#define V4L2_CID_ISO_SENSITIVITY_AUTO (V4L2_CID_CAMERA_CLASS_BASE+24) +enum v4l2_iso_sensitivity_auto_type { + V4L2_ISO_SENSITIVITY_MANUAL = 0, + V4L2_ISO_SENSITIVITY_AUTO = 1, +}; + /* FM Modulator class control IDs */ #define V4L2_CID_FM_TX_CLASS_BASE (V4L2_CTRL_CLASS_FM_TX | 0x900) #define V4L2_CID_FM_TX_CLASS (V4L2_CTRL_CLASS_FM_TX | 1) |