Resolving the black screen / crash in effects

b:/6278826
The SurfaceTextureTarget Filter was not unregistering the surface
on closing leading to crashes and blank screens.

Change-Id: Ia9f6fc69b92d5a5e2e1e3803969152d11528aa3d
diff --git a/media/mca/filterpacks/java/android/filterpacks/videosrc/SurfaceTextureTarget.java b/media/mca/filterpacks/java/android/filterpacks/videosrc/SurfaceTextureTarget.java
index 436caab..20e4b32 100644
--- a/media/mca/filterpacks/java/android/filterpacks/videosrc/SurfaceTextureTarget.java
+++ b/media/mca/filterpacks/java/android/filterpacks/videosrc/SurfaceTextureTarget.java
@@ -160,9 +160,22 @@
     @Override
     public void open(FilterContext context) {
         // Set up SurfaceTexture internals
-        mSurfaceId = context.getGLEnvironment().registerSurfaceTexture(mSurfaceTexture, mScreenWidth, mScreenHeight);
+        mSurfaceId = context.getGLEnvironment().registerSurfaceTexture(
+            mSurfaceTexture, mScreenWidth, mScreenHeight);
+        if (mSurfaceId <= 0) {
+            throw new RuntimeException("Could not register SurfaceTexture: " + mSurfaceTexture);
+        }
     }
 
+
+    @Override
+    public void close(FilterContext context) {
+        if (mSurfaceId > 0) {
+            context.getGLEnvironment().unregisterSurfaceId(mSurfaceId);
+        }
+    }
+
+
     @Override
     public void process(FilterContext context) {
         if (mLogVerbose) Log.v(TAG, "Starting frame processing");
@@ -173,9 +186,11 @@
         Frame input = pullInput("frame");
         boolean createdFrame = false;
 
-        float currentAspectRatio = (float)input.getFormat().getWidth() / input.getFormat().getHeight();
+        float currentAspectRatio =
+          (float)input.getFormat().getWidth() / input.getFormat().getHeight();
         if (currentAspectRatio != mAspectRatio) {
-            if (mLogVerbose) Log.v(TAG, "New aspect ratio: " + currentAspectRatio +", previously: " + mAspectRatio);
+            if (mLogVerbose) Log.v(TAG, "New aspect ratio: " + currentAspectRatio +
+                ", previously: " + mAspectRatio);
             mAspectRatio = currentAspectRatio;
             updateTargetRect();
         }