commit
b10021b35f
|
@ -33,10 +33,6 @@
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
|
||||||
<None Include="project.json" />
|
|
||||||
<!-- A reference to the entire .NET Framework is automatically included -->
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="BDInfoSettings.cs" />
|
<Compile Include="BDInfoSettings.cs" />
|
||||||
<Compile Include="BDROM.cs" />
|
<Compile Include="BDROM.cs" />
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -33,10 +33,6 @@
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
|
||||||
<None Include="project.json" />
|
|
||||||
<!-- A reference to the entire .NET Framework is automatically included -->
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="BigEndianBinaryReader.cs" />
|
<Compile Include="BigEndianBinaryReader.cs" />
|
||||||
<Compile Include="Ifo\AudioAttributes.cs" />
|
<Compile Include="Ifo\AudioAttributes.cs" />
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -42,9 +42,8 @@
|
||||||
<HintPath>..\packages\SharpCompress.0.14.0\lib\net45\SharpCompress.dll</HintPath>
|
<HintPath>..\packages\SharpCompress.0.14.0\lib\net45\SharpCompress.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="SimpleInjector, Version=4.0.7.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
|
<Reference Include="SimpleInjector, Version=4.0.8.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\SimpleInjector.4.0.7\lib\net45\SimpleInjector.dll</HintPath>
|
<HintPath>..\packages\SimpleInjector.4.0.8\lib\net45\SimpleInjector.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
|
|
|
@ -157,6 +157,7 @@ namespace Emby.Common.Implementations.TextEncoding
|
||||||
case "ota":
|
case "ota":
|
||||||
case "tur":
|
case "tur":
|
||||||
return "windows-1254";
|
return "windows-1254";
|
||||||
|
case "bgr":
|
||||||
case "rus":
|
case "rus":
|
||||||
return "windows-1251";
|
return "windows-1251";
|
||||||
case "vie":
|
case "vie":
|
||||||
|
|
|
@ -3,5 +3,5 @@
|
||||||
<package id="NLog" version="4.4.10" targetFramework="net46" />
|
<package id="NLog" version="4.4.10" targetFramework="net46" />
|
||||||
<package id="ServiceStack.Text" version="4.5.8" targetFramework="net462" />
|
<package id="ServiceStack.Text" version="4.5.8" targetFramework="net462" />
|
||||||
<package id="SharpCompress" version="0.14.0" targetFramework="net462" />
|
<package id="SharpCompress" version="0.14.0" targetFramework="net462" />
|
||||||
<package id="SimpleInjector" version="4.0.7" targetFramework="net462" />
|
<package id="SimpleInjector" version="4.0.8" targetFramework="net46" />
|
||||||
</packages>
|
</packages>
|
|
@ -70,7 +70,7 @@ namespace Emby.Dlna.Profiles
|
||||||
|
|
||||||
new DirectPlayProfile
|
new DirectPlayProfile
|
||||||
{
|
{
|
||||||
Container = "aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac",
|
Container = "aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a",
|
||||||
Type = DlnaProfileType.Audio
|
Type = DlnaProfileType.Audio
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -31,42 +31,7 @@ namespace Emby.Dlna.Profiles
|
||||||
{
|
{
|
||||||
new DirectPlayProfile
|
new DirectPlayProfile
|
||||||
{
|
{
|
||||||
Container = "mp3",
|
Container = "aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a",
|
||||||
AudioCodec = "mp2,mp3",
|
|
||||||
Type = DlnaProfileType.Audio
|
|
||||||
},
|
|
||||||
|
|
||||||
new DirectPlayProfile
|
|
||||||
{
|
|
||||||
Container = "mp4",
|
|
||||||
AudioCodec = "mp4",
|
|
||||||
Type = DlnaProfileType.Audio
|
|
||||||
},
|
|
||||||
|
|
||||||
new DirectPlayProfile
|
|
||||||
{
|
|
||||||
Container = "aac,wav",
|
|
||||||
Type = DlnaProfileType.Audio
|
|
||||||
},
|
|
||||||
|
|
||||||
new DirectPlayProfile
|
|
||||||
{
|
|
||||||
Container = "flac",
|
|
||||||
AudioCodec = "flac",
|
|
||||||
Type = DlnaProfileType.Audio
|
|
||||||
},
|
|
||||||
|
|
||||||
new DirectPlayProfile
|
|
||||||
{
|
|
||||||
Container = "asf",
|
|
||||||
AudioCodec = "wmav2,wmapro,wmavoice",
|
|
||||||
Type = DlnaProfileType.Audio
|
|
||||||
},
|
|
||||||
|
|
||||||
new DirectPlayProfile
|
|
||||||
{
|
|
||||||
Container = "ogg",
|
|
||||||
AudioCodec = "vorbis",
|
|
||||||
Type = DlnaProfileType.Audio
|
Type = DlnaProfileType.Audio
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
<XmlRootAttributes />
|
<XmlRootAttributes />
|
||||||
<DirectPlayProfiles>
|
<DirectPlayProfiles>
|
||||||
<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="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" />
|
<DirectPlayProfile container="aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a" type="Audio" />
|
||||||
</DirectPlayProfiles>
|
</DirectPlayProfiles>
|
||||||
<TranscodingProfiles>
|
<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" />
|
<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" />
|
||||||
|
|
|
@ -35,12 +35,7 @@
|
||||||
<IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
|
<IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
|
||||||
<XmlRootAttributes />
|
<XmlRootAttributes />
|
||||||
<DirectPlayProfiles>
|
<DirectPlayProfiles>
|
||||||
<DirectPlayProfile container="mp3" audioCodec="mp2,mp3" type="Audio" />
|
<DirectPlayProfile container="aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape,opus,flac,m4a" type="Audio" />
|
||||||
<DirectPlayProfile container="mp4" audioCodec="mp4" type="Audio" />
|
|
||||||
<DirectPlayProfile container="aac,wav" type="Audio" />
|
|
||||||
<DirectPlayProfile container="flac" audioCodec="flac" type="Audio" />
|
|
||||||
<DirectPlayProfile container="asf" audioCodec="wmav2,wmapro,wmavoice" type="Audio" />
|
|
||||||
<DirectPlayProfile container="ogg" audioCodec="vorbis" type="Audio" />
|
|
||||||
</DirectPlayProfiles>
|
</DirectPlayProfiles>
|
||||||
<TranscodingProfiles>
|
<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" />
|
<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" />
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -126,11 +126,11 @@ namespace Emby.Drawing.Skia
|
||||||
for (int row = 0; row < bitmap.Height; ++row)
|
for (int row = 0; row < bitmap.Height; ++row)
|
||||||
{
|
{
|
||||||
if (IsAllWhiteRow(bitmap, row))
|
if (IsAllWhiteRow(bitmap, row))
|
||||||
topmost = row;
|
topmost = row + 1;
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int bottommost = 0;
|
int bottommost = bitmap.Height;
|
||||||
for (int row = bitmap.Height - 1; row >= 0; --row)
|
for (int row = bitmap.Height - 1; row >= 0; --row)
|
||||||
{
|
{
|
||||||
if (IsAllWhiteRow(bitmap, row))
|
if (IsAllWhiteRow(bitmap, row))
|
||||||
|
@ -138,11 +138,11 @@ namespace Emby.Drawing.Skia
|
||||||
else break;
|
else break;
|
||||||
}
|
}
|
||||||
|
|
||||||
int leftmost = 0, rightmost = 0;
|
int leftmost = 0, rightmost = bitmap.Width;
|
||||||
for (int col = 0; col < bitmap.Width; ++col)
|
for (int col = 0; col < bitmap.Width; ++col)
|
||||||
{
|
{
|
||||||
if (IsAllWhiteColumn(bitmap, col))
|
if (IsAllWhiteColumn(bitmap, col))
|
||||||
leftmost = col;
|
leftmost = col + 1;
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -162,13 +162,6 @@ namespace Emby.Drawing.Skia
|
||||||
using (var subset = image.Subset(newRect))
|
using (var subset = image.Subset(newRect))
|
||||||
{
|
{
|
||||||
return SKBitmap.FromImage(subset);
|
return SKBitmap.FromImage(subset);
|
||||||
//using (var data = subset.Encode(StripCollageBuilder.GetEncodedFormat(outputPath), 90))
|
|
||||||
//{
|
|
||||||
// using (var fileStream = _fileSystem.GetFileStream(outputPath, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read))
|
|
||||||
// {
|
|
||||||
// data.AsStream().CopyTo(fileStream);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -41,9 +41,8 @@
|
||||||
<HintPath>..\packages\ServiceStack.Text.4.5.8\lib\net45\ServiceStack.Text.dll</HintPath>
|
<HintPath>..\packages\ServiceStack.Text.4.5.8\lib\net45\ServiceStack.Text.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="SimpleInjector, Version=4.0.7.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
|
<Reference Include="SimpleInjector, Version=4.0.8.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\SimpleInjector.4.0.7\lib\net45\SimpleInjector.dll</HintPath>
|
<HintPath>..\packages\SimpleInjector.4.0.8\lib\net45\SimpleInjector.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
<packages>
|
<packages>
|
||||||
<package id="Microsoft.IO.RecyclableMemoryStream" version="1.2.2" targetFramework="net462" />
|
<package id="Microsoft.IO.RecyclableMemoryStream" version="1.2.2" targetFramework="net462" />
|
||||||
<package id="ServiceStack.Text" version="4.5.8" targetFramework="net462" />
|
<package id="ServiceStack.Text" version="4.5.8" targetFramework="net462" />
|
||||||
<package id="SimpleInjector" version="4.0.7" targetFramework="net462" />
|
<package id="SimpleInjector" version="4.0.8" targetFramework="net46" />
|
||||||
</packages>
|
</packages>
|
|
@ -202,8 +202,7 @@ namespace Emby.Server.Implementations.Library
|
||||||
|
|
||||||
private bool IsValidUsernameCharacter(char i)
|
private bool IsValidUsernameCharacter(char i)
|
||||||
{
|
{
|
||||||
return char.IsLetterOrDigit(i) || char.Equals(i, '-') || char.Equals(i, '_') || char.Equals(i, '\'') ||
|
return !char.Equals(i, '<') && !char.Equals(i, '>');
|
||||||
char.Equals(i, '.');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string MakeValidUsername(string username)
|
public string MakeValidUsername(string username)
|
||||||
|
|
|
@ -783,7 +783,6 @@ namespace MediaBrowser.Api.Playback
|
||||||
state.OutputContainer = (container ?? string.Empty).TrimStart('.');
|
state.OutputContainer = (container ?? string.Empty).TrimStart('.');
|
||||||
|
|
||||||
state.OutputAudioBitrate = EncodingHelper.GetAudioBitrateParam(state.Request, state.AudioStream);
|
state.OutputAudioBitrate = EncodingHelper.GetAudioBitrateParam(state.Request, state.AudioStream);
|
||||||
state.OutputAudioSampleRate = request.AudioSampleRate;
|
|
||||||
|
|
||||||
state.OutputAudioCodec = state.Request.AudioCodec;
|
state.OutputAudioCodec = state.Request.AudioCodec;
|
||||||
|
|
||||||
|
|
|
@ -357,6 +357,19 @@ namespace MediaBrowser.Api.Playback
|
||||||
mediaSource.SupportsTranscoding = false;
|
mediaSource.SupportsTranscoding = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item is Audio)
|
||||||
|
{
|
||||||
|
Logger.Info("User policy for {0}. EnableAudioPlaybackTranscoding: {1}", user.Name, user.Policy.EnableAudioPlaybackTranscoding);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Info("User policy for {0}. EnablePlaybackRemuxing: {1} EnableVideoPlaybackTranscoding: {2} EnableAudioPlaybackTranscoding: {3}",
|
||||||
|
user.Name,
|
||||||
|
user.Policy.EnablePlaybackRemuxing,
|
||||||
|
user.Policy.EnableVideoPlaybackTranscoding,
|
||||||
|
user.Policy.EnableAudioPlaybackTranscoding);
|
||||||
|
}
|
||||||
|
|
||||||
if (mediaSource.SupportsDirectPlay)
|
if (mediaSource.SupportsDirectPlay)
|
||||||
{
|
{
|
||||||
if (mediaSource.IsRemote && forceDirectPlayRemoteMediaSource)
|
if (mediaSource.IsRemote && forceDirectPlayRemoteMediaSource)
|
||||||
|
|
|
@ -250,248 +250,6 @@ namespace MediaBrowser.Api.Playback
|
||||||
|
|
||||||
public DeviceProfile DeviceProfile { get; set; }
|
public DeviceProfile DeviceProfile { get; set; }
|
||||||
|
|
||||||
public int? TotalOutputBitrate
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return (OutputAudioBitrate ?? 0) + (OutputVideoBitrate ?? 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int? OutputWidth
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (VideoStream != null && VideoStream.Width.HasValue && VideoStream.Height.HasValue)
|
|
||||||
{
|
|
||||||
var size = new ImageSize
|
|
||||||
{
|
|
||||||
Width = VideoStream.Width.Value,
|
|
||||||
Height = VideoStream.Height.Value
|
|
||||||
};
|
|
||||||
|
|
||||||
var newSize = DrawingUtils.Resize(size,
|
|
||||||
VideoRequest.Width,
|
|
||||||
VideoRequest.Height,
|
|
||||||
VideoRequest.MaxWidth,
|
|
||||||
VideoRequest.MaxHeight);
|
|
||||||
|
|
||||||
return Convert.ToInt32(newSize.Width);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (VideoRequest == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return VideoRequest.MaxWidth ?? VideoRequest.Width;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int? OutputHeight
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (VideoStream != null && VideoStream.Width.HasValue && VideoStream.Height.HasValue)
|
|
||||||
{
|
|
||||||
var size = new ImageSize
|
|
||||||
{
|
|
||||||
Width = VideoStream.Width.Value,
|
|
||||||
Height = VideoStream.Height.Value
|
|
||||||
};
|
|
||||||
|
|
||||||
var newSize = DrawingUtils.Resize(size,
|
|
||||||
VideoRequest.Width,
|
|
||||||
VideoRequest.Height,
|
|
||||||
VideoRequest.MaxWidth,
|
|
||||||
VideoRequest.MaxHeight);
|
|
||||||
|
|
||||||
return Convert.ToInt32(newSize.Height);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (VideoRequest == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return VideoRequest.MaxHeight ?? VideoRequest.Height;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Predicts the audio sample rate that will be in the output stream
|
|
||||||
/// </summary>
|
|
||||||
public int? TargetVideoBitDepth
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
return stream == null || !Request.Static ? null : stream.BitDepth;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the target reference frames.
|
|
||||||
/// </summary>
|
|
||||||
/// <value>The target reference frames.</value>
|
|
||||||
public int? TargetRefFrames
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
return stream == null || !Request.Static ? null : stream.RefFrames;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int? TargetVideoStreamCount
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (Request.Static)
|
|
||||||
{
|
|
||||||
return GetMediaStreamCount(MediaStreamType.Video, int.MaxValue);
|
|
||||||
}
|
|
||||||
return GetMediaStreamCount(MediaStreamType.Video, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int? TargetAudioStreamCount
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (Request.Static)
|
|
||||||
{
|
|
||||||
return GetMediaStreamCount(MediaStreamType.Audio, int.MaxValue);
|
|
||||||
}
|
|
||||||
return GetMediaStreamCount(MediaStreamType.Audio, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool? IsTargetAnamorphic
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (Request.Static)
|
|
||||||
{
|
|
||||||
return VideoStream == null ? null : VideoStream.IsAnamorphic;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool? IsTargetInterlaced
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (Request.Static)
|
|
||||||
{
|
|
||||||
return VideoStream == null ? (bool?)null : VideoStream.IsInterlaced;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (DeInterlace)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return VideoStream == null ? (bool?)null : VideoStream.IsInterlaced;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private int? GetMediaStreamCount(MediaStreamType type, int limit)
|
|
||||||
{
|
|
||||||
var count = MediaSource.GetStreamCount(type);
|
|
||||||
|
|
||||||
if (count.HasValue)
|
|
||||||
{
|
|
||||||
count = Math.Min(count.Value, limit);
|
|
||||||
}
|
|
||||||
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Predicts the audio sample rate that will be in the output stream
|
|
||||||
/// </summary>
|
|
||||||
public float? TargetFramerate
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
var requestedFramerate = VideoRequest.MaxFramerate ?? VideoRequest.Framerate;
|
|
||||||
|
|
||||||
return requestedFramerate.HasValue && !Request.Static
|
|
||||||
? requestedFramerate
|
|
||||||
: stream == null ? null : stream.AverageFrameRate ?? stream.RealFrameRate;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public TransportStreamTimestamp TargetTimestamp
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var defaultValue = string.Equals(OutputContainer, "m2ts", StringComparison.OrdinalIgnoreCase) ?
|
|
||||||
TransportStreamTimestamp.Valid :
|
|
||||||
TransportStreamTimestamp.None;
|
|
||||||
|
|
||||||
return !Request.Static
|
|
||||||
? defaultValue
|
|
||||||
: InputTimestamp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Predicts the audio sample rate that will be in the output stream
|
|
||||||
/// </summary>
|
|
||||||
public int? TargetPacketLength
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
return !Request.Static
|
|
||||||
? null
|
|
||||||
: stream == null ? null : stream.PacketLength;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Predicts the audio sample rate that will be in the output stream
|
|
||||||
/// </summary>
|
|
||||||
public string TargetVideoProfile
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
return !string.IsNullOrEmpty(VideoRequest.Profile) && !Request.Static
|
|
||||||
? VideoRequest.Profile
|
|
||||||
: stream == null ? null : stream.Profile;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string TargetVideoCodecTag
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
return !Request.Static
|
|
||||||
? null
|
|
||||||
: stream == null ? null : stream.CodecTag;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool? IsTargetAVC
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (Request.Static)
|
|
||||||
{
|
|
||||||
return VideoStream == null ? null : VideoStream.IsAVC;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public TranscodingJob TranscodingJob;
|
public TranscodingJob TranscodingJob;
|
||||||
public override void ReportTranscodingProgress(TimeSpan? transcodingPosition, float? framerate, double? percentComplete, long? bytesTranscoded, int? bitRate)
|
public override void ReportTranscodingProgress(TimeSpan? transcodingPosition, float? framerate, double? percentComplete, long? bytesTranscoded, int? bitRate)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -72,9 +72,6 @@
|
||||||
<Name>MediaBrowser.Model</Name>
|
<Name>MediaBrowser.Model</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<None Include="project.json" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -36,10 +36,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
<RunPostBuildEvent>Always</RunPostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
|
||||||
<None Include="project.json" />
|
|
||||||
<!-- A reference to the entire .NET Framework is automatically included -->
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="..\SharedVersion.cs">
|
<Compile Include="..\SharedVersion.cs">
|
||||||
<Link>Properties\SharedVersion.cs</Link>
|
<Link>Properties\SharedVersion.cs</Link>
|
||||||
|
|
|
@ -8,6 +8,7 @@ using MediaBrowser.Model.Entities;
|
||||||
using MediaBrowser.Model.IO;
|
using MediaBrowser.Model.IO;
|
||||||
using MediaBrowser.Model.Logging;
|
using MediaBrowser.Model.Logging;
|
||||||
using MediaBrowser.Model.MediaInfo;
|
using MediaBrowser.Model.MediaInfo;
|
||||||
|
using MediaBrowser.Model.Drawing;
|
||||||
|
|
||||||
namespace MediaBrowser.Controller.MediaEncoding
|
namespace MediaBrowser.Controller.MediaEncoding
|
||||||
{
|
{
|
||||||
|
@ -134,7 +135,6 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
|
|
||||||
public int? OutputAudioBitrate;
|
public int? OutputAudioBitrate;
|
||||||
public int? OutputAudioChannels;
|
public int? OutputAudioChannels;
|
||||||
public int? OutputAudioSampleRate;
|
|
||||||
public bool DeInterlace { get; set; }
|
public bool DeInterlace { get; set; }
|
||||||
public bool IsVideoRequest { get; set; }
|
public bool IsVideoRequest { get; set; }
|
||||||
public TranscodingJobType TranscodingType { get; set; }
|
public TranscodingJobType TranscodingType { get; set; }
|
||||||
|
@ -173,6 +173,97 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int? TotalOutputBitrate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (OutputAudioBitrate ?? 0) + (OutputVideoBitrate ?? 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int? OutputWidth
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (VideoStream != null && VideoStream.Width.HasValue && VideoStream.Height.HasValue)
|
||||||
|
{
|
||||||
|
var size = new ImageSize
|
||||||
|
{
|
||||||
|
Width = VideoStream.Width.Value,
|
||||||
|
Height = VideoStream.Height.Value
|
||||||
|
};
|
||||||
|
|
||||||
|
var newSize = DrawingUtils.Resize(size,
|
||||||
|
BaseRequest.Width,
|
||||||
|
BaseRequest.Height,
|
||||||
|
BaseRequest.MaxWidth,
|
||||||
|
BaseRequest.MaxHeight);
|
||||||
|
|
||||||
|
return Convert.ToInt32(newSize.Width);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsVideoRequest)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return BaseRequest.MaxWidth ?? BaseRequest.Width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int? OutputHeight
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (VideoStream != null && VideoStream.Width.HasValue && VideoStream.Height.HasValue)
|
||||||
|
{
|
||||||
|
var size = new ImageSize
|
||||||
|
{
|
||||||
|
Width = VideoStream.Width.Value,
|
||||||
|
Height = VideoStream.Height.Value
|
||||||
|
};
|
||||||
|
|
||||||
|
var newSize = DrawingUtils.Resize(size,
|
||||||
|
BaseRequest.Width,
|
||||||
|
BaseRequest.Height,
|
||||||
|
BaseRequest.MaxWidth,
|
||||||
|
BaseRequest.MaxHeight);
|
||||||
|
|
||||||
|
return Convert.ToInt32(newSize.Height);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsVideoRequest)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return BaseRequest.MaxHeight ?? BaseRequest.Height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int? OutputAudioSampleRate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (BaseRequest.Static || string.Equals(OutputAudioCodec, "copy", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
if (AudioStream != null)
|
||||||
|
{
|
||||||
|
return AudioStream.SampleRate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (BaseRequest.AudioSampleRate.HasValue)
|
||||||
|
{
|
||||||
|
// Don't exceed what the encoder supports
|
||||||
|
// Seeing issues of attempting to encode to 88200
|
||||||
|
return Math.Min(44100, BaseRequest.AudioSampleRate.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Predicts the audio sample rate that will be in the output stream
|
/// Predicts the audio sample rate that will be in the output stream
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -189,6 +280,180 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Predicts the audio sample rate that will be in the output stream
|
||||||
|
/// </summary>
|
||||||
|
public int? TargetVideoBitDepth
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var stream = VideoStream;
|
||||||
|
return stream == null || !BaseRequest.Static ? null : stream.BitDepth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the target reference frames.
|
||||||
|
/// </summary>
|
||||||
|
/// <value>The target reference frames.</value>
|
||||||
|
public int? TargetRefFrames
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var stream = VideoStream;
|
||||||
|
return stream == null || !BaseRequest.Static ? null : stream.RefFrames;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Predicts the audio sample rate that will be in the output stream
|
||||||
|
/// </summary>
|
||||||
|
public float? TargetFramerate
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var stream = VideoStream;
|
||||||
|
var requestedFramerate = BaseRequest.MaxFramerate ?? BaseRequest.Framerate;
|
||||||
|
|
||||||
|
return requestedFramerate.HasValue && !BaseRequest.Static
|
||||||
|
? requestedFramerate
|
||||||
|
: stream == null ? null : stream.AverageFrameRate ?? stream.RealFrameRate;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public TransportStreamTimestamp TargetTimestamp
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var defaultValue = string.Equals(OutputContainer, "m2ts", StringComparison.OrdinalIgnoreCase) ?
|
||||||
|
TransportStreamTimestamp.Valid :
|
||||||
|
TransportStreamTimestamp.None;
|
||||||
|
|
||||||
|
return !BaseRequest.Static
|
||||||
|
? defaultValue
|
||||||
|
: InputTimestamp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Predicts the audio sample rate that will be in the output stream
|
||||||
|
/// </summary>
|
||||||
|
public int? TargetPacketLength
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var stream = VideoStream;
|
||||||
|
return !BaseRequest.Static
|
||||||
|
? null
|
||||||
|
: stream == null ? null : stream.PacketLength;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Predicts the audio sample rate that will be in the output stream
|
||||||
|
/// </summary>
|
||||||
|
public string TargetVideoProfile
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var stream = VideoStream;
|
||||||
|
return !string.IsNullOrEmpty(BaseRequest.Profile) && !BaseRequest.Static
|
||||||
|
? BaseRequest.Profile
|
||||||
|
: stream == null ? null : stream.Profile;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TargetVideoCodecTag
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var stream = VideoStream;
|
||||||
|
return !BaseRequest.Static
|
||||||
|
? null
|
||||||
|
: stream == null ? null : stream.CodecTag;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool? IsTargetAnamorphic
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (BaseRequest.Static)
|
||||||
|
{
|
||||||
|
return VideoStream == null ? null : VideoStream.IsAnamorphic;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool? IsTargetInterlaced
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (BaseRequest.Static)
|
||||||
|
{
|
||||||
|
return VideoStream == null ? (bool?)null : VideoStream.IsInterlaced;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DeInterlace)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return VideoStream == null ? (bool?)null : VideoStream.IsInterlaced;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool? IsTargetAVC
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (BaseRequest.Static)
|
||||||
|
{
|
||||||
|
return VideoStream == null ? null : VideoStream.IsAVC;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int? TargetVideoStreamCount
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (BaseRequest.Static)
|
||||||
|
{
|
||||||
|
return GetMediaStreamCount(MediaStreamType.Video, int.MaxValue);
|
||||||
|
}
|
||||||
|
return GetMediaStreamCount(MediaStreamType.Video, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int? TargetAudioStreamCount
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (BaseRequest.Static)
|
||||||
|
{
|
||||||
|
return GetMediaStreamCount(MediaStreamType.Audio, int.MaxValue);
|
||||||
|
}
|
||||||
|
return GetMediaStreamCount(MediaStreamType.Audio, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int? GetMediaStreamCount(MediaStreamType type, int limit)
|
||||||
|
{
|
||||||
|
var count = MediaSource.GetStreamCount(type);
|
||||||
|
|
||||||
|
if (count.HasValue)
|
||||||
|
{
|
||||||
|
count = Math.Min(count.Value, limit);
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
protected void DisposeIsoMount()
|
protected void DisposeIsoMount()
|
||||||
{
|
{
|
||||||
if (IsoMount != null)
|
if (IsoMount != null)
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -40,27 +40,12 @@ namespace MediaBrowser.LocalMetadata.Images
|
||||||
{
|
{
|
||||||
var parentPath = _fileSystem.GetDirectoryName(item.Path);
|
var parentPath = _fileSystem.GetDirectoryName(item.Path);
|
||||||
|
|
||||||
var parentPathFiles = directoryService.GetFileSystemEntries(parentPath)
|
var parentPathFiles = directoryService.GetFiles(parentPath)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
var nameWithoutExtension = _fileSystem.GetFileNameWithoutExtension(item.Path);
|
var nameWithoutExtension = _fileSystem.GetFileNameWithoutExtension(item.Path);
|
||||||
|
|
||||||
var files = GetFilesFromParentFolder(nameWithoutExtension, parentPathFiles);
|
return GetFilesFromParentFolder(nameWithoutExtension, parentPathFiles);
|
||||||
|
|
||||||
if (files.Count > 0)
|
|
||||||
{
|
|
||||||
return files;
|
|
||||||
}
|
|
||||||
|
|
||||||
var metadataPath = Path.Combine(parentPath, "metadata");
|
|
||||||
|
|
||||||
if (parentPathFiles.Any(i => string.Equals(i.FullName, metadataPath, StringComparison.OrdinalIgnoreCase)))
|
|
||||||
{
|
|
||||||
var filesInMetadataFolder = _fileSystem.GetFiles(metadataPath, BaseItem.SupportedImageExtensions, false, false);
|
|
||||||
return GetFilesFromParentFolder(nameWithoutExtension, filesInMetadataFolder);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new List<LocalImageInfo>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<LocalImageInfo> GetFilesFromParentFolder(string filenameWithoutExtension, IEnumerable<FileSystemMetadata> parentPathFiles)
|
private List<LocalImageInfo> GetFilesFromParentFolder(string filenameWithoutExtension, IEnumerable<FileSystemMetadata> parentPathFiles)
|
||||||
|
|
|
@ -44,24 +44,15 @@
|
||||||
<Compile Include="Images\LocalImageProvider.cs" />
|
<Compile Include="Images\LocalImageProvider.cs" />
|
||||||
<Compile Include="Parsers\BaseItemXmlParser.cs" />
|
<Compile Include="Parsers\BaseItemXmlParser.cs" />
|
||||||
<Compile Include="Parsers\BoxSetXmlParser.cs" />
|
<Compile Include="Parsers\BoxSetXmlParser.cs" />
|
||||||
<Compile Include="Parsers\EpisodeXmlParser.cs" />
|
|
||||||
<Compile Include="Parsers\GameSystemXmlParser.cs" />
|
<Compile Include="Parsers\GameSystemXmlParser.cs" />
|
||||||
<Compile Include="Parsers\GameXmlParser.cs" />
|
<Compile Include="Parsers\GameXmlParser.cs" />
|
||||||
<Compile Include="Parsers\MovieXmlParser.cs" />
|
|
||||||
<Compile Include="Parsers\MusicVideoXmlParser.cs" />
|
|
||||||
<Compile Include="Parsers\PlaylistXmlParser.cs" />
|
<Compile Include="Parsers\PlaylistXmlParser.cs" />
|
||||||
<Compile Include="Parsers\SeriesXmlParser.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Providers\BoxSetXmlProvider.cs" />
|
<Compile Include="Providers\BoxSetXmlProvider.cs" />
|
||||||
<Compile Include="Providers\EpisodeXmlProvider.cs" />
|
|
||||||
<Compile Include="Providers\FolderXmlProvider.cs" />
|
<Compile Include="Providers\FolderXmlProvider.cs" />
|
||||||
<Compile Include="Providers\GameSystemXmlProvider.cs" />
|
<Compile Include="Providers\GameSystemXmlProvider.cs" />
|
||||||
<Compile Include="Providers\GameXmlProvider.cs" />
|
<Compile Include="Providers\GameXmlProvider.cs" />
|
||||||
<Compile Include="Providers\MovieXmlProvider.cs" />
|
|
||||||
<Compile Include="Providers\MusicVideoXmlProvider.cs" />
|
|
||||||
<Compile Include="Providers\PlaylistXmlProvider.cs" />
|
<Compile Include="Providers\PlaylistXmlProvider.cs" />
|
||||||
<Compile Include="Providers\SeriesXmlProvider.cs" />
|
|
||||||
<Compile Include="Providers\VideoXmlProvider.cs" />
|
|
||||||
<Compile Include="Savers\BaseXmlSaver.cs" />
|
<Compile Include="Savers\BaseXmlSaver.cs" />
|
||||||
<Compile Include="Savers\BoxSetXmlSaver.cs" />
|
<Compile Include="Savers\BoxSetXmlSaver.cs" />
|
||||||
<Compile Include="Savers\FolderXmlSaver.cs" />
|
<Compile Include="Savers\FolderXmlSaver.cs" />
|
||||||
|
|
|
@ -1,271 +0,0 @@
|
||||||
using MediaBrowser.Controller.Entities.TV;
|
|
||||||
using MediaBrowser.Controller.Providers;
|
|
||||||
using MediaBrowser.Model.Entities;
|
|
||||||
using MediaBrowser.Model.Logging;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Globalization;
|
|
||||||
using System.IO;
|
|
||||||
using System.Threading;
|
|
||||||
using System.Xml;
|
|
||||||
|
|
||||||
using MediaBrowser.Controller.IO;
|
|
||||||
using MediaBrowser.Model.IO;
|
|
||||||
using MediaBrowser.Model.Xml;
|
|
||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Parsers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Class EpisodeXmlParser
|
|
||||||
/// </summary>
|
|
||||||
public class EpisodeXmlParser : BaseItemXmlParser<Episode>
|
|
||||||
{
|
|
||||||
private List<LocalImageInfo> _imagesFound;
|
|
||||||
private readonly IFileSystem _fileSystem;
|
|
||||||
|
|
||||||
public EpisodeXmlParser(ILogger logger, IFileSystem fileSystem, IProviderManager providerManager, IXmlReaderSettingsFactory xmlSettings)
|
|
||||||
: base(logger, providerManager, xmlSettings, fileSystem)
|
|
||||||
{
|
|
||||||
_fileSystem = fileSystem;
|
|
||||||
}
|
|
||||||
|
|
||||||
private string _xmlPath;
|
|
||||||
|
|
||||||
public void Fetch(MetadataResult<Episode> item,
|
|
||||||
List<LocalImageInfo> images,
|
|
||||||
string metadataFile,
|
|
||||||
CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
_imagesFound = images;
|
|
||||||
_xmlPath = metadataFile;
|
|
||||||
|
|
||||||
Fetch(item, metadataFile, cancellationToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Fetches the data from XML node.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="reader">The reader.</param>
|
|
||||||
/// <param name="result">The result.</param>
|
|
||||||
protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Episode> result)
|
|
||||||
{
|
|
||||||
var item = result.Item;
|
|
||||||
|
|
||||||
switch (reader.Name)
|
|
||||||
{
|
|
||||||
case "Episode":
|
|
||||||
|
|
||||||
//MB generated metadata is within an "Episode" node
|
|
||||||
using (var subTree = reader.ReadSubtree())
|
|
||||||
{
|
|
||||||
subTree.MoveToContent();
|
|
||||||
|
|
||||||
// Loop through each element
|
|
||||||
while (subTree.Read())
|
|
||||||
{
|
|
||||||
if (subTree.NodeType == XmlNodeType.Element)
|
|
||||||
{
|
|
||||||
FetchDataFromXmlNode(subTree, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "filename":
|
|
||||||
{
|
|
||||||
var filename = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(filename))
|
|
||||||
{
|
|
||||||
// Strip off everything but the filename. Some metadata tools like MetaBrowser v1.0 will have an 'episodes' prefix
|
|
||||||
// even though it's actually using the metadata folder.
|
|
||||||
filename = Path.GetFileName(filename);
|
|
||||||
|
|
||||||
var parentFolder = _fileSystem.GetDirectoryName(_xmlPath);
|
|
||||||
filename = Path.Combine(parentFolder, filename);
|
|
||||||
var file = _fileSystem.GetFileInfo(filename);
|
|
||||||
|
|
||||||
if (file.Exists)
|
|
||||||
{
|
|
||||||
_imagesFound.Add(new LocalImageInfo
|
|
||||||
{
|
|
||||||
Type = ImageType.Primary,
|
|
||||||
FileInfo = file
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case "SeasonNumber":
|
|
||||||
{
|
|
||||||
var number = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(number))
|
|
||||||
{
|
|
||||||
int num;
|
|
||||||
|
|
||||||
if (int.TryParse(number, out num))
|
|
||||||
{
|
|
||||||
item.ParentIndexNumber = num;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "EpisodeNumber":
|
|
||||||
{
|
|
||||||
var number = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(number))
|
|
||||||
{
|
|
||||||
int num;
|
|
||||||
|
|
||||||
if (int.TryParse(number, out num))
|
|
||||||
{
|
|
||||||
item.IndexNumber = num;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "EpisodeNumberEnd":
|
|
||||||
{
|
|
||||||
var number = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(number))
|
|
||||||
{
|
|
||||||
int num;
|
|
||||||
|
|
||||||
if (int.TryParse(number, out num))
|
|
||||||
{
|
|
||||||
item.IndexNumberEnd = num;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "absolute_number":
|
|
||||||
{
|
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
int rval;
|
|
||||||
|
|
||||||
// int.TryParse is local aware, so it can be probamatic, force us culture
|
|
||||||
if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
|
|
||||||
{
|
|
||||||
item.AbsoluteEpisodeNumber = rval;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case "DVD_episodenumber":
|
|
||||||
{
|
|
||||||
var number = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(number))
|
|
||||||
{
|
|
||||||
float num;
|
|
||||||
|
|
||||||
if (float.TryParse(number, NumberStyles.Any, UsCulture, out num))
|
|
||||||
{
|
|
||||||
item.DvdEpisodeNumber = num;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "DVD_season":
|
|
||||||
{
|
|
||||||
var number = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(number))
|
|
||||||
{
|
|
||||||
float num;
|
|
||||||
|
|
||||||
if (float.TryParse(number, NumberStyles.Any, UsCulture, out num))
|
|
||||||
{
|
|
||||||
item.DvdSeasonNumber = Convert.ToInt32(num);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "airsbefore_episode":
|
|
||||||
{
|
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
int rval;
|
|
||||||
|
|
||||||
// int.TryParse is local aware, so it can be probamatic, force us culture
|
|
||||||
if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
|
|
||||||
{
|
|
||||||
item.AirsBeforeEpisodeNumber = rval;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "airsafter_season":
|
|
||||||
{
|
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
int rval;
|
|
||||||
|
|
||||||
// int.TryParse is local aware, so it can be probamatic, force us culture
|
|
||||||
if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
|
|
||||||
{
|
|
||||||
item.AirsAfterSeasonNumber = rval;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "airsbefore_season":
|
|
||||||
{
|
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
int rval;
|
|
||||||
|
|
||||||
// int.TryParse is local aware, so it can be probamatic, force us culture
|
|
||||||
if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
|
|
||||||
{
|
|
||||||
item.AirsBeforeSeasonNumber = rval;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "EpisodeName":
|
|
||||||
{
|
|
||||||
var name = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(name))
|
|
||||||
{
|
|
||||||
item.Name = name;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
default:
|
|
||||||
base.FetchDataFromXmlNode(reader, result);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,65 +0,0 @@
|
||||||
using MediaBrowser.Controller.Entities;
|
|
||||||
using MediaBrowser.Controller.Entities.Movies;
|
|
||||||
using MediaBrowser.Controller.Providers;
|
|
||||||
using MediaBrowser.Model.Logging;
|
|
||||||
using System.Xml;
|
|
||||||
using MediaBrowser.Model.IO;
|
|
||||||
using MediaBrowser.Model.Xml;
|
|
||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Parsers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Class EpisodeXmlParser
|
|
||||||
/// </summary>
|
|
||||||
public class BaseVideoXmlParser<T> : BaseItemXmlParser<T>
|
|
||||||
where T : Video
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Fetches the data from XML node.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="reader">The reader.</param>
|
|
||||||
/// <param name="result">The result.</param>
|
|
||||||
protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<T> result)
|
|
||||||
{
|
|
||||||
var item = result.Item;
|
|
||||||
|
|
||||||
switch (reader.Name)
|
|
||||||
{
|
|
||||||
case "TmdbCollectionName":
|
|
||||||
{
|
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
var movie = item as Movie;
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val) && movie != null)
|
|
||||||
{
|
|
||||||
movie.CollectionName = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
base.FetchDataFromXmlNode(reader, result);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public BaseVideoXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class MovieXmlParser : BaseVideoXmlParser<Movie>
|
|
||||||
{
|
|
||||||
public MovieXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class VideoXmlParser : BaseVideoXmlParser<Video>
|
|
||||||
{
|
|
||||||
public VideoXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,51 +0,0 @@
|
||||||
using MediaBrowser.Controller.Entities;
|
|
||||||
using MediaBrowser.Controller.Providers;
|
|
||||||
using MediaBrowser.Model.Logging;
|
|
||||||
using System;
|
|
||||||
using System.Xml;
|
|
||||||
using MediaBrowser.Model.IO;
|
|
||||||
using MediaBrowser.Model.Xml;
|
|
||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Parsers
|
|
||||||
{
|
|
||||||
public class MusicVideoXmlParser : BaseVideoXmlParser<MusicVideo>
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Fetches the data from XML node.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="reader">The reader.</param>
|
|
||||||
/// <param name="result">The result.</param>
|
|
||||||
protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<MusicVideo> result)
|
|
||||||
{
|
|
||||||
var item = result.Item;
|
|
||||||
|
|
||||||
switch (reader.Name)
|
|
||||||
{
|
|
||||||
case "Artist":
|
|
||||||
{
|
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
var artists = val.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
item.Artists.AddRange(artists);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "Album":
|
|
||||||
item.Album = reader.ReadElementContentAsString();
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
base.FetchDataFromXmlNode(reader, result);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public MusicVideoXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,102 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Xml;
|
|
||||||
using MediaBrowser.Controller.Entities.TV;
|
|
||||||
using MediaBrowser.Controller.Library;
|
|
||||||
using MediaBrowser.Controller.Providers;
|
|
||||||
using MediaBrowser.Model.Entities;
|
|
||||||
using MediaBrowser.Model.IO;
|
|
||||||
using MediaBrowser.Model.Logging;
|
|
||||||
using MediaBrowser.Model.Xml;
|
|
||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Parsers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Class SeriesXmlParser
|
|
||||||
/// </summary>
|
|
||||||
public class SeriesXmlParser : BaseItemXmlParser<Series>
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Fetches the data from XML node.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="reader">The reader.</param>
|
|
||||||
/// <param name="result">The result.</param>
|
|
||||||
protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Series> result)
|
|
||||||
{
|
|
||||||
var item = result.Item;
|
|
||||||
|
|
||||||
switch (reader.Name)
|
|
||||||
{
|
|
||||||
case "Series":
|
|
||||||
//MB generated metadata is within a "Series" node
|
|
||||||
using (var subTree = reader.ReadSubtree())
|
|
||||||
{
|
|
||||||
subTree.MoveToContent();
|
|
||||||
|
|
||||||
// Loop through each element
|
|
||||||
while (subTree.Read())
|
|
||||||
{
|
|
||||||
if (subTree.NodeType == XmlNodeType.Element)
|
|
||||||
{
|
|
||||||
FetchDataFromXmlNode(subTree, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "id":
|
|
||||||
string id = reader.ReadElementContentAsString();
|
|
||||||
if (!string.IsNullOrWhiteSpace(id))
|
|
||||||
{
|
|
||||||
item.SetProviderId(MetadataProviders.Tvdb, id);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "Airs_DayOfWeek":
|
|
||||||
{
|
|
||||||
item.AirDays = TVUtils.GetAirDays(reader.ReadElementContentAsString());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "Airs_Time":
|
|
||||||
{
|
|
||||||
var val = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(val))
|
|
||||||
{
|
|
||||||
item.AirTime = val;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "Status":
|
|
||||||
{
|
|
||||||
var status = reader.ReadElementContentAsString();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(status))
|
|
||||||
{
|
|
||||||
SeriesStatus seriesStatus;
|
|
||||||
if (Enum.TryParse(status, true, out seriesStatus))
|
|
||||||
{
|
|
||||||
item.Status = seriesStatus;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Logger.Info("Unrecognized series status: " + status);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
base.FetchDataFromXmlNode(reader, result);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public SeriesXmlParser(ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory, IFileSystem fileSystem) : base(logger, providerManager, xmlReaderSettingsFactory, fileSystem)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
using MediaBrowser.Controller.Entities.TV;
|
|
||||||
using MediaBrowser.Controller.Providers;
|
|
||||||
using MediaBrowser.LocalMetadata.Parsers;
|
|
||||||
using MediaBrowser.Model.Entities;
|
|
||||||
using MediaBrowser.Model.Logging;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
using MediaBrowser.Controller.IO;
|
|
||||||
using MediaBrowser.Model.IO;
|
|
||||||
using MediaBrowser.Model.Xml;
|
|
||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Providers
|
|
||||||
{
|
|
||||||
public class EpisodeXmlProvider : BaseXmlProvider<Episode>
|
|
||||||
{
|
|
||||||
private readonly ILogger _logger;
|
|
||||||
private readonly IProviderManager _providerManager;
|
|
||||||
private readonly IXmlReaderSettingsFactory _xmlSettings;
|
|
||||||
|
|
||||||
public EpisodeXmlProvider(IFileSystem fileSystem, ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlSettings)
|
|
||||||
: base(fileSystem)
|
|
||||||
{
|
|
||||||
_logger = logger;
|
|
||||||
_providerManager = providerManager;
|
|
||||||
_xmlSettings = xmlSettings;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Fetch(MetadataResult<Episode> result, string path, CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
var images = new List<LocalImageInfo>();
|
|
||||||
var chapters = new List<ChapterInfo>();
|
|
||||||
|
|
||||||
new EpisodeXmlParser(_logger, FileSystem, _providerManager, _xmlSettings).Fetch(result, images, path, cancellationToken);
|
|
||||||
|
|
||||||
result.Images = images;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override FileSystemMetadata GetXmlFile(ItemInfo info, IDirectoryService directoryService)
|
|
||||||
{
|
|
||||||
var metadataPath = FileSystem.GetDirectoryName(info.Path);
|
|
||||||
metadataPath = Path.Combine(metadataPath, "metadata");
|
|
||||||
|
|
||||||
var metadataFile = Path.Combine(metadataPath, Path.ChangeExtension(Path.GetFileName(info.Path), ".xml"));
|
|
||||||
|
|
||||||
return directoryService.GetFile(metadataFile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,62 +0,0 @@
|
||||||
using MediaBrowser.Controller.Entities.Movies;
|
|
||||||
using MediaBrowser.Controller.Providers;
|
|
||||||
using MediaBrowser.LocalMetadata.Parsers;
|
|
||||||
using MediaBrowser.Model.Logging;
|
|
||||||
using System.IO;
|
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
using MediaBrowser.Controller.IO;
|
|
||||||
using MediaBrowser.Model.IO;
|
|
||||||
using MediaBrowser.Model.Xml;
|
|
||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Providers
|
|
||||||
{
|
|
||||||
public class MovieXmlProvider : BaseXmlProvider<Movie>
|
|
||||||
{
|
|
||||||
private readonly ILogger _logger;
|
|
||||||
private readonly IProviderManager _providerManager;
|
|
||||||
protected IXmlReaderSettingsFactory XmlReaderSettingsFactory { get; private set; }
|
|
||||||
|
|
||||||
public MovieXmlProvider(IFileSystem fileSystem, ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory)
|
|
||||||
: base(fileSystem)
|
|
||||||
{
|
|
||||||
_logger = logger;
|
|
||||||
_providerManager = providerManager;
|
|
||||||
XmlReaderSettingsFactory = xmlReaderSettingsFactory;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Fetch(MetadataResult<Movie> result, string path, CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
new MovieXmlParser(_logger, _providerManager, XmlReaderSettingsFactory, FileSystem).Fetch(result, path, cancellationToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override FileSystemMetadata GetXmlFile(ItemInfo info, IDirectoryService directoryService)
|
|
||||||
{
|
|
||||||
return GetXmlFileInfo(info, FileSystem);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static FileSystemMetadata GetXmlFileInfo(ItemInfo info, IFileSystem fileSystem)
|
|
||||||
{
|
|
||||||
var fileInfo = fileSystem.GetFileSystemInfo(info.Path);
|
|
||||||
|
|
||||||
var directoryInfo = fileInfo.IsDirectory ? fileInfo : fileSystem.GetDirectoryInfo(fileSystem.GetDirectoryName(info.Path));
|
|
||||||
|
|
||||||
var directoryPath = directoryInfo.FullName;
|
|
||||||
|
|
||||||
var specificFile = Path.Combine(directoryPath, fileSystem.GetFileNameWithoutExtension(info.Path) + ".xml");
|
|
||||||
|
|
||||||
var file = fileSystem.GetFileInfo(specificFile);
|
|
||||||
|
|
||||||
// In a mixed folder, only {moviename}.xml is supported
|
|
||||||
if (info.IsInMixedFolder)
|
|
||||||
{
|
|
||||||
return file;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If in it's own folder, prefer movie.xml, but allow the specific file as well
|
|
||||||
var movieFile = fileSystem.GetFileInfo(Path.Combine(directoryPath, "movie.xml"));
|
|
||||||
|
|
||||||
return movieFile.Exists ? movieFile : file;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
using MediaBrowser.Model.IO;
|
|
||||||
using MediaBrowser.Controller.Entities;
|
|
||||||
using MediaBrowser.Controller.IO;
|
|
||||||
using MediaBrowser.Controller.Providers;
|
|
||||||
using MediaBrowser.LocalMetadata.Parsers;
|
|
||||||
using MediaBrowser.Model.Logging;
|
|
||||||
using MediaBrowser.Model.Xml;
|
|
||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Providers
|
|
||||||
{
|
|
||||||
class MusicVideoXmlProvider : BaseXmlProvider<MusicVideo>
|
|
||||||
{
|
|
||||||
private readonly ILogger _logger;
|
|
||||||
private readonly IProviderManager _providerManager;
|
|
||||||
protected IXmlReaderSettingsFactory XmlReaderSettingsFactory { get; private set; }
|
|
||||||
|
|
||||||
public MusicVideoXmlProvider(IFileSystem fileSystem, ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory)
|
|
||||||
: base(fileSystem)
|
|
||||||
{
|
|
||||||
_logger = logger;
|
|
||||||
_providerManager = providerManager;
|
|
||||||
XmlReaderSettingsFactory = xmlReaderSettingsFactory;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Fetch(MetadataResult<MusicVideo> result, string path, CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
new MusicVideoXmlParser(_logger, _providerManager, XmlReaderSettingsFactory, FileSystem).Fetch(result, path, cancellationToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override FileSystemMetadata GetXmlFile(ItemInfo info, IDirectoryService directoryService)
|
|
||||||
{
|
|
||||||
return MovieXmlProvider.GetXmlFileInfo(info, FileSystem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
using System.IO;
|
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
using MediaBrowser.Model.IO;
|
|
||||||
using MediaBrowser.Controller.Entities.TV;
|
|
||||||
using MediaBrowser.Controller.IO;
|
|
||||||
using MediaBrowser.Controller.Providers;
|
|
||||||
using MediaBrowser.LocalMetadata.Parsers;
|
|
||||||
using MediaBrowser.Model.Logging;
|
|
||||||
using MediaBrowser.Model.Xml;
|
|
||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Providers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Class SeriesProviderFromXml
|
|
||||||
/// </summary>
|
|
||||||
public class SeriesXmlProvider : BaseXmlProvider<Series>, IHasOrder
|
|
||||||
{
|
|
||||||
private readonly ILogger _logger;
|
|
||||||
private readonly IProviderManager _providerManager;
|
|
||||||
protected IXmlReaderSettingsFactory XmlReaderSettingsFactory { get; private set; }
|
|
||||||
|
|
||||||
public SeriesXmlProvider(IFileSystem fileSystem, ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory)
|
|
||||||
: base(fileSystem)
|
|
||||||
{
|
|
||||||
_logger = logger;
|
|
||||||
_providerManager = providerManager;
|
|
||||||
XmlReaderSettingsFactory = xmlReaderSettingsFactory;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Fetch(MetadataResult<Series> result, string path, CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
new SeriesXmlParser(_logger, _providerManager, XmlReaderSettingsFactory, FileSystem).Fetch(result, path, cancellationToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override FileSystemMetadata GetXmlFile(ItemInfo info, IDirectoryService directoryService)
|
|
||||||
{
|
|
||||||
return directoryService.GetFile(Path.Combine(info.Path, "series.xml"));
|
|
||||||
}
|
|
||||||
|
|
||||||
public override int Order
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
// After Xbmc
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,37 +0,0 @@
|
||||||
using MediaBrowser.Controller.Entities;
|
|
||||||
using MediaBrowser.Controller.Providers;
|
|
||||||
using MediaBrowser.LocalMetadata.Parsers;
|
|
||||||
using MediaBrowser.Model.Logging;
|
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
using MediaBrowser.Controller.IO;
|
|
||||||
using MediaBrowser.Model.IO;
|
|
||||||
using MediaBrowser.Model.Xml;
|
|
||||||
|
|
||||||
namespace MediaBrowser.LocalMetadata.Providers
|
|
||||||
{
|
|
||||||
class VideoXmlProvider : BaseXmlProvider<Video>
|
|
||||||
{
|
|
||||||
private readonly ILogger _logger;
|
|
||||||
private readonly IProviderManager _providerManager;
|
|
||||||
protected IXmlReaderSettingsFactory XmlReaderSettingsFactory { get; private set; }
|
|
||||||
|
|
||||||
public VideoXmlProvider(IFileSystem fileSystem, ILogger logger, IProviderManager providerManager, IXmlReaderSettingsFactory xmlReaderSettingsFactory)
|
|
||||||
: base(fileSystem)
|
|
||||||
{
|
|
||||||
_logger = logger;
|
|
||||||
_providerManager = providerManager;
|
|
||||||
XmlReaderSettingsFactory = xmlReaderSettingsFactory;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void Fetch(MetadataResult<Video> result, string path, CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
new VideoXmlParser(_logger, _providerManager, XmlReaderSettingsFactory, FileSystem).Fetch(result, path, cancellationToken);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override FileSystemMetadata GetXmlFile(ItemInfo info, IDirectoryService directoryService)
|
|
||||||
{
|
|
||||||
return MovieXmlProvider.GetXmlFileInfo(info, FileSystem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -150,248 +150,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int? TotalOutputBitrate
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return (OutputAudioBitrate ?? 0) + (OutputVideoBitrate ?? 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int? OutputWidth
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (VideoStream != null && VideoStream.Width.HasValue && VideoStream.Height.HasValue)
|
|
||||||
{
|
|
||||||
var size = new ImageSize
|
|
||||||
{
|
|
||||||
Width = VideoStream.Width.Value,
|
|
||||||
Height = VideoStream.Height.Value
|
|
||||||
};
|
|
||||||
|
|
||||||
var newSize = DrawingUtils.Resize(size,
|
|
||||||
Options.Width,
|
|
||||||
Options.Height,
|
|
||||||
Options.MaxWidth,
|
|
||||||
Options.MaxHeight);
|
|
||||||
|
|
||||||
return Convert.ToInt32(newSize.Width);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!IsVideoRequest)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Options.MaxWidth ?? Options.Width;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int? OutputHeight
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (VideoStream != null && VideoStream.Width.HasValue && VideoStream.Height.HasValue)
|
|
||||||
{
|
|
||||||
var size = new ImageSize
|
|
||||||
{
|
|
||||||
Width = VideoStream.Width.Value,
|
|
||||||
Height = VideoStream.Height.Value
|
|
||||||
};
|
|
||||||
|
|
||||||
var newSize = DrawingUtils.Resize(size,
|
|
||||||
Options.Width,
|
|
||||||
Options.Height,
|
|
||||||
Options.MaxWidth,
|
|
||||||
Options.MaxHeight);
|
|
||||||
|
|
||||||
return Convert.ToInt32(newSize.Height);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!IsVideoRequest)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Options.MaxHeight ?? Options.Height;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Predicts the audio sample rate that will be in the output stream
|
|
||||||
/// </summary>
|
|
||||||
public int? TargetVideoBitDepth
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
return stream == null || !Options.Static ? null : stream.BitDepth;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets the target reference frames.
|
|
||||||
/// </summary>
|
|
||||||
/// <value>The target reference frames.</value>
|
|
||||||
public int? TargetRefFrames
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
return stream == null || !Options.Static ? null : stream.RefFrames;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Predicts the audio sample rate that will be in the output stream
|
|
||||||
/// </summary>
|
|
||||||
public float? TargetFramerate
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
var requestedFramerate = Options.MaxFramerate ?? Options.Framerate;
|
|
||||||
|
|
||||||
return requestedFramerate.HasValue && !Options.Static
|
|
||||||
? requestedFramerate
|
|
||||||
: stream == null ? null : stream.AverageFrameRate ?? stream.RealFrameRate;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public TransportStreamTimestamp TargetTimestamp
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var defaultValue = string.Equals(OutputContainer, "m2ts", StringComparison.OrdinalIgnoreCase) ?
|
|
||||||
TransportStreamTimestamp.Valid :
|
|
||||||
TransportStreamTimestamp.None;
|
|
||||||
|
|
||||||
return !Options.Static
|
|
||||||
? defaultValue
|
|
||||||
: InputTimestamp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Predicts the audio sample rate that will be in the output stream
|
|
||||||
/// </summary>
|
|
||||||
public int? TargetPacketLength
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
return !Options.Static
|
|
||||||
? null
|
|
||||||
: stream == null ? null : stream.PacketLength;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Predicts the audio sample rate that will be in the output stream
|
|
||||||
/// </summary>
|
|
||||||
public string TargetVideoProfile
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
return !string.IsNullOrEmpty(Options.Profile) && !Options.Static
|
|
||||||
? Options.Profile
|
|
||||||
: stream == null ? null : stream.Profile;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public string TargetVideoCodecTag
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
var stream = VideoStream;
|
|
||||||
return !Options.Static
|
|
||||||
? null
|
|
||||||
: stream == null ? null : stream.CodecTag;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool? IsTargetAnamorphic
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (Options.Static)
|
|
||||||
{
|
|
||||||
return VideoStream == null ? null : VideoStream.IsAnamorphic;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool? IsTargetInterlaced
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (Options.Static)
|
|
||||||
{
|
|
||||||
return VideoStream == null ? (bool?)null : VideoStream.IsInterlaced;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (DeInterlace)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return VideoStream == null ? (bool?)null : VideoStream.IsInterlaced;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool? IsTargetAVC
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (Options.Static)
|
|
||||||
{
|
|
||||||
return VideoStream == null ? null : VideoStream.IsAVC;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int? TargetVideoStreamCount
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (Options.Static)
|
|
||||||
{
|
|
||||||
return GetMediaStreamCount(MediaStreamType.Video, int.MaxValue);
|
|
||||||
}
|
|
||||||
return GetMediaStreamCount(MediaStreamType.Video, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public int? TargetAudioStreamCount
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (Options.Static)
|
|
||||||
{
|
|
||||||
return GetMediaStreamCount(MediaStreamType.Audio, int.MaxValue);
|
|
||||||
}
|
|
||||||
return GetMediaStreamCount(MediaStreamType.Audio, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private int? GetMediaStreamCount(MediaStreamType type, int limit)
|
|
||||||
{
|
|
||||||
var count = MediaSource.GetStreamCount(type);
|
|
||||||
|
|
||||||
if (count.HasValue)
|
|
||||||
{
|
|
||||||
count = Math.Min(count.Value, limit);
|
|
||||||
}
|
|
||||||
|
|
||||||
return count;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void ReportTranscodingProgress(TimeSpan? transcodingPosition, float? framerate, double? percentComplete, long? bytesTranscoded, int? bitRate)
|
public override void ReportTranscodingProgress(TimeSpan? transcodingPosition, float? framerate, double? percentComplete, long? bytesTranscoded, int? bitRate)
|
||||||
{
|
{
|
||||||
var ticks = transcodingPosition.HasValue ? transcodingPosition.Value.Ticks : (long?)null;
|
var ticks = transcodingPosition.HasValue ? transcodingPosition.Value.Ticks : (long?)null;
|
||||||
|
|
|
@ -105,7 +105,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
//state.OutputContainer = (container ?? string.Empty).TrimStart('.');
|
//state.OutputContainer = (container ?? string.Empty).TrimStart('.');
|
||||||
|
|
||||||
state.OutputAudioBitrate = encodingHelper.GetAudioBitrateParam(state.Options, state.AudioStream);
|
state.OutputAudioBitrate = encodingHelper.GetAudioBitrateParam(state.Options, state.AudioStream);
|
||||||
state.OutputAudioSampleRate = request.AudioSampleRate;
|
|
||||||
|
|
||||||
state.OutputAudioCodec = state.Options.AudioCodec;
|
state.OutputAudioCodec = state.Options.AudioCodec;
|
||||||
|
|
||||||
|
|
|
@ -80,11 +80,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
int defaultImageExtractionTimeoutMs,
|
int defaultImageExtractionTimeoutMs,
|
||||||
bool enableEncoderFontFile, IEnvironmentInfo environmentInfo)
|
bool enableEncoderFontFile, IEnvironmentInfo environmentInfo)
|
||||||
{
|
{
|
||||||
if (jsonSerializer == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException("jsonSerializer");
|
|
||||||
}
|
|
||||||
|
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_jsonSerializer = jsonSerializer;
|
_jsonSerializer = jsonSerializer;
|
||||||
ConfigurationManager = configurationManager;
|
ConfigurationManager = configurationManager;
|
||||||
|
@ -330,7 +325,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
}
|
}
|
||||||
|
|
||||||
var newPaths = GetEncoderPaths(appPath);
|
var newPaths = GetEncoderPaths(appPath);
|
||||||
if (string.IsNullOrWhiteSpace(newPaths.Item1) || string.IsNullOrWhiteSpace(newPaths.Item2))
|
if (string.IsNullOrWhiteSpace(newPaths.Item1) || string.IsNullOrWhiteSpace(newPaths.Item2) || IsSystemInstalledPath(appPath))
|
||||||
{
|
{
|
||||||
newPaths = TestForInstalledVersions();
|
newPaths = TestForInstalledVersions();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -33,10 +33,6 @@
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
|
||||||
<None Include="project.json" />
|
|
||||||
<!-- A reference to the entire .NET Framework is automatically included -->
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="..\SharedVersion.cs">
|
<Compile Include="..\SharedVersion.cs">
|
||||||
<Link>Properties\SharedVersion.cs</Link>
|
<Link>Properties\SharedVersion.cs</Link>
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -60,9 +60,8 @@
|
||||||
<HintPath>..\packages\SharpCompress.0.14.0\lib\net45\SharpCompress.dll</HintPath>
|
<HintPath>..\packages\SharpCompress.0.14.0\lib\net45\SharpCompress.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="SimpleInjector, Version=4.0.7.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
|
<Reference Include="SimpleInjector, Version=4.0.8.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\SimpleInjector.4.0.7\lib\net45\SimpleInjector.dll</HintPath>
|
<HintPath>..\packages\SimpleInjector.4.0.8\lib\net45\SimpleInjector.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="SQLitePCLRaw.core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
|
<Reference Include="SQLitePCLRaw.core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1488e028ca7ab535, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\SQLitePCLRaw.core.1.1.5\lib\net45\SQLitePCLRaw.core.dll</HintPath>
|
<HintPath>..\packages\SQLitePCLRaw.core.1.1.5\lib\net45\SQLitePCLRaw.core.dll</HintPath>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<package id="NLog" version="4.4.10" targetFramework="net46" />
|
<package id="NLog" version="4.4.10" targetFramework="net46" />
|
||||||
<package id="ServiceStack.Text" version="4.5.8" targetFramework="net46" />
|
<package id="ServiceStack.Text" version="4.5.8" targetFramework="net46" />
|
||||||
<package id="SharpCompress" version="0.14.0" targetFramework="net46" />
|
<package id="SharpCompress" version="0.14.0" targetFramework="net46" />
|
||||||
<package id="SimpleInjector" version="4.0.7" targetFramework="net46" />
|
<package id="SimpleInjector" version="4.0.8" targetFramework="net46" />
|
||||||
<package id="SQLitePCLRaw.core" version="1.1.5" targetFramework="net46" />
|
<package id="SQLitePCLRaw.core" version="1.1.5" targetFramework="net46" />
|
||||||
<package id="SQLitePCLRaw.provider.sqlite3.net45" version="1.1.5" targetFramework="net46" />
|
<package id="SQLitePCLRaw.provider.sqlite3.net45" version="1.1.5" targetFramework="net46" />
|
||||||
</packages>
|
</packages>
|
|
@ -30,15 +30,6 @@ namespace MediaBrowser.Server.Startup.Common
|
||||||
logger.Error("Error loading Skia. Will revert to ImageMagick.");
|
logger.Error("Error loading Skia. Will revert to ImageMagick.");
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
return new ImageMagickEncoder(logManager.GetLogger("ImageMagick"), appPaths, httpClient, fileSystem);
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
logger.Error("Error loading ImageMagick. Will revert to GDI.");
|
|
||||||
}
|
|
||||||
|
|
||||||
return new NullImageEncoder();
|
return new NullImageEncoder();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,9 +88,8 @@
|
||||||
<HintPath>..\packages\SharpCompress.0.14.0\lib\net45\SharpCompress.dll</HintPath>
|
<HintPath>..\packages\SharpCompress.0.14.0\lib\net45\SharpCompress.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="SimpleInjector, Version=4.0.7.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
|
<Reference Include="SimpleInjector, Version=4.0.8.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\SimpleInjector.4.0.7\lib\net45\SimpleInjector.dll</HintPath>
|
<HintPath>..\packages\SimpleInjector.4.0.8\lib\net45\SimpleInjector.dll</HintPath>
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="SkiaSharp, Version=1.58.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
|
<Reference Include="SkiaSharp, Version=1.58.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\SkiaSharp.1.58.0\lib\net45\SkiaSharp.dll</HintPath>
|
<HintPath>..\packages\SkiaSharp.1.58.0\lib\net45\SkiaSharp.dll</HintPath>
|
||||||
|
@ -191,886 +190,13 @@
|
||||||
<Link>MediaBrowser.Updater.exe</Link>
|
<Link>MediaBrowser.Updater.exe</Link>
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="x64\CORE_RL_bzlib_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_cairo_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_exr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_glib_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_jp2_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_jpeg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_lcms_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_librsvg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_libxml_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_lqr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_Magick++_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_magick_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_openjpeg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_pango_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_png_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_tiff_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_ttf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_wand_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_webp_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\CORE_RL_zlib_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_aai_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_art_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_avs_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_bgr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_bmp_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_braille_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_cals_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_caption_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_cin_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_cip_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_clipboard_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_clip_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_cmyk_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_cut_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_dcm_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_dds_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_debug_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_dib_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_djvu_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_dng_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_dot_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_dps_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_dpx_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_emf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_ept_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_exr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_fax_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_fd_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_fits_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_fpx_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_gif_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_gradient_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_gray_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_hald_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_hdr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_histogram_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_hrz_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_html_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_icon_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_info_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_inline_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_ipl_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_jbig_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_jnx_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_jp2_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_jpeg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_json_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_label_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_mac_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_magick_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_map_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_mask_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_matte_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_mat_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_meta_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_miff_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_mono_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_mpc_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_mpeg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_mpr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_msl_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_mtv_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_mvg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_null_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_otb_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_palm_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pango_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pattern_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pcd_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pcl_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pcx_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pdb_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pdf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pes_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pict_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pix_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_plasma_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_png_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pnm_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_preview_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_ps2_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_ps3_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_psd_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_ps_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_pwp_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_raw_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_rgb_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_rgf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_rla_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_rle_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_screenshot_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_scr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_sct_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_sfw_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_sgi_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_sixel_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_stegano_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_sun_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_svg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_tga_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_thumbnail_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_tiff_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_tile_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_tim_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_ttf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_txt_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_uil_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_url_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_uyvy_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_vicar_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_vid_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_viff_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_vips_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_wbmp_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_webp_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_wmf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_wpg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_xbm_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_xcf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_xc_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_xpm_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_xps_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_xtrn_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_ycbcr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\IM_MOD_RL_yuv_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x64\libSkiaSharp.dll">
|
<Content Include="x64\libSkiaSharp.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="x64\sqlite3.dll">
|
<Content Include="x64\sqlite3.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="x86\CORE_RL_bzlib_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_cairo_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_exr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_glib_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_jbig_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_jp2_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_jpeg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_lcms_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_librsvg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_libxml_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_lqr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_Magick++_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_magick_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_openjpeg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_pango_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_png_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_tiff_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_ttf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_wand_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_webp_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\CORE_RL_zlib_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="Icon.ico" />
|
<Content Include="Icon.ico" />
|
||||||
<Content Include="x86\IM_MOD_RL_aai_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_art_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_avs_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_bgr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_bmp_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_braille_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_cals_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_caption_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_cin_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_cip_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_clipboard_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_clip_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_cmyk_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_cut_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_dcm_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_dds_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_debug_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_dib_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_djvu_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_dng_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_dot_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_dps_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_dpx_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_emf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_ept_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_exr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_fax_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_fd_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_fits_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_fpx_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_gif_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_gradient_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_gray_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_hald_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_hdr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_histogram_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_hrz_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_html_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_icon_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_info_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_inline_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_ipl_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_jbig_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_jnx_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_jp2_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_jpeg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_json_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_label_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_mac_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_magick_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_map_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_mask_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_matte_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_mat_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_meta_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_miff_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_mono_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_mpc_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_mpeg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_mpr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_msl_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_mtv_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_mvg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_null_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_otb_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_palm_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pango_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pattern_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pcd_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pcl_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pcx_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pdb_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pdf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pes_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pict_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pix_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_plasma_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_png_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pnm_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_preview_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_ps2_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_ps3_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_psd_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_ps_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_pwp_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_raw_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_rgb_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_rgf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_rla_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_rle_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_screenshot_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_scr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_sct_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_sfw_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_sgi_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_sixel_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_stegano_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_sun_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_svg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_tga_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_thumbnail_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_tiff_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_tile_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_tim_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_ttf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_txt_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_uil_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_url_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_uyvy_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_vicar_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_vid_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_viff_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_vips_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_wbmp_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_webp_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_wmf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_wpg_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_xbm_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_xcf_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_xc_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_xpm_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_xps_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_xtrn_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_ycbcr_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="x86\IM_MOD_RL_yuv_.dll">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</Content>
|
|
||||||
<Content Include="Resources\Images\mb3logo800.png" />
|
<Content Include="Resources\Images\mb3logo800.png" />
|
||||||
<Content Include="x86\libSkiaSharp.dll">
|
<Content Include="x86\libSkiaSharp.dll">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<package id="NLog" version="4.4.10" targetFramework="net462" />
|
<package id="NLog" version="4.4.10" targetFramework="net462" />
|
||||||
<package id="ServiceStack.Text" version="4.5.8" targetFramework="net462" />
|
<package id="ServiceStack.Text" version="4.5.8" targetFramework="net462" />
|
||||||
<package id="SharpCompress" version="0.14.0" targetFramework="net462" />
|
<package id="SharpCompress" version="0.14.0" targetFramework="net462" />
|
||||||
<package id="SimpleInjector" version="4.0.7" targetFramework="net462" />
|
<package id="SimpleInjector" version="4.0.8" targetFramework="net462" />
|
||||||
<package id="SkiaSharp" version="1.58.0" targetFramework="net462" />
|
<package id="SkiaSharp" version="1.58.0" targetFramework="net462" />
|
||||||
<package id="SQLitePCLRaw.core" version="1.1.5" targetFramework="net462" />
|
<package id="SQLitePCLRaw.core" version="1.1.5" targetFramework="net462" />
|
||||||
<package id="SQLitePCLRaw.provider.sqlite3.net45" version="1.1.5" targetFramework="net462" />
|
<package id="SQLitePCLRaw.provider.sqlite3.net45" version="1.1.5" targetFramework="net462" />
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -107,9 +107,6 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="XML-RPC\Docs\XML-RPC.txt" />
|
<Content Include="XML-RPC\Docs\XML-RPC.txt" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<None Include="project.json" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- 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.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{
|
|
||||||
"frameworks":{
|
|
||||||
"netstandard1.6":{
|
|
||||||
"dependencies":{
|
|
||||||
"NETStandard.Library":"1.6.0",
|
|
||||||
}
|
|
||||||
},
|
|
||||||
".NETPortable,Version=v4.5,Profile=Profile7":{
|
|
||||||
"buildOptions": {
|
|
||||||
"define": [ ]
|
|
||||||
},
|
|
||||||
"frameworkAssemblies":{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,3 +1,3 @@
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
|
||||||
[assembly: AssemblyVersion("3.2.19.2")]
|
[assembly: AssemblyVersion("3.2.19.3")]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user