aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWeian Chen <weian.chen@intel.com>2012-02-22 03:26:52 -0500
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:02:46 -0700
commit747c717e9477b5b660f39a2b737de5e968fa7f9d (patch)
treeed7dc9f78715b71b401b1c296825687f454060e2
parent22b1d83d8fe1abd7b218049af9a577522aa5d49c (diff)
downloadandroid_hardware_intel_common_omx-components-747c717e9477b5b660f39a2b737de5e968fa7f9d.tar.gz
android_hardware_intel_common_omx-components-747c717e9477b5b660f39a2b737de5e968fa7f9d.tar.bz2
android_hardware_intel_common_omx-components-747c717e9477b5b660f39a2b737de5e968fa7f9d.zip
omx-components: code cleanup along with one Queue buffer management support
BZ: 24552 code cleanup along with one Queue buffer management support (from Andy) Signed-off-by: Weian Chen <weian.chen@intel.com> Change-Id: I75c7f9c6058602b0cd67e1edbc7d5300ca9e0c76 Reviewed-on: http://android.intel.com:8080/36139 Reviewed-by: Chen, Weian <weian.chen@intel.com> Reviewed-by: Qiu, Junhai <junhai.qiu@intel.com> Reviewed-by: Ding, Haitao <haitao.ding@intel.com> Tested-by: Ding, Haitao <haitao.ding@intel.com> Reviewed-by: buildbot <buildbot@intel.com> Tested-by: buildbot <buildbot@intel.com>
-rw-r--r--videocodec/OMXVideoDecoderAVC.cpp29
-rw-r--r--videocodec/OMXVideoDecoderAVC.h4
-rw-r--r--videocodec/OMXVideoDecoderBase.cpp149
-rw-r--r--videocodec/OMXVideoDecoderBase.h10
-rw-r--r--videocodec/OMXVideoDecoderH263.cpp26
-rw-r--r--videocodec/OMXVideoDecoderH263.h1
-rw-r--r--videocodec/OMXVideoDecoderMPEG4.cpp25
-rw-r--r--videocodec/OMXVideoDecoderMPEG4.h1
-rw-r--r--videocodec/OMXVideoDecoderPAVC.cpp29
-rw-r--r--videocodec/OMXVideoDecoderPAVC.h1
-rw-r--r--videocodec/OMXVideoDecoderWMV.cpp28
-rw-r--r--videocodec/OMXVideoDecoderWMV.h1
12 files changed, 61 insertions, 243 deletions
diff --git a/videocodec/OMXVideoDecoderAVC.cpp b/videocodec/OMXVideoDecoderAVC.cpp
index 02d0c78..60a39e3 100644
--- a/videocodec/OMXVideoDecoderAVC.cpp
+++ b/videocodec/OMXVideoDecoderAVC.cpp
@@ -36,6 +36,8 @@ OMXVideoDecoderAVC::OMXVideoDecoderAVC()
if (!mVideoDecoder) {
LOGE("createVideoDecoder failed for \"%s\"", AVC_MIME_TYPE);
}
+ // Override default native buffer count defined in the base class
+ mNativeBufferCount = OUTPORT_NATIVE_BUFFER_COUNT;
BuildHandlerList();
}
@@ -223,7 +225,6 @@ OMX_ERRORTYPE OMXVideoDecoderAVC::BuildHandlerList(void) {
OMXVideoDecoderBase::BuildHandlerList();
AddHandler(OMX_IndexParamVideoAvc, GetParamVideoAvc, SetParamVideoAvc);
AddHandler((OMX_INDEXTYPE)OMX_IndexParamIntelAVCDecodeSettings, GetParamIntelAVCDecodeSettings, SetParamIntelAVCDecodeSettings);
- AddHandler(static_cast<OMX_INDEXTYPE>(OMX_IndexExtEnableNativeBuffer),GetNativeBufferMode,SetNativeBufferMode);
AddHandler(OMX_IndexParamVideoProfileLevelQuerySupported, GetParamVideoAVCProfileLevel, SetParamVideoAVCProfileLevel);
return OMX_ErrorNone;
}
@@ -275,32 +276,6 @@ OMX_ERRORTYPE OMXVideoDecoderAVC::SetParamIntelAVCDecodeSettings(OMX_PTR pStruct
return OMX_ErrorNone;
}
-OMX_ERRORTYPE OMXVideoDecoderAVC::GetNativeBufferMode(OMX_PTR pStructure) {
- OMX_ERRORTYPE ret;
- return OMX_ErrorNone; //would not be here
-}
-
-#define MAX_OUTPUT_BUFFER_COUNT_FOR_AVC 16+1+6
-OMX_ERRORTYPE OMXVideoDecoderAVC::SetNativeBufferMode(OMX_PTR pStructure) {
- OMX_ERRORTYPE ret;
-
- //CHECK_TYPE_HEADER(param);
- CHECK_SET_PARAM_STATE();
- mNativeBufferMode = true;
- PortVideo *port = NULL;
- port = static_cast<PortVideo *>(this->ports[OUTPORT_INDEX]);
-
- OMX_PARAM_PORTDEFINITIONTYPE port_def;
- memcpy(&port_def,port->GetPortDefinition(),sizeof(port_def));
- port_def.nBufferCountMin = 1;
- port_def.nBufferCountActual = MAX_OUTPUT_BUFFER_COUNT_FOR_AVC;
- port_def.format.video.cMIMEType = (OMX_STRING)VA_VED_RAW_MIME_TYPE;
- port_def.format.video.eColorFormat = static_cast<OMX_COLOR_FORMATTYPE>(VA_VED_COLOR_FORMAT);
- port->SetPortDefinition(&port_def,true);
-
- return OMX_ErrorNone;
-}
-
OMX_ERRORTYPE OMXVideoDecoderAVC::GetParamVideoAVCProfileLevel(OMX_PTR pStructure) {
OMX_ERRORTYPE ret;
OMX_VIDEO_PARAM_PROFILELEVELTYPE *p = (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)pStructure;
diff --git a/videocodec/OMXVideoDecoderAVC.h b/videocodec/OMXVideoDecoderAVC.h
index 4bd98c8..173044c 100644
--- a/videocodec/OMXVideoDecoderAVC.h
+++ b/videocodec/OMXVideoDecoderAVC.h
@@ -41,7 +41,6 @@ protected:
virtual OMX_ERRORTYPE BuildHandlerList(void);
DECLARE_HANDLER(OMXVideoDecoderAVC, ParamVideoAvc);
DECLARE_HANDLER(OMXVideoDecoderAVC, ParamIntelAVCDecodeSettings);
- DECLARE_HANDLER(OMXVideoDecoderAVC,NativeBufferMode);
DECLARE_HANDLER(OMXVideoDecoderAVC, ParamVideoAVCProfileLevel);
private:
@@ -62,6 +61,9 @@ private:
// extra number of reference frame to allocate for video conferencing use case.
// total number of reference frame allocated by default in video conferencing use case is 10.
EXTRA_REFERENCE_FRAME = 6,
+
+ // max DBP + EXTRA_REFERENCE_FRAME + 1
+ OUTPORT_NATIVE_BUFFER_COUNT = 23,
};
OMX_VIDEO_PARAM_AVCTYPE mParamAvc;
diff --git a/videocodec/OMXVideoDecoderBase.cpp b/videocodec/OMXVideoDecoderBase.cpp
index 8d03e9e..a99f87e 100644
--- a/videocodec/OMXVideoDecoderBase.cpp
+++ b/videocodec/OMXVideoDecoderBase.cpp
@@ -27,9 +27,10 @@ static const uint32_t VA_COLOR_FORMAT = 0x7FA00E00;
OMXVideoDecoderBase::OMXVideoDecoderBase()
: mVideoDecoder(NULL),
mNativeBufferMode(false),
+ mNativeBufferCount(OUTPORT_NATIVE_BUFFER_COUNT),
mOMXBufferHeaderTypePtrNum(0),
mGraphicBuffercolorformat(0),
- mGraphicBufferStride(0){
+ mGraphicBufferStride(0) {
}
OMXVideoDecoderBase::~OMXVideoDecoderBase() {
@@ -234,7 +235,7 @@ OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorFlush(OMX_U32 portIndex) {
return OMX_ErrorNone;
}
-OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorPreFreeBuffer(OMX_U32 nPortIndex,OMX_BUFFERHEADERTYPE * pBuffer) {
+OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorPreFreeBuffer(OMX_U32 nPortIndex, OMX_BUFFERHEADERTYPE * pBuffer) {
if (mNativeBufferMode)
return OMX_ErrorNone;
@@ -246,7 +247,7 @@ OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorPreFreeBuffer(OMX_U32 nPortIndex,OMX
return OMX_ErrorNone;
}
- OMX_ERRORTYPE OMXVideoDecoderBase::PreProcessBuffer(OMX_BUFFERHEADERTYPE* buffer) {
+ OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorPreFillBuffer(OMX_BUFFERHEADERTYPE* buffer) {
if (mNativeBufferMode && buffer->nOutputPortIndex == OUTPORT_INDEX){
Decode_Status status;
@@ -254,7 +255,7 @@ OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorPreFreeBuffer(OMX_U32 nPortIndex,OMX
LOGE("PreProcessBuffer: Video decoder is not created");
return OMX_ErrorDynamicResourcesUnavailable;
}
- status = mVideoDecoder->SignalRenderDoneFlag(buffer->pBuffer);
+ status = mVideoDecoder->signalRenderDone(buffer->pBuffer);
if (status != DECODE_SUCCESS) {
return TranslateDecodeStatus(status);
@@ -267,55 +268,6 @@ OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorPreFreeBuffer(OMX_U32 nPortIndex,OMX
return OMX_ErrorNone;
}
-
- OMX_ERRORTYPE OMXVideoDecoderBase::PreProcessBufferQueue_Locked(void) {
- if(!mNativeBufferMode )
- return OMX_ErrorNone;
- Decode_Status status = DECODE_SUCCESS;
- PortBase *port_out = this->ports[OUTPORT_INDEX];
-
- OMX_BUFFERHEADERTYPE *buffer = NULL;
- OMX_BUFFERHEADERTYPE *buffer_head = NULL;
- bool used = false;
-
- OMX_U32 len = port_out->BufferQueueLength();
- //check the buffer from buffer queue. used means cannot be used to decode
- for( OMX_U32 i=0; i <len; i++){
- buffer = port_out->PopBuffer();
- if(buffer == NULL)
- break;
- status = mVideoDecoder->GetNativeBufferStatus(buffer->pBuffer,&used);
- if(status != DECODE_SUCCESS){
- LOGW("GetNativeBufferStatus returned status =%d",status);
- }
- if(used){
- port_out->MixPushThisBuffer(buffer);
- }
- else{
- port_out->PushThisBuffer(buffer);
- }
- }
- //check the buffer from mix buffer queue,
- len = port_out->MixBufferQueueLength();
- for( OMX_U32 i=0; i <len; i++){
- buffer = port_out->MixPopBuffer();
- if(buffer == NULL)
- break;
- mVideoDecoder->GetNativeBufferStatus(buffer->pBuffer,&used);
- if(status != DECODE_SUCCESS){
- LOGW("GetNativeBufferStatus returned status =%d",status);
- }
- if(used){
- port_out->MixPushThisBuffer(buffer);
- }
- else{
- port_out->PushThisBuffer(buffer);
- }
- }
-
- return OMX_ErrorNone;
-}
-
OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorProcess(
OMX_BUFFERHEADERTYPE ***pBuffers,
buffer_retain_t *retains,
@@ -324,7 +276,7 @@ OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorProcess(
OMX_ERRORTYPE ret;
Decode_Status status;
// fill render buffer without draining decoder output queue
- ret = FillRenderBuffer(pBuffers[OUTPORT_INDEX], 0);
+ ret = FillRenderBuffer(pBuffers[OUTPORT_INDEX], &retains[OUTPORT_INDEX], 0);
if (ret == OMX_ErrorNone) {
retains[INPORT_INDEX] = BUFFER_RETAIN_GETAGAIN;
// TODO: continue decoding
@@ -388,7 +340,7 @@ OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorProcess(
}
}
// drain the decoder output queue when in EOS state and fill the render buffer
- ret = FillRenderBuffer(pBuffers[OUTPORT_INDEX], ((*pBuffers[INPORT_INDEX]))->nFlags);
+ ret = FillRenderBuffer(pBuffers[OUTPORT_INDEX], &retains[OUTPORT_INDEX], ((*pBuffers[INPORT_INDEX]))->nFlags);
if (ret == OMX_ErrorNotReady) {
retains[OUTPORT_INDEX] = BUFFER_RETAIN_GETAGAIN;
@@ -398,6 +350,18 @@ OMX_ERRORTYPE OMXVideoDecoderBase::ProcessorProcess(
return ret;
}
+bool OMXVideoDecoderBase::IsAllBufferAvailable(void) {
+ bool b = ComponentBase::IsAllBufferAvailable();
+ if (b == false) {
+ return false;
+ }
+
+ if (mVideoDecoder) {
+ return mVideoDecoder->checkBufferAvail();
+ }
+ return false;
+}
+
OMX_ERRORTYPE OMXVideoDecoderBase::PrepareConfigBuffer(VideoConfigBuffer *p) {
// default config buffer preparation
memset(p, 0, sizeof(VideoConfigBuffer));
@@ -479,7 +443,7 @@ OMX_ERRORTYPE OMXVideoDecoderBase::PrepareDecodeBuffer(OMX_BUFFERHEADERTYPE *buf
return OMX_ErrorNone;
}
-OMX_ERRORTYPE OMXVideoDecoderBase::FillRenderBuffer(OMX_BUFFERHEADERTYPE **pBuffer, OMX_U32 inportBufferFlags) {
+OMX_ERRORTYPE OMXVideoDecoderBase::FillRenderBuffer(OMX_BUFFERHEADERTYPE **pBuffer, buffer_retain_t *retain, OMX_U32 inportBufferFlags) {
OMX_BUFFERHEADERTYPE *buffer = *pBuffer;
OMX_BUFFERHEADERTYPE *buffer_orign = buffer;
@@ -512,51 +476,10 @@ OMX_ERRORTYPE OMXVideoDecoderBase::FillRenderBuffer(OMX_BUFFERHEADERTYPE **pBuff
buffer->nTimeStamp = renderBuffer->timeStamp;
if (mNativeBufferMode) {
-
- PortBase *port_out = this->ports[OUTPORT_INDEX];
- //check orign buffer
- if(buffer_orign != buffer) {
-
- bool used = false;
- mVideoDecoder->GetNativeBufferStatus(buffer_orign->pBuffer,&used);
- if(used){
- port_out->MixPushThisBuffer(buffer_orign);
- }else{
- port_out->PushThisBuffer(buffer_orign);
- }
-
- //need pop the returing buffer from mix used buffer queue
- OMX_U32 len = port_out->MixBufferQueueLength();
- OMX_BUFFERHEADERTYPE *temp = NULL;
- for(OMX_U32 i = 0 ; i < len; i++) {
- temp = port_out->MixPopBuffer();
- if(temp == NULL)
- break;
- if(temp == buffer) {
- LOGV("FillRenderBuffer Poped buffer = %p from mix queue",temp);
- break;
- }
- else {
- port_out->MixPushThisBuffer(temp);
- }
- }
-
- // make sure the render buffer has been moved out of bufferq
- len = port_out->BufferQueueLength();
- for(OMX_U32 i = 0; i < len; i++) {
- temp = port_out->PopBuffer();
- if(temp == NULL)
- break;
- if(temp == buffer) {
- LOGV("FillRenderBuffer Poped buffer = %p from buffer queue",temp);
- break;
- }
- else {
- port_out->PushThisBuffer(temp);
- }
- }
+ if (buffer_orign != buffer) {
+ *retain = BUFFER_RETAIN_OVERRIDDEN;
}
- buffer->nFilledLen = sizeof(OMX_U8*);
+ buffer->nFilledLen = sizeof(OMX_U8*);
} else {
MapRawNV12(renderBuffer, buffer->pBuffer + buffer->nOffset, buffer->nFilledLen);
buffer->pPlatformPrivate = (void *)renderBuffer;
@@ -679,6 +602,7 @@ OMX_ERRORTYPE OMXVideoDecoderBase::BuildHandlerList(void) {
//AddHandler(PV_OMX_COMPONENT_CAPABILITY_TYPE_INDEX, GetCapabilityFlags, SetCapabilityFlags);
AddHandler(static_cast<OMX_INDEXTYPE>(OMX_IndexExtGetNativeBufferUsage),GetNativeBufferUsage,SetNativeBufferUsage);
AddHandler(static_cast<OMX_INDEXTYPE>(OMX_IndexExtUseNativeBuffer),GetNativeBuffer,SetNativeBuffer);
+ AddHandler(static_cast<OMX_INDEXTYPE>(OMX_IndexExtEnableNativeBuffer),GetNativeBufferMode,SetNativeBufferMode);
return OMX_ErrorNone;
}
@@ -755,6 +679,31 @@ OMX_ERRORTYPE OMXVideoDecoderBase::SetNativeBuffer(OMX_PTR pStructure) {
return OMX_ErrorNone;
}
+OMX_ERRORTYPE OMXVideoDecoderBase::GetNativeBufferMode(OMX_PTR pStructure) {
+ LOGE("GetNativeBufferMode is not implemented");
+ return OMX_ErrorNotImplemented;
+}
+
+OMX_ERRORTYPE OMXVideoDecoderBase::SetNativeBufferMode(OMX_PTR pStructure) {
+ OMX_ERRORTYPE ret;
+
+ //CHECK_TYPE_HEADER(param);
+ CHECK_SET_PARAM_STATE();
+ mNativeBufferMode = true;
+ PortVideo *port = NULL;
+ port = static_cast<PortVideo *>(this->ports[OUTPORT_INDEX]);
+
+ OMX_PARAM_PORTDEFINITIONTYPE port_def;
+ memcpy(&port_def,port->GetPortDefinition(),sizeof(port_def));
+ port_def.nBufferCountMin = 1;
+ port_def.nBufferCountActual = mNativeBufferCount;
+ port_def.format.video.cMIMEType = (OMX_STRING)VA_VED_RAW_MIME_TYPE;
+ port_def.format.video.eColorFormat = static_cast<OMX_COLOR_FORMATTYPE>(VA_VED_COLOR_FORMAT);
+ port->SetPortDefinition(&port_def,true);
+
+ return OMX_ErrorNone;
+}
+
OMX_ERRORTYPE OMXVideoDecoderBase::MapRawNV12(const VideoRenderBuffer* renderBuffer, OMX_U8 *rawData, OMX_U32& size) {
VAStatus vaStatus;
diff --git a/videocodec/OMXVideoDecoderBase.h b/videocodec/OMXVideoDecoderBase.h
index 7d67ed9..49449cc 100644
--- a/videocodec/OMXVideoDecoderBase.h
+++ b/videocodec/OMXVideoDecoderBase.h
@@ -50,12 +50,12 @@ protected:
buffer_retain_t *retains,
OMX_U32 numberBuffers);
- virtual OMX_ERRORTYPE PreProcessBuffer(OMX_BUFFERHEADERTYPE* buffer);
- virtual OMX_ERRORTYPE PreProcessBufferQueue_Locked();
+ virtual bool IsAllBufferAvailable(void);
+ virtual OMX_ERRORTYPE ProcessorPreFillBuffer(OMX_BUFFERHEADERTYPE* buffer);
virtual OMX_ERRORTYPE ProcessorPreFreeBuffer(OMX_U32 nPortIndex,OMX_BUFFERHEADERTYPE * pBuffer);
virtual OMX_ERRORTYPE PrepareConfigBuffer(VideoConfigBuffer *p);
virtual OMX_ERRORTYPE PrepareDecodeBuffer(OMX_BUFFERHEADERTYPE *buffer, buffer_retain_t *retain, VideoDecodeBuffer *p);
- virtual OMX_ERRORTYPE FillRenderBuffer(OMX_BUFFERHEADERTYPE **pBuffer, OMX_U32 inportBufferFlags);
+ virtual OMX_ERRORTYPE FillRenderBuffer(OMX_BUFFERHEADERTYPE **pBuffer, buffer_retain_t *retain, OMX_U32 inportBufferFlags);
virtual OMX_ERRORTYPE HandleFormatChange(void);
virtual OMX_ERRORTYPE TranslateDecodeStatus(Decode_Status status);
virtual OMX_ERRORTYPE MapRawNV12(const VideoRenderBuffer* renderBuffer, OMX_U8 *rawData, OMX_U32& size);
@@ -65,6 +65,7 @@ protected:
DECLARE_HANDLER(OMXVideoDecoderBase, CapabilityFlags);
DECLARE_HANDLER(OMXVideoDecoderBase, NativeBufferUsage);
DECLARE_HANDLER(OMXVideoDecoderBase, NativeBuffer);
+ DECLARE_HANDLER(OMXVideoDecoderBase, NativeBufferMode);
private:
enum {
@@ -77,6 +78,8 @@ private:
OUTPORT_MIN_BUFFER_COUNT = 1,
OUTPORT_ACTUAL_BUFFER_COUNT = 4,
OUTPORT_BUFFER_SIZE = 1382400,
+
+ OUTPORT_NATIVE_BUFFER_COUNT = 10,
};
uint32_t mOMXBufferHeaderTypePtrNum;
OMX_BUFFERHEADERTYPE *mOMXBufferHeaderTypePtrArray[MAX_GRAPHIC_NUM];
@@ -86,6 +89,7 @@ private:
protected:
IVideoDecoder *mVideoDecoder;
bool mNativeBufferMode;
+ int mNativeBufferCount;
};
#endif /* OMX_VIDEO_DECODER_BASE_H_ */
diff --git a/videocodec/OMXVideoDecoderH263.cpp b/videocodec/OMXVideoDecoderH263.cpp
index bf4f394..233e605 100644
--- a/videocodec/OMXVideoDecoderH263.cpp
+++ b/videocodec/OMXVideoDecoderH263.cpp
@@ -82,7 +82,6 @@ OMX_ERRORTYPE OMXVideoDecoderH263::PrepareDecodeBuffer(OMX_BUFFERHEADERTYPE *buf
OMX_ERRORTYPE OMXVideoDecoderH263::BuildHandlerList(void) {
OMXVideoDecoderBase::BuildHandlerList();
AddHandler(OMX_IndexParamVideoH263, GetParamVideoH263, SetParamVideoH263);
- AddHandler(static_cast<OMX_INDEXTYPE>(OMX_IndexExtEnableNativeBuffer),GetNativeBufferMode,SetNativeBufferMode);
AddHandler(OMX_IndexParamVideoProfileLevelQuerySupported, GetParamVideoH263ProfileLevel, SetParamVideoH263ProfileLevel);
return OMX_ErrorNone;
}
@@ -110,31 +109,6 @@ OMX_ERRORTYPE OMXVideoDecoderH263::SetParamVideoH263(OMX_PTR pStructure) {
return OMX_ErrorNone;
}
-OMX_ERRORTYPE OMXVideoDecoderH263::GetNativeBufferMode(OMX_PTR pStructure) {
- OMX_ERRORTYPE ret;
- return OMX_ErrorNone; //would not be here
-}
-
-#define MAX_OUTPUT_BUFFER_COUNT_FOR_H263 10
-
-OMX_ERRORTYPE OMXVideoDecoderH263::SetNativeBufferMode(OMX_PTR pStructure) {
- OMX_ERRORTYPE ret;
- CHECK_SET_PARAM_STATE();
- //EnableAndroidNativeBuffersParams *param = (EnableAndroidNativeBuffersParams*)pStructure;
- //CHECK_TYPE_HEADER(param);
- mNativeBufferMode = true;
- PortVideo *port = NULL;
- port = static_cast<PortVideo *>(this->ports[OUTPORT_INDEX]);
- OMX_PARAM_PORTDEFINITIONTYPE port_def;
- memcpy(&port_def,port->GetPortDefinition(),sizeof(port_def));
- port_def.nBufferCountMin = 1;
- port_def.nBufferCountActual = MAX_OUTPUT_BUFFER_COUNT_FOR_H263;
- port_def.format.video.cMIMEType = (OMX_STRING)VA_VED_RAW_MIME_TYPE;
- port_def.format.video.eColorFormat =static_cast<OMX_COLOR_FORMATTYPE>(VA_VED_COLOR_FORMAT) ;//
- port->SetPortDefinition(&port_def,true);
- return OMX_ErrorNone;
-}
-
OMX_ERRORTYPE OMXVideoDecoderH263::GetParamVideoH263ProfileLevel(OMX_PTR pStructure) {
OMX_ERRORTYPE ret;
OMX_VIDEO_PARAM_PROFILELEVELTYPE *p = (OMX_VIDEO_PARAM_PROFILELEVELTYPE *)pStructure;
diff --git a/videocodec/OMXVideoDecoderH263.h b/videocodec/OMXVideoDecoderH263.h
index 8b27d36..9d5ff12 100644
--- a/videocodec/OMXVideoDecoderH263.h
+++ b/videocodec/OMXVideoDecoderH263.h
@@ -40,7 +40,6 @@ protected:
virtual OMX_ERRORTYPE BuildHandlerList(void);
DECLARE_HANDLER(OMXVideoDecoderH263, ParamVideoH263);
- DECLARE_HANDLER(OMXVideoDecoderH263,NativeBufferMode);
DECLARE_HANDLER(OMXVideoDecoderH263, ParamVideoH263ProfileLevel);
private:
diff --git a/videocodec/OMXVideoDecoderMPEG4.cpp b/videocodec/OMXVideoDecoderMPEG4.cpp
index 9d24161..c96cd85 100644
--- a/videocodec/OMXVideoDecoderMPEG4.cpp
+++ b/videocodec/OMXVideoDecoderMPEG4.cpp
@@ -82,7 +82,6 @@ OMX_ERRORTYPE OMXVideoDecoderMPEG4::PrepareDecodeBuffer(OMX_BUFFERHEADERTYPE *bu
OMX_ERRORTYPE OMXVideoDecoderMPEG4::BuildHandlerList(void) {
OMXVideoDecoderBase::BuildHandlerList();
AddHandler(OMX_IndexParamVideoMpeg4, GetParamVideoMpeg4, SetParamVideoMpeg4);
- AddHandler(static_cast<OMX_INDEXTYPE>(OMX_IndexExtEnableNativeBuffer),GetNativeBufferMode,SetNativeBufferMode);
AddHandler(OMX_IndexParamVideoProfileLevelQuerySupported, GetParamVideoMpeg4ProfileLevel, SetParamVideoMpeg4ProfileLevel);
return OMX_ErrorNone;
}
@@ -109,30 +108,6 @@ OMX_ERRORTYPE OMXVideoDecoderMPEG4::SetParamVideoMpeg4(OMX_PTR pStructure) {
memcpy(&mParamMpeg4, p, sizeof(mParamMpeg4));
return OMX_ErrorNone;
}
-OMX_ERRORTYPE OMXVideoDecoderMPEG4::GetNativeBufferMode(OMX_PTR pStructure) {
- OMX_ERRORTYPE ret;
- return OMX_ErrorNone; //would not be here
-}
-
-
-#define MAX_OUTPUT_BUFFER_COUNT_FOR_MPEG4 10
-OMX_ERRORTYPE OMXVideoDecoderMPEG4::SetNativeBufferMode(OMX_PTR pStructure) {
- OMX_ERRORTYPE ret;
- //EnableAndroidNativeBuffersParams *param = (EnableAndroidNativeBuffersParams*)pStructure;
- //CHECK_TYPE_HEADER(param);
- CHECK_SET_PARAM_STATE();
- mNativeBufferMode = true;
- PortVideo *port = NULL;
- port = static_cast<PortVideo *>(this->ports[OUTPORT_INDEX]);
- OMX_PARAM_PORTDEFINITIONTYPE port_def;
- memcpy(&port_def,port->GetPortDefinition(),sizeof(port_def));
- port_def.nBufferCountMin = 1;
- port_def.nBufferCountActual = MAX_OUTPUT_BUFFER_COUNT_FOR_MPEG4;
- port_def.format.video.cMIMEType = (OMX_STRING)VA_VED_RAW_MIME_TYPE;
- port_def.format.video.eColorFormat =static_cast<OMX_COLOR_FORMATTYPE>(VA_VED_COLOR_FORMAT);
- port->SetPortDefinition(&port_def,true);
- return OMX_ErrorNone;
-}
OMX_ERRORTYPE OMXVideoDecoderMPEG4::GetParamVideoMpeg4ProfileLevel(OMX_PTR pStructure) {
OMX_ERRORTYPE ret;
diff --git a/videocodec/OMXVideoDecoderMPEG4.h b/videocodec/OMXVideoDecoderMPEG4.h
index 43d35f8..a2bf0e4 100644
--- a/videocodec/OMXVideoDecoderMPEG4.h
+++ b/videocodec/OMXVideoDecoderMPEG4.h
@@ -41,7 +41,6 @@ protected:
virtual OMX_ERRORTYPE BuildHandlerList(void);
DECLARE_HANDLER(OMXVideoDecoderMPEG4, ParamVideoMpeg4);
- DECLARE_HANDLER(OMXVideoDecoderMPEG4,NativeBufferMode);
DECLARE_HANDLER(OMXVideoDecoderMPEG4, ParamVideoMpeg4ProfileLevel);
private:
diff --git a/videocodec/OMXVideoDecoderPAVC.cpp b/videocodec/OMXVideoDecoderPAVC.cpp
index 0510d6f..f1dd34a 100644
--- a/videocodec/OMXVideoDecoderPAVC.cpp
+++ b/videocodec/OMXVideoDecoderPAVC.cpp
@@ -118,8 +118,6 @@ OMX_ERRORTYPE OMXVideoDecoderPAVC::BuildHandlerList(void) {
AddHandler(OMX_IndexParamVideoAvc, GetParamVideoAvc, SetParamVideoAvc);
AddHandler(OMX_IndexParamVideoProfileLevelQuerySupported, GetVideoProfileLevelQuerySupported, SetVideoProfileLevelQuerySupported);
AddHandler(OMX_IndexParamVideoProfileLevelCurrent, GetVideoProfileLevelCurrent, SetVideoProfileLevelCurrent);
- AddHandler(static_cast<OMX_INDEXTYPE>(OMX_IndexExtEnableNativeBuffer),GetNativeBufferMode,SetNativeBufferMode);
-
return OMX_ErrorNone;
}
@@ -204,32 +202,5 @@ OMX_ERRORTYPE OMXVideoDecoderPAVC::SetVideoProfileLevelCurrent(OMX_PTR pStructur
return OMX_ErrorNone;
}
-
-OMX_ERRORTYPE OMXVideoDecoderPAVC::GetNativeBufferMode(OMX_PTR pStructure) {
- OMX_ERRORTYPE ret;
- return OMX_ErrorNone; //would not be here
-}
-
-#define MAX_OUTPUT_BUFFER_COUNT_FOR_PAVC 10
-OMX_ERRORTYPE OMXVideoDecoderPAVC::SetNativeBufferMode(OMX_PTR pStructure) {
- // OMX_ERRORTYPE ret;
- //EnableAndroidNativeBuffersParams *param = (EnableAndroidNativeBuffersParams*)pStructure;
- //CHECK_TYPE_HEADER(param);
- CHECK_SET_PARAM_STATE();
- mNativeBufferMode = true;
- PortVideo *port = NULL;
- port = static_cast<PortVideo *>(this->ports[OUTPORT_INDEX]);
- OMX_PARAM_PORTDEFINITIONTYPE port_def;
- memcpy(&port_def,port->GetPortDefinition(),sizeof(port_def));
- port_def.nBufferCountMin = 1;
- port_def.nBufferCountActual = MAX_OUTPUT_BUFFER_COUNT_FOR_PAVC;
- port_def.format.video.cMIMEType = (OMX_STRING)"video/raw_ve";
- port_def.format.video.eColorFormat =static_cast<OMX_COLOR_FORMATTYPE>(0x7FA00EFF) ;//
- port->SetPortDefinition(&port_def,true);
- return OMX_ErrorNone;
-}
-
-
-
DECLARE_OMX_COMPONENT("OMX.Intel.VideoDecoder.PAVC", "video_decoder.pavc", OMXVideoDecoderPAVC);
diff --git a/videocodec/OMXVideoDecoderPAVC.h b/videocodec/OMXVideoDecoderPAVC.h
index 128f47c..da4f7ad 100644
--- a/videocodec/OMXVideoDecoderPAVC.h
+++ b/videocodec/OMXVideoDecoderPAVC.h
@@ -42,7 +42,6 @@ protected:
DECLARE_HANDLER(OMXVideoDecoderPAVC, ParamVideoAvc);
DECLARE_HANDLER(OMXVideoDecoderPAVC, VideoProfileLevelQuerySupported);
DECLARE_HANDLER(OMXVideoDecoderPAVC, VideoProfileLevelCurrent);
- DECLARE_HANDLER(OMXVideoDecoderPAVC, NativeBufferMode);
private:
diff --git a/videocodec/OMXVideoDecoderWMV.cpp b/videocodec/OMXVideoDecoderWMV.cpp
index 659616a..bf3946f 100644
--- a/videocodec/OMXVideoDecoderWMV.cpp
+++ b/videocodec/OMXVideoDecoderWMV.cpp
@@ -80,7 +80,6 @@ OMX_ERRORTYPE OMXVideoDecoderWMV::PrepareDecodeBuffer(OMX_BUFFERHEADERTYPE *buff
OMX_ERRORTYPE OMXVideoDecoderWMV::BuildHandlerList(void) {
OMXVideoDecoderBase::BuildHandlerList();
AddHandler(OMX_IndexParamVideoWmv, GetParamVideoWmv, SetParamVideoWmv);
- AddHandler(static_cast<OMX_INDEXTYPE>(OMX_IndexExtEnableNativeBuffer),GetNativeBufferMode,SetNativeBufferMode);
return OMX_ErrorNone;
}
@@ -107,33 +106,6 @@ OMX_ERRORTYPE OMXVideoDecoderWMV::SetParamVideoWmv(OMX_PTR pStructure) {
}
-
-OMX_ERRORTYPE OMXVideoDecoderWMV::GetNativeBufferMode(OMX_PTR pStructure) {
- OMX_ERRORTYPE ret;
- return OMX_ErrorNone; //would not be here
-}
-
-#define MAX_OUTPUT_BUFFER_COUNT_FOR_WMV 10
-OMX_ERRORTYPE OMXVideoDecoderWMV::SetNativeBufferMode(OMX_PTR pStructure) {
- //OMX_ERRORTYPE ret;
- //EnableAndroidNativeBuffersParams *param = (EnableAndroidNativeBuffersParams*)pStructure;
- //CHECK_TYPE_HEADER(param);
- CHECK_SET_PARAM_STATE();
- mNativeBufferMode = true;
- PortVideo *port = NULL;
- port = static_cast<PortVideo *>(this->ports[OUTPORT_INDEX]);
- OMX_PARAM_PORTDEFINITIONTYPE port_def;
- memcpy(&port_def,port->GetPortDefinition(),sizeof(port_def));
- port_def.nBufferCountMin = 1;
- port_def.nBufferCountActual = MAX_OUTPUT_BUFFER_COUNT_FOR_WMV;
- port_def.format.video.cMIMEType = (OMX_STRING)"video/raw_ve";
- port_def.format.video.eColorFormat =static_cast<OMX_COLOR_FORMATTYPE>(0x7FA00EFF) ;//
- port->SetPortDefinition(&port_def,true);
- return OMX_ErrorNone;
-}
-
-
-
DECLARE_OMX_COMPONENT("OMX.Intel.VideoDecoder.WMV", "video_decoder.wmv", OMXVideoDecoderWMV);
diff --git a/videocodec/OMXVideoDecoderWMV.h b/videocodec/OMXVideoDecoderWMV.h
index b9702cd..53c2ee8 100644
--- a/videocodec/OMXVideoDecoderWMV.h
+++ b/videocodec/OMXVideoDecoderWMV.h
@@ -41,7 +41,6 @@ protected:
virtual OMX_ERRORTYPE BuildHandlerList(void);
DECLARE_HANDLER(OMXVideoDecoderWMV, ParamVideoWmv);
- DECLARE_HANDLER(OMXVideoDecoderWMV, NativeBufferMode);
private:
enum {