diff options
author | Liang Qi <liang.qi@qt.io> | 2016-08-17 10:48:30 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-08-17 10:48:30 +0200 |
commit | b4f2dc4f62b2cb4bd9c43de56bbfd0024404c190 (patch) | |
tree | b4a71b9a45b1c1c3adf21cdc49de68f9c86b1e9c /src/plugins/android/jar/src/org/qtproject/qt5/android | |
parent | 393602150d1f3eec25252aa40045f9e24ae5329b (diff) | |
parent | 820205e604a5f281238c23464638fdff72b969d1 (diff) |
Merge remote-tracking branch 'origin/5.7' into dev
Change-Id: Ib8d05d6e21c7beb19f618cd1edc52d248b1e43b8
Diffstat (limited to 'src/plugins/android/jar/src/org/qtproject/qt5/android')
-rw-r--r-- | src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCameraListener.java | 30 |
1 files changed, 24 insertions, 6 deletions
diff --git a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCameraListener.java b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCameraListener.java index 57700cd75..49cb0a947 100644 --- a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCameraListener.java +++ b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtCameraListener.java @@ -57,6 +57,7 @@ public class QtCameraListener implements Camera.ShutterCallback, private int m_cameraId = -1; private boolean m_notifyNewFrames = false; + private boolean m_notifyWhenFrameAvailable = false; private byte[][] m_previewBuffers = null; private byte[] m_lastPreviewBuffer = null; private Camera.Size m_previewSize = null; @@ -73,6 +74,11 @@ public class QtCameraListener implements Camera.ShutterCallback, m_notifyNewFrames = notify; } + public void notifyWhenFrameAvailable(boolean notify) + { + m_notifyWhenFrameAvailable = notify; + } + public byte[] lastPreviewBuffer() { return m_lastPreviewBuffer; @@ -104,11 +110,16 @@ public class QtCameraListener implements Camera.ShutterCallback, return m_previewBytesPerLine; } + public void clearPreviewCallback(Camera camera) + { + camera.setPreviewCallbackWithBuffer(null); + } + public void setupPreviewCallback(Camera camera) { // Clear previous callback (also clears added buffers) + clearPreviewCallback(camera); m_lastPreviewBuffer = null; - camera.setPreviewCallbackWithBuffer(null); final Camera.Parameters params = camera.getParameters(); m_previewSize = params.getPreviewSize(); @@ -164,11 +175,17 @@ public class QtCameraListener implements Camera.ShutterCallback, m_lastPreviewBuffer = data; - if (data != null && m_notifyNewFrames) { - notifyNewPreviewFrame(m_cameraId, data, - m_previewSize.width, m_previewSize.height, - m_previewFormat, - m_previewBytesPerLine); + if (data != null) { + if (m_notifyWhenFrameAvailable) { + m_notifyWhenFrameAvailable = false; + notifyFrameAvailable(m_cameraId); + } + if (m_notifyNewFrames) { + notifyNewPreviewFrame(m_cameraId, data, + m_previewSize.width, m_previewSize.height, + m_previewFormat, + m_previewBytesPerLine); + } } } @@ -195,4 +212,5 @@ public class QtCameraListener implements Camera.ShutterCallback, private static native void notifyPictureCaptured(int id, byte[] data); private static native void notifyNewPreviewFrame(int id, byte[] data, int width, int height, int pixelFormat, int bytesPerLine); + private static native void notifyFrameAvailable(int id); } |