diff options
author | Jan Schmidt <thaytan@mad.scientist.com> | 2004-05-12 14:53:58 +0000 |
---|---|---|
committer | Jan Schmidt <thaytan@mad.scientist.com> | 2004-05-12 14:53:58 +0000 |
commit | 3b47dd30d634d9797a170b372c765a22897aa3c3 (patch) | |
tree | 89ca148d3a0d4e29b94ca6f79a05f36ee5d84903 /gst/deinterlace | |
parent | cbc28f86f9621ac9a902b0a98d6301b20e46d21d (diff) |
ext/audiofile/gstafsrc.c: Remove old debug output
Original commit message from CVS:
* ext/audiofile/gstafsrc.c: (gst_afsrc_get):
Remove old debug output
* ext/dv/gstdvdec.c: (gst_dvdec_quality_get_type),
(gst_dvdec_class_init), (gst_dvdec_loop), (gst_dvdec_change_state),
(gst_dvdec_set_property), (gst_dvdec_get_property):
Change the quality setting to an enum, so it works from gst-launch
Don't renegotiate a non-linked pad. Allows audio only decoding.
* gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_getcaps),
(gst_deinterlace_link), (gst_deinterlace_init):
* gst/videodrop/gstvideodrop.c: (gst_videodrop_getcaps),
(gst_videodrop_link):
Some caps negotiation fixes
Diffstat (limited to 'gst/deinterlace')
-rw-r--r-- | gst/deinterlace/gstdeinterlace.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c index 93a2bdb2a..3c2941ba9 100644 --- a/gst/deinterlace/gstdeinterlace.c +++ b/gst/deinterlace/gstdeinterlace.c @@ -139,6 +139,18 @@ gst_deinterlace_class_init (GstDeInterlaceClass * klass) gobject_class->set_property = gst_deinterlace_set_property; gobject_class->get_property = gst_deinterlace_get_property; } +static GstCaps * +gst_deinterlace_getcaps (GstPad * pad) +{ + GstDeInterlace *filter; + GstPad *otherpad; + + filter = GST_DEINTERLACE (gst_pad_get_parent (pad)); + + otherpad = (pad == filter->srcpad) ? filter->sinkpad : filter->srcpad; + + return gst_pad_get_allowed_caps (otherpad); +} static GstPadLinkReturn gst_deinterlace_link (GstPad * pad, const GstCaps * caps) @@ -146,10 +158,13 @@ gst_deinterlace_link (GstPad * pad, const GstCaps * caps) GstDeInterlace *filter; GstStructure *structure; GstPadLinkReturn ret; + GstPad *otherpad; filter = GST_DEINTERLACE (gst_pad_get_parent (pad)); - ret = gst_pad_try_set_caps (filter->srcpad, caps); + otherpad = (pad == filter->srcpad) ? filter->sinkpad : filter->srcpad; + + ret = gst_pad_try_set_caps (otherpad, caps); if (GST_PAD_LINK_FAILED (ret)) { return ret; } @@ -176,12 +191,14 @@ gst_deinterlace_init (GstDeInterlace * filter) (&deinterlace_sink_factory), "sink"); gst_pad_set_chain_function (filter->sinkpad, gst_deinterlace_chain); gst_pad_set_link_function (filter->sinkpad, gst_deinterlace_link); + gst_pad_set_getcaps_function (filter->sinkpad, gst_deinterlace_getcaps); gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad); filter->srcpad = gst_pad_new_from_template (gst_static_pad_template_get (&deinterlace_src_factory), "src"); gst_pad_set_link_function (filter->srcpad, gst_deinterlace_link); + gst_pad_set_getcaps_function (filter->srcpad, gst_deinterlace_getcaps); gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad); filter->show_deinterlaced_area_only = FALSE; |