Explorar el Código

added an lg profile

Luke Pulverenti hace 11 años
padre
commit
c9ca62329e

+ 18 - 28
MediaBrowser.Dlna/DlnaManager.cs

@@ -27,35 +27,25 @@ namespace MediaBrowser.Dlna
 
         public IEnumerable<DeviceProfile> GetProfiles()
         {
-            var list = new List<DeviceProfile>();
-
-            list.Add(new SamsungSmartTvProfile());
-            
-            list.Add(new Xbox360Profile());
-
-            list.Add(new XboxOneProfile());
-
-            list.Add(new SonyPs3Profile());
-            
-            list.Add(new SonyBravia2010Profile());
-
-            list.Add(new SonyBravia2011Profile());
-
-            list.Add(new SonyBravia2012Profile());
-
-            list.Add(new SonyBravia2013Profile());
-
-            list.Add(new SonyBlurayPlayer2013Profile());
-            list.Add(new SonyBlurayPlayerProfile());
-     
-            list.Add(new PanasonicVieraProfile());
-
-            list.Add(new WdtvLiveProfile());
-
-            list.Add(new DenonAvrProfile());
+            var list = new List<DeviceProfile>
+            {
+                new SamsungSmartTvProfile(),
+                new Xbox360Profile(),
+                new XboxOneProfile(),
+                new SonyPs3Profile(),
+                new SonyBravia2010Profile(),
+                new SonyBravia2011Profile(),
+                new SonyBravia2012Profile(),
+                new SonyBravia2013Profile(),
+                new SonyBlurayPlayer2013Profile(),
+                new SonyBlurayPlayerProfile(),
+                new PanasonicVieraProfile(),
+                new WdtvLiveProfile(),
+                new DenonAvrProfile(),
+                new LinksysDMA2100Profile(),
+                new LgTvProfile()
+            };
 
-            list.Add(new LinksysDMA2100Profile());
-            
             foreach (var item in list)
             {
                 //_xmlSerializer.SerializeToFile(item, "d:\\" + _fileSystem.GetValidFilename(item.Name) + ".xml");

+ 1 - 0
MediaBrowser.Dlna/MediaBrowser.Dlna.csproj

@@ -83,6 +83,7 @@
     <Compile Include="PlayTo\uPnpNamespaces.cs" />
     <Compile Include="Profiles\DefaultProfile.cs" />
     <Compile Include="Profiles\DenonAvrProfile.cs" />
+    <Compile Include="Profiles\LgTvProfile.cs" />
     <Compile Include="Profiles\LinksysDMA2100Profile.cs" />
     <Compile Include="Profiles\PanasonicVieraProfile.cs" />
     <Compile Include="Profiles\SamsungSmartTvProfile.cs" />

+ 1 - 1
MediaBrowser.Dlna/PlayTo/PlayToManager.cs

@@ -176,7 +176,7 @@ namespace MediaBrowser.Dlna.PlayTo
                     {
                         socket.SendTo(request, new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900));
 
-                        var delay = _config.Configuration.DlnaOptions.ClientDiscoveryIntervalSeconds*1000;
+                        var delay = _config.Configuration.DlnaOptions.ClientDiscoveryIntervalSeconds * 1000;
 
                         await Task.Delay(delay).ConfigureAwait(false);
                     }

+ 192 - 0
MediaBrowser.Dlna/Profiles/LgTvProfile.cs

@@ -0,0 +1,192 @@
+using MediaBrowser.Controller.Dlna;
+
+namespace MediaBrowser.Dlna.Profiles
+{
+    public class LgTvProfile : DefaultProfile
+    {
+        public LgTvProfile()
+        {
+            Name = "LG Smart TV";
+
+            TimelineOffsetSeconds = 10;
+
+            Identification = new DeviceIdentification
+            {
+                FriendlyName = @"LG.*",
+
+                Headers = new[]
+               {
+                   new HttpHeaderInfo
+                   {
+                       Name = "User-Agent",
+                       Value = "LG",
+                       Match = HeaderMatchType.Substring
+                   }
+               }
+            };
+
+            TranscodingProfiles = new[]
+           {
+               new TranscodingProfile
+               {
+                   Container = "mp3",
+                   AudioCodec = "mp3",
+                   Type = DlnaProfileType.Audio
+               },
+               new TranscodingProfile
+               {
+                   Container = "ts",
+                   AudioCodec = "ac3",
+                   VideoCodec = "h264",
+                   Type = DlnaProfileType.Video
+               },
+               new TranscodingProfile
+               {
+                   Container = "jpeg",
+                   Type = DlnaProfileType.Photo
+               }
+           };
+
+            DirectPlayProfiles = new[]
+            {
+                new DirectPlayProfile
+                {
+                    Container = "ts",
+                    VideoCodec = "h264",
+                    AudioCodec = "aac,ac3,mp3",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "mkv",
+                    VideoCodec = "h264",
+                    AudioCodec = "aac,ac3,mp3",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "mp4",
+                    VideoCodec = "h264,mpeg4",
+                    AudioCodec = "aac,ac3,mp3",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "mp3",
+                    AudioCodec = "mp3",
+                    Type = DlnaProfileType.Audio
+                },
+                new DirectPlayProfile
+                {
+                    Container = "jpeg",
+                    Type = DlnaProfileType.Photo
+                }
+            };
+
+            ContainerProfiles = new[]
+            {
+                new ContainerProfile
+                {
+                    Type = DlnaProfileType.Photo,
+
+                    Conditions = new []
+                    {
+                        new ProfileCondition
+                        {
+                            Condition = ProfileConditionType.LessThanEqual,
+                            Property = ProfileConditionValue.Width,
+                            Value = "1920"
+                        },
+                        new ProfileCondition
+                        {
+                            Condition = ProfileConditionType.LessThanEqual,
+                            Property = ProfileConditionValue.Height,
+                            Value = "1080"
+                        }
+                    }
+                }
+            };
+
+            CodecProfiles = new[]
+           {
+               new CodecProfile
+               {
+                   Type = CodecType.VideoCodec,
+                   Codec = "mpeg4",
+
+                   Conditions = new[]
+                   {
+                       new ProfileCondition
+                       {
+                           Condition = ProfileConditionType.LessThanEqual,
+                           Property = ProfileConditionValue.Width,
+                           Value = "1920"
+                       },
+                       new ProfileCondition
+                       {
+                           Condition = ProfileConditionType.LessThanEqual,
+                           Property = ProfileConditionValue.Height,
+                           Value = "1080"
+                       },
+                       new ProfileCondition
+                       {
+                           Condition = ProfileConditionType.LessThanEqual,
+                           Property = ProfileConditionValue.VideoFramerate,
+                           Value = "30"
+                       }
+                   }
+               },
+
+               new CodecProfile
+               {
+                   Type = CodecType.VideoCodec,
+                   Codec = "h264",
+
+                   Conditions = new[]
+                   {
+                       new ProfileCondition
+                       {
+                           Condition = ProfileConditionType.LessThanEqual,
+                           Property = ProfileConditionValue.Width,
+                           Value = "1920"
+                       },
+                       new ProfileCondition
+                       {
+                           Condition = ProfileConditionType.LessThanEqual,
+                           Property = ProfileConditionValue.Height,
+                           Value = "1080"
+                       },
+                       new ProfileCondition
+                       {
+                           Condition = ProfileConditionType.LessThanEqual,
+                           Property = ProfileConditionValue.VideoFramerate,
+                           Value = "30"
+                       },
+                       new ProfileCondition
+                       {
+                           Condition = ProfileConditionType.LessThanEqual,
+                           Property = ProfileConditionValue.VideoLevel,
+                           Value = "41"
+                       }
+                   }
+               },
+
+               new CodecProfile
+               {
+                   Type = CodecType.VideoAudioCodec,
+                   Codec = "ac3,aac,mp3",
+
+                   Conditions = new[]
+                   {
+                       new ProfileCondition
+                       {
+                           Condition = ProfileConditionType.LessThanEqual,
+                           Property = ProfileConditionValue.AudioChannels,
+                           Value = "6"
+                       }
+                   }
+               }
+           };
+        }
+    }
+}