summaryrefslogtreecommitdiffstats
path: root/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCamera.java
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2013-09-27 18:20:15 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-01 17:26:31 +0200
commit28df116570a1359585a314df17223a7b0e6b04c0 (patch)
treeb59c62b7ef35d6a7219210cda0e94871b75a04da /src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCamera.java
parentbe7a6241e77f67e4a19c63ac5683dd7fa566e9d2 (diff)
Android: fixed image capture preview.
We used to generate the capture preview from the video output, grabbing the pixels of the last frame (in a FBO). This is not possible anymore, we instead query the camera for a preview frame, which is in the NV21 format and needs to be converted to RGB. Change-Id: I1c728b3a708a6f052a83aebf9f15f511eab7a02f Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Diffstat (limited to 'src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCamera.java')
-rw-r--r--src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCamera.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCamera.java b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCamera.java
index b0a4954cf..3d891196f 100644
--- a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCamera.java
+++ b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCamera.java
@@ -45,7 +45,10 @@ import android.hardware.Camera;
import android.graphics.SurfaceTexture;
import android.util.Log;
-public class QtCamera implements Camera.ShutterCallback, Camera.PictureCallback, Camera.AutoFocusCallback
+public class QtCamera implements Camera.ShutterCallback,
+ Camera.PictureCallback,
+ Camera.AutoFocusCallback,
+ Camera.PreviewCallback
{
private int m_cameraId = -1;
private Camera m_camera = null;
@@ -149,6 +152,11 @@ public class QtCamera implements Camera.ShutterCallback, Camera.PictureCallback,
m_camera.cancelAutoFocus();
}
+ public void requestPreviewFrame()
+ {
+ m_camera.setOneShotPreviewCallback(this);
+ }
+
public void takePicture()
{
try {
@@ -171,6 +179,12 @@ public class QtCamera implements Camera.ShutterCallback, Camera.PictureCallback,
}
@Override
+ public void onPreviewFrame(byte[] data, Camera camera)
+ {
+ notifyPreviewFrame(m_cameraId, data);
+ }
+
+ @Override
public void onAutoFocus(boolean success, Camera camera)
{
notifyAutoFocusComplete(m_cameraId, success);
@@ -179,4 +193,5 @@ public class QtCamera implements Camera.ShutterCallback, Camera.PictureCallback,
private static native void notifyAutoFocusComplete(int id, boolean success);
private static native void notifyPictureExposed(int id);
private static native void notifyPictureCaptured(int id, byte[] data);
+ private static native void notifyPreviewFrame(int id, byte[] data);
}