static void gst_rtsp_session_init (GstRTSPSession * session) { GstRTSPSessionPrivate *priv = GST_RTSP_SESSION_GET_PRIVATE (session); session->priv = priv; g_mutex_init (&priv->lock); priv->timeout = DEFAULT_TIMEOUT; g_get_current_time (&priv->create_time); gst_rtsp_session_touch (session); }
/** * gst_rtsp_session_pool_find: * @pool: the pool to search * @sessionid: the session id * * Find the session with @sessionid in @pool. The access time of the session * will be updated with gst_rtsp_session_touch(). * * Returns: the #GstRTSPSession with @sessionid or %NULL when the session did * not exist. g_object_unref() after usage. */ GstRTSPSession * gst_rtsp_session_pool_find (GstRTSPSessionPool * pool, const gchar * sessionid) { GstRTSPSession *result; g_return_val_if_fail (GST_IS_RTSP_SESSION_POOL (pool), NULL); g_return_val_if_fail (sessionid != NULL, NULL); g_mutex_lock (&pool->lock); result = g_hash_table_lookup (pool->sessions, sessionid); if (result) { g_object_ref (result); gst_rtsp_session_touch (result); } g_mutex_unlock (&pool->lock); return result; }