Add option to reset Android video renderer first frame flag.

This allows to correctly report first frame event in applications which
use same remote video renderer for multiple calls.

R=wzh@webrtc.org

Review URL: https://codereview.webrtc.org/1384353002 .

Cr-Commit-Position: refs/heads/master@{#10176}
diff --git a/talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java b/talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java
index 49a659d..a97b160 100644
--- a/talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java
+++ b/talk/app/webrtc/java/android/org/webrtc/VideoRendererGui.java
@@ -42,7 +42,6 @@
 import android.opengl.GLES20;
 import android.opengl.GLSurfaceView;
 import android.opengl.Matrix;
-import android.util.Log;
 
 import org.webrtc.Logging;
 import org.webrtc.VideoRenderer.I420Frame;
@@ -172,6 +171,10 @@
       rotationDegree = 0;
     }
 
+    public synchronized void reset() {
+      seenFrame = false;
+    }
+
     private synchronized void release() {
       surface = null;
       synchronized (pendingFrameLock) {
@@ -549,7 +552,7 @@
     Logging.d(TAG, "VideoRendererGui.remove");
     if (instance == null) {
       throw new RuntimeException(
-          "Attempt to remove yuv renderer before setting GLSurfaceView");
+          "Attempt to remove renderer before setting GLSurfaceView");
     }
     synchronized (instance.yuvImageRenderers) {
       final int index = instance.yuvImageRenderers.indexOf(renderer);
@@ -561,6 +564,21 @@
     }
   }
 
+  public static synchronized void reset(VideoRenderer.Callbacks renderer) {
+    Logging.d(TAG, "VideoRendererGui.reset");
+    if (instance == null) {
+      throw new RuntimeException(
+          "Attempt to reset renderer before setting GLSurfaceView");
+    }
+    synchronized (instance.yuvImageRenderers) {
+      for (YuvImageRenderer yuvImageRenderer : instance.yuvImageRenderers) {
+        if (yuvImageRenderer == renderer) {
+          yuvImageRenderer.reset();
+        }
+      }
+    }
+  }
+
   @SuppressLint("NewApi")
   @Override
   public void onSurfaceCreated(GL10 unused, EGLConfig config) {