update hls query string

This commit is contained in:
Luke Pulverenti 2017-09-29 16:10:13 -04:00
parent 878abbddda
commit 4e4c145855
3 changed files with 18 additions and 7 deletions

View File

@ -346,7 +346,8 @@ namespace MediaBrowser.Controller.MediaEncoding
"Constrained High"
};
return Array.FindIndex(list.ToArray(), t => string.Equals(t, profile, StringComparison.OrdinalIgnoreCase));
// strip spaces because they may be stripped out on the query string
return Array.FindIndex(list.ToArray(), t => string.Equals(t.Replace(" ", ""), profile.Replace(" ", ""), StringComparison.OrdinalIgnoreCase));
}
public string GetInputPathArgument(EncodingJobInfo state)
@ -831,7 +832,7 @@ namespace MediaBrowser.Controller.MediaEncoding
}
// Source and target codecs must match
if (string.IsNullOrEmpty(videoStream.Codec) || !state.SupportedVideoCodecs.Contains(videoStream.Codec, StringComparer.OrdinalIgnoreCase))
if (string.IsNullOrWhiteSpace(videoStream.Codec) || !state.SupportedVideoCodecs.Contains(videoStream.Codec, StringComparer.OrdinalIgnoreCase))
{
return false;
}
@ -841,13 +842,14 @@ namespace MediaBrowser.Controller.MediaEncoding
// If client is requesting a specific video profile, it must match the source
if (requestedProfiles.Length > 0)
{
if (string.IsNullOrEmpty(videoStream.Profile))
if (string.IsNullOrWhiteSpace(videoStream.Profile))
{
//return false;
}
var requestedProfile = requestedProfiles[0];
if (!string.IsNullOrEmpty(videoStream.Profile) && !string.Equals(requestedProfile, videoStream.Profile, StringComparison.OrdinalIgnoreCase))
// strip spaces because they may be stripped out on the query string as well
if (!string.IsNullOrWhiteSpace(videoStream.Profile) && !requestedProfiles.Contains(videoStream.Profile.Replace(" ", ""), StringComparer.OrdinalIgnoreCase))
{
var currentScore = GetVideoProfileScore(videoStream.Profile);
var requestedScore = GetVideoProfileScore(requestedProfile);

View File

@ -1615,7 +1615,12 @@ namespace MediaBrowser.Model.Dlna
if (!string.IsNullOrWhiteSpace(value))
{
// change from split by | to comma
item.SetOption(qualifier, "profile", string.Join(",", value.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)));
// strip spaces to avoid having to encode
var values = value
.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
item.SetOption(qualifier, "profile", string.Join(",", values));
}
break;
}

View File

@ -297,7 +297,10 @@ namespace MediaBrowser.Model.Dlna
// dlna needs to be update to support the qualified params
var profile = item.GetOption("h264", "profile");
list.Add(new NameValuePair("Profile", profile ?? string.Empty));
// Avoid having to encode
profile = (profile ?? string.Empty).Replace(" ", "");
list.Add(new NameValuePair("Profile", profile));
}
// no longer used
@ -372,7 +375,8 @@ namespace MediaBrowser.Model.Dlna
continue;
}
list.Add(new NameValuePair(pair.Key, pair.Value));
// strip spaces to avoid having to encode h264 profile names
list.Add(new NameValuePair(pair.Key, pair.Value.Replace(" ", "")));
}
}