Browse Source

Backport pull request #13030 from jellyfin/release-10.10.z

Always cleanup trickplay temp for ffmpeg failures

Original-merge: 9e61a6fd729b2980832014ae42bd4f7d1f3afb69

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
gnattu 6 months ago
parent
commit
7f81bbd42f
1 changed files with 10 additions and 0 deletions
  1. 10 0
      MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

+ 10 - 0
MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

@@ -1035,6 +1035,16 @@ namespace MediaBrowser.MediaEncoding.Encoder
                 if (exitCode == -1)
                 {
                     _logger.LogError("ffmpeg image extraction failed for {ProcessDescription}", processDescription);
+                    // Cleanup temp folder here, because the targetDirectory is not returned and the cleanup for failed ffmpeg process is not possible for caller.
+                    // Ideally the ffmpeg should not write any files if it fails, but it seems like it is not guaranteed.
+                    try
+                    {
+                        Directory.Delete(targetDirectory, true);
+                    }
+                    catch (Exception e)
+                    {
+                        _logger.LogError(e, "Failed to delete ffmpeg temp directory {TargetDirectory}", targetDirectory);
+                    }
 
                     throw new FfmpegException(string.Format(CultureInfo.InvariantCulture, "ffmpeg image extraction failed for {0}", processDescription));
                 }