In gst-rtsp-server, a required code is as follows:
gst_rtsp_mount_points_add_factory (mounts, "/test", factory);
I traced the source code, as foliows:
void
gst_rtsp_mount_points_add_factory (GstRTSPMountPoints * mounts,
const gchar * path, GstRTSPMediaFactory * factory)
{
GstRTSPMountPointsPrivate *priv;
DataItem *item;
g_return_if_fail (GST_IS_RTSP_MOUNT_POINTS (mounts));
g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory));
g_return_if_fail (path != NULL);
priv = mounts->priv;
item = data_item_new (g_strdup (path), strlen (path), factory);
GST_INFO ("adding media factory %p for path %s", factory, path);
g_mutex_lock (&priv->lock);
g_sequence_append (priv->mounts, item);
priv->dirty = TRUE;
g_mutex_unlock (&priv->lock);
}
I am now confused, priv is a local variable, how does it carry on the subsequent push stream?