private static Media Find(Period p, string language, MediaType type, MediaRole role = MediaRole.Main) { Media missingRole = null; foreach (var set in p.Sets) { if (set.Type.Value != type) { continue; } if (language != "und" && set.Lang != language) { continue; } if (set.HasRole(role)) { return(set); } if (set.Roles.Length == 0) { missingRole = set; } } return(missingRole); }
public bool HasRole(MediaRole kind) { if (kind == MediaRole.Other) { return(false); } foreach (Role r in Roles) { if (r.Kind == kind) { return(true); } } return(false); }
private static Media Find(MpdParser.Period p, string language, MediaType type, MediaRole role = MediaRole.Main) { Media res = null; for (int i = 0; i < p.Sets.Length; i++) { if (p.Sets[i].Type.Value != type) { continue; } if (language != null) { if (p.Sets[i].Lang != language) { continue; } } if (p.Sets[i].HasRole(role)) { res = p.Sets[i]; break; } if (p.Sets[i].Roles.Length == 0) { res = p.Sets[i]; break; } } return(res); }