add error handling

This commit is contained in:
Luke Pulverenti 2016-06-29 21:19:38 -04:00
parent c27bc3de13
commit d15eb59635

View File

@ -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)