summaryrefslogtreecommitdiffstats
path: root/ext/aalib
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2002-01-13 22:27:25 +0000
committerWim Taymans <wim.taymans@gmail.com>2002-01-13 22:27:25 +0000
commit97454065ce4921877100d0f829d4638438424dfe (patch)
treeb7fba2905e195b55f136e65332777fb96fee3d65 /ext/aalib
parent1ea946d2d26998d7056d233548d88b57322ffdcf (diff)
Bring the plugins in sync with the new core capsnego system.
Original commit message from CVS: Bring the plugins in sync with the new core capsnego system. Added some features, enhancements...
Diffstat (limited to 'ext/aalib')
-rw-r--r--ext/aalib/gstaasink.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/ext/aalib/gstaasink.c b/ext/aalib/gstaasink.c
index 83d9687f..7d41010e 100644
--- a/ext/aalib/gstaasink.c
+++ b/ext/aalib/gstaasink.c
@@ -70,10 +70,12 @@ GST_PADTEMPLATE_FACTORY (sink_template,
static void gst_aasink_class_init (GstAASinkClass *klass);
static void gst_aasink_init (GstAASink *aasink);
-static void gst_aasink_chain (GstPad *pad, GstBuffer *buf);
+static void gst_aasink_chain (GstPad *pad, GstBuffer *buf);
-static void gst_aasink_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
-static void gst_aasink_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
+static void gst_aasink_set_property (GObject *object, guint prop_id,
+ const GValue *value, GParamSpec *pspec);
+static void gst_aasink_get_property (GObject *object, guint prop_id,
+ GValue *value, GParamSpec *pspec);
static GstElementStateReturn gst_aasink_change_state (GstElement *element);
@@ -87,7 +89,12 @@ gst_aasink_get_type (void)
if (!aasink_type) {
static const GTypeInfo aasink_info = {
- sizeof(GstAASinkClass), NULL, NULL, (GClassInitFunc)gst_aasink_class_init, NULL, NULL,
+ sizeof(GstAASinkClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gst_aasink_class_init,
+ NULL,
+ NULL,
sizeof(GstAASink),
0,
(GInstanceInitFunc)gst_aasink_init,
@@ -224,14 +231,17 @@ gst_aasink_class_init (GstAASinkClass *klass)
gstelement_class->change_state = gst_aasink_change_state;
}
-static void
-gst_aasink_newcaps (GstPad *pad, GstCaps *caps)
+static GstPadConnectReturn
+gst_aasink_sinkconnect (GstPad *pad, GstCaps *caps)
{
GstAASink *aasink;
gulong print_format;
aasink = GST_AASINK (gst_pad_get_parent (pad));
+ if (!GST_CAPS_IS_FIXED (caps))
+ return GST_PAD_CONNECT_DELAYED;
+
aasink->width = gst_caps_get_int (caps, "width");
aasink->height = gst_caps_get_int (caps, "height");
@@ -241,6 +251,8 @@ gst_aasink_newcaps (GstPad *pad, GstCaps *caps)
g_signal_emit( G_OBJECT (aasink), gst_aasink_signals[SIGNAL_HAVE_SIZE], 0,
aasink->width, aasink->height);
+
+ return GST_PAD_CONNECT_OK;
}
static void
@@ -250,7 +262,7 @@ gst_aasink_init (GstAASink *aasink)
GST_PADTEMPLATE_GET (sink_template), "sink");
gst_element_add_pad (GST_ELEMENT (aasink), aasink->sinkpad);
gst_pad_set_chain_function (aasink->sinkpad, gst_aasink_chain);
- gst_pad_set_newcaps_function (aasink->sinkpad, gst_aasink_newcaps);
+ gst_pad_set_connect_function (aasink->sinkpad, gst_aasink_sinkconnect);
aasink->clock = gst_clock_get_system();
gst_clock_register(aasink->clock, GST_OBJECT(aasink));