Fix BDMV PGS subtitles with TrueHD
Add myself CONTRIBUTORS.md
This commit is contained in:
@@ -6311,7 +6311,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
string.Join(',', overlayFilters));
|
||||
|
||||
var mapPrefix = Convert.ToInt32(state.SubtitleStream.IsExternal);
|
||||
var subtitleStreamIndex = FindIndex(state.MediaSource.MediaStreams, state.SubtitleStream);
|
||||
var subtitleStreamIndex = GetSubtitleStreamIndexForFfmpeg(state.MediaSource, state.SubtitleStream);
|
||||
var videoStreamIndex = FindIndex(state.MediaSource.MediaStreams, state.VideoStream);
|
||||
|
||||
if (hasSubs)
|
||||
@@ -7943,6 +7943,23 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static int GetSubtitleStreamIndexForFfmpeg(MediaSourceInfo mediaSource, MediaStream subtitleStream)
|
||||
{
|
||||
var index = FindIndex(mediaSource.MediaStreams, subtitleStream);
|
||||
if (index == -1 || mediaSource.VideoType != VideoType.BluRay)
|
||||
{
|
||||
return index;
|
||||
}
|
||||
|
||||
var hiddenStreamsBefore = mediaSource.MediaStreams.Count(s =>
|
||||
s.Type == MediaStreamType.Audio
|
||||
&& (string.Equals(s.Codec, "truehd", StringComparison.OrdinalIgnoreCase)
|
||||
|| string.Equals(s.Codec, "atmos", StringComparison.OrdinalIgnoreCase))
|
||||
&& s.Index < subtitleStream.Index);
|
||||
|
||||
return index + hiddenStreamsBefore;
|
||||
}
|
||||
|
||||
public static bool IsCopyCodec(string codec)
|
||||
{
|
||||
return string.Equals(codec, "copy", StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
Reference in New Issue
Block a user