summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2013-09-05 04:15:26 -0600
committerChristian König <christian.koenig@amd.com>2014-02-07 05:50:56 -0700
commit1975efe159dc52a8030602736c5319785fb62329 (patch)
tree64440a929f02133254b740ef1d5fe1c82e6ac467
parent91123307c8f934a867cf70b9ae6b27373311b8fc (diff)
omx: improve tunneling support
Keep track where the tunnel leads us instead of just if it's tunneled or not. Signed-off-by: Christian König <christian.koenig@amd.com>
-rw-r--r--omx/gstomx.c13
-rw-r--r--omx/gstomx.h2
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* */