validate:ssim: Inform about min average and min minimum similarities
authorThibault Saunier <tsaunier@gnome.org>
Thu, 18 Jun 2015 09:09:26 +0000 (11:09 +0200)
committerThibault Saunier <tsaunier@gnome.org>
Wed, 24 Jun 2015 14:25:24 +0000 (16:25 +0200)
validate/gst-libs/gst/video/gstvalidatessim.c
validate/plugins/ssim/gstvalidatessim.c
validate/tools/gst-validate-images-check.c

index 1a63c23..8bbdc95 100644 (file)
@@ -736,6 +736,7 @@ _check_directory (GstValidateSsim * self, const gchar * ref_dir,
   gboolean res = TRUE;
   GFileInfo *info;
   GFileEnumerator *fenum;
+  gfloat min_avg = 1.0, min_min = 1.0, total_avg = 0;
   GFile *file = g_file_new_for_path (ref_dir);
 
   if (!(fenum = g_file_enumerate_children (file,
@@ -773,6 +774,9 @@ _check_directory (GstValidateSsim * self, const gchar * ref_dir,
         }
       }
 
+      min_avg = MIN (min_avg, *mean);
+      min_min = MIN (min_min, *lowest);
+      total_avg += *mean;
       gst_validate_printf (NULL,
           "<position: %s duration: %" GST_TIME_FORMAT
           " avg: %f min: %f (Passed: %d failed: %d, %d not found)/>\r",
@@ -787,6 +791,10 @@ _check_directory (GstValidateSsim * self, const gchar * ref_dir,
     g_object_unref (info);
   }
 
+  gst_validate_printf (NULL,
+      "\nAverage similarity: %f, min_avg: %f, min_min: %f\n",
+      total_avg / nfiles, min_avg, min_min);
+
 done:
   gst_object_unref (file);
   if (fenum)
index 3442c1c..56fad97 100644 (file)
@@ -201,7 +201,8 @@ runner_stopping (GstValidateRunner * runner, ValidateSsimOverride * self)
   guint i, nfiles;
   gfloat mssim = 0, lowest = 1, highest = -1, total_avg = 0;
   gint npassed = 0, nfailures = 0;
-  gdouble min_avg_similarity = 0.95, min_lowest_similarity = -1.0;
+  gdouble min_avg_similarity = 0.95, min_lowest_similarity = -1.0,
+      min_avg = 1.0, min_min = 1.0;
   const gchar *compared_files_dir =
       gst_structure_get_string (self->priv->config,
       "reference-images-dir");
@@ -245,17 +246,21 @@ runner_stopping (GstValidateRunner * runner, ValidateSsimOverride * self)
     else
       npassed++;
 
+    min_avg = MIN (min_avg, mssim);
+    min_min = MIN (lowest, min_min);
     total_avg += mssim;
     gst_validate_printf (NULL,
         "<position: %" GST_TIME_FORMAT " duration: %" GST_TIME_FORMAT
-        " %d / %d avg: %f min: %f (Passed: %d failed: %d)/>\r",
+        " %d / %d avg: %f min: %f (Passed: %d failed: %d)/>\n",
         GST_TIME_ARGS (frame->position), GST_TIME_ARGS (GST_CLOCK_TIME_NONE),
         i + 1, nfiles, mssim, lowest, npassed, nfailures);
 
     g_free (bname);
   }
 
-  gst_validate_printf (NULL, "\nAverage similarity: %f\n", total_avg / nfiles);
+  gst_validate_printf (NULL,
+      "\nAverage similarity: %f, min_avg: %f, min_min: %f\n",
+      total_avg / nfiles, min_avg, min_min);
 }
 
 static void
index 9c7302e..b4b2fbd 100644 (file)
@@ -94,6 +94,11 @@ main (int argc, char **argv)
   gst_validate_ssim_compare_image_files (ssim, argv[1], argv[2], &mssim,
       &lowest, &highest, outfolder);
 
+  if (!g_file_test (argv[1], G_FILE_TEST_IS_DIR)) {
+    gst_validate_printf (ssim, "Compared %s with %s, average: %f, Min %f\n",
+        argv[1], argv[2], mssim, lowest);
+  }
+
   rep_err = gst_validate_runner_exit (runner, TRUE);
   if (ret == 0) {
     ret = rep_err;