| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 | 
							- using System;
 
- #if __MonoCS__
 
- using Mono.Unix.Native;
 
- using System.Text.RegularExpressions;
 
- using System.IO;
 
- #endif
 
- namespace MediaBrowser.ServerApplication.FFMpeg
 
- {
 
-     public static class FFMpegDownloadInfo
 
-     {
 
-         // Windows builds: http://ffmpeg.zeranoe.com/builds/
 
-         // Linux builds: http://ffmpeg.gusari.org/static/
 
-         public static string Version = ffmpegOsType("Version");
 
-         public static string[] FfMpegUrls = GetDownloadUrls();
 
-         public static string FFMpegFilename = ffmpegOsType("FFMpegFilename");
 
-         public static string FFProbeFilename = ffmpegOsType("FFProbeFilename");
 
-         public static string ArchiveType = ffmpegOsType("ArchiveType");
 
-         private static string ffmpegOsType(string arg)
 
-         {
 
-             OperatingSystem os = Environment.OSVersion;
 
-             PlatformID pid = os.Platform;
 
-             switch (pid)
 
-             {
 
-                 case PlatformID.Win32NT:
 
-                     switch (arg)
 
-                     {
 
-                         case "Version":
 
-                             return "20140105";
 
-                         case "FFMpegFilename":
 
-                             return "ffmpeg.exe";
 
-                         case "FFProbeFilename":
 
-                             return "ffprobe.exe";
 
-                         case "ArchiveType":
 
-                             return "7z";
 
-                     }
 
-                     break;
 
-                 #if __MonoCS__
 
-                 case PlatformID.Unix:
 
-                     if (PlatformDetection.IsMac)
 
-                     {
 
-                         if (PlatformDetection.IsX86_64)
 
-                         {
 
-                             switch (arg)
 
-                             {
 
-                                 case "Version":
 
-                                     return "20131121";
 
-                                 case "FFMpegFilename":
 
-                                     return "ffmpeg";
 
-                                 case "FFProbeFilename":
 
-                                     return "ffprobe";
 
-                                 case "ArchiveType":
 
-                                     return "gz";
 
-                             }
 
-                             break;
 
-                         }
 
-                     }
 
-                     if (PlatformDetection.IsLinux)
 
-                     {
 
-                         if (PlatformDetection.IsX86)
 
-                         {
 
-                             switch (arg)
 
-                             {
 
-                                 case "Version":
 
-                                     return "linux_x86_20140118";
 
-                                 case "FFMpegFilename":
 
-                                     return "ffmpeg";
 
-                                 case "FFProbeFilename":
 
-                                     return "ffprobe";
 
-                                 case "ArchiveType":
 
-                                     return "gz";
 
-                             }
 
-                             break;
 
-                         }
 
-                         else if (PlatformDetection.IsX86_64)
 
-                         {
 
-                             // Linux on x86 or x86_64
 
-                             switch (arg)
 
-                             {
 
-                                 case "Version":
 
-                                     return "linux_x86_64_20140118";
 
-                                 case "FFMpegFilename":
 
-                                     return "ffmpeg";
 
-                                 case "FFProbeFilename":
 
-                                     return "ffprobe";
 
-                                 case "ArchiveType":
 
-                                     return "gz";
 
-                             }
 
-                             break;
 
-                         }
 
-                     }
 
-                     // Unsupported Unix platform
 
-                     return "";
 
-                 #endif
 
-             }
 
-             return "";
 
-         }
 
-         private static string[] GetDownloadUrls()
 
-         {
 
-             var pid = Environment.OSVersion.Platform;
 
-             
 
-             switch (pid)
 
-             {
 
-                 case PlatformID.Win32NT:
 
-                     return new[]
 
-                     {
 
-                         "http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20140105-git-70937d9-win32-static.7z",
 
-                         "https://www.dropbox.com/s/oghurnp5zh292ry/ffmpeg-20140105-git-70937d9-win32-static.7z?dl=1"
 
-                     };
 
-            
 
-                     #if __MonoCS__
 
-                 case PlatformID.Unix: 
 
-                     if (PlatformDetection.IsMac && PlatformDetection.IsX86_64)
 
-                     {
 
-                         return new[]
 
-                         {
 
-                             "https://copy.com/IB0W4efS6t9A/ffall-2.1.1.tar.gz?download=1"
 
-                         };
 
-                     }
 
-                     if (PlatformDetection.IsLinux)
 
-                     {
 
-                         if (PlatformDetection.IsX86)
 
-                         {
 
-                             return new[]
 
-                             {
 
-                                 "http://ffmpeg.gusari.org/static/32bit/ffmpeg.static.32bit.2014-01-18.tar.gz",
 
-                                 "https://www.dropbox.com/s/b7nkg71sil812hp/ffmpeg.static.32bit.2014-01-04.tar.gz?dl=1"
 
-                             };
 
-                         }
 
-                         if (PlatformDetection.IsX86_64)
 
-                         {
 
-                             return new[]
 
-                             {
 
-                                 "http://ffmpeg.gusari.org/static/64bit/ffmpeg.static.64bit.2014-01-18.tar.gz"
 
-                             };
 
-                         }
 
-                     }
 
-                     //No Unix version available 
 
-                     return new string[] {};
 
-                     #endif
 
-             }
 
-             return new string[] {};
 
-         }
 
-     }
 
-     #if __MonoCS__
 
-     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)
 
-             {
 
-                 Utsname uname;
 
-                 var callResult = Syscall.uname(out uname);
 
-                 if (callResult == 0)
 
-                 {
 
-                     IsMac = uname.sysname == "Darwin";
 
-                     IsLinux = !IsMac && uname.sysname == "Linux";
 
-                     Regex archX86 = new Regex("(i|I)[3-6]86");
 
-                     IsX86 = archX86.IsMatch(uname.machine);
 
-                     IsX86_64 = !IsX86 && uname.machine == "x86_64";
 
-                     IsArm = !IsX86 && !IsX86 && uname.machine.StartsWith("arm");
 
-                 }
 
-             }
 
-             else
 
-             {
 
-                 if (System.Environment.Is64BitOperatingSystem)
 
-                     IsX86_64 = true;
 
-                 else
 
-                     IsX86 = true;
 
-             }
 
-         }
 
-     }
 
-     #endif
 
- }
 
 
  |