From 6328536ff28ca26f2ad4e6f2c956c467acebda88 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 2 Nov 2018 14:35:06 -0700 Subject: [PATCH] gbm: Introduce a helper function for printing GBM format names. This requires that the caller make a little (stack) allocation to store the string. v2: Use gbm_format_canonicalize (suggested by Daniel) Reviewed-by: Eric Engestrom Reviewed-by: Daniel Stone --- src/gbm/main/gbm.c | 20 ++++++++++++++++++++ src/gbm/main/gbm.h | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/src/gbm/main/gbm.c b/src/gbm/main/gbm.c index d301661b48e..2e2014205cb 100644 --- a/src/gbm/main/gbm.c +++ b/src/gbm/main/gbm.c @@ -711,3 +711,23 @@ gbm_format_canonicalize(uint32_t gbm_format) return gbm_format; } } + +/** + * Returns a string representing the fourcc format name. + * + * \param desc Caller-provided storage for the format name string. + * \return String containing the fourcc of the format. + */ +GBM_EXPORT char * +gbm_format_get_name(uint32_t gbm_format, struct gbm_format_name_desc *desc) +{ + gbm_format = gbm_format_canonicalize(gbm_format); + + desc->name[0] = gbm_format; + desc->name[1] = gbm_format >> 8; + desc->name[2] = gbm_format >> 16; + desc->name[3] = gbm_format >> 24; + desc->name[4] = 0; + + return desc->name; +} diff --git a/src/gbm/main/gbm.h b/src/gbm/main/gbm.h index e95f9e34960..9b5288710a5 100644 --- a/src/gbm/main/gbm.h +++ b/src/gbm/main/gbm.h @@ -190,6 +190,9 @@ enum gbm_bo_format { #define GBM_FORMAT_YUV444 __gbm_fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */ #define GBM_FORMAT_YVU444 __gbm_fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */ +struct gbm_format_name_desc { + char name[5]; +}; /** * Flags to indicate the intended use for the buffer - these are passed into @@ -399,6 +402,9 @@ gbm_surface_has_free_buffers(struct gbm_surface *surface); void gbm_surface_destroy(struct gbm_surface *surface); +char * +gbm_format_get_name(uint32_t gbm_format, struct gbm_format_name_desc *desc); + #ifdef __cplusplus } #endif -- 2.30.2