diff options
| author | 2011-06-23 13:02:40 -0700 | |
|---|---|---|
| committer | 2011-06-23 13:02:40 -0700 | |
| commit | b950b8e23e18cbe23069b791bca93c8cfbbab5ce (patch) | |
| tree | 2d916950915f40a4b067f2f9415b0b2762cd232a | |
| parent | 58b868417755805ebdfe4feb65664ad98c00bf35 (diff) | |
| parent | 925bcaabde5a21687b51caa7ab329310a819f068 (diff) | |
Merge "Fix the issue where onFrameAvailable is not triggered if SurfaceTexture is in sync mode."
| -rw-r--r-- | core/jni/android/graphics/SurfaceTexture.cpp | 9 | ||||
| -rw-r--r-- | graphics/java/android/graphics/SurfaceTexture.java | 5 |
2 files changed, 13 insertions, 1 deletions
diff --git a/core/jni/android/graphics/SurfaceTexture.cpp b/core/jni/android/graphics/SurfaceTexture.cpp index 0d28cb179358..a8cb6f753565 100644 --- a/core/jni/android/graphics/SurfaceTexture.cpp +++ b/core/jni/android/graphics/SurfaceTexture.cpp @@ -212,6 +212,12 @@ static jlong SurfaceTexture_getTimestamp(JNIEnv* env, jobject thiz) return surfaceTexture->getTimestamp(); } +static jint SurfaceTexture_getQueuedCount(JNIEnv* env, jobject thiz) +{ + sp<SurfaceTexture> surfaceTexture(SurfaceTexture_getSurfaceTexture(env, thiz)); + return surfaceTexture->getQueuedCount(); +} + // ---------------------------------------------------------------------------- static JNINativeMethod gSurfaceTextureMethods[] = { @@ -221,7 +227,8 @@ static JNINativeMethod gSurfaceTextureMethods[] = { {"nativeSetDefaultBufferSize", "(II)V", (void*)SurfaceTexture_setDefaultBufferSize }, {"nativeUpdateTexImage", "()V", (void*)SurfaceTexture_updateTexImage }, {"nativeGetTransformMatrix", "([F)V", (void*)SurfaceTexture_getTransformMatrix }, - {"nativeGetTimestamp", "()J", (void*)SurfaceTexture_getTimestamp } + {"nativeGetTimestamp", "()J", (void*)SurfaceTexture_getTimestamp }, + {"nativeGetQueuedCount", "()I", (void*)SurfaceTexture_getQueuedCount } }; int register_android_graphics_SurfaceTexture(JNIEnv* env) diff --git a/graphics/java/android/graphics/SurfaceTexture.java b/graphics/java/android/graphics/SurfaceTexture.java index 6c7341f7346a..9e498d0fea9c 100644 --- a/graphics/java/android/graphics/SurfaceTexture.java +++ b/graphics/java/android/graphics/SurfaceTexture.java @@ -131,6 +131,10 @@ public class SurfaceTexture { */ public void updateTexImage() { nativeUpdateTexImage(); + if (nativeGetQueuedCount() > 0) { + Message m = mEventHandler.obtainMessage(); + mEventHandler.sendMessage(m); + } } /** @@ -215,6 +219,7 @@ public class SurfaceTexture { private native long nativeGetTimestamp(); private native void nativeSetDefaultBufferSize(int width, int height); private native void nativeUpdateTexImage(); + private native int nativeGetQueuedCount(); /* * We use a class initializer to allow the native code to cache some |