Nvarguscamerasrc's exposuretimerange doesn't work?

Leopard IMX-577 sensor + TX2 devkit.

# R32 (release), REVISION: 3.1, GCID: 18186506, BOARD: t186ref, EABI: aarch64, DATE: Tue Dec 10 07:03:07 UTC 2019
nvarguscamerasrc maxperf=true awblock=true aelock=false exposuretimerange="7000 10000" sensor-id=0 ! ...

This was an experiment (we performed several) and looking at different exposure values from v4lctl while auto-exposure/exposuretimerange are supposed to be honored lead to very misleading results (I am not 100% sure what the exposure units are under v4lctl but even if I compensate for it the camera’s behavior seems very wrong).

Can someone explain to me how exposuretimerange is supposed to work? We are trying to alleviate some pain caused by the aelock function oversaturating images by limiting exposure time. We thought exposuretimerange would solve it but its behavior is not what we expect.

Help!

Not sure, but you may also have to set wbmode to off (0), and maybe further try setting gainrange and ispdigitalgainrange.

That shouldn’t be. AWB shouldn’t effect exposure not should gain (btw, there is also gainrange too but I don’t want that limited since I need gain to be modified for AE).

@alexander.sack
Could you try the exposure range by the argus_camera, you can set the value by the GUI.

Why doesn’t exposuretimerange work?

How does it not working. Did you set the range and didn’t see the effect.
This property is different with the sensor exposure by v4l2-ctl -C exposure, it’s AE alg will run in this range. Have a reference to below link.

We don’t see it taking effect or at least the changes are not readily apparent to us. How can we verify the range is being honored? (obviously sensor exposure via v4l2-ctl is not the right answer).

As far as we can see, the “exposuretimerange” doesn’t do anything (should aelock be on or off, I assume off).

What’s your min_exp_time/max_exp_time define in device tree?

For the reference board ov5693 the value as below, when I set the exposuretimerange=“34000 34000” I can see the preview change to dark and if change to much bigger value the scene change to bright.

gst-launch-1.0 nvarguscamerasrc exposuretimerange="74000 76000" ! 'video/x-raw(memory:NVMM),width=1920,height=1080,format=NV12' ! nvoverlaysink

min_exp_time = "34";/* us */
max_exp_time = "550385";/* us */

Is there any way to get the current exposure time and other metadata for each frame? I am unable to find the syntax to read the value and not set it.

I am using nvarguscamera with gstreamer and opencv with IMX219 CSI camera

nvarguscamerasrc sensor_id=0 ! video/x-raw(memory:NVMM), width=(int)2592, height=(int)1944, exposurecompensation=-2.000000, tnr-mode=1, format=(string)NV12, framerate=(fraction)6/1 ! nvvidconv flip-method=0 ! video/x-raw, width=(int)2592, height=(int)1944, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink

Also, I see barely any difference when setting exposure compensation. I have programmed to create a capture objects with exposure compensation value increased by 1 in the range -2 to 2, waited for the exposure to stabilise, capture one image for each. This is the result… no observable trend

As you can see, I am trying to capture backlit photos and try to focus AE on the face but nothing seems to work

Hi shravya.boggarapu1,

Please help to open a new topic if it’s still an issue. Thanks