aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs28
-rw-r--r--tests/Jellyfin.Providers.Tests/MediaInfo/AudioResolverTests.cs3
-rw-r--r--tests/Jellyfin.Providers.Tests/MediaInfo/MediaInfoResolverTests.cs5
-rw-r--r--tests/Jellyfin.Providers.Tests/MediaInfo/SubtitleResolverTests.cs3
4 files changed, 25 insertions, 14 deletions
diff --git a/MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs b/MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs
index 1421d0183..6d9aac2c0 100644
--- a/MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs
+++ b/MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs
@@ -106,19 +106,28 @@ namespace MediaBrowser.Providers.MediaInfo
if (mediaInfo.MediaStreams.Count == 1)
{
MediaStream mediaStream = mediaInfo.MediaStreams[0];
- mediaStream.Index = startIndex++;
- mediaStream.IsDefault = pathInfo.IsDefault || mediaStream.IsDefault;
- mediaStream.IsForced = pathInfo.IsForced || mediaStream.IsForced;
- mediaStreams.Add(MergeMetadata(mediaStream, pathInfo));
+ if ((mediaStream.Type == MediaStreamType.Audio && _type == DlnaProfileType.Audio)
+ || (mediaStream.Type == MediaStreamType.Subtitle && _type == DlnaProfileType.Subtitle))
+ {
+ mediaStream.Index = startIndex++;
+ mediaStream.IsDefault = pathInfo.IsDefault || mediaStream.IsDefault;
+ mediaStream.IsForced = pathInfo.IsForced || mediaStream.IsForced;
+
+ mediaStreams.Add(MergeMetadata(mediaStream, pathInfo));
+ }
}
else
{
foreach (MediaStream mediaStream in mediaInfo.MediaStreams)
{
- mediaStream.Index = startIndex++;
+ if ((mediaStream.Type == MediaStreamType.Audio && _type == DlnaProfileType.Audio)
+ || (mediaStream.Type == MediaStreamType.Subtitle && _type == DlnaProfileType.Subtitle))
+ {
+ mediaStream.Index = startIndex++;
- mediaStreams.Add(MergeMetadata(mediaStream, pathInfo));
+ mediaStreams.Add(MergeMetadata(mediaStream, pathInfo));
+ }
}
}
}
@@ -222,13 +231,6 @@ namespace MediaBrowser.Providers.MediaInfo
mediaStream.Title = string.IsNullOrEmpty(mediaStream.Title) ? (string.IsNullOrEmpty(pathInfo.Title) ? null : pathInfo.Title) : mediaStream.Title;
mediaStream.Language = string.IsNullOrEmpty(mediaStream.Language) ? (string.IsNullOrEmpty(pathInfo.Language) ? null : pathInfo.Language) : mediaStream.Language;
- mediaStream.Type = _type switch
- {
- DlnaProfileType.Audio => MediaStreamType.Audio,
- DlnaProfileType.Subtitle => MediaStreamType.Subtitle,
- _ => mediaStream.Type
- };
-
return mediaStream;
}
}
diff --git a/tests/Jellyfin.Providers.Tests/MediaInfo/AudioResolverTests.cs b/tests/Jellyfin.Providers.Tests/MediaInfo/AudioResolverTests.cs
index aec523882..929689209 100644
--- a/tests/Jellyfin.Providers.Tests/MediaInfo/AudioResolverTests.cs
+++ b/tests/Jellyfin.Providers.Tests/MediaInfo/AudioResolverTests.cs
@@ -43,6 +43,9 @@ public class AudioResolverTests
MediaStreams = new List<MediaStream>
{
new()
+ {
+ Type = MediaStreamType.Audio
+ }
}
}));
diff --git a/tests/Jellyfin.Providers.Tests/MediaInfo/MediaInfoResolverTests.cs b/tests/Jellyfin.Providers.Tests/MediaInfo/MediaInfoResolverTests.cs
index 98b4a6ccf..7c3027f94 100644
--- a/tests/Jellyfin.Providers.Tests/MediaInfo/MediaInfoResolverTests.cs
+++ b/tests/Jellyfin.Providers.Tests/MediaInfo/MediaInfoResolverTests.cs
@@ -359,7 +359,10 @@ public class MediaInfoResolverTests
var mediaStreams = new List<MediaStream>();
for (int i = 0; i < streamCount; i++)
{
- mediaStreams.Add(new());
+ mediaStreams.Add(new()
+ {
+ Type = MediaStreamType.Subtitle
+ });
}
return mediaStreams;
diff --git a/tests/Jellyfin.Providers.Tests/MediaInfo/SubtitleResolverTests.cs b/tests/Jellyfin.Providers.Tests/MediaInfo/SubtitleResolverTests.cs
index 0e6457ce3..6de6d296e 100644
--- a/tests/Jellyfin.Providers.Tests/MediaInfo/SubtitleResolverTests.cs
+++ b/tests/Jellyfin.Providers.Tests/MediaInfo/SubtitleResolverTests.cs
@@ -43,6 +43,9 @@ public class SubtitleResolverTests
MediaStreams = new List<MediaStream>
{
new()
+ {
+ Type = MediaStreamType.Subtitle
+ }
}
}));