summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mathias Agopian <mathias@google.com> 2013-03-13 21:42:35 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2013-03-13 21:42:35 +0000
commit2530b32de5c609fc6738b292baaf540e4ac10cd7 (patch)
treebaaebbe586763d6ec6ff44a9457b4da688c00cf0
parent8be3bc4a3d586903ca5e29c24bb81b3c781c2f81 (diff)
parent4a05f436989a49e06ec762aac9507ad13fcc5e23 (diff)
Merge "remove uses of Surface in favor of IGraphicBufferProducer" into jb-mr2-dev
-rw-r--r--core/jni/android_hardware_Camera.cpp8
-rw-r--r--core/jni/android_view_Surface.cpp13
-rw-r--r--media/jni/android_media_MediaRecorder.cpp2
3 files changed, 17 insertions, 6 deletions
diff --git a/core/jni/android_hardware_Camera.cpp b/core/jni/android_hardware_Camera.cpp
index 6fbaaf2735e9..686e4e311e9e 100644
--- a/core/jni/android_hardware_Camera.cpp
+++ b/core/jni/android_hardware_Camera.cpp
@@ -544,13 +544,17 @@ static void android_hardware_Camera_setPreviewDisplay(JNIEnv *env, jobject thiz,
sp<Camera> camera = get_native_camera(env, thiz, NULL);
if (camera == 0) return;
+ sp<IGraphicBufferProducer> gbp;
sp<Surface> surface;
if (jSurface) {
surface = android_view_Surface_getSurface(env, jSurface);
+ if (surface != NULL) {
+ gbp = surface->getIGraphicBufferProducer();
+ }
}
- if (camera->setPreviewDisplay(surface) != NO_ERROR) {
- jniThrowException(env, "java/io/IOException", "setPreviewDisplay failed");
+ if (camera->setPreviewTexture(gbp) != NO_ERROR) {
+ jniThrowException(env, "java/io/IOException", "setPreviewTexture failed");
}
}
diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp
index 0104f4bfce50..9c78abee08ac 100644
--- a/core/jni/android_view_Surface.cpp
+++ b/core/jni/android_view_Surface.cpp
@@ -27,6 +27,8 @@
#include <android_runtime/android_view_Surface.h>
#include <android_runtime/android_graphics_SurfaceTexture.h>
+#include <binder/Parcel.h>
+
#include <gui/Surface.h>
#include <gui/SurfaceControl.h>
#include <gui/GLConsumer.h>
@@ -334,10 +336,15 @@ static jint nativeReadFromParcel(JNIEnv* env, jclass clazz,
if (self != NULL) {
self->decStrong(&sRefBaseOwner);
}
- sp<Surface> sur(Surface::readFromParcel(*parcel));
- if (sur != NULL) {
+
+ sp<Surface> sur;
+ sp<IGraphicBufferProducer> gbp(
+ interface_cast<IGraphicBufferProducer>(parcel->readStrongBinder()));
+ if (gbp != NULL) {
+ sur = new Surface(gbp);
sur->incStrong(&sRefBaseOwner);
}
+
return int(sur.get());
}
@@ -349,7 +356,7 @@ static void nativeWriteToParcel(JNIEnv* env, jclass clazz,
return;
}
sp<Surface> self(reinterpret_cast<Surface *>(nativeObject));
- Surface::writeToParcel(self, parcel);
+ parcel->writeStrongBinder( self != 0 ? self->getIGraphicBufferProducer()->asBinder() : NULL);
}
// ----------------------------------------------------------------------------
diff --git a/media/jni/android_media_MediaRecorder.cpp b/media/jni/android_media_MediaRecorder.cpp
index 4ebbbde1fd72..98885911b86f 100644
--- a/media/jni/android_media_MediaRecorder.cpp
+++ b/media/jni/android_media_MediaRecorder.cpp
@@ -327,7 +327,7 @@ android_media_MediaRecorder_prepare(JNIEnv *env, jobject thiz)
}
ALOGI("prepare: surface=%p", native_surface.get());
- if (process_media_recorder_call(env, mr->setPreviewSurface(native_surface), "java/lang/RuntimeException", "setPreviewSurface failed.")) {
+ if (process_media_recorder_call(env, mr->setPreviewSurface(native_surface->getIGraphicBufferProducer()), "java/lang/RuntimeException", "setPreviewSurface failed.")) {
return;
}
}