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/OMXVideoDecoderMPEG4.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/OMXVideoDecoderMPEG4.cpp')
| -rw-r--r-- | videocodec/OMXVideoDecoderMPEG4.cpp | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/videocodec/OMXVideoDecoderMPEG4.cpp b/videocodec/OMXVideoDecoderMPEG4.cpp index 850899a..be19d13 100644 --- a/videocodec/OMXVideoDecoderMPEG4.cpp +++ b/videocodec/OMXVideoDecoderMPEG4.cpp @@ -64,11 +64,11 @@ OMX_ERRORTYPE OMXVideoDecoderMPEG4::ProcessorDeinit(void) { } OMX_ERRORTYPE OMXVideoDecoderMPEG4::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 OMXVideoDecoderMPEG4::PrepareConfigBuffer(VideoConfigBuffer *p) { @@ -82,6 +82,7 @@ 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); return OMX_ErrorNone; } @@ -107,6 +108,30 @@ 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; +} DECLARE_OMX_COMPONENT("OMX.Intel.VideoDecoder.MPEG4", "video_decoder.mpeg4", OMXVideoDecoderMPEG4); |
