2
0
Эх сурвалжийг харах

Merge pull request #6558 from dmitrylyzo/ffmpeg-exitcode

Claus Vium 3 жил өмнө
parent
commit
09f33d3b87

+ 6 - 0
Jellyfin.Api/Helpers/TranscodingJobHelper.cs

@@ -11,6 +11,7 @@ using System.Threading.Tasks;
 using Jellyfin.Api.Models.PlaybackDtos;
 using Jellyfin.Api.Models.StreamingDtos;
 using Jellyfin.Data.Enums;
+using MediaBrowser.Common;
 using MediaBrowser.Common.Configuration;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Library;
@@ -607,6 +608,10 @@ namespace Jellyfin.Api.Helpers
             {
                 StartThrottler(state, transcodingJob);
             }
+            else if (transcodingJob.ExitCode != 0)
+            {
+                throw new FfmpegException(string.Format(CultureInfo.InvariantCulture, "FFmpeg exited with code {0}", transcodingJob.ExitCode));
+            }
 
             _logger.LogDebug("StartFfMpeg() finished successfully");
 
@@ -743,6 +748,7 @@ namespace Jellyfin.Api.Helpers
         private void OnFfMpegProcessExited(Process process, TranscodingJobDto job, StreamState state)
         {
             job.HasExited = true;
+            job.ExitCode = process.ExitCode;
 
             _logger.LogDebug("Disposing stream resources");
             state.Dispose();

+ 5 - 0
Jellyfin.Api/Models/PlaybackDtos/TranscodingJobDto.cs

@@ -106,6 +106,11 @@ namespace Jellyfin.Api.Models.PlaybackDtos
         /// </summary>
         public bool HasExited { get; set; }
 
+        /// <summary>
+        /// Gets or sets exit code.
+        /// </summary>
+        public int ExitCode { get; set; }
+
         /// <summary>
         /// Gets or sets a value indicating whether is user paused.
         /// </summary>

+ 1 - 1
MediaBrowser.MediaEncoding/FfmpegException.cs → MediaBrowser.Common/FfmpegException.cs

@@ -1,6 +1,6 @@
 using System;
 
-namespace MediaBrowser.MediaEncoding
+namespace MediaBrowser.Common
 {
     /// <summary>
     /// Represents errors that occur during interaction with FFmpeg.

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

@@ -12,6 +12,7 @@ using System.Text.RegularExpressions;
 using System.Threading;
 using System.Threading.Tasks;
 using Jellyfin.Extensions.Json;
+using MediaBrowser.Common;
 using MediaBrowser.Common.Configuration;
 using MediaBrowser.Common.Extensions;
 using MediaBrowser.Controller.Configuration;

+ 1 - 0
MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs

@@ -11,6 +11,7 @@ using System.Net.Http;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
+using MediaBrowser.Common;
 using MediaBrowser.Common.Configuration;
 using MediaBrowser.Common.Extensions;
 using MediaBrowser.Common.Net;