diff options
author | Yoann Lopes <yoann.lopes@digia.com> | 2013-09-27 18:20:15 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-01 17:26:31 +0200 |
commit | 28df116570a1359585a314df17223a7b0e6b04c0 (patch) | |
tree | b59c62b7ef35d6a7219210cda0e94871b75a04da /src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCamera.java | |
parent | be7a6241e77f67e4a19c63ac5683dd7fa566e9d2 (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.java | 17 |
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); } |