omx: handle both errors in the two steps of update_port_definition
authorLuis de Bethencourt <luis.bg@samsung.com>
Fri, 6 Mar 2015 12:03:56 +0000 (12:03 +0000)
committerLuis de Bethencourt <luis.bg@samsung.com>
Fri, 6 Mar 2015 12:06:22 +0000 (12:06 +0000)
Also consider potential errors in the _get_parameter() in the return of the
update_port_definition function.

CID #1287052

omx/gstomx.c

index e439a0e..69696c4 100644 (file)
@@ -1197,7 +1197,7 @@ OMX_ERRORTYPE
 gst_omx_port_update_port_definition (GstOMXPort * port,
     OMX_PARAM_PORTDEFINITIONTYPE * port_def)
 {
-  OMX_ERRORTYPE err = OMX_ErrorNone;
+  OMX_ERRORTYPE err_get, err_set = OMX_ErrorNone;
   GstOMXComponent *comp;
 
   g_return_val_if_fail (port != NULL, FALSE);
@@ -1205,16 +1205,19 @@ gst_omx_port_update_port_definition (GstOMXPort * port,
   comp = port->comp;
 
   if (port_def)
-    err =
+    err_set =
         gst_omx_component_set_parameter (comp, OMX_IndexParamPortDefinition,
         port_def);
-  gst_omx_component_get_parameter (comp, OMX_IndexParamPortDefinition,
+  err_get = gst_omx_component_get_parameter (comp, OMX_IndexParamPortDefinition,
       &port->port_def);
 
   GST_DEBUG_OBJECT (comp->parent, "Updated %s port %u definition: %s (0x%08x)",
-      comp->name, port->index, gst_omx_error_to_string (err), err);
+      comp->name, port->index, gst_omx_error_to_string (err_set), err_set);
 
-  return err;
+  if (err_set != OMX_ErrorNone)
+    return err_set;
+  else
+    return err_get;
 }
 
 /* NOTE: Uses comp->lock and comp->messages_lock */