diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-09-25 00:17:08 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2012-09-25 00:17:08 +0200 |
commit | e8789381f41f0f3951e9631c8a44a21e582e0473 (patch) | |
tree | f2729cbc9a2243725dc82a64a62a724da83c5b2d /gst/videomixer/videomixer2.c | |
parent | 747315599d26c3d58d30805927934313d3ba0dc5 (diff) |
Imported Upstream version 1.0.0
Diffstat (limited to 'gst/videomixer/videomixer2.c')
-rw-r--r-- | gst/videomixer/videomixer2.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/gst/videomixer/videomixer2.c b/gst/videomixer/videomixer2.c index b99050db..98a3312d 100644 --- a/gst/videomixer/videomixer2.c +++ b/gst/videomixer/videomixer2.c @@ -228,6 +228,7 @@ gst_videomixer2_update_src_caps (GstVideoMixer2 * mix) mix->nframes = 0; } } + gst_video_info_init (&info); gst_video_info_set_format (&info, GST_VIDEO_INFO_FORMAT (&mix->info), best_width, best_height); info.fps_n = best_fps_n; @@ -325,16 +326,13 @@ beach: } static GstCaps * -gst_videomixer2_pad_sink_getcaps (GstPad * pad, GstObject * parent, +gst_videomixer2_pad_sink_getcaps (GstPad * pad, GstVideoMixer2 * mix, GstCaps * filter) { - GstVideoMixer2 *mix; GstCaps *srccaps; GstStructure *s; gint i, n; - mix = GST_VIDEO_MIXER2 (parent); - srccaps = gst_pad_get_current_caps (GST_PAD (mix->srcpad)); if (srccaps == NULL) srccaps = gst_pad_get_pad_template_caps (GST_PAD (mix->srcpad)); @@ -358,16 +356,14 @@ gst_videomixer2_pad_sink_getcaps (GstPad * pad, GstObject * parent, } static gboolean -gst_videomixer2_pad_sink_acceptcaps (GstPad * pad, GstObject * parent, +gst_videomixer2_pad_sink_acceptcaps (GstPad * pad, GstVideoMixer2 * mix, GstCaps * caps) { gboolean ret; - GstVideoMixer2 *mix; GstCaps *accepted_caps; gint i, n; GstStructure *s; - mix = GST_VIDEO_MIXER2 (parent); GST_DEBUG_OBJECT (pad, "%" GST_PTR_FORMAT, caps); accepted_caps = gst_pad_get_current_caps (GST_PAD (mix->srcpad)); @@ -398,9 +394,10 @@ gst_videomixer2_pad_sink_acceptcaps (GstPad * pad, GstObject * parent, } static gboolean -gst_videomixer2_pad_sink_query (GstPad * pad, GstObject * parent, - GstQuery * query) +gst_videomixer2_sink_query (GstCollectPads * pads, GstCollectData * cdata, + GstQuery * query, GstVideoMixer2 * mix) { + GstVideoMixer2Pad *pad = GST_VIDEO_MIXER2_PAD (cdata->pad); gboolean ret = FALSE; switch (GST_QUERY_TYPE (query)) { @@ -409,7 +406,7 @@ gst_videomixer2_pad_sink_query (GstPad * pad, GstObject * parent, GstCaps *filter, *caps; gst_query_parse_caps (query, &filter); - caps = gst_videomixer2_pad_sink_getcaps (pad, parent, filter); + caps = gst_videomixer2_pad_sink_getcaps (GST_PAD (pad), mix, filter); gst_query_set_caps_result (query, caps); gst_caps_unref (caps); ret = TRUE; @@ -420,13 +417,13 @@ gst_videomixer2_pad_sink_query (GstPad * pad, GstObject * parent, GstCaps *caps; gst_query_parse_accept_caps (query, &caps); - ret = gst_videomixer2_pad_sink_acceptcaps (pad, parent, caps); + ret = gst_videomixer2_pad_sink_acceptcaps (GST_PAD (pad), mix, caps); gst_query_set_accept_caps_result (query, ret); ret = TRUE; break; } default: - ret = gst_pad_query_default (pad, parent, query); + ret = gst_collect_pads_query_default (pads, cdata, query, FALSE); break; } return ret; @@ -526,10 +523,6 @@ gst_videomixer2_pad_class_init (GstVideoMixer2PadClass * klass) static void gst_videomixer2_pad_init (GstVideoMixer2Pad * mixerpad) { - /* setup some pad functions */ - gst_pad_set_query_function (GST_PAD (mixerpad), - gst_videomixer2_pad_sink_query); - mixerpad->zorder = DEFAULT_PAD_ZORDER; mixerpad->xpos = DEFAULT_PAD_XPOS; mixerpad->ypos = DEFAULT_PAD_YPOS; @@ -2004,6 +1997,8 @@ gst_videomixer2_init (GstVideoMixer2 * mix) mix); gst_collect_pads_set_event_function (mix->collect, (GstCollectPadsEventFunction) gst_videomixer2_sink_event, mix); + gst_collect_pads_set_query_function (mix->collect, + (GstCollectPadsQueryFunction) gst_videomixer2_sink_query, mix); gst_collect_pads_set_clip_function (mix->collect, (GstCollectPadsClipFunction) gst_videomixer2_sink_clip, mix); |