Ejemplo n.º 1
0
GF_EXPORT
void gf_sdp_media_del(GF_SDPMedia *media)
{
	GF_SDPBandwidth *bw;
	GF_RTPMap *map;
	GF_SDPConnection *conn;
	GF_SDP_FMTP *fmtp;
	GF_X_Attribute *att;
	if (!media) return;

	while (gf_list_count(media->FMTP)) {
		fmtp = (GF_SDP_FMTP*)gf_list_get(media->FMTP, 0);
		gf_list_rem(media->FMTP, 0);
		gf_sdp_fmtp_del(fmtp);
	}
	gf_list_del(media->FMTP);

	while (gf_list_count(media->Attributes)) {
		att = (GF_X_Attribute*)gf_list_get(media->Attributes, 0);
		gf_list_rem(media->Attributes, 0);
		if (att->Name) gf_free(att->Name);
		if (att->Value) gf_free(att->Value);
		gf_free(att);
	}
	gf_list_del(media->Attributes);

	while (gf_list_count(media->RTPMaps)) {
		map = (GF_RTPMap*)gf_list_get(media->RTPMaps, 0);
		gf_free(map->payload_name);
		gf_free(map);
		gf_list_rem(media->RTPMaps, 0);
	}
	gf_list_del(media->RTPMaps);
	
	while (gf_list_count(media->Connections)) {
		conn = (GF_SDPConnection*)gf_list_get(media->Connections, 0);
		gf_list_rem(media->Connections, 0);
		gf_sdp_conn_del(conn);
	}
	gf_list_del(media->Connections);

	while (gf_list_count(media->Bandwidths)) {
		bw = (GF_SDPBandwidth*)gf_list_get(media->Bandwidths, 0);
		gf_list_rem(media->Bandwidths, 0);
		if (bw->name) gf_free(bw->name);
		gf_free(bw);
	}
	gf_list_del(media->Bandwidths);

	SDPM_DESTROY(orientation);
	SDPM_DESTROY(sdplang);
	SDPM_DESTROY(lang);
	SDPM_DESTROY(Profile);
	SDPM_DESTROY(fmt_list);
	SDPM_DESTROY(k_method);
	SDPM_DESTROY(k_key);
	gf_free(media);
}
Ejemplo n.º 2
0
void SDPMedia_Delete(SDPMedia *media)
{
	SDPBandwidth *bw;
	SDP_RTPMap *map;
	SDPConnection *conn;
	SDP_FMTP *fmtp;
	X_Attribute *att;
	if (!media) return;

	while (ChainGetCount(media->FMTP)) {
		fmtp = ChainGetEntry(media->FMTP, 0);
		ChainDeleteEntry(media->FMTP, 0);
		SDP_DeleteFMTP(fmtp);
	}
	DeleteChain(media->FMTP);

	while (ChainGetCount(media->Attributes)) {
		att = ChainGetEntry(media->Attributes, 0);
		ChainDeleteEntry(media->Attributes, 0);
		if (att->Name) free(att->Name);
		if (att->Value) free(att->Value);
		free(att);
	}
	DeleteChain(media->Attributes);

	while (ChainGetCount(media->RTPMaps)) {
		map = ChainGetEntry(media->RTPMaps, 0);
		free(map->payload_name);
		free(map);
		ChainDeleteEntry(media->RTPMaps, 0);
	}
	DeleteChain(media->RTPMaps);
	
	while (ChainGetCount(media->Connections)) {
		conn = ChainGetEntry(media->Connections, 0);
		ChainDeleteEntry(media->Connections, 0);
		SDP_DeleteConnection(conn);
	}
	DeleteChain(media->Connections);

	while (ChainGetCount(media->Bandwidths)) {
		bw = ChainGetEntry(media->Bandwidths, 0);
		ChainDeleteEntry(media->Bandwidths, 0);
		if (bw->name) free(bw->name);
		free(bw);
	}
	DeleteChain(media->Bandwidths);

	SDPM_DESTROY(orientation);
	SDPM_DESTROY(sdplang);
	SDPM_DESTROY(lang);
	SDPM_DESTROY(Profile);
	SDPM_DESTROY(fmt_list);
	SDPM_DESTROY(k_method);
	SDPM_DESTROY(k_key);
	free(media);
}