All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org, hverkuil@xs4all.nl
Subject: Re: [PATCH v5 4/4] media-ctl: List supported media bus formats
Date: Thu, 25 Feb 2016 23:38:02 +0200	[thread overview]
Message-ID: <7141573.SjGf7uf7rF@avalon> (raw)
In-Reply-To: <1456331128-7036-5-git-send-email-sakari.ailus@linux.intel.com>

Hi Sakari,

Thank you for the patch.

On Wednesday 24 February 2016 18:25:28 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 | 39 +++++++++++++++++++++++++++++++++++----
>  1 file changed, 35 insertions(+), 4 deletions(-)
> 
> diff --git a/utils/media-ctl/options.c b/utils/media-ctl/options.c
> index 0afc9c2..ac78564 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>
> 
> @@ -48,6 +50,7 @@ static void usage(const char *argv0)
>  	printf("-h, --help		Show verbose help and exit\n");
>  	printf("-i, --interactive	Modify links interactively\n");
>  	printf("-l, --links links	Comma-separated list of link descriptors to
> setup\n");
> +	printf("    --known-mbus-fmts	List known media bus formats and their
> numeric values\n");

I still prefer help topics :-( The rest looks good to me, so

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

but if we can convince Hans about --help= please use that :-)

>  	printf("-p, --print-topology	Print the device topology\n");
>  	printf("    --print-dot		Print the device topology as a dot
> graph\n");
>  	printf("-r, --reset		Reset all links to inactive\n");
> @@ -88,9 +91,10 @@ static void usage(const char *argv0)
>  		       v4l2_subdev_field_to_string(i));
>  }
> 
> -#define OPT_PRINT_DOT		256
> -#define OPT_GET_FORMAT		257
> -#define OPT_SET_DV		258
> +#define OPT_PRINT_DOT			256
> +#define OPT_GET_FORMAT			257
> +#define OPT_SET_DV			258
> +#define OPT_LIST_KNOWN_MBUS_FMTS	259
> 
>  static struct option opts[] = {
>  	{"device", 1, 0, 'd'},
> @@ -103,6 +107,7 @@ static struct option opts[] = {
>  	{"help", 0, 0, 'h'},
>  	{"interactive", 0, 0, 'i'},
>  	{"links", 1, 0, 'l'},
> +	{"known-mbus-fmts", 0, 0, OPT_LIST_KNOWN_MBUS_FMTS},
>  	{"print-dot", 0, 0, OPT_PRINT_DOT},
>  	{"print-topology", 0, 0, 'p'},
>  	{"reset", 0, 0, 'r'},
> @@ -110,6 +115,27 @@ static struct option opts[] = {
>  	{ },
>  };
> 
> +static void list_known_mbus_formats(void)
> +{
> +	unsigned int ncodes;
> +	const unsigned int *code = v4l2_subdev_pixelcode_list(&ncodes);
> +
> +	while (ncodes--) {
> +		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("%s %*c 0x%8.8x\n", str, spaces, ' ', *code);
> +
> +		code++;
> +	}
> +}
> +
>  int parse_cmdline(int argc, char **argv)
>  {
>  	int opt;
> @@ -120,7 +146,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:hil:prvV:",
> +				  opts, NULL)) != -1) {
>  		switch (opt) {
>  		case 'd':
>  			media_opts.devname = optarg;
> @@ -177,6 +204,10 @@ int parse_cmdline(int argc, char **argv)
>  			media_opts.dv_pad = optarg;
>  			break;
> 
> +		case OPT_LIST_KNOWN_MBUS_FMTS:
> +			list_known_mbus_formats();
> +			exit(0);
> +
>  		default:
>  			printf("Invalid option -%c\n", opt);
>  			printf("Run %s -h for help.\n", argv[0]);

-- 
Regards,

Laurent Pinchart


  reply	other threads:[~2016-02-25 21:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-24 16:25 [PATCH v5 0/4] List supported formats in libv4l2subdev Sakari Ailus
2016-02-24 16:25 ` [PATCH v5 1/4] v4l: libv4lsubdev: Make mbus_formats array const Sakari Ailus
2016-02-24 16:25 ` [PATCH v5 2/4] libv4l2subdev: Use generated format definitions in libv4l2subdev Sakari Ailus
2016-02-24 16:25 ` [PATCH v5 3/4] libv4l2subdev: Add a function to list library supported pixel codes Sakari Ailus
2016-02-25 21:30   ` Laurent Pinchart
2016-02-24 16:25 ` [PATCH v5 4/4] media-ctl: List supported media bus formats Sakari Ailus
2016-02-25 21:38   ` Laurent Pinchart [this message]
2016-02-25 21:48     ` Sakari Ailus
2016-02-25 21:52     ` Sakari Ailus
2016-02-25 21:52       ` [v4l-utils PATCH v5.1 " 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=7141573.SjGf7uf7rF@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=hverkuil@xs4all.nl \
    --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.