summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmm-video/qdsp6/venc/omx/src/OMX_Venc.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/mm-video/qdsp6/venc/omx/src/OMX_Venc.cpp b/mm-video/qdsp6/venc/omx/src/OMX_Venc.cpp
index 10a87a63..25f8e2f1 100755
--- a/mm-video/qdsp6/venc/omx/src/OMX_Venc.cpp
+++ b/mm-video/qdsp6/venc/omx/src/OMX_Venc.cpp
@@ -1640,8 +1640,13 @@ OMX_ERRORTYPE Venc::update_param_port_fmt(OMX_IN OMX_VIDEO_PARAM_PORTFORMATTYPE*
return result;
}
-OMX_ERRORTYPE Venc::update_param_port_def(OMX_IN OMX_PARAM_PORTDEFINITIONTYPE* pParam)
+OMX_ERRORTYPE Venc::update_param_port_def(OMX_IN OMX_PARAM_PORTDEFINITIONTYPE* pOrigParam)
{
+ // The code below tries to write to pParam - keep a local
+ // version instead of writing into the user specified data
+ // (which might be in read-only memory in some cases), and
+ // point pParam to that.
+ OMX_PARAM_PORTDEFINITIONTYPE localParam = *pOrigParam, *pParam = &localParam;
OMX_ERRORTYPE result = OMX_ErrorNone;
int rc = 0;
if (pParam != NULL)