From 91f987fd9937c59473c79fdad8faff0357052203 Mon Sep 17 00:00:00 2001 From: BlueMatthew Date: Wed, 17 Jan 2024 15:38:44 +0800 Subject: [PATCH] =?UTF-8?q?=20=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/cpp/camera2/ndkcamera.cpp | 31 ++++++++++++++----- .../com/xypower/mpapp/ChannelActivity.java | 1 - 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/app/src/main/cpp/camera2/ndkcamera.cpp b/app/src/main/cpp/camera2/ndkcamera.cpp index 1ca37387..3694a22c 100644 --- a/app/src/main/cpp/camera2/ndkcamera.cpp +++ b/app/src/main/cpp/camera2/ndkcamera.cpp @@ -23,21 +23,24 @@ #include "Camera2Helper.h" #include +#include + static void onAvailabilityCallback(void* context, const char* cameraId) { ((NdkCamera*)context)->onAvailabilityCallback(cameraId); - ALOGI("CameraStatus::onAvailability CameraId: %s", cameraId); + // ALOGI("CameraStatus::onAvailability CameraId: %s", cameraId); + XYLOG(XYLOG_SEVERITY_INFO, "CameraStatus::onAvailability CameraId: %s", cameraId); } static void onUnavailabilityCallback(void* context, const char* cameraId) { ((NdkCamera*)context)->onUnavailabilityCallback(cameraId); - ALOGI("CameraStatus::onUnavailability CameraId: %s", cameraId); + XYLOG(XYLOG_SEVERITY_INFO, "CameraStatus::onUnavailability CameraId: %s", cameraId); } static void onDisconnected(void* context, ACameraDevice* device) { - ALOGI("CameraStatus::onDisconnected CameraId: %s", ACameraDevice_getId(device)); + XYLOG(XYLOG_SEVERITY_INFO, "CameraStatus::onDisconnected CameraId: %s", ACameraDevice_getId(device)); } static void onError(void* context, ACameraDevice* device, int error) @@ -47,7 +50,7 @@ static void onError(void* context, ACameraDevice* device, int error) } - ALOGE("CameraStatus::onError CameraId: %s err=%d", ACameraDevice_getId(device), error); + XYLOG(XYLOG_SEVERITY_ERROR, "CameraStatus::onError CameraId: %s err=%d", ACameraDevice_getId(device), error); std::string msg = "NdkCamera error code=" + std::to_string(error); ((NdkCamera*)context)->on_error(msg); // __android_log_print(ANDROID_LOG_WARN, "NdkCamera", "onError %p %d", device, error); @@ -75,7 +78,7 @@ static void onSessionClosed(void* context, ACameraCaptureSession *session) void onCaptureFailed(void* context, ACameraCaptureSession* session, ACaptureRequest* request, ACameraCaptureFailure* failure) { - ALOGW("onCaptureFailed session=%p request=%p reason=%d", session, request, failure->reason); + XYLOG(XYLOG_SEVERITY_WARNING, "onCaptureFailed session=%p request=%p reason=%d", session, request, failure->reason); } void onCaptureSequenceCompleted(void* context, ACameraCaptureSession* session, int sequenceId, int64_t frameNumber) @@ -159,7 +162,6 @@ int NdkCamera::open(const std::string& cameraId) { DisplayDimension disp(mWidth, mHeight); DisplayDimension foundRes = disp; - ALOGD("Start ACameraManager_getCameraIdList"); { ACameraIdList *camera_id_list = 0; @@ -382,6 +384,7 @@ int NdkCamera::open(const std::string& cameraId) { listener.context = this; listener.onImageAvailable = ::onImageAvailable; + AImageReader_setO AImageReader_setImageListener(image_reader, &listener); AImageReader_getWindow(image_reader, &image_reader_surface); @@ -721,17 +724,29 @@ void NdkCamera::on_image(const unsigned char* nv21, int nv21_width, int nv21_hei cv::Mat nv21_rotated; const unsigned char* yuv420data = nv21; // TODO !!!??? + /* + if (camera_->GetSensorOrientation(&facing, &angle)) { + if (facing == ACAMERA_LENS_FACING_FRONT) { + imageRotation = (angle + rotation_) % 360; + imageRotation = (360 - imageRotation) % 360; + } else { + imageRotation = (angle - rotation_ + 360) % 360; + } + } + */ + // int co = camera_orientation > 0 ? camera_orientation + 90 : camera_orientation; if (m_params.orientation != 0) { int co = 0; if (camera_facing == ACAMERA_LENS_FACING_FRONT) { - co = (camera_orientation - (m_params.orientation - 1) * 90 + 360) % 360; + co = (camera_orientation + (m_params.orientation - 1) * 90) % 360; + co = (360 - co) % 360; } else { - co = (camera_orientation + (m_params.orientation - 1) * 90) % 360; + co = (camera_orientation - (m_params.orientation - 1) * 90 + 360) % 360; } // int co = 0; if (co == 0) diff --git a/app/src/main/java/com/xypower/mpapp/ChannelActivity.java b/app/src/main/java/com/xypower/mpapp/ChannelActivity.java index 2fb86319..bc7ebe21 100644 --- a/app/src/main/java/com/xypower/mpapp/ChannelActivity.java +++ b/app/src/main/java/com/xypower/mpapp/ChannelActivity.java @@ -41,7 +41,6 @@ public class ChannelActivity extends AppCompatActivity { getSupportActionBar().setDisplayHomeAsUpEnabled(true); - binding.sensitivity.setOnFocusChangeListener(onFocusChangeListener); binding.exposuretime.setOnFocusChangeListener(onFocusChangeListener);