gst-launch: exit with an error code when an error occured
authorPhilippe Normand <philn@igalia.com>
Thu, 14 Nov 2013 14:32:59 +0000 (15:32 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Mon, 25 Nov 2013 11:12:39 +0000 (12:12 +0100)
If the pipeline failed to pre-roll or the user interrupted the
execution then set the exit code to a positive value.

https://bugzilla.gnome.org/show_bug.cgi?id=712300

tools/gst-launch.c

index b5f0438..280b428 100644 (file)
@@ -1044,6 +1044,7 @@ main (int argc, char *argv[])
         caught_error = event_loop (pipeline, TRUE, TRUE, GST_STATE_PAUSED);
         if (caught_error) {
           g_printerr (_("ERROR: pipeline doesn't want to preroll.\n"));
+          res = caught_error;
           goto end;
         }
         state = GST_STATE_PAUSED;
@@ -1057,6 +1058,7 @@ main (int argc, char *argv[])
 
     if (caught_error) {
       g_printerr (_("ERROR: pipeline doesn't want to preroll.\n"));
+      res = caught_error;
     } else {
       GstClockTime tfthen, tfnow;
       GstClockTimeDiff diff;
@@ -1105,10 +1107,12 @@ main (int argc, char *argv[])
           } else if (caught_error == ELR_INTERRUPT) {
             PRINT (_
                 ("Interrupt while waiting for EOS - stopping pipeline...\n"));
+            res = caught_error;
             break;
           } else if (caught_error == ELR_ERROR) {
             if (!ignore_errors) {
               PRINT (_("An error happened while waiting for EOS\n"));
+              res = caught_error;
               break;
             }
           }