[Gstreamer-openmax] [PATCH 5/5] basesink: initalize omx when changing to READY
Felipe Contreras
felipe.contreras at gmail.com
Tue Mar 24 14:59:07 PDT 2009
Sometimes pad_link is called after switching the state; we need to have omx
initialized always.
Based on the tunneling patch series by Frederik Vermelen (NXP), whom
also gave feedback to this patch.
Signed-off-by: Felipe Contreras <felipe.contreras at gmail.com>
---
omx/gstomx_base_sink.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/omx/gstomx_base_sink.c b/omx/gstomx_base_sink.c
index f2b3d0a..fd42159 100644
--- a/omx/gstomx_base_sink.c
+++ b/omx/gstomx_base_sink.c
@@ -31,6 +31,8 @@
static gboolean share_input_buffer;
+static inline gboolean omx_init (GstOmxBaseSink *self);
+
enum
{
ARG_0,
@@ -81,6 +83,14 @@ change_state (GstElement *element,
switch (transition)
{
case GST_STATE_CHANGE_NULL_TO_READY:
+ if (!self->initialized)
+ {
+ if (!omx_init (self))
+ return GST_PAD_LINK_REFUSED;
+
+ self->initialized = TRUE;
+ }
+
g_omx_core_prepare (self->gomx);
break;
--
1.6.2.1.316.gedbc2
More information about the Gstreamer-openmax
mailing list