aboutsummaryrefslogtreecommitdiffstats
path: root/videocodec/OMXVideoDecoderPAVC.cpp
diff options
context:
space:
mode:
authorxiao <fengx.xiao@intel.com>2011-12-19 12:13:08 +0800
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:02:45 -0700
commitb2257cdcf3ffd7a4a7dedbe4842185689bcf7fb7 (patch)
treeb1e9089d44e0460e870bccd1c3c84e56149f7f9c /videocodec/OMXVideoDecoderPAVC.cpp
parent2bfa6ad0118934357b8eb42c85c5b8d075e0bf23 (diff)
downloadandroid_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.cpp31
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);