summaryrefslogtreecommitdiffstats
path: root/ext/libcaca
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2005-05-17 17:44:58 +0000
committerWim Taymans <wim.taymans@gmail.com>2005-05-17 17:44:58 +0000
commitd564e75b34a1ad0cca9d77a3c6b9a158ea6204cd (patch)
treed9c602e94637f1ad09b8a2d233a318bda9049315 /ext/libcaca
parent924a50450fb0354821f4e8fedad5290e623362b2 (diff)
ext/libcaca/gstcacasink.*: Cleanups.
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.
Diffstat (limited to 'ext/libcaca')
-rw-r--r--ext/libcaca/gstcacasink.c47
-rw-r--r--ext/libcaca/gstcacasink.h6
2 files changed, 18 insertions, 35 deletions
diff --git a/ext/libcaca/gstcacasink.c b/ext/libcaca/gstcacasink.c
index 9dece871..e9c788d6 100644
--- a/ext/libcaca/gstcacasink.c
+++ b/ext/libcaca/gstcacasink.c
@@ -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
diff --git a/ext/libcaca/gstcacasink.h b/ext/libcaca/gstcacasink.h
index 571e2094..f4059195 100644
--- a/ext/libcaca/gstcacasink.h
+++ b/ext/libcaca/gstcacasink.h
@@ -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;