aggregator: Remove klass->sinkpads_type

This posed problems for the python bindings (and possibly others).

Instead, subclasses now use add_pad_template_with_gtype.

https://bugzilla.gnome.org/show_bug.cgi?id=789986
This commit is contained in:
Mathieu Duponchelle 2017-11-06 21:07:51 +01:00 committed by Tim-Philipp Müller
parent 4e4438de21
commit 79d0239e2f
2 changed files with 4 additions and 8 deletions

View file

@ -1564,6 +1564,9 @@ gst_aggregator_default_create_new_pad (GstAggregator * self,
GstAggregatorPrivate *priv = self->priv; GstAggregatorPrivate *priv = self->priv;
gint serial = 0; gint serial = 0;
gchar *name = NULL; gchar *name = NULL;
GType pad_type =
GST_PAD_TEMPLATE_GTYPE (templ) ==
G_TYPE_NONE ? GST_TYPE_AGGREGATOR_PAD : GST_PAD_TEMPLATE_GTYPE (templ);
if (templ->direction != GST_PAD_SINK) if (templ->direction != GST_PAD_SINK)
goto not_sink; goto not_sink;
@ -1584,7 +1587,7 @@ gst_aggregator_default_create_new_pad (GstAggregator * self,
} }
name = g_strdup_printf ("sink_%u", serial); name = g_strdup_printf ("sink_%u", serial);
agg_pad = g_object_new (GST_AGGREGATOR_GET_CLASS (self)->sinkpads_type, agg_pad = g_object_new (pad_type,
"name", name, "direction", GST_PAD_SINK, "template", templ, NULL); "name", name, "direction", GST_PAD_SINK, "template", templ, NULL);
g_free (name); g_free (name);
@ -2224,8 +2227,6 @@ gst_aggregator_class_init (GstAggregatorClass * klass)
GST_DEBUG_CATEGORY_INIT (aggregator_debug, "aggregator", GST_DEBUG_CATEGORY_INIT (aggregator_debug, "aggregator",
GST_DEBUG_FG_MAGENTA, "GstAggregator"); GST_DEBUG_FG_MAGENTA, "GstAggregator");
klass->sinkpads_type = GST_TYPE_AGGREGATOR_PAD;
klass->sink_event = gst_aggregator_default_sink_event; klass->sink_event = gst_aggregator_default_sink_event;
klass->sink_query = gst_aggregator_default_sink_query; klass->sink_query = gst_aggregator_default_sink_query;

View file

@ -152,9 +152,6 @@ struct _GstAggregator
/** /**
* GstAggregatorClass: * GstAggregatorClass:
* @sinkpads_type: Optional.
* The type of the pads that should be created when
* GstElement.request_new_pad is called.
* @flush: Optional. * @flush: Optional.
* Called after a successful flushing seek, once all the flush * Called after a successful flushing seek, once all the flush
* stops have been received. Flush pad-specific data in * stops have been received. Flush pad-specific data in
@ -233,8 +230,6 @@ struct _GstAggregator
struct _GstAggregatorClass { struct _GstAggregatorClass {
GstElementClass parent_class; GstElementClass parent_class;
GType sinkpads_type;
GstFlowReturn (*flush) (GstAggregator * aggregator); GstFlowReturn (*flush) (GstAggregator * aggregator);
GstBuffer * (*clip) (GstAggregator * aggregator, GstBuffer * (*clip) (GstAggregator * aggregator,