From: SeungBeom Kim <sbcrux.kim@samsung.com> Date: Thu, 5 Jul 2012 05:59:40 +0000 (+0900) Subject: exynos_omx: multi_thread: Add argument for selection of memory type in initial time. X-Git-Tag: cm-10.1-M1~317 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=c94beaeb6990ddf010f7934c201f68e2d66dff62;p=GitHub%2FLineageOS%2Fandroid_hardware_samsung_slsi_exynos5.git exynos_omx: multi_thread: Add argument for selection of memory type in initial time. void *MFC_Decoder_Init(void) to void *MFC_Decoder_Init(int nMemoryType) void *MFC_Encoder_Init(void) to void *MFC_Encoder_Init(int nMemoryType) Change-Id: I0e663bcf8ac111b205ac13f86fe614572ef92ee4 Signed-off-by: SeungBeom Kim <sbcrux.kim@samsung.com> --- diff --git a/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/dec/src/ExynosVideoDecoder.c b/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/dec/src/ExynosVideoDecoder.c index c48e43d..2e8a758 100644 --- a/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/dec/src/ExynosVideoDecoder.c +++ b/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/dec/src/ExynosVideoDecoder.c @@ -40,7 +40,6 @@ #include "ExynosVideoApi.h" #include "ExynosVideoDec.h" -#include "exynos_v4l2.h" /* #define LOG_NDEBUG 0 */ #define LOG_TAG "ExynosVideoDecoder" @@ -109,7 +108,7 @@ static unsigned int __ColorFormatType_To_V4L2PixelFormat(ExynosVideoColorFormatT /* * [Decoder OPS] Init */ -static void *MFC_Decoder_Init(void) +static void *MFC_Decoder_Init(int nMemoryType) { ExynosVideoDecContext *pCtx = NULL; pthread_mutex_t *pMutex = NULL; @@ -137,7 +136,7 @@ static void *MFC_Decoder_Init(void) pCtx->bStreamonInbuf = VIDEO_FALSE; pCtx->bStreamonOutbuf = VIDEO_FALSE; - pCtx->nMemoryType = V4L2_MEMORY_DMABUF; + pCtx->nMemoryType = nMemoryType; pMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t)); if (pMutex == NULL) { diff --git a/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/enc/src/ExynosVideoEncoder.c b/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/enc/src/ExynosVideoEncoder.c index dce0963..fc127dc 100644 --- a/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/enc/src/ExynosVideoEncoder.c +++ b/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/enc/src/ExynosVideoEncoder.c @@ -41,7 +41,6 @@ #include "ExynosVideoApi.h" #include "ExynosVideoEnc.h" -#include "exynos_v4l2.h" /* #define LOG_NDEBUG 0 */ #define LOG_TAG "ExynosVideoEncoder" @@ -115,7 +114,7 @@ static unsigned int __ColorFormatType_To_V4L2PixelFormat(ExynosVideoColorFormatT /* * [Encoder OPS] Init */ -static void *MFC_Encoder_Init(void) +static void *MFC_Encoder_Init(int nMemoryType) { ExynosVideoEncContext *pCtx = NULL; pthread_mutex_t *pMutex = NULL; @@ -143,7 +142,7 @@ static void *MFC_Encoder_Init(void) pCtx->bStreamonInbuf = VIDEO_FALSE; pCtx->bStreamonOutbuf = VIDEO_FALSE; - pCtx->nMemoryType = V4L2_MEMORY_DMABUF; + pCtx->nMemoryType = nMemoryType; pMutex = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t)); if (pMutex == NULL) { diff --git a/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/include/ExynosVideoApi.h b/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/include/ExynosVideoApi.h index c0c50a8..b7b643a 100644 --- a/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/include/ExynosVideoApi.h +++ b/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/include/ExynosVideoApi.h @@ -18,6 +18,8 @@ #ifndef _EXYNOS_VIDEO_API_H_ #define _EXYNOS_VIDEO_API_H_ +#include "exynos_v4l2.h" + /* Fixed */ #define VIDEO_BUFFER_MAX_PLANES 3 @@ -216,7 +218,7 @@ typedef struct _ExynosVideoEncParam { typedef struct _ExynosVideoDecOps { unsigned int nSize; - void * (*Init)(void); + void * (*Init)(int nMemoryType); ExynosVideoErrorType (*Finalize)(void *pHandle); /* Add new ops at the end of structure, no order change */ @@ -233,7 +235,7 @@ typedef struct _ExynosVideoDecOps { typedef struct _ExynosVideoEncOps { unsigned int nSize; - void * (*Init)(void); + void * (*Init)(int nMemoryType); ExynosVideoErrorType (*Finalize)(void *pHandle); /* Add new ops at the end of structure, no order change */ diff --git a/exynos_omx/openmax/exynos_omx/component/video/dec/Android.mk b/exynos_omx/openmax/exynos_omx/component/video/dec/Android.mk index f5ad7df..0d79ec4 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/dec/Android.mk +++ b/exynos_omx/openmax/exynos_omx/component/video/dec/Android.mk @@ -15,6 +15,7 @@ LOCAL_C_INCLUDES := $(EXYNOS_OMX_INC)/khronos \ $(EXYNOS_OMX_TOP)/core \ $(EXYNOS_OMX_COMPONENT)/common \ $(EXYNOS_OMX_COMPONENT)/video/dec \ + hardware/samsung_slsi/exynos5/include \ hardware/samsung_slsi/exynos5/libcsc \ hardware/samsung_slsi/exynos5/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/include diff --git a/exynos_omx/openmax/exynos_omx/component/video/dec/h264/Exynos_OMX_H264dec.c b/exynos_omx/openmax/exynos_omx/component/video/dec/h264/Exynos_OMX_H264dec.c index 1ff738f..afc9e9d 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/dec/h264/Exynos_OMX_H264dec.c +++ b/exynos_omx/openmax/exynos_omx/component/video/dec/h264/Exynos_OMX_H264dec.c @@ -307,7 +307,7 @@ OMX_ERRORTYPE H264CodecOpen(EXYNOS_H264DEC_HANDLE *pH264Dec) } /* alloc context, open, querycap */ - pH264Dec->hMFCH264Handle.hMFCHandle = pH264Dec->hMFCH264Handle.pDecOps->Init(); + pH264Dec->hMFCH264Handle.hMFCHandle = pH264Dec->hMFCH264Handle.pDecOps->Init(V4L2_MEMORY_DMABUF); if (pH264Dec->hMFCH264Handle.hMFCHandle == NULL) { Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to allocate context buffer"); ret = OMX_ErrorInsufficientResources; diff --git a/exynos_omx/openmax/exynos_omx/component/video/dec/mpeg4/Exynos_OMX_Mpeg4dec.c b/exynos_omx/openmax/exynos_omx/component/video/dec/mpeg4/Exynos_OMX_Mpeg4dec.c index d626c46..7d3fb32 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/dec/mpeg4/Exynos_OMX_Mpeg4dec.c +++ b/exynos_omx/openmax/exynos_omx/component/video/dec/mpeg4/Exynos_OMX_Mpeg4dec.c @@ -411,7 +411,7 @@ OMX_ERRORTYPE Mpeg4CodecOpen(EXYNOS_MPEG4DEC_HANDLE *pMpeg4Dec) } /* alloc context, open, querycap */ - pMpeg4Dec->hMFCMpeg4Handle.hMFCHandle = pMpeg4Dec->hMFCMpeg4Handle.pDecOps->Init(); + pMpeg4Dec->hMFCMpeg4Handle.hMFCHandle = pMpeg4Dec->hMFCMpeg4Handle.pDecOps->Init(V4L2_MEMORY_DMABUF); if (pMpeg4Dec->hMFCMpeg4Handle.hMFCHandle == NULL) { Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to allocate context buffer"); ret = OMX_ErrorInsufficientResources; diff --git a/exynos_omx/openmax/exynos_omx/component/video/dec/vp8/Exynos_OMX_Vp8dec.c b/exynos_omx/openmax/exynos_omx/component/video/dec/vp8/Exynos_OMX_Vp8dec.c index 2c915e6..3f89314 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/dec/vp8/Exynos_OMX_Vp8dec.c +++ b/exynos_omx/openmax/exynos_omx/component/video/dec/vp8/Exynos_OMX_Vp8dec.c @@ -226,7 +226,7 @@ OMX_ERRORTYPE VP8CodecOpen(EXYNOS_VP8DEC_HANDLE *pVp8Dec) } /* alloc context, open, querycap */ - pVp8Dec->hMFCVp8Handle.hMFCHandle = pVp8Dec->hMFCVp8Handle.pDecOps->Init(); + pVp8Dec->hMFCVp8Handle.hMFCHandle = pVp8Dec->hMFCVp8Handle.pDecOps->Init(V4L2_MEMORY_DMABUF); if (pVp8Dec->hMFCVp8Handle.hMFCHandle == NULL) { Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to allocate context buffer"); ret = OMX_ErrorInsufficientResources; diff --git a/exynos_omx/openmax/exynos_omx/component/video/enc/Android.mk b/exynos_omx/openmax/exynos_omx/component/video/enc/Android.mk index 2ec0386..7c1c436 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/enc/Android.mk +++ b/exynos_omx/openmax/exynos_omx/component/video/enc/Android.mk @@ -15,6 +15,7 @@ LOCAL_C_INCLUDES := $(EXYNOS_OMX_INC)/khronos \ $(EXYNOS_OMX_TOP)/core \ $(EXYNOS_OMX_COMPONENT)/common \ $(EXYNOS_OMX_COMPONENT)/video/enc \ + hardware/samsung_slsi/exynos5/include \ hardware/samsung_slsi/exynos5/libcsc \ hardware/samsung_slsi/exynos5/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/include diff --git a/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Android.mk b/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Android.mk index e8888ae..9a9174e 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Android.mk +++ b/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Android.mk @@ -31,6 +31,7 @@ LOCAL_C_INCLUDES := $(EXYNOS_OMX_INC)/khronos \ $(EXYNOS_OMX_TOP)/core \ $(EXYNOS_OMX_COMPONENT)/common \ $(EXYNOS_OMX_COMPONENT)/video/enc \ + hardware/samsung_slsi/exynos5/include \ hardware/samsung_slsi/exynos5/libcsc \ hardware/samsung_slsi/exynos5/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/include diff --git a/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Exynos_OMX_H264enc.c b/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Exynos_OMX_H264enc.c index 9d0c198..62f2679 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Exynos_OMX_H264enc.c +++ b/exynos_omx/openmax/exynos_omx/component/video/enc/h264/Exynos_OMX_H264enc.c @@ -459,7 +459,7 @@ OMX_ERRORTYPE H264CodecOpen(EXYNOS_H264ENC_HANDLE *pH264Enc) } /* alloc context, open, querycap */ - pH264Enc->hMFCH264Handle.hMFCHandle = pH264Enc->hMFCH264Handle.pEncOps->Init(); + pH264Enc->hMFCH264Handle.hMFCHandle = pH264Enc->hMFCH264Handle.pEncOps->Init(V4L2_MEMORY_DMABUF); if (pH264Enc->hMFCH264Handle.hMFCHandle == NULL) { Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to allocate context buffer"); ret = OMX_ErrorInsufficientResources; diff --git a/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Android.mk b/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Android.mk index fe70288..dbd44f5 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Android.mk +++ b/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Android.mk @@ -30,7 +30,8 @@ LOCAL_C_INCLUDES := $(EXYNOS_OMX_INC)/khronos \ $(EXYNOS_OMX_TOP)/core \ $(EXYNOS_OMX_COMPONENT)/common \ $(EXYNOS_OMX_COMPONENT)/video/enc \ - hardware/samsung_slsi/exynos5/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/include \ - hardware/samsung_slsi/exynos5/libcsc + hardware/samsung_slsi/exynos5/include \ + hardware/samsung_slsi/exynos5/libcsc \ + hardware/samsung_slsi/exynos5/exynos_omx/codecs/exynos_codecs/video/exynos5/mfc_v4l2/include include $(BUILD_SHARED_LIBRARY) diff --git a/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c b/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c index f9ddc43..53f91d6 100644 --- a/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c +++ b/exynos_omx/openmax/exynos_omx/component/video/enc/mpeg4/Exynos_OMX_Mpeg4enc.c @@ -575,7 +575,7 @@ OMX_ERRORTYPE Mpeg4CodecOpen(EXYNOS_MPEG4ENC_HANDLE *pMpeg4Enc) } /* alloc context, open, querycap */ - pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.pEncOps->Init(); + pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle = pMpeg4Enc->hMFCMpeg4Handle.pEncOps->Init(V4L2_MEMORY_DMABUF); if (pMpeg4Enc->hMFCMpeg4Handle.hMFCHandle == NULL) { Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Failed to allocate context buffer"); ret = OMX_ErrorInsufficientResources;