From: Hans Verkuil <hverkuil@xs4all.nl>
To: Sakari Ailus <sakari.ailus@linux.intel.com>, linux-media@vger.kernel.org
Cc: laurent.pinchart@ideasonboard.com
Subject: Re: [v4l-utils PATCH 4/4] media-ctl: List supported media bus formats
Date: Tue, 23 Feb 2016 13:18:53 +0100 [thread overview]
Message-ID: <56CC4E2D.7010702@xs4all.nl> (raw)
In-Reply-To: <1456090187-1191-5-git-send-email-sakari.ailus@linux.intel.com>
On 02/21/16 22:29, Sakari Ailus wrote:
> Add a new topic option for -h to allow listing supported media bus codes
> in conversion functions. This is useful in figuring out which media bus
> codes are actually supported by the library. The numeric values of the
> codes are listed as well.
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> ---
> utils/media-ctl/options.c | 42 ++++++++++++++++++++++++++++++++++++++----
> 1 file changed, 38 insertions(+), 4 deletions(-)
>
> diff --git a/utils/media-ctl/options.c b/utils/media-ctl/options.c
> index 0afc9c2..55cdd29 100644
> --- a/utils/media-ctl/options.c
> +++ b/utils/media-ctl/options.c
> @@ -22,7 +22,9 @@
> #include <getopt.h>
> #include <stdio.h>
> #include <stdlib.h>
> +#include <string.h>
> #include <unistd.h>
> +#include <v4l2subdev.h>
>
> #include <linux/videodev2.h>
>
> @@ -45,7 +47,8 @@ static void usage(const char *argv0)
> printf("-V, --set-v4l2 v4l2 Comma-separated list of formats to setup\n");
> printf(" --get-v4l2 pad Print the active format on a given pad\n");
> printf(" --set-dv pad Configure DV timings on a given pad\n");
> - printf("-h, --help Show verbose help and exit\n");
> + printf("-h, --help[=topic] Show verbose help and exit\n");
> + printf(" topics: mbus-fmt: List supported media bus pixel codes\n");
OK, this is ugly. It has nothing to do with usage help.
Just make a new option --list-mbus-fmts to list supported media bus pixel codes.
That would make much more sense.
Regards,
Hans
> printf("-i, --interactive Modify links interactively\n");
> printf("-l, --links links Comma-separated list of link descriptors to setup\n");
> printf("-p, --print-topology Print the device topology\n");
> @@ -100,7 +103,7 @@ static struct option opts[] = {
> {"get-format", 1, 0, OPT_GET_FORMAT},
> {"get-v4l2", 1, 0, OPT_GET_FORMAT},
> {"set-dv", 1, 0, OPT_SET_DV},
> - {"help", 0, 0, 'h'},
> + {"help", 2, 0, 'h'},
> {"interactive", 0, 0, 'i'},
> {"links", 1, 0, 'l'},
> {"print-dot", 0, 0, OPT_PRINT_DOT},
> @@ -110,6 +113,27 @@ static struct option opts[] = {
> { },
> };
>
> +void list_mbus_formats(void)
> +{
> + unsigned int ncodes;
> + const unsigned int *code = v4l2_subdev_pixelcode_list(&ncodes);
> +
> + printf("Supported media bus pixel codes\n");
> +
> + for (ncodes++; ncodes; ncodes--, code++) {
> + const char *str = v4l2_subdev_pixelcode_to_string(*code);
> + int spaces = 30 - (int)strlen(str);
> +
> + if (*code == 0)
> + break;
> +
> + if (spaces < 0)
> + spaces = 0;
> +
> + printf("\t%s %*c (0x%8.8x)\n", str, spaces, ' ', *code);
> + }
> +}
> +
> int parse_cmdline(int argc, char **argv)
> {
> int opt;
> @@ -120,7 +144,8 @@ int parse_cmdline(int argc, char **argv)
> }
>
> /* parse options */
> - while ((opt = getopt_long(argc, argv, "d:e:f:hil:prvV:", opts, NULL)) != -1) {
> + while ((opt = getopt_long(argc, argv, "d:e:f:h::il:prvV:",
> + opts, NULL)) != -1) {
> switch (opt) {
> case 'd':
> media_opts.devname = optarg;
> @@ -142,7 +167,16 @@ int parse_cmdline(int argc, char **argv)
> break;
>
> case 'h':
> - usage(argv[0]);
> + if (optarg) {
> + if (!strcmp(optarg, "mbus-fmt"))
> + list_mbus_formats();
> + else
> + fprintf(stderr,
> + "Unknown topic \"%s\"\n",
> + optarg);
> + } else {
> + usage(argv[0]);
> + }
> exit(0);
>
> case 'i':
>
next prev parent reply other threads:[~2016-02-23 12:18 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-21 21:29 [v4l-utils PATCH 0/4] List supported formats in libv4l2subdev Sakari Ailus
2016-02-21 21:29 ` [v4l-utils PATCH 1/4] v4l: libv4lsubdev: Make mbus_formats array const Sakari Ailus
2016-02-21 21:29 ` [v4l-utils PATCH 2/4] libv4l2subdev: Use generated format definitions in libv4l2subdev Sakari Ailus
2016-02-21 21:29 ` [v4l-utils PATCH 3/4] libv4l2subdev: Add a function to list library supported pixel codes Sakari Ailus
2016-02-23 12:37 ` Hans Verkuil
2016-02-23 15:58 ` Sakari Ailus
2016-02-21 21:29 ` [v4l-utils PATCH 4/4] media-ctl: List supported media bus formats Sakari Ailus
2016-02-23 12:18 ` Hans Verkuil [this message]
2016-02-23 16:11 ` Sakari Ailus
2016-02-23 16:15 ` Hans Verkuil
2016-02-23 20:15 ` Laurent Pinchart
2016-02-23 20:24 ` Sakari Ailus
2016-02-23 20:30 ` Laurent Pinchart
2016-02-24 8:35 ` Sakari Ailus
2016-02-24 15:38 ` Hans Verkuil
2016-02-24 15:41 ` Sakari Ailus
2016-02-24 15:44 ` Sakari Ailus
2016-02-23 12:35 ` Hans Verkuil
-- strict thread matches above, loose matches on Subject: below --
2015-11-09 13:25 [v4l-utils PATCH 0/4] List supported formats in libv4l2subdev Sakari Ailus
2015-11-09 13:25 ` [v4l-utils PATCH 4/4] media-ctl: List supported media bus formats Sakari Ailus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56CC4E2D.7010702@xs4all.nl \
--to=hverkuil@xs4all.nl \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=sakari.ailus@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.