Throw on FFmpeg non-zero exit code

This commit is contained in:
Dmitry Lyzo 2021-10-10 19:48:48 +03:00
parent c26e6d89b4
commit 32f3d60a84
2 changed files with 11 additions and 0 deletions

View file

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

View file

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