diff options
author | Eric Anholt <[email protected]> | 2018-11-02 14:35:06 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2018-11-12 15:20:23 -0800 |
commit | 6328536ff28ca26f2ad4e6f2c956c467acebda88 (patch) | |
tree | 118c06fa9d1914f808d99a9c7995896df95c8b91 | |
parent | ee7f848c000112a98e9614f42921b176be473792 (diff) |
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 <[email protected]>
Reviewed-by: Daniel Stone <[email protected]>
-rw-r--r-- | src/gbm/main/gbm.c | 20 | ||||
-rw-r--r-- | src/gbm/main/gbm.h | 6 |
2 files changed, 26 insertions, 0 deletions
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 |