ext/libcaca/gstcacasink.*: Cleanups.
authorWim Taymans <wim.taymans@gmail.com>
Tue, 17 May 2005 17:44:58 +0000 (17:44 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Tue, 17 May 2005 17:44:58 +0000 (17:44 +0000)
Original commit message from CVS:
* ext/libcaca/gstcacasink.c: (gst_cacasink_setcaps),
(gst_cacasink_render), (gst_cacasink_open), (gst_cacasink_close),
(gst_cacasink_change_state):
* ext/libcaca/gstcacasink.h:
Cleanups.

ChangeLog
common
ext/libcaca/gstcacasink.c
ext/libcaca/gstcacasink.h

index f7c1742..b941938 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-05-17  Wim Taymans  <wim@fluendo.com>
+
+       * ext/libcaca/gstcacasink.c: (gst_cacasink_setcaps),
+       (gst_cacasink_render), (gst_cacasink_open), (gst_cacasink_close),
+       (gst_cacasink_change_state):
+       * ext/libcaca/gstcacasink.h:
+       Cleanups.
+
 2005-05-15  David Schleef  <ds@schleef.org>
 
        Move core plugins out of core.  I don't mind fdsrc/fdsink
diff --git a/common b/common
index 131c263..67b7e6c 160000 (submodule)
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 131c2632127e6f061b5270d8f80651782a4fdd13
+Subproject commit 67b7e6c0db99415e0440d0c576495641b53e976a
index 9dece87..e9c788d 100644 (file)
@@ -191,12 +191,6 @@ gst_cacasink_setcaps (GstBaseSink * basesink, GstCaps * caps)
 
   cacasink = GST_CACASINK (basesink);
 
-  /* We cannot use library functions if the sink is not open */
-  if (!GST_FLAG_IS_SET (GST_ELEMENT (cacasink), GST_CACASINK_OPEN))
-    return FALSE;
-  /*if (!GST_CAPS_IS_FIXED (caps))
-     return FALSE; */
-
   structure = gst_caps_get_structure (caps, 0);
   gst_structure_get_int (structure, "width", &(cacasink->width));
   gst_structure_get_int (structure, "height", &(cacasink->height));
@@ -261,10 +255,6 @@ gst_cacasink_render (GstBaseSink * basesink, GstBuffer * buffer)
 {
   GstCACASink *cacasink = GST_CACASINK (basesink);
 
-  /* We cannot use library functions if the sink is not open */
-  if (!GST_FLAG_IS_SET (GST_ELEMENT (cacasink), GST_CACASINK_OPEN))
-    return GST_FLOW_WRONG_STATE;
-
   GST_DEBUG ("render");
 
   caca_clear ();
@@ -344,8 +334,6 @@ gst_cacasink_get_property (GObject * object, guint prop_id, GValue * value,
 static gboolean
 gst_cacasink_open (GstCACASink * cacasink)
 {
-  g_return_val_if_fail (!GST_FLAG_IS_SET (cacasink, GST_CACASINK_OPEN), FALSE);
-
   cacasink->bitmap = NULL;
   caca_init ();
 
@@ -356,45 +344,46 @@ gst_cacasink_open (GstCACASink * cacasink)
   cacasink->dither = 0;
   caca_set_dithering (CACA_DITHERING_NONE);
 
-
-  GST_FLAG_SET (cacasink, GST_CACASINK_OPEN);
-
   return TRUE;
 }
 
 static void
 gst_cacasink_close (GstCACASink * cacasink)
 {
-  g_return_if_fail (GST_FLAG_IS_SET (cacasink, GST_CACASINK_OPEN));
-
   if (cacasink->bitmap) {
     caca_free_bitmap (cacasink->bitmap);
     cacasink->bitmap = NULL;
   }
   caca_end ();
-
-  GST_FLAG_UNSET (cacasink, GST_CACASINK_OPEN);
 }
 
 static GstElementStateReturn
 gst_cacasink_change_state (GstElement * element)
 {
-  g_return_val_if_fail (GST_IS_CACASINK (element), GST_STATE_FAILURE);
+  GstElementStateReturn ret;
+  gint transition;
 
-  if (GST_STATE_PENDING (element) == GST_STATE_NULL) {
-    if (GST_FLAG_IS_SET (element, GST_CACASINK_OPEN))
-      gst_cacasink_close (GST_CACASINK (element));
-  } else {
-    if (!GST_FLAG_IS_SET (element, GST_CACASINK_OPEN)) {
+  transition = GST_STATE_TRANSITION (element);
+
+  switch (transition) {
+    case GST_STATE_READY_TO_PAUSED:
       if (!gst_cacasink_open (GST_CACASINK (element)))
         return GST_STATE_FAILURE;
-    }
+      break;
+    default:
+      break;
   }
 
-  if (GST_ELEMENT_CLASS (parent_class)->change_state)
-    return GST_ELEMENT_CLASS (parent_class)->change_state (element);
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element);
 
-  return GST_STATE_SUCCESS;
+  switch (transition) {
+    case GST_STATE_PAUSED_TO_READY:
+      gst_cacasink_close (GST_CACASINK (element));
+      break;
+    default:
+      break;
+  }
+  return ret;
 }
 
 static gboolean
index 571e209..f405919 100644 (file)
@@ -53,12 +53,6 @@ extern "C" {
 #define GST_IS_CACASINK_CLASS(obj) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CACASINK))
 
-typedef enum {
-  GST_CACASINK_OPEN              = GST_ELEMENT_FLAG_LAST,
-
-  GST_CACASINK_FLAG_LAST = GST_ELEMENT_FLAG_LAST + 2,
-} GstCACASinkFlags;
-
 typedef struct _GstCACASink GstCACASink;
 typedef struct _GstCACASinkClass GstCACASinkClass;