diff options
| author | 2013-03-13 21:42:35 +0000 | |
|---|---|---|
| committer | 2013-03-13 21:42:35 +0000 | |
| commit | 2530b32de5c609fc6738b292baaf540e4ac10cd7 (patch) | |
| tree | baaebbe586763d6ec6ff44a9457b4da688c00cf0 | |
| parent | 8be3bc4a3d586903ca5e29c24bb81b3c781c2f81 (diff) | |
| parent | 4a05f436989a49e06ec762aac9507ad13fcc5e23 (diff) | |
Merge "remove uses of Surface in favor of IGraphicBufferProducer" into jb-mr2-dev
| -rw-r--r-- | core/jni/android_hardware_Camera.cpp | 8 | ||||
| -rw-r--r-- | core/jni/android_view_Surface.cpp | 13 | ||||
| -rw-r--r-- | media/jni/android_media_MediaRecorder.cpp | 2 |
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; } } |