Преглед на файлове

Exclude streams with mismatched types in external files

Nyanmisaka преди 3 години
родител
ревизия
293bcfb342
променени са 1 файла, в които са добавени 15 реда и са изтрити 13 реда
  1. 15 13
      MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs

+ 15 - 13
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;
         }
     }