diff options
author | Christian König <christian.koenig@amd.com> | 2014-03-04 17:41:20 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-03-12 08:48:46 +0100 |
commit | de5f940186bff2a00ae58e09fd56fcde3f4fc131 (patch) | |
tree | a2aa139d924fff9cd971c83d7307da5cf77a6680 | |
parent | 14a0da437ff83ca5f0037f725179715e6efdbac4 (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.c | 22 | ||||
-rw-r--r-- | omx/gstomx.h | 5 | ||||
-rw-r--r-- | omx/gstomxvideodec.c | 13 |
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); |