Throw on FFmpeg non-zero exit code

pull/6558/head
Dmitry Lyzo 3 years ago
parent c26e6d89b4
commit 32f3d60a84

@ -11,6 +11,7 @@ using System.Threading.Tasks;
using Jellyfin.Api.Models.PlaybackDtos; using Jellyfin.Api.Models.PlaybackDtos;
using Jellyfin.Api.Models.StreamingDtos; using Jellyfin.Api.Models.StreamingDtos;
using Jellyfin.Data.Enums; using Jellyfin.Data.Enums;
using MediaBrowser.Common;
using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Library;
@ -607,6 +608,10 @@ namespace Jellyfin.Api.Helpers
{ {
StartThrottler(state, transcodingJob); 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"); _logger.LogDebug("StartFfMpeg() finished successfully");
@ -743,6 +748,7 @@ namespace Jellyfin.Api.Helpers
private void OnFfMpegProcessExited(Process process, TranscodingJobDto job, StreamState state) private void OnFfMpegProcessExited(Process process, TranscodingJobDto job, StreamState state)
{ {
job.HasExited = true; job.HasExited = true;
job.ExitCode = process.ExitCode;
_logger.LogDebug("Disposing stream resources"); _logger.LogDebug("Disposing stream resources");
state.Dispose(); state.Dispose();

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

Loading…
Cancel
Save