summaryrefslogtreecommitdiffstats
path: root/gralloc_drm_handle.h
diff options
context:
space:
mode:
Diffstat (limited to 'gralloc_drm_handle.h')
-rw-r--r--gralloc_drm_handle.h19
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_ */