Questions about auto exposure and AE lock

I have some questions about auto exposure and AE lock. My use case is that besides Libargus, I have another process which sets the exposure time.

  1. If I set the exposure time range to a specific value, let’s say 20ms, in Libargus, and the other process sets to a different value, will Libargus try to set the exposure time to 20ms?
  2. What if I set AE lock to be true? If the other process sets the value to 30ms, will Libargus still try to set the exposure time back to 20ms? Or when AE lock is true, Libargus will not try to change the exposure time any more?

Thank you for your help!

hello suchao,

may I have more details about… the other process.
for instance, did you had different application to access to the same camera stream?

Yes. We have another application which can directly access the same image sensor driver to set the gain and exposure. But that application is only for controlling the image sensor but not for data handling.

hello suchao,

may I have your confirmation…
are you going to stream your bayer sensor with Argus, and, toggling gain/exposure controls manually?

you may using argus_camera sample application, which has user-interface for sensor operations.
besides, it’s possible to stream with Argus (aelock), and alter gain/exposure controls via v4l2-ctl.

Thank you very much for your reply.

If I stream with Argus (aelock) and change gain/exposure via v4l2-ctl, will Argus try to set the gain and exposure values to the ones before aelock happens? Or if aelock is true, then Argus won’t control gain and exposure anymore no matter which values they have?

hello suchao,

once you’ve enable AELock, only the later sensor operations take effects, Argus will not overwrite the settings.

you may give it a try, here given an example,
enable camera preview.
$ gst-launch-1.0 nvarguscamerasrc aelock=1 ! 'video/x-raw(memory:NVMM),framerate=30/1,format=NV12' ! nvvidconv ! xvimagesink
control gain/exposure via v4l2 IOCTL.
$ v4l2-ctl --set-ctrl gain=xxx
you may also running with --get-ctrl to review your settings.

Thank you for your reply!

I have a follow up question.

If I just want to use Libargus API to change the gain and exposure when AELock is true, do I need to disable AELock and then change the value and then enable AELock again? Basically, which one in the following list is correct way to change the gain and exposure with AELock being enabled? (Let’s say the initial state is that AELock is enabled and the gain value is 10 dB. I want to change the gain to 15 dB and still keep AELock enabled.)

  1. Set the gain range to [15 15].
  2. Disable AELock → set the gain range to [15 15] → enable AELock
  3. Set the gain range to [15 15] → disable AELock → enable AELock

I guess changing exposure will have the same steps as above example, right?

hello suchao,

you should keep aelock=1 always for toggling specific AE settings.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.