Wanting to write a camera app, how to REALLY control exposure?
Hi there. I hope I'm asking this in the right place, but I have an interest in the inner workings of cameras on android, and how an app could control them effectively.
I have noiticed that most, if not all, android cameras have autoexposure hardwired on, and that this hardware autoexposure is significantly more effective than what is user controllable (brightness sliders and the like in camera apps)
For example, if you are sitting in a dark room, with a bright window. Now matter how low you drop the "exposure slider" in an app, the window will never come into the proper exposure range. Yet, if you actually look out the window with the camera, to where the outside world fills the viewport, the camera will automatically drop into the proper exposure range. This is odd to me... So the camera CAN expose down far enough to make the outside not blown out, but I am not able to control this?
The only explanation I can figure is the exposure on cell cameras works in a two step process.
1. Light hits sensor, sensor uses autoexposure to get the right range, all on it's own (we cant control this, or can we?),
2. and then the software gets the stream and we can adjust it slightly inside of the software side.
So I guess my question is... is it possible to edit step 1? Can we manually adjust the full exposure at the sensor level? I find most HDR apps to be very lacking on Android, and I believe this is the cause. The app literally has no access to change the exposure range. It can only adjust in a small range that is exposed to software after the hardware auto-exposure has done it's magic.
I have hope that this may be changeable, thanks only to one software I have seen that can.. kinda... adjust the hardware exposure. An app called Camera FV-5 on the market, if you go outside, get your exposure correctly, you can then choose AE-L for autoexposure lock, and then go inside and look out that same window, and everything will say exposed as low as you locked it.
If this is possible, that at least means we can allow/disallow the hardware auto-exposure. And if this is possible, maybe more control is too.
Thoughts? My goal is to make a camera app that fully controls settings such as these. At their full range. Let me know what you all think!
(Specifically I am on the LG G2, and would like to get hardware level exposure control on this model, but Id love to expand after I see it's possible, if it is)
Sorry if this is the wrong forum, I am new here. if so Mods please move it for me or let me know where it goes! Thanks!