问题描述
解决方案
- 先看CTS錯誤訊息
Exposure compensation ratio exceeds error tolerence: expected(0.015625) observed(0.062660). Normal exposure time 30000 us, sensitivity 512. Compensated exposure time 8995 us, sensitivity 107, value 4.010270833333333 is out of range [0.8, 1.2]
如果value值都在2.0上下, 且該顆senso為4cell sensor, 可能為是AE以為要切sensor mode來拍照(但實際上沒有), 並且把亮度墊了一倍上去。 請MW 4cell flow這邊檢查是否沒有正確告知AE有沒有在拍照時切成capture mode
- 若value值不規則且非4cell sensor,再從MTK debugger log分析
TestRunner: junit.framework.AssertionFailedError: The static info key 'android.control.aeCompensationRange' range value must be at least [-12, 12], actual [-4, 4], compensation step 1/6
TestRunner: java.lang.Throwable(Test failed for camera 0: Exposure compensation ratio exceeds error tolerence: expected(0.015625) observed(0.062717). Normal exposure time 30000 us, sensitivity 545. Compensated exposure time 8995 us, sensitivity 114, value 4.013915596330275 is out of range [0.8, 1.2])
TestRunner: java.lang.Throwable(Test failed for camera 0: Exposure compensation ratio exceeds error tolerence: expected(0.031250) observed(0.062430). Normal exposure time 30000 us, sensitivity 493. Compensated exposure time 8394 us, sensitivity 110, value 1.997760649087221 is out of range [0.8, 1.2])
TestRunner: java.lang.Throwable(Test failed for camera 0: Exposure compensation ratio exceeds error tolerence: expected(64.000000) observed(16.100899). Normal exposure time 30000 us, sensitivity 514. Compensated exposure time 59999 us, sensitivity 4138, value 0.25157654628728926 is out of range [0.8, 1.2])
若出現'android.control.aeCompensationRange'這一行,代表這顆sensor的metadata被動過,理論上必須符合EV範圍-4~+4且step為1/2,才保證MTK的流程無誤。請客戶自行修改成正確metadata
若沒有上述情況,確認類似ALPS05110467的patch有出現在客戶的code base內
q0.mp1.tc16sp: ALPS05110467
原理
測項在設AE Lock且調EV後過一段時間拍照
需在這段時間內把調完EV後的預覽曝光參數交給拍照曝光參數
上述patch就是在實作這件事