We are developing a media server that uses GstPTZR to send a subsection of a 4K image captured with an IMX477 sensor, using nvarguscamerasrc on JetPack 5.1.2. Our logic adjusts the aeregion according to the section currently being viewed by the PTZR element, but we’ve encountered some restrictions. We wanted to confirm our findings and better understand the actual limitations:
The width and height of the aeregion must be greater than 256.
The width and height must not be an odd number (we are currently using multiples of 10 to avoid errors).
There is a delay between setting the aeregion and being able to safely set a different region. Initially, we were setting the aeregion too quickly, causing the daemon to crash. Limiting the updates to once per second resolved the issue, but we would like to know the exact restriction.
Can you confirm these limitations and provide an explanation or details on the real limits for the aeregion?
>> Q1. there’s no such limitation of AeRegion size, did you seen any failure reported?
[EDIT] there did have minimum window size, (i.e. 256x256) to make sure enough pixels are considered for averaging to reduce noise and spikes.
please also check with Argus::ICameraProperties::getMinAeRegionSize() for confirmation.
FYI, the AE algorithm currently does not ignore completely outside setAeRegion(), instead, it gives more weights to the selected region.
>>Q2.
yes, we usually use even number to specify ROI.
>>Q3.
please refer to developer guide, Argus::IAutoControlSettings::setAeRegions(), and Argus::ICaptureSession::repeat().
you should calling repeat() again to update your capture settings, repeat() is a convenience method that will queue a request whenever the request queue is empty and the camera is ready to accept new requests.
for instance, iAutoSettings->setAeRegions(); iSession->repeat();
When we set a small region we get this error and the capture freezes:
Oct 03 20:53:31 ubuntu nvargus-daemon[79944]: (Autocontrol) Error BadParameter: NvIspAeSetUpLac1Settings: effective image region [162x1100] is too small (in src/algorithms/ae/ae_metering.cpp, function N>
Oct 03 20:53:31 ubuntu nvargus-daemon[79944]: (Autocontrol) Error BadParameter: AE failed to grab PCL metadata
Oct 03 20:53:31 ubuntu nvargus-daemon[79944]: (in src/algorithms/ae/ae_main.cpp, function run(), line 858)
Oct 03 20:53:31 ubuntu nvargus-daemon[79944]: SCF: Error Timeout: (propagating from src/api/Buffer.cpp, function waitForUnlock(), line 644)
Oct 03 20:53:31 ubuntu nvargus-daemon[79944]: SCF: Error Timeout: (propagating from src/components/CaptureContainerImpl.cpp, function returnBuffer(), line 426)
That error was generated when trying to set aeregion in nvarguscamerasrc to 2000 200 2160 1300 0.25
nvarguscamerasrc is changing the aeregion correctly, but if the property is changed too quickly, the daemon crashes.
let me revise my previous comments about AeRegion size,
there did have minimum window size, (i.e. 256x256) to make sure enough pixels are considered for averaging to reduce noise and spikes.
may I know what’s your steps to reproduce this issue on developer kit locally?