+static GstRTPHeaderExtension *
+gst_rtp_base_payload_request_extension_default (GstRTPBasePayload * payload,
+ guint ext_id, const gchar * uri)
+{
+ GstRTPHeaderExtension *ext = NULL;
+
+ if (!payload->priv->auto_hdr_ext)
+ return NULL;
+
+ ext = gst_rtp_header_extension_create_from_uri (uri);
+ if (ext) {
+ GST_DEBUG_OBJECT (payload,
+ "Automatically enabled extension %s for uri \'%s\'",
+ GST_ELEMENT_NAME (ext), uri);
+
+ gst_rtp_header_extension_set_id (ext, ext_id);
+ } else {
+ GST_DEBUG_OBJECT (payload,
+ "Didn't find any extension implementing uri \'%s\'", uri);
+ }
+
+ return ext;
+}
+
+static gboolean
+extension_accumulator (GSignalInvocationHint * ihint,
+ GValue * return_accu, const GValue * handler_return, gpointer data)
+{
+ gpointer ext;
+
+ /* Call default handler if user callback didn't create the extension */
+ ext = g_value_get_object (handler_return);
+ if (!ext)
+ return TRUE;
+
+ g_value_set_object (return_accu, ext);
+ return FALSE;
+}
+