diff options
author | James Dong <jdong@google.com> | 2011-07-21 19:24:46 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-07-21 19:24:46 -0700 |
commit | 9d669beeaf822d69178437f9ca8b3305cd124817 (patch) | |
tree | dc6885137c92fe86d8f0b25681fa33d68e64fbfd /sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c | |
parent | 6712a702d4501c8530810a3f3c2147c9e7d143bd (diff) | |
parent | 7cf106ba5ff2dac2be536d8c84c715ca87d0a2d9 (diff) | |
download | device_samsung_crespo-9d669beeaf822d69178437f9ca8b3305cd124817.zip device_samsung_crespo-9d669beeaf822d69178437f9ca8b3305cd124817.tar.gz device_samsung_crespo-9d669beeaf822d69178437f9ca8b3305cd124817.tar.bz2 |
Merge "Add color space convertor in SEC_OMX"
Diffstat (limited to 'sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c')
-rw-r--r-- | sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c b/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c index 9acae4e..e1edf95 100644 --- a/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c +++ b/sec_mm/sec_omx/sec_omx_component/video/dec/h264dec/SEC_OMX_H264dec.c @@ -35,6 +35,7 @@ #include "library_register.h" #include "SEC_OMX_H264dec.h" #include "SsbSipMfcApi.h" +#include "color_space_convertor.h" #undef SEC_LOG_TAG #define SEC_LOG_TAG "SEC_H264_DEC" @@ -955,14 +956,17 @@ OMX_ERRORTYPE SEC_MFC_H264_Decode(OMX_COMPONENTTYPE *pOMXComponent, SEC_OMX_DATA SEC_OSAL_Memcpy(pOutBuf + sizeof(frameSize) + (sizeof(void *) * 3), &(outputInfo.CVirAddr), sizeof(outputInfo.CVirAddr)); } else { SEC_OSAL_Log(SEC_LOG_TRACE, "YUV420 out for ThumbnailMode"); - Y_tile_to_linear_4x2( - (unsigned char *)pOutBuf, - (unsigned char *)outputInfo.YVirAddr, - bufWidth, bufHeight); - CbCr_tile_to_linear_4x2( - ((unsigned char *)pOutBuf) + frameSize, - (unsigned char *)outputInfo.CVirAddr, - bufWidth, bufHeight); + csc_tiled_to_linear_neon( + (unsigned char *)pOutBuf, + (unsigned char *)outputInfo.YVirAddr, + bufWidth, + bufHeight); + csc_tiled_to_linear_deinterleave_neon( + (unsigned char *)pOutBuf + frameSize, + (unsigned char *)pOutBuf + (frameSize * 5) / 4, + (unsigned char *)outputInfo.CVirAddr, + bufWidth, + bufHeight >> 1); } } |