summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/multimedia/QtCamera2.java24
-rw-r--r--src/plugins/multimedia/ffmpeg/qandroidcamera.cpp35
-rw-r--r--src/plugins/multimedia/ffmpeg/qandroidcamera_p.h4
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);