diff options
author | Rob Clark <rob@ti.com> | 2010-03-17 17:50:30 -0500 |
---|---|---|
committer | Felipe Contreras <felipe.contreras@nokia.com> | 2010-04-16 17:30:04 +0300 |
commit | 6c0caf43e6c9047e0be755ac5b6546abae525f8f (patch) | |
tree | b61f63fe48d7bd8d6be8c8989fb6c58f2824a88c | |
parent | 69d756373bc886d3ef49a743c13f126b1c0b6413 (diff) |
Simplify g_omx_port_setup()
Do OMX_GetParameter(PortDefinition) inside g_omx_port_setup(), rather
than duplicating same code in each caller.
Signed-off-by: Felipe Contreras <felipe.contreras@nokia.com>
-rw-r--r-- | omx/gstomx_base_filter.c | 20 | ||||
-rw-r--r-- | omx/gstomx_base_sink.c | 15 | ||||
-rw-r--r-- | omx/gstomx_base_src.c | 15 | ||||
-rw-r--r-- | omx/gstomx_util.c | 19 | ||||
-rw-r--r-- | omx/gstomx_util.h | 2 |
5 files changed, 18 insertions, 53 deletions
diff --git a/omx/gstomx_base_filter.c b/omx/gstomx_base_filter.c index bc0a77d..0e49d3e 100644 --- a/omx/gstomx_base_filter.c +++ b/omx/gstomx_base_filter.c @@ -53,28 +53,12 @@ log_buffer (GstOmxBaseFilter *self, static void setup_ports (GstOmxBaseFilter *self) { - GOmxCore *core; - OMX_PARAM_PORTDEFINITIONTYPE param; - - core = self->gomx; - - memset (¶m, 0, sizeof (param)); - param.nSize = sizeof (OMX_PARAM_PORTDEFINITIONTYPE); - param.nVersion.s.nVersionMajor = 1; - param.nVersion.s.nVersionMinor = 1; - /* Input port configuration. */ - - param.nPortIndex = 0; - OMX_GetParameter (core->omx_handle, OMX_IndexParamPortDefinition, ¶m); - g_omx_port_setup (self->in_port, ¶m); + g_omx_port_setup (self->in_port); gst_pad_set_element_private (self->sinkpad, self->in_port); /* Output port configuration. */ - - param.nPortIndex = 1; - OMX_GetParameter (core->omx_handle, OMX_IndexParamPortDefinition, ¶m); - g_omx_port_setup (self->out_port, ¶m); + g_omx_port_setup (self->out_port); gst_pad_set_element_private (self->srcpad, self->out_port); /* @todo: read from config file: */ diff --git a/omx/gstomx_base_sink.c b/omx/gstomx_base_sink.c index f946874..b6a8955 100644 --- a/omx/gstomx_base_sink.c +++ b/omx/gstomx_base_sink.c @@ -45,21 +45,8 @@ GSTOMX_BOILERPLATE_FULL (GstOmxBaseSink, gst_omx_base_sink, GstBaseSink, GST_TYP static void setup_ports (GstOmxBaseSink *self) { - GOmxCore *core; - OMX_PARAM_PORTDEFINITIONTYPE param; - - core = self->gomx; - - memset (¶m, 0, sizeof (param)); - param.nSize = sizeof (OMX_PARAM_PORTDEFINITIONTYPE); - param.nVersion.s.nVersionMajor = 1; - param.nVersion.s.nVersionMinor = 1; - /* Input port configuration. */ - - param.nPortIndex = 0; - OMX_GetParameter (core->omx_handle, OMX_IndexParamPortDefinition, ¶m); - g_omx_port_setup (self->in_port, ¶m); + g_omx_port_setup (self->in_port); gst_pad_set_element_private (self->sinkpad, self->in_port); } diff --git a/omx/gstomx_base_src.c b/omx/gstomx_base_src.c index 0741aab..fea7631 100644 --- a/omx/gstomx_base_src.c +++ b/omx/gstomx_base_src.c @@ -36,21 +36,8 @@ GSTOMX_BOILERPLATE (GstOmxBaseSrc, gst_omx_base_src, GstBaseSrc, GST_TYPE_BASE_S static void setup_ports (GstOmxBaseSrc *self) { - GOmxCore *core; - OMX_PARAM_PORTDEFINITIONTYPE param; - - core = self->gomx; - - memset (¶m, 0, sizeof (param)); - param.nSize = sizeof (OMX_PARAM_PORTDEFINITIONTYPE); - param.nVersion.s.nVersionMajor = 1; - param.nVersion.s.nVersionMinor = 1; - /* Input port configuration. */ - - param.nPortIndex = 0; - OMX_GetParameter (core->omx_handle, OMX_IndexParamPortDefinition, ¶m); - g_omx_port_setup (self->out_port, ¶m); + g_omx_port_setup (self->out_port); if (self->setup_ports) { diff --git a/omx/gstomx_util.c b/omx/gstomx_util.c index e1060da..b1c869a 100644 --- a/omx/gstomx_util.c +++ b/omx/gstomx_util.c @@ -22,6 +22,7 @@ #include "gstomx_util.h" #include <dlfcn.h> +#include <string.h> /* for memset */ #include "gstomx.h" @@ -486,14 +487,20 @@ g_omx_port_free (GOmxPort *port) } void -g_omx_port_setup (GOmxPort *port, - OMX_PARAM_PORTDEFINITIONTYPE *omx_port) +g_omx_port_setup (GOmxPort *port) { GOmxPortType type = -1; + OMX_PARAM_PORTDEFINITIONTYPE param; - g_assert (port->port_index == omx_port->nPortIndex); + memset (¶m, 0, sizeof (param)); + param.nSize = sizeof (OMX_PARAM_PORTDEFINITIONTYPE); + param.nVersion.s.nVersionMajor = 1; + param.nVersion.s.nVersionMinor = 1; - switch (omx_port->eDir) + param.nPortIndex = port->port_index; + OMX_GetParameter (port->core->omx_handle, OMX_IndexParamPortDefinition, ¶m); + + switch (param.eDir) { case OMX_DirInput: type = GOMX_PORT_INPUT; @@ -507,8 +514,8 @@ g_omx_port_setup (GOmxPort *port, port->type = type; /** @todo should it be nBufferCountMin? */ - port->num_buffers = omx_port->nBufferCountActual; - port->buffer_size = omx_port->nBufferSize; + port->num_buffers = param.nBufferCountActual; + port->buffer_size = param.nBufferSize; g_free (port->buffers); port->buffers = g_new0 (OMX_BUFFERHEADERTYPE *, port->num_buffers); diff --git a/omx/gstomx_util.h b/omx/gstomx_util.h index f763618..456f9a8 100644 --- a/omx/gstomx_util.h +++ b/omx/gstomx_util.h @@ -134,7 +134,7 @@ GOmxPort *g_omx_core_new_port (GOmxCore *core, guint index); GOmxPort *g_omx_port_new (GOmxCore *core, guint index); void g_omx_port_free (GOmxPort *port); -void g_omx_port_setup (GOmxPort *port, OMX_PARAM_PORTDEFINITIONTYPE *omx_port); +void g_omx_port_setup (GOmxPort *port); void g_omx_port_push_buffer (GOmxPort *port, OMX_BUFFERHEADERTYPE *omx_buffer); OMX_BUFFERHEADERTYPE *g_omx_port_request_buffer (GOmxPort *port); void g_omx_port_release_buffer (GOmxPort *port, OMX_BUFFERHEADERTYPE *omx_buffer); |