Change the physical address value to virtual address as input buffer 98/105898/2
authorSejun Park <sejun79.park@samsung.com>
Tue, 20 Dec 2016 03:37:58 +0000 (12:37 +0900)
committerSejun Park <sejun79.park@samsung.com>
Tue, 20 Dec 2016 03:56:19 +0000 (12:56 +0900)
Change-Id: I2f8c421af46f0f50bbfd5c0f505ed881df0d60d2

exynos/include/exynos_v4l2.h
exynos4/libcodec/video/v4l2/dec/ExynosVideoDecoder.c
openmax/component/video/dec/Exynos_OMX_Vdec.c
openmax/component/video/dec/Exynos_OMX_VdecControl.c
openmax/component/video/enc/Exynos_OMX_Venc.c
openmax/component/video/enc/Exynos_OMX_VencControl.c
packaging/libomxil-e54xx.spec

index ba880094efbe3178921b09fd1787429abb48329c..09d7000c99d3b10e7eebc2826a1f607e446b10fd 100755 (executable)
@@ -49,9 +49,12 @@ extern "C" {
 #include "videodev2_exynos_media.h"
 #endif
 
+/* FIXME When this feature is ready, will enable it again */
+#if 0
 #define V4L2_CID_MPEG_MFC_BASE      (V4L2_CTRL_CLASS_MPEG | 0x2000)
 #define V4L2_CID_MPEG_MFC51_VIDEO_FRAME_TAG    \
                                                                        (V4L2_CID_MPEG_MFC_BASE + 6)
+#endif
 
 /*! \ingroup exynos_v4l2 */
 int exynos_v4l2_open(const char *filename, int oflag, ...);
index ef10a1eb64ab17eef741150f40f241024726ba1b..7f2b3be436e19c4ee519a44eb4262006129c06dd 100755 (executable)
@@ -303,6 +303,7 @@ static ExynosVideoErrorType MFC_Decoder_Set_FrameTag(
     }
 
     if (exynos_v4l2_s_ctrl(pCtx->hDec, V4L2_CID_MPEG_MFC51_VIDEO_FRAME_TAG, frameTag) != 0) {
+        ALOGE("%s: Failed to s_ctrl", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -367,6 +368,7 @@ static ExynosVideoErrorType MFC_Decoder_Set_DisplayDelay(
     }
 
     if (exynos_v4l2_s_ctrl(pCtx->hDec, V4L2_CID_MPEG_MFC51_VIDEO_DECODER_H264_DISPLAY_DELAY, delay) != 0) {
+        ALOGE("%s: Failed to s_ctrl", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -389,6 +391,7 @@ static ExynosVideoErrorType MFC_Decoder_Set_ImmediateDisplay( void *pHandle)
     }
 
     if (exynos_v4l2_s_ctrl(pCtx->hDec, V4L2_CID_MPEG_VIDEO_DECODER_IMMEDIATE_DISPLAY, 1) != 0) {
+        ALOGE("%s: Failed to s_ctrl", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -411,6 +414,7 @@ static ExynosVideoErrorType MFC_Decoder_Enable_PackedPB(void *pHandle)
     }
 #ifdef V4L2_CID_MPEG_MFC51_VIDEO_PACKED_PB
     if (exynos_v4l2_s_ctrl(pCtx->hDec, V4L2_CID_MPEG_MFC51_VIDEO_PACKED_PB, 1) != 0) {
+        ALOGE("%s: Failed to s_ctrl", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -434,6 +438,7 @@ static ExynosVideoErrorType MFC_Decoder_Enable_LoopFilter(void *pHandle)
     }
 
     if (exynos_v4l2_s_ctrl(pCtx->hDec, V4L2_CID_MPEG_VIDEO_DECODER_MPEG4_DEBLOCK_FILTER, 1) != 0) {
+        ALOGE("%s: Failed to s_ctrl", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -457,6 +462,7 @@ static ExynosVideoErrorType MFC_Decoder_Enable_SliceMode(void *pHandle)
     }
 
     if (exynos_v4l2_s_ctrl(pCtx->hDec, V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE, 1) != 0) {
+        ALOGE("%s: Failed to s_ctrl", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -480,6 +486,7 @@ static ExynosVideoErrorType MFC_Decoder_Enable_SEIParsing(void *pHandle)
     }
 
     if (exynos_v4l2_s_ctrl(pCtx->hDec, V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING, 1) != 0) {
+        ALOGE("%s: Failed to s_ctrl", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -571,6 +578,7 @@ static ExynosVideoErrorType MFC_Decoder_Enable_DecodeWait(void *pHandle)
     }
 
     if (exynos_v4l2_s_ctrl(pCtx->hDec, V4L2_CID_MPEG_VIDEO_DECODER_WAIT_DECODING_START, 1) != 0) {
+        ALOGE("%s: Failed to s_ctrl", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -595,6 +603,7 @@ static ExynosVideoErrorType MFC_Decoder_Enable_Cacheable_Inbuf(void *pHandle)
     }
 #ifdef V4L2_CID_CACHEABLE
     if (exynos_v4l2_s_ctrl(pCtx->hDec, V4L2_CID_CACHEABLE, 2) != 0) {
+        ALOGE("%s: Failed to s_ctrl", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -618,6 +627,7 @@ static ExynosVideoErrorType MFC_Decoder_Enable_Cacheable_Outbuf(void *pHandle)
     }
 #ifdef V4L2_CID_CACHEABLE
     if (exynos_v4l2_s_ctrl(pCtx->hDec, V4L2_CID_CACHEABLE, 1) != 0) {
+        ALOGE("%s: Failed to s_ctrl", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -757,6 +767,7 @@ static ExynosVideoErrorType MFC_Decoder_Set_Geometry_Inbuf(
     fmt.fmt.pix_mp.plane_fmt[0].sizeimage = bufferConf->nSizeImage;
 
     if (exynos_v4l2_s_fmt(pCtx->hDec, &fmt) != 0) {
+        ALOGE("%s: Failed to s_fmt", __func__);
         ret = VIDEO_ERROR_APIFAIL;
         goto EXIT;
     }
@@ -937,6 +948,7 @@ static ExynosVideoErrorType MFC_Decoder_Setup_Inbuf(
         for (i = 0; i < pCtx->nInbufs; i++) {
             buf.index = i;
             if (exynos_v4l2_querybuf(pCtx->hDec, &buf) != 0) {
+                ALOGE("%s: Failed to querybuf", __func__);
                 ret = VIDEO_ERROR_APIFAIL;
                 goto EXIT;
             }
@@ -1058,6 +1070,7 @@ static ExynosVideoErrorType MFC_Decoder_Setup_Outbuf(
         for (i = 0; i < pCtx->nOutbufs; i++) {
             buf.index = i;
             if (exynos_v4l2_querybuf(pCtx->hDec, &buf) != 0) {
+                ALOGE("%s: Failed to querybuf", __func__);
                 ret = VIDEO_ERROR_APIFAIL;
                 goto EXIT;
             }
index 5d45a76b1ba69b3742d5759ad5296be61cb9d2bb..7fa3dd2ff40b48c01385df48b54c3db8e45cbcd3 100755 (executable)
@@ -590,7 +590,7 @@ OMX_BOOL Exynos_Postprocess_OutputData(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_
             dstOutputData->timeStamp, dstOutputData->timeStamp / 1E6);
         if ((pExynosComponent->checkTimeStamp.needCheckStartTimeStamp == OMX_TRUE) &&
             ((dstOutputData->nFlags & OMX_BUFFERFLAG_EOS) != OMX_BUFFERFLAG_EOS)) {
-            if (1 || (pExynosComponent->checkTimeStamp.startTimeStamp == dstOutputData->timeStamp) &&
+            if ((pExynosComponent->checkTimeStamp.startTimeStamp == dstOutputData->timeStamp) &&
                 (pExynosComponent->checkTimeStamp.nStartFlags == dstOutputData->nFlags)){
                 pExynosComponent->checkTimeStamp.startTimeStamp = -19761123;
                 pExynosComponent->checkTimeStamp.nStartFlags = 0x0;
index cc3452106ea9b39f3e7484fbf3abd5a159dd595c..d7529eebc1e625578c741b6cc37a7cf1f9a1159d 100755 (executable)
@@ -125,7 +125,7 @@ OMX_ERRORTYPE Exynos_OMX_UseBuffer(
             if (nPortIndex == OUTPUT_PORT_INDEX) {
                 MMVideoBuffer * pSlpOutBuf = (MMVideoBuffer *)pBuffer;
 
-                Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "fd[0] =%d, fd[1] =%d, vaddr[0] =%p, vaddr[1] = %p, y_size=%d, uv_size=%d\n",
+                Exynos_OSAL_Log(EXYNOS_LOG_TRACE, "fd[0] =%d, fd[1] =%d, vaddr[0] =%p, vaddr[1] = %p, y_size=%d, uv_size=%d\n",
                         pSlpOutBuf->handle.dmabuf_fd[0], pSlpOutBuf->handle.dmabuf_fd[1], pSlpOutBuf->data[0], pSlpOutBuf->data[1],
                         pSlpOutBuf->size[0],pSlpOutBuf->size[1]);
 
index d83ed303c6165ae4eb3c7bac02e5ad1c6bbc2596..a8f3e0434cd6fbe5eab9ce57acb31a00c8db586a 100755 (executable)
@@ -380,7 +380,7 @@ OMX_BOOL Exynos_Preprocessor_InputData(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_
             for (plane = 0; plane < MFC_INPUT_BUFFER_PLANE; plane++) {
                /* It seems MFC is not considering fd, so sending physical address.
                 Will be removed when MFC works correctly with buf fd. */
-                srcInputData->buffer.multiPlaneBuffer.dataBuffer[plane] = mm_buf->data[plane];//handle.paddr[plane];
+                srcInputData->buffer.multiPlaneBuffer.dataBuffer[plane] = mm_buf->data[plane];
                 srcInputData->buffer.multiPlaneBuffer.fd[plane] = mm_buf->handle.dmabuf_fd[plane];
                 srcInputData->buffer.multiPlaneBuffer.size[plane] = mm_buf->size[plane];
                 Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "[ENC] get fd[%d] %d , a[%d] %x size:[%d]"
index c1e87bf1146aa5c72b8a3c234690ee64adae42d7..1515a3634d89e69ef095c4677e0bdd8326d9735f 100755 (executable)
@@ -137,7 +137,7 @@ OMX_ERRORTYPE Exynos_OMX_UseBuffer(
                 pSlpOutBuf->handle.dmabuf_fd[0], pSlpOutBuf->handle.dmabuf_fd[1], pSlpOutBuf->data[0], pSlpOutBuf->data[1],
                 pSlpOutBuf->size[0],pSlpOutBuf->size[1]);
             if(nPortIndex == OUTPUT_PORT_INDEX )
-                  pTempBufferHdr->pBuffer  = pSlpOutBuf->handle.paddr[0];
+                  pTempBufferHdr->pBuffer  = pSlpOutBuf->data[0];
 
             pExynosPort->extendBufferHeader[i].buf_fd[0] = pSlpOutBuf->handle.dmabuf_fd[0];
             pExynosPort->extendBufferHeader[i].buf_fd[1] = pSlpOutBuf->handle.dmabuf_fd[1];
index 3d9a1fbabf7d441aafc3a1cd3ead7717d7dfe94f..303fc7b6e4a39a977a16eba451c7f203ab2f5ccd 100755 (executable)
@@ -3,7 +3,7 @@ Summary: OpenMAX IL for e54xx
 Version: 1.0.0
 License: Apache-2.0
 Group: Development/Libraries
-Release: 6
+Release: 7
 Source: %{name}-%{version}.tar.gz
 Requires(post): /sbin/ldconfig
 Requires(postun): /sbin/ldconfig