Anaxyrus Americanus,It is not only 64-bit devices. It is actually iOS issue.
My app (Luxi) shows values for the camera settings (aperture, iso, and exposure time) based on camera brightness value.
With iOS8 and earlier calculations were calibrated using light meter device and considered correct.
I had iPhone5 and iPhone5S at my table. Before update to iOS9 values were identical.
I updated iPhone5S to iOS9 and it started to return different values.
Now I have iPhone5/iOS8 and iPhone5S/iOS9 side by side tor testing.
I found that the dependency is not linear.
As a temporary solution for iOS9 I did some measurements and do interpolation between values in total darkness and under the bright lamp.
if (ver >= 9.0) {
// correct value (ios7/8) = ios9_value - offset_value
float a1 = 6.418990; // ios9 value reported by camera in dark room
float a2 = 11.153520; // ios9 value reported by camera under the direct light
float b1 = 8.455; // offset value in dark room (= ios9_value - ios8_value), yes, ios8_value is negative
float b2 = 8.73; // offset value under the direct light ( = ios9_value - ios8_value)
// ios9v - reported brightness value,
// offfset - correction coefficient
// (ios9v - a1)/(a2-a1) = (offset - b1)/(b2-b1)
// (offset - b1) = (ios9v - a1)/(a2-a1) * (b2-b1)
// offset = (ios9v - a1)/(a2-a1) * (b2-b1) + b1
float offsetBrightnessValue = (iOS9BrightnessValue - a1) / (a2 - a1) * (b2 - b1) + b1;
correctBrightness = iOS9BrightnessValue - offsetBrightnessValue;
}
With this workaround my aperture, iso, and exposure time appear to be precise to hundredths