[PATCH 5/7] omx: improve tunneling support

Christian König deathsimple at vodafone.de
Thu Feb 6 09:39:39 PST 2014


From: Christian König <christian.koenig at amd.com>

Keep track where the tunnel leads us instead of just if it's tunneled or not.

Signed-off-by: Christian König <christian.koenig at amd.com>
---
 omx/gstomx.c | 13 +++++++------
 omx/gstomx.h |  2 +-
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/omx/gstomx.c b/omx/gstomx.c
index 4e94712..c8a8927 100644
--- a/omx/gstomx.c
+++ b/omx/gstomx.c
@@ -920,7 +920,7 @@ gst_omx_component_add_port (GstOMXComponent * comp, guint32 index)
   port->comp = comp;
   port->index = index;
 
-  port->tunneled = FALSE;
+  port->tunneled = NULL;
 
   port->port_def = port_def;
 
@@ -1085,8 +1085,8 @@ gst_omx_component_setup_tunnel (GstOMXComponent * comp1, GstOMXPort * port1,
       port2->index);
 
   if (err == OMX_ErrorNone) {
-    port1->tunneled = TRUE;
-    port2->tunneled = TRUE;
+    port1->tunneled = port2;
+    port2->tunneled = port1;
   }
 
   GST_DEBUG_OBJECT (comp1->parent,
@@ -1115,7 +1115,8 @@ gst_omx_component_close_tunnel (GstOMXComponent * comp1, GstOMXPort * port1,
   g_return_val_if_fail (port2->port_def.eDir == OMX_DirInput,
       OMX_ErrorUndefined);
   g_return_val_if_fail (comp1->core == comp2->core, OMX_ErrorUndefined);
-  g_return_val_if_fail (port1->tunneled && port2->tunneled, OMX_ErrorUndefined);
+  g_return_val_if_fail (port1->tunneled == port2, OMX_ErrorUndefined);
+  g_return_val_if_fail (port2->tunneled == port1, OMX_ErrorUndefined);
 
   g_mutex_lock (&comp1->lock);
   g_mutex_lock (&comp2->lock);
@@ -1136,8 +1137,8 @@ gst_omx_component_close_tunnel (GstOMXComponent * comp1, GstOMXPort * port1,
         gst_omx_error_to_string (err), err);
   }
 
-  port1->tunneled = FALSE;
-  port2->tunneled = FALSE;
+  port1->tunneled = NULL;
+  port2->tunneled = NULL;
 
   GST_DEBUG_OBJECT (comp1->parent,
       "Closed tunnel between %s port %u and %s port %u",
diff --git a/omx/gstomx.h b/omx/gstomx.h
index 8af81b8..3645b63 100644
--- a/omx/gstomx.h
+++ b/omx/gstomx.h
@@ -199,7 +199,7 @@ struct _GstOMXPort {
   GstOMXComponent *comp;
   guint32 index;
 
-  gboolean tunneled;
+  GstOMXPort *tunneled;
 
   OMX_PARAM_PORTDEFINITIONTYPE port_def;
   GPtrArray *buffers; /* Contains GstOMXBuffer* */
-- 
1.8.3.2



More information about the gstreamer-openmax mailing list