mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-07-28 09:15:08 +00:00
gst/median/gstmedian.c: Fix capsnego.
Original commit message from CVS: 2004-01-08 Ronald Bultje <rbultje@ronald.bitfreak.net> * gst/median/gstmedian.c: (gst_median_link), (gst_median_init): Fix capsnego.
This commit is contained in:
parent
365079c2a4
commit
c247ad4c07
|
@ -1,3 +1,8 @@
|
||||||
|
2004-01-08 Ronald Bultje <rbultje@ronald.bitfreak.net>
|
||||||
|
|
||||||
|
* gst/median/gstmedian.c: (gst_median_link), (gst_median_init):
|
||||||
|
Fix capsnego.
|
||||||
|
|
||||||
2004-01-08 Julien MOUTTE <julien@moutte.net>
|
2004-01-08 Julien MOUTTE <julien@moutte.net>
|
||||||
|
|
||||||
* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_create): Using XOverlay
|
* ext/sdl/sdlvideosink.c: (gst_sdlvideosink_create): Using XOverlay
|
||||||
|
|
|
@ -137,32 +137,39 @@ gst_median_class_init (GstMedianClass *klass)
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_median_sinkconnect (GstPad *pad, const GstCaps *caps)
|
gst_median_link (GstPad *pad, const GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstMedian *filter;
|
GstMedian *filter = GST_MEDIAN (gst_pad_get_parent (pad));
|
||||||
GstStructure *structure;
|
GstPad *otherpad = (pad == filter->srcpad) ? filter->sinkpad : filter->srcpad;
|
||||||
|
GstStructure *structure = gst_caps_get_structure (caps, 0);
|
||||||
|
gint w, h;
|
||||||
|
GstPadLinkReturn ret;
|
||||||
|
|
||||||
filter = GST_MEDIAN (gst_pad_get_parent (pad));
|
gst_structure_get_int (structure, "width", &w);
|
||||||
|
gst_structure_get_int (structure, "height", &h);
|
||||||
|
|
||||||
structure = gst_caps_get_structure (caps, 0);
|
ret = gst_pad_try_set_caps (otherpad, caps);
|
||||||
|
if (GST_PAD_LINK_SUCCESSFUL (ret)) {
|
||||||
|
filter->width = w;
|
||||||
|
filter->height = h;
|
||||||
|
}
|
||||||
|
|
||||||
gst_structure_get_int (structure, "width", &filter->width);
|
return ret;
|
||||||
gst_structure_get_int (structure, "height", &filter->height);
|
|
||||||
|
|
||||||
/* forward to the next plugin */
|
|
||||||
return gst_pad_try_set_caps(filter->srcpad, caps);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void gst_median_init (GstMedian *median)
|
void gst_median_init (GstMedian *median)
|
||||||
{
|
{
|
||||||
median->sinkpad = gst_pad_new_from_template (
|
median->sinkpad = gst_pad_new_from_template (
|
||||||
gst_static_pad_template_get (&median_sink_factory), "sink");
|
gst_static_pad_template_get (&median_sink_factory), "sink");
|
||||||
gst_pad_set_link_function (median->sinkpad, gst_median_sinkconnect);
|
gst_pad_set_getcaps_function (median->sinkpad, gst_pad_proxy_getcaps);
|
||||||
|
gst_pad_set_link_function (median->sinkpad, gst_median_link);
|
||||||
gst_pad_set_chain_function (median->sinkpad, gst_median_chain);
|
gst_pad_set_chain_function (median->sinkpad, gst_median_chain);
|
||||||
gst_element_add_pad (GST_ELEMENT (median), median->sinkpad);
|
gst_element_add_pad (GST_ELEMENT (median), median->sinkpad);
|
||||||
|
|
||||||
median->srcpad = gst_pad_new_from_template (
|
median->srcpad = gst_pad_new_from_template (
|
||||||
gst_static_pad_template_get (&median_src_factory), "src");
|
gst_static_pad_template_get (&median_src_factory), "src");
|
||||||
|
gst_pad_set_getcaps_function (median->srcpad, gst_pad_proxy_getcaps);
|
||||||
|
gst_pad_set_link_function (median->sinkpad, gst_median_link);
|
||||||
gst_element_add_pad (GST_ELEMENT (median), median->srcpad);
|
gst_element_add_pad (GST_ELEMENT (median), median->srcpad);
|
||||||
|
|
||||||
median->filtersize = 5;
|
median->filtersize = 5;
|
||||||
|
|
Loading…
Reference in a new issue