瀏覽代碼

added bravia 2014 profile

Luke Pulverenti 9 年之前
父節點
當前提交
0e1b983ffc

+ 2 - 1
MediaBrowser.Dlna/DlnaManager.cs

@@ -530,6 +530,7 @@ namespace MediaBrowser.Dlna
                 new SonyBravia2011Profile(),
                 new SonyBravia2012Profile(),
                 new SonyBravia2013Profile(),
+                new SonyBravia2014Profile(),
                 new SonyBlurayPlayer2013Profile(),
                 new SonyBlurayPlayerProfile(),
                 new PanasonicVieraProfile(),
@@ -548,7 +549,7 @@ namespace MediaBrowser.Dlna
                 new PopcornHourProfile(),
                 new VlcProfile(),
                 new BubbleUpnpProfile(),
-                new KodiProfile()
+                new KodiProfile(),
             };
 
             foreach (var item in list)

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

@@ -81,7 +81,9 @@
     <Compile Include="Profiles\DefaultProfile.cs" />
     <Compile Include="Profiles\DirectTvProfile.cs" />
     <Compile Include="Profiles\DishHopperJoeyProfile.cs" />
+    <Compile Include="Profiles\KodiProfile.cs" />
     <Compile Include="Profiles\PopcornHourProfile.cs" />
+    <Compile Include="Profiles\SonyBravia2014Profile.cs" />
     <Compile Include="Profiles\SonyPs4Profile.cs" />
     <Compile Include="Profiles\VlcProfile.cs" />
     <Compile Include="Ssdp\DeviceDiscoveryInfo.cs" />
@@ -223,6 +225,9 @@
       <SubType>Designer</SubType>
     </EmbeddedResource>
   </ItemGroup>
+  <ItemGroup>
+    <EmbeddedResource Include="Profiles\Xml\Sony Bravia %282014%29.xml" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

+ 309 - 0
MediaBrowser.Dlna/Profiles/SonyBravia2014Profile.cs

@@ -0,0 +1,309 @@
+using MediaBrowser.Model.Dlna;
+using System.Xml.Serialization;
+
+namespace MediaBrowser.Dlna.Profiles
+{
+    [XmlRoot("Profile")]
+    public class SonyBravia2014Profile : DefaultProfile
+    {
+        public SonyBravia2014Profile()
+        {
+            Name = "Sony Bravia (2014)";
+
+            Identification = new DeviceIdentification
+            {
+                FriendlyName = @"(KDL-\d{2}W[5-9]\d{2}B|KDL-\d{2}R480|XBR-\d{2}X[89]\d{2}B|KD-\d{2}[SX][89]\d{3}B).*",
+                Manufacturer = "Sony",
+
+                Headers = new[]
+                {
+                    new HttpHeaderInfo
+                    {
+                        Name = "X-AV-Client-Info",
+                        Value = @".*(KDL-\d{2}W[5-9]\d{2}B|KDL-\d{2}R480|XBR-\d{2}X[89]\d{2}B|KD-\d{2}[SX][89]\d{3}B).*",
+                        Match = HeaderMatchType.Regex
+                    }
+                }
+            };
+
+            AddXmlRootAttribute("xmlns:av", "urn:schemas-sony-com:av");
+
+            AlbumArtPn = "JPEG_TN";
+
+            ModelName = "Windows Media Player Sharing";
+            ModelNumber = "3.0";
+            ModelUrl = "http://www.microsoft.com/";
+            Manufacturer = "Microsoft Corporation";
+            ManufacturerUrl = "http://www.microsoft.com/";
+            SonyAggregationFlags = "10";
+            EnableSingleAlbumArtLimit = true;
+            EnableAlbumArtInDidl = true;
+
+            TranscodingProfiles = new[]
+            {
+                new TranscodingProfile
+                {
+                    Container = "mp3",
+                    Type = DlnaProfileType.Audio
+                },
+                new TranscodingProfile
+                {
+                    Container = "ts",
+                    VideoCodec = "h264",
+                    AudioCodec = "ac3",
+                    Type = DlnaProfileType.Video,
+                    EnableMpegtsM2TsMode = true
+                },
+                new TranscodingProfile
+                {
+                    Container = "jpeg",
+                    Type = DlnaProfileType.Photo
+                }
+            };
+
+            DirectPlayProfiles = new[]
+            {
+                new DirectPlayProfile
+                {
+                    Container = "ts",
+                    VideoCodec = "h264",
+                    AudioCodec = "ac3,eac3,aac,mp3",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "ts",
+                    VideoCodec = "mpeg2video",
+                    AudioCodec = "mp3,mp2",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "mp4",
+                    VideoCodec = "h264,mpeg4",
+                    AudioCodec = "ac3,eac3,aac,mp3,mp2",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "mov",
+                    VideoCodec = "h264,mpeg4,mjpeg",
+                    AudioCodec = "ac3,eac3,aac,mp3,mp2",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "mkv",
+                    VideoCodec = "h264,mpeg4,vp8",
+                    AudioCodec = "ac3,eac3,aac,mp3,mp2,pcm,vorbis",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "avi",
+                    VideoCodec = "mpeg4",
+                    AudioCodec = "ac3,eac3,mp3",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "avi",
+                    VideoCodec = "mjpeg",
+                    AudioCodec = "pcm",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "mpeg",
+                    VideoCodec = "mpeg2video,mpeg1video",
+                    AudioCodec = "mp3,mp2",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "asf",
+                    VideoCodec = "wmv2,wmv3,vc1",
+                    AudioCodec = "wmav2,wmapro,wmavoice",
+                    Type = DlnaProfileType.Video
+                },
+                new DirectPlayProfile
+                {
+                    Container = "mp3",
+                    AudioCodec = "mp3",
+                    Type = DlnaProfileType.Audio
+                },
+                new DirectPlayProfile
+                {
+                    Container = "mp4",
+                    AudioCodec = "aac",
+                    Type = DlnaProfileType.Audio
+                },
+                new DirectPlayProfile
+                {
+                    Container = "wav",
+                    AudioCodec = "pcm",
+                    Type = DlnaProfileType.Audio
+                },
+                new DirectPlayProfile
+                {
+                    Container = "asf",
+                    AudioCodec = "wmav2,wmapro,wmavoice",
+                    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"
+                        }
+                    }
+                }
+            };
+
+            ResponseProfiles = new[]
+            {
+                new ResponseProfile
+                {
+                    Container = "ts",
+                    VideoCodec="h264",
+                    AudioCodec="ac3,aac,mp3",
+                    MimeType = "video/vnd.dlna.mpeg-tts",
+                    OrgPn="AVC_TS_HD_24_AC3_T,AVC_TS_HD_50_AC3_T,AVC_TS_HD_60_AC3_T,AVC_TS_HD_EU_T",
+                    Type = DlnaProfileType.Video,
+
+                    Conditions = new []
+                    {
+                        new ProfileCondition
+                        {
+                            Condition = ProfileConditionType.Equals,
+                            Property = ProfileConditionValue.PacketLength,
+                            Value = "192"
+                        },
+                        new ProfileCondition
+                        {
+                            Condition = ProfileConditionType.Equals,
+                            Property = ProfileConditionValue.VideoTimestamp,
+                            Value = "Valid"
+                        }
+                    }
+                },
+
+                new ResponseProfile
+                {
+                    Container = "ts",
+                    VideoCodec="h264",
+                    AudioCodec="ac3,aac,mp3",
+                    MimeType = "video/mpeg",
+                    OrgPn="AVC_TS_HD_24_AC3_ISO,AVC_TS_HD_50_AC3_ISO,AVC_TS_HD_60_AC3_ISO,AVC_TS_HD_EU_ISO",
+                    Type = DlnaProfileType.Video,
+
+                    Conditions = new []
+                    {
+                        new ProfileCondition
+                        {
+                            Condition = ProfileConditionType.Equals,
+                            Property = ProfileConditionValue.PacketLength,
+                            Value = "188"
+                        }
+                    }
+                },
+
+                new ResponseProfile
+                {
+                    Container = "ts",
+                    VideoCodec="h264",
+                    AudioCodec="ac3,aac,mp3",
+                    MimeType = "video/vnd.dlna.mpeg-tts",
+                    OrgPn="AVC_TS_HD_24_AC3,AVC_TS_HD_50_AC3,AVC_TS_HD_60_AC3,AVC_TS_HD_EU",
+                    Type = DlnaProfileType.Video
+                },
+
+                new ResponseProfile
+                {
+                    Container = "ts",
+                    VideoCodec="mpeg2video",
+                    MimeType = "video/vnd.dlna.mpeg-tts",
+                    OrgPn="MPEG_TS_SD_EU,MPEG_TS_SD_NA,MPEG_TS_SD_KO",
+                    Type = DlnaProfileType.Video
+                },
+
+                new ResponseProfile
+                {
+                    Container = "mpeg",
+                    VideoCodec="mpeg1video,mpeg2video",
+                    MimeType = "video/mpeg",
+                    OrgPn="MPEG_PS_NTSC,MPEG_PS_PAL",
+                    Type = DlnaProfileType.Video
+                }
+            };
+
+
+            CodecProfiles = new[]
+            {
+                new CodecProfile
+                {
+                    Type = CodecType.Video,
+
+                    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.VideoAudio,
+                    Codec = "mp3,mp2",
+
+                    Conditions = new []
+                    {
+                        new ProfileCondition
+                        {
+                            Condition = ProfileConditionType.LessThanEqual,
+                            Property = ProfileConditionValue.AudioChannels,
+                            Value = "2"
+                        }
+                    }
+                }
+            };
+        }
+    }
+}

+ 5 - 5
MediaBrowser.Dlna/Profiles/Xml/Kodi.xml

@@ -40,6 +40,11 @@
     <DirectPlayProfile container="" type="Audio" />
     <DirectPlayProfile container="" type="Photo" />
   </DirectPlayProfiles>
+  <TranscodingProfiles>
+    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" context="Streaming" />
+    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" context="Streaming" />
+    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" context="Streaming" />
+  </TranscodingProfiles>
   <ContainerProfiles />
   <CodecProfiles />
   <ResponseProfiles />
@@ -47,9 +52,4 @@
     <SubtitleProfile format="srt" method="External" />
     <SubtitleProfile format="sub" method="External" />
   </SubtitleProfiles>
-  <TranscodingProfiles>
-    <TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" context="Streaming" />
-    <TranscodingProfile container="ts" type="Video" videoCodec="h264" audioCodec="aac" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" context="Streaming" />
-    <TranscodingProfile container="jpeg" type="Photo" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" context="Streaming" />
-  </TranscodingProfiles>
 </Profile>

File diff suppressed because it is too large
+ 31 - 0
MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2014).xml


Some files were not shown because too many files changed in this diff