aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs')
-rw-r--r--MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs252
1 files changed, 0 insertions, 252 deletions
diff --git a/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs b/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs
deleted file mode 100644
index 2ca910786..000000000
--- a/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs
+++ /dev/null
@@ -1,252 +0,0 @@
-using Mono.Unix.Native;
-using System;
-using System.IO;
-using System.Text.RegularExpressions;
-
-namespace MediaBrowser.ServerApplication.FFMpeg
-{
- public static class FFMpegDownloadInfo
- {
- // Windows builds: http://ffmpeg.zeranoe.com/builds/
- // Linux builds: http://ffmpeg.gusari.org/static/
- // OS X builds: http://ffmpegmac.net/
- // OS X x64: http://www.evermeet.cx/ffmpeg/
-
- public static string Version = getFfmpegValue("Version");
-
- public static string FFMpegFilename = getFfmpegValue("FFMpegFilename");
- public static string FFProbeFilename = getFfmpegValue("FFProbeFilename");
-
- public static string ArchiveType = getFfmpegValue("ArchiveType");
-
- private static string getFfmpegValue(string arg)
- {
- OperatingSystem os = Environment.OSVersion;
- PlatformID pid = os.Platform;
- switch (pid)
- {
- case PlatformID.Win32NT:
- switch (arg)
- {
- case "Version":
- return "20141005";
- case "FFMpegFilename":
- return "ffmpeg.exe";
- case "FFProbeFilename":
- return "ffprobe.exe";
- case "ArchiveType":
- return "7z";
- }
- break;
-
- case PlatformID.Unix:
- if (PlatformDetection.IsMac)
- {
- if (PlatformDetection.IsX86_64)
- {
- switch (arg)
- {
- case "Version":
- return "20140923";
- case "FFMpegFilename":
- return "ffmpeg";
- case "FFProbeFilename":
- return "ffprobe";
- case "ArchiveType":
- return "7z";
- }
- }
- if (PlatformDetection.IsX86)
- {
- switch (arg)
- {
- case "Version":
- return "20140910";
- case "FFMpegFilename":
- return "ffmpeg";
- case "FFProbeFilename":
- return "ffprobe";
- case "ArchiveType":
- return "7z";
- }
- }
- }
- else if (PlatformDetection.IsLinux)
- {
- if (PlatformDetection.IsX86)
- {
- switch (arg)
- {
- case "Version":
- return "20140716";
- case "FFMpegFilename":
- return "ffmpeg";
- case "FFProbeFilename":
- return "ffprobe";
- case "ArchiveType":
- return "gz";
- }
- }
-
- else if (PlatformDetection.IsX86_64)
- {
- // Linux on x86 or x86_64
- switch (arg)
- {
- case "Version":
- return "20140716";
- case "FFMpegFilename":
- return "ffmpeg";
- case "FFProbeFilename":
- return "ffprobe";
- case "ArchiveType":
- return "gz";
- }
- }
- }
-
- break;
- }
-
- switch (arg)
- {
- case "Version":
- return "path";
- case "FFMpegFilename":
- return "ffmpeg";
- case "FFProbeFilename":
- return "ffprobe";
- case "ArchiveType":
- return "";
- default:
- return string.Empty;
- }
- }
-
- public static string[] GetDownloadUrls()
- {
- var pid = Environment.OSVersion.Platform;
-
- switch (pid)
- {
- case PlatformID.Win32NT:
- if (PlatformDetection.IsX86_64)
- {
- return new[]
- {
- "http://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20141005-git-e079d43-win64-static.7z",
- "https://github.com/MediaBrowser/MediaBrowser.Resources/raw/master/ffmpeg/windows/ffmpeg-20141005-git-e079d43-win64-static.7z"
- };
- }
-
- return new[]
- {
- "http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20141005-git-e079d43-win32-static.7z",
- "https://github.com/MediaBrowser/MediaBrowser.Resources/raw/master/ffmpeg/windows/ffmpeg-20141005-git-e079d43-win32-static.7z"
- };
-
- case PlatformID.Unix:
- if (PlatformDetection.IsMac && PlatformDetection.IsX86)
- {
- return new[]
- {
- "https://github.com/MediaBrowser/MediaBrowser.Resources/raw/master/ffmpeg/osx/ffmpeg-x86-2.4.2.7z"
- };
- }
-
- if (PlatformDetection.IsMac && PlatformDetection.IsX86_64)
- {
- return new[]
- {
- "https://github.com/MediaBrowser/MediaBrowser.Resources/raw/master/ffmpeg/osx/ffmpeg-x64-2.4.1.7z"
- };
- }
-
- if (PlatformDetection.IsLinux)
- {
- if (PlatformDetection.IsX86)
- {
- return new[]
- {
- "http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.latest.tar.gz",
- "https://github.com/MediaBrowser/MediaBrowser.Resources/raw/master/ffmpeg/linux/ffmpeg.static.32bit.2014-07-16.tar.gz"
- };
- }
-
- if (PlatformDetection.IsX86_64)
- {
- return new[]
- {
- "http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.latest.tar.gz",
- "https://github.com/MediaBrowser/MediaBrowser.Resources/raw/master/ffmpeg/linux/ffmpeg.static.64bit.2014-07-16.tar.gz"
- };
- }
-
- }
-
- // No Unix version available
- return new string[] { };
-
- default:
- throw new ApplicationException("No ffmpeg download available for " + pid);
- }
- }
- }
-
- public static class PlatformDetection
- {
- public readonly static bool IsWindows;
- public readonly static bool IsMac;
- public readonly static bool IsLinux;
- public readonly static bool IsX86;
- public readonly static bool IsX86_64;
- public readonly static bool IsArm;
-
- static PlatformDetection()
- {
- IsWindows = Path.DirectorySeparatorChar == '\\';
-
- // Don't call uname on windows
- if (!IsWindows)
- {
- var uname = GetUnixName();
-
- var sysName = uname.sysname ?? string.Empty;
-
- IsMac = string.Equals(sysName, "Darwin", StringComparison.OrdinalIgnoreCase);
- IsLinux = string.Equals(sysName, "Linux", StringComparison.OrdinalIgnoreCase);
-
- var archX86 = new Regex("(i|I)[3-6]86");
- IsX86 = archX86.IsMatch(uname.machine);
- IsX86_64 = !IsX86 && uname.machine == "x86_64";
- IsArm = !IsX86 && !IsX86_64 && uname.machine.StartsWith("arm");
- }
- else
- {
- if (Environment.Is64BitOperatingSystem)
- IsX86_64 = true;
- else
- IsX86 = true;
- }
- }
-
- private static Uname GetUnixName()
- {
- var uname = new Uname();
- Utsname utsname;
- var callResult = Syscall.uname(out utsname);
- if (callResult == 0)
- {
- uname.sysname = utsname.sysname;
- uname.machine = utsname.machine;
- }
- return uname;
- }
- }
-
- public class Uname
- {
- public string sysname = string.Empty;
- public string machine = string.Empty;
- }
-} \ No newline at end of file