aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/MediaInfo/FFMpegManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller/MediaInfo/FFMpegManager.cs')
-rw-r--r--MediaBrowser.Controller/MediaInfo/FFMpegManager.cs23
1 files changed, 20 insertions, 3 deletions
diff --git a/MediaBrowser.Controller/MediaInfo/FFMpegManager.cs b/MediaBrowser.Controller/MediaInfo/FFMpegManager.cs
index 7ef70ea42..9c9b0e9f2 100644
--- a/MediaBrowser.Controller/MediaInfo/FFMpegManager.cs
+++ b/MediaBrowser.Controller/MediaInfo/FFMpegManager.cs
@@ -634,7 +634,7 @@ namespace MediaBrowser.Controller.MediaInfo
await AudioImageResourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
- await process.RunAsync().ConfigureAwait(false);
+ await RunAsync(process).ConfigureAwait(false);
AudioImageResourcePool.Release();
@@ -713,7 +713,7 @@ namespace MediaBrowser.Controller.MediaInfo
await AudioImageResourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
- await process.RunAsync().ConfigureAwait(false);
+ await RunAsync(process).ConfigureAwait(false);
AudioImageResourcePool.Release();
@@ -768,7 +768,7 @@ namespace MediaBrowser.Controller.MediaInfo
await AudioImageResourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);
- await process.RunAsync().ConfigureAwait(false);
+ await RunAsync(process).ConfigureAwait(false);
AudioImageResourcePool.Release();
@@ -972,6 +972,23 @@ namespace MediaBrowser.Controller.MediaInfo
}
/// <summary>
+ /// Provides a non-blocking method to start a process and wait asynchronously for it to exit
+ /// </summary>
+ /// <param name="process">The process.</param>
+ /// <returns>Task{System.Boolean}.</returns>
+ private static Task<bool> RunAsync(Process process)
+ {
+ var tcs = new TaskCompletionSource<bool>();
+
+ process.EnableRaisingEvents = true;
+ process.Exited += (sender, args) => tcs.SetResult(true);
+
+ process.Start();
+
+ return tcs.Task;
+ }
+
+ /// <summary>
/// Sets the error mode.
/// </summary>
/// <param name="uMode">The u mode.</param>