aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhao Liang <leo.zhao@intel.com>2013-11-11 14:38:18 +0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:02:55 -0700
commit34dc9ab15e6b6c6a9bd0c24d1529224e937d429f (patch)
treebbffb5f3368870784374a08cbc5af10b57bd2095
parent7a33c3987cdb244b2661c087cee4b350f6eb1bea (diff)
downloadandroid_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.mk40
-rwxr-xr-xvideocodec/OMXVideoEncoderAVC.cpp18
-rwxr-xr-xvideocodec/OMXVideoEncoderBase.cpp119
-rw-r--r--videocodec/OMXVideoEncoderBase.h24
-rw-r--r--videocodec/OMXVideoEncoderH263.cpp18
-rw-r--r--videocodec/OMXVideoEncoderMPEG4.cpp18
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;
}