[PATCH weston] clients/weston-info: print unknown formats better

Eric Engestrom eric.engestrom at imgtec.com
Tue Feb 21 10:01:45 UTC 2017


On Monday, 2017-02-20 15:47:57 +0200, Pekka Paalanen wrote:
> From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> 
> Don't just dump the raw 32-bit values, try to interpret it as a DRM
> fourcc too.
> 
> This prints properly the formats YUYV, NV12 and YU12 supported by
> Weston.
> 
> Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
> ---
>  clients/weston-info.c | 29 ++++++++++++++++++++++++++++-
>  1 file changed, 28 insertions(+), 1 deletion(-)
> 
> diff --git a/clients/weston-info.c b/clients/weston-info.c
> index 712346a..ab12947 100644
> --- a/clients/weston-info.c
> +++ b/clients/weston-info.c
> @@ -30,6 +30,8 @@
>  #include <stdlib.h>
>  #include <string.h>
>  #include <time.h>
> +#include <assert.h>
> +#include <ctype.h>
>  
>  #include <wayland-client.h>
>  
> @@ -240,9 +242,33 @@ print_output_info(void *data)
>  	}
>  }
>  
> +static char
> +bits2graph(uint32_t value, unsigned bitoffset)
> +{
> +	int c = (value >> bitoffset) & 0xff;
> +
> +	if (isgraph(c) || isspace(c))
> +		return c;
> +
> +	return '?';
> +}
> +
> +static void
> +fmt2str(uint32_t format, char *str, int len)

`fourcc2str()` ?
This function is specific to 4 char codes, I think its name should
reflect this.

> +{
> +	int i;
> +
> +	assert(len >= 5);
> +
> +	for (i = 0; i < 4; i++)
> +		str[i] = bits2graph(format, i * 8);
> +	str[i] = '\0';
> +}
> +
>  static void
>  print_shm_info(void *data)
>  {
> +	char str[6];

6? not 5?

These are nit-picks, this patch already does what it says on the tin:
Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>

>  	struct shm_info *shm = data;
>  	struct shm_format *format;
>  
> @@ -262,7 +288,8 @@ print_shm_info(void *data)
>  			printf(" RGB565");
>  			break;
>  		default:
> -			printf(" unknown(%08x)", format->format);
> +			fmt2str(format->format, str, sizeof(str));
> +			printf(" '%s'(0x%08x)", str, format->format);
>  			break;
>  		}
>  
> -- 
> 2.10.2
> 


More information about the wayland-devel mailing list