소스 검색

fix dlna flag values

Luke Pulverenti 11 년 전
부모
커밋
73b771f9c5
2개의 변경된 파일14개의 추가작업 그리고 2개의 파일을 삭제
  1. 8 2
      MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs
  2. 6 0
      MediaBrowser.Model/Dlna/Filter.cs

+ 8 - 2
MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs

@@ -39,8 +39,8 @@ namespace MediaBrowser.Model.Dlna
                 //flagValue = flagValue | DlnaFlags.DLNA_ORG_FLAG_TIME_BASED_SEEK;
             }
 
-            var dlnaflags = string.Format(";DLNA.ORG_FLAGS={0}000000000000000000000000",
-             Enum.Format(typeof(DlnaFlags), flagValue, "x"));
+            var dlnaflags = string.Format(";DLNA.ORG_FLAGS={0}",
+             FlagsToString(flagValue));
 
             var mediaProfile = _profile.GetAudioMediaProfile(container, audioCodec);
 
@@ -56,6 +56,12 @@ namespace MediaBrowser.Model.Dlna
             return (contentFeatures + orgOp + orgCi + dlnaflags).Trim(';');
         }
 
+        private static string FlagsToString(DlnaFlags flags)
+        {
+            //return Enum.Format(typeof(DlnaFlags), flags, "x");
+            return string.Format("{0:X8}{1:D24}", (ulong)flags, 0);
+        }
+
         public string BuildVideoHeader(string container, 
             string videoCodec, 
             string audioCodec, 

+ 6 - 0
MediaBrowser.Model/Dlna/Filter.cs

@@ -9,6 +9,12 @@ namespace MediaBrowser.Model.Dlna
         private readonly List<string> _fields;
         private readonly bool _all;
 
+        public Filter()
+            : this("*")
+        {
+
+        }
+
         public Filter(string filter)
         {
             _all = string.Equals(filter, "*", StringComparison.OrdinalIgnoreCase);