merge in lmp-mr1-nova-release history after reset to lmp-mr1-dev
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 @@
     CHECK_TYPE_HEADER(param);
     CHECK_PORT_INDEX_RANGE(param);
     CHECK_SET_PARAM_STATE();
-    if (!param->enable) {
-        mWorkingMode = RAWDATA_MODE;
-        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));
+
+    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;
     port_def.nBufferCountMin = mNativeBufferCount;
     if (mEnableAdaptivePlayback) {
         SetMaxOutputBufferCount(&port_def);