diff options
| author | Weian Chen <weian.chen@intel.com> | 2012-02-22 03:26:52 -0500 |
|---|---|---|
| committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:02:46 -0700 |
| commit | 747c717e9477b5b660f39a2b737de5e968fa7f9d (patch) | |
| tree | ed7dc9f78715b71b401b1c296825687f454060e2 | |
| parent | 22b1d83d8fe1abd7b218049af9a577522aa5d49c (diff) | |
| download | android_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.cpp | 29 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderAVC.h | 4 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderBase.cpp | 149 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderBase.h | 10 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderH263.cpp | 26 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderH263.h | 1 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderMPEG4.cpp | 25 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderMPEG4.h | 1 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderPAVC.cpp | 29 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderPAVC.h | 1 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderWMV.cpp | 28 | ||||
| -rw-r--r-- | videocodec/OMXVideoDecoderWMV.h | 1 |
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 { |
