Merge pull request #10965 from nyanmisaka/videocodectag-equals-any

Add EqualsAny for VideoCodecTag condition
pull/10988/head
Bond-009 8 months ago committed by GitHub
commit 7e5c5eaff8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -87,6 +87,12 @@ namespace MediaBrowser.Controller.MediaEncoding
/// <value>The level.</value>
public string Level { get; set; }
/// <summary>
/// Gets or sets the codec tag.
/// </summary>
/// <value>The codec tag.</value>
public string CodecTag { get; set; }
/// <summary>
/// Gets or sets the framerate.
/// </summary>

@ -619,6 +619,26 @@ namespace MediaBrowser.Controller.MediaEncoding
return Array.Empty<string>();
}
public string[] GetRequestedCodecTags(string codec)
{
if (!string.IsNullOrEmpty(BaseRequest.CodecTag))
{
return BaseRequest.CodecTag.Split(new[] { '|', ',' }, StringSplitOptions.RemoveEmptyEntries);
}
if (!string.IsNullOrEmpty(codec))
{
var codectag = BaseRequest.GetOption(codec, "codectag");
if (!string.IsNullOrEmpty(codectag))
{
return codectag.Split(new[] { '|', ',' }, StringSplitOptions.RemoveEmptyEntries);
}
}
return Array.Empty<string>();
}
public string GetRequestedLevel(string codec)
{
if (!string.IsNullOrEmpty(BaseRequest.Level))

@ -1944,6 +1944,38 @@ namespace MediaBrowser.Model.Dlna
break;
}
case ProfileConditionValue.VideoCodecTag:
{
if (string.IsNullOrEmpty(qualifier))
{
continue;
}
// change from split by | to comma
// strip spaces to avoid having to encode
var values = value
.Split('|', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
if (condition.Condition == ProfileConditionType.Equals)
{
item.SetOption(qualifier, "codectag", string.Join(',', values));
}
else if (condition.Condition == ProfileConditionType.EqualsAny)
{
var currentValue = item.GetOption(qualifier, "codectag");
if (!string.IsNullOrEmpty(currentValue) && values.Any(v => string.Equals(v, currentValue, StringComparison.OrdinalIgnoreCase)))
{
item.SetOption(qualifier, "codectag", currentValue);
}
else
{
item.SetOption(qualifier, "codectag", string.Join(',', values));
}
}
break;
}
case ProfileConditionValue.Height:
{
if (!enableNonQualifiedConditions)

Loading…
Cancel
Save