diff options
| author | Zhao Liang <leo.zhao@intel.com> | 2013-11-11 14:38:18 +0800 |
|---|---|---|
| committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:02:55 -0700 |
| commit | 34dc9ab15e6b6c6a9bd0c24d1529224e937d429f (patch) | |
| tree | bbffb5f3368870784374a08cbc5af10b57bd2095 | |
| parent | 7a33c3987cdb244b2661c087cee4b350f6eb1bea (diff) | |
| download | android_hardware_intel_common_omx-components-34dc9ab15e6b6c6a9bd0c24d1529224e937d429f.tar.gz android_hardware_intel_common_omx-components-34dc9ab15e6b6c6a9bd0c24d1529224e937d429f.tar.bz2 android_hardware_intel_common_omx-components-34dc9ab15e6b6c6a9bd0c24d1529224e937d429f.zip | |
remove live effect code
BZ: 151334
replaced by low level libmix implementation
Change-Id: I51cbe1f781d4a30af59bbba1172cb801f32e1a48
Signed-off-by: Zhao Liang <leo.zhao@intel.com>
| -rw-r--r-- | videocodec/Android.mk | 40 | ||||
| -rwxr-xr-x | videocodec/OMXVideoEncoderAVC.cpp | 18 | ||||
| -rwxr-xr-x | videocodec/OMXVideoEncoderBase.cpp | 119 | ||||
| -rw-r--r-- | videocodec/OMXVideoEncoderBase.h | 24 | ||||
| -rw-r--r-- | videocodec/OMXVideoEncoderH263.cpp | 18 | ||||
| -rw-r--r-- | videocodec/OMXVideoEncoderMPEG4.cpp | 18 |
6 files changed, 8 insertions, 229 deletions
diff --git a/videocodec/Android.mk b/videocodec/Android.mk index 4e12c74..03635a0 100644 --- a/videocodec/Android.mk +++ b/videocodec/Android.mk @@ -318,11 +318,8 @@ LOCAL_C_INCLUDES := \ $(TARGET_OUT_HEADERS)/khronos/openmax \ $(TARGET_OUT_HEADERS)/libmix_videoencoder \ $(TARGET_OUT_HEADERS)/libva \ - $(TARGET_OUT_HEADERS)/libsharedbuffer \ - $(call include-path-for, libhardware) \ $(call include-path-for, frameworks-native)/media/hardware \ $(call include-path-for, frameworks-native)/media/openmax \ - $(TARGET_OUT_HEADERS)/pvr LOCAL_SRC_FILES := \ OMXComponentCodecBase.cpp \ @@ -330,13 +327,6 @@ LOCAL_SRC_FILES := \ OMXVideoEncoderAVC.cpp LOCAL_CFLAGS += $(LOCAL_C_FLAGS) -ifeq ($(ENABLE_MRFL_GRAPHICS),true) -LOCAL_CFLAGS += -DMRFLD_OMX -endif - -ifeq ($(ENABLE_IMG_GRAPHICS),true) - LOCAL_CFLAGS += -DIMG_GFX -endif LOCAL_MODULE_TAGS := optional LOCAL_MODULE := libOMXVideoEncoderAVC @@ -366,11 +356,8 @@ LOCAL_C_INCLUDES := \ $(TARGET_OUT_HEADERS)/khronos/openmax \ $(TARGET_OUT_HEADERS)/libmix_videoencoder \ $(TARGET_OUT_HEADERS)/libva \ - $(TARGET_OUT_HEADERS)/libsharedbuffer \ - $(call include-path-for, libhardware) \ $(call include-path-for, frameworks-native)/media/hardware \ $(call include-path-for, frameworks-native)/media/openmax \ - $(TARGET_OUT_HEADERS)/pvr LOCAL_SRC_FILES := \ OMXComponentCodecBase.cpp \ @@ -378,18 +365,11 @@ LOCAL_SRC_FILES := \ OMXVideoEncoderH263.cpp LOCAL_CFLAGS += $(LOCAL_C_FLAGS) -ifeq ($(ENABLE_MRFL_GRAPHICS),true) -LOCAL_CFLAGS += -DMRFLD_OMX -endif ifeq ($(SW_MPEG4_ENCODER),true) LOCAL_CFLAGS += -DSYNC_MODE endif -ifeq ($(ENABLE_IMG_GRAPHICS),true) - LOCAL_CFLAGS += -DIMG_GFX -endif - LOCAL_MODULE_TAGS := optional LOCAL_MODULE := libOMXVideoEncoderH263 include $(BUILD_SHARED_LIBRARY) @@ -417,11 +397,8 @@ LOCAL_C_INCLUDES := \ $(TARGET_OUT_HEADERS)/khronos/openmax \ $(TARGET_OUT_HEADERS)/libmix_videoencoder \ $(TARGET_OUT_HEADERS)/libva \ - $(TARGET_OUT_HEADERS)/libsharedbuffer \ - $(call include-path-for, libhardware) \ $(call include-path-for, frameworks-native)/media/hardware \ $(call include-path-for, frameworks-native)/media/openmax \ - $(TARGET_OUT_HEADERS)/pvr LOCAL_SRC_FILES := \ OMXComponentCodecBase.cpp \ @@ -429,13 +406,6 @@ LOCAL_SRC_FILES := \ OMXVideoEncoderMPEG4.cpp LOCAL_CFLAGS += $(LOCAL_C_FLAGS) -ifeq ($(ENABLE_MRFL_GRAPHICS),true) -LOCAL_CFLAGS += -DMRFLD_OMX -endif - -ifeq ($(ENABLE_IMG_GRAPHICS),true) - LOCAL_CFLAGS += -DIMG_GFX -endif LOCAL_MODULE_TAGS := optional LOCAL_MODULE := libOMXVideoEncoderMPEG4 @@ -504,11 +474,8 @@ LOCAL_C_INCLUDES := \ $(TARGET_OUT_HEADERS)/khronos/openmax \ $(TARGET_OUT_HEADERS)/libmix_videoencoder \ $(TARGET_OUT_HEADERS)/libva \ - $(TARGET_OUT_HEADERS)/libsharedbuffer \ - $(call include-path-for, libhardware) \ $(call include-path-for, frameworks-native)/media/hardware \ $(call include-path-for, frameworks-native)/media/openmax \ - $(TARGET_OUT_HEADERS)/pvr LOCAL_SRC_FILES := \ OMXComponentCodecBase.cpp \ @@ -516,13 +483,6 @@ LOCAL_SRC_FILES := \ OMXVideoEncoderVP8.cpp LOCAL_CFLAGS += $(LOCAL_C_FLAGS) -ifeq ($(ENABLE_MRFL_GRAPHICS),true) -LOCAL_CFLAGS += -DMRFLD_OMX -endif - -ifeq ($(ENABLE_IMG_GRAPHICS),true) - LOCAL_CFLAGS += -DIMG_GFX -endif LOCAL_MODULE_TAGS := optional LOCAL_MODULE := libOMXVideoEncoderVP8 diff --git a/videocodec/OMXVideoEncoderAVC.cpp b/videocodec/OMXVideoEncoderAVC.cpp index 4d5cd83..028d3d9 100755 --- a/videocodec/OMXVideoEncoderAVC.cpp +++ b/videocodec/OMXVideoEncoderAVC.cpp @@ -598,15 +598,6 @@ OMX_ERRORTYPE OMXVideoEncoderAVC::ProcessorProcess( */ if(!eInfo.EncodeComplete) { - //for live effect -#ifdef IMG_GFX - if (bAndroidOpaqueFormat) { - mCurHandle = rgba2nv12conversion(buffers[INPORT_INDEX]); - if (mCurHandle < 0) - return OMX_ErrorUndefined; - } -#endif - // encode and setConfig need to be thread safe if (eInfo.EndOfEncode) inBuf.flag |= ENCODE_BUFFERFLAG_ENDOFSTREAM; @@ -654,15 +645,6 @@ OMX_ERRORTYPE OMXVideoEncoderAVC::ProcessorProcess( exit: -#ifdef IMG_GFX - if (bAndroidOpaqueFormat && buffers[INPORT_INDEX]->nFilledLen != 0) { - // Restore input buffer's content - buffers[INPORT_INDEX]->nFilledLen = 4 + sizeof(buffer_handle_t); - memcpy(buffers[INPORT_INDEX]->pBuffer, mBufferHandleMaps[mCurHandle].backBuffer, - buffers[INPORT_INDEX]->nFilledLen); - } -#endif - /* restore all states into input OMX buffer */ if (eInfo.EncodeComplete) diff --git a/videocodec/OMXVideoEncoderBase.cpp b/videocodec/OMXVideoEncoderBase.cpp index 551e46d..628da22 100755 --- a/videocodec/OMXVideoEncoderBase.cpp +++ b/videocodec/OMXVideoEncoderBase.cpp @@ -35,7 +35,6 @@ OMXVideoEncoderBase::OMXVideoEncoderBase() mEncoderParams = new VideoParamsCommon(); if (!mEncoderParams) LOGE("OMX_ErrorInsufficientResources"); - bAndroidOpaqueFormat = OMX_FALSE; LOGV("OMXVideoEncoderBase::OMXVideoEncoderBase end"); } @@ -285,7 +284,10 @@ OMX_ERRORTYPE OMXVideoEncoderBase::SetVideoEncoderParam() { mEncoderParams->intraPeriod = (intraPeriod < 15) ? 15 : intraPeriod; // Limit intra frame period to ensure video quality for low bitrate application. } - mEncoderParams->rawFormat = RAW_FORMAT_NV12; + if (paramPortDefinitionInput->format.video.eColorFormat == OMX_COLOR_FormatAndroidOpaque) + mEncoderParams->rawFormat = RAW_FORMAT_OPAQUE; + else + mEncoderParams->rawFormat = RAW_FORMAT_NV12; LOGV("frameRate.frameRateDenom = %d\n", mEncoderParams->frameRate.frameRateDenom); LOGV("frameRate.frameRateNum = %d\n", mEncoderParams->frameRate.frameRateNum); @@ -359,40 +361,6 @@ OMX_ERRORTYPE OMXVideoEncoderBase::ProcessorInit(void) { ret = SetVideoEncoderParam(); CHECK_STATUS("SetVideoEncoderParam"); -#ifdef IMG_GFX - if (bAndroidOpaqueFormat) { - hw_module_t const* module; - int err = hw_get_module(GRALLOC_HARDWARE_MODULE_ID, &module); - if (err == 0) { - mGrallocMod = (IMG_gralloc_module_public_t const*)module; - gralloc_open(module, &mAllocDev); - for (int i = 0; i < INPORT_ACTUAL_BUFFER_COUNT; i++) { - status_t err = mAllocDev->alloc(mAllocDev, - mEncoderParams->resolution.width, - mEncoderParams->resolution.height, - OMX_INTEL_COLOR_FormatYUV420PackedSemiPlanar, - GRALLOC_USAGE_HW_RENDER | GRALLOC_USAGE_HW_TEXTURE, - (buffer_handle_t*)&(mBufferHandleMaps[i].mHandle), - &mBufferHandleMaps[i].mStride); - ALOGE_IF(err, "alloc(%u, %u, %d, %08x, ...) failed %d (%s)", - mEncoderParams->resolution.width, - mEncoderParams->resolution.height, - OMX_INTEL_COLOR_FormatYUV420PackedSemiPlanar, - GRALLOC_USAGE_HW_RENDER | GRALLOC_USAGE_HW_TEXTURE, err, strerror(-err)); - mBufferHandleMaps[i].mHeader = NULL; - ALOGI("width %d, height %d, iWidth %d, iHeight %d, iFormat %x", - mEncoderParams->resolution.width, - mEncoderParams->resolution.height, - mBufferHandleMaps[i].mHandle->iWidth, - mBufferHandleMaps[i].mHandle->iHeight, mBufferHandleMaps[i].mHandle->iFormat); - } - } else { - ALOGE("FATAL: can't find the %s module", GRALLOC_HARDWARE_MODULE_ID); - return OMX_ErrorUndefined; - } - } -#endif - if (mVideoEncoder->start() != ENCODE_SUCCESS) { LOGE("Start failed, ret = 0x%08x\n", ret); return OMX_ErrorUndefined; @@ -408,17 +376,6 @@ OMX_ERRORTYPE OMXVideoEncoderBase::ProcessorDeinit(void) { mVideoEncoder->stop(); } -#ifdef IMG_GFX - if(bAndroidOpaqueFormat) { - for (int i = 0; i < INPORT_ACTUAL_BUFFER_COUNT; i++) { - status_t err = mAllocDev->free(mAllocDev, - (buffer_handle_t)mBufferHandleMaps[i].mHandle); - ALOGW_IF(err, "free(...) failed %d (%s)", err, strerror(-err)); - mBufferHandleMaps[i].mHandle = NULL; - } - gralloc_close(mAllocDev); - } -#endif return OMX_ErrorNone; } @@ -478,10 +435,10 @@ OMX_ERRORTYPE OMXVideoEncoderBase::GetParamVideoPortFormat(OMX_PTR pStructure) { port = static_cast<PortVideo *>(this->ports[p->nPortIndex]); index = p->nIndex; memcpy(p, port->GetPortVideoParam(), sizeof(*p)); - // FIXME: port only supports OMX_COLOR_FormatYUV420SemiPlanar + // port supports OMX_COLOR_FormatYUV420SemiPlanar & OMX_COLOR_FormatAndroidOpaque if (index == 1) { p->nIndex = 1; - p->eColorFormat = (OMX_COLOR_FORMATTYPE)OMX_COLOR_FormatAndroidOpaque; + p->eColorFormat = OMX_COLOR_FormatAndroidOpaque; } return OMX_ErrorNone; } @@ -497,12 +454,12 @@ OMX_ERRORTYPE OMXVideoEncoderBase::SetParamVideoPortFormat(OMX_PTR pStructure) { // TODO: do we need to check if port is enabled? PortVideo *port = NULL; port = static_cast<PortVideo *>(this->ports[p->nPortIndex]); - // FIXME: port only supports OMX_COLOR_FormatYUV420SemiPlanar +#if 0 if (p->eColorFormat == OMX_COLOR_FormatAndroidOpaque) { p->nIndex = 0; p->eColorFormat = OMX_COLOR_FormatYUV420SemiPlanar; - bAndroidOpaqueFormat = OMX_TRUE; } +#endif port->SetPortVideoParam(p, false); return OMX_ErrorNone; } @@ -967,63 +924,3 @@ OMX_ERRORTYPE OMXVideoEncoderBase::SetPrependSPSPPS(OMX_PTR pStructure) { LOGD("SetPrependSPSPPS success"); return OMX_ErrorNone; }; -#ifdef IMG_GFX -// Utility function that blits the original source buffer in RGBA format to a temporary -// buffer in NV12 format, and use the temporary buffer as the source buffer -int32_t OMXVideoEncoderBase::rgba2nv12conversion(OMX_BUFFERHEADERTYPE *pBuffer) -{ - int i, err; - - // Every input buffer keeps its own state - for (i = 0; i < sizeof(mBufferHandleMaps) / sizeof(mBufferHandleMaps[0]); i++) { - if (mBufferHandleMaps[i].mHeader == pBuffer) - break; - } - if (i == sizeof(mBufferHandleMaps) / sizeof(mBufferHandleMaps[0])) { - for (i = 0; i < sizeof(mBufferHandleMaps) / sizeof(mBufferHandleMaps[0]); i++) { - if (mBufferHandleMaps[i].mHeader == NULL) { - mBufferHandleMaps[i].mHeader = pBuffer; - break; - } - } - } - - if(i >= sizeof(mBufferHandleMaps) / sizeof(mBufferHandleMaps[0])) - { - LOGE("mBufferHandleMaps array index out of bound\n"); - return -1; - } - - // Backup input buffer content - memcpy(mBufferHandleMaps[i].backBuffer, pBuffer->pBuffer, - pBuffer->nFilledLen); - - // Get source buffer handle - memcpy(&mBufferHandleMaps[i].srcBuffer, pBuffer->pBuffer + 4, 4); - - // Color space conversion -#ifdef MRFLD_OMX - err = mGrallocMod->Blit(mGrallocMod, (native_handle_t*)mBufferHandleMaps[i].srcBuffer, - (native_handle_t*)mBufferHandleMaps[i].mHandle, - mEncoderParams->resolution.width, mEncoderParams->resolution.height, 0, 0, 1); - ALOGE_IF(err, "Blit2(mBufferHandleMaps[%d].srcBuffer)", i); -#else - err = mGrallocMod->Blit2(mGrallocMod, (native_handle_t*)mBufferHandleMaps[i].srcBuffer, - (native_handle_t*)mBufferHandleMaps[i].mHandle, - mEncoderParams->resolution.width, mEncoderParams->resolution.height, 0, 0); - ALOGE_IF(err, "Blit2(mBufferHandleMaps[%d].srcBuffer)", i); -#endif - - // Wrap destination buffer handle to encoder's input format - uint8_t* metadata = NULL; - uint32_t len = 0; - - IntelMetadataBuffer imb(MetadataBufferTypeGrallocSource, (int32_t)mBufferHandleMaps[i].mHandle); - imb.Serialize(metadata, len); - memcpy(pBuffer->pBuffer,metadata, len); - pBuffer->nFilledLen = len; - - return i; - -} -#endif diff --git a/videocodec/OMXVideoEncoderBase.h b/videocodec/OMXVideoEncoderBase.h index e0dc868..497722f 100644 --- a/videocodec/OMXVideoEncoderBase.h +++ b/videocodec/OMXVideoEncoderBase.h @@ -20,19 +20,12 @@ #define OMX_VIDEO_ENCODER_BASE_H_ #include "OMXComponentCodecBase.h" -#include <IntelBufferSharing.h> #include <va/va_tpi.h> #include <va/va_android.h> #include <VideoEncoderHost.h> -#ifdef IMG_GFX -#include <hal/hal_public.h> -#endif using android::sp; -#define SHARED_BUFFER_CNT 7 -#define OMX_COLOR_FormatAndroidOpaque 0x7F000789 - class OMXVideoEncoderBase : public OMXComponentCodecBase { public: OMXVideoEncoderBase(); @@ -114,23 +107,6 @@ private: OUTPORT_BUFFER_SIZE = 1382400, }; -public: -#ifdef IMG_GFX - struct { - OMX_BUFFERHEADERTYPE* mHeader; - buffer_handle_t srcBuffer; - uint8_t backBuffer[4 + sizeof(buffer_handle_t)]; - IMG_native_handle_t* mHandle; - int32_t mStride; - void *vaddr[3]; - } mBufferHandleMaps[INPORT_ACTUAL_BUFFER_COUNT]; - alloc_device_t *mAllocDev; - IMG_gralloc_module_public_t const *mGrallocMod; - int32_t mCurHandle; - int32_t rgba2nv12conversion(OMX_BUFFERHEADERTYPE*); -#endif - OMX_BOOL bAndroidOpaqueFormat; - }; #endif /* OMX_VIDEO_ENCODER_BASE_H_ */ diff --git a/videocodec/OMXVideoEncoderH263.cpp b/videocodec/OMXVideoEncoderH263.cpp index f2b3624..bac58d0 100644 --- a/videocodec/OMXVideoEncoderH263.cpp +++ b/videocodec/OMXVideoEncoderH263.cpp @@ -111,14 +111,6 @@ OMX_ERRORTYPE OMXVideoEncoderH263::ProcessorProcess( goto out; } -#ifdef IMG_GFX - if (bAndroidOpaqueFormat) { - mCurHandle = rgba2nv12conversion(buffers[INPORT_INDEX]); - if (mCurHandle < 0) - return OMX_ErrorUndefined; - } -#endif - inBuf.data = buffers[INPORT_INDEX]->pBuffer + buffers[INPORT_INDEX]->nOffset; inBuf.size = buffers[INPORT_INDEX]->nFilledLen; inBuf.type = FTYPE_UNKNOWN; @@ -243,16 +235,6 @@ out: if (retains[OUTPORT_INDEX] == BUFFER_RETAIN_NOT_RETAIN) mFrameOutputCount ++; -#ifdef IMG_GFX - if (bAndroidOpaqueFormat && buffers[INPORT_INDEX]->nFilledLen != 0) { - // Restore input buffer's content - buffers[INPORT_INDEX]->nFilledLen = 4 + sizeof(buffer_handle_t); - memcpy(buffers[INPORT_INDEX]->pBuffer, mBufferHandleMaps[mCurHandle].backBuffer, - buffers[INPORT_INDEX]->nFilledLen); - - } -#endif - LOGV_IF(oret == OMX_ErrorNone, "%s(),%d: exit, encode is done\n", __func__, __LINE__); return oret; diff --git a/videocodec/OMXVideoEncoderMPEG4.cpp b/videocodec/OMXVideoEncoderMPEG4.cpp index a59dc37..c8c2a2b 100644 --- a/videocodec/OMXVideoEncoderMPEG4.cpp +++ b/videocodec/OMXVideoEncoderMPEG4.cpp @@ -108,14 +108,6 @@ OMX_ERRORTYPE OMXVideoEncoderMPEG4::ProcessorProcess( inBuf.flag = 0; inBuf.timeStamp = buffers[INPORT_INDEX]->nTimeStamp; -#ifdef IMG_GFX - if (bAndroidOpaqueFormat) { - mCurHandle = rgba2nv12conversion(buffers[INPORT_INDEX]); - if (mCurHandle < 0) - return OMX_ErrorUndefined; - } -#endif - LOGV("inBuf.data=%x, size=%d", (unsigned)inBuf.data, inBuf.size); outBuf.data = @@ -242,16 +234,6 @@ out: if (retains[OUTPORT_INDEX] == BUFFER_RETAIN_NOT_RETAIN) mFrameOutputCount ++; -#ifdef IMG_GFX - if (bAndroidOpaqueFormat && buffers[INPORT_INDEX]->nFilledLen != 0) { - // Restore input buffer's content - buffers[INPORT_INDEX]->nFilledLen = 4 + sizeof(buffer_handle_t); - memcpy(buffers[INPORT_INDEX]->pBuffer, mBufferHandleMaps[mCurHandle].backBuffer, - buffers[INPORT_INDEX]->nFilledLen); - - } -#endif - return oret; } |
