diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-09-17 21:26:23 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-09-17 21:26:23 -0400 |
| commit | 3509a401c8e3d91854b4fda4e4d7700b0aacefa5 (patch) | |
| tree | 7277688345a6795411e62e2c40c4e2a49d9be6d0 /MediaBrowser.ServerApplication | |
| parent | 6130cb2403662596bba0474494372446d9caa3c3 (diff) | |
add subtitle profiles to dlna profile editor
Diffstat (limited to 'MediaBrowser.ServerApplication')
| -rw-r--r-- | MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs | 41 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloader.cs | 18 |
2 files changed, 39 insertions, 20 deletions
diff --git a/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs b/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs index 541251c2b..dc20653d7 100644 --- a/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs +++ b/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs @@ -16,16 +16,14 @@ namespace MediaBrowser.ServerApplication.FFMpeg // OS X builds: http://ffmpegmac.net/ // OS X x64: http://www.evermeet.cx/ffmpeg/ - public static string Version = ffmpegOsType("Version"); + public static string Version = getFfmpegValue("Version"); - public static string[] FfMpegUrls = GetDownloadUrls(); + public static string FFMpegFilename = getFfmpegValue("FFMpegFilename"); + public static string FFProbeFilename = getFfmpegValue("FFProbeFilename"); - public static string FFMpegFilename = ffmpegOsType("FFMpegFilename"); - public static string FFProbeFilename = ffmpegOsType("FFProbeFilename"); + public static string ArchiveType = getFfmpegValue("ArchiveType"); - public static string ArchiveType = ffmpegOsType("ArchiveType"); - - private static string ffmpegOsType(string arg) + private static string getFfmpegValue(string arg) { OperatingSystem os = Environment.OSVersion; PlatformID pid = os.Platform; @@ -61,7 +59,6 @@ namespace MediaBrowser.ServerApplication.FFMpeg case "ArchiveType": return "gz"; } - break; } if (PlatformDetection.IsX86) { @@ -76,10 +73,9 @@ namespace MediaBrowser.ServerApplication.FFMpeg case "ArchiveType": return "gz"; } - break; } } - if (PlatformDetection.IsLinux) + else if (PlatformDetection.IsLinux) { if (PlatformDetection.IsX86) { @@ -94,8 +90,8 @@ namespace MediaBrowser.ServerApplication.FFMpeg case "ArchiveType": return "gz"; } - break; } + else if (PlatformDetection.IsX86_64) { // Linux on x86 or x86_64 @@ -110,16 +106,28 @@ namespace MediaBrowser.ServerApplication.FFMpeg case "ArchiveType": return "gz"; } - break; } } - // Unsupported Unix platform + + break; + } + + switch (arg) + { + case "Version": + return "path"; + case "FFMpegFilename": + return "ffmpeg"; + case "FFProbeFilename": + return "ffprobe"; + case "ArchiveType": return ""; + default: + return string.Empty; } - return ""; } - private static string[] GetDownloadUrls() + public static string[] GetDownloadUrls() { var pid = Environment.OSVersion.Platform; @@ -210,8 +218,7 @@ namespace MediaBrowser.ServerApplication.FFMpeg var sysName = uname.sysname ?? string.Empty; IsMac = string.Equals(sysName, "Darwin", StringComparison.OrdinalIgnoreCase); - IsLinux = string.Equals(sysName, "Linux", StringComparison.OrdinalIgnoreCase) || - sysName.EndsWith("BSD", StringComparison.OrdinalIgnoreCase); + IsLinux = string.Equals(sysName, "Linux", StringComparison.OrdinalIgnoreCase); var archX86 = new Regex("(i|I)[3-6]86"); IsX86 = archX86.IsMatch(uname.machine); diff --git a/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloader.cs b/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloader.cs index a026f9a49..59c2940e6 100644 --- a/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloader.cs +++ b/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloader.cs @@ -55,14 +55,26 @@ namespace MediaBrowser.ServerApplication.FFMpeg }; } + var version = FFMpegDownloadInfo.Version; + + if (string.Equals(version, "path", StringComparison.OrdinalIgnoreCase)) + { + return new FFMpegInfo + { + ProbePath = FFMpegDownloadInfo.FFProbeFilename, + EncoderPath = FFMpegDownloadInfo.FFMpegFilename, + Version = version + }; + } + var rootEncoderPath = Path.Combine(_appPaths.ProgramDataPath, "ffmpeg"); - var versionedDirectoryPath = Path.Combine(rootEncoderPath, FFMpegDownloadInfo.Version); + var versionedDirectoryPath = Path.Combine(rootEncoderPath, version); var info = new FFMpegInfo { ProbePath = Path.Combine(versionedDirectoryPath, FFMpegDownloadInfo.FFProbeFilename), EncoderPath = Path.Combine(versionedDirectoryPath, FFMpegDownloadInfo.FFMpegFilename), - Version = FFMpegDownloadInfo.Version + Version = version }; Directory.CreateDirectory(versionedDirectoryPath); @@ -166,7 +178,7 @@ namespace MediaBrowser.ServerApplication.FFMpeg private async Task DownloadFFMpeg(string directory, IProgress<double> progress) { - foreach (var url in FFMpegDownloadInfo.FfMpegUrls) + foreach (var url in FFMpegDownloadInfo.GetDownloadUrls()) { progress.Report(0); |
