summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian König <christian.koenig@amd.com>2014-03-04 17:41:20 +0100
committerSebastian Dröge <sebastian@centricular.com>2014-03-12 08:48:46 +0100
commitde5f940186bff2a00ae58e09fd56fcde3f4fc131 (patch)
treea2aa139d924fff9cd971c83d7307da5cf77a6680
parent14a0da437ff83ca5f0037f725179715e6efdbac4 (diff)
omx: simplify tunnel functions
Specifying the component is error prone and unnecessary. https://bugzilla.gnome.org/show_bug.cgi?id=726021
-rw-r--r--omx/gstomx.c22
-rw-r--r--omx/gstomx.h5
-rw-r--r--omx/gstomxvideodec.c13
3 files changed, 21 insertions, 19 deletions
diff --git a/omx/gstomx.c b/omx/gstomx.c
index 9157b78..925a977 100644
--- a/omx/gstomx.c
+++ b/omx/gstomx.c
@@ -1059,19 +1059,22 @@ gst_omx_component_set_config (GstOMXComponent * comp, OMX_INDEXTYPE index,
}
OMX_ERRORTYPE
-gst_omx_component_setup_tunnel (GstOMXComponent * comp1, GstOMXPort * port1,
- GstOMXComponent * comp2, GstOMXPort * port2)
+gst_omx_setup_tunnel (GstOMXPort * port1, GstOMXPort * port2)
{
+ GstOMXComponent *comp1;
+ GstOMXComponent *comp2;
OMX_ERRORTYPE err;
- g_return_val_if_fail (comp1 != NULL, OMX_ErrorUndefined);
g_return_val_if_fail (port1 != NULL, OMX_ErrorUndefined);
g_return_val_if_fail (port1->port_def.eDir == OMX_DirOutput,
OMX_ErrorUndefined);
- g_return_val_if_fail (comp2 != NULL, OMX_ErrorUndefined);
+ comp1 = port1->comp;
+
g_return_val_if_fail (port2 != NULL, OMX_ErrorUndefined);
g_return_val_if_fail (port2->port_def.eDir == OMX_DirInput,
OMX_ErrorUndefined);
+ comp2 = port2->comp;
+
g_return_val_if_fail (comp1->core == comp2->core, OMX_ErrorUndefined);
g_mutex_lock (&comp1->lock);
@@ -1100,19 +1103,22 @@ gst_omx_component_setup_tunnel (GstOMXComponent * comp1, GstOMXPort * port1,
}
OMX_ERRORTYPE
-gst_omx_component_close_tunnel (GstOMXComponent * comp1, GstOMXPort * port1,
- GstOMXComponent * comp2, GstOMXPort * port2)
+gst_omx_close_tunnel (GstOMXPort * port1, GstOMXPort * port2)
{
+ GstOMXComponent *comp1;
+ GstOMXComponent *comp2;
OMX_ERRORTYPE err;
- g_return_val_if_fail (comp1 != NULL, OMX_ErrorUndefined);
g_return_val_if_fail (port1 != NULL, OMX_ErrorUndefined);
g_return_val_if_fail (port1->port_def.eDir == OMX_DirOutput,
OMX_ErrorUndefined);
- g_return_val_if_fail (comp2 != NULL, OMX_ErrorUndefined);
+ comp1 = port1->comp;
+
g_return_val_if_fail (port2 != NULL, OMX_ErrorUndefined);
g_return_val_if_fail (port2->port_def.eDir == OMX_DirInput,
OMX_ErrorUndefined);
+ comp2 = port2->comp;
+
g_return_val_if_fail (comp1->core == comp2->core, OMX_ErrorUndefined);
g_return_val_if_fail (port1->tunneled && port2->tunneled, OMX_ErrorUndefined);
diff --git a/omx/gstomx.h b/omx/gstomx.h
index 8af81b8..4700e8e 100644
--- a/omx/gstomx.h
+++ b/omx/gstomx.h
@@ -311,8 +311,9 @@ OMX_ERRORTYPE gst_omx_component_set_parameter (GstOMXComponent * comp, OMX_I
OMX_ERRORTYPE gst_omx_component_get_config (GstOMXComponent * comp, OMX_INDEXTYPE index, gpointer config);
OMX_ERRORTYPE gst_omx_component_set_config (GstOMXComponent * comp, OMX_INDEXTYPE index, gpointer config);
-OMX_ERRORTYPE gst_omx_component_setup_tunnel (GstOMXComponent * comp1, GstOMXPort * port1, GstOMXComponent * comp2, GstOMXPort * port2);
-OMX_ERRORTYPE gst_omx_component_close_tunnel (GstOMXComponent * comp1, GstOMXPort * port1, GstOMXComponent * comp2, GstOMXPort * port2);
+
+OMX_ERRORTYPE gst_omx_setup_tunnel (GstOMXPort * port1, GstOMXPort * port2);
+OMX_ERRORTYPE gst_omx_close_tunnel (GstOMXPort * port1, GstOMXPort * port2);
OMX_ERRORTYPE gst_omx_port_get_port_definition (GstOMXPort * port, OMX_PARAM_PORTDEFINITIONTYPE * port_def);
diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c
index 2e66070..0451176 100644
--- a/omx/gstomxvideodec.c
+++ b/omx/gstomxvideodec.c
@@ -856,8 +856,7 @@ gst_omx_video_dec_shutdown (GstOMXVideoDec * self)
gst_omx_port_deallocate_buffers (self->dec_in_port);
gst_omx_video_dec_deallocate_output_buffers (self);
- gst_omx_component_close_tunnel (self->dec, self->dec_out_port,
- self->egl_render, self->egl_in_port);
+ gst_omx_close_tunnel (self->dec_out_port, self->egl_in_port);
if (state > OMX_StateLoaded) {
gst_omx_component_get_state (self->egl_render, 5 * GST_SECOND);
gst_omx_component_get_state (self->dec, 1 * GST_SECOND);
@@ -1621,9 +1620,7 @@ gst_omx_video_dec_reconfigure_output_port (GstOMXVideoDec * self)
#undef OMX_IndexParamBrcmVideoEGLRenderDiscardMode
}
- err =
- gst_omx_component_setup_tunnel (self->dec, self->dec_out_port,
- self->egl_render, self->egl_in_port);
+ err = gst_omx_setup_tunnel (self->dec_out_port, self->egl_in_port);
if (err != OMX_ErrorNone)
goto no_egl;
@@ -1707,8 +1704,7 @@ gst_omx_video_dec_reconfigure_output_port (GstOMXVideoDec * self)
gst_omx_component_set_state (self->egl_render, OMX_StateLoaded);
gst_omx_video_dec_deallocate_output_buffers (self);
- gst_omx_component_close_tunnel (self->dec, self->dec_out_port,
- self->egl_render, self->egl_in_port);
+ gst_omx_close_tunnel (self->dec_out_port, self->egl_in_port);
if (egl_state > OMX_StateLoaded) {
gst_omx_component_get_state (self->egl_render, 5 * GST_SECOND);
@@ -2542,8 +2538,7 @@ gst_omx_video_dec_set_format (GstVideoDecoder * decoder,
gst_omx_component_set_state (self->egl_render, OMX_StateLoaded);
gst_omx_component_set_state (self->dec, OMX_StateLoaded);
- gst_omx_component_close_tunnel (self->dec, self->dec_out_port,
- self->egl_render, self->egl_in_port);
+ gst_omx_close_tunnel (self->dec_out_port, self->egl_in_port);
if (egl_state > OMX_StateLoaded) {
gst_omx_component_get_state (self->egl_render, 5 * GST_SECOND);