Add fps print in glimagesink

In GST-1.6, Pipeline will set start time to 0 when state
change form PAUSE to READY, so get start time in state change
PLAYING_PAUSE.

Upstream-Status: Inappropriate [i.MX specific]

Signed-off-by: Haihua Hu <b55597@freescale.com>

Conflicts:
	ext/gl/gstglimagesink.h
diff --git a/ext/gl/gstglimagesink.c b/ext/gl/gstglimagesink.c
index 493c420..102c766 100644
--- a/ext/gl/gstglimagesink.c
+++ b/ext/gl/gstglimagesink.c
@@ -773,6 +773,8 @@
   glimage_sink->overlay_compositor = NULL;
   glimage_sink->cropmeta = NULL;
   glimage_sink->prev_cropmeta = NULL;
+  glimage_sink->frame_showed = 0;
+  glimage_sink->run_time = 0;
 
   glimage_sink->mview_output_mode = DEFAULT_MULTIVIEW_MODE;
   glimage_sink->mview_output_flags = DEFAULT_MULTIVIEW_FLAGS;
@@ -1175,7 +1177,10 @@
 
   switch (transition) {
     case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+    {
+      glimage_sink->run_time = gst_element_get_start_time (GST_ELEMENT (glimage_sink));
       break;
+    }
     case GST_STATE_CHANGE_PAUSED_TO_READY:
     {
       GstBuffer *buf[2];
@@ -1267,6 +1272,14 @@
         g_slice_free(GstVideoCropMeta, glimage_sink->prev_cropmeta);
       glimage_sink->prev_cropmeta = NULL;
 
+      if (glimage_sink->run_time > 0) {
+        g_print ("Total showed frames (%lld), playing for (%"GST_TIME_FORMAT"), fps (%.3f).\n",
+                glimage_sink->frame_showed, GST_TIME_ARGS (glimage_sink->run_time),
+                (gfloat)GST_SECOND * glimage_sink->frame_showed / glimage_sink->run_time);
+      }
+
+      glimage_sink->frame_showed = 0;
+      glimage_sink->run_time = 0;
       break;
     default:
       break;
@@ -1779,6 +1792,8 @@
     return GST_FLOW_ERROR;
   }
 
+  glimage_sink->frame_showed++;
+
   return GST_FLOW_OK;
 
 /* ERRORS */
diff --git a/ext/gl/gstglimagesink.h b/ext/gl/gstglimagesink.h
index 839fbe4..439b2e3 100644
--- a/ext/gl/gstglimagesink.h
+++ b/ext/gl/gstglimagesink.h
@@ -144,6 +144,10 @@
     GstGLRotateMethod current_rotate_method;
     GstGLRotateMethod rotate_method;
     const gfloat *transform_matrix;
+
+    /* fps print support */
+    guint64 frame_showed;
+    GstClockTime run_time;
 };
 
 struct _GstGLImageSinkClass