goto is_reused;
priv->rtpbin = gst_element_factory_make ("rtpbin", NULL);
+ if (priv->rtpbin != NULL) {
+ GstRTSPMediaClass *klass;
+ gboolean success = TRUE;
+
+ klass = GST_RTSP_MEDIA_GET_CLASS (media);
+ if (klass->setup_rtpbin)
+ success = klass->setup_rtpbin (media, priv->rtpbin);
+
+ if (success == FALSE) {
+ gst_object_unref (priv->rtpbin);
+ priv->rtpbin = NULL;
+ }
+ }
if (priv->rtpbin == NULL)
goto no_rtpbin;
GstRTSPRangeUnit unit);
gboolean (*query_position) (GstRTSPMedia *media, gint64 *position);
gboolean (*query_stop) (GstRTSPMedia *media, gint64 *stop);
+ gboolean (*setup_rtpbin) (GstRTSPMedia *media, GstElement *rtpbin);
/* signals */
void (*new_stream) (GstRTSPMedia *media, GstRTSPStream * stream);