gboolean qos_enabled;
gdouble proportion;
GstClockTime earliest_time;
+
+ gboolean renegotiate;
};
static GstElementClass *parent_class = NULL;
static GstFlowReturn gst_base_src_get_range (GstBaseSrc * src, guint64 offset,
guint length, GstBuffer ** buf);
static gboolean gst_base_src_seekable (GstBaseSrc * src);
+static gboolean gst_base_src_negotiate (GstBaseSrc * basesrc);
static void
gst_base_src_class_init (GstBaseSrcClass * klass)
result = TRUE;
break;
}
+ case GST_EVENT_RENEGOTIATE:
+ {
+ src->priv->renegotiate = TRUE;
+ result = TRUE;
+ break;
+ }
default:
result = FALSE;
break;
src = GST_BASE_SRC (GST_OBJECT_PARENT (pad));
+ /* check if we need to renegotiate */
+ if (src->priv->renegotiate) {
+ if (!gst_base_src_negotiate (src))
+ GST_DEBUG_OBJECT (src, "Failed to renegotiate");
+ else
+ src->priv->renegotiate = TRUE;
+ }
+
GST_LIVE_LOCK (src);
if (G_UNLIKELY (src->priv->flushing))