void SDP_Reset(SDPInfo *sdp) { SDPBandwidth *bw; SDPMedia *media; SDPTiming *timing; X_Attribute *att; if (!sdp) return; while (ChainGetCount(sdp->media_desc)) { media = ChainGetEntry(sdp->media_desc, 0); ChainDeleteEntry(sdp->media_desc, 0); SDPMedia_Delete(media); } while (ChainGetCount(sdp->Attributes)) { att = ChainGetEntry(sdp->Attributes, 0); ChainDeleteEntry(sdp->Attributes, 0); if (att->Name) free(att->Name); if (att->Value) free(att->Value); free(att); } while (ChainGetCount(sdp->b_bandwidth)) { bw = ChainGetEntry(sdp->b_bandwidth, 0); ChainDeleteEntry(sdp->b_bandwidth, 0); if (bw->name) free(bw->name); free(bw); } while (ChainGetCount(sdp->Timing)) { timing = ChainGetEntry(sdp->Timing, 0); ChainDeleteEntry(sdp->Timing, 0); free(timing); } //then delete all info ... SDP_DESTROY(o_username); SDP_DESTROY(o_session_id); SDP_DESTROY(o_version); SDP_DESTROY(o_address); SDP_DESTROY(o_net_type); SDP_DESTROY(o_add_type); SDP_DESTROY(s_session_name); SDP_DESTROY(i_description); SDP_DESTROY(u_uri); SDP_DESTROY(e_email); SDP_DESTROY(p_phone); SDP_DESTROY(k_method); SDP_DESTROY(k_key); SDP_DESTROY(a_cat); SDP_DESTROY(a_keywds); SDP_DESTROY(a_tool); SDP_DESTROY(a_type); SDP_DESTROY(a_charset); SDP_DESTROY(a_sdplang); SDP_DESTROY(a_lang); if (sdp->c_connection) { SDP_DeleteConnection(sdp->c_connection); sdp->c_connection = NULL; } sdp->a_SendRecieve = 0; }
GF_EXPORT void gf_sdp_info_reset(GF_SDPInfo *sdp) { GF_SDPBandwidth *bw; GF_SDPMedia *media; GF_SDPTiming *timing; GF_X_Attribute *att; if (!sdp) return; while (gf_list_count(sdp->media_desc)) { media = (GF_SDPMedia*)gf_list_get(sdp->media_desc, 0); gf_list_rem(sdp->media_desc, 0); gf_sdp_media_del(media); } while (gf_list_count(sdp->Attributes)) { att = (GF_X_Attribute*)gf_list_get(sdp->Attributes, 0); gf_list_rem(sdp->Attributes, 0); if (att->Name) gf_free(att->Name); if (att->Value) gf_free(att->Value); gf_free(att); } while (gf_list_count(sdp->b_bandwidth)) { bw = (GF_SDPBandwidth*)gf_list_get(sdp->b_bandwidth, 0); gf_list_rem(sdp->b_bandwidth, 0); if (bw->name) gf_free(bw->name); gf_free(bw); } while (gf_list_count(sdp->Timing)) { timing = (GF_SDPTiming*)gf_list_get(sdp->Timing, 0); gf_list_rem(sdp->Timing, 0); gf_free(timing); } //then delete all info ... SDP_DESTROY(o_username); SDP_DESTROY(o_session_id); SDP_DESTROY(o_version); SDP_DESTROY(o_address); SDP_DESTROY(o_net_type); SDP_DESTROY(o_add_type); SDP_DESTROY(s_session_name); SDP_DESTROY(i_description); SDP_DESTROY(u_uri); SDP_DESTROY(e_email); SDP_DESTROY(p_phone); SDP_DESTROY(k_method); SDP_DESTROY(k_key); SDP_DESTROY(a_cat); SDP_DESTROY(a_keywds); SDP_DESTROY(a_tool); SDP_DESTROY(a_type); SDP_DESTROY(a_charset); SDP_DESTROY(a_sdplang); SDP_DESTROY(a_lang); if (sdp->c_connection) { gf_sdp_conn_del(sdp->c_connection); sdp->c_connection = NULL; } sdp->a_SendReceive = 0; }