GF_Err gf_odf_delete_command(GF_ODCom *com)
{
	switch (com->tag) {
	case GF_ODF_OD_UPDATE_TAG:
		return gf_odf_del_od_update((GF_ODUpdate *)com);
	case GF_ODF_OD_REMOVE_TAG:
		return gf_odf_del_od_remove((GF_ODRemove *)com);

	case GF_ODF_ESD_UPDATE_TAG:
		return gf_odf_del_esd_update((GF_ESDUpdate *)com);
	case GF_ODF_ESD_REMOVE_TAG:
	case GF_ODF_ESD_REMOVE_REF_TAG:
		return gf_odf_del_esd_remove((GF_ESDRemove *)com);
#ifndef GPAC_MINIMAL_ODF
	case GF_ODF_IPMP_UPDATE_TAG:
		return gf_odf_del_ipmp_update((GF_IPMPUpdate *)com);
	case GF_ODF_IPMP_REMOVE_TAG:
		return gf_odf_del_ipmp_remove((GF_IPMPRemove *)com);

	default:
		return gf_odf_del_base_command((GF_BaseODCom *)com);
#else
	default:
		return GF_NOT_SUPPORTED;
#endif

	}
}
GF_Err gf_odf_delete_command(GF_ODCom *com)
{
	switch (com->tag) {
	case GF_ODF_OD_UPDATE_TAG:
		return gf_odf_del_od_update((GF_ODUpdate *)com);
	case GF_ODF_OD_REMOVE_TAG:
		return gf_odf_del_od_remove((GF_ODRemove *)com);

	case GF_ODF_ESD_UPDATE_TAG:
		return gf_odf_del_esd_update((GF_ESDUpdate *)com);
	case GF_ODF_ESD_REMOVE_TAG:
	case GF_ODF_ESD_REMOVE_REF_TAG:
		return gf_odf_del_esd_remove((GF_ESDRemove *)com);
#ifndef GPAC_MINIMAL_ODF
	case GF_ODF_IPMP_UPDATE_TAG:
		return gf_odf_del_ipmp_update((GF_IPMPUpdate *)com);
	case GF_ODF_IPMP_REMOVE_TAG:
		return gf_odf_del_ipmp_remove((GF_IPMPRemove *)com);

	default:
		return gf_odf_del_base_command((GF_BaseODCom *)com);
#else
	default:
		return GF_NOT_SUPPORTED;
#endif

	}
}