2

I'm working with the Android NDK's camera API, and I currently have ACAMERA_CONTROL_AE_MODE turned off, so that I can set exposure time and framerate manually for motion blur related reasons. However, I'd still like to have automatic control for the gain/sensitivity/ISO.

As far as I can tell, the API has exposure, gain, and framerate all bundled together in its auto-exposure mode, so I haven't found a way to do this. On iOS, there's a value called exposureTargetOffset, which gives the difference between the current exposure value and the value that auto-exposure would have set exposure to, which can be used as a workaround to do auto-gain. However, I haven't found anything like this in the Android camera API either. I've also tried turning AE on, locking AE, and then setting gain indirectly via exposure compensation, but as far as I can tell in my experiments, setting the EV with AE locked also changes exposure time and framerate.

Has anyone come across any solutions to this that they could share? Any help would be much appreciated.

RKRK
  • 1,284
  • 5
  • 14
  • 18
daveboat
  • 167
  • 4
  • As a quick follow-up to this, apparently there's the ANDROID_CONTROL_CAPTURE_INTENT_MOTION_TRACKING capture mode which limits auto-exposure to 20 ms maximum, though this doesn't appear to be supported on my Pixel 2 XL running Android 9. Is there maybe a way to set a range (for exposure, framerate) that the auto-exposure algorithm is allowed to set? – daveboat Jun 30 '19 at 19:18

0 Answers0