Merge pull request #2632 from MediaBrowser/dev

update dlna profiles
This commit is contained in:
Luke 2017-05-12 14:16:25 -04:00 committed by GitHub
commit 3cdb75190d
40 changed files with 182 additions and 730 deletions

View File

@ -587,10 +587,7 @@ namespace Emby.Dlna
new DirectTvProfile(),
new DishHopperJoeyProfile(),
new DefaultProfile(),
new PopcornHourProfile(),
new VlcProfile(),
new BubbleUpnpProfile(),
new KodiProfile(),
new PopcornHourProfile()
};
foreach (var item in list)

View File

@ -79,13 +79,11 @@
<Compile Include="PlayTo\uParserObject.cs" />
<Compile Include="PlayTo\UpnpContainer.cs" />
<Compile Include="PlayTo\uPnpNamespaces.cs" />
<Compile Include="Profiles\BubbleUpnpProfile.cs" />
<Compile Include="Profiles\DefaultProfile.cs" />
<Compile Include="Profiles\DenonAvrProfile.cs" />
<Compile Include="Profiles\DirectTvProfile.cs" />
<Compile Include="Profiles\DishHopperJoeyProfile.cs" />
<Compile Include="Profiles\Foobar2000Profile.cs" />
<Compile Include="Profiles\KodiProfile.cs" />
<Compile Include="Profiles\LgTvProfile.cs" />
<Compile Include="Profiles\LinksysDMA2100Profile.cs" />
<Compile Include="Profiles\MediaMonkeyProfile.cs" />
@ -105,7 +103,6 @@
<Compile Include="Profiles\SonyBravia2014Profile.cs" />
<Compile Include="Profiles\SonyPs3Profile.cs" />
<Compile Include="Profiles\SonyPs4Profile.cs" />
<Compile Include="Profiles\VlcProfile.cs" />
<Compile Include="Profiles\WdtvLiveProfile.cs" />
<Compile Include="Profiles\Xbox360Profile.cs" />
<Compile Include="Profiles\XboxOneProfile.cs" />
@ -153,13 +150,11 @@
<EmbeddedResource Include="Profiles\Xml\Sharp Smart TV.xml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Profiles\Xml\BubbleUPnp.xml" />
<EmbeddedResource Include="Profiles\Xml\Default.xml" />
<EmbeddedResource Include="Profiles\Xml\Denon AVR.xml" />
<EmbeddedResource Include="Profiles\Xml\DirecTV HD-DVR.xml" />
<EmbeddedResource Include="Profiles\Xml\Dish Hopper-Joey.xml" />
<EmbeddedResource Include="Profiles\Xml\foobar2000.xml" />
<EmbeddedResource Include="Profiles\Xml\Kodi.xml" />
<EmbeddedResource Include="Profiles\Xml\LG Smart TV.xml" />
<EmbeddedResource Include="Profiles\Xml\Linksys DMA2100.xml" />
<EmbeddedResource Include="Profiles\Xml\MediaMonkey.xml" />
@ -178,7 +173,6 @@
<EmbeddedResource Include="Profiles\Xml\Sony Bravia %282014%29.xml" />
<EmbeddedResource Include="Profiles\Xml\Sony PlayStation 3.xml" />
<EmbeddedResource Include="Profiles\Xml\Sony PlayStation 4.xml" />
<EmbeddedResource Include="Profiles\Xml\Vlc.xml" />
<EmbeddedResource Include="Profiles\Xml\WDTV Live.xml" />
<EmbeddedResource Include="Profiles\Xml\Xbox 360.xml" />
<EmbeddedResource Include="Profiles\Xml\Xbox One.xml" />

View File

@ -1,146 +0,0 @@
using MediaBrowser.Model.Dlna;
using System.Xml.Serialization;
namespace Emby.Dlna.Profiles
{
[XmlRoot("Profile")]
public class BubbleUpnpProfile : DefaultProfile
{
public BubbleUpnpProfile()
{
Name = "BubbleUPnp";
Identification = new DeviceIdentification
{
ModelName = "BubbleUPnp",
Headers = new[]
{
new HttpHeaderInfo {Name = "User-Agent", Value = "BubbleUPnp", Match = HeaderMatchType.Substring}
}
};
TranscodingProfiles = new[]
{
new TranscodingProfile
{
Container = "mp3",
AudioCodec = "mp3",
Type = DlnaProfileType.Audio
},
new TranscodingProfile
{
Container = "ts",
Type = DlnaProfileType.Video,
AudioCodec = "aac",
VideoCodec = "h264"
},
new TranscodingProfile
{
Container = "jpeg",
Type = DlnaProfileType.Photo
}
};
DirectPlayProfiles = new[]
{
new DirectPlayProfile
{
Container = "",
Type = DlnaProfileType.Video
},
new DirectPlayProfile
{
Container = "",
Type = DlnaProfileType.Audio
},
new DirectPlayProfile
{
Container = "",
Type = DlnaProfileType.Photo,
}
};
ResponseProfiles = new ResponseProfile[] { };
ContainerProfiles = new ContainerProfile[] { };
CodecProfiles = new CodecProfile[] { };
SubtitleProfiles = new[]
{
new SubtitleProfile
{
Format = "srt",
Method = SubtitleDeliveryMethod.External,
},
new SubtitleProfile
{
Format = "sub",
Method = SubtitleDeliveryMethod.External,
},
new SubtitleProfile
{
Format = "srt",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "ass",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "ssa",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "smi",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "dvdsub",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "pgs",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "pgssub",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "sub",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
}
};
}
}
}

View File

@ -30,8 +30,8 @@ namespace Emby.Dlna.Profiles
MaxIconWidth = 48;
MaxIconHeight = 48;
MaxStreamingBitrate = 30000000;
MaxStaticBitrate = 30000000;
MaxStreamingBitrate = 40000000;
MaxStaticBitrate = 40000000;
MusicStreamingTranscodingBitrate = 192000;
EnableAlbumArtInDidl = false;
@ -64,15 +64,13 @@ namespace Emby.Dlna.Profiles
{
new DirectPlayProfile
{
Container = "m4v,ts,mpegts,mkv,avi,mpg,mpeg,mp4,mov",
VideoCodec = "h264",
AudioCodec = "aac,mp3,ac3",
Container = "m4v,mpegts,ts,3gp,mov,xvid,vob,mkv,wmv,asf,ogm,ogv,m2v,avi,mpg,mpeg,mp4,webm,wtv,m2ts,dvr-ms",
Type = DlnaProfileType.Video
},
new DirectPlayProfile
{
Container = "mp3,wma,aac,wav,flac",
Container = "aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac",
Type = DlnaProfileType.Audio
}
};
@ -82,13 +80,61 @@ namespace Emby.Dlna.Profiles
new SubtitleProfile
{
Format = "srt",
Method = SubtitleDeliveryMethod.Embed
Method = SubtitleDeliveryMethod.External,
},
new SubtitleProfile
{
Format = "sub",
Method = SubtitleDeliveryMethod.External,
},
new SubtitleProfile
{
Format = "srt",
Method = SubtitleDeliveryMethod.External,
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "ass",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "ssa",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "smi",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "dvdsub",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "pgs",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "pgssub",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "sub",
Method = SubtitleDeliveryMethod.Embed
}
};

View File

@ -1,151 +0,0 @@
using MediaBrowser.Model.Dlna;
using System.Xml.Serialization;
namespace Emby.Dlna.Profiles
{
[XmlRoot("Profile")]
public class KodiProfile : DefaultProfile
{
public KodiProfile()
{
Name = "Kodi";
MaxStreamingBitrate = 100000000;
MusicStreamingTranscodingBitrate = 1280000;
TimelineOffsetSeconds = 5;
Identification = new DeviceIdentification
{
ModelName = "Kodi",
Headers = new[]
{
new HttpHeaderInfo {Name = "User-Agent", Value = "Kodi", Match = HeaderMatchType.Substring}
}
};
TranscodingProfiles = new[]
{
new TranscodingProfile
{
Container = "mp3",
AudioCodec = "mp3",
Type = DlnaProfileType.Audio
},
new TranscodingProfile
{
Container = "ts",
Type = DlnaProfileType.Video,
AudioCodec = "aac",
VideoCodec = "h264"
},
new TranscodingProfile
{
Container = "jpeg",
Type = DlnaProfileType.Photo
}
};
DirectPlayProfiles = new[]
{
new DirectPlayProfile
{
Container = "",
Type = DlnaProfileType.Video
},
new DirectPlayProfile
{
Container = "",
Type = DlnaProfileType.Audio
},
new DirectPlayProfile
{
Container = "",
Type = DlnaProfileType.Photo,
}
};
ResponseProfiles = new ResponseProfile[] { };
ContainerProfiles = new ContainerProfile[] { };
CodecProfiles = new CodecProfile[] { };
SubtitleProfiles = new[]
{
new SubtitleProfile
{
Format = "srt",
Method = SubtitleDeliveryMethod.External,
},
new SubtitleProfile
{
Format = "sub",
Method = SubtitleDeliveryMethod.External,
},
new SubtitleProfile
{
Format = "srt",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "ass",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "ssa",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "smi",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "dvdsub",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "pgs",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "pgssub",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "sub",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
}
};
}
}
}

View File

@ -1,149 +0,0 @@
using MediaBrowser.Model.Dlna;
using System.Xml.Serialization;
namespace Emby.Dlna.Profiles
{
[XmlRoot("Profile")]
public class VlcProfile : DefaultProfile
{
public VlcProfile()
{
Name = "Vlc";
TimelineOffsetSeconds = 5;
Identification = new DeviceIdentification
{
ModelName = "Vlc",
Headers = new[]
{
new HttpHeaderInfo {Name = "User-Agent", Value = "vlc", Match = HeaderMatchType.Substring}
}
};
TranscodingProfiles = new[]
{
new TranscodingProfile
{
Container = "mp3",
AudioCodec = "mp3",
Type = DlnaProfileType.Audio
},
new TranscodingProfile
{
Container = "ts",
Type = DlnaProfileType.Video,
AudioCodec = "aac",
VideoCodec = "h264"
},
new TranscodingProfile
{
Container = "jpeg",
Type = DlnaProfileType.Photo
}
};
DirectPlayProfiles = new[]
{
new DirectPlayProfile
{
Container = "",
Type = DlnaProfileType.Video
},
new DirectPlayProfile
{
Container = "",
Type = DlnaProfileType.Audio
},
new DirectPlayProfile
{
Container = "",
Type = DlnaProfileType.Photo,
}
};
ResponseProfiles = new ResponseProfile[] { };
ContainerProfiles = new ContainerProfile[] { };
CodecProfiles = new CodecProfile[] { };
SubtitleProfiles = new[]
{
new SubtitleProfile
{
Format = "srt",
Method = SubtitleDeliveryMethod.External,
},
new SubtitleProfile
{
Format = "sub",
Method = SubtitleDeliveryMethod.External,
},
new SubtitleProfile
{
Format = "srt",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "ass",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "ssa",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "smi",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "dvdsub",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "pgs",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "pgssub",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
},
new SubtitleProfile
{
Format = "sub",
Method = SubtitleDeliveryMethod.Embed,
DidlMode = "",
}
};
}
}
}

File diff suppressed because one or more lines are too long

View File

@ -16,8 +16,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>
@ -29,8 +29,8 @@
<IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
<XmlRootAttributes />
<DirectPlayProfiles>
<DirectPlayProfile container="m4v,ts,mpegts,mkv,avi,mpg,mpeg,mp4,mov" audioCodec="aac,mp3,ac3" videoCodec="h264" type="Video" />
<DirectPlayProfile container="mp3,wma,aac,wav,flac" type="Audio" />
<DirectPlayProfile container="m4v,mpegts,ts,3gp,mov,xvid,vob,mkv,wmv,asf,ogm,ogv,m2v,avi,mpg,mpeg,mp4,webm,wtv,m2ts,dvr-ms" type="Video" />
<DirectPlayProfile container="aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac" type="Audio" />
</DirectPlayProfiles>
<TranscodingProfiles>
<TranscodingProfile container="mp3" type="Audio" audioCodec="mp3" estimateContentLength="false" enableMpegtsM2TsMode="false" transcodeSeekInfo="Auto" copyTimestamps="false" context="Streaming" enableSubtitlesInManifest="false" minSegments="0" segmentLength="0" breakOnNonKeyFrames="false" />
@ -45,7 +45,15 @@
</ResponseProfile>
</ResponseProfiles>
<SubtitleProfiles>
<SubtitleProfile format="srt" method="Embed" />
<SubtitleProfile format="srt" method="External" />
<SubtitleProfile format="sub" method="External" />
<SubtitleProfile format="srt" method="Embed" />
<SubtitleProfile format="ass" method="Embed" />
<SubtitleProfile format="ssa" method="Embed" />
<SubtitleProfile format="smi" method="Embed" />
<SubtitleProfile format="dvdsub" method="Embed" />
<SubtitleProfile format="pgs" method="Embed" />
<SubtitleProfile format="pgssub" method="Embed" />
<SubtitleProfile format="sub" method="Embed" />
</SubtitleProfiles>
</Profile>

View File

@ -21,8 +21,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>
@ -45,7 +45,15 @@
<CodecProfiles />
<ResponseProfiles />
<SubtitleProfiles>
<SubtitleProfile format="srt" method="Embed" />
<SubtitleProfile format="srt" method="External" />
<SubtitleProfile format="sub" method="External" />
<SubtitleProfile format="srt" method="Embed" />
<SubtitleProfile format="ass" method="Embed" />
<SubtitleProfile format="ssa" method="Embed" />
<SubtitleProfile format="smi" method="Embed" />
<SubtitleProfile format="dvdsub" method="Embed" />
<SubtitleProfile format="pgs" method="Embed" />
<SubtitleProfile format="pgssub" method="Embed" />
<SubtitleProfile format="sub" method="Embed" />
</SubtitleProfiles>
</Profile>

View File

@ -22,8 +22,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

File diff suppressed because one or more lines are too long

View File

@ -22,8 +22,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -20,8 +20,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -22,8 +22,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>
@ -51,7 +51,15 @@
<CodecProfiles />
<ResponseProfiles />
<SubtitleProfiles>
<SubtitleProfile format="srt" method="Embed" />
<SubtitleProfile format="srt" method="External" />
<SubtitleProfile format="sub" method="External" />
<SubtitleProfile format="srt" method="Embed" />
<SubtitleProfile format="ass" method="Embed" />
<SubtitleProfile format="ssa" method="Embed" />
<SubtitleProfile format="smi" method="Embed" />
<SubtitleProfile format="dvdsub" method="Embed" />
<SubtitleProfile format="pgs" method="Embed" />
<SubtitleProfile format="pgssub" method="Embed" />
<SubtitleProfile format="sub" method="Embed" />
</SubtitleProfiles>
</Profile>

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -16,8 +16,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -22,8 +22,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -22,8 +22,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -26,8 +26,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -26,8 +26,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -24,8 +24,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -24,8 +24,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -24,8 +24,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

File diff suppressed because one or more lines are too long

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -24,8 +24,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -23,8 +23,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>

View File

@ -22,8 +22,8 @@
<MaxAlbumArtHeight>480</MaxAlbumArtHeight>
<MaxIconWidth>48</MaxIconWidth>
<MaxIconHeight>48</MaxIconHeight>
<MaxStreamingBitrate>30000000</MaxStreamingBitrate>
<MaxStaticBitrate>30000000</MaxStaticBitrate>
<MaxStreamingBitrate>40000000</MaxStreamingBitrate>
<MaxStaticBitrate>40000000</MaxStaticBitrate>
<MusicStreamingTranscodingBitrate>192000</MusicStreamingTranscodingBitrate>
<MaxStaticMusicBitrate xsi:nil="true" />
<XDlnaDoc>DMS-1.50</XDlnaDoc>
@ -51,7 +51,15 @@
<CodecProfiles />
<ResponseProfiles />
<SubtitleProfiles>
<SubtitleProfile format="srt" method="Embed" />
<SubtitleProfile format="srt" method="External" />
<SubtitleProfile format="sub" method="External" />
<SubtitleProfile format="srt" method="Embed" />
<SubtitleProfile format="ass" method="Embed" />
<SubtitleProfile format="ssa" method="Embed" />
<SubtitleProfile format="smi" method="Embed" />
<SubtitleProfile format="dvdsub" method="Embed" />
<SubtitleProfile format="pgs" method="Embed" />
<SubtitleProfile format="pgssub" method="Embed" />
<SubtitleProfile format="sub" method="Embed" />
</SubtitleProfiles>
</Profile>

View File

@ -56,7 +56,7 @@ namespace Emby.Drawing
private readonly IFileSystem _fileSystem;
private readonly IJsonSerializer _jsonSerializer;
private readonly IServerApplicationPaths _appPaths;
private readonly IImageEncoder _imageEncoder;
private IImageEncoder _imageEncoder;
private readonly Func<ILibraryManager> _libraryManager;
public ImageProcessor(ILogger logger,
@ -64,7 +64,7 @@ namespace Emby.Drawing
IFileSystem fileSystem,
IJsonSerializer jsonSerializer,
IImageEncoder imageEncoder,
int maxConcurrentImageProcesses, Func<ILibraryManager> libraryManager, ITimerFactory timerFactory)
Func<ILibraryManager> libraryManager, ITimerFactory timerFactory)
{
_logger = logger;
_fileSystem = fileSystem;
@ -103,6 +103,20 @@ namespace Emby.Drawing
_cachedImagedSizes = new ConcurrentDictionary<Guid, ImageSize>(sizeDictionary);
}
public IImageEncoder ImageEncoder
{
get { return _imageEncoder; }
set
{
if (value == null)
{
throw new ArgumentNullException("value");
}
_imageEncoder = value;
}
}
public string[] SupportedInputFormats
{
get

View File

@ -187,7 +187,7 @@ namespace Emby.Server.Core
/// <value>The HTTP server.</value>
private IHttpServer HttpServer { get; set; }
private IDtoService DtoService { get; set; }
private IImageProcessor ImageProcessor { get; set; }
public IImageProcessor ImageProcessor { get; set; }
/// <summary>
/// Gets or sets the media encoder.
@ -783,14 +783,7 @@ namespace Emby.Server.Core
private IImageProcessor GetImageProcessor()
{
var maxConcurrentImageProcesses = Math.Max(Environment.ProcessorCount, 4);
if (StartupOptions.ContainsOption("-imagethreads"))
{
int.TryParse(StartupOptions.GetOption("-imagethreads"), NumberStyles.Any, CultureInfo.InvariantCulture, out maxConcurrentImageProcesses);
}
return new ImageProcessor(LogManager.GetLogger("ImageProcessor"), ServerConfigurationManager.ApplicationPaths, FileSystemManager, JsonSerializer, ImageEncoder, maxConcurrentImageProcesses, () => LibraryManager, TimerFactory);
return new ImageProcessor(LogManager.GetLogger("ImageProcessor"), ServerConfigurationManager.ApplicationPaths, FileSystemManager, JsonSerializer, ImageEncoder, () => LibraryManager, TimerFactory);
}
protected virtual FFMpegInstallInfo GetFfmpegInstallInfo()

View File

@ -112,5 +112,7 @@ namespace MediaBrowser.Controller.Drawing
/// </summary>
/// <value><c>true</c> if [supports image collage creation]; otherwise, <c>false</c>.</value>
bool SupportsImageCollageCreation { get; }
IImageEncoder ImageEncoder { get; set; }
}
}

View File

@ -22,6 +22,7 @@ using Emby.Common.Implementations.IO;
using Emby.Common.Implementations.Logging;
using Emby.Common.Implementations.Networking;
using Emby.Common.Implementations.Security;
using Emby.Drawing;
using Emby.Server.Core;
using Emby.Server.Core.Logging;
using Emby.Server.Implementations;
@ -335,8 +336,6 @@ namespace MediaBrowser.ServerApplication
var fileSystem = new ManagedFileSystem(logManager.GetLogger("FileSystem"), environmentInfo, appPaths.TempDirectory);
var imageEncoder = ImageEncoderHelper.GetImageEncoder(_logger, logManager, fileSystem, options, () => _appHost.HttpClient, appPaths);
FileSystem = fileSystem;
_appHost = new WindowsAppHost(appPaths,
@ -346,7 +345,7 @@ namespace MediaBrowser.ServerApplication
new PowerManagement(),
"emby.windows.zip",
environmentInfo,
imageEncoder,
new NullImageEncoder(),
new Server.Startup.Common.SystemEvents(logManager.GetLogger("SystemEvents")),
new RecyclableMemoryStreamProvider(),
new Networking.NetworkManager(logManager.GetLogger("NetworkManager")),
@ -367,6 +366,19 @@ namespace MediaBrowser.ServerApplication
var task = _appHost.Init(initProgress);
Task.WaitAll(task);
if (!runService)
{
task = InstallVcredist2013IfNeeded(_appHost, _logger);
Task.WaitAll(task);
// needed by skia
task = InstallVcredist2015IfNeeded(_appHost, _logger);
Task.WaitAll(task);
}
// set image encoder here
_appHost.ImageProcessor.ImageEncoder = ImageEncoderHelper.GetImageEncoder(_logger, logManager, fileSystem, options, () => _appHost.HttpClient, appPaths);
task = task.ContinueWith(new Action<Task>(a => _appHost.RunStartupTasks()), TaskContinuationOptions.OnlyOnRanToCompletion | TaskContinuationOptions.AttachedToParent);
if (runService)
@ -377,12 +389,6 @@ namespace MediaBrowser.ServerApplication
{
Task.WaitAll(task);
task = InstallVcredist2013IfNeeded(_appHost, _logger);
Task.WaitAll(task);
task = InstallVcredist2015IfNeeded(_appHost, _logger);
Task.WaitAll(task);
Microsoft.Win32.SystemEvents.SessionSwitch += SystemEvents_SessionSwitch;
HideSplashScreen();