|
|
|
@ -87,7 +87,7 @@ CameraDevice::CameraDevice(
|
|
|
|
|
__FUNCTION__, strerror(-err), err);
|
|
|
|
|
setCameraDeviceErrorLocked(ACAMERA_ERROR_CAMERA_DEVICE);
|
|
|
|
|
}
|
|
|
|
|
mHandler = new CallbackHandler();
|
|
|
|
|
mHandler = new CallbackHandler(id);
|
|
|
|
|
mCbLooper->registerHandler(mHandler);
|
|
|
|
|
|
|
|
|
|
const CameraMetadata& metadata = mChars->getInternalData();
|
|
|
|
@ -918,6 +918,8 @@ CameraDevice::onCaptureErrorLocked(
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CameraDevice::CallbackHandler::CallbackHandler(const char *id) : mId(id) { }
|
|
|
|
|
|
|
|
|
|
void CameraDevice::CallbackHandler::onMessageReceived(
|
|
|
|
|
const sp<AMessage> &msg) {
|
|
|
|
|
switch (msg->what()) {
|
|
|
|
@ -1012,9 +1014,9 @@ void CameraDevice::CallbackHandler::onMessageReceived(
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
sp<ACameraCaptureSession> session(static_cast<ACameraCaptureSession*>(obj.get()));
|
|
|
|
|
ACameraDevice* device = session->getDevice();
|
|
|
|
|
mCachedSessions.push(session);
|
|
|
|
|
sp<CaptureRequest> requestSp = nullptr;
|
|
|
|
|
const char *id_cstr = mId.c_str();
|
|
|
|
|
switch (msg->what()) {
|
|
|
|
|
case kWhatCaptureStart:
|
|
|
|
|
case kWhatCaptureResult:
|
|
|
|
@ -1063,7 +1065,7 @@ void CameraDevice::CallbackHandler::onMessageReceived(
|
|
|
|
|
ALOGE("%s: Cannot find timestamp!", __FUNCTION__);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, device->getId());
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, id_cstr);
|
|
|
|
|
(*onStart)(context, session.get(), request, timestamp);
|
|
|
|
|
freeACaptureRequest(request);
|
|
|
|
|
break;
|
|
|
|
@ -1086,7 +1088,7 @@ void CameraDevice::CallbackHandler::onMessageReceived(
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
sp<ACameraMetadata> result(static_cast<ACameraMetadata*>(obj.get()));
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, device->getId());
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, id_cstr);
|
|
|
|
|
(*onResult)(context, session.get(), request, result.get());
|
|
|
|
|
freeACaptureRequest(request);
|
|
|
|
|
break;
|
|
|
|
@ -1139,7 +1141,7 @@ void CameraDevice::CallbackHandler::onMessageReceived(
|
|
|
|
|
physicalMetadataCopyPtrs.push_back(physicalMetadataCopy[i].get());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, device->getId());
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, id_cstr);
|
|
|
|
|
(*onResult)(context, session.get(), request, result.get(),
|
|
|
|
|
physicalResultInfo.size(), physicalCameraIdPtrs.data(),
|
|
|
|
|
physicalMetadataCopyPtrs.data());
|
|
|
|
@ -1168,7 +1170,7 @@ void CameraDevice::CallbackHandler::onMessageReceived(
|
|
|
|
|
static_cast<CameraCaptureFailure*>(obj.get()));
|
|
|
|
|
ACameraCaptureFailure* failure =
|
|
|
|
|
static_cast<ACameraCaptureFailure*>(failureSp.get());
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, device->getId());
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, id_cstr);
|
|
|
|
|
(*onFail)(context, session.get(), request, failure);
|
|
|
|
|
freeACaptureRequest(request);
|
|
|
|
|
break;
|
|
|
|
@ -1201,7 +1203,7 @@ void CameraDevice::CallbackHandler::onMessageReceived(
|
|
|
|
|
failure.physicalCameraId = nullptr;
|
|
|
|
|
}
|
|
|
|
|
failure.captureFailure = *failureSp;
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, device->getId());
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, id_cstr);
|
|
|
|
|
(*onFail)(context, session.get(), request, &failure);
|
|
|
|
|
freeACaptureRequest(request);
|
|
|
|
|
break;
|
|
|
|
@ -1278,7 +1280,7 @@ void CameraDevice::CallbackHandler::onMessageReceived(
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, device->getId());
|
|
|
|
|
ACaptureRequest* request = allocateACaptureRequest(requestSp, id_cstr);
|
|
|
|
|
(*onBufferLost)(context, session.get(), request, anw, frameNumber);
|
|
|
|
|
freeACaptureRequest(request);
|
|
|
|
|
break;
|
|
|
|
|