Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-112138

Unable to set exposure compensation using setExposureCompensation() on macOS, Windows, and Linux

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P3: Somewhat important
    • None
    • 5.15.13, 6.2.8
    • Multimedia
    • None
    • Linux/Wayland, Linux/X11, macOS, Windows

    Description

      Description:

      The setExposureCompensation the function is not working as expected on macOS, Windows, and Linux platforms. The function is supposed to set the exposure compensation to the given value and emit the exposureCompensationChanged signal, but on these platforms, the signal is not being emitted, and the exposure is not being set.

      Steps to reproduce:

      1. Build and Run camera example on macOS/Windows/Linux

      2. Try to adjust exposure using the slider widget.

      I have made some debugging-related changes to the existing example, as listed below.

      code changes for debugging: 

       

      void Camera::setExposureCompensation(int index)
      {
          m_camera->setExposureCompensation(index*0.5);
          qDebug() << "sent exposure value:" << (index*0.5);
      }void Camera::fetchUpdatedExposureCompensation(float value)
      {
          qDebug() << "received exposure value" << value;
      } 

      console output on macOS:

       

       

      12:44:41: Starting /Users/alberrizwan/Qt/Examples/Qt-6.2.8/multimediawidgets/build-camera-Qt_6_2_8_for_macOS-Debug/camera.app/Contents/MacOS/camera... Detected system locale encoding (US-ASCII, locale "C") is not UTF-8. Qt shall use a UTF-8 locale ("UTF-8") instead. If this causes problems, reconfigure your locale. See the locale(1) manual for more information. 
      sent exposure value: 0.5 
      sent exposure value: 0.5
      sent exposure value: 1 
      sent exposure value: 1 

      console output on Android(expected output):

       

      D libcamera_arm64-v8a.so: received exposure value 0.500001
      D libcamera_arm64-v8a.so: sent exposure value: 0.5
      D libcamera_arm64-v8a.so: sent exposure value: 0.5
      D libcamera_arm64-v8a.so: received exposure value 1
      D libcamera_arm64-v8a.so: sent exposure value: 1
      D libcamera_arm64-v8a.so: sent exposure value: 1 

       

       

      I am not sure why the sent exposure value is printed twice and also why the received exposure value is printed before the sent exposure value I hope you can guide me If There's a better way to do this.😊 Thanks!

       

      Expected behavior:

      The setExposureCompensation the function should set the exposure compensation to the given value and emit the exposureCompensationChanged signal on all supported platforms.

      Actual behavior:

      The exposureCompensationChanged the signal is not emitted on macOS, Windows, and Linux platforms, and the exposure compensation value is not updated.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              dorisverria Doris Verria
              alrizwan Alber Rizwan
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes