diff options
| author | Bond-009 <bond.009@outlook.com> | 2024-02-14 11:24:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-14 11:24:35 +0100 |
| commit | 0bf1c10c443c4763143e37fa9dce269c4e5cbad9 (patch) | |
| tree | 8fb4346d64399d4eb3ca502ddda7e53e0161b106 /MediaBrowser.MediaEncoding/Transcoding/TranscodeManager.cs | |
| parent | c7d986fb430550deef8d7a2722763bb784ebaea8 (diff) | |
| parent | 9230472056ea92a54a3f47bcb10142310ae0200e (diff) | |
Merge pull request #10990 from Shadowghost/bdmv-fixes
BDMV fixes
Diffstat (limited to 'MediaBrowser.MediaEncoding/Transcoding/TranscodeManager.cs')
| -rw-r--r-- | MediaBrowser.MediaEncoding/Transcoding/TranscodeManager.cs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/MediaBrowser.MediaEncoding/Transcoding/TranscodeManager.cs b/MediaBrowser.MediaEncoding/Transcoding/TranscodeManager.cs index ab3eb3298..146b30643 100644 --- a/MediaBrowser.MediaEncoding/Transcoding/TranscodeManager.cs +++ b/MediaBrowser.MediaEncoding/Transcoding/TranscodeManager.cs @@ -405,7 +405,7 @@ public sealed class TranscodeManager : ITranscodeManager, IDisposable var user = userId.IsEmpty() ? null : _userManager.GetUserById(userId); if (user is not null && !user.HasPermission(PermissionKind.EnableVideoPlaybackTranscoding)) { - this.OnTranscodeFailedToStart(outputPath, transcodingJobType, state); + OnTranscodeFailedToStart(outputPath, transcodingJobType, state); throw new ArgumentException("User does not have access to video transcoding."); } @@ -417,7 +417,12 @@ public sealed class TranscodeManager : ITranscodeManager, IDisposable if (state.SubtitleStream is not null && state.SubtitleDeliveryMethod == SubtitleDeliveryMethod.Encode) { var attachmentPath = Path.Combine(_appPaths.CachePath, "attachments", state.MediaSource.Id); - if (state.VideoType != VideoType.Dvd) + if (state.MediaSource.VideoType == VideoType.Dvd || state.MediaSource.VideoType == VideoType.BluRay) + { + var concatPath = Path.Join(_serverConfigurationManager.GetTranscodePath(), state.MediaSource.Id + ".concat"); + await _attachmentExtractor.ExtractAllAttachments(concatPath, state.MediaSource, attachmentPath, cancellationTokenSource.Token).ConfigureAwait(false); + } + else { await _attachmentExtractor.ExtractAllAttachments(state.MediaPath, state.MediaSource, attachmentPath, cancellationTokenSource.Token).ConfigureAwait(false); } @@ -432,7 +437,7 @@ public sealed class TranscodeManager : ITranscodeManager, IDisposable } } - var process = new Process + using var process = new Process { StartInfo = new ProcessStartInfo { @@ -452,7 +457,7 @@ public sealed class TranscodeManager : ITranscodeManager, IDisposable EnableRaisingEvents = true }; - var transcodingJob = this.OnTranscodeBeginning( + var transcodingJob = OnTranscodeBeginning( outputPath, state.Request.PlaySessionId, state.MediaSource.LiveStreamId, @@ -507,7 +512,7 @@ public sealed class TranscodeManager : ITranscodeManager, IDisposable catch (Exception ex) { _logger.LogError(ex, "Error starting FFmpeg"); - this.OnTranscodeFailedToStart(outputPath, transcodingJobType, state); + OnTranscodeFailedToStart(outputPath, transcodingJobType, state); throw; } |
