diff options
| author | xiao <fengx.xiao@intel.com> | 2011-12-19 12:13:08 +0800 |
|---|---|---|
| committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:02:45 -0700 |
| commit | b2257cdcf3ffd7a4a7dedbe4842185689bcf7fb7 (patch) | |
| tree | b1e9089d44e0460e870bccd1c3c84e56149f7f9c /videocodec/OMXVideoDecoderPAVC.cpp | |
| parent | 2bfa6ad0118934357b8eb42c85c5b8d075e0bf23 (diff) | |
| download | android_hardware_intel_common_omx-components-b2257cdcf3ffd7a4a7dedbe4842185689bcf7fb7.tar.gz android_hardware_intel_common_omx-components-b2257cdcf3ffd7a4a7dedbe4842185689bcf7fb7.tar.bz2 android_hardware_intel_common_omx-components-b2257cdcf3ffd7a4a7dedbe4842185689bcf7fb7.zip | |
Enable native buffer mode in omx components,
clean buffer id mode code
BZ: 18370
Signed-off-by: xiao <fengx.xiao@intel.com>
Change-Id: I001542351b44ad0c3bb21df53717b259edbad830
Reviewed-on: http://android.intel.com:8080/27893
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>
Diffstat (limited to 'videocodec/OMXVideoDecoderPAVC.cpp')
| -rw-r--r-- | videocodec/OMXVideoDecoderPAVC.cpp | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/videocodec/OMXVideoDecoderPAVC.cpp b/videocodec/OMXVideoDecoderPAVC.cpp index 30ec9ca..d9f01b2 100644 --- a/videocodec/OMXVideoDecoderPAVC.cpp +++ b/videocodec/OMXVideoDecoderPAVC.cpp @@ -74,11 +74,11 @@ OMX_ERRORTYPE OMXVideoDecoderPAVC::ProcessorFlush(OMX_U32 portIndex) { } OMX_ERRORTYPE OMXVideoDecoderPAVC::ProcessorProcess( - OMX_BUFFERHEADERTYPE **buffers, + OMX_BUFFERHEADERTYPE ***pBuffers, buffer_retain_t *retains, OMX_U32 numberBuffers) { - return OMXVideoDecoderBase::ProcessorProcess(buffers, retains, numberBuffers); + return OMXVideoDecoderBase::ProcessorProcess(pBuffers, retains, numberBuffers); } OMX_ERRORTYPE OMXVideoDecoderPAVC::PrepareConfigBuffer(VideoConfigBuffer *p) { @@ -115,6 +115,7 @@ 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; } @@ -201,5 +202,31 @@ OMX_ERRORTYPE OMXVideoDecoderPAVC::SetVideoProfileLevelCurrent(OMX_PTR pStructur } +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); |
