Camera: Don't skip ZSL frames for fixed focus sensors

ZSL frames were getting completely discarded in case of fixed
focus camera sensors. This can have performance impact for
legacy camera clients.

Bug: 80482772
Test: Manual using application,
Camera CTS
Change-Id: Ic98c8624226e960cffdcbfcee0b3e34adaf720fb
gugelfrei
Emilian Peev 6 years ago
parent 7e8214620e
commit 33f5b8c456

@ -802,29 +802,25 @@ nsecs_t ZslProcessor::getCandidateTimestampLocked(size_t* metadataIdx) const {
__FUNCTION__);
continue;
}
uint8_t afMode = entry.data.u8[0];
if (afMode == ANDROID_CONTROL_AF_MODE_OFF) {
// Skip all the ZSL buffer for manual AF mode, as we don't really
// know the af state.
continue;
}
// Check AF state if device has focuser and focus mode isn't fixed
if (mHasFocuser && !isFixedFocusMode(afMode)) {
// Make sure the candidate frame has good focus.
entry = frame.find(ANDROID_CONTROL_AF_STATE);
if (entry.count == 0) {
ALOGW("%s: ZSL queue frame has no AF state field!",
__FUNCTION__);
continue;
}
uint8_t afState = entry.data.u8[0];
if (afState != ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED &&
afState != ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED &&
afState != ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED) {
ALOGVV("%s: ZSL queue frame AF state is %d is not good for capture, skip it",
__FUNCTION__, afState);
continue;
if (mHasFocuser) {
uint8_t afMode = entry.data.u8[0];
if (!isFixedFocusMode(afMode)) {
// Make sure the candidate frame has good focus.
entry = frame.find(ANDROID_CONTROL_AF_STATE);
if (entry.count == 0) {
ALOGW("%s: ZSL queue frame has no AF state field!",
__FUNCTION__);
continue;
}
uint8_t afState = entry.data.u8[0];
if (afState != ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED &&
afState != ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED &&
afState != ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED) {
ALOGVV("%s: ZSL queue frame AF state is %d is not good for capture,"
" skip it", __FUNCTION__, afState);
continue;
}
}
}

Loading…
Cancel
Save