diff options
| author | Cody Robibero <cody@robibe.ro> | 2024-09-11 12:10:17 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-11 12:10:17 -0600 |
| commit | e6ceab46a4acdd8ef455ad5d64494cd767dcdbf6 (patch) | |
| tree | 00fb32766575860ec8cb0103cac259c39970ec85 | |
| parent | 81aca67745d541e276cfa05efe57e52e9f5a5d0e (diff) | |
| parent | dd462f807268a6c3eb4b053605c11316b1795b98 (diff) | |
Merge pull request #12627 from oxixes/burn-subtitle-cache
| -rw-r--r-- | CONTRIBUTORS.md | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Controller/MediaEncoding/ISubtitleEncoder.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs | 7 |
4 files changed, 24 insertions, 4 deletions
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 91faa2c2e..5b94e04e1 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -189,6 +189,8 @@ - [TheMelmacian](https://github.com/TheMelmacian) - [ItsAllAboutTheCode](https://github.com/ItsAllAboutTheCode) - [pret0rian8](https://github.com/pret0rian) + - [jaina heartles](https://github.com/heartles) + - [oxixes](https://github.com/oxixes) # Emby Contributors diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 778c32c4b..5cc604a02 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -1652,13 +1652,15 @@ namespace MediaBrowser.Controller.MediaEncoding setPtsParam); } - var mediaPath = state.MediaPath ?? string.Empty; + var subtitlePath = _subtitleEncoder.GetSubtitleFilePath( + state.SubtitleStream, + state.MediaSource, + CancellationToken.None).GetAwaiter().GetResult(); return string.Format( CultureInfo.InvariantCulture, - "subtitles=f='{0}':si={1}{2}{3}{4}{5}", - _mediaEncoder.EscapeSubtitleFilterPath(mediaPath), - state.InternalSubtitleStreamOffset.ToString(CultureInfo.InvariantCulture), + "subtitles=f='{0}'{1}{2}{3}{4}", + _mediaEncoder.EscapeSubtitleFilterPath(subtitlePath), alphaParam, sub2videoParam, fontParam, diff --git a/MediaBrowser.Controller/MediaEncoding/ISubtitleEncoder.cs b/MediaBrowser.Controller/MediaEncoding/ISubtitleEncoder.cs index 5bf83a9e3..9bf27b3b2 100644 --- a/MediaBrowser.Controller/MediaEncoding/ISubtitleEncoder.cs +++ b/MediaBrowser.Controller/MediaEncoding/ISubtitleEncoder.cs @@ -44,5 +44,14 @@ namespace MediaBrowser.Controller.MediaEncoding /// <param name="cancellationToken">The cancellation token.</param> /// <returns>System.String.</returns> Task<string> GetSubtitleFileCharacterSet(MediaStream subtitleStream, string language, MediaSourceInfo mediaSource, CancellationToken cancellationToken); + + /// <summary> + /// Gets the path to a subtitle file. + /// </summary> + /// <param name="subtitleStream">The subtitle stream.</param> + /// <param name="mediaSource">The media source.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>System.String.</returns> + Task<string> GetSubtitleFilePath(MediaStream subtitleStream, MediaSourceInfo mediaSource, CancellationToken cancellationToken); } } diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs index dbb4b823e..a731d4785 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs @@ -902,6 +902,13 @@ namespace MediaBrowser.MediaEncoding.Subtitles } } + public async Task<string> GetSubtitleFilePath(MediaStream subtitleStream, MediaSourceInfo mediaSource, CancellationToken cancellationToken) + { + var info = await GetReadableFile(mediaSource, subtitleStream, cancellationToken) + .ConfigureAwait(false); + return info.Path; + } + /// <inheritdoc /> public void Dispose() { |
