瀏覽代碼

add error handling

Luke Pulverenti 9 年之前
父節點
當前提交
d15eb59635
共有 1 個文件被更改,包括 13 次插入7 次删除
  1. 13 7
      MediaBrowser.Server.Startup.Common/FFMpeg/FFMpegLoader.cs

+ 13 - 7
MediaBrowser.Server.Startup.Common/FFMpeg/FFMpegLoader.cs

@@ -60,10 +60,6 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg
             var downloadInfo = _ffmpegInstallInfo;
 
             var version = downloadInfo.Version;
-            if (string.Equals(version, "0", StringComparison.OrdinalIgnoreCase))
-            {
-                return new FFMpegInfo();
-            }
 
             if (string.Equals(version, "path", StringComparison.OrdinalIgnoreCase))
             {
@@ -75,6 +71,11 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg
                 };
             }
 
+            if (string.Equals(version, "0", StringComparison.OrdinalIgnoreCase))
+            {
+                return new FFMpegInfo();
+            }
+
             var rootEncoderPath = Path.Combine(_appPaths.ProgramDataPath, "ffmpeg");
             var versionedDirectoryPath = Path.Combine(rootEncoderPath, version);
 
@@ -97,7 +98,11 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg
                 // No older version. Need to download and block until complete
                 if (existingVersion == null)
                 {
-                    await DownloadFFMpeg(downloadInfo, versionedDirectoryPath, progress).ConfigureAwait(false);
+                    var success = await DownloadFFMpeg(downloadInfo, versionedDirectoryPath, progress).ConfigureAwait(false);
+                    if (!success)
+                    {
+                        return new FFMpegInfo();
+                    }
                 }
                 else
                 {
@@ -179,7 +184,7 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg
             return null;
         }
 
-        private async Task DownloadFFMpeg(FFMpegInstallInfo downloadinfo, string directory, IProgress<double> progress)
+        private async Task<bool> DownloadFFMpeg(FFMpegInstallInfo downloadinfo, string directory, IProgress<double> progress)
         {
             foreach (var url in downloadinfo.DownloadUrls)
             {
@@ -196,13 +201,14 @@ namespace MediaBrowser.Server.Startup.Common.FFMpeg
                     }).ConfigureAwait(false);
 
                     ExtractFFMpeg(downloadinfo, tempFile, directory);
-                    return;
+                    return true;
                 }
                 catch (Exception ex)
                 {
                     _logger.ErrorException("Error downloading {0}", ex, url);
                 }
             }
+            return false;
         }
 
         private void ExtractFFMpeg(FFMpegInstallInfo downloadinfo, string tempFile, string targetFolder)