diff options
Diffstat (limited to 'MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs')
| -rw-r--r-- | MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs index b6d9d9f77..5417c5b82 100644 --- a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs +++ b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs @@ -92,7 +92,7 @@ namespace MediaBrowser.Model.Dlna return (contentFeatures + orgOp + orgCi + dlnaflags).Trim(';'); } - public string BuildVideoHeader(string container, + public List<string> BuildVideoHeader(string container, string videoCodec, string audioCodec, int? width, @@ -149,30 +149,42 @@ namespace MediaBrowser.Model.Dlna timestamp, isAnamorphic); - string orgPn = mediaProfile == null ? null : mediaProfile.OrgPn; + List<string> orgPnValues = new List<string>(); - if (string.IsNullOrEmpty(orgPn)) + if (mediaProfile != null && !string.IsNullOrEmpty(mediaProfile.OrgPn)) + { + orgPnValues.Add(mediaProfile.OrgPn); + } + else { foreach (string s in GetVideoOrgPnValue(container, videoCodec, audioCodec, width, height, timestamp)) { - orgPn = s; + orgPnValues.Add(s); break; } } - if (string.IsNullOrEmpty(orgPn)) + List<string> contentFeatureList = new List<string>(); + + foreach (string orgPn in orgPnValues) { - // TODO: Support multiple values and return multiple headers? - foreach (string s in (orgPn ?? string.Empty).Split(',')) - { - orgPn = s; - break; - } + string contentFeatures = string.IsNullOrEmpty(orgPn) ? string.Empty : "DLNA.ORG_PN=" + orgPn; + + var value = (contentFeatures + orgOp + orgCi + dlnaflags).Trim(';'); + + contentFeatureList.Add(value); } - string contentFeatures = string.IsNullOrEmpty(orgPn) ? string.Empty : "DLNA.ORG_PN=" + orgPn; + if (orgPnValues.Count == 0) + { + string contentFeatures = string.Empty; - return (contentFeatures + orgOp + orgCi + dlnaflags).Trim(';'); + var value = (contentFeatures + orgOp + orgCi + dlnaflags).Trim(';'); + + contentFeatureList.Add(value); + } + + return contentFeatureList; } private string GetImageOrgPnValue(string container, int? width, int? height) |
