Exemple #1
0
/**
 *  Unregisters an existing session
 *
 * \param obj a VLC object
 * \param p_session the session descriptor
 * \return VLC_SUCCESS or an error
 */
int sout_AnnounceUnRegister( vlc_object_t *obj,
                             session_descriptor_t *p_session )
{
    sap_handler_t *p_sap = libvlc_priv (obj->p_libvlc)->p_sap;

    msg_Dbg (obj, "removing SAP session");
    SAP_Del (p_sap, p_session);

    vlc_mutex_lock (&sap_mutex);
    vlc_object_release ((vlc_object_t *)p_sap);
    vlc_mutex_unlock (&sap_mutex);

    free (p_session->psz_sdp);
    free (p_session);

    return 0;
}
Exemple #2
0
/**
 *  Unregisters an existing session
 *
 * \param obj a VLC object
 * \param p_session the session descriptor
 * \return VLC_SUCCESS or an error
 */
int sout_AnnounceUnRegister( vlc_object_t *obj,
                             session_descriptor_t *p_session )
{
    sap_handler_t *p_sap = libvlc_priv (obj->p_libvlc)->p_sap;

    msg_Dbg (obj, "removing SAP session");
    SAP_Del (p_sap, p_session);

    vlc_value_t lockval;
    var_Create (obj->p_libvlc, "sap_mutex", VLC_VAR_MUTEX);
    var_Get (obj->p_libvlc, "sap_mutex", &lockval);
    vlc_mutex_lock (lockval.p_address);
    vlc_object_release ((vlc_object_t *)p_sap);
    vlc_mutex_unlock (lockval.p_address);

    free (p_session->psz_sdp);
    free (p_session);

    return 0;
}