The issue with exposure step(step changes is not smooth)

We faced with a issue under exposure control in gstreamer.
The problem is exposure value not changed smooth
for example:
imx415_set_exposure val:16666
imx415_set_exposure val:8333
imx415_set_exposure val:16666
imx415_set_exposure val:8333
imx415_set_exposure val:16666

As you can see value just oscillate from 8333 to 16666.
Is it possible to control exposure step in gstreamer?

In device tree we have:
min_exp_time = “60”;
max_exp_time = “33200”;
step_exp_time = “1”;
default_exp_time = “15000”;

command used to start gstreamer:
gst-launch-1.0 -e nvarguscamerasrc sensor-id=0 sensor_mode=0 “video/x-raw(memory:NVMM), width=3864, height=2192, format=NV12,framerate=30/1” !
nvvidconv flip-method=0 ! “video/x-raw,width=1920, height=1080” ! nvvidconv ! nvoverlaysink

What’s your sensor module? IMX219/IMX477?

We use sensor IMX415-AAMR-C

You need make sure the sensor driver exposure control been linearity.

It’s a formula to control exposure:

coarse_time_shs1 = mode->signal_properties.pixel_clock.val *
val / mode->image_properties.line_length /
mode->control_properties.exposure_factor;

I got it from imx185.c Where “val” is a value getting from gstreamer.

In most cases it works correct. But starting from val >= 8000 gstreamer val just oscillate between two values.
For example 8333 and 16666.

Is it possible to control exposure step at gstreamer side?

Only able control the exposuretimerange by gstreamer.
Get the information from gst-inspect-1.0 nvarguscamewrasrc.

I tried change exposuretimerange, it does not help.
Can you guide me where exposure step val calculated? In gstreamer or nvarguscamewrasrc?

If set the range to 10000 12000 didn’t help that could be the sensor driver’s problem.
BTW the AE calculated didn’t public in any source.