tools: Count argc after parsing GOption on Windows
authorSeungha Yang <seungha@centricular.com>
Thu, 30 Mar 2023 19:40:58 +0000 (04:40 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Sat, 1 Apr 2023 00:14:57 +0000 (00:14 +0000)
Existing codes rely on modified argc value by g_option_context_parse()
but g_option_context_parse_strv() is used in case of Windows.
Count arguments after the option parsing manually.
Fixing command "gst-inspect-1.0.exe -b"

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4322>

subprojects/gst-plugins-bad/tools/gst-transcoder.c
subprojects/gst-plugins-base/tools/gst-device-monitor.c
subprojects/gst-plugins-base/tools/gst-discoverer.c
subprojects/gst-plugins-base/tools/gst-play.c
subprojects/gstreamer/tools/gst-inspect.c
subprojects/gstreamer/tools/gst-launch.c
subprojects/gstreamer/tools/gst-stats.c
subprojects/gstreamer/tools/gst-typefind.c

index dccf3eb..b7a7673 100644 (file)
@@ -373,6 +373,10 @@ real_main (int argc, char *argv[])
     g_option_context_free (ctx);
     return 1;
   }
+#ifdef G_OS_WIN32
+  argc = g_strv_length (argv);
+#endif
+
   gst_pb_utils_init ();
 
   if (settings.list) {
index aa65f59..8edc740 100644 (file)
@@ -337,6 +337,10 @@ real_main (int argc, char **argv)
   }
   g_option_context_free (ctx);
 
+#ifdef G_OS_WIN32
+  argc = g_strv_length (argv);
+#endif
+
   GST_DEBUG_CATEGORY_INIT (devmon_debug, "device-monitor", 0,
       "gst-device-monitor");
 
index a50f5aa..b042be5 100644 (file)
@@ -685,6 +685,10 @@ real_main (int argc, char **argv)
 
   g_option_context_free (ctx);
 
+#ifdef G_OS_WIN32
+  argc = g_strv_length (argv);
+#endif
+
   if (argc < 2) {
     g_print ("usage: %s <uris>\n", argv[0]);
     exit (-1);
index ee8847d..83ec344 100644 (file)
@@ -1711,6 +1711,10 @@ real_main (int argc, char **argv)
   }
   g_option_context_free (ctx);
 
+#ifdef G_OS_WIN32
+  argc = g_strv_length (argv);
+#endif
+
   GST_DEBUG_CATEGORY_INIT (play_debug, "play", 0, "gst-play");
 
   if (print_version) {
index b8550ea..069754e 100644 (file)
@@ -2187,6 +2187,10 @@ real_main (int argc, char *argv[])
   gst_init (&argc, &argv);
 #endif
 
+#if defined(G_OS_WIN32) && !defined(GST_CHECK_MAIN)
+  argc = g_strv_length (argv);
+#endif
+
   gst_tools_print_version ();
 
   if (print_all && argc > 1) {
index 9ad8a4f..efc76fd 100644 (file)
@@ -1178,6 +1178,10 @@ real_main (int argc, char *argv[])
   gst_init (&argc, &argv);
 #endif
 
+#ifdef G_OS_WIN32
+  argc = g_strv_length (argv);
+#endif
+
   gst_tools_print_version ();
 
 #ifdef G_OS_UNIX
index 57a5a26..18d0e6a 100644 (file)
@@ -1301,6 +1301,10 @@ main (gint argc, gchar * argv[])
   }
   g_option_context_free (ctx);
 
+#ifdef G_OS_WIN32
+  argc = g_strv_length (argv);
+#endif
+
   gst_tools_print_version ();
 
   if (filenames == NULL || *filenames == NULL) {
index 7f0b4db..38fc894 100644 (file)
@@ -177,6 +177,10 @@ real_main (int argc, char *argv[])
   }
   g_option_context_free (ctx);
 
+#ifdef G_OS_WIN32
+  argc = g_strv_length (argv);
+#endif
+
   gst_tools_print_version ();
 
   if (filenames == NULL || *filenames == NULL) {