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 /gst/avi/gstavitypes.c | |
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 'gst/avi/gstavitypes.c')
-rw-r--r-- | gst/avi/gstavitypes.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/gst/avi/gstavitypes.c b/gst/avi/gstavitypes.c index b43f2a0c..e0862130 100644 --- a/gst/avi/gstavitypes.c +++ b/gst/avi/gstavitypes.c @@ -170,8 +170,8 @@ gst_avi_types_class_init (GstAviTypesClass *klass) gobject_class->get_property = gst_avi_types_get_property; } -static void -gst_avi_types_newcaps (GstPad *pad, GstCaps *caps) +static GstPadConnectReturn +gst_avi_types_sinkconnect (GstPad *pad, GstCaps *caps) { GstAviTypes *avi_types; const gchar *format; @@ -196,6 +196,9 @@ gst_avi_types_newcaps (GstPad *pad, GstCaps *caps) "format", GST_PROPS_STRING ("NTSC"), NULL)); default: + /* else we simply don't convert, and hope there is a native decoder + * available */ + newcaps = caps; break; } } @@ -243,9 +246,11 @@ gst_avi_types_newcaps (GstPad *pad, GstCaps *caps) } if (newcaps) { - gst_pad_set_caps (avi_types->srcpad, newcaps); + gst_pad_try_set_caps (avi_types->srcpad, newcaps); avi_types->type_found = TRUE; + return GST_PAD_CONNECT_OK; } + return GST_PAD_CONNECT_REFUSED; } static void @@ -254,7 +259,7 @@ gst_avi_types_init (GstAviTypes *avi_types) avi_types->sinkpad = gst_pad_new_from_template ( GST_PADTEMPLATE_GET (sink_templ), "sink"); gst_element_add_pad (GST_ELEMENT (avi_types), avi_types->sinkpad); - gst_pad_set_newcaps_function (avi_types->sinkpad, gst_avi_types_newcaps); + gst_pad_set_connect_function (avi_types->sinkpad, gst_avi_types_sinkconnect); gst_pad_set_chain_function (avi_types->sinkpad, gst_avi_types_chain); avi_types->srcpad = gst_pad_new_from_template ( @@ -271,7 +276,7 @@ gst_avi_types_chain (GstPad *pad, GstBuffer *buffer) avi_types = GST_AVI_TYPES (gst_pad_get_parent (pad)); - if (GST_PAD_CONNECTED (avi_types->srcpad)) + if (GST_PAD_IS_CONNECTED (avi_types->srcpad)) gst_pad_push (avi_types->srcpad, buffer); else gst_buffer_unref (buffer); |