	p = gf_filter_pid_get_property(ds->ipid, GF_PROP_PID_HLS_EXT_VARIANT);
	if (p) {
		ds->rep->nb_hls_variant_tags = p->value.string_list.nb_items;
		ds->rep->hls_variant_tags = (const char **) p->value.string_list.vals;
	}
}

static Bool dasher_same_roles(GF_DashStream *ds1, GF_DashStream *ds2)
{
	const GF_PropStringList *slist;
	if (ds1->p_role && ds2->p_role) {
		if (gf_props_equal(ds1->p_role, ds2->p_role)) return GF_TRUE;
	}
	if (!ds1->p_role && !ds2->p_role)
		return GF_TRUE;

	p = gf_filter_pid_get_property(ds->ipid, GF_PROP_PID_HLS_EXT_VARIANT);
	if (p) {
		ds->rep->nb_hls_variant_tags = p->value.string_list.nb_items;
		ds->rep->hls_variant_tags = (const char **) p->value.string_list.vals;
	}
}

static Bool dasher_same_roles(GF_DashStream *ds1, GF_DashStream *ds2)
{
	const GF_PropStringList *slist;
	if (ds1->p_role && ds2->p_role) {
		if (gf_props_equal(ds1->p_role, ds2->p_role)) return GF_TRUE;
	}
	if (!ds1->p_role && !ds2->p_role)
		return GF_TRUE;
