From cca14cfd68da631fb1b5d53f2951ffb1059fd7f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tapani=20P=C3=A4lli?= Date: Wed, 12 Dec 2012 13:19:11 +0200 Subject: gralloc: yuv offset calculation function for mesa MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patch adds add api for mesa to query component offsets for yuv buffer handles. Change-Id: Ib477627ad812f5b6352665d00fb2bb3b10fe5b8e Signed-off-by: Tapani Pälli --- gralloc_drm_handle.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gralloc_drm_handle.h b/gralloc_drm_handle.h index 383719e..621f500 100644 --- a/gralloc_drm_handle.h +++ b/gralloc_drm_handle.h @@ -25,6 +25,7 @@ #define _GRALLOC_DRM_HANDLE_H_ #include +#include "gralloc_drm_formats.h" struct gralloc_drm_handle_t { native_handle_t base; @@ -60,4 +61,22 @@ static inline struct gralloc_drm_handle_t *gralloc_drm_handle(buffer_handle_t _h return handle; } +static inline void gralloc_drm_yuv_offsets(buffer_handle_t _handle, + int *y, int *u, int *v) +{ + struct gralloc_drm_handle_t *handle = gralloc_drm_handle(_handle); + if (handle && *y && *u && *v) { + *y = 0; + switch (handle->format) { + case HAL_PIXEL_FORMAT_YV12: + *v = handle->stride * handle->height; + *u = *v + handle->height/2; + break; + case HAL_PIXEL_FORMAT_DRM_NV12: + *u = *v = handle->stride * handle->height; + break; + } + } +} + #endif /* _GRALLOC_DRM_HANDLE_H_ */ -- cgit v1.1