private void UpdateBaseUrl() { //This does not support all scenarios for the BaseUrl element. //It will find the first BaseUrl //Element in either the MPD element or the Period Element, top down //and append it to the base url of the manifest. var mpdBaseUrlElement = document.SelectNodes("*").Where(x => x.NodeName == "BaseURL"); if (mpdBaseUrlElement.Count() != 0) { string baseUrlText = mpdBaseUrlElement.First().InnerText; if (baseUrlText.ToLower().StartsWith("http") || baseUrlText.ToLower().StartsWith("https")) { manifest.BaseUrl = baseUrlText; } else { manifest.AppendToBaseUrl(mpdBaseUrlElement.First().InnerText); } return; } var periodBaseUrlElement = document.SelectNodes("*").Where(x => x.NodeName == "BaseURL"); if (periodBaseUrlElement.Count() != 0) { string baseUrlText = periodBaseUrlElement.First().InnerText; if (baseUrlText.ToLower().StartsWith("http") || baseUrlText.ToLower().StartsWith("https")) { manifest.BaseUrl = baseUrlText; } else { manifest.AppendToBaseUrl(periodBaseUrlElement.First().InnerText); } return; } }