• Home
  • Raw
  • Download

Lines Matching full:gain

2  * Functions for auto gain.
18 /* auto gain and exposure algorithm based on the knee algorithm described here:
21 Returns 0 if no changes were made, 1 if the gain and or exposure settings
31 s32 gain, orig_gain, exposure, orig_exposure; in gspca_expo_autogain() local
37 orig_gain = gain = v4l2_ctrl_g_ctrl(gspca_dev->gain); in gspca_expo_autogain()
49 if (gain > gain_knee) in gspca_expo_autogain()
50 gain--; in gspca_expo_autogain()
53 else if (gain > gspca_dev->gain->default_value) in gspca_expo_autogain()
54 gain--; in gspca_expo_autogain()
57 else if (gain > gspca_dev->gain->minimum) in gspca_expo_autogain()
58 gain--; in gspca_expo_autogain()
62 if (gain < gspca_dev->gain->default_value) in gspca_expo_autogain()
63 gain++; in gspca_expo_autogain()
66 else if (gain < gain_knee) in gspca_expo_autogain()
67 gain++; in gspca_expo_autogain()
70 else if (gain < gspca_dev->gain->maximum) in gspca_expo_autogain()
71 gain++; in gspca_expo_autogain()
77 if (gain != orig_gain) { in gspca_expo_autogain()
78 v4l2_ctrl_s_ctrl(gspca_dev->gain, gain); in gspca_expo_autogain()
87 gspca_dbg(gspca_dev, D_FRAM, "autogain: changed gain: %d, expo: %d\n", in gspca_expo_autogain()
88 gain, exposure); in gspca_expo_autogain()
97 this algorithm normally tries to only adjust the gain (between 40 and
103 Returns 0 if no changes were made, 1 if the gain and or exposure settings
111 s32 gain_low, gain_high, gain, orig_gain, exposure, orig_exposure; in gspca_coarse_grained_expo_autogain() local
117 orig_gain = gain = v4l2_ctrl_g_ctrl(gspca_dev->gain); in gspca_coarse_grained_expo_autogain()
120 gain_low = (s32)(gspca_dev->gain->maximum - gspca_dev->gain->minimum) / in gspca_coarse_grained_expo_autogain()
121 5 * 2 + gspca_dev->gain->minimum; in gspca_coarse_grained_expo_autogain()
122 gain_high = (s32)(gspca_dev->gain->maximum - gspca_dev->gain->minimum) / in gspca_coarse_grained_expo_autogain()
123 5 * 4 + gspca_dev->gain->minimum; in gspca_coarse_grained_expo_autogain()
132 if ((gain + steps) > gain_high && in gspca_coarse_grained_expo_autogain()
134 gain = gain_high; in gspca_coarse_grained_expo_autogain()
137 } else if ((gain + steps) < gain_low && in gspca_coarse_grained_expo_autogain()
139 gain = gain_low; in gspca_coarse_grained_expo_autogain()
143 gain += steps; in gspca_coarse_grained_expo_autogain()
144 if (gain > gspca_dev->gain->maximum) in gspca_coarse_grained_expo_autogain()
145 gain = gspca_dev->gain->maximum; in gspca_coarse_grained_expo_autogain()
146 else if (gain < gspca_dev->gain->minimum) in gspca_coarse_grained_expo_autogain()
147 gain = gspca_dev->gain->minimum; in gspca_coarse_grained_expo_autogain()
160 if (gain != orig_gain) { in gspca_coarse_grained_expo_autogain()
161 v4l2_ctrl_s_ctrl(gspca_dev->gain, gain); in gspca_coarse_grained_expo_autogain()
170 gspca_dbg(gspca_dev, D_FRAM, "autogain: changed gain: %d, expo: %d\n", in gspca_coarse_grained_expo_autogain()
171 gain, exposure); in gspca_coarse_grained_expo_autogain()