aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuanjun Huang <yuanjun.huang@intel.com>2015-02-11 20:12:07 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-02-11 20:12:07 +0000
commit8bd55dabe11dd10f3d574c80e7f83cfcc3761623 (patch)
tree103914691619362fbc89dc7a751694d36774520b
parentdd7827dfb430e3387352c9085bae3e20bac0a0a1 (diff)
parent7ed7ddf7e571b6d490537f43e043ea067826fd72 (diff)
downloadandroid_hardware_intel_common_omx-components-8bd55dabe11dd10f3d574c80e7f83cfcc3761623.tar.gz
android_hardware_intel_common_omx-components-8bd55dabe11dd10f3d574c80e7f83cfcc3761623.tar.bz2
android_hardware_intel_common_omx-components-8bd55dabe11dd10f3d574c80e7f83cfcc3761623.zip
am 7ed7ddf7: am 15f60f1e: Fix defect when native buffer mode fallbacks to byte-buffer mode (raw data mode). The color format needs to be set to default as non-Intel format.
* commit '7ed7ddf7e571b6d490537f43e043ea067826fd72': Fix defect when native buffer mode fallbacks to byte-buffer mode (raw data mode). The color format needs to be set to default as non-Intel format.
-rw-r--r--videocodec/OMXVideoDecoderBase.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/videocodec/OMXVideoDecoderBase.cpp b/videocodec/OMXVideoDecoderBase.cpp
index 6900d5c..7d1d830 100644
--- a/videocodec/OMXVideoDecoderBase.cpp
+++ b/videocodec/OMXVideoDecoderBase.cpp
@@ -884,16 +884,25 @@ OMX_ERRORTYPE OMXVideoDecoderBase::SetNativeBufferModeSpecific(OMX_PTR pStructur
CHECK_TYPE_HEADER(param);
CHECK_PORT_INDEX_RANGE(param);
CHECK_SET_PARAM_STATE();
+
+ PortVideo *port = NULL;
+ port = static_cast<PortVideo *>(this->ports[OUTPORT_INDEX]);
+ OMX_PARAM_PORTDEFINITIONTYPE port_def;
+ memcpy(&port_def,port->GetPortDefinition(),sizeof(port_def));
+
if (!param->enable) {
mWorkingMode = RAWDATA_MODE;
+ // If it is fallback from native mode the color format has been
+ // already set to INTEL format.
+ // We need to set back the default color format and Native stuff.
+ port_def.format.video.eColorFormat = OMX_COLOR_FormatYUV420SemiPlanar;
+ port_def.format.video.pNativeRender = NULL;
+ port_def.format.video.pNativeWindow = NULL;
+ port->SetPortDefinition(&port_def,true);
return OMX_ErrorNone;
}
- mWorkingMode = GRAPHICBUFFER_MODE;
- PortVideo *port = NULL;
- port = static_cast<PortVideo *>(this->ports[OUTPORT_INDEX]);
- OMX_PARAM_PORTDEFINITIONTYPE port_def;
- memcpy(&port_def,port->GetPortDefinition(),sizeof(port_def));
+ mWorkingMode = GRAPHICBUFFER_MODE;
port_def.nBufferCountMin = mNativeBufferCount;
if (mEnableAdaptivePlayback) {
SetMaxOutputBufferCount(&port_def);