Added gst-plugins-base-subtitles0.10-0.10.34 for Meego Harmattan 1.2
[mafwsubrenderer] / gst-plugins-base-subtitles0.10 / tests / old / examples / gob / gst-identity2.gob
diff --git a/gst-plugins-base-subtitles0.10/tests/old/examples/gob/gst-identity2.gob b/gst-plugins-base-subtitles0.10/tests/old/examples/gob/gst-identity2.gob
new file mode 100644 (file)
index 0000000..2c58f06
--- /dev/null
@@ -0,0 +1,139 @@
+
+%header{
+#include <gst/gst.h>
+#include "gst-identity2.h"
+#include "gst-identity2-private.h"
+%}
+
+class Gst:Identity2 from Gst:Element {
+       
+  /* plugin init */
+  private gboolean
+  plugin_init (GModule *module, GstPlugin *plugin)
+  {
+    static GstElementDetails identity2_details =
+    GST_ELEMENT_DETAILS (
+      "GOB Identity",
+      "Filter/Effect",
+      "Does nothing",
+      "Wim Taymans <wim.taymans@chello.be>");
+    GstElementFactory *factory;
+
+    factory = gst_elementfactory_new ("identity2", TYPE_SELF,
+                                      &identity2_details);
+    g_return_val_if_fail (factory != NULL, FALSE);
+
+    gst_plugin_add_feature (plugin, &(factory->feature));
+
+    return TRUE;
+  }
+
+  /* pads FIXME gob oculd be improved here */
+  private GstPad *sinkpad = 
+  {
+    gst_pad_new ("sink", GST_PAD_SINK);
+    gst_element_add_pad (GST_ELEMENT (o), o->_priv->sinkpad);
+    gst_pad_set_chain_function (o->_priv->sinkpad, chain);
+    gst_pad_set_bufferpool_function (o->_priv->sinkpad, get_bufferpool);
+    //gst_pad_set_negotiate_function (o->_priv->sinkpad, negotiate_sink);
+  };
+  private GstPad *srcpad =
+  {
+    gst_pad_new ("src", GST_PAD_SRC);
+    gst_element_add_pad (GST_ELEMENT (o), o->_priv->srcpad);
+    //gst_pad_set_negotiate_function (o->_priv->srcpad, negotiate_src);
+  };
+
+  /* arguments */
+  /*
+  private gboolean loop_based = FALSE; argument BOOL loop_based 
+    get { 
+      ARG = self->_priv->loop_based; 
+    }
+    set { 
+      self->_priv->loop_based = ARG;
+      if (self->_priv->loop_based) {
+        gst_element_set_loop_function (GST_ELEMENT (self), loop);
+        gst_pad_set_chain_function (self->_priv->sinkpad, NULL);
+      }
+      else {
+        gst_pad_set_chain_function (self->_priv->sinkpad, chain);
+        gst_element_set_loop_function (GST_ELEMENT (self), NULL);
+      }
+    };*/
+  private guint sleep_time = 0; argument UINT sleep_time link;
+  private gboolean silent = FALSE; argument BOOL silent link;
+
+  /* signals */
+  private signal last NONE(NONE) void handoff(self);
+
+  /* core code here */
+  private GstBufferPool*
+  get_bufferpool (GstPad *pad (check null))
+  {
+    Self *self = SELF (gst_pad_get_parent (pad));
+    
+    return gst_pad_get_bufferpool (self->_priv->srcpad);
+  }
+
+  /* private GstPadNegotiateReturn
+  negotiate_src (GstPad *pad, GstCaps **caps, gpointer *data)
+  {
+    Self *self = SELF (gst_pad_get_parent (pad));
+
+    return gst_pad_negotiate_proxy (pad, self->_priv->sinkpad, caps);
+  }
+
+  private GstPadNegotiateReturn
+  negotiate_sink (GstPad *pad, GstCaps **caps, gpointer *data)
+  {
+    Self *self = SELF (gst_pad_get_parent (pad));
+
+    return gst_pad_negotiate_proxy (pad, self->_priv->srcpad, caps);
+  } */
+
+  private void
+  chain (GstPad *pad (check null), GstBuffer *buf (check null))
+  {
+    Self *self;
+
+    self = SELF (gst_pad_get_parent (pad));
+
+    if (!self->_priv->silent)
+      g_print("identity2: chain ******* (%s:%s)i \n",GST_DEBUG_PAD_NAME(pad));
+
+      handoff (self);
+      gst_pad_push (self->_priv->srcpad, buf);
+
+    if (self->_priv->sleep_time)
+      usleep (self->_priv->sleep_time);
+  }
+
+  /*private void
+  loop (GstElement *element (check null))
+  {
+    Self *self = SELF (element);
+    GstBuffer *buf;
+
+    do {
+      buf = gst_pad_pull (self->_priv->sinkpad);
+      g_print("identity2: loop ******* (%s:%s)i \n",GST_DEBUG_PAD_NAME(self->_priv->sinkpad));
+
+      handoff (self);
+      gst_pad_push (self->_priv->srcpad, buf);
+
+      if (self->_priv->sleep_time)
+        usleep (self->_priv->sleep_time);
+
+    } while (!GST_ELEMENT_IS_COTHREAD_STOPPING(element));
+  }*/
+}
+
+%{
+GstPluginDesc plugin_desc = {
+  GST_VERSION_MAJOR,
+  GST_VERSION_MINOR,
+  "identity2",
+  gst_identity2_plugin_init
+};
+%}