			assert(ds->opid);
			gf_list_insert(multi_tracks, ds->opid, 0);
			if (ds->dep_id) dasher_gather_deps(ctx, ds->dep_id, multi_tracks);
		}
	}
}

static void dasher_update_dep_list(GF_DasherCtx *ctx, GF_DashStream *ds, const char *ref_type)
{
	u32 i, j, count, base_id;
	GF_PropertyValue *p = (GF_PropertyValue *) gf_filter_pid_get_property_str(ds->opid, ref_type);
	if (!p) return;
	base_id = ds->dep_id ? ds->dep_id : ds->id;
	count = gf_list_count(ctx->current_period->streams);
	for (i=0; i<p->value.uint_list.nb_items; i++) {
		for (j=0; j<count; j++) {
			GF_DashStream *a_ds = gf_list_get(ctx->current_period->streams, j);
			assert(ds->opid);
			gf_list_insert(multi_tracks, ds->opid, 0);
			if (ds->dep_id) dasher_gather_deps(ctx, ds->dep_id, multi_tracks);
		}
	}
}

static void dasher_update_dep_list(GF_DasherCtx *ctx, GF_DashStream *ds, const char *ref_type)
{
	u32 i, j, count, base_id;
	GF_PropertyValue *p = (GF_PropertyValue *) gf_filter_pid_get_property_str(ds->opid, ref_type);
	if (!p) return;
	base_id = ds->dep_id ? ds->dep_id : ds->id;
	count = gf_list_count(ctx->current_period->streams);
	for (i=0; i<p->value.uint_list.nb_items; i++) {
		for (j=0; j<count; j++) {
			GF_DashStream *a_ds = gf_list_get(ctx->current_period->streams, j);