diff options
Diffstat (limited to 'gralloc_drm_handle.h')
-rw-r--r-- | gralloc_drm_handle.h | 19 |
1 files changed, 19 insertions, 0 deletions
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 <cutils/native_handle.h> +#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_ */ |