[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