diff options
3 files changed, 29 insertions, 34 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/multimedia/QtCamera2.java b/src/android/jar/src/org/qtproject/qt/android/multimedia/QtCamera2.java index a2a1b98d8..9b93e2f42 100644 --- a/src/android/jar/src/org/qtproject/qt/android/multimedia/QtCamera2.java +++ b/src/android/jar/src/org/qtproject/qt/android/multimedia/QtCamera2.java @@ -81,22 +81,24 @@ public class QtCamera2 { public void onConfigureFailed(CameraCaptureSession cameraCaptureSession) { onCaptureSessionConfigureFailed(mCameraId); } - }; - native void onCaptureSessionStarted(String cameraId, long timestamp, long frameNumber); - native void onCaptureSessionCompleted(String cameraId, long frameNumber); - native void onCaptureSessionFailed(String cameraId, int reason, long frameNumber); - CameraCaptureSession.CaptureCallback mCaptureCallback = new CameraCaptureSession.CaptureCallback() { @Override - public void onCaptureStarted(CameraCaptureSession session, CaptureRequest request, long timestamp, long frameNumber) { - super.onCaptureStarted(session, request, timestamp, frameNumber); - onCaptureSessionStarted(mCameraId,timestamp,frameNumber); + public void onActive(CameraCaptureSession cameraCaptureSession) { + super.onActive(cameraCaptureSession); + onSessionActive(mCameraId); } - public void onCaptureCompleted(CameraCaptureSession session, CaptureRequest request, TotalCaptureResult result) { - super.onCaptureCompleted(session,request,result); - onCaptureSessionCompleted(mCameraId,result.getFrameNumber()); + + @Override + public void onClosed(CameraCaptureSession cameraCaptureSession) { + super.onClosed(cameraCaptureSession); + onSessionClosed(mCameraId); } + }; + native void onSessionActive(String cameraId); + native void onSessionClosed(String cameraId); + native void onCaptureSessionFailed(String cameraId, int reason, long frameNumber); + CameraCaptureSession.CaptureCallback mCaptureCallback = new CameraCaptureSession.CaptureCallback() { public void onCaptureFailed(CameraCaptureSession session, CaptureRequest request, CaptureFailure failure) { super.onCaptureFailed(session, request, failure); onCaptureSessionFailed(mCameraId, failure.getReason(), failure.getFrameNumber()); diff --git a/src/plugins/multimedia/ffmpeg/qandroidcamera.cpp b/src/plugins/multimedia/ffmpeg/qandroidcamera.cpp index d6f8bc84b..e66c685f4 100644 --- a/src/plugins/multimedia/ffmpeg/qandroidcamera.cpp +++ b/src/plugins/multimedia/ffmpeg/qandroidcamera.cpp @@ -352,21 +352,15 @@ void QAndroidCamera::onCameraError(int reason) QString("Capture error with Camera %1. Camera2 Api error code: %2") .arg(m_cameraDevice.description()) .arg(reason)); - setState(State::Closed); } -void QAndroidCamera::onCaptureSessionStarted(long timestamp, long frameNumber) +void QAndroidCamera::onSessionActive() { - Q_UNUSED(timestamp); - Q_UNUSED(frameNumber); - setState(State::Started); } -void QAndroidCamera::onCaptureSessionCompleted(long frameNumber) +void QAndroidCamera::onSessionClosed() { - Q_UNUSED(frameNumber); - setState(State::Closed); } @@ -453,37 +447,36 @@ static void onCaptureSessionConfigureFailed(JNIEnv *env, jobject obj, jstring ca } Q_DECLARE_JNI_NATIVE_METHOD(onCaptureSessionConfigureFailed) -static void onCaptureSessionStarted(JNIEnv *env, jobject obj, jstring cameraId, jlong timestamp, - jlong framenumber) +static void onSessionActive(JNIEnv *env, jobject obj, jstring cameraId) { Q_UNUSED(env); Q_UNUSED(obj); GET_CAMERA(cameraId); - camera->onCaptureSessionStarted(timestamp, framenumber); + camera->onSessionActive(); } -Q_DECLARE_JNI_NATIVE_METHOD(onCaptureSessionStarted) +Q_DECLARE_JNI_NATIVE_METHOD(onSessionActive) -static void onCaptureSessionFailed(JNIEnv *env, jobject obj, jstring cameraId, jint reason, - jlong framenumber) +static void onSessionClosed(JNIEnv *env, jobject obj, jstring cameraId) { Q_UNUSED(env); Q_UNUSED(obj); GET_CAMERA(cameraId); - camera->onCaptureSessionFailed(reason, framenumber); + camera->onSessionClosed(); } -Q_DECLARE_JNI_NATIVE_METHOD(onCaptureSessionFailed) +Q_DECLARE_JNI_NATIVE_METHOD(onSessionClosed) -static void onCaptureSessionCompleted(JNIEnv *env, jobject obj, jstring cameraId, jlong framenumber) +static void onCaptureSessionFailed(JNIEnv *env, jobject obj, jstring cameraId, jint reason, + jlong framenumber) { Q_UNUSED(env); Q_UNUSED(obj); GET_CAMERA(cameraId); - camera->onCaptureSessionCompleted(framenumber); + camera->onCaptureSessionFailed(reason, framenumber); } -Q_DECLARE_JNI_NATIVE_METHOD(onCaptureSessionCompleted) +Q_DECLARE_JNI_NATIVE_METHOD(onCaptureSessionFailed) bool QAndroidCamera::registerNativeMethods() { @@ -496,10 +489,10 @@ bool QAndroidCamera::registerNativeMethods() Q_JNI_NATIVE_METHOD(onCameraError), Q_JNI_NATIVE_METHOD(onCaptureSessionConfigured), Q_JNI_NATIVE_METHOD(onCaptureSessionConfigureFailed), - Q_JNI_NATIVE_METHOD(onCaptureSessionStarted), Q_JNI_NATIVE_METHOD(onCaptureSessionFailed), - Q_JNI_NATIVE_METHOD(onCaptureSessionCompleted), Q_JNI_NATIVE_METHOD(onFrameAvailable), + Q_JNI_NATIVE_METHOD(onSessionActive), + Q_JNI_NATIVE_METHOD(onSessionClosed), }); }(); diff --git a/src/plugins/multimedia/ffmpeg/qandroidcamera_p.h b/src/plugins/multimedia/ffmpeg/qandroidcamera_p.h index 829de14cb..7a2152ebf 100644 --- a/src/plugins/multimedia/ffmpeg/qandroidcamera_p.h +++ b/src/plugins/multimedia/ffmpeg/qandroidcamera_p.h @@ -43,9 +43,9 @@ public slots: void onFrameAvailable(QJniObject frame); void onCaptureSessionConfigured(); void onCaptureSessionConfigureFailed(); - void onCaptureSessionStarted(long timestamp, long frameNumber); - void onCaptureSessionCompleted(long frameNumber); void onCaptureSessionFailed(int reason, long frameNumber); + void onSessionActive(); + void onSessionClosed(); private: void setState(State newState); |