diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2002-01-13 22:27:25 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2002-01-13 22:27:25 +0000 |
commit | 97454065ce4921877100d0f829d4638438424dfe (patch) | |
tree | b7fba2905e195b55f136e65332777fb96fee3d65 /ext/aalib | |
parent | 1ea946d2d26998d7056d233548d88b57322ffdcf (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.c | 26 |
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)); |