@@ -79,6 +79,7 @@ enum Option {
OptMediaBusInfo = 'z',
OptStreamFrom = 128,
OptStreamFromHdr,
+ OptVersion,
OptLast = 256
};
@@ -153,9 +154,29 @@ static struct option long_options[] = {
{"stream-all-formats", optional_argument, 0, OptStreamAllFormats},
{"stream-all-io", no_argument, 0, OptStreamAllIO},
{"stream-all-color", required_argument, 0, OptStreamAllColorTest},
+ {"version", no_argument, 0, OptVersion},
{0, 0, 0, 0}
};
+static void print_sha()
+{
+#ifdef SHA
+#define STR(x) #x
+#define STRING(x) STR(x)
+ printf("v4l2-compliance SHA: %s", STRING(SHA));
+#else
+ printf("v4l2-compliance SHA: not available\n");
+#endif
+
+ printf(", %zd bits, %zd-bit time_t\n", sizeof(void *) * 8, sizeof(time_t) * 8);
+ printf("\n");
+}
+
+static void version()
+{
+ printf("v4l2-compliance " PACKAGE_VERSION "\n");
+}
+
static void usage()
{
printf("Usage:\n");
@@ -244,6 +265,7 @@ static void usage()
printf(" -P, --no-progress Turn off progress messages.\n");
printf(" -T, --trace Trace all called ioctls.\n");
printf(" -v, --verbose Turn on verbose reporting.\n");
+ printf(" --version Show version information.\n");
#ifndef NO_LIBV4L2
printf(" -w, --wrapper Use the libv4l2 wrapper library.\n");
#endif
@@ -1485,17 +1507,6 @@ int main(int argc, char **argv)
char *value, *subs;
int idx = 0;
-#ifdef SHA
-#define STR(x) #x
-#define STRING(x) STR(x)
- printf("v4l2-compliance SHA: %s", STRING(SHA));
-#else
- printf("v4l2-compliance SHA: not available\n");
-#endif
-
- printf(", %zd bits, %zd-bit time_t\n", sizeof(void *) * 8, sizeof(time_t) * 8);
- printf("\n");
-
if (!env_media_apps_color || !strcmp(env_media_apps_color, "auto"))
show_colors = isatty(STDOUT_FILENO);
else if (!strcmp(env_media_apps_color, "always"))
@@ -1664,6 +1675,10 @@ int main(int argc, char **argv)
case OptNoProgress:
no_progress = true;
break;
+ case OptVersion:
+ version();
+ print_sha();
+ std::exit(EXIT_SUCCESS);
case ':':
fprintf(stderr, "Option `%s' requires a value\n",
argv[optind]);
@@ -1685,6 +1700,9 @@ int main(int argc, char **argv)
usage();
std::exit(EXIT_FAILURE);
}
+
+ print_sha();
+
bool direct = !options[OptUseWrapper];
int fd;
Add a --version option to v4l2-compliance to retrieve the version of v4l2-compliance. While at it, factor out and reorder printing the SHA to after argument parsing. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> --- utils/v4l2-compliance/v4l2-compliance.cpp | 40 ++++++++++++++++------- 1 file changed, 29 insertions(+), 11 deletions(-)