From 1bf120025bf3eed2bc0042c3200ad55670bc6ccb Mon Sep 17 00:00:00 2001 From: Mateusz Krawczuk Date: Fri, 12 Jun 2015 20:21:04 +0200 Subject: v4l2-mfc-example: DRM IPP: Commit add ipp.c and basic initial setup for DRM Image Post-Proccesing Signed-off-by: Mateusz Krawczuk --- v4l2-mfc-example/common.h | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) (limited to 'v4l2-mfc-example/common.h') diff --git a/v4l2-mfc-example/common.h b/v4l2-mfc-example/common.h index 5d9cd3d..330ad8e 100644 --- a/v4l2-mfc-example/common.h +++ b/v4l2-mfc-example/common.h @@ -42,7 +42,9 @@ #ifdef DRM #include #include -#include +#include +#include +#include #endif #ifdef ADD_DETAILS @@ -94,6 +96,27 @@ * to be processed by FIMC. */ #define BUF_FIMC 2 +#define INVALID_GEM_HANDLE ~0U + +#define DRM_IPP_MAX_BUF 3 +#define DRM_IPP_MAX_PLANES 3 + +struct drm_buff { + unsigned int index; + unsigned int handle[DRM_IPP_MAX_PLANES]; + int fd[DRM_IPP_MAX_PLANES]; + unsigned int fb_id; +}; + +struct shared_buffer { + unsigned int index; + unsigned int width; + unsigned int height; + unsigned int num_planes; + struct v4l2_plane planes[DRM_IPP_MAX_PLANES]; + unsigned int handle[DRM_IPP_MAX_PLANES]; +}; + struct instance { /* Input file related parameters */ struct { @@ -122,7 +145,10 @@ struct instance { unsigned int crtc_id; #ifdef DRM struct drm_exynos_gem_create gem[MAX_BUFS]; + struct drm_exynos_gem_create gem_src[MFC_MAX_CAP_BUF]; struct drm_mode_map_dumb mmap[MAX_BUFS]; + struct drm_prime_handle prime[MAX_BUFS]; + drmModeRes *resources; #endif char enabled; @@ -170,7 +196,17 @@ struct instance { int dmabuf; char ignore_format_change; } fimc; - + struct drm_ipp { + int enabled; + struct drm_exynos_ipp_queue_buf *queue_buf; + struct drm_exynos_ipp_property prop; + struct queue queue; + sem_t todo; + sem_t done; + int cur_buf; + struct drm_exynos_ipp_queue_buf *src_buff[DRM_IPP_MAX_BUF]; + struct drm_exynos_ipp_queue_buf *dst_buff[DRM_IPP_MAX_BUF]; + } ipp; /* MFC related parameters */ struct { char *name; @@ -182,7 +218,6 @@ struct instance { int out_buf_off[MFC_MAX_OUT_BUF]; char *out_buf_addr[MFC_MAX_OUT_BUF]; int out_buf_flag[MFC_MAX_OUT_BUF]; - /* Capture queue related */ int cap_w; int cap_h; -- cgit v1.2.3