Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44d44a1a authored by Sylwester Nawrocki's avatar Sylwester Nawrocki Committed by Mauro Carvalho Chehab
Browse files

[media] V4L: Add camera wide dynamic range control



Add V4L2_CID_WIDE_DYNAMIC_RANGE camera class control for the
camera wide dynamic range (WDR, HDR) feature. This control
can be used to enable/disable wide dynamic range. It might
get converted to a menu control in future if more options
are needed.

Signed-off-by: default avatarHeungJun Kim <riverful.kim@samsung.com>
Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent e40a0573
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -3092,6 +3092,21 @@ sky. It corresponds approximately to 9000...10000 K color temperature.
	  </row>
	  <row><entry></entry></row>

	  <row id="v4l2-wide-dynamic-range">
	    <entry spanname="id"><constant>V4L2_CID_WIDE_DYNAMIC_RANGE</constant></entry>
	    <entry>boolean</entry>
	  </row>
	  <row>
	    <entry spanname="descr">Enables or disables the camera's wide dynamic
range feature. This feature allows to obtain clear images in situations where
intensity of the illumination varies significantly throughout the scene, i.e.
there are simultaneously very dark and very bright areas. It is most commonly
realized in cameras by combining two subsequent frames with different exposure
times. <footnote id="ctypeconv"><para> This control may be changed to a menu
control in the future, if more options are required.</para></footnote></entry>
	  </row>
	  <row><entry></entry></row>

	</tbody>
      </tgroup>
    </table>
+2 −0
Original line number Diff line number Diff line
@@ -621,6 +621,7 @@ const char *v4l2_ctrl_get_name(u32 id)
	case V4L2_CID_IRIS_RELATIVE:		return "Iris, Relative";
	case V4L2_CID_AUTO_EXPOSURE_BIAS:	return "Auto Exposure, Bias";
	case V4L2_CID_AUTO_N_PRESET_WHITE_BALANCE: return "White Balance, Auto & Preset";
	case V4L2_CID_WIDE_DYNAMIC_RANGE:	return "Wide Dynamic Range";

	/* FM Radio Modulator control */
	/* Keep the order of the 'case's the same as in videodev2.h! */
@@ -723,6 +724,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
	case V4L2_CID_MPEG_VIDEO_H264_8X8_TRANSFORM:
	case V4L2_CID_MPEG_VIDEO_H264_VUI_SAR_ENABLE:
	case V4L2_CID_MPEG_VIDEO_MPEG4_QPEL:
	case V4L2_CID_WIDE_DYNAMIC_RANGE:
		*type = V4L2_CTRL_TYPE_BOOLEAN;
		*min = 0;
		*max = *step = 1;
+2 −0
Original line number Diff line number Diff line
@@ -1723,6 +1723,8 @@ enum v4l2_auto_n_preset_white_balance {
	V4L2_WHITE_BALANCE_SHADE		= 9,
};

#define V4L2_CID_WIDE_DYNAMIC_RANGE		(V4L2_CID_CAMERA_CLASS_BASE+21)

/* 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)