diff options
author | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2015-09-24 16:58:36 +0200 |
---|---|---|
committer | Yoann Lopes <yoann.lopes@theqtcompany.com> | 2015-12-04 11:41:25 +0000 |
commit | 8debbfbc9b7fe035362afc3838e7cec595efb394 (patch) | |
tree | 8005f427792db96e33b8100fa72e27cdf1a3e26e /src/plugins/android/src/qandroidmediaserviceplugin.cpp | |
parent | ece9005efe62b297ada062411d255200c7ff124e (diff) |
Android: support non OpenGL video surfaces for the camera.
QCamera can now pass raw frame data to its QAbstractVideoSurface.
The now deprecated Android camera API we're using doesn't allow to
get frame data without also displaying the frames in a SurfaceView
or a SurfaceTexture. To work around that, an invisible dummy
SurfaceView is used.
This allows to retrieve frames in the NV21, YV12, YUY2 or RGB565
formats, depending on the Android version and on the device.
Task-number: QTBUG-35416
Change-Id: I77b4f50505c3b91efb4b2288a57f50398922c0db
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
Diffstat (limited to 'src/plugins/android/src/qandroidmediaserviceplugin.cpp')
-rw-r--r-- | src/plugins/android/src/qandroidmediaserviceplugin.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/plugins/android/src/qandroidmediaserviceplugin.cpp b/src/plugins/android/src/qandroidmediaserviceplugin.cpp index 5d35ddf51..bf89badb3 100644 --- a/src/plugins/android/src/qandroidmediaserviceplugin.cpp +++ b/src/plugins/android/src/qandroidmediaserviceplugin.cpp @@ -43,6 +43,7 @@ #include "androidcamera.h" #include "androidmultimediautils.h" #include "androidmediarecorder.h" +#include "androidsurfaceview.h" #include <qdebug.h> QT_BEGIN_NAMESPACE @@ -160,7 +161,8 @@ Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void * /*reserved*/) if (!AndroidMediaPlayer::initJNI(jniEnv) || !AndroidCamera::initJNI(jniEnv) || - !AndroidMediaRecorder::initJNI(jniEnv)) { + !AndroidMediaRecorder::initJNI(jniEnv) || + !AndroidSurfaceHolder::initJNI(jniEnv)) { return JNI_ERR; } |