aboutsummaryrefslogtreecommitdiffstats
path: root/videocodec/OMXVideoDecoderH263.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/OMXVideoDecoderH263.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/OMXVideoDecoderH263.cpp')
-rw-r--r--videocodec/OMXVideoDecoderH263.cpp30
1 files changed, 28 insertions, 2 deletions
diff --git a/videocodec/OMXVideoDecoderH263.cpp b/videocodec/OMXVideoDecoderH263.cpp
index ce5434c..5cf1d45 100644
--- a/videocodec/OMXVideoDecoderH263.cpp
+++ b/videocodec/OMXVideoDecoderH263.cpp
@@ -64,11 +64,11 @@ OMX_ERRORTYPE OMXVideoDecoderH263::ProcessorDeinit(void) {
}
OMX_ERRORTYPE OMXVideoDecoderH263::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 OMXVideoDecoderH263::PrepareConfigBuffer(VideoConfigBuffer *p) {
@@ -82,6 +82,7 @@ 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);
return OMX_ErrorNone;
}
@@ -108,6 +109,31 @@ 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;
+}
+
DECLARE_OMX_COMPONENT("OMX.Intel.VideoDecoder.H263", "video_decoder.h263", OMXVideoDecoderH263);