|
|
|
@ -61,7 +61,7 @@ static void onSessionClosed(void* context, ACameraCaptureSession *session)
|
|
|
|
|
|
|
|
|
|
void onCaptureFailed(void* context, ACameraCaptureSession* session, ACaptureRequest* request, ACameraCaptureFailure* failure)
|
|
|
|
|
{
|
|
|
|
|
ALOGW("onCaptureFailed %p %p %p", session, request, failure);
|
|
|
|
|
ALOGW("onCaptureFailed session=%p request=%p reason=%d", session, request, failure->reason);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void onCaptureSequenceCompleted(void* context, ACameraCaptureSession* session, int sequenceId, int64_t frameNumber)
|
|
|
|
@ -361,7 +361,7 @@ int NdkCamera::open(const std::string& cameraId) {
|
|
|
|
|
|
|
|
|
|
// ANativeWindow_setBuffersGeometry(image_reader_surface, width, height,WINDOW_FORMAT_RGBX_8888);
|
|
|
|
|
|
|
|
|
|
ANativeWindow_acquire(image_reader_surface);
|
|
|
|
|
// ANativeWindow_acquire(image_reader_surface);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ALOGW("open %s %d", camera_id.c_str(), camera_orientation);
|
|
|
|
@ -486,6 +486,8 @@ int NdkCamera::open(const std::string& cameraId) {
|
|
|
|
|
|
|
|
|
|
void NdkCamera::close()
|
|
|
|
|
{
|
|
|
|
|
camera_status_t res = ACAMERA_OK;
|
|
|
|
|
|
|
|
|
|
if (capture_session)
|
|
|
|
|
{
|
|
|
|
|
ACameraCaptureSession_stopRepeating(capture_session);
|
|
|
|
@ -493,16 +495,14 @@ void NdkCamera::close()
|
|
|
|
|
capture_session = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (capture_session_output)
|
|
|
|
|
if (image_reader_target)
|
|
|
|
|
{
|
|
|
|
|
ACaptureSessionOutput_free(capture_session_output);
|
|
|
|
|
capture_session_output = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (capture_session_output_container)
|
|
|
|
|
if (capture_request)
|
|
|
|
|
{
|
|
|
|
|
ACaptureSessionOutputContainer_free(capture_session_output_container);
|
|
|
|
|
capture_session_output_container = 0;
|
|
|
|
|
res = ACaptureRequest_removeTarget(capture_request, image_reader_target);
|
|
|
|
|
}
|
|
|
|
|
ACameraOutputTarget_free(image_reader_target);
|
|
|
|
|
image_reader_target = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (capture_request)
|
|
|
|
@ -511,15 +511,9 @@ void NdkCamera::close()
|
|
|
|
|
capture_request = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (image_reader_target)
|
|
|
|
|
{
|
|
|
|
|
ACameraOutputTarget_free(image_reader_target);
|
|
|
|
|
image_reader_target = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (image_reader_surface)
|
|
|
|
|
{
|
|
|
|
|
ANativeWindow_release(image_reader_surface);
|
|
|
|
|
// ANativeWindow_release(image_reader_surface);
|
|
|
|
|
image_reader_surface = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -529,6 +523,22 @@ void NdkCamera::close()
|
|
|
|
|
image_reader = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (capture_session_output)
|
|
|
|
|
{
|
|
|
|
|
if (capture_session_output_container)
|
|
|
|
|
{
|
|
|
|
|
ACaptureSessionOutputContainer_remove(capture_session_output_container, capture_session_output);
|
|
|
|
|
}
|
|
|
|
|
ACaptureSessionOutput_free(capture_session_output);
|
|
|
|
|
capture_session_output = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (capture_session_output_container)
|
|
|
|
|
{
|
|
|
|
|
ACaptureSessionOutputContainer_free(capture_session_output_container);
|
|
|
|
|
capture_session_output_container = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (camera_device)
|
|
|
|
|
{
|
|
|
|
|
ACameraDevice_close(camera_device);
|
|
|
|
|