Argus camera dynamic brightness control using setExposureCompensation() in mmapi

Hi,
In my application, it is initialising the dual camera with AE, AWB, etc, and then stream them.
while streaming, I need to control the brightness by changing EV using setExposureCompensation() in the callback function by SIGNAL.

However, setExposureCompensation is working in the initialisation step, but after starting capturing it is not changing to the brightness eventhough it is successfully called in the callback function as below.

Sould I stop the capturing when I need to change the EV value?
Here are the code snippet of initialization and the call back function.

Thank you.

Initalization

//auto
    m_iAutoControlSettings = interface_cast<IAutoControlSettings>(
                                              m_iRequest->getAutoControlSettings());

    //AE Compensation
    //-2.0f ~ 2.0f
    Argus::Status result = m_iAutoControlSettings->setExposureCompensation(m_target_brightness_ev);
    printf("iAutoControlSettings->setExposureCompensation result = %d\n", result);

    signal(SIGUSR2, argusCallbackHandler);
    m_logger->info("set the argues callback handler");

    ...
    m_iCaptureSession->repeat(m_request.get())
    ...

in the callback function

/// argus request
    Request *req = m_iCaptureSession->createRequest();
    IRequest *ireq = interface_cast<IRequest>(req);
    if (!ireq) m_logger->warn("Failed to create IRequest interface");
    ireq->enableOutputStream(m_streamLeft.get());

    IAutoControlSettings *iAutoControlSettings = interface_cast<IAutoControlSettings>(
                                              ireq->getAutoControlSettings());
    if (!m_iAutoControlSettings) {
        m_logger->info("Failed to create IAutoControlSettings interface");
    }
 
    Argus::Status result = iAutoControlSettings->setExposureCompensation(new_target_brightness);
    m_logger->info("iAutoControlSettings->setExposureCompensation result = {}", result);

Suppose shouldn’t have any restricted.
Please verify by argus_camera GUI

Thanks

found out that you should let the capture know the updated request.

so do this below again.
m_iCaptureSession->repeat(m_request.get())

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